Browse Source

预归档页面

master
xuhuajiao 2 years ago
parent
commit
423fadf5e5
  1. 10
      .env.development
  2. 110
      src/assets/iconfonts/light/iconfont.css
  3. 2
      src/assets/iconfonts/light/iconfont.js
  4. 182
      src/assets/iconfonts/light/iconfont.json
  5. BIN
      src/assets/iconfonts/light/iconfont.ttf
  6. BIN
      src/assets/iconfonts/light/iconfont.woff
  7. BIN
      src/assets/iconfonts/light/iconfont.woff2
  8. 1
      src/assets/icons/svg/sr-dngl.svg
  9. 1
      src/assets/icons/svg/sr-ygdk.svg
  10. BIN
      src/assets/images/system/zwsj.png
  11. 93
      src/assets/styles/yxk-admin.scss
  12. 3
      src/views/components/BindingTagDlg.vue
  13. 93
      src/views/components/category/PreviewForm.vue
  14. 67
      src/views/prearchiveLibrary/index.vue
  15. 210
      src/views/prearchiveLibrary/module/batchFile.vue
  16. 22
      src/views/prearchiveLibrary/module/form.vue
  17. 49
      src/views/prearchiveLibrary/module/mergeFile.vue
  18. 148
      src/views/prearchiveLibrary/module/moveFile.vue
  19. 32
      src/views/prearchiveLibrary/module/tree.json
  20. 3
      src/views/system/fieldCorresManage/index.vue
  21. 82
      src/views/system/fieldCorresManage/module/form.vue
  22. 8
      src/views/system/processManage/processDeployment/module/form.vue
  23. 2
      src/views/system/role/index.vue

10
.env.development

@ -3,16 +3,16 @@ ENV = 'development'
# 接口地址
#内网服务地址
# VUE_APP_BASE_API = 'http://192.168.99.107:7077'
# VUE_APP_WS_API = 'ws://192.168.99.107:7077'
# VUE_APP_CAMERA_API = '192.168.99.107:3000'
VUE_APP_BASE_API = 'http://192.168.99.107:7077'
VUE_APP_WS_API = 'ws://192.168.99.107:7077'
VUE_APP_CAMERA_API = '192.168.99.107:3000'
# 许镇-本地服地址
# VUE_APP_BASE_API = 'http://192.168.99.84:7070'
# VUE_APP_WS_API = 'ws://192.168.99.84:7070'
VUE_APP_BASE_API = 'http://192.168.99.67:11100'
VUE_APP_WS_API = 'ws://192.168.99.67:11100'
# VUE_APP_BASE_API = 'http://192.168.99.67:11100'
# VUE_APP_WS_API = 'ws://192.168.99.67:11100'
# 是否启用 babel-plugin-dynamic-import-node插件
VUE_CLI_BABEL_TRANSPILE_MODULES = true

