Browse Source

预归档库样式修改/收集库

master
xuhuajiao 1 year ago
parent
commit
c81f3a14c1
  1. 4
      src/assets/styles/collect-reorganizi.scss
  2. 3
      src/assets/styles/prearchive-library.scss
  3. 349
      src/views/archivesManage/managementLibrary/index.vue
  4. 3
      src/views/collectReorganizi/collectionLibrary/anjuan/tableList.vue
  5. 3
      src/views/collectReorganizi/collectionLibrary/file/index.vue
  6. 4
      src/views/collectReorganizi/collectionLibrary/juannei/index.vue
  7. 3
      src/views/collectReorganizi/collectionLibrary/module/collectHeader.vue
  8. 3
      src/views/collectReorganizi/collectionLibrary/project/index.vue
  9. 6
      src/views/components/category/PreviewForm.vue
  10. 1
      src/views/prearchiveLibrary/index.vue
  11. 67
      src/views/prearchiveLibrary/module/moveFile.vue

4
src/assets/styles/collect-reorganizi.scss

@ -57,3 +57,7 @@
color: #ED4A41;
}
}
.collect-table{
padding: 0 20px;
}

3
src/assets/styles/prearchive-library.scss

@ -20,6 +20,7 @@
.move-right{
width:550px;
overflow: hidden;
h4{
position: relative;
padding-left: 52px;
@ -85,3 +86,5 @@
}
}
}

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

