Browse Source

系统日志/水印管理

master
xuhuajiao 2 years ago
parent
commit
b6f3184840
  1. BIN
      src/assets/images/system/default-img.jpg
  2. BIN
      src/assets/images/system/xt-wm.png
  3. 29
      src/assets/styles/archives-manage.scss
  4. 58
      src/assets/styles/mixin.scss
  5. 230
      src/assets/styles/yxk-admin.scss
  6. 9
      src/views/system/archiveScopeManage/index.vue
  7. 79
      src/views/system/archivesCategory/archiveSealSetting/index.vue
  8. 9
      src/views/system/fieldCorresManage/index.vue
  9. 9
      src/views/system/fourCharacterDetection/index.vue
  10. 31
      src/views/system/log/errorLog/index.vue
  11. 17
      src/views/system/log/operateLog/index.vue
  12. 22
      src/views/system/log/search.vue
  13. 9
      src/views/system/processManage/index.vue
  14. 3
      src/views/system/role/index.vue
  15. 155
      src/views/system/watermarkManage/index.vue
  16. 271
      src/views/system/watermarkManage/module/form.vue

BIN
src/assets/images/system/default-img.jpg

After

Width: 591  |  Height: 317  |  Size: 6.2 KiB

BIN
src/assets/images/system/xt-wm.png

After

Width: 386  |  Height: 544  |  Size: 7.5 KiB

29
src/assets/styles/archives-manage.scss

@ -22,35 +22,6 @@
}
}
.input-prepend{
position: relative;
z-index: 99;
.el-input__inner {
padding-left: 80px;
background-color: transparent;
}
.el-input-group__prepend {
position: absolute;
left: 0;
top: 0;
color: #fff;
background-color: transparent;
border: none;
height: 30px;
line-height: 30px;
.el-input__inner {
padding-left: 15px !important;
color: $mainColor !important;
}
.el-input__inner:hover,
.el-input__inner:focus{
color: $mainColor;
}
.el-select__caret{
color: $mainColor;
}
}
}
.packing-head{
display: flex;
justify-content: space-between;

58
src/assets/styles/mixin.scss

@ -860,4 +860,62 @@
}
}
}
@mixin main-padding{
[data-theme="dark"] & {
padding: 0 20px 20px 20px;
}
[data-theme="light"] & {
padding: 20px 0;
}
}
@mixin elTag-style{
[data-theme="dark"] & {
border: 1px solid $mainColor;
background-color: #02255f;
}
[data-theme="light"] & {
color: #0348F3;
border: 1px solid #90B0F9;
background-color: #EEF5FE;
}
}
@mixin prepend-input{
[data-theme="dark"] & {
border: 1px solid $mainColor;
color: #339cff !important;
}
[data-theme="light"] & {
border: 1px solid #E3E7EE;
color: #545B65 !important;
}
}
@mixin prepend-color{
[data-theme="dark"] & {
color: #339cff !important;
}
[data-theme="light"] & {
color: #545B65 !important;
}
}
@mixin setting-item-font{
[data-theme="dark"] & {
color: #fff;
}
[data-theme="light"] & {
color: #0C0E1E;
}
}
@mixin setting-item-selected{
[data-theme="dark"] & {
color: #fff;
background-color: #02255f;
}
[data-theme="light"] & {
color: #545B65;
background-color: #F5F7FA;
}
}

230
src/assets/styles/yxk-admin.scss

