Browse Source

首页3D切换 / 档案分类搜索 / 档案导入条件增加 / 档案搜索相关修改

master
xuhuajiao 2 years ago
parent
commit
c35ba3169d
  1. 40
      src/views/archivesManage/archivesList/index.vue
  2. 5
      src/views/archivesManage/archivesList/mixins/archives.js
  3. 45
      src/views/archivesManage/archivesSearch/index.vue
  4. 78
      src/views/archivesManage/fileImport/dataImport/index.vue
  5. 76
      src/views/home.vue
  6. 1
      src/views/storeManage/warehouse3D/index.vue

40
src/views/archivesManage/archivesList/index.vue

@ -126,7 +126,10 @@ export default {
'department': null, 'department': null,
'retention': null, 'retention': null,
'securityClass': null, 'securityClass': null,
'organizationMatter': null
'organizationMatter': null,
'fondsNo': null,
'recordType': null,
'mediumType': null
}, },
treeCurrentNode: null, treeCurrentNode: null,
nodeClick: false, nodeClick: false,
@ -256,7 +259,10 @@ export default {
'department': null, 'department': null,
'retention': null, 'retention': null,
'securityClass': null, 'securityClass': null,
'organizationMatter': null
'organizationMatter': null,
'fondsNo': null,
'recordType': null,
'mediumType': null
} }
this.$refs.smartTree.setCurrentKey(null) this.$refs.smartTree.setCurrentKey(null)
smartTreeList.forEach((item, index) => { smartTreeList.forEach((item, index) => {
@ -291,7 +297,10 @@ export default {
'department': null, 'department': null,
'retention': null, 'retention': null,
'securityClass': null, 'securityClass': null,
'organizationMatter': null
'organizationMatter': null,
'fondsNo': null,
'recordType': null,
'mediumType': null
} }
if ((selectData && selectData.length > 1) || (selectData && selectData.length === 0)) { if ((selectData && selectData.length > 1) || (selectData && selectData.length === 0)) {
this.isProject = true this.isProject = true
@ -343,7 +352,10 @@ export default {
'department': null, 'department': null,
'retention': null, 'retention': null,
'securityClass': null, 'securityClass': null,
'organizationMatter': null
'organizationMatter': null,
'fondsNo': null,
'recordType': null,
'mediumType': null
} }
if ((selectData && selectData.length > 1) || (selectData && selectData.length === 0)) { if ((selectData && selectData.length > 1) || (selectData && selectData.length === 0)) {
this.isAnjuan = true this.isAnjuan = true
@ -424,7 +436,10 @@ export default {
'department': null, 'department': null,
'retention': null, 'retention': null,
'securityClass': null, 'securityClass': null,
'organizationMatter': null
'organizationMatter': null,
'fondsNo': null,
'recordType': null,
'mediumType': null
} }
if (ele.$el.classList.contains('is-current')) { if (ele.$el.classList.contains('is-current')) {
this.treeCurrentNode.classList.remove('is-current') this.treeCurrentNode.classList.remove('is-current')
@ -451,6 +466,21 @@ export default {
this.smartQuery.securityClass = selectedKey.dicName this.smartQuery.securityClass = selectedKey.dicName
} }
break break
case 'WZ':
if (selectedKey.dicCode !== 'WZ') {
this.smartQuery.recordType = selectedKey.dicName
}
break
case 'ZT':
if (selectedKey.dicCode !== 'ZT') {
this.smartQuery.mediumType = selectedKey.dicName
}
break
case 'QZH':
if (selectedKey.dicCode !== 'QZH') {
this.smartQuery.fondsNo = selectedKey.dicName
}
break
default: default:
if (selectedKey.dicCode !== 'Search_JGWT') { if (selectedKey.dicCode !== 'Search_JGWT') {
this.smartQuery.organizationMatter = selectedKey.dicName this.smartQuery.organizationMatter = selectedKey.dicName

5
src/views/archivesManage/archivesList/mixins/archives.js

@ -163,7 +163,10 @@ export const archivesCrud = {
'department': this.smartQuery.department, 'department': this.smartQuery.department,
'retention': this.smartQuery.retention, 'retention': this.smartQuery.retention,
'securityClass': this.smartQuery.securityClass, 'securityClass': this.smartQuery.securityClass,
'organizationMatter': this.smartQuery.organizationMatter
'organizationMatter': this.smartQuery.organizationMatter,
'fondsNo': this.smartQuery.fondsNo,
'recordType': this.smartQuery.recordType,
'mediumType': this.smartQuery.mediumType
} }
FetchInitArchivesView(params).then(data => { FetchInitArchivesView(params).then(data => {
this.getTableDisplayFieldsLoading = false this.getTableDisplayFieldsLoading = false

45
src/views/archivesManage/archivesSearch/index.vue

@ -10,6 +10,7 @@
multiple multiple
collapse-tags collapse-tags
placeholder="请选择" placeholder="请选择"
@change="handleChose"
> >
<el-option <el-option
v-for="item in options" v-for="item in options"
@ -39,38 +40,35 @@
height="calc(100vh - 493px)" height="calc(100vh - 493px)"
@row-dblclick="handleDbClick" @row-dblclick="handleDbClick"
> >
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column type="index" label="序号" width="60" align="center" />
<el-table-column prop="child" label="子条数目" align="center" width="100" /> <el-table-column prop="child" label="子条数目" align="center" width="100" />
<el-table-column prop="security_class" label="密级" align="center" min-width="100" />
<el-table-column prop="retention" label="保管期限" align="center" min-width="100" />
<el-table-column prop="archive_year" label="年度" align="center" min-width="100" />
<el-table-column prop="fonds_no" label="全宗号" align="center" min-width="180" />
<el-table-column prop="category_type" label="门类级别" align="center" min-width="100"> <el-table-column prop="category_type" label="门类级别" align="center" min-width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- 门类级别 -->
<span v-if="scope.row.category_type === 5" style="width:56px">文件级</span> <span v-if="scope.row.category_type === 5" style="width:56px">文件级</span>
<span v-if="scope.row.category_type === 4" style="width:56px">卷内级</span> <span v-if="scope.row.category_type === 4" style="width:56px">卷内级</span>
<span v-if="scope.row.category_type === 3" style="width:56px">案卷级</span> <span v-if="scope.row.category_type === 3" style="width:56px">案卷级</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="case_name" label="门类名称" align="center" min-width="170" />
<el-table-column prop="fonds_no" label="全宗号" align="center" min-width="180" />
<el-table-column prop="category_name" label="门类名称" align="center" min-width="170" />
<el-table-column prop="archive_no" label="档号" align="center" min-width="180" /> <el-table-column prop="archive_no" label="档号" align="center" min-width="180" />
<el-table-column prop="archive_year" label="归档年度" align="center" min-width="100" />
<el-table-column prop="maintitle" label="题名" align="center" min-width="240" /> <el-table-column prop="maintitle" label="题名" align="center" min-width="240" />
<el-table-column prop="security_class" label="保密程度" align="center" min-width="100" />
<el-table-column prop="department" label="部门" align="center" min-width="100" />
<el-table-column type="serial_no" label="序号" width="100" align="center" />
<el-table-column type="arrive_class" label="收发类别" width="140" align="center" />
<el-table-column type="doc_no" label="发文字号" width="140" align="center" />
<el-table-column type="temp_no" label="临时卷号" width="140" align="center" />
<el-table-column prop="case_name" label="盒名称" align="center" min-width="180" /> <el-table-column prop="case_name" label="盒名称" align="center" min-width="180" />
<el-table-column prop="folder_location_details" label="所在位置" align="center" min-width="260">
<el-table-column prop="folder_location" label="所在位置" align="center" min-width="260">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="!scope.row.folder_location_details">-</span>
<span v-if="!scope.row.folder_location">-</span>
<span v-else> <span v-else>
<el-tag effect="dark">{{ scope.row.folder_location_details }}</el-tag>
<el-tag effect="dark">{{ scope.row.folder_location }}</el-tag>
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="create_time" label="创建时间" align="center" min-width="180">
<template slot-scope="scope">
<div>{{ scope.row.create_time | parseTime }}</div>
</template>
</el-table-column>
<el-table-column prop="created_date" label="成文日期" align="center" min-width="180" />
</el-table> </el-table>
<el-pagination :page-size.sync="page.size" :total="page.total" :current-page.sync="page.page" style="margin-top: 8px;" layout="total, prev, pager, next, sizes" @size-change="sizeChangeHandler($event)" @current-change="pageChangeHandler" /> <el-pagination :page-size.sync="page.size" :total="page.total" :current-page.sync="page.page" style="margin-top: 8px;" layout="total, prev, pager, next, sizes" @size-change="sizeChangeHandler($event)" @current-change="pageChangeHandler" />
</div> </div>
@ -132,8 +130,17 @@ export default {
} }
}, },
methods: { methods: {
handleChose(val) {
if (val.length < 1) {
this.$nextTick(() => {
this.select = ['maintitle'] // v-model
})
return
}
},
getSelectLabel(option) { getSelectLabel(option) {
return this.options.find((c) => c.value === option)?.label
const selectedOption = this.options.find((c) => c.value === option)
return selectedOption ? selectedOption.label : ''
}, },
// //
handleDbClick(row) { handleDbClick(row) {
@ -158,6 +165,10 @@ export default {
}, },
// / // /
handleSearch() { handleSearch() {
if (this.select.length === 0) {
this.$message.warning('请选择检索条件!')
return
}
if (this.$route.path.indexOf('dashboard') !== -1) { if (this.$route.path.indexOf('dashboard') !== -1) {
this.$router.push('/archivesManage/archivesSearch') this.$router.push('/archivesManage/archivesSearch')
localStorage.setItem('homeSearchWords', this.keywords) localStorage.setItem('homeSearchWords', this.keywords)

78
src/views/archivesManage/fileImport/dataImport/index.vue

@ -11,15 +11,16 @@
<div v-if="isShow01" class="step-content step-upload"> <div v-if="isShow01" class="step-content step-upload">
<el-upload <el-upload
ref="upload" ref="upload"
:limit="1"
:on-exceed="handleExceed"
:headers="headers"
:before-upload="beforeUpload" :before-upload="beforeUpload"
:before-remove="beforeRemove" :before-remove="beforeRemove"
:auto-upload="false" :auto-upload="false"
:on-success="handleSuccess" :on-success="handleSuccess"
:on-error="handleError" :on-error="handleError"
:on-remove="handleRemove" :on-remove="handleRemove"
:on-change="changeFile"
accept=".zip" accept=".zip"
:file-list="fileList"
:action="fileUploadApi + '?name=' + name" :action="fileUploadApi + '?name=' + name"
> >
<div class="upload-zip"><i class="el-icon-upload2" />选择文件</div> <div class="upload-zip"><i class="el-icon-upload2" />选择文件</div>
@ -84,6 +85,7 @@
<script> <script>
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { getToken } from '@/utils/auth'
import detail from '../module/detail.vue' import detail from '../module/detail.vue'
export default { export default {
name: 'DataImport', name: 'DataImport',
@ -91,7 +93,9 @@ export default {
data() { data() {
return { return {
name: '', name: '',
headers: {
Authorization: getToken()
},
deleteVisible: false, deleteVisible: false,
form: { form: {
file: true, file: true,
@ -101,7 +105,8 @@ export default {
}, },
isShow01: true, isShow01: true,
isShow02: false, isShow02: false,
isShow03: false
isShow03: false,
fileList: []
} }
}, },
computed: { computed: {
@ -114,10 +119,15 @@ export default {
}, },
methods: { methods: {
handleStep01() { handleStep01() {
if (this.fileList.length === 0) {
this.$message.warning('请上传相关文件 !')
return
}
this.isShow01 = false this.isShow01 = false
this.isShow02 = true this.isShow02 = true
}, },
handleReturn02() { handleReturn02() {
this.fileList = []
this.isShow01 = true this.isShow01 = true
this.isShow02 = false this.isShow02 = false
this.isShow03 = false this.isShow03 = false
@ -132,36 +142,32 @@ export default {
this.isShow02 = true this.isShow02 = true
this.isShow03 = false this.isShow03 = false
}, },
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!')
} else {
console.log('error submit!!')
return false
//
changeFile(file, fileList) {
if (fileList.length > 1) {
fileList.splice(0, 1)
} }
})
},
//
upload() {
this.fileList = fileList
}, },
// , , false Promise reject
beforeUpload(file) { beforeUpload(file) {
},
handleRemove(file, fileList) {
console.log(file, fileList)
},
handleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`)
const sizeLimit = file.size / 1024 / 1024 > 10
if (sizeLimit) {
this.$message.warning('上传文件大小不能超过 10MB!')
}
const fileFamart = file.name.split('.')[file.name.split('.').length - 1]
if (fileFamart !== 'zip') {
this.$message.warning('必须上传zip格式的文件!')
}
return !sizeLimit && fileFamart === 'zip'
}, },
beforeRemove(file, fileList) { beforeRemove(file, fileList) {
return this.$confirm('此操作将清空所选数据, 是否继续?', '提示') return this.$confirm('此操作将清空所选数据, 是否继续?', '提示')
}, },
handleSuccess(response, file, fileList) {
// this.crud.notify('', CRUD.NOTIFICATION_TYPE.SUCCESS)
// this.$refs.upload.clearFiles()
// this.crud.status.add = CRUD.STATUS.NORMAL
// this.crud.resetForm()
// this.crud.toQuery()
//
handleRemove(file, fileList) {
this.fileList = []
console.log(file, fileList)
}, },
// //
handleError(e, file, fileList) { handleError(e, file, fileList) {
@ -172,6 +178,24 @@ export default {
duration: 2500 duration: 2500
}) })
this.loading = false this.loading = false
},
//
handleSuccess(response, file, fileList) {
// this.crud.notify('', CRUD.NOTIFICATION_TYPE.SUCCESS)
// this.$refs.upload.clearFiles()
// this.crud.status.add = CRUD.STATUS.NORMAL
// this.crud.resetForm()
// this.crud.toQuery()
},
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!')
} else {
console.log('error submit!!')
return false
}
})
} }
} }
} }

76
src/views/home.vue

@ -18,7 +18,7 @@
<!-- <div class="chart-wrapper"> <!-- <div class="chart-wrapper">
<pie-chart /> <pie-chart />
</div> --> </div> -->
<div class="container-left" style="height: 100%;margin: 0">
<div class="container-left" style="height: 100%;margin: 0; position: relative;">
<span class="right-top-line" /> <span class="right-top-line" />
<span class="left-bottom-line" /> <span class="left-bottom-line" />
<h3 class=" table-title"> <h3 class=" table-title">
@ -26,26 +26,52 @@
<svg-icon icon-class="a-3Dkufang" class-name="warehouse-svg" />3D库房 <svg-icon icon-class="a-3Dkufang" class-name="warehouse-svg" />3D库房
</p> </p>
</h3> </h3>
<div class="home-floor-tab">
<p :class="{ 'active-floor': floorIndex == 0 }" @click="changeFloorTab(0)">5楼</p>
<p :class="{ 'active-floor': floorIndex == 1 }" @click="changeFloorTab(1)">7楼</p>
</div>
<el-carousel ref="carouselRef" trigger="click" :interval="4000" indicator-position="none" height="110px" arrow="never" @change="handleChange">
<el-carousel-item>
<div class="warehouse-tab"> <div class="warehouse-tab">
<ul class="warehouse-nav"> <ul class="warehouse-nav">
<li @click="changeActiveTab(0)">
<li @click="changeActiveTab(1,0)">
<span /> <span />
<p>全景图</p> <p>全景图</p>
</li> </li>
<li @click="changeActiveTab(1)">
<li @click="changeActiveTab(1,1)">
<span /> <span />
<p>档案库</p> <p>档案库</p>
</li> </li>
<li @click="changeActiveTab(2)">
<li @click="changeActiveTab(1,2)">
<span /> <span />
<p>整理室</p> <p>整理室</p>
</li> </li>
<li @click="changeActiveTab(3)">
<li @click="changeActiveTab(1,3)">
<span /> <span />
<p>阅览室</p> <p>阅览室</p>
</li> </li>
</ul> </ul>
</div> </div>
</el-carousel-item>
<el-carousel-item>
<div class="warehouse-tab">
<ul class="warehouse-nav">
<li @click="changeActiveTab(0,4)">
<span />
<p>全景图</p>
</li>
<li @click="changeActiveTab(0,5)">
<span />
<p>现行文件室</p>
</li>
<li @click="changeActiveTab(0,6)">
<span />
<p>待销文件室</p>
</li>
</ul>
</div>
</el-carousel-item>
</el-carousel>
</div> </div>
</el-col> </el-col>
</el-row> </el-row>
@ -159,13 +185,24 @@ export default {
mixins: [statisticsCrud], mixins: [statisticsCrud],
data() { data() {
return { return {
waitBorrowerData: []
waitBorrowerData: [],
floorIndex: 0
} }
}, },
created() { created() {
this.getWaitBorrower() this.getWaitBorrower()
}, },
mounted() {
},
methods: { methods: {
handleChange(index) {
this.floorIndex = index
},
changeFloorTab(index) {
this.floorIndex = index
const carousel = this.$refs.carouselRef
carousel.setActiveItem(index)
},
// handleSetLineChartData(type) { // handleSetLineChartData(type) {
// this.lineChartData = lineChartData[type] // this.lineChartData = lineChartData[type]
// }, // },
@ -176,11 +213,12 @@ export default {
} }
}) })
}, },
changeActiveTab(id) {
changeActiveTab(floorId, roomId) {
this.$router.push({ this.$router.push({
name: 'warehouse3D', name: 'warehouse3D',
params: { params: {
roomId: id
floorId: floorId,
roomId: roomId
} }
}) })
} }
@ -327,4 +365,26 @@ export default {
} }
} }
} }
.home-floor-tab{
position: absolute;
right: 14px;
top: 10px;
color: #fff;
display: flex;
justify-self: flex-start;
p{
font-size: 14px;
padding:2px 6px;
margin-right: 6px;
color: #339cff;
border: 1px solid #339cff;
border-radius: 4px;
cursor: pointer;
&.active-floor,
&:hover{
color: #fff;
background-color: #113d72;
}
}
}
</style> </style>

1
src/views/storeManage/warehouse3D/index.vue

@ -101,6 +101,7 @@ export default {
created() { created() {
// this.initWebSocket() // this.initWebSocket()
if (this.$route.params.roomId) { if (this.$route.params.roomId) {
this.floorIndex = this.$route.params.floorId
this.activeIndex = this.$route.params.roomId this.activeIndex = this.$route.params.roomId
} }
displayConfigApi.list({ storeroomId: '' }).then((data) => { displayConfigApi.list({ storeroomId: '' }).then((data) => {

Loading…
Cancel
Save