@ -0,0 +1,349 @@
<template>
<div class="app-container archives-container">
<div class="container-main" style="justify-content: flex-start;">
<div class="elect-cont-left">
<div class="container-left">
<span class="right-top-line" />
<span class="left-bottom-line" />
<div class="arc-left-tree">
<h3 class="arc-title arc-title-top">档案门类</h3>
<div class="tree-scroll">
<el-tree ref="categroyTree" v-loading="crud.loading" class="arc-tree arc-tree-01" :data="crud.data" :props="defaultProps" node-key="id" :expand-on-click-node="false" highlight-current @node-click="handleNodeClick">
<span slot-scope="{ node, data }" class="custom-tree-node">
<span v-if="data.isType === 1 " class="iconFolder">
{{ data.cnName }}
</span>
<span v-if="data.isType === 2" class="iconArch">
{{ data.cnName }}
</span>
<span v-if="data.isType === 3" class="iconFile">
{{ data.cnName }}
</span>
</span>
</el-tree>
</div>
<h3 class="arc-title arc-title-bottom">快速筛选</h3>
<el-tree
ref="classifyTree"
v-loading="classifyLoading"
class="arc-tree arc-tree-02"
:data="classifyTree"
:props="defaultClassifyProps"
node-key="id"
:expand-on-click-node="false"
highlight-current
>
<span slot-scope="{ node, data }" class="custom-tree-node">
<span v-if="data.pid === null " class="iconClassify">
{{ data.name }}
</span>
<span v-if="data.pid" class="iconClassify-child">
{{ data.name }}
</span>
</span>
</el-tree>
</div>
</div>
</div>
<!--用户数据-->
<div v-if="selectedCategory.isType !== 1" class="elect-cont-right">
<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" />
</div>
</div>
</div>
</div>
</template>
<script>
import crudCategory from '@/api/category/category'
// import { collectionLibraryCrud } from './mixins/index'
import { FetchArchivesClassTree } from '@/api/system/archivesClass'
import CRUD, { presenter, header } from '@crud/crud'
import Project from './project/index'
import Anjuan from './anjuan/index'
import Juannei from './juannei/index'
import File from './file/index'
export default {
name: 'CollectionLibrary',
components: { Project, Anjuan, Juannei, File },
cruds() {
return [
CRUD({
title: '收集库', url: 'api/category/menu',
crudMethod: { ...crudCategory },
optShow: {
add: false,
edit: false,
del: false,
download: false,
group: false
}
})
]
},
mixins: [presenter(), header()],
props: {
isRecycle: {
type: Boolean,
default: false
}
},
data() {
return {
defaultProps: {
children: 'children',
label: 'cnName'
},
defaultClassifyProps: {
children: 'childArchivesClass',
label: 'name'
},
sharedData: '',
selectedCategory: {},
classifyTree: [],
classifyLoading: false
}
},
watch: {
isRecycle: function(newValue, oldValue) {
}
},
created() {
},
mounted() {
},
methods: {
filterData(data) {
return data.filter(node => {
if (node.children && node.children.length > 0) {
node.children = this.filterData(node.children) //
}
return node.isType !== 3 // isType3
})
},
//
findNode(tree, func) {
for (const node of tree) {
if (func(node)) return node
if (node.children) {
const res = this.findNode(node.children, func)
if (res) return res
}
}
return null
},
//
expandParents(node) {
node.expanded = true
if (node.parent) {
this.expandParents(node.parent)
}
},
[CRUD.HOOK.afterRefresh]() {
this.crud.data = this.filterData(this.crud.data)
this.$nextTick(() => {
let currentKey
if (localStorage.getItem('currentArchivesKey')) {
currentKey = JSON.parse(localStorage.getItem('currentArchivesKey'))
//
if (this.$refs.categroyTree.getCurrentKey(currentKey.id) == null) {
localStorage.removeItem('currentArchivesKey')
}
//
if (currentKey.isType === 1) {
if (currentKey.children.length !== 0) {
currentKey = this.findNode(currentKey.children, (node) => {
return node.isType !== 1
})
}
}
} else {
//
if (this.crud.data[0].isType === 1) {
currentKey = this.findNode(this.crud.data[0].children, (node) => {
return node.isType !== 1
})
} else {
currentKey = this.crud.data[0]
}
}
if (currentKey.id) {
//
this.$refs.categroyTree.setCurrentKey(currentKey.id)
this.$nextTick(() => {
//
const selectedKey = this.$refs.categroyTree.getCurrentNode()
if (this.$refs.categroyTree.getNode(selectedKey) && this.$refs.categroyTree.getNode(selectedKey).parent) {
this.expandParents(this.$refs.categroyTree.getNode(selectedKey).parent)
}
//
this.handleNodeClick(selectedKey)
})
}
})
},
handleNodeClick(val) {
//
localStorage.setItem('currentArchivesKey', JSON.stringify(val))
this.selectedCategory = val
if (this.selectedCategory.isType !== 1) {
this.getInitArchivesClass(val.id)
} 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)
}
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
}
})
},
getInitArchivesClass(categoryId) {
this.classifyLoading = true
const params = {
'categoryId': categoryId
}
FetchArchivesClassTree(params).then((res) => {
this.classifyTree = res
this.classifyLoading = false
}).catch(err => {
console.log(err)
})
},
handleOpenAnjuan(data) {
this.$refs.anjuanEle.anjuanDrawer = true
// this.$refs.anjuanEle.$refs.ajContent.activeIndex = 0
this.$nextTick(() => {
this.$refs.anjuanEle.$refs.ajContent.test = data
})
},
handleOpenJuannei(data) {
if (this.selectedCategory.arrangeType === 1 || (this.selectedCategory.arrangeType === 3) || (this.selectedCategory.arrangeType === 2)) {
// && this.$refs.anjuanEle.$refs.ajContent.activeIndex === 1
this.$refs.fileEle.fileDrawer = true
this.$nextTick(() => {
this.$refs.fileEle.test = data
this.$refs.fileEle.isAjNo = 1
})
} else {
this.$refs.juanneiEle.juanneiDrawer = true
this.$nextTick(() => {
this.$refs.juanneiEle.test = data
this.$refs.fileEle.isAjNo = 0
})
}
},
handleOpenFile(data) {
this.$refs.fileEle.fileDrawer = true
this.$nextTick(() => {
this.$refs.fileEle.test = data
})
}
}
}
</script>
<style lang="scss" scoped>
.elect-cont-left{
width: 276px;
padding: 0 !important;
}
.hideSidebar .elect-cont-left {
width: 265px !important;
}
[data-theme=light] .elect-cont-left .container-left {
min-height: calc(100vh - 140px);
}
[data-theme=dark] .elect-cont-left .container-left {
min-height: calc(100vh - 160px);
}
.openSidebar .elect-cont-right {
width: calc(100vw - 592px);
}
[data-theme=light] .elect-cont-right .container-right.tab-content {
min-height: calc(100vh - 180px) !important;
}
.arc-title{
position: relative;
height: 48px;
line-height: 48px;
text-align: center;
font-size: 16px;
color: #0C0E1E;
background-color: #F3F5F8;
&::after{
content: "";
position: absolute;
right: 12px;
bottom: 0;
}
}
.arc-title-top{
&::after{
width: 44px;
height: 35px;
background: url("~@/assets/images/collect/daml.png") no-repeat;
background-size: 100% 100%;
}
}
.arc-title-bottom{
&::after{
width: 41px;
height: 40px;
background: url("~@/assets/images/collect/kssx.png") no-repeat;
background-size: 100% 100%;
}
}
.arc-tree{
padding: 0 20px;
background-color: red;
}
.arc-tree-01{
height: 400px;
overflow: hidden;
overflow-y: scroll;
}
[data-theme=dark] .arc-tree-01{
height: 370px;
}
.arc-tree-02{
height: calc(100vh - 720px);
overflow: hidden;
overflow-y: scroll;
}
::v-deep .el-tree-node__children .custom-tree-node{
font-size: 14px;
}
[data-theme=light] .elect-cont-right {
padding: 0 20px !important;
}
[data-theme=dark] .elect-cont-right {
margin-top: 0 !important;
}
</style>

3
src/views/collectReorganizi/collectionLibrary/anjuan/tableList.vue

