Browse Source

管理库

master
xuhuajiao 2 years ago
parent
commit
4bd3af4c6c
  1. 150
      src/assets/iconfonts/light/iconfont.css
  2. 2
      src/assets/iconfonts/light/iconfont.js
  3. 252
      src/assets/iconfonts/light/iconfont.json
  4. BIN
      src/assets/iconfonts/light/iconfont.ttf
  5. BIN
      src/assets/iconfonts/light/iconfont.woff
  6. BIN
      src/assets/iconfonts/light/iconfont.woff2
  7. 57
      src/assets/styles/archives-manage.scss
  8. 4
      src/assets/styles/mixin.scss
  9. 5
      src/assets/styles/yxk-admin.scss
  10. 22
      src/views/archivesManage/managementLibrary/anjuan/content.vue
  11. 196
      src/views/archivesManage/managementLibrary/anjuan/data.json
  12. 15
      src/views/archivesManage/managementLibrary/anjuan/index.vue
  13. 423
      src/views/archivesManage/managementLibrary/anjuan/table.json
  14. 291
      src/views/archivesManage/managementLibrary/anjuan/tableList.vue
  15. 216
      src/views/archivesManage/managementLibrary/file/index.vue
  16. 221
      src/views/archivesManage/managementLibrary/index.vue
  17. 237
      src/views/archivesManage/managementLibrary/juannei/index.vue
  18. 216
      src/views/archivesManage/managementLibrary/mixins/index.js
  19. 267
      src/views/archivesManage/managementLibrary/module/collectHeader.vue
  20. 475
      src/views/archivesManage/managementLibrary/module/packingBox/index.vue
  21. 167
      src/views/archivesManage/managementLibrary/project/index.vue

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

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 3966148 */
src: url('iconfont.woff2?t=1697608535383') format('woff2'),
url('iconfont.woff?t=1697608535383') format('woff'),
url('iconfont.ttf?t=1697608535383') format('truetype');
src: url('iconfont.woff2?t=1702973796227') format('woff2'),
url('iconfont.woff?t=1702973796227') format('woff'),
url('iconfont.ttf?t=1702973796227') format('truetype');
}
.iconfont {
@ -13,6 +13,150 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-jiarujieyueche:before {
content: "\e67d";
}
.icon-liuchengfaqi:before {
content: "\e67e";
}
.icon-cuowu1:before {
content: "\e67f";
}
.icon-danganliyong:before {
content: "\e680";
}
.icon-fou:before {
content: "\e681";
}
.icon-shi:before {
content: "\e682";
}
.icon-dengdai:before {
content: "\e683";
}
.icon-jieyueche-ding:before {
content: "\e684";
}
.icon-shengchengpandiandan:before {
content: "\e67c";
}
.icon-jiesuan:before {
content: "\e67b";
}
.icon-rengongqueren:before {
content: "\e66f";
}
.icon-sulan:before {
content: "\e670";
}
.icon-ruku:before {
content: "\e671";
}
.icon-yulan:before {
content: "\e672";
}
.icon-chuku:before {
content: "\e673";
}
.icon-huoqu:before {
content: "\e674";
}
.icon-mijijia:before {
content: "\e675";
}
.icon-shuaxin:before {
content: "\e676";
}
.icon-bangding:before {
content: "\e677";
}
.icon-quyu:before {
content: "\e678";
}
.icon-shebei:before {
content: "\e679";
}
.icon-danganbaoguan-fanbai:before {
content: "\e67a";
}
.icon-kufang:before {
content: "\e667";
}
.icon-chaihe:before {
content: "\e668";
}
.icon-shanchu1:before {
content: "\e669";
}
.icon-zishebeiguanli:before {
content: "\e66a";
}
.icon-zidonggengxin:before {
content: "\e66b";
}
.icon-jiebang:before {
content: "\e66c";
}
.icon-you-fanbai:before {
content: "\e66d";
}
.icon-zuo-fanbai:before {
content: "\e66e";
}
.icon-duqu:before {
content: "\e664";
}
.icon-chexiao:before {
content: "\e665";
}
.icon-zhuanghe:before {
content: "\e666";
}
.icon-danganguanli-fanbai:before {
content: "\e662";
}
.icon-yijiao:before {
content: "\e663";
}
.icon-gengduo2:before {
content: "\e661";
}
.icon-gengduo1:before {
content: "\e660";
}

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

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

@ -5,6 +5,258 @@
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "38402334",
"name": "加入借阅车",
"font_class": "jiarujieyueche",
"unicode": "e67d",
"unicode_decimal": 59005
},
{
"icon_id": "38402333",
"name": "流程发起",
"font_class": "liuchengfaqi",
"unicode": "e67e",
"unicode_decimal": 59006
},
{
"icon_id": "38402329",
"name": "错误",
"font_class": "cuowu1",
"unicode": "e67f",
"unicode_decimal": 59007
},
{
"icon_id": "38402332",
"name": "档案利用",
"font_class": "danganliyong",
"unicode": "e680",
"unicode_decimal": 59008
},
{
"icon_id": "38402331",
"name": "否",
"font_class": "fou",
"unicode": "e681",
"unicode_decimal": 59009
},
{
"icon_id": "38402327",
"name": "是",
"font_class": "shi",
"unicode": "e682",
"unicode_decimal": 59010
},
{
"icon_id": "38402328",
"name": "等待",
"font_class": "dengdai",
"unicode": "e683",
"unicode_decimal": 59011
},
{
"icon_id": "38402330",
"name": "借阅车-顶",
"font_class": "jieyueche-ding",
"unicode": "e684",
"unicode_decimal": 59012
},
{
"icon_id": "38402325",
"name": "生成盘点单",
"font_class": "shengchengpandiandan",
"unicode": "e67c",
"unicode_decimal": 59004
},
{
"icon_id": "38402326",
"name": "结算",
"font_class": "jiesuan",
"unicode": "e67b",
"unicode_decimal": 59003
},
{
"icon_id": "37827794",
"name": "人工确认",
"font_class": "rengongqueren",
"unicode": "e66f",
"unicode_decimal": 58991
},
{
"icon_id": "37827796",
"name": "速览",
"font_class": "sulan",
"unicode": "e670",
"unicode_decimal": 58992
},
{
"icon_id": "37827791",
"name": "入库",
"font_class": "ruku",
"unicode": "e671",
"unicode_decimal": 58993
},
{
"icon_id": "37827792",
"name": "预览",
"font_class": "yulan",
"unicode": "e672",
"unicode_decimal": 58994
},
{
"icon_id": "37827785",
"name": "出库",
"font_class": "chuku",
"unicode": "e673",
"unicode_decimal": 58995
},
{
"icon_id": "37827789",
"name": "获取",
"font_class": "huoqu",
"unicode": "e674",
"unicode_decimal": 58996
},
{
"icon_id": "37827788",
"name": "密集架",
"font_class": "mijijia",
"unicode": "e675",
"unicode_decimal": 58997
},
{
"icon_id": "37827787",
"name": "刷新",
"font_class": "shuaxin",
"unicode": "e676",
"unicode_decimal": 58998
},
{
"icon_id": "37827786",
"name": "绑定",
"font_class": "bangding",
"unicode": "e677",
"unicode_decimal": 58999
},
{
"icon_id": "37827783",
"name": "区域",
"font_class": "quyu",
"unicode": "e678",
"unicode_decimal": 59000
},
{
"icon_id": "37827784",
"name": "设备",
"font_class": "shebei",
"unicode": "e679",
"unicode_decimal": 59001
},
{
"icon_id": "37827782",
"name": "档案保管-反白",
"font_class": "danganbaoguan-fanbai",
"unicode": "e67a",
"unicode_decimal": 59002
},
{
"icon_id": "37827801",
"name": "库房",
"font_class": "kufang",
"unicode": "e667",
"unicode_decimal": 58983
},
{
"icon_id": "37827795",
"name": "拆盒",
"font_class": "chaihe",
"unicode": "e668",
"unicode_decimal": 58984
},
{
"icon_id": "37827799",
"name": "删除",
"font_class": "shanchu1",
"unicode": "e669",
"unicode_decimal": 58985
},
{
"icon_id": "37827800",
"name": "子设备管理",
"font_class": "zishebeiguanli",
"unicode": "e66a",
"unicode_decimal": 58986
},
{
"icon_id": "37827797",
"name": "自动更新",
"font_class": "zidonggengxin",
"unicode": "e66b",
"unicode_decimal": 58987
},
{
"icon_id": "37827798",
"name": "解绑",
"font_class": "jiebang",
"unicode": "e66c",
"unicode_decimal": 58988
},
{
"icon_id": "37827790",
"name": "右-反白",
"font_class": "you-fanbai",
"unicode": "e66d",
"unicode_decimal": 58989
},
{
"icon_id": "37827793",
"name": "左-反白",
"font_class": "zuo-fanbai",
"unicode": "e66e",
"unicode_decimal": 58990
},
{
"icon_id": "37827672",
"name": "读取",
"font_class": "duqu",
"unicode": "e664",
"unicode_decimal": 58980
},
{
"icon_id": "37827670",
"name": "撤销",
"font_class": "chexiao",
"unicode": "e665",
"unicode_decimal": 58981
},
{
"icon_id": "37827669",
"name": "装盒",
"font_class": "zhuanghe",
"unicode": "e666",
"unicode_decimal": 58982
},
{
"icon_id": "37827673",
"name": "档案管理-反白",
"font_class": "danganguanli-fanbai",
"unicode": "e662",
"unicode_decimal": 58978
},
{
"icon_id": "37827671",
"name": "移交",
"font_class": "yijiao",
"unicode": "e663",
"unicode_decimal": 58979
},
{
"icon_id": "37728696",
"name": "更多",
"font_class": "gengduo2",
"unicode": "e661",
"unicode_decimal": 58977
},
{
"icon_id": "37728681",
"name": "更多",

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

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

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

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

@ -1,7 +1,8 @@
@import 'variables';
@import 'mixin';
.filter-search{
.filter-search,
.filter-rfid{
@include btn_blue_style;
&:hover{
@include btn_blue_hover;
@ -44,8 +45,10 @@
.packing-head{
display: flex;
justify-content: space-between;
align-items: center;
.el-input__inner {
padding-left: 90px;
padding-left: 100px;
border-radius: 3px;
}
}
.container-main{
@ -258,11 +261,11 @@
.packing-handle-btn,
.packing-recall-btn{
display: block;
width: 66px;
width: 64px;
height: 28px;
line-height: 26px;
padding: 0;
color: #fff;
color: #41A4FF !important;
border-radius: 3px;
margin: 0 auto;
&::before{
@ -280,18 +283,14 @@
}
}
.packing-handle-btn{
background-color: $arcPurple;
border-color: $arcPurple;
background-color: transparent !important;
border-color: #41A4FF !important;
}
.packing-recall-btn{
background-color: $arcRed;
border-color: $arcRed;
}
.selct-data-head{
color: #fff;
line-height: 30px;
}
// 绑定标签
.bindingDialog{
@ -473,20 +472,31 @@
transform: translate(-50%, -50%);
margin-top: 2vh !important;
}
.el-dialog__body{
padding: 0;
}
// .el-dialog__body{
// padding: 0;
// }
.dialog-footer{
margin: 20px auto 0 auto;
padding-bottom: 20px;
}
.packing-head{
border-bottom: 1px solid $mainColor;
margin-bottom: 20px;
.head-search{
margin-bottom: 0;
}
}
}
.selct-data-head{
color: #545B65;
line-height: 30px;
span{
display: inline-block;
padding: 0 2px;
color: #0C0E1E;
}
}
.part-packing-cont{
display: flex;
flex-direction: row;
@ -496,20 +506,31 @@
.part-packing-item{
width: calc(100%/2 - 10px);
.part-packing-title{
padding: 0 30px;
position: relative;
padding: 0 12px;
height: 40px;
line-height: 40px;
font-size: 16px;
font-weight: normal;
color: #fff;
color: #0C0E1E;
&::before{
content: "";
position: absolute;
left: 0;
top: 50%;
width: 3px;
height: 14px;
margin-top: -7px;
background-color: #0348F3;
}
}
.el-table{
overflow-x: hidden;
overflow-y: auto;
border: 2px solid #02255f;
// border: 5px solid #DDE8FB;
border-top: none;
.el-table__body-wrapper{
background-color: $boxBg;
// background-color: $boxBg;
}
}
}

4
src/assets/styles/mixin.scss

@ -910,11 +910,11 @@
@mixin prepend-input{
[data-theme="dark"] & {
border: 1px solid $mainColor;
border-right: 1px solid $mainColor;
color: #339cff !important;
}
[data-theme="light"] & {
border: 1px solid #E3E7EE;
border-right: 1px solid #E3E7EE;
color: #545B65 !important;
}
}

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

@ -1705,6 +1705,7 @@ input[type ='number'] {
.input-prepend{
position: relative;
z-index: 99;
overflow: hidden;
.el-input__inner {
padding-left: 80px;
background-color: transparent;
@ -1716,8 +1717,8 @@ input[type ='number'] {
color: #fff;
background-color: transparent;
border: none !important;
height: 30px;
line-height: 30px;
height: 32px;
line-height: 32px;
.el-input__inner {
padding: 0 10px !important;
border-radius: 3px 0 0 3px;

22
src/views/archivesManage/managementLibrary/anjuan/content.vue

@ -1,12 +1,5 @@
<template>
<!-- <div :class="selectedCategory.arrangeType === 1 || isRecycle ? 'collect-no-tab' : ''">
<ul v-if="!isRecycle && selectedCategory.arrangeType !== 1" class="tab-nav">
<li :class="{ 'active-tab-nav': activeIndex == 0 }" @click="changeActiveTab(0)">已整理<i /></li>
<li :class="{ 'active-tab-nav': activeIndex == 1 }" @click="changeActiveTab(1)">未整理<i /></li>
<span class="tab-right-img" />
</ul>
</div> -->
<TableListMoudle ref="tableList" :is-title-type="isTitleType" :selected-category="selectedCategory" :active-index="activeIndex" :test="test" :is-recycle="isRecycle" />
<TableListMoudle ref="tableList" :is-title-type="isTitleType" :selected-category="selectedCategory" :test="test" :is-recycle="isRecycle" />
</template>
<script>
@ -28,26 +21,25 @@ export default {
isRecycle: {
type: Boolean,
default: false
},
smartQuery: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
isTitleType: 3,
activeIndex: 0,
test: ''
}
},
created() {
},
mounted() {
console.log((!this.isRecycle && this.selectedCategory.arrangeType !== 1))
console.log('isRecycle', this.isRecycle)
console.log('test', this.test)
},
methods: {
changeActiveTab(data) {
this.activeIndex = data
}
}
}
</script>

196
src/views/archivesManage/managementLibrary/anjuan/data.json

@ -1,196 +0,0 @@
{
"code": 200,
"message": "操作成功",
"data": {
"list": {
"content": [
{
"case_no": "55C4C594AC879230EA4BF2",
"responsibleby": "外事处",
"children_num": 1,
"record_type": "",
"tid": "",
"medium_qty": "15",
"maintitle": "王晓红出国任务事",
"document_no": "外(2009)156号",
"security_class": "绝密",
"archive_year": 2009,
"archive_no": "EP02-Y-WS.W-2009-003-001",
"created_date": "20090506",
"id": "A3EA6038270136221FE7CE",
"is_storage": 2,
"medium_type": "纸张",
"is_borrow": ""
},
{
"case_no": "89EB11A4CC84ED10323373",
"responsibleby": "二炮党委",
"children_num": 0,
"record_type": "会议纪要",
"tid": "",
"medium_qty": "4",
"maintitle": "党委会议纪要",
"document_no": "党(2009)14号",
"security_class": "秘密",
"archive_year": 2009,
"archive_no": "EP02-Y-WS.W-2009-001-003",
"created_date": "20090825",
"id": "ADD6482FEAB400A1888FF7",
"is_storage": 2,
"medium_type": "纸张",
"is_borrow": ""
},
{
"case_no": "89EB11A4CC84ED10323373",
"responsibleby": "二炮党委",
"children_num": 0,
"record_type": "命令",
"tid": "",
"medium_qty": "2",
"maintitle": "刘晓庆任职",
"document_no": "党(2009)1号",
"security_class": "机密",
"archive_year": 2009,
"archive_no": "EP02-Y-WS.W-2009-001-001",
"created_date": "20090121",
"id": "32E6B39205296DCBCF92CE",
"is_storage": 2,
"medium_type": "纸张",
"is_borrow": ""
},
{
"case_no": "2E759415CCD4ABF7B436DB",
"responsibleby": "厨师学院",
"children_num": 0,
"record_type": "报告",
"tid": "",
"medium_qty": "23",
"maintitle": "烘焙教学计划(附定稿)",
"document_no": "教(2009)44号",
"security_class": "机密",
"archive_year": 2009,
"archive_no": "EP02-D-WS.W-2009-002-001",
"created_date": "20090606",
"id": "A7160DA93F5BA8A45BE012",
"is_storage": 2,
"medium_type": "纸张",
"is_borrow": ""
},
{
"case_no": "80F874F102575D1AB813F1",
"responsibleby": "二炮办公室",
"children_num": 0,
"record_type": "报告",
"tid": "",
"medium_qty": "18",
"maintitle": "活动立项报告",
"document_no": "办(2009)6号",
"security_class": "机密",
"archive_year": 2009,
"archive_no": "EP02-Y-WS.W-2009-002-002",
"created_date": "20090409",
"id": "7DACF26D8746C23B6E93B4",
"is_storage": 2,
"medium_type": "纸张",
"is_borrow": ""
},
{
"case_no": "4C4EC2D8AA76E915D405C1",
"responsibleby": "舞蹈中心",
"children_num": 0,
"record_type": "请示",
"tid": "",
"medium_qty": "13",
"maintitle": "关于举办街舞比赛的请示",
"document_no": "乙(2009)156号",
"security_class": "秘密",
"archive_year": 2009,
"archive_no": "EP02-D-WS.W-2009-001-002",
"created_date": "20090928",
"id": "F4CA22C9B0F16F3A7E376B",
"is_storage": 2,
"medium_type": "纸张",
"is_borrow": 3
},
{
"case_no": "4C4EC2D8AA76E915D405C1",
"responsibleby": "活动中心",
"children_num": 0,
"record_type": "通知",
"tid": "",
"medium_qty": "3",
"maintitle": "关于游泳教学的安排",
"document_no": "甲(2009)88号",
"security_class": "秘密",
"archive_year": 2009,
"archive_no": "EP02-D-WS.W-2009-001-001",
"created_date": "20090423",
"id": "823D1CA835944822DE13DC",
"is_storage": 2,
"medium_type": "纸张",
"is_borrow": 3
},
{
"case_no": "89EB11A4CC84ED10323373",
"responsibleby": "二炮党委",
"children_num": 0,
"record_type": "通知",
"tid": "",
"medium_qty": "4",
"maintitle": "党委小组成员的通知",
"document_no": "党(2009)2号",
"security_class": "绝密",
"archive_year": 2009,
"archive_no": "EP02-Y-WS.W-2009-001-002",
"created_date": "20090730",
"id": "EEC3B0051F8323D2E1E995",
"is_storage": 2,
"medium_type": "纸张",
"is_borrow": ""
},
{
"case_no": "80F874F102575D1AB813F1",
"responsibleby": "二炮办公室",
"children_num": 0,
"record_type": "通知",
"tid": "",
"medium_qty": "6",
"maintitle": "关于举办研讨会的通知",
"document_no": "办(2009)3号",
"security_class": "机密",
"archive_year": 2009,
"archive_no": "EP02-Y-WS.W-2009-002-001",
"created_date": "20090217",
"id": "82D732D81CD0AEDA38B901",
"is_storage": 2,
"medium_type": "纸张",
"is_borrow": ""
},
{
"case_no": "793B68E6BBE52FE32C819A",
"responsibleby": "安定诊所",
"children_num": 0,
"record_type": "决定",
"tid": "E28011C1200013C2C41E0317",
"medium_qty": "55",
"maintitle": "关于心理健康测试",
"document_no": "心(2023)1号",
"security_class": "机密",
"archive_year": 2023,
"archive_no": "JJ0001-Y-WS.W-2023-002-001",
"created_date": "20230912",
"id": "6A27E658D2A454E5BD7BC9",
"is_storage": 2,
"medium_type": "纸张",
"is_borrow": ""
}
],
"totalElements": 19
},
"yearGroup": [
2009,
2023
]
},
"timestamp": 1699508523265
}

15
src/views/archivesManage/managementLibrary/anjuan/index.vue

@ -1,6 +1,6 @@
<template>
<div>
<AnjuanContent v-if="selectedCategory.arrangeType === 1 || selectedCategory.arrangeType === 2" ref="ajContent" class="ajContent" :selected-category="selectedCategory" :is-recycle="isRecycle" />
<AnjuanContent v-if="selectedCategory.arrangeType === 1 || selectedCategory.arrangeType === 2" ref="ajContent" class="ajContent" :selected-category="selectedCategory" :is-recycle="isRecycle" :smart-query="smartQuery" />
<el-drawer
v-else
class="anjuan-drawer management-drawer"
@ -12,7 +12,7 @@
direction="rtl"
size="90%"
>
<AnjuanContent ref="ajContent" :selected-category="selectedCategory" :is-recycle="isRecycle" />
<AnjuanContent ref="ajContent" :selected-category="selectedCategory" :is-recycle="isRecycle" :smart-query="smartQuery" />
<span class="closed-btn" @click="closeDrawer" />
</el-drawer>
</div>
@ -37,6 +37,12 @@ export default {
isRecycle: {
type: Boolean,
default: false
},
smartQuery: {
type: Object,
default: function() {
return {}
}
}
},
data() {
@ -47,15 +53,18 @@ export default {
created() {
},
mounted() {
console.log('nei', this.selectedCategory.arrangeType)
},
methods: {
closeDrawer() {
this.anjuanDrawer = false
this.$parent.parentsProjectId = null
}
}
}
</script>
<style lang='scss' scoped>
[data-theme=light] .ajContent{
padding-top: 2px;
}
</style>

423
src/views/archivesManage/managementLibrary/anjuan/table.json

@ -1,423 +0,0 @@
{
"code": 200,
"message": "操作成功",
"data": [
{
"id": "30DB3BCF12385446529650",
"categoryId": "CD135F6A77018CE04D4FDB",
"dictionaryConfigId": null,
"fieldName": "archive_year",
"fieldCnName": "年度",
"isDefaultValue": "",
"isInputClass": "number",
"isDataType": 2,
"isDataTypeDetails": "int",
"isColumnLength": 4,
"isColumnType": 2,
"isSequence": 4,
"isType": 2,
"isSystem": true,
"isLine": null,
"isInput": true,
"isRequired": null,
"isAutomatic": null,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": null,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 1,
"displayOrderBy": null,
"isDisplayformat": true,
"displayformatType": "center",
"editLength": 196,
"displayLength": 100,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1688020491000
},
{
"id": "50F80A0A1B0CA8A8B6014F",
"categoryId": "CD135F6A77018CE04D4FDB",
"dictionaryConfigId": {
"id": "7E7698E42FE1968BE5D250",
"dicName": "文种",
"dicCode": "WZ",
"dicExplain": null,
"dicSequence": 4,
"dicType": true,
"dicPid": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1656924056000,
"update_time": 1656924056000
},
"fieldName": "record_type",
"fieldCnName": "文种",
"isDefaultValue": "",
"isInputClass": "select",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 100,
"isColumnType": 2,
"isSequence": 10,
"isType": 2,
"isSystem": true,
"isLine": false,
"isInput": true,
"isRequired": false,
"isAutomatic": false,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": false,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 2,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 100,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1694593124000
},
{
"id": "990ADEA3C47ACCC7B2AF23",
"categoryId": "CD135F6A77018CE04D4FDB",
"dictionaryConfigId": null,
"fieldName": "archive_no",
"fieldCnName": "档号",
"isDefaultValue": "",
"isInputClass": "text",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 200,
"isColumnType": 2,
"isSequence": 7,
"isType": 2,
"isSystem": true,
"isLine": true,
"isInput": true,
"isRequired": false,
"isAutomatic": true,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": false,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 3,
"displayOrderBy": "asc",
"isDisplayformat": null,
"displayformatType": "left",
"editLength": 510,
"displayLength": 220,
"queue": 1,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1697441837000
},
{
"id": "C7BDD315FA406EDBAEC997",
"categoryId": "CD135F6A77018CE04D4FDB",
"dictionaryConfigId": null,
"fieldName": "maintitle",
"fieldCnName": "题名",
"isDefaultValue": "",
"isInputClass": "text",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 1000,
"isColumnType": 2,
"isSequence": 11,
"isType": 2,
"isSystem": true,
"isLine": true,
"isInput": true,
"isRequired": false,
"isAutomatic": false,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": false,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 4,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "left",
"editLength": 510,
"displayLength": 300,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1697441826000
},
{
"id": "060393A0360E74A9FDB5C2",
"categoryId": "CD135F6A77018CE04D4FDB",
"dictionaryConfigId": null,
"fieldName": "document_no",
"fieldCnName": "文件编号",
"isDefaultValue": "",
"isInputClass": "text",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 100,
"isColumnType": 2,
"isSequence": 8,
"isType": 2,
"isSystem": true,
"isLine": null,
"isInput": true,
"isRequired": null,
"isAutomatic": null,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": null,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 5,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 100,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1694593391000
},
{
"id": "3E391423CA83E1FC84742B",
"categoryId": "CD135F6A77018CE04D4FDB",
"dictionaryConfigId": {
"id": "8984F55841E2D541C23318",
"dicName": "密级",
"dicCode": "Search_MJ",
"dicExplain": null,
"dicSequence": 2,
"dicType": true,
"dicPid": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1656921207000,
"update_time": 1656991705000
},
"fieldName": "security_class",
"fieldCnName": "密级",
"isDefaultValue": "",
"isInputClass": "select",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 10,
"isColumnType": 2,
"isSequence": 9,
"isType": 2,
"isSystem": true,
"isLine": false,
"isInput": true,
"isRequired": false,
"isAutomatic": false,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": false,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 6,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 100,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1694595044000
},
{
"id": "D64ADF5B88DB96FBBF46CD",
"categoryId": "CD135F6A77018CE04D4FDB",
"dictionaryConfigId": null,
"fieldName": "responsibleby",
"fieldCnName": "责任者",
"isDefaultValue": "",
"isInputClass": "text",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 100,
"isColumnType": 2,
"isSequence": 13,
"isType": 2,
"isSystem": true,
"isLine": null,
"isInput": true,
"isRequired": null,
"isAutomatic": null,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": null,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 7,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 150,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1694595044000
},
{
"id": "043AC3E1CAFAD3AC9EF9CF",
"categoryId": "CD135F6A77018CE04D4FDB",
"dictionaryConfigId": null,
"fieldName": "created_date",
"fieldCnName": "成文日期",
"isDefaultValue": "",
"isInputClass": "text",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 20,
"isColumnType": 2,
"isSequence": 14,
"isType": 2,
"isSystem": true,
"isLine": null,
"isInput": true,
"isRequired": null,
"isAutomatic": null,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": null,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 8,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 150,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1694595044000
},
{
"id": "CAA0014CD5B2B3391A2BA2",
"categoryId": "CD135F6A77018CE04D4FDB",
"dictionaryConfigId": {
"id": "F086B262FFFA6CFB5302F7",
"dicName": "载体类型",
"dicCode": "ZT",
"dicExplain": null,
"dicSequence": 5,
"dicType": true,
"dicPid": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1656924405000,
"update_time": 1656924405000
},
"fieldName": "medium_type",
"fieldCnName": "载体类型",
"isDefaultValue": "",
"isInputClass": "select",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 100,
"isColumnType": 2,
"isSequence": 15,
"isType": 2,
"isSystem": true,
"isLine": false,
"isInput": true,
"isRequired": false,
"isAutomatic": false,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": false,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 9,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 100,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1694595044000
},
{
"id": "0A25604BC11085250BA643",
"categoryId": "CD135F6A77018CE04D4FDB",
"dictionaryConfigId": null,
"fieldName": "medium_qty",
"fieldCnName": "载体数量",
"isDefaultValue": "",
"isInputClass": "text",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 20,
"isColumnType": 2,
"isSequence": 16,
"isType": 2,
"isSystem": true,
"isLine": null,
"isInput": true,
"isRequired": null,
"isAutomatic": null,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": null,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 10,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "right",
"editLength": 196,
"displayLength": 100,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1694595013000
}
],
"timestamp": 1699508522805
}

291
src/views/archivesManage/managementLibrary/anjuan/tableList.vue

@ -1,94 +1,95 @@
<template>
<div>
<CollectHeader :is-title-type="isTitleType" :selected-category="selectedCategory" :arc-id="arcId" :selections="selections" :test="test" :is-recycle="isRecycle" @status-bar-checked-changed="handleStatusBarCheckedChanged" />
<!-- <div v-if="!isRecycle" class="mangement-fixed-top">
<el-checkbox v-model="fixedStatusBar" @change="updateStatusBarChecked">隐藏状态栏</el-checkbox>
</div> -->
<el-table
ref="table"
v-loading="getTableDisplayFieldsLoading"
class="archives-table"
:data="anjuanData"
highlight-current-row
style="width: 100%;"
:row-class-name="tableRowClassName"
:row-key="rowKey"
@select-all="selectAll"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
@cell-dblclick="tableDoubleClick"
@select="handleCurrentChange"
>
<el-table-column type="selection" :reserve-selection="true" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column :label="selectedCategory.arrangeType === 1 ? '原文':'卷内'" prop="children_num" width="55" align="center" />
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
<template slot="header">
<el-tooltip
class="item"
effect="dark"
:content="field.fieldCnName"
placement="top-start"
>
<span>{{ field.fieldCnName }}</span>
</el-tooltip>
</template>
<template slot-scope="scope">
{{ scope.row[field.fieldName] }}
</template>
</el-table-column>
<el-table-column v-if="!isRecycle && selectedCategory.arrangeType === 1" label="实体" width="88" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<!-- slot-scope="scope" -->
<template>
<span class="row-state row-physical state-active"></span>
<CollectHeader ref="collectHeaderRef" :is-title-type="isTitleType" :selected-category="selectedCategory" :arc-id="arcId" :selections="selections" :test="test" :is-recycle="isRecycle" />
<div class="collect-table">
<el-table
ref="table"
v-loading="getTableDisplayFieldsLoading"
class="archives-table"
:data="anjuanData"
highlight-current-row
style="width: 100%;"
:row-class-name="tableRowClassName"
:row-key="rowKey"
@select-all="selectAll"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
@cell-dblclick="tableDoubleClick"
@select="handleCurrentChange"
>
<el-table-column type="selection" :reserve-selection="true" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column :label="selectedCategory.arrangeType === 1 || (selectedCategory.arrangeType !==1 ) ? '原文':'卷内'" prop="child" width="55" align="center">
<template slot-scope="scope">
{{ scope.row.child === '' ? 0 : scope.row.child }}
</template>
</el-table-column>
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
<template slot="header">
<el-tooltip
class="item"
effect="dark"
:content="field.fieldCnName"
placement="top-start"
>
<span>{{ field.fieldCnName }}</span>
</el-tooltip>
</template>
<template slot-scope="scope">
{{ scope.row[field.fieldName] }}
</template>
</el-table-column>
<el-table-column v-if="!isRecycle && selectedCategory.arrangeType === 1" label="实体" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<!-- slot-scope="scope" -->
<template>
<span class="row-state row-physical state-active"></span>
<!-- <span :class="['row-state', 'row-physical', scope.row.tid ? 'state-active' : '' ]">{{ scope.row.tid ? '有': '无' }}</span> -->
</template>
</el-table-column>
<el-table-column v-if="!isRecycle && selectedCategory.arrangeType === 1" label="标签" width="88" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-binding state-active">未绑</span>
</template>
</el-table-column>
<el-table-column v-if="!isRecycle && selectedCategory.arrangeType === 1" label="标签" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-binding state-active">未绑</span>
<!-- 未绑 / 已绑 -->
<!-- <span :class="['row-state', 'row-binding', scope.row.tid ? 'state-active' : '' ]">{{ scope.row.tid ? '已绑': '未绑' }}</span> -->
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="装盒" width="88" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<!-- state-active 已装/已入/已借/已绑 -->
<template>
<!-- 未装 / 已装 -->
<span class="row-state row-packing state-active">已装</span>
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="装盒" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<!-- state-active 已装/已入/已借/已绑 -->
<template>
<!-- 未装 / 已装 -->
<span class="row-state row-packing state-active">已装</span>
<!-- <span :class="['row-state', 'row-packing', scope.row.case_no ? 'state-active' : '' ]">{{ scope.row.case_no ? '已装': '未装' }}</span> -->
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="入库" width="88" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-warehousing state-active">已入</span>
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="入库" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-warehousing state-active">已入</span>
<!-- is_storage 为空的情况下即没装盒 / 0 未入 / 1 待入 / 2 已入 / 3 待出-->
<!-- <span :class="['row-state', 'row-warehousing', (storageTxt[scope.$index] === '已入' )? 'state-active' : '' ]">{{ storageTxt[scope.$index] }}</span> -->
</template>
</el-table-column>
<el-table-column v-if="!isRecycle && selectedCategory.arrangeType === 1" label="借阅" width="88" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-lending state-active">已借</span>
</template>
</el-table-column>
<el-table-column v-if="!isRecycle && selectedCategory.arrangeType === 1" label="借阅" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-lending state-active">已借</span>
<!-- is_borrow 4 已归还 / 为空 - 未加入待借列表 - 在库 / 2 待借阅在待借列表/借出确认列表 - 待借 / 1待登记 - 不可借- 表示 / 3 待归还 - 已借 -->
<!-- <span :class="['row-state', 'row-lending', (borrowTxt[scope.$index] === '已借' )? 'state-active' : '' ]">{{ borrowTxt[scope.$index] }}</span> -->
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
v-if="anjuanData.length !== 0"
:current-page="page.page"
:total="page.total"
:page-size="page.size"
:pager-count="5"
layout="total, prev, pager, next, sizes"
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
v-if="anjuanData.length !== 0"
:current-page="page.page"
:total="page.total"
:page-size="page.size"
:pager-count="5"
layout="total, prev, pager, next, sizes"
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :category-id="categoryId" :arc-id="arcId" />
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" />
</div>
</template>
@ -96,11 +97,7 @@
import { header, form } from '@crud/crud'
import { manageLibraryCrud } from '../mixins/index'
import ArchivesInfo from '../module/archivesInfo/index'
import CollectHeader from '../module/collectHeader'
import tableData from './table.json'
import jsonData from './data.json'
import CollectHeader from '../module/collectHeader.vue'
export default {
name: 'Sorted',
components: { ArchivesInfo, CollectHeader },
@ -127,23 +124,33 @@ export default {
isRecycle: {
type: Boolean,
default: false
},
smartQuery: {
type: Object,
default: function() {
return {}
}
}
},
inject: ['parentsData'],
data() {
return {
categoryId: 'F0F59CC713C83AE4BAB99B',
arcId: '256E752BC0280618840600',
title: ''
categoryId: '',
arcId: '',
title: '',
selections: [],
yearData: [],
parentId: null
}
},
watch: {
selectedCategory: function(newValue, oldValue) {
this.selections = []
this.$refs.table.clearSelection()
if (newValue.arrangeType === 1) {
this.title = '文件'
} else {
if (newValue.arrangeType !== 1) {
this.title = '案卷'
} else {
this.title = '文件'
}
},
tableDisplayFields(val) {
@ -151,34 +158,37 @@ export default {
}
},
created() {
this.tableDisplayFields = tableData.data
this.anjuanData = jsonData.data.list.content
},
mounted() {
// this.fixedStatusBar = JSON.parse(localStorage.getItem('statusBarFixedType')) === true
console.log(this.fixedStatusBar)
},
methods: {
handleStatusBarCheckedChanged(statusBarChecked) {
console.log('父组件获取到子组件状态:', statusBarChecked)
this.fixedStatusBar = statusBarChecked
//
},
getCommonData(type) {
this.getViewTable(type)
getCommonData(categoryLevel, parentId, type) {
this.getViewTable(categoryLevel, parentId, type)
},
rowKey(row) {
return row.id
},
openJuannei(data) {
console.log('arrangeType', this.selectedCategory.arrangeType)
sendYearDataToParent() {
this.$parent.$parent.$emit('myYearEvent', this.yearData)
},
openJuannei(data, parentId) {
// this.$emit('openJuannei', '')
if (this.selectedCategory.arrangeType === 3) {
this.$parent.$parent.$parent.$emit('openJuannei', data)
this.$parent.$parent.$parent.$emit('openJuannei', data, parentId)
} else {
this.$parent.$parent.$emit('openJuannei', data)
this.$parent.$parent.$emit('openJuannei', data, parentId)
}
},
// table
tableRowClassName({ row, rowIndex }) {
let color = ''
this.selections.forEach(item => {
if (item.id === row.id) {
color = 'rowStyle'
}
})
return color
},
// table -
selectAll(val) {
this.selections = val
@ -188,68 +198,71 @@ export default {
if (this.timer) {
clearTimeout(this.timer)
}
console.log('tableDoubleClick', row)
this.arcId = row.id
if (this.selectedCategory.arrangeType !== 1) {
this.$refs.archivesInfo.isHasFile = false
this.$refs.archivesInfo.detailTitle = '案卷详情'
// if (this.activeIndex === 1) {
// this.$refs.archivesInfo.detailTitle = ''
// this.$refs.archivesInfo.isHasFile = true
// } else {
// this.$refs.archivesInfo.detailTitle = ''
// }
} else {
this.$refs.archivesInfo.isHasFile = true
this.$refs.archivesInfo.detailTitle = '文件详情'
}
this.$refs.archivesInfo.archivesInfoVisible = true
this.$refs.archivesInfo.archivesTabIndex = 0
// this.$refs.archivesInfo.getDetial(row.id)
this.$nextTick(() => {
if (this.selectedCategory.arrangeType !== 1) {
this.$refs.archivesInfo.isHasFile = false
this.$refs.archivesInfo.detailTitle = '案卷详情'
this.$refs.archivesInfo.getDetial(2, row.id)
} else {
this.$refs.archivesInfo.isHasFile = true
this.$refs.archivesInfo.detailTitle = '文件详情'
this.$refs.archivesInfo.getDetial(3, row.id)
}
this.$refs.archivesInfo.archivesInfoVisible = true
this.$refs.archivesInfo.archivesTabIndex = 0
})
},
// table - row
clickRowHandler(row) {
console.log('clickRowHandler', row)
this.parentsData.smartQuery = {
'retention': null,
'security_class': null,
'doc_type': null,
'medium_type': null,
'archive_year': null,
'fonds_no': null
}
if (this.timer) {
clearTimeout(this.timer)
}
if (this.selectedCategory.arrangeType === 1) {
this.title = '文件'
} else {
this.title = '案卷'
}
if (this.timer) {
clearTimeout(this.timer)
}
this.timer = setTimeout(() => {
this.openJuannei('所属' + this.title + ':' + row.archive_no)
this.parentId = row.id
this.openJuannei('所属' + this.title + ':' + row.archive_no, this.parentId)
}, 300)
this.selections = this.crud.selections
},
//
handleCurrentChange(selection, row) {
console.log('触发单选', row)
console.log('selection', selection)
this.selections = selection
},
handleSizeChange(size) {
this.page.size = size
this.page.page = 1
this.getViewTable(2)
if (this.selectedCategory.arrangeType === 3) {
this.getViewTable(2, this.parentsData.parentsProjectId)
} else {
this.getViewTable(2, null)
}
},
handleCurrentPage(val) {
this.page.page = val
this.getViewTable(2)
},
doLayout() {
this.$nextTick(() => {
this.$refs.table.doLayout()
})
if (this.selectedCategory.arrangeType === 3) {
this.getViewTable(2, this.parentsData.parentsProjectId)
} else {
this.getViewTable(2, null)
}
}
}
}
</script>
<style lang='scss' scoped>
@mixin management-fixed-style{
[data-theme="dark"] & {
background-color: #031435 !important;

216
src/views/archivesManage/managementLibrary/file/index.vue

@ -1,76 +1,90 @@
<template>
<el-drawer
class="management-drawer"
:with-header="false"
:visible.sync="fileDrawer"
:modal="false"
:wrapper-closable="false"
:show-close="false"
direction="rtl"
:size="((selectedCategory.arrangeType === 2 && isAjNo === 0) || (selectedCategory.arrangeType === 3 && isAjNo === 1)) ? '80%' : (isAjNo === 1) ? '90%' : (selectedCategory.arrangeType === 1) ? '90%' : '70%'"
>
<CollectHeader :is-title-type="isTitleType" :selected-category="selectedCategory" :selections="selections" :test="test" :is-recycle="isRecycle" />
<span class="closed-btn" @click="closeDrawer" />
<el-table
ref="table"
v-loading="crud.loading || getTableDisplayFieldsLoading"
class="archives-table"
:data="fileData"
highlight-current-row
style="width: 100%;"
:row-class-name="tableRowClassName"
:row-key="rowKey"
@select-all="selectAll"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
@cell-dblclick="tableDoubleClick"
@select="handleCurrentChange"
<div>
<el-drawer
class="management-drawer"
:with-header="false"
:visible.sync="fileDrawer"
:modal="false"
:wrapper-closable="false"
:show-close="false"
direction="rtl"
:size="((selectedCategory.arrangeType === 2 && isAjNo === 0) || (selectedCategory.arrangeType === 3 && isAjNo === 1)) ? '80%' : (isAjNo === 1) ? '90%' : (selectedCategory.arrangeType === 1) ? '90%' : '70%'"
>
<el-table-column type="selection" width="55" :reserve-selection="true" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="file_name" label="原文名称" show-overflow-tooltip min-width="140" align="center" />
<el-table-column prop="file_type" label="格式" min-width="60" align="center" />
<el-table-column prop="file_size" label="大小" min-width="85" align="center">
<template slot-scope="scope">
{{ (scope.row.file_size / 1024).toFixed(2) + 'kB' }}
</template>
</el-table-column>
<el-table-column prop="file_dpi" label="尺寸" min-width="85" align="center">
<template slot-scope="scope">
<div v-if="!scope.row.file_dpi"> - </div>
<div v-else> {{ scope.row.file_dpi }} </div>
</template>
</el-table-column>
<el-table-column prop="file_thumbnail" label="缩览图" min-width="60" align="center">
<template slot-scope="scope">
<div v-if="scope.row.file_type === 'jpg' || scope.row.file_type === 'jpeg' || scope.row.file_type === 'png' || scope.row.file_type === 'bmp'|| scope.row.file_type === 'gif'">
<img width="60px" height="32px" class="screenshot" :src="baseApi+ '/downloadFile' +scope.row.file_path" :onerror="defaultImg" @click="showCoverPreview(scope.row)">
</div>
<div v-else>
<svg-icon icon-class="fujian" class-name="svg-style" />
</div>
</template>
</el-table-column>
<el-table-column prop="create_time" label="创建时间" min-width="110" align="center" />
</el-table>
<!--分页组件-->
<el-pagination
v-if="fileData.length !== 0"
:current-page="page.page"
:total="page.total"
:page-size="page.size"
:pager-count="5"
layout="total, prev, pager, next, sizes"
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</el-drawer>
<CollectHeader ref="collectHeaderRef" :is-title-type="isTitleType" :selected-category="selectedCategory" :selections="selections" :test="test" :is-recycle="isRecycle" />
<span class="closed-btn" @click="closeDrawer" />
<div class="collect-table">
<el-table
ref="table"
v-loading="crud.loading || getTableDisplayFieldsLoading"
class="archives-table"
:data="fileData"
highlight-current-row
style="width: 100%;"
:row-class-name="tableRowClassName"
:row-key="rowKey"
@select-all="selectAll"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
@cell-dblclick="tableDoubleClick"
@select="handleCurrentChange"
>
<el-table-column type="selection" width="55" :reserve-selection="true" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="file_name" label="原文名称" show-overflow-tooltip min-width="140" align="center" />
<el-table-column prop="file_type" label="格式" min-width="60" align="center" />
<el-table-column prop="file_size" label="大小" min-width="85" align="center">
<template slot-scope="scope">
{{ (scope.row.file_size / 1024).toFixed(2) + 'kB' }}
</template>
</el-table-column>
<el-table-column prop="file_dpi" label="尺寸" min-width="85" align="center">
<template slot-scope="scope">
<div v-if="!scope.row.file_dpi"> - </div>
<div v-else> {{ scope.row.file_dpi }} </div>
</template>
</el-table-column>
<el-table-column prop="file_thumbnail" label="缩览图" min-width="60" align="center">
<template slot-scope="scope">
<div v-if="scope.row.file_type === 'jpg' || scope.row.file_type === 'jpeg' || scope.row.file_type === 'png' || scope.row.file_type === 'bmp'|| scope.row.file_type === 'gif'">
<img width="60px" height="32px" class="screenshot" :src="baseApi+ '/downloadFile' +scope.row.file_path" :onerror="defaultImg" @click="showCoverPreview(scope.row)">
</div>
<div v-else>
<svg-icon icon-class="fujian" class-name="svg-style" />
</div>
</template>
</el-table-column>
<el-table-column prop="create_time" label="创建时间" min-width="110" align="center" />
</el-table>
<!--分页组件-->
<el-pagination
v-if="fileData.length !== 0"
:current-page="page.page"
:total="page.total"
:page-size="page.size"
:pager-count="5"
layout="total, prev, pager, next, sizes"
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</div>
</el-drawer>
<!-- 点击缩略图看大图 -->
<el-dialog class="preview-dialog" :append-to-body="true" :close-on-click-modal="false" :before-close="handleClose" :visible="showCoverVisible" title="查看大图">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog" style="max-height:calc(100vh - 230px); overflow:auto;">
<img style="max-width:100%; object-fit: contain;" :src="previewSrc" :onerror="defaultImg">
</div>
</el-dialog>
</div>
</template>
<script>
import { manageLibraryCrud } from '../mixins/index'
import { header, form } from '@crud/crud'
import CollectHeader from '../module/collectHeader.vue'
import { mapGetters } from 'vuex'
export default {
name: 'File',
components: { CollectHeader },
@ -89,16 +103,32 @@ export default {
isRecycle: {
type: Boolean,
default: false
},
smartQuery: {
type: Object,
default: function() {
return {}
}
}
},
inject: ['parentsData'],
data() {
return {
defaultImg: 'this.src="' + require('@/assets/images/cover-bg.png') + '"',
isTitleType: 6,
fileDrawer: false,
test: '',
isAjNo: 0
isAjNo: 0,
selections: [],
showCoverVisible: false,
previewSrc: null
}
},
computed: {
...mapGetters([
'baseApi'
])
},
watch: {
selectedCategory: function(newValue, oldValue) {
}
@ -108,46 +138,88 @@ export default {
mounted() {
},
methods: {
getCommonData(categoryLevel, parentId, type) {
this.getViewTable(categoryLevel, parentId, type)
},
closeDrawer() {
this.fileDrawer = false
if (this.selectedCategory.arrangeType === 1) {
this.$parent.parentsAnjuanId = null
} else {
this.$parent.parentsJuanneiId = null
}
},
rowKey(row) {
return row.id
},
// table
tableRowClassName({ row, rowIndex }) {
let color = ''
this.selections.forEach(item => {
if (item.id === row.id) {
color = 'rowStyle'
}
})
return color
},
// table -
selectAll(val) {
this.selections = val
},
// table -
tableDoubleClick(row) {
console.log('tableDoubleClick', row)
// console.log('tableDoubleClick', row)
// this.arcId = row.id
console.log(this.selectedCategory.isType)
// console.log(this.selectedCategory.isType)
},
// table - row
clickRowHandler(row) {
console.log('clickRowHandler', row)
this.parentsData.smartQuery = {
'retention': null,
'security_class': null,
'doc_type': null,
'medium_type': null,
'archive_year': null,
'fonds_no': null
}
this.selections = this.crud.selections
},
//
handleCurrentChange(selection, row) {
console.log('触发单选', row)
this.selections = selection
},
handleSizeChange(size) {
this.page.size = size
this.page.page = 1
this.getViewTable(3)
if (this.selectedCategory.arrangeType === 1) {
this.getViewTable(4, this.parentsData.parentsAnjuanId)
} else {
this.getViewTable(4, this.parentsData.parentsJuanneiId)
}
},
handleCurrentPage(val) {
this.page.page = val
this.getViewTable(3)
if (this.selectedCategory.arrangeType === 1) {
this.getViewTable(4, this.parentsData.parentsAnjuanId)
} else {
this.getViewTable(4, this.parentsData.parentsJuanneiId)
}
},
// dialog - close
handleClose(done) {
this.showCoverVisible = false
done()
},
showCoverPreview(row) {
this.showCoverVisible = true
this.previewSrc = this.baseApi + '/downloadFile' + row.file_path
}
}
}
</script>
<style lang='scss' scoped>
@import "~@/assets/styles/collect-reorganizi.scss";
.svg-style{
width: 60px;
height: 32px;

221
src/views/archivesManage/managementLibrary/index.vue

@ -32,7 +32,7 @@
node-key="id"
:expand-on-click-node="false"
highlight-current
@node-click="handleNodeFilter"
@node-click="handleClassifyFilter"
>
<span slot-scope="{ node, data }" class="custom-tree-node">
<span v-if="data.childDictionarys || data.fondsName" class="iconClassify">
@ -51,10 +51,10 @@
<div class="container-right tab-content">
<span class="right-top-line" />
<span class="left-bottom-line" />
<Project v-if="selectedCategory.arrangeType === 3" ref="projectEle" :selected-category="selectedCategory" :data="sharedData" :is-recycle="isRecycle" @openAnjuan="handleOpenAnjuan" />
<Anjuan v-if="selectedCategory.arrangeType === 1 || selectedCategory.arrangeType === 2 || selectedCategory.arrangeType === 3" ref="anjuanEle" :selected-category="selectedCategory" :data="sharedData" :is-recycle="isRecycle" @openJuannei="handleOpenJuannei" />
<Juannei v-if="selectedCategory.arrangeType === 2 || selectedCategory.arrangeType === 3" ref="juanneiEle" :data="sharedData" :selected-category="selectedCategory" :is-recycle="isRecycle" @openFile="handleOpenFile" />
<File v-if="selectedCategory.arrangeType === 1 || selectedCategory.arrangeType === 2 || selectedCategory.arrangeType === 3" ref="fileEle" :is-recycle="isRecycle" :selected-category="selectedCategory" />
<Project v-if="selectedCategory.arrangeType === 3" ref="projectEle" :selected-category="selectedCategory" :data="sharedData" :is-recycle="isRecycle" :smart-query="smartQuery" @openAnjuan="handleOpenAnjuan" @myYearEvent="handleYearData" />
<Anjuan v-if="selectedCategory.arrangeType === 1 || selectedCategory.arrangeType === 2 || selectedCategory.arrangeType === 3" ref="anjuanEle" :selected-category="selectedCategory" :data="sharedData" :is-recycle="isRecycle" :smart-query="smartQuery" @openJuannei="handleOpenJuannei" @myYearEvent="handleYearData" />
<Juannei v-if="selectedCategory.arrangeType === 2 || selectedCategory.arrangeType === 3" ref="juanneiEle" :data="sharedData" :selected-category="selectedCategory" :is-recycle="isRecycle" :smart-query="smartQuery" @openFile="handleOpenFile" />
<File v-if="selectedCategory.arrangeType === 1 || selectedCategory.arrangeType === 2 || selectedCategory.arrangeType === 3" ref="fileEle" :is-recycle="isRecycle" :selected-category="selectedCategory" :smart-query="smartQuery" />
</div>
</div>
</div>
@ -70,8 +70,9 @@ import Project from './project/index'
import Anjuan from './anjuan/index'
import Juannei from './juannei/index'
import File from './file/index'
export default {
name: 'CollectionLibrary',
name: 'ManagementLibrary',
components: { Project, Anjuan, Juannei, File },
cruds() {
return [
@ -95,6 +96,11 @@ export default {
default: false
}
},
provide() {
return {
parentsData: this
}
},
data() {
return {
defaultProps: {
@ -102,13 +108,28 @@ export default {
label: 'cnName'
},
defaultClassifyProps: {
children: 'childDictionarys',
label: 'dictionaryName'
children: 'childDictionarys' || null,
label: 'dictionaryName' || 'fondsName'
},
defaultFondsProps: {
children: 'children',
label: 'fondsName'
},
sharedData: '',
selectedCategory: {},
classifyTree: [],
classifyLoading: false
yearChildData: '',
parentsProjectId: null,
parentsAnjuanId: null,
parentsJuanneiId: null,
smartQuery: {
'retention': null, //
'security_class': null, //
'doc_type': null, //
'medium_type': null, //
'archive_year': null, //
'fonds_no': null //
},
fixedStatusBar: false
}
},
watch: {
@ -118,9 +139,28 @@ export default {
created() {
},
mounted() {
},
methods: {
handleYearData(data) {
this.yearChildData = data
this.classifyLoading = true
setTimeout(() => {
if (this.classifyTree[0].dictionaryName === '年度') {
this.classifyTree = this.classifyTree.slice(1)
}
if (this.yearChildData.length !== 0) {
const newYearArr = this.yearChildData.map((item, index) => {
const json = {}
json.id = index
json.dictionaryName = item
json.childDictionarys = []
return json
})
this.classifyTree.unshift({ id: -1, dictionaryName: '年度', dictionaryCode: 'archive_year', childDictionarys: newYearArr })
}
this.classifyLoading = false
}, 500)
},
filterData(data) {
return data.filter(node => {
if (node.children && node.children.length > 0) {
@ -191,6 +231,25 @@ export default {
})
},
handleNodeClick(val) {
this.smartQuery = {
'retention': null, //
'security_class': null, //
'doc_type': null, //
'medium_type': null, //
'archive_year': null, //
'fonds_no': null //
}
console.log('测试fixedStatusBar', this.fixedStatusBar)
// if (localStorage.getItem('statusBarFixedType') !== 'undefined') {
// this.fixedStatusBar = JSON.parse(localStorage.getItem('statusBarFixedType')) === true
// }
console.log(this)
this.parentsProjectId = null
this.parentsAnjuanId = null
this.parentsJuanneiId = null
//
localStorage.setItem('currentArchivesKey', JSON.stringify(val))
this.selectedCategory = val
@ -200,28 +259,54 @@ export default {
} else {
this.classifyTree = []
}
this.$nextTick(() => {
if (this.selectedCategory.arrangeType === 3) {
// this.$refs.projectEle.getCommonData(1)
} else if (this.selectedCategory.arrangeType === 2) {
// this.$refs.anjuanEle.$refs.ajContent.$refs.tableList.getCommonData(2)
} else if (this.selectedCategory.arrangeType === 1) {
// this.$refs.anjuanEle.$refs.ajContent.$refs.tableList.getCommonData(3)
this.handlePageList()
})
},
handlePageList(isQuickFilter) {
if (this.selectedCategory.arrangeType === 3) {
const tablistEle = this.$refs.projectEle
//
if (isQuickFilter) {
tablistEle.$refs.collectHeaderRef.getInitArchivesClass()
tablistEle.getTableDisplayFieldsLoading = true
tablistEle.getViewTableList(1, null, isQuickFilter)
} else {
this.$refs.projectEle.getCommonData(1)
}
if (this.$refs.anjuanEle) {
this.$refs.anjuanEle.anjuanDrawer = false
// if (this.$refs.anjuanEle.$refs.ajContent) {
// this.$refs.anjuanEle.$refs.ajContent.activeIndex = 0
// }
} else if (this.selectedCategory.arrangeType === 2) {
const tablistEle = this.$refs.anjuanEle.$refs.ajContent.$refs.tableList
//
if (isQuickFilter) {
tablistEle.$refs.collectHeaderRef.getInitArchivesClass()
tablistEle.getTableDisplayFieldsLoading = true
tablistEle.getViewTableList(2, null, isQuickFilter)
} else {
tablistEle.getCommonData(2)
}
if (this.$refs.juanneiEle) {
this.$refs.juanneiEle.juanneiDrawer = false
} else if (this.selectedCategory.arrangeType === 1) {
const tablistEle = this.$refs.anjuanEle.$refs.ajContent.$refs.tableList
//
if (isQuickFilter) {
tablistEle.$refs.collectHeaderRef.getInitArchivesClass()
tablistEle.getTableDisplayFieldsLoading = true
tablistEle.getViewTableList(3, null, isQuickFilter)
} else {
tablistEle.getCommonData(3)
}
if (this.$refs.fileEle) {
this.$refs.fileEle.fileDrawer = false
}
if (this.$refs.anjuanEle) {
this.$refs.anjuanEle.anjuanDrawer = false
if (this.$refs.anjuanEle.$refs.ajContent) {
this.$refs.anjuanEle.$refs.ajContent.activeIndex = 0
}
})
}
if (this.$refs.juanneiEle) {
this.$refs.juanneiEle.juanneiDrawer = false
}
if (this.$refs.fileEle) {
this.$refs.fileEle.fileDrawer = false
}
},
getDictionaryTreeByCategoryId(categoryId) {
this.classifyLoading = true
@ -241,35 +326,99 @@ export default {
console.log(err)
})
},
handleNodeFilter(val) {
console.log('val', val)
handleClassifyFilter(data, node, ele) {
this.smartQuery = {
'retention': null, //
'security_class': null, //
'doc_type': null, //
'medium_type': null, //
'archive_year': null, //
'fonds_no': null //
}
if (data) {
if (node.childNodes.length === 0) {
const selectedKey = this.$refs.classifyTree.getCurrentNode()
this.treeCurrentNode = ele.$el
if (ele.$el.classList.contains('is-current')) {
this.treeCurrentNode.classList.remove('is-current')
} else {
this.treeCurrentNode.classList.add('is-current')
if (Object.keys(selectedKey).includes('fondsId')) {
this.smartQuery.fonds_no = selectedKey.fondsNo
} else {
const selectedParentVal = this.$refs.classifyTree.getNode(selectedKey).parent.data.dictionaryCode
switch (selectedParentVal) {
case 'security_class':
if (selectedKey.dictionaryCode !== 'security_class') {
this.smartQuery.security_class = selectedKey.dictionaryName
}
break
case 'retention':
if (selectedKey.dictionaryCode !== 'retention') {
this.smartQuery.retention = selectedKey.dictionaryName
}
break
case 'doc_type':
if (selectedKey.dictionaryCode !== 'doc_type') {
this.smartQuery.doc_type = selectedKey.dictionaryName
}
break
case 'medium_type':
if (selectedKey.dictionaryCode !== 'medium_type') {
this.smartQuery.medium_type = selectedKey.dictionaryName
}
break
default:
if (selectedKey.dicCode !== 'archive_year') {
this.smartQuery.archive_year = selectedKey.dictionaryName
}
}
}
}
this.$nextTick(() => {
this.handlePageList('quickFilter')
})
}
}
},
handleOpenAnjuan(data) {
handleOpenAnjuan(data, parentId) {
this.parentsProjectId = parentId
console.log('this.parentsProjectId', this.parentsProjectId)
this.$refs.anjuanEle.anjuanDrawer = true
// this.$refs.anjuanEle.$refs.ajContent.activeIndex = 0
this.activeIndex = 0
if (this.$refs.anjuanEle.$refs.ajContent) {
this.$refs.anjuanEle.$refs.ajContent.activeIndex = 0
}
this.$nextTick(() => {
this.$refs.anjuanEle.$refs.ajContent.$refs.tableList.getCommonData(2, this.parentsProjectId)
this.$refs.anjuanEle.$refs.ajContent.test = data
})
},
handleOpenJuannei(data) {
if (this.selectedCategory.arrangeType === 1) {
// && this.$refs.anjuanEle.$refs.ajContent.activeIndex === 1
handleOpenJuannei(data, parentId) {
this.parentsAnjuanId = parentId
console.log('this.parentsAnjuanId', this.parentsAnjuanId)
if (this.selectedCategory.arrangeType === 1 || (this.selectedCategory.arrangeType === 3 && this.$refs.anjuanEle.$refs.ajContent.activeIndex === 1) || (this.selectedCategory.arrangeType === 2 && this.$refs.anjuanEle.$refs.ajContent.activeIndex === 1)) {
this.$refs.fileEle.fileDrawer = true
this.$nextTick(() => {
this.$refs.fileEle.getCommonData(4, this.parentsAnjuanId)
this.$refs.fileEle.test = data
this.$refs.fileEle.isAjNo = 1
})
} else {
this.$refs.juanneiEle.juanneiDrawer = true
this.$nextTick(() => {
this.$refs.juanneiEle.getCommonData(3, this.parentsAnjuanId)
this.$refs.juanneiEle.test = data
this.$refs.fileEle.isAjNo = 0
})
}
},
handleOpenFile(data) {
handleOpenFile(data, parentId) {
this.parentsJuanneiId = parentId
console.log('this.parentsJuanneiId', this.parentsJuanneiId)
this.$refs.fileEle.fileDrawer = true
this.$nextTick(() => {
this.$refs.fileEle.getCommonData(4, this.parentsJuanneiId)
this.$refs.fileEle.test = data
})
}

237
src/views/archivesManage/managementLibrary/juannei/index.vue

@ -9,92 +9,98 @@
direction="rtl"
:size="selectedCategory.arrangeType === 2 ? '90%' :'80%'"
>
<CollectHeader ref="collectHeader" :is-title-type="isTitleType" :selected-category="selectedCategory" :selections="selections" :test="test" :is-recycle="isRecycle" @status-bar-checked-changed="handleStatusBarCheckedChanged" />
<el-table
ref="table"
v-loading="crud.loading || getTableDisplayFieldsLoading"
class="archives-table"
:data="junneiData"
highlight-current-row
style="width: 100%;"
:row-class-name="tableRowClassName"
:row-key="rowKey"
@select-all="selectAll"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
@cell-dblclick="tableDoubleClick"
@select="handleCurrentChange"
>
<el-table-column type="selection" width="55" :reserve-selection="true" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="原文" prop="children_num" width="55" align="center" />
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
<template slot="header">
<el-tooltip
class="item"
effect="dark"
:content="field.fieldCnName"
placement="top-start"
>
<span>{{ field.fieldCnName }}</span>
</el-tooltip>
</template>
<template slot-scope="scope">
{{ scope.row[field.fieldName] }}
</template>
</el-table-column>
<CollectHeader ref="collectHeaderRef" :is-title-type="isTitleType" :selected-category="selectedCategory" :selections="selections" :test="test" :is-recycle="isRecycle" />
<div class="collect-table">
<el-table
ref="table"
v-loading="crud.loading || getTableDisplayFieldsLoading"
class="archives-table"
:data="junneiData"
highlight-current-row
style="width: 100%;"
:row-class-name="tableRowClassName"
:row-key="rowKey"
@select-all="selectAll"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
@cell-dblclick="tableDoubleClick"
@select="handleCurrentChange"
>
<el-table-column type="selection" width="55" :reserve-selection="true" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="原文" prop="child" width="55" align="center">
<template slot-scope="scope">
{{ scope.row.child === '' ? 0 : scope.row.child }}
</template>
</el-table-column>
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
<template slot="header">
<el-tooltip
class="item"
effect="dark"
:content="field.fieldCnName"
placement="top-start"
>
<span>{{ field.fieldCnName }}</span>
</el-tooltip>
</template>
<template slot-scope="scope">
{{ scope.row[field.fieldName] }}
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="实体" width="88" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<!-- slot-scope="scope" -->
<template>
<span class="row-state row-physical state-active"></span>
<el-table-column v-if="!isRecycle" label="实体" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<!-- slot-scope="scope" -->
<template>
<span class="row-state row-physical state-active"></span>
<!-- <span :class="['row-state', 'row-physical', scope.row.tid ? 'state-active' : '' ]">{{ scope.row.tid ? '有': '无' }}</span> -->
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="标签" width="88" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-binding state-active">未绑</span>
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="标签" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-binding state-active">未绑</span>
<!-- 未绑 / 已绑 -->
<!-- <span :class="['row-state', 'row-binding', scope.row.tid ? 'state-active' : '' ]">{{ scope.row.tid ? '已绑': '未绑' }}</span> -->
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="装盒" width="88" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<!-- state-active 已装/已入/已借/已绑 -->
<template>
<!-- 未装 / 已装 -->
<span class="row-state row-packing state-active">已装</span>
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="装盒" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<!-- state-active 已装/已入/已借/已绑 -->
<template>
<!-- 未装 / 已装 -->
<span class="row-state row-packing state-active">已装</span>
<!-- <span :class="['row-state', 'row-packing', scope.row.case_no ? 'state-active' : '' ]">{{ scope.row.case_no ? '已装': '未装' }}</span> -->
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="入库" width="88" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-warehousing state-active">已入</span>
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="入库" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-warehousing state-active">已入</span>
<!-- is_storage 为空的情况下即没装盒 / 0 未入 / 1 待入 / 2 已入 / 3 待出-->
<!-- <span :class="['row-state', 'row-warehousing', (storageTxt[scope.$index] === '已入' )? 'state-active' : '' ]">{{ storageTxt[scope.$index] }}</span> -->
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="借阅" width="88" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-lending state-active">已借</span>
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="借阅" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template>
<span class="row-state row-lending state-active">已借</span>
<!-- is_borrow 4 已归还 / 为空 - 未加入待借列表 - 在库 / 2 待借阅在待借列表/借出确认列表 - 待借 / 1待登记 - 不可借- 表示 / 3 待归还 - 已借 -->
<!-- <span :class="['row-state', 'row-lending', (borrowTxt[scope.$index] === '已借' )? 'state-active' : '' ]">{{ borrowTxt[scope.$index] }}</span> -->
</template>
</el-table-column>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
v-if="junneiData.length !== 0"
:current-page="page.page"
:total="page.total"
:page-size="page.size"
:pager-count="5"
layout="total, prev, pager, next, sizes"
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</el-table>
<!--分页组件-->
<el-pagination
v-if="junneiData.length !== 0"
:current-page="page.page"
:total="page.total"
:page-size="page.size"
:pager-count="5"
layout="total, prev, pager, next, sizes"
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :category-id="categoryId" :arc-id="arcId" />
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" />
<span class="closed-btn" @click="closeDrawer" />
</el-drawer>
</template>
@ -104,10 +110,6 @@ import { manageLibraryCrud } from '../mixins/index'
import { header, form } from '@crud/crud'
import CollectHeader from '../module/collectHeader.vue'
import ArchivesInfo from '../module/archivesInfo/index'
import tableData from '../anjuan/table.json'
import jsonData from '../anjuan/data.json'
export default {
name: 'Juannei',
components: { CollectHeader, ArchivesInfo },
@ -126,15 +128,24 @@ export default {
isRecycle: {
type: Boolean,
default: false
},
smartQuery: {
type: Object,
default: function() {
return {}
}
}
},
inject: ['parentsData'],
data() {
return {
isTitleType: 4,
juanneiDrawer: false,
categoryId: 'CD135F6A77018CE04D4FDB',
arcId: '256E752BC0280618840600',
test: ''
categoryId: '',
arcId: '',
test: '',
selections: [],
parentId: null
}
},
watch: {
@ -145,32 +156,35 @@ export default {
}
},
created() {
this.tableDisplayFields = tableData.data
this.junneiData = jsonData.data.list.content
},
mounted() {
console.log('nei2', this.selectedCategory.arrangeType)
},
methods: {
handleStatusBarCheckedChanged(statusBarChecked) {
console.log('父组件获取到子组件状态:', statusBarChecked)
this.fixedStatusBar = statusBarChecked
//
},
getCommonData(type) {
this.getViewTable(type)
getCommonData(categoryLevel, parentId, type) {
this.getViewTable(categoryLevel, parentId, type)
},
openFile(data) {
openFile(data, parentId) {
// this.$emit('openFile', '')
this.$emit('openFile', data)
this.$emit('openFile', data, parentId)
},
closeDrawer() {
this.juanneiDrawer = false
console.log(this.$parent)
this.$parent.parentsAnjuanId = null
},
rowKey(row) {
return row.id
},
// table
tableRowClassName({ row, rowIndex }) {
// console.log('', row, rowIndex)
let color = ''
this.selections.forEach(item => {
if (item.id === row.id) {
color = 'rowStyle'
}
})
return color
},
// table -
selectAll(val) {
this.selections = val
@ -182,20 +196,30 @@ export default {
}
console.log('tableDoubleClick', row)
this.arcId = row.id
this.$refs.archivesInfo.isHasFile = true
this.$refs.archivesInfo.detailTitle = '卷内详情'
this.$refs.archivesInfo.archivesInfoVisible = true
this.$refs.archivesInfo.archivesTabIndex = 0
// this.$refs.archivesInfo.getDetial(row.id)
this.$nextTick(() => {
this.$refs.archivesInfo.isHasFile = true
this.$refs.archivesInfo.detailTitle = '卷内详情'
this.$refs.archivesInfo.archivesInfoVisible = true
this.$refs.archivesInfo.archivesTabIndex = 0
this.$refs.archivesInfo.getDetial(3, row.id)
})
},
// table - row
clickRowHandler(row) {
console.log('clickRowHandler', row)
this.parentsData.smartQuery = {
'retention': null,
'security_class': null,
'doc_type': null,
'medium_type': null,
'archive_year': null,
'fonds_no': null
}
if (this.timer) {
clearTimeout(this.timer)
}
this.timer = setTimeout(() => {
this.openFile('所属卷内:' + row.archive_no)
this.parentId = row.id
this.openFile('所属卷内:' + row.archive_no, this.parentId)
}, 300)
this.selections = this.crud.selections
},
@ -207,16 +231,11 @@ export default {
handleSizeChange(size) {
this.page.size = size
this.page.page = 1
this.getViewTable(3)
this.getViewTable(3, this.parentsData.parentsAnjuanId)
},
handleCurrentPage(val) {
this.page.page = val
this.getViewTable(3)
},
doLayout() {
this.$nextTick(() => {
this.$refs.table.doLayout()
})
this.getViewTable(3, this.parentsData.parentsAnjuanId)
}
}
}

216
src/views/archivesManage/managementLibrary/mixins/index.js

@ -1,17 +1,16 @@
// import qs from 'qs'
// import { exportFile } from '@/utils/index'
import { FetchInitCategoryViewTable, FetchInitCategoryView } from '@/api/collect/collect'
import { crud } from '@crud/crud'
export const manageLibraryCrud = {
mixins: [crud()],
// 组件共用属性
data() {
return {
getTableDisplayFieldsLoading: false, // table-loading
getTableDisplayFieldsLoading: false,
tableDisplayFields: [],
projectData: [],
anjuanData: [],
junneiData: [],
fileData: [],
selections: [],
arrySort: [],
page: {
page: 1,
@ -20,35 +19,73 @@ export const manageLibraryCrud = {
},
timer: null,
query: {
search: null
search: null,
project_class: null,
archive_ctg_no: null
},
fixedStatusBar: false
classifyTree: [],
classifyLoading: false,
parentsId: null
}
},
// 组件挂载时的共用方法
mounted() {
},
// 组件共用方法
methods: {
// 缓存用户对于固定栏操作习惯
// statusBarChecked(val) {
// console.log('statusVal', val)
// this.fixedStatusBar = val
// this.$emit('status-bar-checked-changed', this.fixedStatusBar)
// localStorage.setItem('statusBarFixedType', val)
// },
// table选中加上选中状态
tableRowClassName({ row, rowIndex }) {
// console.log('添加类名', row, rowIndex)
let color = ''
this.selections.forEach(item => {
if (item.id === row.id) {
color = 'rowStyle'
}
})
return color
statusBarChecked(val) {
this.fixedStatusBar = val
localStorage.setItem('statusBarFixedType', val)
},
handleSearch() {
this.getViewTableList()
handleSearch(categoryLevel) {
this.parentsData.$refs.classifyTree.setCurrentKey(null)
this.smartQuery = {
'retention': null,
'security_class': null,
'doc_type': null,
'medium_type': null,
'archive_year': null,
'fonds_no': null
}
// 2 项目 3 案卷 /文件 4 卷内 6 文件
if (this.isTitleType === 2) {
this.parentsId = null
this.$parent.getTableDisplayFieldsLoading = true
} else if (this.isTitleType === 3) {
if (this.selectedCategory.arrangeType === 1) {
this.parentsId = null
} else {
console.log('未整理理理理2')
console.log(this.activeIndex)
if (this.activeIndex === 1) {
this.parentsId = null
} else {
this.parentsId = this.parentsData.parentsProjectId
}
}
this.$parent.getTableDisplayFieldsLoading = true
} else if (this.isTitleType === 4) {
// 卷内
this.$parent.$parent.getTableDisplayFieldsLoading = true
this.parentsId = this.parentsData.parentsAnjuanId
} else if (this.isTitleType === 6) {
console.log('isTitleType', this.isTitleType)
// 原文
if (this.selectedCategory.arrangeType === 1) {
this.parentsId = this.parentsData.parentsAnjuanId
this.$parent.getTableDisplayFieldsLoading = true
} else {
this.$parent.$parent.getTableDisplayFieldsLoading = true
this.parentsId = this.parentsData.parentsJuanneiId
}
}
setTimeout(() => {
this.getViewTable(categoryLevel, this.parentsId, 'search')
}, 200)
},
getViewTable(categoryLevel) {
getViewTable(categoryLevel, parentsId, type) {
this.getTableDisplayFieldsLoading = true
this.tableDisplayFields = []
FetchInitCategoryViewTable({ categoryId: this.selectedCategory.id, categoryLevel: categoryLevel }).then((res) => {
@ -62,51 +99,138 @@ export const manageLibraryCrud = {
}
})
this.$nextTick(() => {
console.log('tableDisplayFields', this.tableDisplayFields)
this.getViewTableList(categoryLevel)
this.getViewTableList(categoryLevel, parentsId, type)
})
}
})
},
getViewTableList(categoryLevel) {
this.anjuanData = []
getViewTableList(categoryLevel, parentsId, type) {
console.log('list', parentsId)
const params = {
'parentId': parentsId,
'categoryId': this.selectedCategory.id,
'categoryLevel': categoryLevel,
'search': this.query.search,
'retention': this.smartQuery.retention,
'security_class': this.smartQuery.security_class,
'medium_type': this.smartQuery.medium_type,
'doc_type': this.smartQuery.doc_type,
'archive_year': this.smartQuery.archive_year,
'fonds_no': this.smartQuery.fonds_no,
'project_class': this.query.project_class,
'archive_ctg_no': this.query.archive_ctg_no,
'page': this.page.page - 1,
'size': this.page.size
'size': this.page.size,
'sort': this.arrySort
}
FetchInitCategoryView(params).then((res) => {
console.log(res)
if (res.code !== 500) {
if (categoryLevel === 1) {
console.log('111')
// 项目
const projectObj = this.parentsData.$refs.projectEle
this.projectData = res.list.content
this.page.total = res.list.totalElements
this.yearData = res.yearGroup
if (this.yearData && type !== 'quickFilter') {
this.$emit('myYearEvent', this.yearData)
}
if (type === 'search') {
projectObj.projectData = res.list.content
projectObj.page.total = res.list.totalElements
projectObj.getTableDisplayFieldsLoading = false
}
} else if (categoryLevel === 2) {
console.log('2222222')
// 案卷
const anjuanObj = this.parentsData.$refs.anjuanEle.$refs.ajContent.$refs.tableList
this.anjuanData = res.list.content
this.page.total = res.list.totalElements
this.yearData = res.yearGroup
if (this.yearData && type !== 'quickFilter') {
this.$parent.$parent.$emit('myYearEvent', this.yearData)
}
// 搜索/新增/编辑 非 案卷是主页的时候
if (type === 'search') {
anjuanObj.anjuanData = res.list.content
anjuanObj.page.total = res.list.totalElements
anjuanObj.getTableDisplayFieldsLoading = false
}
} else if (categoryLevel === 3) {
console.log('333')
if (this.isTitleType === 6) {
this.fileData = res.list.content
if (this.isTitleType === 3) {
// 案卷下的未整理 / 文件为主页时
const wjObj = this.parentsData.$refs.anjuanEle.$refs.ajContent.$refs.tableList
this.anjuanData = res.list.content
this.page.total = res.list.totalElements
this.yearData = res.yearGroup
if (this.yearData && type !== 'quickFilter') {
this.$parent.$parent.$emit('myYearEvent', this.yearData)
}
if (type === 'search') {
wjObj.anjuanData = res.list.content
wjObj.page.total = res.list.totalElements
wjObj.getTableDisplayFieldsLoading = false
}
} else {
// 卷内
this.junneiData = res.list.content
this.page.total = res.list.totalElements
if (type === 'search') {
this.parentsData.$refs.juanneiEle.junneiData = res.list.content
this.parentsData.$refs.juanneiEle.page.total = res.list.totalElements
this.parentsData.$refs.juanneiEle.getTableDisplayFieldsLoading = false
}
}
} else {
// 原文
this.fileData = res.list.content
this.page.total = res.list.totalElements
if (type === 'search') {
this.parentsData.$refs.fileEle.fileData = res.list.content
this.parentsData.$refs.fileEle.page.total = res.list.totalElements
this.parentsData.$refs.fileEle.getTableDisplayFieldsLoading = false
}
}
this.page.total = res.list.totalElements
}
this.getTableDisplayFieldsLoading = false
this.crud.selections = []
if (categoryLevel === 3) {
// 按件
if (this.isTitleType === 3) {
const wjObj = this.parentsData.$refs.anjuanEle.$refs.ajContent.$refs.tableList
wjObj.selections = []
wjObj.$refs.table.clearSelection() // 清空选中
wjObj.$refs.table.setCurrentRow(-1) // 清除高亮
} else {
const juanneiObj = this.parentsData.$refs.juanneiEle
juanneiObj.selections = []
juanneiObj.$refs.table.clearSelection()
juanneiObj.$refs.table.setCurrentRow(-1)
}
} else if (categoryLevel === 2) {
// 按卷
const anjuanObj = this.parentsData.$refs.anjuanEle.$refs.ajContent.$refs.tableList
anjuanObj.selections = []
anjuanObj.$refs.table.clearSelection()
anjuanObj.$refs.table.setCurrentRow(-1)
} else if (categoryLevel === 1) {
// 项目
const projectObj = this.parentsData.$refs.projectEle
projectObj.selections = []
projectObj.$refs.table.clearSelection()
projectObj.$refs.table.setCurrentRow(-1)
} else {
const fileObj = this.parentsData.$refs.fileEle
fileObj.selections = []
fileObj.$refs.table.clearSelection()
fileObj.$refs.table.setCurrentRow(-1)
}
})
}
},
/* 重新渲染table组件 防止table-fixed 错位 配合watch-table数据 */
// doLayout() {
// this.$nextTick(() => {
// this.$refs.table.doLayout()
// })
// }
},
// 组件挂载时的共用方法
mounted() {
doLayout() {
this.$nextTick(() => {
this.$refs.table.doLayout()
})
}
}
}

267
src/views/archivesManage/managementLibrary/module/collectHeader.vue

@ -1,52 +1,53 @@
<template>
<div>
<!-- <div :class="[ isTitleType === 6 || isTitleType === 2 ? 'collect-header manage-fixed-style' : 'collect-header']"> -->
<div class="collect-header">
<h4 :class="classType">{{ collectTitle }} </h4>
<div class="collect-filter">
<el-select
v-if="isTitleType === 3 && selectedCategory.arrangeType !== 3"
v-model="selectStatus"
multiple
collapse-tags
style="margin-right: 10px; width: 160px;"
placeholder="请选择"
>
<el-option
v-for="item in statusOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<treeselect
v-if="selectedCategory.arrangeType === 3 && isTitleType !== 4 && isTitleType !== 6 && activeIndex !== 1"
v-model="query.projectClass"
v-if="selectedCategory.arrangeType === 3 && isTitleType !== 4 && isTitleType !== 6"
v-model="query.project_class"
:options="projectOptions"
style="width: 160px;"
flat
:multiple="false"
:normalizer="normalizerProject"
placeholder="请选择"
@input="handleSearch(collectLevel)"
@select="handleSearch(collectLevel)"
/>
<treeselect
v-if="isTitleType !== 6"
v-model="query.classify"
v-model="query.archive_ctg_no"
:options="classifyOptions"
style="width: 160px;"
flat
:multiple="false"
:normalizer="normalizer"
placeholder="请选择档案分类"
@input="handleSearch(collectLevel)"
@select="handleSearch(collectLevel)"
/>
</div>
<div class="head-search">
<el-select
v-if="isTitleType === 3 && selectedCategory.arrangeType !== 3"
v-model="selectStatus"
multiple
collapse-tags
style="margin-right: 10px; width: 160px;"
placeholder="请选择"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<div v-if="isTitleType !== 6" class="head-search">
<!-- 搜索 -->
<div v-if="isTitleType !== 6">
<el-input v-model="query.search" clearable size="small" :placeholder="placeholderType" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" />
<el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="handleSearch">搜索</el-button>
<el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left">重置</el-button>
</div>
<el-input v-model="query.search" clearable size="small" :placeholder="placeholderType" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="handleSearch(collectLevel)" @clear="handleSearch(collectLevel)" />
<el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="handleSearch(collectLevel)">搜索</el-button>
<el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置</el-button>
</div>
<div v-if="!isRecycle" class="collect-menu">
<el-menu
@ -72,8 +73,8 @@
<el-menu-item v-if="isTitleType === 3" index="2-1" @click="bindingTag(selections)">标签绑定</el-menu-item>
<el-menu-item-group v-if="isTitleType === 3" class="collect-submenu-group submenu-tree">
<template slot="title">档案装盒</template>
<el-menu-item index="2-2">装盒</el-menu-item>
<el-menu-item v-if="selectedCategory.arrangeType !== 1" index="2-3">分卷装盒</el-menu-item>
<el-menu-item index="2-2" @click="handlePackingBox(0)">装盒</el-menu-item>
<el-menu-item v-if="selectedCategory.arrangeType !== 1" index="2-3" @click="handlePackingBox(1)">分卷装盒</el-menu-item>
</el-menu-item-group>
<el-menu-item-group v-if="selectedCategory.isType === 2" class="collect-submenu-group submenu-tree">
<template slot="title">档案移交</template>
@ -110,8 +111,19 @@
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<!-- @emitTableList="getTableList" -->
<PreviewForm v-if="formPreviewData.length" ref="previewForm" :is-has-code="true" :is-disabled="false" :form-preview-data.sync="formPreviewData" :selected-category="selectedCategory" :parents-id="parentsId" :arc-id="arcId" :is-des-form-type="isDesFormType" />
<PreviewForm
v-if="formPreviewData.length"
ref="previewForm"
:is-has-code="true"
:is-disabled="false"
:form-preview-data.sync="formPreviewData"
:selected-category="selectedCategory"
:arc-id="arcId"
:is-des-form-type="isDesFormType"
:is-title-type="isTitleType"
:collect-level="collectLevel"
@close-dialog="closeDialog"
/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handlerArchivesSubmit">保存</el-button>
</div>
@ -120,20 +132,8 @@
<!-- 绑定标签 -->
<binding-tag-dlg ref="bindingTag" :binding-id="selections[0] && selections[0].id" :binding-type="1" binding-txt="档案" />
<!--删除对话框组件-->
<el-dialog class="tip-dialog" title="提示" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="deleteVisible">
<div class="setting-dialog">
<div class="tip-content">
<p class="tipMsg">此删除将把会所选条目与其子集放入回收站</p>
<span>你是否还要继续?</span>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="deleteVisible = false">取消</el-button>
<el-button type="primary" @click.native="handleDelConfirm">确定</el-button>
</div>
</div>
</el-dialog>
<!-- 装盒 / 分卷装盒 -->
<PackingBox ref="packingBox" :selected-category="selectedCategory" />
<!-- 导出 -->
<el-dialog class="tip-dialog" title="导出" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="exportVisible">
@ -183,7 +183,7 @@
<div style="display: flex; justify-content: space-between; height: 30px; line-height: 30px; padding: 0 10px; ">
<span v-if="(isTitleType !== 2 && selectedCategory.arrangeType === 3 ) || ((isTitleType === 4 || isTitleType === 6) && selectedCategory.arrangeType === 2) || (isTitleType === 6 && selectedCategory.arrangeType === 1)" style="font-size: 12px;">{{ test }}</span>
<div v-if="isTitleType !== 2 && !isRecycle && isTitleType !== 6" class="mangement-fixed-top">
<el-checkbox v-model="fixedStatusBar" @change="statusBarChecked">隐藏状态栏</el-checkbox>
<el-checkbox v-model="parentsData.fixedStatusBar" @change="statusBarChecked">隐藏状态栏</el-checkbox>
</div>
</div>
</div>
@ -192,6 +192,7 @@
<script>
import { manageLibraryCrud } from '../mixins/index'
import { FetchInitCategoryInputFieldByPid } from '@/api/system/category/category'
import { FetchDetailsById } from '@/api/collect/collect'
import { FetchArchivesClassTree } from '@/api/system/archivesClass'
import { FetchDictionaryTree } from '@/api/system/dict'
import Treeselect from '@riophae/vue-treeselect'
@ -199,11 +200,12 @@ import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import PreviewForm from '@/views/components/category/PreviewForm'
import Print from './print/index'
import BindingTagDlg from '@/views/components/BindingTagDlg'
import PackingBox from './packingBox/index'
// import { exportFile } from '@/utils/index'
import { mapGetters } from 'vuex'
export default {
name: 'CollectHeader',
components: { Treeselect, PreviewForm, BindingTagDlg, Print },
components: { Treeselect, PreviewForm, BindingTagDlg, Print, PackingBox },
mixins: [manageLibraryCrud],
props: {
selectedCategory: {
@ -216,12 +218,6 @@ export default {
type: Number,
default: 2
},
arcId: {
type: String,
default: function() {
return ''
}
},
test: {
type: String,
default: function() {
@ -239,9 +235,10 @@ export default {
}
}
},
inject: ['parentsData'],
data() {
return {
options: [
statusOptions: [
{
value: '未装盒',
label: '未装盒'
@ -284,20 +281,15 @@ export default {
formVisible: false,
formTitle: '项目',
formPreviewData: [], // data
query: {
projectClass: null,
classify: null
},
projectOptions: [],
classifyOptions: [],
deleteVisible: false,
moveVisible: false,
exportVisible: false,
downloadVisible: false,
recoverVisible: false,
completelyDeleteVisible: false,
parentsId: null, // id
isDesFormType: null //
isDesFormType: 'arcives', //
arcId: null
}
},
computed: {
@ -312,11 +304,6 @@ export default {
return '文件'
} else {
return '案卷'
// if (this.activeIndex === 1) {
// return ''
// } else {
// return ''
// }
}
} else if (this.isTitleType === 4) {
return '卷内'
@ -325,6 +312,22 @@ export default {
}
return ''
},
collectLevel() {
if (this.isTitleType === 2) {
return 1
} else if (this.isTitleType === 3) {
if (this.selectedCategory.arrangeType === 1) {
return 3
} else {
return 2
}
} else if (this.isTitleType === 4) {
return 3
} else if (this.isTitleType === 6) {
return 4
}
return null
},
classType() {
if (this.isTitleType === 2) {
return ''
@ -352,20 +355,26 @@ export default {
this.getInitArchivesClass()
this.getDictsList()
if (localStorage.getItem('statusBarFixedType') !== 'undefined') {
this.fixedStatusBar = JSON.parse(localStorage.getItem('statusBarFixedType')) === true
this.$emit('status-bar-checked-changed', this.fixedStatusBar)
this.parentsData.fixedStatusBar = JSON.parse(localStorage.getItem('statusBarFixedType')) === true
}
},
methods: {
//
statusBarChecked(val) {
console.log('statusVal', val)
this.fixedStatusBar = val
this.$emit('status-bar-checked-changed', this.fixedStatusBar)
localStorage.setItem('statusBarFixedType', val)
resetQuery() {
this.query = {
'search': null,
'project_class': null,
'archive_ctg_no': null
}
this.handleSearch(this.collectLevel)
},
// -
getInitArchivesClass() {
this.classifyOptions = []
this.query = {
'search': null,
'project_class': null,
'archive_ctg_no': null
}
const params = {
'categoryId': this.selectedCategory.id
}
@ -385,6 +394,7 @@ export default {
children: node.childArchivesClass
}
},
// -
getDictsList() {
this.projectOptions = []
FetchDictionaryTree().then((res) => {
@ -428,7 +438,7 @@ export default {
delete node.childDictionarys
}
return {
id: node.dictionaryCode,
id: node.dictionaryName,
label: node.dictionaryName,
children: node.childDictionarys,
isDisabled: this.isTitleType === 3 ? node.level !== 3 : node.level === 1
@ -440,12 +450,11 @@ export default {
// -form/-api
handleForm(type) {
if (type === 'add') {
this.formVisible = true
this.formTitle = '新增' + this.collectTitle
// this.arcId = null
this.arcId = null
} else if (type === 'edit') {
console.log(this.selections)
// this.arcId = this.selections[0].id
this.arcId = this.selections[0].id
if (this.selections.length === 0) {
this.$message('您还未勾选需要操作的条目,请先确认!')
return false
@ -453,68 +462,70 @@ export default {
this.$message('编辑操作只可勾选唯一目标条目,请先确认!')
return false
}
this.formVisible = true
this.formTitle = '编辑' + this.collectTitle
}
// this.form.dictionaryConfigId = {}
// this.formPreviewData = []
//
this.getFormInfo(type)
this.formVisible = true
this.$nextTick(() => {
this.getFormInfo(type)
})
},
getFormInfo(type) {
FetchInitCategoryInputFieldByPid({ categoryId: this.selectedCategory.id }).then(data => {
this.formPreviewData = data
this.$nextTick(() => {
if (type === 'edit') {
this.$refs.previewForm.addOrUpdateForm = data.echo
} else {
// if (this.recycleMain.selectedCategory.isType !== 5) {
//
// this.formPreviewData.forEach(item => {
// if (isAnOrJuan === 1) {
// if (this.recycleMain.selectedCategory.isType !== 3) {
// if (this.recycleMain.projectSelection[item.fieldName]) {
// this.$refs.previewForm.addOrUpdateForm = JSON.parse(JSON.stringify(this.recycleMain.projectSelection))
// }
// }
// } else if (isAnOrJuan === 2) {
// if (this.recycleMain.anjuanSelection[item.fieldName]) {
// this.$refs.previewForm.addOrUpdateForm = JSON.parse(JSON.stringify(this.recycleMain.anjuanSelection))
// }
// }
// })
// }
}
if (type === 'edit') {
const params = {
'categoryId': this.selectedCategory.id,
'categoryLevel': this.collectLevel,
'id': this.arcId
}
FetchDetailsById(params).then(data => {
const showFiledAll = data.showFiled.filter(item => item.isSequence).sort((a, b) => a.isSequence - b.isSequence)
this.$nextTick(() => {
this.formPreviewData = showFiledAll
this.isDesFormType = 'arcives'
this.$nextTick(() => {
this.$refs.previewForm.archivesType = 'edit'
this.$refs.previewForm.addOrUpdateForm = data.echo
this.$refs.previewForm.FetchNoFormatField(this.selectedCategory.id)
})
})
})
} else {
const params = {
'categoryId': this.selectedCategory.id,
'categoryLevel': this.collectLevel
}
FetchInitCategoryInputFieldByPid(params).then(data => {
this.formPreviewData = data
this.isDesFormType = 'arcives'
this.$refs.previewForm.FetchNoFormatField(this.selectedCategory.id)
this.$nextTick(() => {
this.$refs.previewForm.archivesType = 'add'
this.$refs.previewForm.FetchNoFormatField(this.selectedCategory.id)
})
})
})
}
},
// form - submit
handlerArchivesSubmit() {
this.formVisible = false
this.$refs.previewForm.submitForm('addOrUpdateForm', this.selectedCategory.id)
this.selections = []
this.$refs.previewForm.submitForm('addOrUpdateForm', this.selectedCategory.id,)
},
// -
handleClose(done) {
this.formVisible = false
done()
},
//
// toDelete() {
// if (this.selections.length === 0) {
// this.$message('')
// return false
// }
// this.deleteVisible = true
// },
// -
handleDelConfirm() {
this.deleteVisible = false
},
//
bindingTag(data) {
if (this.selections.length === 0) {
this.$message('您还未勾选需要操作的条目,请先确认!')
return false
}
if (this.selections.length > 1) {
this.$message('只可勾选唯一目标条目,请先确认!')
return false
}
if (data[0].tid) {
// this.$refs.bindingTag.isBinding = true
this.$refs.bindingTag.tidCode = data[0].tid
@ -576,6 +587,26 @@ export default {
},
handleCompletelyDelete() {
this.completelyDeleteVisible = false
},
handlePackingBox(type) {
if (this.selections.length === 0) {
this.$message('您还未勾选需要操作的条目,请先确认!')
return false
}
// name
// const existsNotEmpty = this.selections.some(item => item.caseNum)
// if (existsNotEmpty) {
// this.$message('')
// return false
// }
this.$refs.packingBox.packingVisible = true
this.$refs.packingBox.isPackingOrPartType = type
},
closeDialog(data) {
this.formVisible = false
setTimeout(() => {
this.handleSearch(this.collectLevel)
})
}
}
}

475
src/views/archivesManage/managementLibrary/module/packingBox/index.vue

@ -0,0 +1,475 @@
<template>
<el-dialog class="partPackingDialog" title="装盒" :visible.sync="packingVisible" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :before-close="handleClose">
<div class="setting-dialog">
<div class="packing-head">
<div class="head-search">
<!-- 搜索 -->
<el-input v-model="caseQuery[inputSelect]" clearable size="small" placeholder="请输入搜索关键字" style="width: 245px; margin-right: 10px;" class="input-prepend filter-item" @keyup.enter.native="getCaseList" @clear="clearTableData">
<el-select slot="prepend" v-model="inputSelect" style="width: 90px" @change="querySelect">
<el-option
v-for="item in queryOption"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-input>
<el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="getCaseList">搜索</el-button>
<el-button class="filter-rfid" type="success" disabled><i class="iconfont icon-duqu" />读取</el-button>
</div>
<div class="selct-data-head">
<p v-if="selectedCategory.arrangeType === 1">数据来源文件<span>{{ selections.length }}</span>条数据</p>
<!-- totalSumAll -->
<p v-else>数据来源案卷<span>{{ selections.length }}</span>条数据 卷内<span>{{ 111 }}</span>条数据</p>
</div>
</div>
<!--表格渲染-->
<!-- 装盒 -->
<el-table
v-if="!isPackingOrPartType"
ref="table"
:data="tableData"
style="min-width: 100%"
height="calc(100vh - 382px)"
>
<el-table-column prop="create_date" label="操作" width="80" align="center">
<template slot-scope="scope">
<el-button class="packing-handle-btn iconfont" @click="handleCartoning(scope.row)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
</template>
</el-table-column>
<el-table-column prop="caseNum" label="盒号" min-width="60" align="center" />
<el-table-column prop="depositNum" label="已装" min-width="100" align="center" />
<el-table-column prop="tid" label="TID" min-width="120" align="center" />
<el-table-column prop="barcode" label="条形码" min-width="120" align="center" />
<el-table-column prop="retention" label="保管期限" min-width="100" align="center" />
<el-table-column prop="security_class" label="密级" min-width="100" align="center" />
<el-table-column prop="fonds" label="全宗" min-width="100" align="center" />
<el-table-column prop="category" label="所属门类" min-width="100" align="center" />
<el-table-column prop="classify" label="所属分类" min-width="100" align="center" />
</el-table>
<!-- 分卷 -->
<div v-else class="part-packing-cont">
<div class="part-packing-item">
<h5 class="part-packing-title">盒列表-待选</h5>
<el-table
ref="table"
class="custom-table"
:data="tableData"
style="width: 100%"
height="calc(100vh/2 - 200px)"
>
<el-table-column prop="create_date" label="操作" width="80" align="center">
<template slot-scope="scope">
<el-button class="packing-handle-btn iconfont" @click="handleCartoning(scope.row)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
</template>
</el-table-column>
<el-table-column prop="caseNum" label="盒号" min-width="60" align="center" />
<el-table-column prop="depositNum" label="已装" min-width="100" align="center" />
<el-table-column prop="tid" label="TID" min-width="120" align="center" />
<el-table-column prop="barcode" label="条形码" min-width="120" align="center" />
<el-table-column prop="retention" label="保管期限" min-width="100" align="center" />
<el-table-column prop="security_class" label="密级" min-width="100" align="center" />
<el-table-column prop="fonds" label="全宗" min-width="100" align="center" />
<el-table-column prop="category" label="所属门类" min-width="100" align="center" />
<el-table-column prop="classify" label="所属分类" min-width="100" align="center" />
</el-table>
</div>
<div class="part-packing-item">
<h5 class="part-packing-title">盒列表-已选</h5>
<el-table
ref="selectBox"
class="custom-table"
:data="selectTableData"
style="width: 100%"
height="calc(100vh/2 - 200px)"
>
<el-table-column prop="create_date" label="操作" align="center">
<template slot-scope="scope">
<el-button class="packing-recall-btn iconfont" @click="cancelParking(scope.row,scope.$index)"><svg-icon icon-class="chehui" class="svg-arc-style" />撤销</el-button>
</template>
</el-table-column>
<el-table-column prop="caseNum" label="盒号" min-width="60" align="center" />
<el-table-column prop="depositNum" label="已装" min-width="100" align="center" />
<el-table-column prop="tid" label="TID" min-width="120" align="center" />
<el-table-column prop="barcode" label="条形码" min-width="120" align="center" />
<el-table-column prop="retention" label="保管期限" min-width="100" align="center" />
<el-table-column prop="security_class" label="密级" min-width="100" align="center" />
<el-table-column prop="fonds" label="全宗" min-width="100" align="center" />
<el-table-column prop="category" label="所属门类" min-width="100" align="center" />
<el-table-column prop="classify" label="所属分类" min-width="100" align="center" />
</el-table>
</div>
<div class="part-packing-item">
<h5 class="part-packing-title">档案列表-待选</h5>
<el-table
ref="archivesList"
class="archives-table custom-table"
:data="archivesTable"
highlight-current-row
style="width: 100%;"
height="calc(100vh/2 - 200px)"
@selection-change="selectionChangeHandler"
@row-click="clickRowHandler"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="文件" prop="children_num" width="55" align="center" />
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
<template slot="header">
<el-tooltip
class="item"
effect="dark"
:content="field.fieldCnName"
placement="top-start"
>
<span>{{ field.fieldCnName }}</span>
</el-tooltip>
</template>
<template slot-scope="scope">
{{ scope.row[field.fieldName] }}
</template>
</el-table-column>
</el-table>
</div>
<div class="part-packing-item">
<h5 class="part-packing-title">档案列表-已选</h5>
<el-table
ref="selectArchivesList"
class="archives-table custom-table"
:data="selectArchivesTable"
highlight-current-row
style="width: 100%;"
height="calc(100vh/2 - 200px)"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="文件" prop="children_num" width="55" align="center" />
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
<template slot="header">
<el-tooltip
class="item"
effect="dark"
:content="field.fieldCnName"
placement="top-start"
>
<span>{{ field.fieldCnName }}</span>
</el-tooltip>
</template>
<template slot-scope="scope">
{{ scope.row[field.fieldName] }}
</template>
</el-table-column>
</el-table>
</div>
</div>
<div v-if="isPackingOrPartType" slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleComfireCartoning">保存</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
// import { FetchInitCartoningList, FetchCartoning } from '@/api/archivesManage/caseManage'
// import { FetchInitArchivesView } from '@/api/archivesManage/archivesList'
import { header, form } from '@crud/crud'
const data = [
{
'id': '02877E5A6559BEDE24B227',
'caseName': 'ZL-2023-1',
'caseType': 0,
'tid': null,
'barcode': null,
'shelfId': null,
'folderLocation': null,
'folderLocationDetails': null,
'depositNum': 0,
'storageType': 0,
'storageTime': null,
'create_by': 'admin',
'update_by': 'admin',
'create_time': 1695628425000,
'update_time': 1702971551000
}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}
]
export default {
name: 'Packing',
components: { },
// inject: ['caseData', 'recycleMain'],
mixins: [
header(),
form({})
],
props: {
selectedCategory: {
type: Object,
default: function() {
return {}
}
}
// collectLevel: {
// type: Number,
// default: function() {
// return null
// }
// }
// selections: {
// type: Array,
// default: () => []
// }
},
data() {
return {
packingData: [],
tableData: [],
selectTableData: [],
archivesTable: [],
selectArchivesTable: [],
selections: [],
tid: null,
caseName: null,
barcode: null,
caseQuery: {},
inputSelect: null,
queryOption: [
{ value: 'caseName', label: '盒号' },
{ value: 'tid', label: 'TID' },
{ value: 'barcode', label: '条形码' }
],
packingVisible: false, //
isPackingOrPartType: 0
}
},
created() {
// select -
this.inputSelect = this.queryOption[0].value
this.tableData = data
},
methods: {
// -select
querySelect(val) {
this.inputSelect = val
},
//
getCaseList() {
if (!this.caseQuery[this.inputSelect]) {
this.$message.error('请输入后再搜索!')
return
}
switch (this.inputSelect) {
case 'caseName':
this.caseName = this.caseQuery[this.inputSelect]
this.tid = null
this.barcode = null
break
case 'tid':
this.tid = this.caseQuery[this.inputSelect]
this.caseName = null
this.barcode = null
break
case 'barcode':
this.barcode = this.caseQuery[this.inputSelect]
this.caseName = null
this.tid = null
break
}
// const params = {
// 'tid': this.tid,
// 'caseName': this.caseName,
// 'barcode': this.barcode,
// 'page': 0,
// 'size': 10
// }
// FetchInitCartoningList(params).then(res => {
// this.tableData = res.content
// })
},
async getPackingFileList() {
// let categoryId
// if (this.selectedCategory.isType === 2) {
// categoryId = this.selectedCategory.children[0].children[0].id
// } else {
// categoryId = this.selectedCategory.children[0].id
// }
// const params = {
// 'categoryId': categoryId,
// 'parentsId': this.recycleMain.anjuanSelection.id,
// 'isdel': false,
// 'page': 0,
// 'size': null,
// 'sort': null,
// 'queryType': null,
// 'queryTitle': null,
// 'itemNo': null,
// 'archiveCtgNo': null,
// 'responsibleby': null,
// 'archiveNo': null,
// 'archiveYear': null,
// 'department': null,
// 'retention': null,
// 'securityClass': null,
// 'organizationMatter': null
// }
// await FetchInitArchivesView(params).then(data => {
// if (data) {
// this.packingData = data.list.content
// this.archivesTable = data.list.content
// }
// })
},
// api
async handleCartoning(row) {
// let jnCategoryId
// let archivesParentsId
// if (this.caseData.selectedCategory.isType === 5) {
// this.packingData = this.caseData.selections
// jnCategoryId = this.caseData.selectedCategory.id
// } else {
// await this.getPackingFileList()
// if (this.caseData.selectedCategory.isType === 2) {
// jnCategoryId = this.caseData.selectedCategory.children[0].children[0].id
// } else {
// jnCategoryId = this.caseData.selectedCategory.children[0].id
// }
// archivesParentsId = this.caseData.selections[0].id
// }
// const arrParams = this.packingData.map(item => {
// const json = {}
// json.archivesId = item.id
// if (this.caseData.selectedCategory.isType === 5) {
// json.archivesParentsId = item.id
// } else {
// json.archivesParentsId = archivesParentsId
// }
// json.caseId = row.id
// json.caseName = row.caseName
// json.categoryId = jnCategoryId
// return json
// })
// await this.FetchCartioning(arrParams)
},
FetchCartioning(arrParams) {
// FetchCartoning(arrParams).then(res => {
// this.$message.success('')
// this.packingVisible = false
// this.crud.refresh()
// this.tableData = []
// this.caseQuery[this.inputSelect] = ''
// })
},
//
handlePartParking(row, index) {
// if (!this.selections.length) {
// this.$message.error('')
// return
// }
// //
// if (this.selectTableData.findIndex(val => val.id === row.id) === -1) {
// this.selectTableData.push(row)
// }
// this.tableData.splice(index, 1)
// this.selections.forEach(item => {
// item.caseId = row.id
// item.caseName = row.caseName
// this.archivesTable.splice(this.archivesTable.findIndex(val => val.id === item.id), 1)
// this.selectArchivesTable.push(item)
// })
},
//
cancelParking(row, index) {
// this.tableData.unshift(row)
// this.selectTableData.splice(index, 1)
// this.selectArchivesTable.forEach((item, i) => {
// if (item.caseId === row.id) {
// this.archivesTable.push(item)
// }
// })
// this.selectArchivesTable.splice(this.selectArchivesTable.findIndex((item, i) => item.caseId === row.id), this.archivesTable.length)
},
handleComfireCartoning() {
// if (this.archivesTable.length) {
// this.$message.error('')
// return
// }
// let jnCategoryId
// if (this.caseData.selectedCategory.isType === 2) {
// jnCategoryId = this.caseData.selectedCategory.children[0].children[0].id
// } else {
// jnCategoryId = this.caseData.selectedCategory.children[0].id
// }
// const arrParams = this.selectArchivesTable.map(item => {
// const json = {}
// json.archivesId = item.id
// json.archivesParentsId = this.caseData.selections[0].id
// json.caseId = item.caseId
// json.caseName = item.caseName
// json.categoryId = jnCategoryId
// return json
// })
// this.FetchCartioning(arrParams)
},
clearTableData() {
this.tableData = []
},
// table
clickRowHandler(row) {
this.$refs.archivesList.toggleRowSelection(row)
},
// table
selectionChangeHandler(val) {
this.selections = val
},
// dialog - close
handleClose(done) {
this.showCoverVisible = false
this.$set(this.caseQuery, this.inputSelect, '')
this.tableData = []
this.selectTableData = []
this.archivesTable = []
this.selectArchivesTable = []
done()
}
}
}
</script>
<style lang="scss" scoped>
.filter-rfid{
margin-left: 10px;
padding: 0 13px;
height: 32px;
line-height: 30px;
&.is-disabled,
&.is-disabled:focus{
border-color: #0348F3 !important;
background-color: rgba(31, 85, 235, 0.20) !important;
color: #0348F3 !important;
opacity: 0.6;
}
.iconfont{
font-size: 20px;
}
}
.el-table .el-button{
padding: 0;
}
::v-deep .custom-table .el-table__body-wrapper::-webkit-scrollbar {
width: 5px !important;
height: 5px !important;
background-color: #DDE8FB !important;
}
::v-deep .custom-table .el-table__body-wrapper::-webkit-scrollbar-thumb {
border-radius: 3px;
background-color: #4578F6 !important;
}
::v-deep .custom-table .el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
background-color: #4578F6 !important;
}
::v-deep .custom-table .el-table__body-wrapper::-webkit-scrollbar-corner {
background-color: #DDE8FB !important;
}
</style>

167
src/views/archivesManage/managementLibrary/project/index.vue

@ -2,53 +2,59 @@
<div class="collect-no-tab">
<CollectHeader ref="collectHeaderRef" :is-title-type="isTitleType" :selected-category="selectedCategory" :arc-id="arcId" :selections="selections" :is-recycle="isRecycle" />
<!-- <el-button type="text" @click="openAnjuan">打开案卷的Drawer</el-button> -->
<el-table
ref="table"
v-loading="crud.loading || getTableDisplayFieldsLoading"
class="archives-table"
:data="projectData"
highlight-current-row
style="width: 100%;"
:row-key="rowKey"
:row-class-name="tableRowClassName"
@select-all="selectAll"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
@cell-dblclick="tableDoubleClick"
@select="handleCurrentChange"
>
<el-table-column type="selection" :reserve-selection="true" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="案卷" prop="children_num" width="55" align="center" />
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
<template slot="header">
<el-tooltip
class="item"
effect="dark"
:content="field.fieldCnName"
placement="top-start"
>
<span>{{ field.fieldCnName }}</span>
</el-tooltip>
</template>
<template slot-scope="scope">
{{ scope.row[field.fieldName] }}
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
v-if="projectData.length !== 0"
:current-page="page.page"
:total="page.total"
:page-size="page.size"
:pager-count="5"
layout="total, prev, pager, next, sizes"
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
<div class="collect-table">
<el-table
ref="table"
v-loading="getTableDisplayFieldsLoading"
class="archives-table"
:data="projectData"
highlight-current-row
style="width: 100%;"
:row-key="rowKey"
:row-class-name="tableRowClassName"
@select-all="selectAll"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
@cell-dblclick="tableDoubleClick"
@select="handleCurrentChange"
>
<el-table-column type="selection" :reserve-selection="true" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column label="案卷" prop="child" width="55" align="center">
<template slot-scope="scope">
{{ scope.row.child === '' ? 0 : scope.row.child }}
</template>
</el-table-column>
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
<template slot="header">
<el-tooltip
class="item"
effect="dark"
:content="field.fieldCnName"
placement="top-start"
>
<span>{{ field.fieldCnName }}</span>
</el-tooltip>
</template>
<template slot-scope="scope">
{{ scope.row[field.fieldName] }}
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<el-pagination
v-if="projectData.length !== 0"
:current-page="page.page"
:total="page.total"
:page-size="page.size"
:pager-count="5"
layout="total, prev, pager, next, sizes"
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :category-id="categoryId" :arc-id="arcId" />
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" />
</div>
</template>
@ -58,9 +64,6 @@ import { header, form } from '@crud/crud'
import CollectHeader from '../module/collectHeader.vue'
import ArchivesInfo from '../module/archivesInfo/index'
import tableData from '../anjuan/table.json'
import jsonData from '../anjuan/data.json'
export default {
name: 'Project',
components: { CollectHeader, ArchivesInfo },
@ -83,40 +86,62 @@ export default {
isRecycle: {
type: Boolean,
default: false
},
smartQuery: {
type: Object,
default: function() {
return {}
}
}
},
inject: ['parentsData'],
data() {
return {
isTitleType: 2,
categoryId: 'B073E8430B85B4821E7360',
arcId: '2946C34412182B73FBC287',
activeIndex: '1'
categoryId: '',
arcId: '',
activeIndex: '1',
selections: [],
yearData: [],
parentId: null
}
},
watch: {
selectedCategory: function(newValue, oldValue) {
},
tableDisplayFields(val) {
this.doLayout()
// this.doLayout()
}
},
created() {
this.tableDisplayFields = tableData.data
this.projectData = jsonData.data.list.content
},
mounted() {
},
methods: {
getCommonData(type) {
this.getViewTable(type)
getCommonData(categoryLevel, parentId, type) {
this.getViewTable(categoryLevel, parentId, type)
},
sendYearDataToParent() {
this.$emit('myYearEvent', this.yearData)
},
openAnjuan(data) {
openAnjuan(data, parentId) {
// this.$emit('openAnjuan', '')
this.$emit('openAnjuan', data)
this.$emit('openAnjuan', data, parentId)
},
rowKey(row) {
return row.id
},
// table
tableRowClassName({ row, rowIndex }) {
// console.log('', row, rowIndex)
let color = ''
this.selections.forEach(item => {
if (item.id === row.id) {
color = 'rowStyle'
}
})
return color
},
// table -
selectAll(val) {
this.selections = val
@ -126,27 +151,35 @@ export default {
if (this.timer) {
clearTimeout(this.timer)
}
console.log('tableDoubleClick', row)
this.arcId = row.id
this.$refs.archivesInfo.detailTitle = '项目详情'
this.$refs.archivesInfo.archivesInfoVisible = true
this.$refs.archivesInfo.archivesTabIndex = 0
// this.$refs.archivesInfo.getDetial(row.id)
this.$nextTick(() => {
this.$refs.archivesInfo.detailTitle = '项目详情'
this.$refs.archivesInfo.archivesInfoVisible = true
this.$refs.archivesInfo.archivesTabIndex = 0
this.$refs.archivesInfo.getDetial(1, row.id)
})
},
// table - row
clickRowHandler(row) {
console.log('clickRowHandler', row)
this.parentsData.smartQuery = {
'retention': null,
'security_class': null,
'doc_type': null,
'medium_type': null,
'archive_year': null,
'fonds_no': null
}
if (this.timer) {
clearTimeout(this.timer)
}
this.timer = setTimeout(() => {
this.openAnjuan('所属项目:' + row.archive_no)
this.parentId = row.id
this.openAnjuan('所属项目:' + row.project_no, this.parentId)
}, 300)
this.selections = this.crud.selections
},
//
handleCurrentChange(selection, row) {
console.log('触发单选', row)
this.selections = selection
},
handleSizeChange(size) {

Loading…
Cancel
Save