110
src/assets/iconfonts/light/iconfont.css

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 3966148 */
src: url('iconfont.woff2?t=1682583233390') format('woff2'),
url('iconfont.woff?t=1682583233390') format('woff'),
url('iconfont.ttf?t=1682583233390') format('truetype');
src: url('iconfont.woff2?t=1685929738396') format('woff2'),
url('iconfont.woff?t=1685929738396') format('woff'),
url('iconfont.ttf?t=1685929738396') format('truetype');
}
.iconfont {
@ -13,6 +13,110 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-zhengque:before {
content: "\e653";
}
.icon-cuowu:before {
content: "\e654";
}
.icon-huifu:before {
content: "\e655";
}
.icon-dian2:before {
content: "\e656";
}
.icon-dian:before {
content: "\e657";
}
.icon-shangchuanchenggong:before {
content: "\e658";
}
.icon-dayin:before {
content: "\e659";
}
.icon-shangchuanshibai:before {
content: "\e65a";
}
.icon-xiaowenjian:before {
content: "\e65b";
}
.icon-bendiguajie:before {
content: "\e65c";
}
.icon-zhongxinjiance:before {
content: "\e65d";
}
.icon-tianjiawenjian:before {
content: "\e65e";
}
.icon-shangchuan2:before {
content: "\e650";
}
.icon-a-1:before {
content: "\e64f";
}
.icon-a-2:before {
content: "\e651";
}
.icon-xiazai:before {
content: "\e652";
}
.icon-zhengli:before {
content: "\e64e";
}
.icon-changgui:before {
content: "\e64d";
}
.icon-yuguidangku:before {
content: "\e64b";
}
.icon-shoujizhengbian:before {
content: "\e64c";
}
.icon-yidong:before {
content: "\e645";
}
.icon-piliangchengjian:before {
content: "\e646";
}
.icon-hebingchengjian:before {
content: "\e647";
}
.icon-danganfenlei:before {
content: "\e648";
}
.icon-gengduo:before {
content: "\e649";
}
.icon-fenlei:before {
content: "\e64a";
}
.icon-tupianyulan:before {
content: "\e644";
}

2
src/assets/iconfonts/light/iconfont.js
File diff suppressed because it is too large
View File

182
src/assets/iconfonts/light/iconfont.json

@ -5,6 +5,188 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "35809396",
"name": "正确",
"font_class": "zhengque",
"unicode": "e653",
"unicode_decimal": 58963
},
{
"icon_id": "35809397",
"name": "错误",
"font_class": "cuowu",
"unicode": "e654",
"unicode_decimal": 58964
},
{
"icon_id": "35809398",
"name": "恢复",
"font_class": "huifu",
"unicode": "e655",
"unicode_decimal": 58965
},
{
"icon_id": "35809399",
"name": "点2",
"font_class": "dian2",
"unicode": "e656",
"unicode_decimal": 58966
},
{
"icon_id": "35809400",
"name": "点",
"font_class": "dian",
"unicode": "e657",
"unicode_decimal": 58967
},
{
"icon_id": "35809401",
"name": "上传成功",
"font_class": "shangchuanchenggong",
"unicode": "e658",
"unicode_decimal": 58968
},
{
"icon_id": "35809402",
"name": "打印",
"font_class": "dayin",
"unicode": "e659",
"unicode_decimal": 58969
},
{
"icon_id": "35809403",
"name": "上传失败",
"font_class": "shangchuanshibai",
"unicode": "e65a",
"unicode_decimal": 58970
},
{
"icon_id": "35809404",
"name": "小文件",
"font_class": "xiaowenjian",
"unicode": "e65b",
"unicode_decimal": 58971
},
{
"icon_id": "35809405",
"name": "本地挂接",
"font_class": "bendiguajie",
"unicode": "e65c",
"unicode_decimal": 58972
},
{
"icon_id": "35809406",
"name": "重新检测",
"font_class": "zhongxinjiance",
"unicode": "e65d",
"unicode_decimal": 58973
},
{
"icon_id": "35809407",
"name": "添加文件",
"font_class": "tianjiawenjian",
"unicode": "e65e",
"unicode_decimal": 58974
},
{
"icon_id": "35809370",
"name": "上传2",
"font_class": "shangchuan2",
"unicode": "e650",
"unicode_decimal": 58960
},
{
"icon_id": "35809352",
"name": "1",
"font_class": "a-1",
"unicode": "e64f",
"unicode_decimal": 58959
},
{
"icon_id": "35809354",
"name": "2",
"font_class": "a-2",
"unicode": "e651",
"unicode_decimal": 58961
},
{
"icon_id": "35809355",
"name": "下载",
"font_class": "xiazai",
"unicode": "e652",
"unicode_decimal": 58962
},
{
"icon_id": "35809307",
"name": "整理",
"font_class": "zhengli",
"unicode": "e64e",
"unicode_decimal": 58958
},
{
"icon_id": "35809305",
"name": "常规",
"font_class": "changgui",
"unicode": "e64d",
"unicode_decimal": 58957
},
{
"icon_id": "35809299",
"name": "预归档库",
"font_class": "yuguidangku",
"unicode": "e64b",
"unicode_decimal": 58955
},
{
"icon_id": "35809300",
"name": "收集整编",
"font_class": "shoujizhengbian",
"unicode": "e64c",
"unicode_decimal": 58956
},
{
"icon_id": "35808830",
"name": "移动",
"font_class": "yidong",
"unicode": "e645",
"unicode_decimal": 58949
},
{
"icon_id": "35808831",
"name": "批量成件",
"font_class": "piliangchengjian",
"unicode": "e646",
"unicode_decimal": 58950
},
{
"icon_id": "35808833",
"name": "合并成件",
"font_class": "hebingchengjian",
"unicode": "e647",
"unicode_decimal": 58951
},
{
"icon_id": "35808942",
"name": "档案分类",
"font_class": "danganfenlei",
"unicode": "e648",
"unicode_decimal": 58952
},
{
"icon_id": "35808943",
"name": "更多",
"font_class": "gengduo",
"unicode": "e649",
"unicode_decimal": 58953
},
{
"icon_id": "35808945",
"name": "分类",
"font_class": "fenlei",
"unicode": "e64a",
"unicode_decimal": 58954
},
{
"icon_id": "35165878",
"name": "图片预览",

BIN
src/assets/iconfonts/light/iconfont.ttf

BIN
src/assets/iconfonts/light/iconfont.woff

BIN
src/assets/iconfonts/light/iconfont.woff2

1
src/assets/icons/svg/sr-dngl.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1685927096385" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4914" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M1012.462933 552.277333V240.708267h-0.546133l0.546133-0.682667-150.459733-137.352533a224.0512 224.0512 0 0 0-151.278933-58.709334H328.772267c-56.1152 0-109.909333 20.8896-151.278934 58.709334L27.0336 240.162133l0.546133 0.546134H27.0336v640.8192c0 50.244267 40.7552 90.9312 90.999467 90.9312h803.498666c50.244267 0 90.9312-40.686933 90.9312-90.9312V552.277333zM635.016533 625.527467a135.9872 135.9872 0 0 1-229.102933 0h229.102933zM100.215467 313.7536h222.549333a211.5584 211.5584 0 0 0 197.700267 133.802667 211.5584 211.5584 0 0 0 197.700266-133.802667h221.184v235.52H100.215467v-235.52z m123.972266-160.017067c28.672-26.2144 65.809067-40.618667 104.584534-40.618666h381.952c38.775467 0 75.9808 14.404267 104.6528 40.618666l95.0272 86.903467H658.6368c0 73.864533-61.8496 133.802667-138.171733 133.802667-76.322133 0-138.171733-59.938133-138.171734-133.802667H129.024l95.163733-86.903467z m715.1616 727.722667a17.8176 17.8176 0 0 1-17.8176 17.749333H118.033067a17.8176 17.8176 0 0 1-17.8176-17.749333v-256h224.324266a209.169067 209.169067 0 0 0 391.850667 0h222.958933v256z" p-id="4915"></path></svg>

1
src/assets/icons/svg/sr-ygdk.svg

@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1685927091547" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4779" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M959.488 108.3392c0-2.8672-0.136533-5.7344-0.477867-8.533333a71.338667 71.338667 0 0 0-27.579733-51.6096 72.4992 72.4992 0 0 0-46.216533-16.725334H98.440533C80.964267 31.470933 64.853333 37.751467 52.224 48.196267a71.338667 71.338667 0 0 0-27.648 51.6096 79.394133 79.394133 0 0 0-0.4096 8.533333v85.8112c0 3.208533 0 6.3488 0.2048 9.489067V930.474667c0 39.1168 30.72 70.792533 68.471467 70.792533h797.9008c37.819733 0 68.539733-31.675733 68.539733-70.792533V203.5712l0.2048-9.4208V108.3392zM530.568533 675.293867a39.458133 39.458133 0 0 1-38.775466 40.072533 39.458133 39.458133 0 0 1-38.7072-40.072533c0-22.1184 17.339733-40.1408 38.7072-40.1408 21.435733 0 38.775467 18.0224 38.775466 40.1408zM453.085867 258.4576c0-22.1184 17.339733-40.072533 38.7072-40.072533 21.435733 0 38.775467 17.954133 38.775466 40.072533a39.458133 39.458133 0 0 1-38.775466 40.1408 39.458133 39.458133 0 0 1-38.7072-40.1408z m78.4384 99.669333c37.819733-16.1792 64.375467-54.6816 64.375466-99.669333 0-59.392-46.557867-107.656533-104.0384-107.656533-57.5488 0-104.106667 48.196267-104.106666 107.656533 0 44.987733 26.624 83.490133 64.375466 99.669333v54.408534C238.933333 400.452267 93.525333 292.0448 93.525333 194.1504V108.3392c0-0.750933 0.2048-1.501867 0.546134-2.184533H889.514667a6.007467 6.007467 0 0 1 0.273066 0.682666l0.068267 92.637867c-5.12 96.4608-149.026133 201.181867-358.4 213.060267v-54.4768zM93.7984 930.474667l-0.682667-584.021334c75.776 76.731733 207.0528 129.979733 359.082667 137.898667v91.272533c-37.888 16.110933-64.443733 54.613333-64.443733 99.601067 0 59.460267 46.557867 107.656533 104.106666 107.656533 57.480533 0 104.0384-48.196267 104.0384-107.656533 0-44.987733-26.624-83.490133-64.375466-99.601067V484.420267c151.688533-7.918933 282.760533-60.962133 358.6048-137.489067l0.682666 582.656-797.013333 0.955733z" p-id="4780"></path></svg>

BIN
src/assets/images/system/zwsj.png

After

Width: 282  |  Height: 182  |  Size: 24 KiB

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

@ -2174,3 +2174,96 @@ input[type ='number'] {
@include btn_blue_style;
}
}
.corres-field-main{
display: flex;
justify-content: space-between;
height: 428px;
border: 1px solid #E6E8ED;
overflow: hidden;
overflow-y: scroll;
.corres-field-list{
// border-right: 1px solid #E6E8ED;
.corres-field-title{
height: 60px;
line-height: 20px;
background-color: #F5F9FC;
text-align: center;
p{
font-size: 14px;
color: #0C0E1E;
padding-top: 10px;
}
span{
font-size: 12px;
color: #0348F3;
}
}
.field-list{
// height: 360px;
// overflow: hidden;
// overflow-y: scroll;
border-right: 1px solid #E6E8ED;
.field-item{
display: flex;
justify-content: space-between;
height: 40px;
line-height: 40px;
border-bottom: 1px solid #E6E8ED;
p{
flex: 1;
font-size: 14px;
color: #545B65;
text-align: center;
}
.el-select{
width: 302px;
border-right: 1px solid #E6E8ED;
.el-input__inner{
height: 38px;
line-height: 38px;
border: none;
}
}
.field-state{
width: 88px;
text-align: center;
border-left: 1px solid #E6E8ED;
span{
display: inline-block;
width: 48px;
height: 22px;
line-height: 22px;
font-size: 12px;
border-radius: 3px;
}
span.is-select{
color: #0348F3;
background-color: #EEF5FE;
border: 1px solid #90B0F9;
}
span.is-hide{
color: #A6ADB6;
background-color: #F3F5F9;
border: 1px solid #E6E8ED;
}
}
}
}
}
.corres-field-middle,
.corres-field-right{
flex: 1;
}
.corres-field-right{
border-right: none;
}
}
.el-upload {
.el-button{
color: #fff !important;
background-color: #1F55EB !important;
border: none !important;
}
}