@ -1,6 +1,7 @@
<template>
<div>
<CollectHeader :is-title-type="isTitleType" :selected-category="selectedCategory" :arc-id="arcId" :selections="selections" :active-index="activeIndex" :test="test" :is-recycle="isRecycle" />
<div class="collect-table">
<el-table
ref="table"
v-loading="getTableDisplayFieldsLoading"
@ -46,6 +47,7 @@
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :category-id="categoryId" :arc-id="arcId" />
</div>
@ -196,4 +198,5 @@ export default {
</script>
<style lang='scss' scoped>
@import "~@/assets/styles/collect-reorganizi.scss";
</style>

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

@ -10,6 +10,7 @@
>
<CollectHeader :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"
@ -63,6 +64,7 @@
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</div>
</el-drawer>
</template>
@ -157,6 +159,7 @@ export default {
</script>
<style lang='scss' scoped>
@import "~@/assets/styles/collect-reorganizi.scss";
.svg-style{
width: 60px;
height: 32px;

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

@ -9,6 +9,7 @@
:size="selectedCategory.arrangeType === 2 ? '90%' :'80%'"
>
<CollectHeader :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"
@ -54,6 +55,7 @@
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :category-id="categoryId" :arc-id="arcId" />
<span class="closed-btn" @click="closeDrawer" />
@ -178,5 +180,5 @@ export default {
</script>
<style lang='scss' scoped>
@import "~@/assets/styles/collect-reorganizi.scss";
</style>

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

@ -1,7 +1,8 @@
<template>
<div class="collect-header">
<h4 :class="classType">{{ collectTitle }} <span v-if="isTitleType !== 2 && !(isTitleType === 3 && (selectedCategory.arrangeType === 1 || selectedCategory.arrangeType === 2) )"> > {{ test }}</span></h4>
<div v-if="isTitleType !== 6" :class="[!(isRecycle && (isTitleType === 2 || (isTitleType === 3 && selectedCategory.arrangeType !== 3))) ? 'head-search is-recycle':'head-search']">
<!-- :class="[!(isRecycle && (isTitleType === 2 || (isTitleType === 3 && selectedCategory.arrangeType !== 3))) ? 'head-search is-recycle':'head-search']" -->
<div v-if="isTitleType !== 6" class="head-search">
<!-- 搜索 -->
<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>

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

@ -2,6 +2,7 @@
<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> -->
<div class="collect-table">
<el-table
ref="table"
v-loading="crud.loading || getTableDisplayFieldsLoading"
@ -47,6 +48,7 @@
@size-change="handleSizeChange"
@current-change="handleCurrentPage"
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :category-id="categoryId" :arc-id="arcId" />
</div>
@ -168,6 +170,7 @@ export default {
</script>
<style lang='scss' scoped>
@import "~@/assets/styles/collect-reorganizi.scss";
.collect-no-tab{
padding-top: 36px;
}

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

@ -815,7 +815,8 @@ export default {
@mixin preview-border-color{
[data-theme="dark"] & {
border-color: #3a99fd;
// border-color: #3a99fd;
border-color: #EDEFF3;
}
[data-theme="light"] & {
border-color: #EDEFF3;
@ -898,6 +899,9 @@ export default {
}
.el-button{
margin-top: -2px;
font-weight: bold;
border-color: #0348f3;
color: #0348f3;
}
}
}

1
src/views/prearchiveLibrary/index.vue

@ -343,6 +343,7 @@ export default {
exportFile(this.baseApi + '/api/re-document/download?' + qs.stringify(params, { indices: false }))
this.crud.downloadLoading = false
}).catch(() => {
this.crud.downloadLoading = false
})
},
//

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

@ -272,4 +272,71 @@ export default {
padding-right: 5px;
margin: 25px 0 !important;
}
::v-deep .el-dialog{
.el-button.filter-search{
background-color: #0348f3;
border-color: #0348f3;
color: #fff !important;
}
.el-tree{
.el-tree-node__content{
color: #0C0E1E;
&:hover{
background-color: #E8F2FF !important;
background-image: none !important;
}
}
.el-tree-node__children{
.el-tree-node__content{
color: #545B65;
}
}
.el-tree-node__expand-icon{
color: #0C0E1E;
}
.is-current>.el-tree-node__content{
background-color: #E8F2FF !important;
background-image: none !important;
}
.el-tree-node.is-current>.el-tree-node__content .el-tree-node__label{
background-image: none !important;
color: #0348F3;
}
}
.el-table{
.el-table__header-wrapper,
.el-table__header{
background-color: #F5F9FC !important;
th.el-table__cell{
background-color: #F5F9FC !important;
border-bottom: none;
&>.cell{
font-size: 14px;
color: #0C0E1E !important;
}
}
}
}
.el-table .el-table__body-wrapper td.el-table__cell,
.el-table .el-table__fixed-right td.el-table__cell {
border-bottom: none;
}
.el-table__body tr.el-table__row:hover>td.el-table__cell,
.el-table__body tr.el-table__row:focus>td.el-table__cell,
.el-table__body tr.current-row>td.el-table__cell,
.el-table__body tr.current-row:hover>td.el-table__cell,
.el-table__body tr.current-row:focus>td.el-table__cell{
background-color: #eaf3fb;
color: #545b65;
border-bottom: 1px solid #f5f9fc;
}
.el-button--text:hover,
.el-button--text:focus{
border-color: #e6e8ed;
color: #545b65;
background-color: #E8F2FF;
}
}
</style>
Loading…
Cancel
Save