Browse Source

收集库

master
xuhuajiao 2 years ago
parent
commit
1513fac6ca
  1. 6
      src/assets/iconfonts/light/iconfont.css
  2. BIN
      src/assets/iconfonts/light/iconfont.ttf
  3. BIN
      src/assets/iconfonts/light/iconfont.woff
  4. BIN
      src/assets/iconfonts/light/iconfont.woff2
  5. BIN
      src/assets/images/collect/xm.png
  6. BIN
      src/assets/images/collect/zk.png
  7. 214
      src/assets/styles/archives-manage.scss
  8. 10
      src/assets/styles/index.scss
  9. 28
      src/assets/styles/mixin.scss
  10. 4
      src/assets/styles/variables.scss
  11. 380
      src/assets/styles/yxk-admin.scss
  12. 72
      src/views/collectReorganizi/collectionLibrary/anjuan/content.vue
  13. 70
      src/views/collectReorganizi/collectionLibrary/anjuan/index.vue
  14. 27
      src/views/collectReorganizi/collectionLibrary/anjuan/sorted.vue
  15. 27
      src/views/collectReorganizi/collectionLibrary/anjuan/unsorted.vue
  16. 32
      src/views/collectReorganizi/collectionLibrary/file/index.vue
  17. 36
      src/views/collectReorganizi/collectionLibrary/index.vue
  18. 32
      src/views/collectReorganizi/collectionLibrary/juannei/index.vue
  19. 126
      src/views/collectReorganizi/collectionLibrary/module/archivesInfo/data.json
  20. 284
      src/views/collectReorganizi/collectionLibrary/module/archivesInfo/index.vue
  21. 6
      src/views/collectReorganizi/collectionLibrary/module/archivesInfo/metadata.json
  22. 223
      src/views/collectReorganizi/collectionLibrary/module/collectHeader.vue
  23. 340
      src/views/collectReorganizi/collectionLibrary/module/uploadFile/index.vue
  24. 162
      src/views/collectReorganizi/collectionLibrary/project/index.vue
  25. 51
      src/views/collectReorganizi/collectionLibrary/project/tableData.json
  26. 523
      src/views/collectReorganizi/collectionLibrary/project/tableFields.json
  27. 117
      src/views/collectReorganizi/collectionLibrary/tree.json

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