3
src/views/components/BindingTagDlg.vue

@ -274,7 +274,8 @@ export default {
},
async getDevId() {
return await new Promise(async(resolve, reject) => {
const mac = await RFID.getDeviceMac()
// const mac = await RFID.getDeviceMac()
const mac = '12-34-56-12-34-56'
if (!mac || mac === '') {
this.step1Message = '获取mac地址失败'
this.errorStep = 1

93
src/views/components/category/PreviewForm.vue

@ -45,12 +45,28 @@
</el-col>
</draggable>
</el-row>
<el-row v-if="!isHasCode" style="border-top: 1px solid #339cff; padding: 20px 20px 0 20px;">
<el-row v-if="!isHasCode" class="preview-form-bottom">
<el-col v-for="(item,index) in formPreviewData.slice(formPreviewData.length-1,formPreviewData.length)" :key="'barcode'+index">
<el-form-item :label="item.fieldCnName" :prop="item.fieldName">
<el-input v-model="addOrUpdateForm[item.fieldName]" type="text" style="width: 510px" :disabled="isDisabled" :validate-event="!isDisabled" @keyup.enter.native="isRepeatHandle(item)" @blur="isRepeatHandle(item)" />
</el-form-item>
</el-col>
<el-col class="upload-wm">
<el-form-item label="电子原件" :prop="fileOriginal">
<el-input v-model="fileOriginal" type="text" style="width: 420px" />
<el-upload
class="upload-btn"
: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-shangchuan" />上传</el-button>
</el-upload>
</el-form-item>
</el-col>
</el-row>
</el-form>
@ -122,8 +138,11 @@ export default {
},
data() {
return {
addOrUpdateForm: {},
rules: {},
fileOriginal: null,
addOrUpdateForm: {
},
rules: {
},
popoverTableData: [], // popover - popoverTableData
popoverVisible: false, // popover - visible
currentFieldName: null, // popover fieldName
@ -142,7 +161,15 @@ export default {
label: node.dicName,
children: node.childMenus
}
}
},
qiniuData: {
key: '',
token: ''
},
//
upload_qiniu_url: 'https://upload.qiniup.com/',
//
upload_qiniu_addr: 'qiniu.aiyxlib.com'
}
},
watch: {
@ -448,6 +475,33 @@ export default {
handleClose(done) {
this.popoverVisible = false
done()
},
handleChange(file, fileList) {
this.fileList = fileList.slice(-3)
},
//
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'
})
}
}
}
@ -466,12 +520,22 @@ export default {
}
}
@mixin preview-border-color{
[data-theme="dark"] & {
border-color: #3a99fd;
}
[data-theme="light"] & {
border-color: #EDEFF3;
}
}
.preview-content {
padding: 20px 0 0 0 !important;
margin-top: 0 !important;
border-radius: 4px;
margin: 0 auto;
@include preview-border-style;
border: 1px solid;
@include preview-border-color;
.el-row {
margin-left: 0 !important;
margin-right: 0 !important;
@ -510,4 +574,23 @@ export default {
line-height: 30px;
}
}
.preview-form-bottom{
padding: 20px 20px 0 20px;
border-top: 1px solid;
@include preview-border-color;
}
.upload-wm{
display: flex;
justify-content: flex-start;
::v-deep .el-form-item__content{
width: 510px !important;
display: flex;
justify-content: space-between;
.upload-btn{
margin-right: 0;
margin-left: 10px;
}
}
}
</style>

67
src/views/prearchiveLibrary/index.vue

@ -26,7 +26,7 @@
<div class="head-container">
<div class="head-search">
<!-- 搜索 -->
<el-input v-model="query.name" clearable size="small" placeholder="输入部门名称搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<el-input v-model="query.name" clearable size="small" placeholder="输入题名搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<rrOperation />
</div>
<crudOperation :permission="permission">
@ -38,10 +38,12 @@
<!-- 删除btn 多选 -->
<el-button size="mini" :loading="crud.delAllLoading" :disabled="crud.selections.length === 0" @click="toDelete(crud.selections)"><i class="iconfont icon-shanchu" />删除</el-button>
</template>
<template v-slot:right>
<el-button size="mini" :disabled="crud.selections.length === 0">批量成件</el-button>
<el-button size="mini" :disabled="crud.selections.length === 0">合并成件</el-button>
<el-button size="mini" :disabled="crud.selections.length === 0">移动</el-button>
<template v-slot:rightButtonGroup>
<div>
<el-button size="mini" :disabled="crud.selections.length === 0" @click="handleBatch"><i class="iconfont icon-piliangchengjian" />批量成件</el-button>
<el-button size="mini" :disabled="crud.selections.length === 0" @click="mergeVisible = true"><i class="iconfont icon-hebingchengjian" />合并成件</el-button>
<el-button size="mini" :disabled="crud.selections.length === 0" @click="handleMove"><i class="iconfont icon-yidong" />移动</el-button>
</div>
</template>
</crudOperation>
</div>
@ -85,6 +87,31 @@
</div>
</div>
</el-dialog>
<!-- 批量成件 -->
<batchFile ref="batchForm" />
<!-- 批量成件 -->
<moveFile ref="moveForm" />
<!-- 合并成件 -->
<el-dialog class="dialog-middle" :modal-append-to-body="false" :close-on-click-modal="false" :before-close="handleClose" :visible="mergeVisible" title="合并成件">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="80px">
<el-form-item label="档案门类" prop="target">
<treeselect
v-model="form.target"
:options="targetOptions"
style="width: 400px;"
placeholder="请选择档案门类"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="mergeVisible = false">取消</el-button>
<el-button type="primary" @click="handleForm('add')">确定</el-button>
</div>
</div>
</el-dialog>
</div>
</div>
</div>
@ -96,13 +123,18 @@ import CRUD, { presenter, header } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination'
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
// import { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
import dataJson from './data.json'
import tableJson from './table.json'
import eForm from './module/form.vue'
import batchFile from './module/batchFile.vue'
import moveFile from './module/moveFile.vue'
export default {
name: 'PrearchiveLibrary',
components: { eForm, rrOperation, crudOperation, pagination },
components: { eForm, batchFile, moveFile, Treeselect, rrOperation, crudOperation, pagination },
cruds() {
return [
CRUD({
@ -134,7 +166,16 @@ export default {
},
treeList: [],
table: [],
deleteVisible: false
deleteVisible: false,
mergeVisible: false,
targetOptions: [],
form: {},
loadSource: [],
rules: {
target: [
{ required: true, message: '请选择档案门类', trigger: 'input' }
]
}
}
},
computed: {
@ -177,6 +218,7 @@ export default {
},
// -form/-api
handleForm(type) {
this.mergeVisible = false
this.$refs.eform.formVisible = true
if (type === 'add') {
this.$refs.eform.formTitle = '新增文件'
@ -242,6 +284,16 @@ export default {
// this.$refs.previewForm.FetchNoFormatField(this.categoryId)
// })
// })
},
handleBatch() {
this.$refs.batchForm.batchVisible = true
},
handleClose(done) {
this.mergeVisible = false
done()
},
handleMove() {
this.$refs.moveForm.moveVisible = true
}
}
}
@ -251,7 +303,6 @@ export default {
[data-theme=dark] .elect-cont-left .container-left {
min-height: calc(100vh - 158px);
}
.tree-scroll{
font-size: 14px;
}

210
src/views/prearchiveLibrary/module/batchFile.vue

@ -0,0 +1,210 @@
<template>
<!-- 批量成件 -->
<el-dialog class="batch-form" append-to-body :modal-append-to-body="false" :close-on-click-modal="false" :before-close="handleClose" :visible="batchVisible" title="批量成件">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="130px">
<el-form-item label="对应规则" prop="rules">
<el-select v-model="form.rules" placeholder="请选择" style="width: 225px;" @change="selectRules(val)">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="归档范围" prop="scope">
<el-input v-model="form.scope" type="text">
<i slot="suffix" class="el-input__icon iconfont icon-sousuo" />
</el-input>
</el-form-item>
<el-form-item label="源分类" prop="classify">
<el-input v-model="form.classify" type="text" />
</el-form-item>
<el-form-item label="目标门类" prop="target">
<treeselect
v-model="form.target"
:options="targetOptions"
placeholder="请选择"
/>
</el-form-item>
</el-form>
<div class="corres-field-main">
<div class="corres-field-list corres-field-left">
<div class="corres-field-title">
<p>字段取值</p>
</div>
<div class="field-list">
<div v-for="(item, index) in selectStatus" :key="index" class="field-item">
<el-select :key="index" v-model="item.fiedType">
<el-option
v-for="v in fiedOption"
:key="v.value"
:label="v.label"
:value="v.value"
/>
</el-select>
</div>
</div>
</div>
<div class="corres-field-list corres-field-middle">
<div class="corres-field-title">
<p>源分类文件库-文件表</p>
<span>文件库分类A</span>
</div>
<div class="field-list">
<div v-for="(item, index) in selectStatus" :key="index" class="field-item">
<el-select :key="index" v-model="item.value">
<el-option
v-for="v in selectOptions"
:key="v.value"
:label="v.label"
:value="v.value"
/>
</el-select>
<div v-if="!item.mode" class="field-state"><span :class=" item.isType === 1 ? 'is-select' : 'is-hide'">{{ item.isType === 1 ? '显示': '隐藏' }}</span></div>
</div>
</div>
</div>
<div class="corres-field-list corres-field-right">
<div class="corres-field-title">
<p>目标门类整理库/管理库-文件表</p>
<span>文书档案文件</span>
</div>
<div class="field-list">
<div v-for="(item,index) in targetData" :key="index" class="field-item">
<p>{{ item.label }}</p>
<div class="field-state"><span :class=" item.isType === 1 ? 'is-select' : 'is-hide'">{{ item.isType === 1 ? '显示': '隐藏' }}</span></div>
</div>
</div>
</div>
<div v-if="selectStatus.length === 0" class="empty-data" />
</div>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="formVisible = false">取消</el-button>
<el-button type="primary" @click="formVisible = false">确定</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
// import { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
import fieldData from './data.json'
export default {
name: 'BatchFile',
components: { Treeselect },
data() {
return {
batchVisible: false,
options: [
{
value: '选项1',
label: '规则A'
}, {
value: '选项2',
label: '规则B'
}, {
value: '选项3',
label: '规则C'
}
],
targetOptions: [],
form: {
rules: null,
scope: null,
classify: '',
target: null
},
loadSource: [],
rules: {
target: [
{ required: true, message: '请选择档案门类', trigger: 'input' }
]
},
fiedOption: [
{ label: '字段值', value: '字段值', isType: 1 },
{ label: '默认值', value: '默认值', isType: 2 }
],
fiedType: null,
selectStatus: [],
selectOptions: [
{ label: '字段A', value: '字段A', isType: 1 },
{ label: '字段B', value: '字段B', isType: 1 },
{ label: '字段C', value: '字段C', isType: 0 },
{ label: '字段D', value: '字段D', isType: 1 }
],
targetData: []
}
},
created() {
},
methods: {
selectRules(val) {
this.selectStatus = []
this.targetData = fieldData
this.targetData.forEach((item, index) => {
this.selectStatus.push({ mode: true, value: '' })
})
},
handleClose(done) {
this.batchVisible = false
done()
}
}
}
</script>
<style lang="scss" scoped>
.batch-form{
::v-deep .el-dialog{
width: 828px !important;
}
.corres-field-left{
width: 146px;
.corres-field-title{
p{
padding-top: 0 !important;
line-height: 60px;
}
}
.field-list{
.field-item{
width: 146px;
::v-deep .el-select{
width: 145px !important;
border-right: none;
}
}
}
}
.corres-field-middle{
.field-list{
.field-item{
width: 315px;
::v-deep .el-select{
width: 314px !important;
border-right: none;
}
}
}
}
}
.corres-field-main{
position: relative;
}
.empty-data{
position: absolute;
top: 60px;
left: 0;
width: 100%;
height: calc(100% - 60px);
background: url('~@/assets/images/system/zwsj.png') no-repeat center center #fff;
background-size: 282px 182px;
}
</style>

22
src/views/prearchiveLibrary/module/form.vue

@ -1,11 +1,12 @@
<template>
<!--新增 / 编辑 表单组件-->
<el-dialog class="preview-dialog" :modal-append-to-body="false" :close-on-click-modal="false" :before-close="handleClose" :visible="formVisible" :title="formTitle">
<el-dialog class="preview-dialog" :modal-append-to-body="false" :close-on-click-modal="false" append-to-body :before-close="handleClose" :visible="formVisible" :title="formTitle">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<!-- form -->
<!-- <PreviewForm ref="previewForm" :form-preview-data.sync="formPreviewData" :selected-category="selectedCategory" :parents-id="parentsId" :arc-id="arcId" :is-des-form-type="isDesFormType" @emitTableList="getTableList" /> -->
<!-- @emitTableList="getTableList" -->
<PreviewForm ref="previewForm" :form-preview-data.sync="formPreviewData" :selected-category="selectedCategory" :parents-id="parentsId" :arc-id="arcId" :is-des-form-type="isDesFormType" :is-disabled="isDisabled" :is-has-code="isHasCode" />
<div slot="footer" class="dialog-footer">
<!-- :loading="crud.status.cu === 2" -->
<el-button type="text" @click="formVisible = false">取消</el-button>
@ -16,16 +17,27 @@
</template>
<script>
// import PreviewForm from '@/views/components/category/PreviewForm'
import PreviewForm from '@/views/components/category/PreviewForm'
import addJson from '../add.json'
export default {
// components: { PreviewForm },
components: { PreviewForm },
data() {
return {
formVisible: false,
formTitle: '新增文件',
loading: false
loading: false,
formPreviewData: null,
selectedCategory: null,
parentsId: null,
arcId: null,
isDesFormType: 'arcives',
isDisabled: true,
isHasCode: false
}
},
created() {
this.formPreviewData = addJson
},
methods: {
handleClose(done) {
done()

49
src/views/prearchiveLibrary/module/mergeFile.vue

@ -1,49 +0,0 @@
<template>
<!-- 合并成件 -->
<el-dialog :modal-append-to-body="false" :close-on-click-modal="false" :before-close="handleClose" :visible="mergeVisible" title="合并成件">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-form ref="form" :inline="true" :model="form" :rules="rules" size="small" label-width="80px">
<el-form-item label="档案门类" prop="target">
<treeselect
v-model="form.target"
:options="targetOptions"
:load-options="loadSource"
style="width: 400px;"
placeholder="请选择档案门类"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="formVisible = false">取消</el-button>
<el-button type="primary" @click="formVisible = false">确定</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
export default {
data() {
return {
mergeVisible: false,
targetOptions: [],
rules: {
target: [
{ required: true, message: '请选择档案门类', trigger: 'input' }
]
}
}
},
methods: {
handleClose(done) {
this.mergeVisible = false
done()
}
}
}
</script>
<style lang="scss" scoped>
</style>

148
src/views/prearchiveLibrary/module/moveFile.vue

@ -0,0 +1,148 @@
<template>
<!-- 移动 -->
<el-dialog class="move-form" append-to-body :modal-append-to-body="false" :close-on-click-modal="false" :before-close="handleClose" :visible="moveVisible" title="移动">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<div class="move-main">
<div class="move-left">
<el-tree :data="treeList" :props="defaultProps" @node-click="handleNodeClick" />
</div>
<div class="move-right">
<h4>整编库已整理列表</h4>
<div class="raido-main">
<el-radio v-model="radio" label="1">档案A</el-radio>
<el-radio v-model="radio" label="2">档案B</el-radio>
<el-radio v-model="radio" label="3">档案C</el-radio>
<el-radio v-model="radio" label="4">档案D</el-radio>
<el-radio v-model="radio" label="5">档案E</el-radio>
<el-radio v-model="radio" label="6">档案F</el-radio>
</div>
<el-pagination
:current-page="currentPage"
:page-sizes="[10, 20, 30, 50]"
:page-size="10"
layout="total, sizes, prev, pager, next, jumper"
:total="30"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="formVisible = false">取消</el-button>
<el-button type="primary" @click="formVisible = false">确定</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
import dataJson from './tree.json'
export default {
name: 'MoveFile',
components: { },
data() {
return {
moveVisible: false,
treeList: [],
radio: 1,
defaultProps: {
children: 'children',
label: 'label'
},
currentPage: 1
}
},
created() {
this.treeList = dataJson
},
methods: {
handleClose(done) {
this.moveVisible = false
done()
},
handleNodeClick(data) {
console.log(data)
},
handleSizeChange(val) {
console.log(`每页 ${val}`)
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`)
}
}
}
</script>
<style lang="scss" scoped>
.move-form{
::v-deep .el-dialog{
width: 828px;
}
.move-main{
display: flex;
justify-content: space-between;
height: 477px;
border: 1px solid #E6E8ED;
}
.move-left{
width: 253px;
padding: 12px 20px 0 12px;
border-right: 1px solid #E6E8ED;
}
.move-right{
flex: 1;
h4{
position: relative;
padding-left: 52px;
height: 40px;
line-height: 40px;
font-size: 16px;
color: #0C0E1E;
border-bottom: 1px solid #E6E8ED;
background: #F5F9FC;
&::before{
content: "";
position: absolute;
left: 0;
top: 0;
display: inline-block;
width: 39px;
height: 40px;
border-right: 1px solid #E6E8ED;
}
}
.raido-main{
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: flex-start;
height: 360px;
overflow: hidden;
overflow-y: scroll;
.el-radio{
width: 100%;
margin-right: 0;
height: 40px;
line-height: 40px;
border-bottom: 1px solid #E6E8ED;
::v-deep .el-radio__input{
margin-left: 12px;
}
::v-deep .el-radio__label{
display: inline-block;
padding-left: 12px;
margin-left: 12px;
border-left: 1px solid #E6E8ED;
}
}
}
}
}
.el-pagination{
padding-right: 5px;
margin: 25px 0 !important;
}
</style>

32
src/views/prearchiveLibrary/module/tree.json

@ -0,0 +1,32 @@
[
{
"id": 1,
"label": "档案门类",
"children": [
{
"id": 2,
"label": "文书档案",
"children": [
{
"id": 4,
"label": "文书档案(案卷)"
},
{
"id": 5,
"label": "文书档案(文件)"
}
]
},
{
"id": 3,
"label": "基建档案",
"children": [
{
"id": 6,
"label": "基建档案(项目)"
}
]
}
]
}
]

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

@ -126,9 +126,6 @@ export default {
sourceOptions: [],
targetOptions: [],
permission: {
add: ['admin', 'field:add'],
edit: ['admin', 'field:edit'],
del: ['admin', 'field:del']
},
rules: {
source: [

82
src/views/system/fieldCorresManage/module/form.vue

@ -15,7 +15,7 @@
</el-form-item>
</el-form>
<div class="corres-field-main">
<div class="corres-field-left">
<div class="corres-field-list corres-field-middle">
<div class="corres-field-title">
<p>源分类文件库-文件表</p>
<span>文件库分类A</span>
@ -37,7 +37,7 @@
</div>
</div>
</div>
<div class="corres-field-right">
<div class="corres-field-list corres-field-right">
<div class="corres-field-title">
<p>目标门类整理库/管理库-文件表</p>
<span>文书档案文件</span>
@ -145,82 +145,4 @@ export default {
}
}
}
.corres-field-main{
display: flex;
justify-content: space-between;
height: 428px;
border: 1px solid #E6E8ED;
.corres-field-left,
.corres-field-right{
flex: 1;
.corres-field-title{
height: 60px;
line-height: 20px;
background-color: #F5F9FC;
text-align: center;
p{
font-size: 14px;
color: #0C0E1E;
padding-top: 10px;
}
span{
font-size: 12px;
color: #0348F3;
}
}
.field-list{
min-height: 368px;
overflow: hidden;
overflow-y: scroll;
.field-item{
display: flex;
justify-content: space-between;
height: 40px;
line-height: 40px;
border-bottom: 1px solid #E6E8ED;
p{
flex: 1;
font-size: 14px;
color: #545B65;
text-align: center;
}
::v-deep .el-select{
width: 302px;
border-right: 1px solid #E6E8ED;
.el-input__inner{
height: 38px;
line-height: 38px;
border: none;
}
}
.field-state{
width: 88px;
text-align: center;
border-left: 1px solid #E6E8ED;
span{
display: inline-block;
width: 48px;
height: 22px;
line-height: 22px;
font-size: 12px;
border-radius: 3px;
}
span.is-select{
color: #0348F3;
background-color: #EEF5FE;
border: 1px solid #90B0F9;
}
span.is-hide{
color: #A6ADB6;
background-color: #F3F5F9;
border: 1px solid #E6E8ED;
}
}
}
}
}
.corres-field-left{
border-right: 1px solid #E6E8ED;
}
}
</style>

8
src/views/system/processManage/processDeployment/module/form.vue

@ -128,13 +128,5 @@ export default {
margin-left: 10px;
}
}
::v-deep .el-upload {
.el-button{
color: #fff !important;
background-color: #1F55EB !important;
border: none !important;
}
}
}
</style>

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

@ -150,7 +150,7 @@ export default {
name: 'Role',
components: { pagination, crudOperation, rrOperation, DateRangePicker },
cruds() {
return CRUD({ title: '角色', url: 'api/role/initRoleList', sort: 'update_time,asc', crudMethod: { ...crudRoles }, optShow: {
return CRUD({ title: '角色', url: 'api/role/initRoleList', crudMethod: { ...crudRoles }, optShow: {
add: true,
edit: true,
del: true,

Loading…
Cancel
Save