@ -1471,8 +1471,7 @@ input[type ='number'] {
.el-tag--small{
margin: 2px 0;
border: 1px solid $mainColor;
background-color: #02255f;
@include elTag-style;
}
.el-tag.el-tag--warning {
@ -1704,48 +1703,6 @@ input[type ='number'] {
}
}
// 归档章设置
.format-style{
display: flex;
justify-content: space-between;
flex-wrap: wrap;
width: 300px;
height: 80px;
border-left: 1px solid #E6E8ED;
border-top: 1px solid #E6E8ED;
span{
display: block;
width: 100px;
height: 40px;
margin-left: -1px;
margin-top: -1px;
line-height: 40px;
text-align: center;
border: 1px solid #E6E8ED;
border-left: none;
border-top: none;
}
}
.isEnable-chapter{
margin-top: 5px;
.el-switch__core{
width: 28px !important;
height: 16px !important;
&::after{
width: 12px;
height: 12px;
margin-left: 0;
}
}
}
.chapter-enable,
.process-item{
.el-switch.is-checked .el-switch__core::after{
margin-left: -13px !important;
}
}
.sort-dialog{
.el-dialog{
@ -1793,15 +1750,123 @@ input[type ='number'] {
}
}
// 著录界面
@mixin main-padding{
[data-theme="dark"] & {
padding: 0 20px 20px 20px;
// 归档章/水印提示
.chapter-tip{
padding: 10px 20px 10px 40px;
margin-bottom: 30px;
font-size: 12px;
color: #545B65;
line-height: 26px;
background-color: #EEF5FE;
border: 1px solid #CBDAFF;
border-left: 2px solid #0348F3;
p{
font-size: 14px;
color: #0C0E1E;
font-family: "iconfont" !important;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
&::before{
content: '\e61e';
color: #215EF4;
margin-left: -24px;
margin-right: 10px;
}
}
}
.chapter-setting,
.waterMark-main{
display: flex;
justify-content: space-between;
}
.chapter-format{
padding-left: 42px;
}
.chapter-item{
display: flex;
justify-content: flex-start;
font-size: 14px;
height: 32px;
line-height: 32px;
margin-bottom: 20px;
p.item-title{
width: 70px;
@include setting-item-font;
text-align: right;
margin-right: 10px;
}
span.item-selected{
display: block;
width: 297px;
padding: 0 13px;
@include setting-item-selected;
}
}
.chapter-enable{
display: flex;
justify-content: flex-start;
.chapter-edit{
margin-left: 36px;
}
}
.format-style{
display: flex;
justify-content: space-between;
flex-wrap: wrap;
width: 300px;
height: 80px;
border-left: 1px solid #E6E8ED;
border-top: 1px solid #E6E8ED;
span{
display: block;
width: 100px;
height: 40px;
margin-left: -1px;
margin-top: -1px;
line-height: 40px;
text-align: center;
border: 1px solid #E6E8ED;
border-left: none;
border-top: none;
}
}
.isEnable-chapter{
margin-top: 5px;
.el-switch__core{
width: 28px !important;
height: 16px !important;
&::after{
width: 12px;
height: 12px;
margin-left: 0;
}
[data-theme="light"] & {
padding: 20px 0;
}
}
.chapter-enable,
.process-item{
.el-switch.is-checked .el-switch__core::after{
margin-left: -13px !important;
}
}
.waterMark-result{
.chapter-item{
p.item-title{
width: 90px;
}
.item-remark{
height: 110px;
}
}
}
// 著录界面
.category-main {
display: flex;
justify-content: flex-start;
@ -1917,3 +1982,68 @@ input[type ='number'] {
margin-left: 20px;
}
}
// 带select得输入框
.input-prepend{
position: relative;
z-index: 99;
.el-input__inner {
padding-left: 80px;
background-color: transparent;
}
.el-input-group__prepend {
position: absolute;
left: 0;
top: 1px;
color: #fff;
background-color: transparent;
border: none !important;
height: 30px;
line-height: 30px;
.el-input__inner {
padding: 0 10px !important;
border-radius: 3px 0 0 3px;
@include prepend-input;
}
.el-input__inner:hover,
.el-input__inner:focus{
@include prepend-input;
}
.el-select__caret{
@include prepend-color;
}
}
}
// 系统日志
.el-table__expanded-cell{
padding: 0 !important;
}
.demo-table-expand {
padding: 10px 30px;
background-color: #F5F9FC;
}
.demo-table-expand {
.el-form-item {
display: flex;
justify-content: flex-start;
margin-right: 0;
margin-bottom: 0;
width: 100%;
.el-form-item__label{
width: 80px !important;
font-size: 12px;
color: #0C0E1E;
}
.el-form-item__content {
font-size: 12px;
color: #545B65;
}
}
}
.java.hljs {
color: #545B65 !important;
background: transparent !important;
width: 100%;
height: 630px !important;
}

9
src/views/system/archiveScopeManage/index.vue

@ -0,0 +1,9 @@
<template>
<div>归档范围管理</div>
</template>
<script>
</script>
<style lang='scss' scoped>
</style>

79
src/views/system/archivesCategory/archiveSealSetting/index.vue

@ -83,80 +83,9 @@ export default {
}
}
@mixin setting-item-font{
[data-theme="dark"] & {
color: #fff;
}
[data-theme="light"] & {
color: #0C0E1E;
}
}
@mixin setting-item-selected{
[data-theme="dark"] & {
color: #fff;
background-color: #02255f;
}
[data-theme="light"] & {
color: #545B65;
background-color: #F5F7FA;
}
}
.setting-contanier{
@include setting-box-style;
}
.chapter-tip{
padding: 10px 20px 10px 40px;
margin-bottom: 30px;
font-size: 12px;
color: #545B65;
line-height: 26px;
background-color: #EEF5FE;
border: 1px solid #CBDAFF;
border-left: 2px solid #0348F3;
p{
font-size: 14px;
color: #0C0E1E;
font-family: "iconfont" !important;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
&::before{
content: '\e61e';
color: #215EF4;
margin-left: -24px;
margin-right: 10px;
}
}
}
.chapter-setting{
display: flex;
justify-content: space-between;
}
.chapter-format{
padding-left: 42px;
}
.chapter-item{
display: flex;
justify-content: flex-start;
font-size: 14px;
height: 32px;
line-height: 32px;
margin-bottom: 20px;
p.item-title{
width: 70px;
@include setting-item-font;
text-align: right;
margin-right: 10px;
}
span.item-selected{
display: block;
width: 297px;
padding: 0 13px;
@include setting-item-selected;
}
}
.position-style{
position: relative;
@ -214,12 +143,4 @@ export default {
}
}
}
.chapter-enable{
display: flex;
justify-content: flex-start;
.chapter-edit{
margin-left: 36px;
}
}
</style>

9
src/views/system/fieldCorresManage/index.vue

@ -0,0 +1,9 @@
<template>
<div>字段对应管理</div>
</template>
<script>
</script>
<style lang='scss' scoped>
</style>

9
src/views/system/fourCharacterDetection/index.vue

@ -0,0 +1,9 @@
<template>
<div>四性检测管理</div>
</template>
<script>
</script>
<style lang='scss' scoped>
</style>

31
src/views/system/log/errorLog/index.vue

@ -124,38 +124,7 @@ export default {
</script>
<style lang="scss" scoped>
::v-deep .el-table__expanded-cell{
padding: 0 !important;
}
.demo-table-expand {
padding: 10px 30px;
background-color: #F5F9FC;
}
.demo-table-expand {
.el-form-item {
display: flex;
justify-content: flex-start;
margin-right: 0;
margin-bottom: 0;
width: 100%;
::v-deep .el-form-item__label{
width: 80px !important;
font-size: 12px;
color: #0C0E1E;
}
::v-deep .el-form-item__content {
font-size: 12px;
color: #545B65;
}
}
}
::v-deep .el-dialog .el-dialog__body{
padding: 10px 0 30px 0;
}
.java.hljs {
color: #545B65 !important;
background: transparent !important;
width: 100%;
height: 630px !important;
}
</style>

17
src/views/system/log/operateLog/index.vue

@ -123,21 +123,4 @@ export default {
</script>
<style lang="scss" scoped>
// .el-table td.el-table__cell div{
// display: flex;
// justify-content: flex-start;
// margin-bottom: 10px;
// }
// .el-table .el-form {
// padding: 0 10px;
// }
// ::v-deep .el-form-item--small .el-form-item__label{
// width: 80px;
// line-height: 28px;
// }
// ::v-deep .el-form-item__content{
// flex: 1;
// font-size: 12px;
// line-height: 28px;
// }
</style>

22
src/views/system/log/search.vue

@ -13,7 +13,7 @@
@keyup.enter.native="crud.toQuery"
>
<!-- <el-select slot="prepend" v-model="optionVal" style="width: 100px" @keyup.enter.native="crud.toQuery"> -->
<el-select slot="prepend" v-model="optionVal" style="width: 100px">
<el-select slot="prepend" v-model="optionVal" style="width: 92px">
<el-option
v-for="item in options"
:key="item.value"
@ -40,7 +40,8 @@
</div>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="delVisible = false">取消</el-button>
<el-button type="primary" @click="confirmDelAll">继续</el-button>
<el-button type="primary">继续</el-button>
<!-- @click="confirmDelAll" -->
</div>
</div>
</el-dialog>
@ -73,22 +74,7 @@ export default {
</script>
<style lang="scss" scoped>
::v-deep .input-prepend .el-input-group__prepend .el-input__inner{
height: 29px;
padding: 0 10px !important;
color: #545B65 !important;
border: 0;
border-right: 1px solid #E3E7EE !important;
border-radius: 0;
}
::v-deep .el-input-group__prepend div.el-select:hover .el-input__inner{
border-right: 1px solid #E3E7EE !important;
}
::v-deep .input-prepend .el-input-group__prepend .el-select__caret {
color: #545B65 !important;
}
::v-deep .input-prepend .el-input__inner{
padding-left: 110px;
padding-left: 100px;
}
</style>

9
src/views/system/processManage/index.vue

@ -0,0 +1,9 @@
<template>
<div>流程管理</div>
</template>
<script>
</script>
<style lang='scss' scoped>
</style>

3
src/views/system/role/index.vue

@ -309,6 +309,5 @@ export default {
}
</script>
<style rel="stylesheet/scss" lang="scss">
<style lang="scss" scoped>
</style>

155
src/views/system/watermarkManage/index.vue

@ -0,0 +1,155 @@
<template>
<div class="app-container row-container">
<div class="container-wrap">
<span class="right-top-line" />
<span class="left-bottom-line" />
<div class="waterMark-title">全局水印设置</div>
<div class="chapter-tip">
<p>注意</p>
<span>全局自定义水印可使用自定义文本或自定义图片生成水印水印统一采用平铺方式进行展示</span>
<span><i>自定义文本要求</i>字数不得超过20可自定义字号颜色透明度</span>
<span><i>自定义图片要求</i>图片可以使用.png或.jpg文件建议宽度控制在500px以内效果最佳</span>
</div>
<div class="waterMark-main">
<div class="waterMark-result">
<div class="chapter-item">
<p class="item-title">水印类型</p>
<span class="item-selected">默认版式</span>
</div>
<div class="chapter-item">
<p class="item-title">字号</p>
<span class="item-selected">20</span>
</div>
<div class="chapter-item">
<p class="item-title">颜色透明度</p>
<span class="item-selected">颜色透明度</span>
</div>
<div class="chapter-item">
<p class="item-title">内容</p>
<span class="item-selected item-remark">自定义全局水印测试</span>
</div>
</div>
<div class="waterMark-preview">
<div class="chapter-item">
<p class="item-title">效果预览</p>
<img src="~@/assets/images/system/xt-wm.png" alt="">
</div>
</div>
<div class="chapter-enable">
<div class="chapter-item">
<p class="item-title">是否启用</p>
<el-switch v-model="enable" class="isEnable-chapter" />
</div>
<div class="chapter-edit">
<el-button size="mini" @click="toEdit()">
<i class="iconfont icon-bianji" />
编辑
</el-button>
</div>
</div>
</div>
<eForm ref="cuform" />
</div>
</div>
</template>
<script>
import CRUD, { presenter, header, form, crud } from '@crud/crud'
import eForm from './module/form'
const defaultForm = { }
export default {
name: 'WatermarkManage',
components: { eForm },
cruds() {
return CRUD({ title: '全局水印设置', url: 'api/users', crudMethod: { }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() {
return {
enable: true
}
},
computed: {
},
created() {
},
mounted() {
},
methods: {
toEdit() {
this.$refs.cuform.cuDialogVisible = true
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/assets/styles/mixin.scss";
@import "~@/assets/styles/variables.scss";
@mixin title-bottom{
[data-theme="dark"] & {
padding: 20px;
border-bottom: 1px solid $mainColor;
}
[data-theme="light"] & {
margin-top: -20px;
padding-bottom: 20px;
border-bottom: 1px solid #EDEFF3;
}
}
@mixin tip-margin{
[data-theme="dark"] & {
margin: 0 20px 30px 20px;
}
}
@mixin waterMark-main-margin{
[data-theme="dark"] & {
margin: 0 20px;
}
}
.waterMark-main{
width: 1220px;
min-height: calc(100vh - 398px);
@include waterMark-main-margin;
}
.waterMark-title{
margin-bottom: 20px;
@include tree_font_color;
@include title-bottom;
}
.chapter-tip{
width: 1220px;
@include tip-margin;
span{
display: block;
position: relative;
padding-left: 14px;
&::before{
content: '';
position: absolute;
left: 0;
top: 50%;
width: 6px;
height: 6px;
border-radius: 50%;
background-color: #9BA6B7;
transform: translateY(-50%);
}
i{
font-style: normal;
font-weight: bold;
@include tree_font_color;
}
}
}
.waterMark-preview{
img{
display: block;
width: 360px;
height: 518px;
}
}
</style>

271
src/views/system/watermarkManage/module/form.vue

@ -0,0 +1,271 @@
<template>
<el-dialog :close-on-click-modal="false" :visible.sync="cuDialogVisible" :title="title">
<div class="setting-dialog">
<el-form ref="formData" :model="form" :rules="rules" size="small" label-width="110px">
<el-row>
<el-form-item label="水印类型" prop="type">
<el-radio-group v-model="form.type" size="mini" style="width: 178px">
<el-radio-button label="0">文本</el-radio-button>
<el-radio-button label="1">图片</el-radio-button>
</el-radio-group>
</el-form-item>
</el-row>
<el-row v-if="form.type.toString() === '0'">
<el-col :span="12">
<el-form-item label="字号" prop="fontSize">
<el-select v-model="form.fontSize">
<el-option v-for="option in fontSizeOptions" :key="option.value" :label="option.label" :value="option.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="颜色、透明度" prop="color" class="color-item">
<el-input v-model="form.color" placeholder="请选择" readonly>
<el-color-picker slot="prepend" v-model="form.color" show-alpha :predefine="predefineColors" />
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.type.toString() === '0'">
<el-form-item label="内容" prop="content">
<el-input v-model="form.content" type="textarea" :rows="4" placeholder="请输入内容" style="width: 576px;" />
</el-form-item>
</el-row>
<el-row v-if="form.type.toString() === '1'">
<el-col :span="12" class="upload-wm">
<el-form-item label="上传" prop="upload">
<el-upload
:action="upload_qiniu_url"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:on-error="handleError"
:before-upload="beforeAvatarUpload"
:data="qiniuData"
>
<el-button size="small" type="primary"><i class="iconfont icon-fabu" />点击上传</el-button>
<!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png文件且不超过500kb</div> -->
</el-upload>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="透明度" prop="alpha" class="color-item">
<el-input v-model="form.alpha" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.type.toString() === '1'">
<el-form-item label="预览" prop="imageUrl">
<el-input v-show="false" v-model="form.imageUrl" />
<img :src="form.imageUrl" alt class="preview-img">
</el-form-item>
</el-row>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button @click="cuDialogVisible = false">取消</el-button>
<el-button type="primary" :loading="loading" @click="save">确定</el-button>
</div>
</el-dialog>
</template>
<script>
import { form } from '@crud/crud'
// import { getQiniuToken } from '@/api/upload/upload'
const defaultForm = {
id: null,
type: '0',
fontSize: null,
color: 'rgba(0, 0, 0, 0.5)',
content: '自定义全局水印测试',
alpha: '50%',
imageUrl: null
}
export default {
mixins: [form(defaultForm)],
data() {
return {
title: '编辑全局水印',
cuDialogVisible: false,
loading: false,
fontSizeOptions: [],
predefineColors: [
'#ff4500',
'#ff8c00',
'#ffd700',
'#90ee90',
'#00ced1',
'#1e90ff',
'#c71585',
'rgba(255, 69, 0, 0.68)',
'rgb(255, 120, 0)',
'hsv(51, 100, 98)',
'hsva(120, 40, 94, 0.5)',
'hsl(181, 100%, 37%)',
'hsla(209, 100%, 56%, 0.73)',
'#c7158577'
],
qiniuData: {
key: '',
token: ''
},
//
upload_qiniu_url: 'https://upload.qiniup.com/',
//
upload_qiniu_addr: 'qiniu.aiyxlib.com',
rules: {
type: [
{ required: true, message: '请选择水印类型', trigger: 'change' }
],
fontSize: [
{ required: true, message: '请选择字号', trigger: 'change' }
],
color: [
{ required: true, message: '请选择颜色、透明度', trigger: 'change' }
],
content: [
{ required: true, message: '内容不可为空', trigger: 'blur' }
],
uplpad: [
{ required: true, message: '请上传图片', trigger: 'change' }
],
alpha: [
{ required: true, message: '透明度不可为空', trigger: 'blur' }
],
imageUrl: [
{ required: true, message: '请上传图片', trigger: 'blur' }
]
}
}
},
mounted() {
this.getFontSizeOptions()
},
methods: {
getFontSizeOptions() {
for (var i = 8; i <= 40; i++) {
if (i % 2 === 0) {
this.fontSizeOptions.push({ 'label': i, 'value': i })
}
}
},
// getQiniuToken() {
// const _this = this
// getQiniuToken().then(res => {
// if (res.code === 200) {
// this.qiniuData.token = res.data
// } else {
// _this.$message({
// message: res.msg,
// duration: 2000,
// type: 'warning'
// })
// }
// })
// },
//
beforeAvatarUpload(file) {
this.qiniuData.key = file.name
const isJPG = file.type === 'image/jpeg' || file.type === 'image/png'
const isLt2M = file.size / 1024 / 1024 < 2
if (!isJPG) {
this.$message.error('图片只支持bmp、jpg、png、gif格式的文件 !')
}
if (!isLt2M) {
this.$message.error('图片大小不能超过 2MB !')
}
return isJPG && isLt2M
},
handleAvatarSuccess: function(res, file) {
this.form.imageUrl = 'http://' + this.upload_qiniu_addr + '/' + res.key
console.log(this.form.imageUrl)
},
handleError: function(res) {
this.$message({
message: '上传失败',
duration: 2000,
type: 'warning'
})
},
save() {
this.$refs['formData'].validate((valid) => {
if (valid) {
this.loading = true
// edit(this.formData.fields).then((res) => {
// this.$message({
// message: '',
// type: 'success',
// duration: 2500
// })
// this.cuDialogVisible = false
// this.loading = false
// this.$emit('refresh')
// })
// this.cuDialogVisible = false
// this.loading = false
// this.$emit('refresh')
} else {
return false
}
})
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog .el-dialog__body{
padding-bottom: 0;
}
.dialog-footer{
margin-top: 20px;
}
.color-item{
::v-deep .el-form-item__content{
.el-input-group--prepend{
display: flex;
height: 34px !important;
padding-left: 10px;
border: 1px solid #e6e8ed;
border-radius: 4px;
.el-input-group__prepend{
width: 30px;
height: 30px !important;
padding: 0 !important;
border: none !important;
border-radius: 0 !important;
background-color: transparent !important;
.el-color-picker__trigger{
width: 30px !important;
height: 30px !important;
// padding: 6px !important;
border: none !important;
border-radius: 0 !important;
background-color: transparent !important;
}
.el-color-picker__color{
border: none !important;
}
}
.el-input__inner{
padding-left: 10px !important;
border: none !important;
}
}
}
}
.upload-wm{
::v-deep .el-upload {
.el-button{
color: #fff !important;
background-color: #1F55EB !important;
border: none !important;
}
}
}
.preview-img{
width: 590px;
height: 317px;
background: url('~@/assets/images/system/default-img.jpg') no-repeat;
background-size: 100% 100%;
}
</style>
Loading…
Cancel
Save