@ -1,8 +1,8 @@
@font-face {
font-family: "iconfont"; /* Project id 3966148 */
src: url('iconfont.woff2?t=1686819523337') format('woff2'),
url('iconfont.woff?t=1686819523337') format('woff'),
url('iconfont.ttf?t=1686819523337') format('truetype');
src: url('iconfont.woff2?t=1688977345185') format('woff2'),
url('iconfont.woff?t=1688977345185') format('woff'),
url('iconfont.ttf?t=1688977345185') format('truetype');
}
.iconfont {

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

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

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

BIN
src/assets/images/collect/xm.png

After

Width: 47  |  Height: 40  |  Size: 2.9 KiB

BIN
src/assets/images/collect/zk.png

After

Width: 22  |  Height: 61  |  Size: 724 B

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

@ -1,6 +1,19 @@
@import 'variables';
@import 'mixin';
.filter-search{
@include btn_blue_style;
&:hover{
@include btn_blue_hover;
}
}
.filter-refresh{
@include btn_white_style;
&:hover{
@include btn_white_hover;
}
}
.head-archives{
padding: 0 0 20px 0;
.archives-crud{
@ -452,12 +465,6 @@
}
}
// .item-content{
// max-height: calc(100vh - 410px);
// overflow: hidden;
// overflow-y: scroll;
// }
.upload-btn{
position: relative;
margin-right: 10px;
@ -473,10 +480,6 @@
// 借阅管理
.el-dialog .el-dialog__body{
// .el-button{
// background-color: #3A99FD;
// border-color: #3A99FD;
// }
.el-button.is-disabled,
.el-button.is-disabled:hover,
.el-button.is-disabled:focus{
@ -647,8 +650,189 @@
color: #666;
}
}
// //其他
// .delMsg{
// color: #fff;
// font-size: 16px;
// }
// 20230712 抽屉
.el-drawer__wrapper {
position: absolute;
top: -22px;
right: -22px;
height: calc(100vh - 138px);
}
.el-drawer{
overflow: visible;
}
.el-drawer.rtl{
top: 0;
box-shadow: -8px 0px 10px 0px rgba(0,0,0,0.08);
border: 1px solid #E6E8ED;
}
.el-drawer__body{
position: relative;
overflow: visible;
}
.closed-btn{
position: relative;
position: absolute;
left: -23px;
top: 50%;
display: block;
width: 22px;
height: 60px;
margin-top: -30px;
background: #FFFFFF;
box-shadow: -7px 0px 7px 0px rgba(0,0,0,0.07);
border: 1px solid #E6E8ED;
border-radius: 2px;
transform: perspective(0.5em) rotateY(-5deg);
z-index: 999;
cursor: pointer;
&::before{
position: absolute;
left: 6px;
top: 50%;
font-family: "iconfont" !important;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-size: 12px;
text-align: center;
content: "\e60e";
color: #A6ADB6;
transform: rotateY(5deg) translateY(-50%) scale(0.9);
}
}
.collect-header{
display: flex;
justify-content: space-between;
padding: 20px 10px 0 20px;
border-top: 1px solid #EDEFF3;
h4{
flex: 1;
padding-left: 62px;
// height: 40px;
line-height: 40px;
background: url("~@/assets/images/collect/xm.png") no-repeat left top;
background-size: 47px 40px;
font-size: 18px;
font-weight: 500;
color: #0C0E1E;
&.is-anjuan{
background: url("~@/assets/images/collect/aj.png") no-repeat left -2px;
background-size: 50px 39px;
}
&.is-juannei{
background: url("~@/assets/images/collect/jn.png") no-repeat left top;
background-size: 46px 49px;
}
&.is-file{
background: url("~@/assets/images/collect/yw.png") no-repeat left -6px;
background-size: 50px 46px;
}
}
.head-search{
margin-right: 60px;
.el-button{
margin-left: 10px;
}
}
}
.collect-menu{
.el-menu.el-menu--horizontal{
border-bottom: none;
background-color: transparent;
}
.el-submenu{
width: 76px;
height: 32px;
border-radius: 3px;
border: 1px solid #0348F3;
margin-right: 10px;
.el-submenu__title{
display: flex;
justify-content: center;
align-items: center;
padding: 0;
height: 30px;
line-height: 32px;
font-weight: bold;
color: #0348F3;
border-bottom: none;
i.iconfont{
color: #0348F3;
margin-right: 0;
}
span{
display: block;
}
.el-submenu__icon-arrow {
display: none;
}
&:focus,
&:hover{
color: #0348F3;
}
}
&.is-active{
.el-submenu__title{
border-bottom: none;
color: #0348F3;
}
}
}
}
.el-menu--popup{
min-width: 120px;
padding: 10px 0;
border-radius: 3px;
border: 1px solid #E6E8ED;
.collect-submenu-group{
.el-menu-item{
padding: 0 18px !important;
color: #0C0E1E;
&:hover,
&:focus,
&.active-item{
background: #F5F9FC;
color: #0348F3;
}
}
.el-menu-item-group__title{
font-size: 14px;
padding: 0 18px !important;
line-height: 36px;
color: #A6ADB6;
}
&.submenu-tree{
.el-menu-item{
padding: 0 18px 0 32px !important;
}
}
}
}
.collect-menu-item{
position: relative;
.collect-submenu{
display: none;
position: absolute;
top: 40px;
right: 0;
width: 120px;
height: 125px;
background: #FFFFFF;
box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.08);
border-radius: 3px;
border: 1px solid #E6E8ED;
transform-origin: 95% 40%;
transition: all 0.3s ease-in-out;
}
}

10
src/assets/styles/index.scss

@ -13,7 +13,6 @@ body {
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;
}
label {
@ -131,7 +130,6 @@ ul{
}
}
//main-container全局样式
.app-wrapper{
background-color: $main-bg-light;
@ -163,7 +161,6 @@ ul{
padding-right: 20px;
transition: 600ms ease position;
background: linear-gradient(90deg, rgba(32, 182, 249, 1) 0%, rgba(32, 182, 249, 1) 0%, rgba(33, 120, 241, 1) 100%, rgba(33, 120, 241, 1) 100%);
.subtitle {
font-size: 20px;
color: #fff;
@ -199,19 +196,18 @@ ul{
/**滚动条的宽度*/
::-webkit-scrollbar {
width: 4px;
height: 4px;
width: 8px;
height: 8px;
}
//滚动条的滑块
::-webkit-scrollbar-thumb {
@include scrollBar-bg;
border-radius: 3px;
border-radius: 4px;
}
//只需要加上这一行
::-webkit-scrollbar-corner {
// background-color: #021941;
@include scrollBar-bg;
}

28
src/assets/styles/mixin.scss

@ -7,26 +7,6 @@
}
}
// @mixin scrollBar {
// &::-webkit-scrollbar-track-piece {
// background: #d3dce6;
// }
// ::-webkit-scrollbar-corner {
// background-color: #021941;
// }
// &::-webkit-scrollbar {
// width: 6px;
// }
// &::-webkit-scrollbar-thumb {
// background: #99a9bf;
// border-radius: 20px;
// }
// }
@mixin btn_blue_style{
[data-theme="light"] & {
background-color: #0348F3;
@ -394,8 +374,6 @@
}
}
@mixin tree_children_font{
[data-theme="light"] & {
color: #545B65;
@ -553,8 +531,6 @@
[data-theme="light"] & {
border-color:#0348F3;
background-color: #0348F3;
// border-color:#D6D8DD;
// background-color: #D6D8DD;
&::after{
border-color: #fff;
}
@ -624,10 +600,6 @@
}
@mixin switch-disabled{
// [data-theme="dark"] &{
// border-color: rgb(64, 158, 255);
// background-color: rgb(64, 158, 255);
// }
[data-theme="light"] & {
border-color: #D6DBE7 !important;
background-color: #D6DBE7 !important;

4
src/assets/styles/variables.scss

@ -12,7 +12,6 @@ $background-color-dark: #031435; //背景主题颜色1
$icon-color-dark: #fff;
$font-color-dark : #fff;
// ligit-theme
$background-color-light: #fff; //亮色bg主题
$main-bg-light: #F6F8FC; //亮色bg主题
@ -33,9 +32,6 @@ $menuActiveBg: linear-gradient(90deg, rgba(59, 160, 255, 0.3) 0% 0%, rgba(42,112
$subMenuActiveBg: linear-gradient(90deg, rgba(59, 160, 255, 0) 0%, rgba(42,112,177,0.3) 43%, rgba(51, 156, 255, 0) 100%);
$subMenuHover: linear-gradient(90deg, rgba(59, 160, 255, 0) 0%, rgba(42,112,177,0.3) 43%, rgba(51, 156, 255, 0) 100%);
$breadcrumbBg: #021941;
$mainContainerBorder: 1px solid #113D72;

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

@ -665,144 +665,7 @@
content: "\E62c";
}
}
// .el-input-number.is-controls-right {
// .el-input-number__decrease,
// .el-input-number__increase{
// display: none;
// }
// .el-input__inner{
// padding-left: 0;
// padding-right: 0;
// }
// }
}
// position: relative;
// position: fixed;
// width: 620px;
// padding: 2px;
// left: 50%;
// top: 50%;
// transform: translate(-50%, -50%);
// margin-top: 2vh !important;
// background: linear-gradient(135deg, transparent 10px, $mainColor 0) top left,
// linear-gradient(-135deg, transparent 10px, $mainColor 0) top right,
// linear-gradient(-45deg, transparent 10px, $mainColor 0) bottom right,
// linear-gradient(45deg, transparent 10px, $mainColor 0) bottom left;
// background-size: 50% 50%;
// background-repeat: no-repeat;
// &::before,
// &::after,
// .dialog-right-top,
// .dialog-left-bottom{
// position: absolute;
// content: "";
// width: 134px;
// height: 63px;
// z-index: 99;
// }
// &::before{
// left: -6px;
// top: -6px;
// background: url(~@/assets/images/dialog_left_top.png) no-repeat;
// background-size: contain;
// }
// &::after{
// right: -18px;
// bottom: -7px;
// background: url(~@/assets/images/dialog_right_bottom.png) no-repeat;
// background-size: contain;
// }
// .dialog-right-top{
// right: -23px;
// top: -6px;
// background: url(~@/assets/images/dialog_right_top.png) no-repeat;
// background-size: contain;
// }
// .dialog-left-bottom{
// left: -6px;
// bottom: -7px;
// background: url(~@/assets/images/dialog_left_bottom.png) no-repeat;
// background-size: contain;
// }
// .el-dialog__header{
// position: absolute;
// top: -40px;
// left: 50%;
// width: 360px;
// padding: 0;
// transform: translateX(-50%);
// &::before{
// position: absolute;
// left: -23px;
// top: 0;
// content: "";
// width: 23px;
// height: 42px;
// background: url(~@/assets/images/dialog_left.png) no-repeat;
// background-size: cover;
// }
// &::after{
// position: absolute;
// right: -23px;
// top: 0;
// content: "";
// width: 23px;
// height: 42px;
// background: url(~@/assets/images/dialog_right.png) no-repeat;
// background-size: cover;
// }
// .el-dialog__title{
// display: block;
// font-size: 18px;
// font-weight: bold;
// line-height: 38px;
// color: #fff;
// text-align: center;
// background-color: $boxBg;
// border-top: 2px solid $mainColor;
// border-bottom: 2px solid $mainColor;
// }
// .el-dialog__headerbtn{
// top: 4px;
// right: -160px;
// }
// .el-dialog__close{
// font-family: "iconfont" !important;
// font-style: normal;
// -webkit-font-smoothing: antialiased;
// -moz-osx-font-smoothing: grayscale;
// font-size: 24px;
// color: $mainColor;
// &::before{
// content: "\e60c";
// }
// }
// }
// .el-dialog__body{
// width: 100%;
// // background-color: $boxBg;
// // border: 2px solid $mainColor;
// // min-height: 400px;
// // background: linear-gradient(135deg, transparent 12px, $boxBg 0) top left,
// // linear-gradient(-135deg, transparent 12px, $boxBg 0) top right,
// // linear-gradient(-45deg, transparent 12px, $boxBg 0) bottom right,
// // linear-gradient(45deg, transparent 12px, $boxBg 0) bottom left;
// // background-size: 50% 50%;
// // background-repeat: no-repeat;
// // box-shadow: inset 0px 0px 8px 1px rgba(51, 156, 255, 0.6);
// }
// .dialog-footer{
// margin: 30px auto 0 auto;
// text-align: center;
// .el-button{
// font-size: 16px;
// padding: 8px 28px;
// }
// .el-button--primary{
// background-color: $desPreviewColor;
// }
// }
}
}
@ -828,70 +691,6 @@
}
}
// .el-dialog,
// .right-preview{
// .el-form{
// .el-form-item__label{
// color: $mainColor;
// }
// .el-input__inner{
// color: #fff;
// border: 1px solid $mainColor;
// background-color: transparent !important;
// }
// .vue-treeselect__control,
// .vue-treeselect__placeholder,
// .vue-treeselect__single-value{
// height: 28px;
// // line-height: 28px;
// color: #fff;
// }
// .vue-treeselect__control{
// border: 1px solid $mainColor;
// background-color: transparent;
// .vue-treeselect__control-arrow{
// color: $mainColor;
// }
// }
// .el-radio{
// color: #fff;
// }
// .el-textarea__inner{
// color: #fff;
// border: 1px solid $mainColor;
// background-color: transparent;
// }
// .el-input-number.is-controls-right[class*=small] [class*=increase],
// .el-input-number.is-controls-right[class*=small] [class*=decrease]{
// background-color: transparent;
// }
// .el-input-number__decrease,
// .el-input-number__increase{
// border-left-color: $mainColor;
// &>i{
// color: #fff;
// }
// }
// .el-input-number__increase{
// border-bottom-color: $mainColor;
// }
// .el-select .el-input .el-select__caret{
// color: $mainColor;
// }
// .vue-treeselect .vue-treeselect__control:focus,
// .vue-treeselect .vue-treeselect__control:hover{
// border-color: $mainColor !important;
// }
// .vue-treeselect.vue-treeselect--disabled .vue-treeselect__control,
// .el-input.is-disabled .el-input__inner,
// .el-textarea.is-disabled .el-textarea__inner{
// color: $desPreviewColor !important;
// border: none !important;
// background-color: #02255f!important;
// }
// }
// }
.el-form-item.is-error .el-input__inner,
.el-form-item.is-error .el-input__inner:focus,
.el-form-item.is-error .el-textarea__inner,
@ -932,82 +731,6 @@
overflow: hidden;
}
// 著录界面表单
// .des-form{
// .el-form-item__label{
// font-weight: normal;
// color: $desPreviewColor;
// }
// .el-input__inner{
// // color: $desPreviewColor;
// // background: #021941 !important;
// @include input_style;
// border: none;
// &::placeholder{
// color: $desPreviewColor !important;
// }
// &::-webkit-input-placeholder{
// color: $desPreviewColor !important;
// }
// }
// .el-input.is-disabled .el-input__inner{
// color: $desPreviewColor !important;
// border: none;
// background-color: #02255f!important;
// }
// .el-input__icon{
// color: $desPreviewColor !important;
// }
// .checkbox-item{
// height: 36px;
// line-height: 36px;
// // text-align: right;
// .el-form-item__content{
// margin-left: 0 !important;
// }
// .el-checkbox__input.is-disabled .el-checkbox__inner{
// // background-color: transparent;
// // border-color: $mainColor;
// @include checkbox-disabled-style;
// // &::after{
// // border-color: $desPreviewColor;
// // }
// }
// span{
// color: $desPreviewColor;
// }
// }
// .input-num{
// display: flex;
// justify-content: flex-end;
// .el-input__inner{
// width: 50px;
// }
// .el-form-item__content{
// display: flex;
// justify-content: flex-start;
// margin-left: 0 !important;
// .el-input,
// .el-input-number--small{
// width: 60px;
// }
// .el-input-number.is-controls-right {
// .el-input-number__decrease,
// .el-input-number__increase{
// display: none;
// }
// .el-input__inner{
// padding-left: 0;
// padding-right: 0;
// }
// }
// }
// span{
// color: $desPreviewColor;
// line-height: 36px;
// }
// }
// }
// 提示框-dialog
.tip-dialog{
.el-dialog{
@ -1152,11 +875,7 @@
}
}
}
// .preview-dialog{
// .el-dialog__body{
// padding: 30px 0 !important;
// }
// }
// 去除element ui 中el-input type=number的上下箭头
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
@ -1165,89 +884,6 @@ input::-webkit-inner-spin-button {
input[type ='number'] {
-moz-appearance: textfield !important;
}
// 弹框-删除等提示
// .setting-dialog{
// // .dialog-delt{
// // line-height: 26px;
// // color: #fff;
// // margin-bottom: 20px;
// // }
// // .delt-tip{
// // margin-top: 10px;
// // color: #EF3147;
// // }
// }
// alert 样式
// .el-message-box{
// position: relative;
// width: 588px;
// border: 2px solid $mainColor;
// border-bottom: none;
// border-radius: 4px 4px 0 0;
// background-color: $boxBg;
// overflow: visible;
// &::after{
// position: absolute;
// left: -2px;
// bottom: -30px;
// content: "";
// width: 589px;
// height: 30px;
// background: url(~@/assets/images/alert_bottom.png) no-repeat;
// background-size: contain;
// }
// .el-message-box__header{
// padding: 18px 60px;
// background-color: $mainColor;
// .el-message-box__title{
// font-weight: bold;
// color: #fff;
// }
// .el-message-box__headerbtn{
// top: -36px;
// right: -16px;
// }
// .el-icon-close{
// font-family: "iconfont" !important;
// font-style: normal;
// -webkit-font-smoothing: antialiased;
// -moz-osx-font-smoothing: grayscale;
// font-size: 24px;
// color: $mainColor;
// &::before{
// content: "\E61b";
// }
// }
// }
// .el-message-box__content{
// height: 110px;
// padding: 35px 60px 15px 60px;
// color: #fff;
// }
// }
// .el-message-box .el-button,
// .el-popover .el-button{
// color: #fff;
// border-color: $mainColor;
// background-color: transparent;
// }
// .el-message-box .el-button:hover,
// .el-popover .el-button:focus{
// color: #fff;
// background-color: #02255F;
// border-color: $mainColor;
// }
// .el-message-box .el-button--primary,
// .el-message-box .el-button--primary:focus,
// .el-message-box .el-button--primary:hover {
// background: #46a6ff;
// border-color: #46a6ff;
// color: #fff;
// }
.dialog-middle{
.el-dialog{
@ -2206,7 +1842,6 @@ input[type ='number'] {
overflow: hidden;
overflow-y: scroll;
.corres-field-list{
// border-right: 1px solid #E6E8ED;
.corres-field-title{
height: 60px;
line-height: 20px;
@ -2223,9 +1858,6 @@ input[type ='number'] {
}
}
.field-list{
// height: 360px;
// overflow: hidden;
// overflow-y: scroll;
border-right: 1px solid #E6E8ED;
.field-item{
display: flex;
@ -2290,11 +1922,3 @@ input[type ='number'] {
border: none !important;
}
}
.el-drawer.rtl{
height: calc(100vh - 138px);
top: 118px;
box-shadow: -8px 0px 10px 0px rgba(0,0,0,0.08);
border: 1px solid #E6E8ED;
}

72
src/views/collectReorganizi/collectionLibrary/anjuan/content.vue

@ -0,0 +1,72 @@
<template>
<div>
<ul 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>
<!-- 最右侧装饰img -->
<span class="tab-right-img" />
</ul>
<CollectHeader :is-title-type="isTitleType" :selected-category="selectedCategory" />
<component :is="comName" />
<el-button v-if="selectedCategory.isType === 2 || selectedCategory.isType === 3" type="text" @click="openJuannei">打开卷内的Drawer</el-button>
<el-button v-if="selectedCategory.isType === 5" type="text" @click="openJuannei">打开文件的Drawer</el-button>
</div>
</template>
<script>
import SortedModule from './sorted.vue'
import UnSortedModule from './unsorted.vue'
import CollectHeader from '../module/collectHeader.vue'
export default {
name: 'AnjuanContent',
components: { SortedModule, UnSortedModule, CollectHeader },
props: {
data: {
type: String,
default: ''
},
selectedCategory: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
isTitleType: 3,
activeIndex: 0
}
},
computed: {
comName: function() {
if (this.activeIndex === 0) {
return 'SortedModule'
} else if (this.activeIndex === 1) {
return 'UnSortedModule'
}
return 'SortedModule'
}
},
created() {
},
mounted() {
},
methods: {
openJuannei() {
// this.$emit('openJuannei', '')
if (this.selectedCategory.isType === 2) {
this.$parent.$parent.$emit('openJuannei')
} else {
this.$parent.$emit('openJuannei')
}
},
changeActiveTab(data) {
this.activeIndex = data
}
}
}
</script>
<style lang='scss' scoped>
</style>

70
src/views/collectReorganizi/collectionLibrary/anjuan/index.vue

@ -1,47 +1,44 @@
<template>
<el-drawer
title="我是案卷"
:visible.sync="table"
:modal="false"
:wrapper-closable="false"
direction="rtl"
size="60%"
>
<ul 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>
<!-- 最右侧装饰img -->
<span class="tab-right-img" />
</ul>
<component :is="comName" />
<el-button type="text" @click="openJuannei">打开卷内的Drawer</el-button>
</el-drawer>
<div>
<AnjuanContent v-if="selectedCategory.isType === 3 || selectedCategory.isType === 5" :selected-category="selectedCategory" />
<!-- :title="selectedCategory.isType === 5 ? '我是文件':'我是案卷'" -->
<el-drawer
v-else
class="anjuan-drawer"
:with-header="false"
:visible.sync="anjuanDrawer"
:modal="false"
:wrapper-closable="true"
:show-close="false"
direction="rtl"
size="90%"
>
<AnjuanContent :selected-category="selectedCategory" />
<span class="closed-btn" @click="closeDrawer" />
</el-drawer>
</div>
</template>
<script>
import AnjuanContent from './content.vue'
export default {
name: 'Anjuan',
components: { },
components: { AnjuanContent },
props: {
data: {
type: String,
default: ''
},
selectedCategory: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
table: false,
activeIndex: 0
}
},
computed: {
comName: function() {
if (this.activeIndex === 0) {
return 'baseInfo'
} else if (this.activeIndex === 1) {
return 'arcTableList'
}
return 'baseInfo'
anjuanDrawer: false
}
},
created() {
@ -49,16 +46,17 @@ export default {
mounted() {
},
methods: {
openJuannei() {
// this.$emit('openJuannei', '')
this.$emit('openJuannei')
},
changeActiveTab(data) {
this.activeIndex = data
closeDrawer() {
this.anjuanDrawer = false
}
}
}
</script>
<style lang='scss' scoped>
.anjuan-drawer{
::v-deep .el-drawer__body{
padding-top: 20px;
}
}
</style>

27
src/views/collectReorganizi/collectionLibrary/anjuan/sorted.vue

@ -0,0 +1,27 @@
<template>
<div>
已整理列表
</div>
</template>
<script>
export default {
name: 'Sorted',
components: { },
props: {
},
data() {
return {
}
},
created() {
},
mounted() {
},
methods: {
}
}
</script>
<style lang='scss' scoped>
</style>

27
src/views/collectReorganizi/collectionLibrary/anjuan/unsorted.vue

@ -0,0 +1,27 @@
<template>
<div>
未整理列表
</div>
</template>
<script>
export default {
name: 'Sorted',
components: { },
props: {
},
data() {
return {
}
},
created() {
},
mounted() {
},
methods: {
}
}
</script>
<style lang='scss' scoped>
</style>

32
src/views/collectReorganizi/collectionLibrary/file/index.vue

@ -1,23 +1,35 @@
<template>
<el-drawer
title="我是原文"
:visible.sync="table"
:with-header="false"
:visible.sync="fileDrawer"
:modal="false"
:wrapper-closable="false"
:show-close="false"
direction="rtl"
size="40%"
:size="selectedCategory.isType === 3 ? '80%' : selectedCategory.isType === 5 ? '90%' : '70%'"
>
原文
<CollectHeader :is-title-type="isTitleType" :selected-category="selectedCategory" />
<span class="closed-btn" @click="closeDrawer" />
</el-drawer>
</template>
<script>
import CollectHeader from '../module/collectHeader.vue'
export default {
name: 'Project',
components: { },
name: 'File',
components: { CollectHeader },
props: {
selectedCategory: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
table: false
isTitleType: 6,
fileDrawer: false
}
},
created() {
@ -25,9 +37,15 @@ export default {
mounted() {
},
methods: {
closeDrawer() {
this.fileDrawer = false
}
}
}
</script>
<style lang='scss' scoped>
::v-deep .el-drawer__body{
padding-top: 56px;
}
</style>

36
src/views/collectReorganizi/collectionLibrary/index.vue

@ -11,7 +11,7 @@
ref="archivesTree"
v-loading="crud.loading"
class="arc-tree arc-tree-01"
:data="crud.data"
:data="treeJson"
:props="defaultProps"
node-key="id"
:expand-on-click-node="false"
@ -66,10 +66,10 @@
<div class="container-right tab-content">
<span class="right-top-line" />
<span class="left-bottom-line" />
<Project ref="projectEle" :data="sharedData" @openAnjuan="handleOpenAnjuan" />
<Anjuan ref="anjuanEle" :data="sharedData" @openJuannei="handleOpenJuannei" />
<Juannei ref="juanneiEle" :data="sharedData" @openFile="handleOpenFile" />
<File ref="fileEle" />
<Project v-if="selectedCategory.isType === 2" ref="projectEle" :selected-category="selectedCategory" :data="sharedData" @openAnjuan="handleOpenAnjuan" />
<Anjuan v-if="selectedCategory.isType === 2 || selectedCategory.isType === 3 || selectedCategory.isType === 5" ref="anjuanEle" :selected-category="selectedCategory" :data="sharedData" @openJuannei="handleOpenJuannei" />
<Juannei v-if="selectedCategory.isType === 2 || selectedCategory.isType === 3 || selectedCategory.isType === 4" ref="juanneiEle" :data="sharedData" :selected-category="selectedCategory" @openFile="handleOpenFile" />
<File v-if="selectedCategory.isType !== 1" ref="fileEle" :selected-category="selectedCategory" />
</div>
</div>
</div>
@ -83,6 +83,7 @@ import Project from './project/index.vue'
import Anjuan from './anjuan/index.vue'
import Juannei from './juannei/index.vue'
import File from './file/index.vue'
import treeJson from './tree.json'
export default {
name: 'CollectionLibrary',
components: { Project, Anjuan, Juannei, File },
@ -113,11 +114,11 @@ export default {
}
},
created() {
this.treeJson = treeJson.data
},
mounted() {
},
methods: {
//
findNode(tree, func) {
for (const node of tree) {
@ -181,16 +182,29 @@ export default {
this.selectedCategory = val
//
localStorage.setItem('currentArchivesKey', JSON.stringify(val))
if (this.$refs.anjuanEle) {
this.$refs.anjuanEle.anjuanDrawer = false
}
if (this.$refs.juanneiEle) {
this.$refs.juanneiEle.juanneiDrawer = false
}
if (this.$refs.fileEle) {
this.$refs.fileEle.fileDrawer = false
}
},
handleOpenAnjuan(data) {
this.$refs.anjuanEle.table = true
this.$refs.anjuanEle.anjuanDrawer = true
},
handleOpenJuannei() {
this.sharedData = '新的数据'
this.$refs.juanneiEle.table = true
if (this.selectedCategory.isType === 5) {
this.$refs.fileEle.fileDrawer = true
} else {
this.$refs.juanneiEle.juanneiDrawer = true
}
},
handleOpenFile() {
this.$refs.fileEle.table = true
this.$refs.fileEle.fileDrawer = true
}
}
}
@ -261,4 +275,8 @@ export default {
::v-deep .el-tree-node__children .custom-tree-node{
font-size: 14px;
}
[data-theme=light] .elect-cont-right {
padding: 20px 0 !important;
}
</style>

32
src/views/collectReorganizi/collectionLibrary/juannei/index.vue

@ -1,24 +1,36 @@
<template>
<el-drawer
title="我是卷内"
:visible.sync="table"
:with-header="false"
:visible.sync="juanneiDrawer"
:modal="false"
:wrapper-closable="false"
:show-close="false"
direction="rtl"
size="50%"
:size="selectedCategory.isType === 3 ? '90%' :'80%'"
>
卷内
<CollectHeader :is-title-type="isTitleType" :selected-category="selectedCategory" />
<el-button type="text" @click="openFile">打开文件的Drawer</el-button>
<span class="closed-btn" @click="closeDrawer" />
</el-drawer>
</template>
<script>
import CollectHeader from '../module/collectHeader.vue'
export default {
name: 'Project',
components: { },
name: 'Juannei',
components: { CollectHeader },
props: {
selectedCategory: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
table: false
isTitleType: 4,
juanneiDrawer: false
}
},
created() {
@ -30,10 +42,16 @@ export default {
openFile() {
// this.$emit('openFile', '')
this.$emit('openFile')
},
closeDrawer() {
this.juanneiDrawer = false
}
}
}
</script>
<style lang='scss' scoped>
::v-deep .el-drawer__body{
padding-top: 56px;
}
</style>

126
src/views/collectReorganizi/collectionLibrary/module/archivesInfo/data.json

@ -0,0 +1,126 @@
{
"code": 200,
"message": "操作成功",
"data": [
{
"fieldName": "item_no",
"fieldCnName": "项目号",
"editLength": 196,
"isLine": false,
"context": "JJ-2021-GZ-001"
},
{
"fieldName": "fonds_no",
"fieldCnName": "全宗号",
"editLength": 196,
"isLine": false,
"context": "档案室"
},
{
"fieldName": "archive_year",
"fieldCnName": "归档年度",
"editLength": 196,
"isLine": false,
"context": 2021
},
{
"fieldName": "retention",
"fieldCnName": "保管期限",
"editLength": 196,
"isLine": false,
"context": "永久"
},
{
"fieldName": "maintitle",
"fieldCnName": "项目名",
"editLength": 510,
"isLine": true,
"context": "档案室改造"
},
{
"fieldName": "security_class",
"fieldCnName": "密级",
"editLength": 196,
"isLine": false,
"context": "公开"
},
{
"fieldName": "responsibleby",
"fieldCnName": "责任者",
"editLength": 196,
"isLine": false,
"context": "许飞"
},
{
"fieldName": "organization_matter",
"fieldCnName": "机构(问题)",
"editLength": 196,
"isLine": false,
"context": "机关建设"
},
{
"fieldName": "department",
"fieldCnName": "部门名称",
"editLength": 196,
"isLine": false,
"context": "综合部"
},
{
"fieldName": "piece_qty",
"fieldCnName": "案卷数",
"editLength": 196,
"isLine": false,
"context": 3
},
{
"fieldName": "item_start_date",
"fieldCnName": "立项时间",
"editLength": 196,
"isLine": false,
"context": "2021-12-01 "
},
{
"fieldName": "item_end_date",
"fieldCnName": "结项时间",
"editLength": 196,
"isLine": false,
"context": "2022-08-25 "
},
{
"fieldName": "tid",
"fieldCnName": "TID",
"editLength": null,
"isLine": null,
"context": null
},
{
"fieldName": "case_name",
"fieldCnName": "盒名称",
"editLength": null,
"isLine": null,
"context": null
},
{
"fieldName": "folder_location",
"fieldCnName": "库房位置",
"editLength": null,
"isLine": null,
"context": null
},
{
"fieldName": "borrow_type",
"fieldCnName": "借阅状态",
"editLength": null,
"isLine": null,
"context": null
},
{
"fieldName": "barcode",
"fieldCnName": "条形码",
"editLength": null,
"isLine": null,
"context": null
}
],
"timestamp": 1689215199486
}

284
src/views/collectReorganizi/collectionLibrary/module/archivesInfo/index.vue

@ -0,0 +1,284 @@
<template>
<el-dialog class="detail-dialog" :title="detailTitle" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="archivesInfoVisible" :before-close="handleClose">
<!-- <span class="dialog-right-top" />
<span class="dialog-left-bottom" /> -->
<div class="setting-dialog">
<div class="detail-tab tab-content">
<!-- tab -->
<ul class="tab-nav">
<li :class="{'active-tab-nav': archivesTabIndex == 0}" @click="changeActiveTab(0)">基本信息</li>
<li v-if="isHasFile" :class="{'active-tab-nav': archivesTabIndex == 1}" @click="changeActiveTab(1)">附件</li>
<li :class="{'active-tab-nav': archivesTabIndex == 2}" @click="changeActiveTab(2)">元数据</li>
</ul>
<!-- 基本信息 -->
<div v-if="archivesTabIndex==0" class="base-info item-content">
<el-row>
<el-col v-for="(item,index) in archivesDetailsData" v-show="index<archivesDetailsData.length-5" :key="index" :span="item.isLine ? 24 : 12" class="base-info-item">
<span>{{ item.fieldCnName }}</span>
<p :style="{ width: ( item.editLength ? item.editLength+'px' : '' ), flex: ( !item.editLength ? 1 : '' )}">{{ item.context }}</p>
</el-col>
</el-row>
<el-row v-if="isDetailsInfo">
<el-col v-for="(item,index) in archivesDetailsData.slice(archivesDetailsData.length-5,archivesDetailsData.length)" :key="'last'+index" :span=" 12" class="base-info-item">
<span>{{ item.fieldCnName }}</span>
<div v-if="item.fieldName === 'folder_location' && item.context" :style="{ width: item.editLength+'px', marginTop:'-6px'}">
<div v-if="item.context.indexOf(',')">
<el-tag
v-for="(val,key) in item.context.split(',')"
:key="key"
:type="val"
effect="dark"
>
{{ val }}
</el-tag>
</div>
<div v-else-if="!item.context.indexOf(',')">
<el-tag effect="dark">{{ item.context }}</el-tag>
</div>
</div>
<div v-else :style="{ width: item.editLength+'px'}" :class="[ (item.fieldName === 'borrow_type') ? 'row-state row-lending' : '' ]">
{{ item.context }}
</div>
</el-col>
</el-row>
</div>
<!-- 附件 -->
<UploadFile v-if="archivesTabIndex==1" ref="uploadFile" class="item-content" :is-upload-detail="false" :category-id="categoryId" :arc-id="arcId" />
<!-- 元数据 -->
<div v-if="archivesTabIndex==2" class="metadata-cont item-content">
<pre v-highlightjs="xml_show">
<code class="highlight_s">
{[xml_show]}
</code>
</pre>
</div>
</div>
</div>
</el-dialog>
</template>
<script>
import { form } from '@crud/crud'
import { FetchArchivesDetails, FetchArchivesMetadata } from '@/api/archivesManage/archivesList'
import UploadFile from '../uploadFile/index'
import detailData from './data.json'
import metaData from './metadata.json'
export default {
name: 'ArchivesInfo',
components: { UploadFile },
mixins: [
form({})
],
// inject: ['recycleMain'],
props: {
categoryId: {
type: String,
default: function() {
return ''
}
},
arcId: {
type: String,
default: function() {
return ''
}
}
},
data() {
return {
detailTitle: '',
isHasFile: false, // /
isDetailsInfo: false, // 5
isTidOrBorrow: true, // tid/
archivesInfoVisible: false,
archivesTabIndex: 0,
archivesDetailsData: [],
archivesDetailsMetadata: [],
xml_show: null
}
},
created() {
this.archivesDetailsData = detailData.data
this.archivesDetailsMetadata = metaData.data
},
mounted() {
},
methods: {
getDetial(rowId) {
const params = {
categoryId: this.categoryId,
archivesId: rowId
}
FetchArchivesDetails(params).then(data => {
this.archivesDetailsData = data
// /
this.archivesDetailsData.forEach(item => {
if (item.fieldName === 'borrow_type') {
if (item.context === 1) {
item.context = '待登记'
} else if (item.context === 2) {
item.context = '待借阅'
} else if (item.context === 3) {
item.context = '待归还'
} else if (item.context === 4 || item.context === '' || item.context === null) {
item.context = '-'
} else if (item.context === -1) {
item.context = '在库'
}
}
})
// - tid/''
if (!this.isTidOrBorrow) {
const indexBorrow = this.archivesDetailsData.findIndex(item => item.fieldName === 'borrow_type')
const indexTid = this.archivesDetailsData.findIndex(item => item.fieldName === 'tid')
this.archivesDetailsData.splice(indexBorrow, 1)
this.archivesDetailsData.splice(indexTid, 1)
}
})
FetchArchivesMetadata(params).then(data => {
this.archivesDetailsMetadata = data
})
},
setXml() {
const xmlstr = this.archivesDetailsMetadata
// console.log('xmlstr:', xmlstr)
// console.log('xmljson:', this.$x2js.xml2js(xmlstr))
// console.log('jsonxml:', this.$x2js.js2xml(this.$x2js.xml2js(xmlstr)))
// this.xml_show = vkbeautify.xml(xmlstr)
this.xml_show = this.showXml(xmlstr)
},
changeActiveTab(index) {
this.archivesTabIndex = index
if (this.archivesTabIndex === 2) {
this.setXml()
}
this.$nextTick(() => {
if (this.$refs.uploadFile) {
this.$refs.uploadFile.tableData = []
this.$refs.uploadFile.getFileList()
}
})
},
// -
handleClose(done) {
this.archivesInfoVisible = false
done()
},
// xml
showXml(str) {
var that = this
var text = str
//
text =
'\n' +
text
.replace(/(<\w+)(\s.*?>)/g, function($0, name, props) {
return name + ' ' + props.replace(/\s+(\w+=)/g, ' $1')
})
.replace(/>\s*?</g, '>\n<')
//
text = text
.replace(/\n/g, '\r')
.replace(/<!--(.+?)-->/g, function($0, text) {
var ret = '<!--' + escape(text) + '-->'
return ret
})
.replace(/\r/g, '\n')
//
var rgx = /\n(<(([^\?]).+?)(?:\s|\s*?>|\s*?(\/)>)(?:.*?(?:(?:(\/)>)|(?:<(\/)\2>)))?)/gm
var nodeStack = []
var output = text.replace(rgx, function(
$0,
all,
name,
isBegin,
isCloseFull1,
isCloseFull2,
isFull1,
isFull2
) {
var isClosed =
isCloseFull1 === '/' ||
isCloseFull2 === '/' ||
isFull1 === '/' ||
isFull2 === '/'
var prefix = ''
if (isBegin === '!') {
prefix = that.getPrefix(nodeStack.length)
} else {
if (isBegin !== '/') {
prefix = that.getPrefix(nodeStack.length)
if (!isClosed) {
nodeStack.push(name)
}
} else {
nodeStack.pop()
prefix = that.getPrefix(nodeStack.length)
}
}
var ret = '\n' + prefix + all
return ret
})
var outputText = output.substring(1)
//
outputText = outputText
.replace(/\n/g, '\r')
.replace(/(\s*)<!--(.+?)-->/g, function($0, prefix, text) {
if (prefix.charAt(0) === '\r') prefix = prefix.substring(1)
text = unescape(text).replace(/\r/g, '\n')
var ret =
'\n' + prefix + '<!--' + text.replace(/^\s*/gm, prefix) + '-->'
return ret
})
outputText = outputText.replace(/\s+$/g, '').replace(/\r/g, '\r\n')
return outputText
},
getPrefix(prefixIndex) {
var span = ' '
var output = []
for (var i = 0; i < prefixIndex; ++i) {
output.push(span)
}
return output.join('')
}
}
}
</script>
<style lang="scss" scoped>
.base-info,
.metadata-cont{
background-color: #F6F8FC;
}
//
.base-info{
padding: 20px 0;
.base-info-item{
display: flex;
flex-direction: row;
margin-bottom: 20px;
color: #545B65;
span{
display: block;
width: 120px;
margin-right: 5px;
text-align: right;
color: #0C0E1E;
}
}
}
code.hljs {
font-size: 12px;
color: #0C0E1E !important;
height: 530px !important;
}
::v-deep .hljs-name{
color: #0C0E1E !important;
}
.base-info .base-info-item span.el-tag{
width: auto;
color: #fff;
}
</style>

6
src/views/collectReorganizi/collectionLibrary/module/archivesInfo/metadata.json

@ -0,0 +1,6 @@
{
"code": 200,
"message": "操作成功",
"data": "<? xml version=\"1.0\" encoding=\"UTF-8\"?><元数据信息><内容描述><项目号>JJ-2021-GZ-001</项目号><全宗号>档案室</全宗号><项目名>档案室改造</项目名><保管期限>永久</保管期限><归档年度>2021</归档年度><密级>公开</密级><责任者>许飞</责任者><机构(问题)>机关建设</机构(问题)><部门名称>综合部</部门名称><案卷数>3</案卷数><立项时间>2021-12-01 </立项时间><结项时间>2022-08-25 </结项时间><项目开始时间>2022-05-01 </项目开始时间><项目结束时间>2022-07-31 </项目结束时间><备注></备注></内容描述><系统数据><库房名>null</库房名><盒号>null</盒号><存放位置>null</存放位置><标签编号>null</标签编号><条码号>null</条码号><子条目数>1</子条目数></系统数据></元数据信息>",
"timestamp": 1689215199496
}

223
src/views/collectReorganizi/collectionLibrary/module/collectHeader.vue

@ -0,0 +1,223 @@
<template>
<div class="collect-header">
<h4 :class="classType">{{ collectTitle }}</h4>
<div v-if="isTitleType !== 6" class="head-search">
<!-- 搜索 -->
<el-input v-model="query.blurry" 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">搜索</el-button>
<el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left">重置</el-button>
</div>
<div class="collect-menu">
<el-menu
:default-active="activeIndex"
mode="horizontal"
@select="handleSelect"
>
<el-submenu index="1">
<template slot="title">
<i class="iconfont icon-changgui" />
<span>常规</span>
</template>
<el-menu-item-group class="collect-submenu-group">
<el-menu-item v-if="isTitleType !== 6" index="1-1" @click="handleForm('add')">新增</el-menu-item>
<el-menu-item v-if="isTitleType !== 6" index="1-2" @click="handleForm('edit')">编辑</el-menu-item>
<el-menu-item index="1-3">删除</el-menu-item>
</el-menu-item-group>
<el-menu-item-group v-if="(isTitleType === 3 && selectedCategory.isType === 5) || isTitleType === 4 || isTitleType === 6" class="collect-submenu-group submenu-tree">
<template slot="title">原文上传</template>
<el-menu-item index="1-4">普通上传</el-menu-item>
<el-menu-item index="1-5">大文件上传</el-menu-item>
</el-menu-item-group>
</el-submenu>
<el-submenu v-if="isTitleType !== 6" index="2">
<template slot="title">
<i class="iconfont icon-zhengli" />
<span>整理</span>
</template>
<el-menu-item-group class="collect-submenu-group">
<el-menu-item v-if="isTitleType !== 2" index="2-1">批量导入</el-menu-item>
<!-- 项目 / 案卷 / 卷内 / 文件-->
<el-menu-item index="2-2">批量修改</el-menu-item>
<el-menu-item v-if="isTitleType !== 2" index="2-3">档案调整</el-menu-item>
<el-menu-item v-if="isTitleType !== 2" index="2-4">档号更新</el-menu-item>
<!-- 案卷 -->
<el-menu-item v-if="isTitleType === 3 && selectedCategory.isType === 3" index="2-5">卷内档号更新</el-menu-item>
<el-menu-item v-if="isTitleType === 3 && selectedCategory.isType === 3" index="2-6">拆卷</el-menu-item>
<el-menu-item v-if="isTitleType === 3 && selectedCategory.isType === 3" index="2-7">合卷</el-menu-item>
<el-menu-item v-if="isTitleType === 3 && selectedCategory.isType === 3" index="2-8">插件</el-menu-item>
<!-- 文件 -->
<el-menu-item v-if="isTitleType === 3 && selectedCategory.isType === 5" index="2-9">退回预归档库</el-menu-item>
<!-- 案卷 / 卷内 / 文件 -->
<el-menu-item v-if="isTitleType !== 2" index="2-10">移动</el-menu-item>
<!-- 案卷 -->
<el-menu-item v-if="isTitleType === 3" index="2-11">归档</el-menu-item>
</el-menu-item-group>
</el-submenu>
<el-submenu index="3">
<template slot="title">
<i class="iconfont icon-gengduo" />
<span>更多</span>
</template>
<el-menu-item-group class="collect-submenu-group">
<el-menu-item v-if="isTitleType !== 6" index="3-1">导出</el-menu-item>
<el-menu-item v-if="isTitleType === 3 || isTitleType === 4" index="3-2">打印</el-menu-item>
<el-menu-item v-if="isTitleType === 3 || isTitleType === 4" index="3-3">四性检测</el-menu-item>
<el-menu-item v-if="isTitleType === 6" index="3-4">下载</el-menu-item>
</el-menu-item-group>
<el-menu-item-group v-if="isTitleType === 3 || isTitleType === 4" class="collect-submenu-group submenu-tree">
<template slot="title">电子文件目录</template>
<el-menu-item index="3-5">目录下载</el-menu-item>
<el-menu-item index="3-6">目录上传</el-menu-item>
</el-menu-item-group>
</el-submenu>
</el-menu>
</div>
<!--新增 / 编辑 表单组件-->
<el-dialog class="preview-dialog" :modal-append-to-body="false" :close-on-click-modal="false" :before-close="handleClose" :visible="formVisible" :title="formTitle">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<!-- form -->
<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" @emitTableList="getTableList" />
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handlerArchivesSubmit">保存</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import PreviewForm from '@/views/components/category/PreviewForm'
export default {
name: 'CollectHeader',
components: { PreviewForm },
mixins: [],
props: {
selectedCategory: {
type: Object,
default: function() {
return {}
}
},
isTitleType: {
type: Number,
default: 2
},
arcId: {
type: String,
default: function() {
return ''
}
},
selections: {
type: Array,
default: function() {
return []
}
}
},
data() {
return {
query: {
blurry: ''
},
activeIndex: '1',
formVisible: false,
formTitle: '项目',
formPreviewData: [] // data
}
},
computed: {
collectTitle() {
if (this.isTitleType === 2) {
return '项目'
} else if (this.isTitleType === 3) {
if (this.selectedCategory.isType === 5) {
return '文件'
} else {
return '案卷'
}
} else if (this.isTitleType === 4) {
return '卷内'
} else if (this.isTitleType === 6) {
return '原文'
}
return ''
},
classType() {
if (this.isTitleType === 2) {
return ''
} else if (this.isTitleType === 3) {
return 'is-anjuan'
} else if (this.isTitleType === 4) {
return 'is-juannei'
} else if (this.isTitleType === 6) {
return 'is-file'
}
return ''
},
placeholderType() {
if (this.isTitleType === 2) {
return '输入项目名称或编号'
} else if (this.isTitleType === 3 || this.isTitleType === 4) {
return '输入题名或档号'
}
return '输入项目名称或编号'
}
},
created() {
},
mounted() {
},
methods: {
handleSelect(key, keyPath) {
console.log(key, keyPath)
},
// -form/-api
handleForm(type) {
if (type === 'add') {
this.formVisible = true
this.formTitle = '新增' + this.collectTitle
this.arcId = null
} else if (type === 'edit') {
console.log(this.selections)
// this.arcId = this.selections[0].id
if (this.selections.length === 0) {
this.$message('您还未勾选需要操作的条目,请先确认!')
return false
} else if (this.selections.length > 1) {
this.$message('编辑操作只可勾选唯一目标条目,请先确认!')
return false
}
this.formVisible = true
this.formTitle = '编辑' + this.collectTitle
}
// this.form.dictionaryConfigId = {}
// this.formPreviewData = []
//
// const params = {
// categoryId: this.categoryId,
// archivesId: this.arcId
// }
// this.getFormInfo(params, type, isAnOrJuan)
},
// form - submit
handlerArchivesSubmit() {
this.formVisible = false
// this.$refs.previewForm.submitForm('addOrUpdateForm', this.categoryId)
// this.selections = []
},
// -
handleClose(done) {
this.formVisible = false
done()
}
}
}
</script>
<style lang='scss' scoped>
</style>

340
src/views/collectReorganizi/collectionLibrary/module/uploadFile/index.vue

@ -0,0 +1,340 @@
<template>
<div class="upload-file">
<!-- 上传附件curd -->
<div v-if="isUploadDetail" class="upload-curd">
<div class="upload-btn">
<el-button icon="el-icon-plus" size="small" type="primary">添加</el-button>
<input id="upFile" type="file" name="upFile" @change="changeFile($event)">
</div>
<el-button icon="el-icon-delete" :disabled="selections.length === 0" @click="toDelete(selections)">删除</el-button>
<el-button icon="el-icon-sort" @click="showSort">排序</el-button>
</div>
<!--表格渲染-->
<el-table
ref="table"
:data="tableData"
style="min-width: 100%"
height="calc(100vh - 382px)"
@row-click="clickRowHandler"
@selection-change="selectionChangeHandler"
>
<el-table-column v-if="isUploadDetail" type="selection" width="55" 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" />
<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-column v-if="!isUploadDetail && !recycleMain.isRecycle" label="操作" min-width="100" align="center">
<template slot-scope="scope">
<el-button class="file-down iconfont icon-weibiaoti-2" @click="downloadFile(scope.row)">下载</el-button>
</template>
</el-table-column>
</el-table>
<!-- 点击缩略图看大图 -->
<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>
<!-- 排序 -->
<el-dialog :close-on-click-modal="false" :append-to-body="true" title="排序" :visible.sync="sortVisible" @opened="opened">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<i class="drag-tip">提示请通过拖动鼠标来调整当前顺序</i>
<el-table :data="sortTableData" class="file-sort" style="width: 100%;max-height: 70vh;" row-key="id">
<el-table-column type="index" label="序号" width="100" align="center" />
<el-table-column prop="file_name" label="文件名称" />
</el-table>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click.native="handleSort">保存</el-button>
</div>
</div>
</el-dialog>
<!-- 删除附件 -->
<el-dialog title="删除附件" :append-to-body="true" :close-on-click-modal="false" :visible.sync="deleteVisible" :before-close="handleClose">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<div class="dialog-delt">
<p><span>确定删除已选择的附件吗</span></p>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click.native="handleDeltConfirm">确定</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
import { FetchInitArchiveFilesView, FetchEditFile, FetchDeleteFile, FetchFileSort } from '@/api/archivesManage/archivesList'
import { archivesUpload } from '@/utils/upload'
import { downloadFile, getCurrentTime } from '@/utils/index'
import { mapGetters } from 'vuex'
import { form } from '@crud/crud'
import Sortable from 'sortablejs'
export default {
name: 'UploadFile',
components: {},
mixins: [
form({})
],
inject: ['recycleMain'],
props: {
isUploadDetail: {
type: Boolean,
default: true
},
categoryId: {
type: String,
default: function() {
return ''
}
},
arcId: {
type: String,
default: function() {
return ''
}
}
},
data() {
return {
defaultImg: 'this.src="' + require('@/assets/images/cover-bg.png') + '"',
tableData: [], // list
selections: [], // table -
showCoverVisible: false, // dialog
sortTableData: [], // data
sortVisible: false, // dialog
deleteVisible: false, // dialog
deleteData: [], // data
file: null, // change
fileNames: '', // - name
formatType: '', // - type
postfix: '', // -
fileSize: '', // -
filePath: '', // - path
px: '', // -
nowDate: '', //
previewSrc: '' // src
}
},
computed: {
...mapGetters([
'baseApi'
])
},
watch: {
arcId: function(newValue, oldValue) {
}
},
methods: {
//
async changeFile(e) {
this.file = e.target.files[0]
this.fileSize = this.file.size
this.formatType = this.file.type.substring(0, this.file.type.indexOf('/'))
this.fileNames = this.file.name
this.postfix = this.file.name.substring(
this.fileNames.lastIndexOf('.') + 1,
this.fileNames.length
)
if (this.formatType === 'image') {
const fileBase64 = await this.getBase64(this.file)
const res = await this.getImgPx(fileBase64)
this.px = res.width + 'px*' + res.height + 'px'
} else {
this.px = ''
}
//
archivesUpload(this.baseApi + '/api/archives/uploadFile', this.file, this.categoryId).then(res => {
if (res.data.code === 200) {
this.filePath = res.data.data
this.uploadSave()
}
})
},
// -
uploadSave() {
this.nowDate = getCurrentTime()
const json = {
'file_name': this.fileNames,
'file_size': this.fileSize,
'file_type': this.postfix,
'file_path': this.filePath,
'sequence': null,
'archive_id': this.arcId,
'file_dpi': this.px,
'file_thumbnail': '',
'create_time': this.nowDate,
'id': null
}
const arrayUpload = []
arrayUpload.push(json)
const params = {
'categoryId': this.categoryId,
'jsonString': JSON.stringify(arrayUpload)
}
FetchEditFile(params).then(data => {
this.$message.success('上传附件成功!')
this.crud.refresh()
this.getFileList()
})
},
// base64
getBase64(file) {
const reader = new FileReader()
reader.readAsDataURL(file)
return new Promise((resolve) => {
reader.onload = () => {
resolve(reader.result)
}
})
},
//
getImgPx(img) {
const image = new Image()
image.src = img
return new Promise((resolve) => {
image.onload = () => {
const width = image.width
const height = image.height
resolve({ width, height })
}
})
},
// list
getFileList() {
const params = {
'categoryId': this.categoryId,
'archiveId': this.arcId
}
FetchInitArchiveFilesView(params).then(data => {
this.tableData = data.returnlist
})
},
//
downloadFile(row) {
const url = this.baseApi + '/downloadFile' + row.file_path
fetch(url).then(res => res.blob()).then(blob => {
downloadFile(blob, row.file_name.split('.')[0], row.file_type)
}).catch(() => {
this.$message.error('下载文件失败!')
})
},
//
toDelete(data) {
this.deleteData = data
this.deleteVisible = true
},
//
handleDeltConfirm() {
this.deleteVisible = false
const ids = []
this.deleteData.forEach(val => {
ids.push(val.id)
})
const params = {
'ids': ids,
'categoryId': this.categoryId
}
// fetch
FetchDeleteFile(params).then(res => {
this.crud.delAllLoading = false
this.$message.success('删除成功!')
this.crud.refresh()
this.getFileList()
})
},
// -
rowDrop(className, targetName) {
//
const tbody = document.querySelector('.' + className + ' .el-table__body-wrapper tbody')
const that = this
Sortable.create(tbody, {
//
draggable: '.el-table__row',
onEnd({ newIndex, oldIndex }) {
if (newIndex === oldIndex) return
that[targetName].splice(newIndex, 0, that[targetName].splice(oldIndex, 1)[0])
}
})
},
//
opened() {
this.rowDrop('file-sort', 'sortTableData')
},
showSort() {
this.sortVisible = true
this.sortTableData = JSON.parse(JSON.stringify(this.tableData))
},
// -
handleSort() {
const ids = []
const sequences = []
this.sortTableData.map((value, index) => {
ids.push(value.id)
sequences.push(index + 1)
})
const params = {
'categoryId': this.categoryId,
'ids': ids,
'sequences': sequences
}
FetchFileSort(params).then((res) => {
this.sortVisible = false
this.$message.success('附件排序成功!')
this.crud.refresh()
this.getFileList()
})
},
// table
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row)
},
// table
selectionChangeHandler(val) {
this.selections = val
},
// 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>
.svg-style{
width: 60px;
height: 32px;
}
</style>

162
src/views/collectReorganizi/collectionLibrary/project/index.vue

@ -1,25 +1,114 @@
<template>
<div>
项目
<el-button type="text" @click="openAnjuan">打开案卷的Drawer</el-button>
<div class="collect-no-tab">
<CollectHeader :is-title-type="isTitleType" :selected-category="selectedCategory" :arc-id="arcId" :selections="selections" />
<!-- <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
: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"
/>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :category-id="categoryId" :arc-id="arcId" />
</div>
</template>
<script>
import { header, form } from '@crud/crud'
import CollectHeader from '../module/collectHeader.vue'
import ArchivesInfo from '../module/archivesInfo/index'
import tableFields from './tableFields.json'
import tableData from './tableData.json'
export default {
name: 'Project',
components: { },
components: { CollectHeader, ArchivesInfo },
mixins: [
header(),
form({})
],
props: {
data: {
type: String,
default: ''
},
selectedCategory: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
isTitleType: 2,
projectData: [],
tableDisplayFields: [], // table-list-title
getTableDisplayFieldsLoading: false, // table-loading
selections: [],
categoryId: 'B073E8430B85B4821E7360',
arcId: '2946C34412182B73FBC287',
query: {
blurry: ''
},
activeIndex: '1',
page: {
page: 1,
size: 10,
total: 0
},
timer: null
}
},
watch: {
selectedCategory: function(newValue, oldValue) {
},
tableDisplayFields(val) {
this.doLayout()
}
},
created() {
this.tableDisplayFields = tableFields.data
this.projectData = tableData.data.list.content
},
mounted() {
},
@ -27,10 +116,75 @@ export default {
openAnjuan() {
// this.$emit('openAnjuan', '')
this.$emit('openAnjuan')
},
handleSelect(key, keyPath) {
console.log(key, keyPath)
},
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
},
// table -
tableDoubleClick(row) {
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)
},
// table - row
clickRowHandler(row) {
console.log('clickRowHandler', row)
if (this.timer) {
clearTimeout(this.timer)
}
this.timer = setTimeout(() => {
this.openAnjuan()
}, 300)
this.selections = this.crud.selections
},
//
handleCurrentChange(selection, row) {
console.log('触发单选', row)
this.selections = selection
},
handleSizeChange(size) {
this.page.size = size
this.page.page = 1
},
handleCurrentPage(val) {
this.page.page = val
},
/* 重新渲染table组件 防止table-fixed 错位 配合watch-table数据 */
doLayout() {
this.$nextTick(() => {
this.$refs.table.doLayout()
})
}
}
}
</script>
<style lang='scss' scoped>
.collect-no-tab{
padding-top: 36px;
}
</style>

51
src/views/collectReorganizi/collectionLibrary/project/tableData.json

@ -0,0 +1,51 @@
{
"code": 200,
"message": "操作成功",
"data": {
"list": {
"content": [
{
"case_no": "",
"responsibleby": "许飞",
"piece_qty": 3,
"children_num": 1,
"item_end_date": "2022-08-25 ",
"tid": "",
"item_no": "JJ-2021-GZ-001",
"organization_matter": "机关建设",
"item_start_date": "2021-12-01 ",
"maintitle": "档案室改造",
"security_class": "公开",
"archive_year": 2021,
"fonds_no": "档案室",
"id": "2946C34412182B73FBC287",
"department": "综合部",
"retention": "永久"
},
{
"case_no": "",
"responsibleby": "许飞",
"piece_qty": 3,
"children_num": 1,
"item_end_date": "2022-08-25 ",
"tid": "",
"item_no": "JJ-2021-GZ-001",
"organization_matter": "机关建设",
"item_start_date": "2021-12-01 ",
"maintitle": "档案室改造",
"security_class": "公开",
"archive_year": 2021,
"fonds_no": "档案室",
"id": "2946C34412182B73FBC283",
"department": "综合部",
"retention": "永久"
}
],
"totalElements": 1
},
"yearGroup": [
2021
]
},
"timestamp": 1689148250262
}

523
src/views/collectReorganizi/collectionLibrary/project/tableFields.json

@ -0,0 +1,523 @@
{
"code": 200,
"message": "操作成功",
"data": [
{
"id": "25132519F2921B00A10F5B",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": null,
"fieldName": "item_no",
"fieldCnName": "项目号",
"isDefaultValue": "",
"isInputClass": "text",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 50,
"isColumnType": 2,
"isSequence": 1,
"isType": 2,
"isSystem": true,
"isLine": false,
"isInput": true,
"isRequired": true,
"isAutomatic": false,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": false,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 1,
"displayOrderBy": "asc",
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 170,
"queue": 1,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661303816000,
"update_time": 1663307993000
},
{
"id": "580C7528AC12417FF22957",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": {
"id": "C45F3FF91CC7C1F79BFB5C",
"dicName": "全宗号",
"dicCode": "QZH",
"dicExplain": null,
"dicSequence": 16,
"dicType": true,
"dicPid": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1656991927000,
"update_time": 1656991927000
},
"fieldName": "fonds_no",
"fieldCnName": "全宗号",
"isDefaultValue": "",
"isInputClass": "select",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 100,
"isColumnType": 2,
"isSequence": 2,
"isType": 2,
"isSystem": true,
"isLine": false,
"isInput": true,
"isRequired": true,
"isAutomatic": false,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": false,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 2,
"displayOrderBy": "asc",
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 100,
"queue": 2,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661303816000,
"update_time": 1663307993000
},
{
"id": "203A376644F1858B4DF785",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": null,
"fieldName": "archive_year",
"fieldCnName": "归档年度",
"isDefaultValue": "",
"isInputClass": "number",
"isDataType": 2,
"isDataTypeDetails": "int",
"isColumnLength": 4,
"isColumnType": 2,
"isSequence": 5,
"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": 3,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 100,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661303816000,
"update_time": 1663307784000
},
{
"id": "882EC1B54292686C922360",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": {
"id": "EAC68B9FE234EDE61B2200",
"dicName": "保管期限",
"dicCode": "Search_BGQX",
"dicExplain": null,
"dicSequence": 11,
"dicType": true,
"dicPid": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1654571475000,
"update_time": 1656991717000
},
"fieldName": "retention",
"fieldCnName": "保管期限",
"isDefaultValue": "",
"isInputClass": "select",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 10,
"isColumnType": 2,
"isSequence": 4,
"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": 4,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 100,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661303816000,
"update_time": 1663307777000
},
{
"id": "0501E903B3CB745D13AFB6",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": null,
"fieldName": "maintitle",
"fieldCnName": "项目名",
"isDefaultValue": "",
"isInputClass": "textarea",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 500,
"isColumnType": 2,
"isSequence": 3,
"isType": 2,
"isSystem": true,
"isLine": true,
"isInput": true,
"isRequired": true,
"isAutomatic": false,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": false,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 5,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "left",
"editLength": 510,
"displayLength": 400,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661303816000,
"update_time": 1663307766000
},
{
"id": "9623756470527E43268B37",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": {
"id": "8984F55841E2D541C23318",
"dicName": "密级",
"dicCode": "Search_MJ",
"dicExplain": null,
"dicSequence": 10,
"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": 6,
"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": 1661303816000,
"update_time": 1663307793000
},
{
"id": "94E097186B8E99555BA396",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": null,
"fieldName": "responsibleby",
"fieldCnName": "责任者",
"isDefaultValue": "",
"isInputClass": "text",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 100,
"isColumnType": 2,
"isSequence": 7,
"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": 7,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 100,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661303816000,
"update_time": 1663307799000
},
{
"id": "37647A997D5D97E2C405D9",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": {
"id": "426AA3EF366C7A26A942C8",
"dicName": "机构(问题)",
"dicCode": "Search_JGWT",
"dicExplain": null,
"dicSequence": 12,
"dicType": true,
"dicPid": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1656923873000,
"update_time": 1656991722000
},
"fieldName": "organization_matter",
"fieldCnName": "机构(问题)",
"isDefaultValue": null,
"isInputClass": "popover",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 100,
"isColumnType": 2,
"isSequence": 8,
"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": 8,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 120,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661303816000,
"update_time": 1663307805000
},
{
"id": "6D7225900689DB532B52EA",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": {
"id": "BA3910917510B181160A9A",
"dicName": "部门",
"dicCode": "Search_BM",
"dicExplain": null,
"dicSequence": 15,
"dicType": true,
"dicPid": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1656991900000,
"update_time": 1656991900000
},
"fieldName": "department",
"fieldCnName": "部门名称",
"isDefaultValue": "",
"isInputClass": "select",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 100,
"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": 9,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 120,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661303816000,
"update_time": 1663307812000
},
{
"id": "991A9A14140F42A6B06341",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": null,
"fieldName": "piece_qty",
"fieldCnName": "案卷数",
"isDefaultValue": "",
"isInputClass": "number",
"isDataType": 2,
"isDataTypeDetails": "int",
"isColumnLength": 11,
"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": 10,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 100,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661303816000,
"update_time": 1663307822000
},
{
"id": "40C5B388FAD4215D3295BB",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": null,
"fieldName": "item_start_date",
"fieldCnName": "立项时间",
"isDefaultValue": null,
"isInputClass": "date",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 20,
"isColumnType": 1,
"isSequence": 11,
"isType": 2,
"isSystem": false,
"isLine": false,
"isInput": true,
"isRequired": false,
"isAutomatic": false,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": false,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 11,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 120,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661304557000,
"update_time": 1661327515000
},
{
"id": "FBE7A26D9C70FDFB363C09",
"categoryId": "B073E8430B85B4821E7360",
"dictionaryConfigId": null,
"fieldName": "item_end_date",
"fieldCnName": "结项时间",
"isDefaultValue": null,
"isInputClass": "date",
"isDataType": 1,
"isDataTypeDetails": "varchar",
"isColumnLength": 20,
"isColumnType": 1,
"isSequence": 12,
"isType": 2,
"isSystem": false,
"isLine": false,
"isInput": true,
"isRequired": false,
"isAutomatic": false,
"isAdd": null,
"isSearch": null,
"isInherit": null,
"isFilling": false,
"fillingDigit": null,
"isRepeat": null,
"isDisplay": true,
"displayOrder": 12,
"displayOrderBy": null,
"isDisplayformat": null,
"displayformatType": "center",
"editLength": 196,
"displayLength": 120,
"queue": null,
"create_by": "admin",
"update_by": "admin",
"create_time": 1661304593000,
"update_time": 1661327522000
}
],
"timestamp": 1689148249781
}

117
src/views/collectReorganizi/collectionLibrary/tree.json

@ -0,0 +1,117 @@
{
"code": 200,
"message": "操作成功",
"data": [
{
"id": "0ED1F5CF0EBAC01B914132",
"cnName": "档案",
"enName": "archives",
"pid": "0",
"isType": 1,
"categorySeq": 0,
"children": [
{
"id": "D70C5574B8DCE7A65F7037",
"cnName": "文书档案",
"enName": null,
"pid": "0ED1F5CF0EBAC01B914132",
"isType": 1,
"categorySeq": null,
"children": [
{
"id": "F0F59CC713C83AE4BAB99B",
"cnName": "文书档案(案卷)",
"enName": "tb_2023_06_21_1687319104861",
"pid": "D70C5574B8DCE7A65F7037",
"isType": 3,
"categorySeq": 1,
"children": [
{
"id": "CD135F6A77018CE04D4FDB",
"cnName": "文书档案(卷内)",
"enName": "tb_2023_06_21_1687319123605",
"pid": "F0F59CC713C83AE4BAB99B",
"isType": 4,
"categorySeq": null,
"children": [],
"remark": null,
"typeMetic": true,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319124000,
"update_time": 1687319124000
}
],
"remark": null,
"typeMetic": true,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319105000,
"update_time": 1687319114000
},
{
"id": "005E76FEC5A2AAB368CA1F",
"cnName": "文书档案(资料)",
"enName": "tb_2023_06_21_1687330804487",
"pid": "D70C5574B8DCE7A65F7037",
"isType": 5,
"categorySeq": 2,
"children": [],
"remark": null,
"typeMetic": true,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687330805000,
"update_time": 1687330811000
}
],
"remark": null,
"typeMetic": true,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687243138000,
"update_time": 1687243138000
},
{
"id": "D70C5574B8DCE7A65F7038",
"cnName": "基建档案",
"enName": null,
"pid": "0ED1F5CF0EBAC01B914132",
"isType": 1,
"categorySeq": null,
"children": [
{
"id": "F0F59CC713C83AE4BAB99B",
"cnName": "基建档案(项目)",
"enName": "tb_2023_06_21_1687319104861",
"pid": "D70C5574B8DCE7A65F7037",
"isType": 2,
"categorySeq": 1,
"children": [
],
"remark": null,
"typeMetic": true,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687319105000,
"update_time": 1687319114000
}
],
"remark": null,
"typeMetic": true,
"create_by": "admin",
"update_by": "admin",
"create_time": 1687243138000,
"update_time": 1687243138000
}
],
"remark": "",
"typeMetic": true,
"create_by": null,
"update_by": "admin",
"create_time": null,
"update_time": 1655112365000
}
],
"timestamp": 1688967875784
}
Loading…
Cancel
Save