Browse Source

档案管理/档案盒管理/bug修复

master
xuhuajiao 1 year ago
parent
commit
fb13ab3155
  1. 20
      src/api/archivesManage/library.js
  2. 10
      src/assets/styles/collect-reorganizi.scss
  3. 88
      src/views/archiveKeeping/caseManage/caseList/index.vue
  4. 250
      src/views/archiveKeeping/caseManage/caseList/module/detailDialog.vue
  5. 28
      src/views/archiveKeeping/caseManage/caseLog/index.vue
  6. 2
      src/views/archiveKeeping/caseManage/index.vue
  7. 3
      src/views/archivesManage/destructionList/index.vue
  8. 23
      src/views/archivesManage/managementLibrary/module/collectHeader.vue
  9. 8
      src/views/archivesManage/managementLibrary/module/handOverForm.vue
  10. 3
      src/views/archivesManage/managementLibrary/module/offLineHandover/index.vue
  11. 3
      src/views/archivesManage/managementLibrary/module/onlineHandover/index.vue
  12. 7
      src/views/archivesManage/managementLibrary/module/packingBox/index.vue
  13. 3
      src/views/archivesManage/moveInventory/index.vue
  14. 138
      src/views/archivesManage/openInventory/index.vue
  15. 75
      src/views/archivesManage/openInventory/module/detail.vue
  16. 2
      src/views/collectReorganizi/collectionLibrary/module/collectHeader.vue
  17. 15
      src/views/components/archivesListModule/index.vue
  18. 5
      src/views/components/category/PreviewForm.vue

20
src/api/archivesManage/library.js

@ -25,12 +25,19 @@ export function FetchIntoFlowBusiness(data) {
}) })
} }
// 档案退回流程确定
export function FetchArchivesReturnConfirm(data) {
// 获取业务流程列表
export function FetchBusinessFlowHistory(params) {
return request({ return request({
url: 'api/control/archivesReturnConfirm',
method: 'post',
data: data
url: 'api/control/getBusinessFlowHistory' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 获取业务流程id获取详情信息
export function FetchBusinessFlowDetails(params) {
return request({
url: 'api/control/getBusinessFlowDetails' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
}) })
} }
@ -38,5 +45,6 @@ export default {
FetchInitContorlView, FetchInitContorlView,
FetchPrintData, FetchPrintData,
FetchIntoFlowBusiness, FetchIntoFlowBusiness,
FetchArchivesReturnConfirm
FetchBusinessFlowHistory,
FetchBusinessFlowDetails
} }

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

@ -20,6 +20,7 @@
} }
} }
.hitch-info{ .hitch-info{
position: relative;
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
@ -38,6 +39,15 @@
font-style: normal; font-style: normal;
} }
} }
.state-list{
position: absolute;
right: 0;
top: 0;
width: auto;
span{
width: auto;
}
}
} }
// 2023-10-9 收集整编 // 2023-10-9 收集整编

88
src/views/archiveKeeping/caseManage/caseList/index.vue

@ -73,13 +73,14 @@
> >
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" /> <el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="createTime" label="状态" align="center" width="110">
<el-table-column prop="createTime" label="状态" align="center" width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<span :class="getClassByStorageType(scope.row)">{{ scope.row.storageType | storageTypeStatus }}</span> <span :class="getClassByStorageType(scope.row)">{{ scope.row.storageType | storageTypeStatus }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="depositNum" label="已装" align="center" min-width="56" /> <el-table-column prop="depositNum" label="已装" align="center" min-width="56" />
<el-table-column prop="caseName" label="盒名称" :show-overflow-tooltip="true" align="center" min-width="150" /> <el-table-column prop="caseName" label="盒名称" :show-overflow-tooltip="true" align="center" min-width="150" />
<el-table-column prop="caseCode" label="盒号" :show-overflow-tooltip="true" align="center" min-width="150" />
<el-table-column prop="tid" label="TID" align="center" min-width="180" /> <el-table-column prop="tid" label="TID" align="center" min-width="180" />
<el-table-column prop="barcode" label="条形码" align="center" min-width="120" /> <el-table-column prop="barcode" label="条形码" align="center" min-width="120" />
<el-table-column label="存放位置" align="center" min-width="300"> <el-table-column label="存放位置" align="center" min-width="300">
@ -101,6 +102,27 @@
<eForm /> <eForm />
<binding-tag-dlg ref="bindingTag" :binding-id="crud.selections[0] && crud.selections[0].id" :binding-type="2" binding-txt="档案盒" @refresh="crud.refresh" /> <binding-tag-dlg ref="bindingTag" :binding-id="crud.selections[0] && crud.selections[0].id" :binding-type="2" binding-txt="档案盒" @refresh="crud.refresh" />
<detailDialog ref="detailDom" /> <detailDialog ref="detailDom" />
<div v-show="isHidden" id="print" ref="printId" class="intoExamine">
<h3 style="text-align: center; margin:20px 0; font-size: 24px;">归档文件目录</h3>
<el-table :data="printData" border>
<el-table-column type="index" label="序号" width="55" align="center" />
<!-- <el-table-column label="件号" prop="pieceNo" width="55" align="center" /> -->
<el-table-column label="档号" prop="archiveNo" align="center" width="180px" />
<el-table-column label="文号" prop="docNo" align="center" width="160" />
<el-table-column label="责任者" prop="responsibleby" align="center" />
<el-table-column label="题名" prop="maintitle" align="center" width="200px" />
<el-table-column label="日期" prop="create_time" align="center" width="100">
<template slot-scope="scope">
<div>{{ parseTime(scope.row.create_time, '{y}-{m}-{d}') }}</div>
</template>
</el-table-column>
<el-table-column label="密级" prop="securityClass" align="center" />
<el-table-column label="页数" prop="pageQty" align="center" width="60" />
<el-table-column label="备注" prop="remarks" align="center" width="100px" />
</el-table>
</div>
</div> </div>
</template> </template>
@ -198,7 +220,9 @@ export default {
], ],
inputSelect: '', inputSelect: '',
typeValue: '', typeValue: '',
typeInputkey: '' // ,typeInputkeyform
typeInputkey: '', // ,typeInputkeyform
isHidden: false,
printData: []
} }
}, },
computed: { computed: {
@ -278,34 +302,31 @@ export default {
}) })
} }
}, },
[CRUD.HOOK.beforeToCU](crud, form, btn) {
console.log(form)
},
// //
[CRUD.HOOK.afterValidateCU](crud) { [CRUD.HOOK.afterValidateCU](crud) {
console.log(crud.form) console.log(crud.form)
return true return true
}, },
resetQuery() {
},
tableDoubleClick(row) { tableDoubleClick(row) {
this.$refs.detailDom.caseTabIndex = 0
this.$refs.detailDom.rowData = row this.$refs.detailDom.rowData = row
const params = { const params = {
caseId: row.id caseId: row.id
} }
this.crud.crudMethod.findInCase(params).then(res => { this.crud.crudMethod.findInCase(params).then(res => {
console.log(res)
if (res) { if (res) {
this.$refs.detailDom.tableData = res.archives this.$refs.detailDom.tableData = res.archives
this.$refs.detailDom.collectLevel = parseInt(res.archives[0].categoryLevel)
} else {
this.$refs.detailDom.tableData = []
} }
}) })
this.$refs.detailDom.detailVisible = true this.$refs.detailDom.detailVisible = true
}, },
handleCloseDialog(done) {
},
handleDel(data) { handleDel(data) {
const boolDeposit = data.every(item => item.depositNum === 0) const boolDeposit = data.every(item => item.depositNum === 0)
const boolStorage = data.every(item => item.storageType === 0) const boolStorage = data.every(item => item.storageType === 0)
if (boolStorage) { if (boolStorage) {
if (boolDeposit) { if (boolDeposit) {
this.$confirm('此操作将删除所选数据' + '<span>你是否还要继续?</span>', '提示', { this.$confirm('此操作将删除所选数据' + '<span>你是否还要继续?</span>', '提示', {
@ -414,7 +435,7 @@ export default {
type: 'warning' type: 'warning'
}) })
} else { } else {
this.$confirm('此操作将导出所选数据' + '<span>提示:1.确定拆盒后,当前盒号下绑定的所有档案数据将一并清除;</span><span>2.若案卷存在多个盒,选择其中一个分盒则自动拆掉该案卷的全部档案盒</span>', '提示', {
this.$confirm('此操作将拆掉当前档案盒' + '<span>提示:1.确定拆盒后,当前盒号下绑定的所有档案数据将一并清除;</span><span>2.若案卷存在多个盒,选择其中一个分盒则自动拆掉该案卷的全部档案盒</span>', '提示', {
confirmButtonText: '继续', confirmButtonText: '继续',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning', type: 'warning',
@ -465,4 +486,49 @@ export default {
background-color: #fff !important; background-color: #fff !important;
color: #0348F3 !important; color: #0348F3 !important;
} }
.intoExamine{
position: fixed;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
// width: 980px;
background-color: #fff;
z-index: 99;
::v-deep .el-table--group, .el-table--border{
border: 1px solid #000;
border-bottom: none;
}
::v-deep .el-table__header{
border-bottom: 1px solid #000;;
}
::v-deep .el-table .el-table__header-wrapper th.el-table__cell, .el-table .el-table__header th.el-table__cell{
color: #000;
background-color: #fff;
border-bottom: none;
&>.cell{
color: #000;
}
}
::v-deep .el-table .el-table__body-wrapper td.el-table__cell, .el-table .el-table__fixed-right td.el-table__cell{
color: #000;
border-bottom: 1px solid #000;
padding: 0;
}
::v-deep .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:hover>td.el-table__cell, .el-table__body tr.current-row:focus>td.el-table__cell{
background-color: transparent;
}
::v-deep .el-table--border .el-table__cell{
border-right: 1px solid #000;
}
}
@media print {
/*最外层打印节点*/
html,body{
height: inherit;
}
.intoExamine{
margin: 0 auto;
}
}
</style> </style>

250
src/views/archiveKeeping/caseManage/caseList/module/detailDialog.vue

@ -1,105 +1,213 @@
<template> <template>
<div> <div>
<el-dialog append-to-body :close-on-click-modal="false" :modal-append-to-body="false" title="档案盒详情" :visible.sync="detailVisible">
<el-dialog class="detail-dialog" append-to-body :close-on-click-modal="false" :modal-append-to-body="false" title="档案盒详情" :visible.sync="detailVisible">
<div class="setting-dialog"> <div class="setting-dialog">
<div style="padding:0 10px">
<div class="dpflex">
<p class="left"><span class="color-blue">盒名称</span><span>{{ rowData.caseName }}</span></p>
<p class="right"><span class="color-blue">盒条码</span><span>{{ rowData.barcode }}</span></p>
<div class="detail-tab tab-content">
<ul class="tab-nav">
<li :class="{'active-tab-nav': caseTabIndex == 0}" @click="changeActiveTab(0)">基本信息</li>
<li :class="{'active-tab-nav': caseTabIndex == 1}" @click="changeActiveTab(1)">盒内档案</li>
</ul>
<div v-if="caseTabIndex===0" class="base-info">
<ul>
<li>
<span>盒号</span>
<p>{{ rowData && rowData.caseCode }}</p>
</li>
<li>
<span>状态</span>
<p>{{ rowData && rowData.depositNum ? '已装':'' }}</p>
</li>
<li>
<span>盒名称</span>
<p>{{ rowData && rowData.caseName }}</p>
</li>
<li>
<span>规格</span>
<p>{{ rowData && rowData && rowData.caseSpecs }}</p>
</li>
</ul>
<ul>
<li>
<span>全宗</span>
<p>{{ rowData && rowData.caseFonds }}</p>
</li>
<li>
<span>年度</span>
<p>{{ rowData && rowData.caseYear }}</p>
</li>
<li>
<span>保管期限</span>
<p>{{ rowData && rowData.caseRetention }}</p>
</li>
<li>
<span>密级</span>
<p>{{ rowData && rowData.caseClass }}</p>
</li>
<li>
<span>开始件号</span>
<p>{{ rowData && rowData.startItemNo }}</p>
</li>
<li>
<span>结束件号</span>
<p>{{ rowData && rowData.endItemNo }}</p>
</li>
</ul>
<ul>
<li>
<span>装盒人</span>
<p>{{ rowData && rowData.packing }}</p>
</li>
<li>
<span>装盒日期</span>
<p>{{ rowData && rowData.packDate | parseTime }}</p>
</li>
<li>
<span>检查人</span>
<p>{{ rowData && rowData.check }}</p>
</li>
<li>
<span>检查日期</span>
<p>{{ rowData && rowData.checkDate | parseTime }}</p>
</li>
</ul>
<ul class="case-detail-row">
<li>
<span>电子标签</span>
<p>{{ rowData && rowData.tid }}</p>
</li>
<li>
<span>条码</span>
<p>{{ rowData && rowData.barcode }}</p>
</li>
<li>
<span>存放位置</span>
<p>{{ rowData && !rowData.folderLocationDetails ? '-' : rowData.folderLocationDetails }}</p>
</li>
</ul>
<ul>
<li>
<span>备注</span>
<p>{{ rowData && rowData.caseNotes }}</p>
</li>
</ul>
</div> </div>
<div class="dpflex">
<p class="left"><span class="color-blue">存放位置</span>
<span>
<div v-if="!rowData.folderLocationDetails">-</div>
<div v-else>
<el-tag effect="dark">{{ rowData.folderLocationDetails }}</el-tag>
</div>
</span>
</p>
<p class="right"><span class="color-blue">TID</span><span>{{ rowData.tid }}</span></p>
</div>
<p class="left"><span class="color-blue">创建时间</span><span>{{ rowData.create_time | parseTime }}</span></p>
</div>
<el-table :data="tableData" style="margin-top:15px;" height="342px">
<el-table-column type="index" label="序号" align="center" width="80" />
<el-table-column prop="docNo" label="发文字号" show-overflow-tooltip width="140" align="center" />
<el-table-column prop="child" label="子条数目" align="center" width="100" />
<el-table-column prop="categoryType" label="门类级别" align="center" width="100">
<template slot-scope="scope">
<span v-if="scope.row.categoryType === 5" style="width:56px">文件级</span>
<span v-if="scope.row.categoryType === 4" style="width:56px">卷内级</span>
<span v-if="scope.row.categoryType === 3" style="width:56px">案卷级</span>
</template>
</el-table-column>
<el-table-column prop="categoryName" label="门类名称" align="center" width="140" :show-overflow-tooltip="true" />
<el-table-column prop="fondsNo" label="全宗号" align="center" width="180" />
<el-table-column prop="archiveNo" label="档号" align="center" width="220" />
<el-table-column prop="archiveYear" label="归档年度" align="center" width="150" />
<el-table-column prop="maintitle" :show-overflow-tooltip="true" align="center" label="题名" width="180" />
<el-table-column prop="securityClass" label="保密程度" align="center" width="150" />
<el-table-column prop="department" label="部门名称" align="center" width="150" />
<el-table-column prop="caseName" label="盒名称" :show-overflow-tooltip="true" align="center" width="190" />
<el-table-column prop="folderLocationDetails" align="center" label="所在位置" width="300">
<template slot-scope="scope">
<span v-if="!scope.row.folderLocationDetails">-</span>
<span v-else>
<el-tag effect="dark">{{ scope.row.folderLocationDetails }}</el-tag>
</span>
<!-- <ArchivesListModule
v-show="caseTabIndex===1"
ref="archivesListModuleRef"
:collect-level="collectLevel"
:selections="tableData"
:is-case="true"
/> -->
<el-table v-show="caseTabIndex===1" style="width: 100%;" :data="tableData" height="342px">
<el-table-column prop="categoryName" label="所属门类" align="center" min-width="80" :show-overflow-tooltip="true">
<template>
{{ selectedItem && selectedItem.cnName }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="create_time" align="center" label="创建时间" width="150">
<el-table-column prop="categoryLevel" label="门类级别" align="center" width="80">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.create_time | parseTime }}</div>
<span v-if="scope.row.categoryLevel === '3'" style="width:56px">文件</span>
<span v-if="scope.row.categoryLevel === '2'" style="width:56px">卷内</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="fondsNo" label="全宗号" align="center" width="180" />
<el-table-column prop="archiveYear" label="年度" align="center" />
<el-table-column prop="archiveNo" label="档号" align="center" width="220" :show-overflow-tooltip="true" />
<el-table-column prop="maintitle" label="题名" align="center" width="180" :show-overflow-tooltip="true" />
<el-table-column prop="docNo" label="发文字号" align="center" />
<el-table-column prop="securityClass" label="密级" align="center" />
<el-table-column prop="secrecyPeriod" label="保密期限" align="center" />
<el-table-column prop="retention" label="保管期限" align="center" />
</el-table> </el-table>
</div> </div>
</div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { FetchCategoryMenu } from '@/api/system/category/category'
export default { export default {
data() { data() {
return { return {
caseTabIndex: 0,
detailVisible: false, detailVisible: false,
rowData: {}, rowData: {},
tableData: []
tableData: [],
collectLevel: null,
selectedItem: null
} }
},
methods: {
changeActiveTab(data) {
this.caseTabIndex = data
if (this.caseTabIndex === 1) {
this.getCategoryDataTree()
// if (this.tableData.length !== 0) {
// this.$refs.archivesListModuleRef.caseCategoryId = this.tableData[0].categoryPid
// this.$refs.archivesListModuleRef.getViewTable()
// } else {
// this.$refs.archivesListModuleRef.caseCategoryId = null
// this.$refs.archivesListModuleRef.tableData = []
// }
} }
},
getCategoryDataTree() {
FetchCategoryMenu().then(res => {
console.log(res)
this.selectedItem = this.findItemById(this.tableData[0].categoryPid, res)
console.log(this.selectedItem.cnName)
// this.categoryOptions = this.filterData(res)
// this.classifyOptions = this.filterArchivesClasses(res)
})
},
findItemById(id, data) {
for (const item of data) {
if (item.id === id) {
return item
} }
</script>
<style lang="scss" scoped>
::v-deep .el-dialog{
width: 950px;
// height: 520px;
if (item.children && item.children.length > 0) {
const foundChildItem = this.findItemById(id, item.children)
if (foundChildItem) {
return foundChildItem
} }
::v-deep .el-dialog__body{
padding: 20px 0;
} }
::v-deep .el-dialog .el-dialog__header .el-dialog__close::before{
position: absolute;
right: -160px;
bottom: -10px;
} }
p{
margin-bottom: 24px;
return null
} }
.dpflex{
display: flex;
.left{
width: 400px;
} }
} }
.color-blue{
width: 86px;
display: inline-block;
</script>
<style lang="scss" scoped>
.base-info{
background: #F6F8FC;
padding: 20px;
ul{
display: flex;
justify-content: space-between;
flex-wrap: wrap;
margin: 10px 0;
li{
display: flex;
justify-content: flex-start;
width: 50%;
font-size: 14px;
color: #545B65;
line-height: 35px;
span{
display: block;
width: 120px;
font-weight: bold;
text-align: right; text-align: right;
color: #339CFF;
color: #0C0E1E;
}
}
}
.case-detail-row{
li{
width: 100%;
}
} }
.color-white{
display: inline-block;
color: #fff;
} }
</style> </style>

28
src/views/archiveKeeping/caseManage/module/caseLog.vue → src/views/archiveKeeping/caseManage/caseLog/index.vue

@ -38,7 +38,7 @@
<rrOperation /> <rrOperation />
</div> </div>
<div class="handle-container"> <div class="handle-container">
<el-button slot="reference" size="mini" :disabled="!crud.selections.length">
<el-button slot="reference" size="mini" :disabled="!crud.selections.length" @click="downloadApi(crud.selections)">
<i class="iconfont icon-daochu" /> <i class="iconfont icon-daochu" />
导出 导出
</el-button> </el-button>
@ -51,6 +51,7 @@
style="width: 100%;" style="width: 100%;"
height="calc(100vh - 346px)" height="calc(100vh - 346px)"
@selection-change="crud.selectionChangeHandler" @selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
> >
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" /> <el-table-column type="index" label="序号" width="55" align="center" />
@ -80,6 +81,9 @@ import CRUD, { presenter, crud } from '@crud/crud'
import caseCurd from '@/api/archivesKeeping/caseManage' import caseCurd from '@/api/archivesKeeping/caseManage'
import rrOperation from '@crud/RR.operation' import rrOperation from '@crud/RR.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
import qs from 'qs'
import { exportFile } from '@/utils/index'
import { mapGetters } from 'vuex'
export default { export default {
name: 'RecordList', name: 'RecordList',
@ -149,13 +153,11 @@ export default {
} }
}, },
computed: { computed: {
// ...mapGetters([
// 'user'
// ])
...mapGetters([
'baseApi'
])
}, },
watch: { watch: {
activeIndex: function(newValue, oldValue) {
}
}, },
created() { created() {
// select - // select -
@ -198,7 +200,19 @@ export default {
[CRUD.HOOK.beforeRefresh]() { [CRUD.HOOK.beforeRefresh]() {
this.crud.query.operationType = this.selectStatus this.crud.query.operationType = this.selectStatus
}, },
resetQuery() {
getRowKey(row) {
return row.id
},
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row)
},
//
downloadApi(data) {
const ids = data.map(item => { return item.id })
const params = {
'logIds': ids
}
exportFile(this.baseApi + '/api/archivesDeposit/exportCaseLogList?' + qs.stringify(params, { indices: false }))
} }
} }
} }

2
src/views/archiveKeeping/caseManage/index.vue

@ -18,7 +18,7 @@
<script> <script>
import caseList from './caseList/index' import caseList from './caseList/index'
import caseLog from './module/caseLog'
import caseLog from './caseLog/index'
export default { export default {
name: 'CaseManage', name: 'CaseManage',
components: { components: {

3
src/views/archivesManage/destructionList/index.vue

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<InventoryModule :invent-type="2" />
<InventoryModule :invent-type="4" />
</div> </div>
</template> </template>
@ -12,7 +12,6 @@ export default {
components: { InventoryModule }, components: { InventoryModule },
data() { data() {
return { return {
isRecycle: true
} }
}, },
computed: { computed: {

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

@ -73,27 +73,36 @@
<el-menu-item v-if="isTitleType !== 6" index="1-1" @click="handleForm('edit')">编辑</el-menu-item> <el-menu-item v-if="isTitleType !== 6" index="1-1" @click="handleForm('edit')">编辑</el-menu-item>
</el-menu-item-group> </el-menu-item-group>
</el-submenu> </el-submenu>
<el-submenu v-if="selectedCategory.isType === 2 && isTitleType !==4 && isTitleType !== 6" index="2">
<el-submenu v-if="isTitleType === 3" index="2">
<template slot="title"> <template slot="title">
<i class="iconfont icon-zhengli" /> <i class="iconfont icon-zhengli" />
<span>整理</span> <span>整理</span>
</template> </template>
<el-menu-item-group class="collect-submenu-group"> <el-menu-item-group class="collect-submenu-group">
<el-menu-item v-if="isTitleType === 3" index="2-1" @click="bindingTag(selections)">标签绑定</el-menu-item>
<el-menu-item-group v-if="isTitleType === 3" class="collect-submenu-group submenu-tree">
<el-menu-item v-if="selectedCategory.arrangeType === 1" index="2-1" @click="bindingTag(selections)">标签绑定</el-menu-item>
<el-menu-item-group class="collect-submenu-group submenu-tree">
<template slot="title">档案装盒</template> <template slot="title">档案装盒</template>
<el-menu-item index="2-2" @click="handlePackingBox(0)">装盒</el-menu-item> <el-menu-item index="2-2" @click="handlePackingBox(0)">装盒</el-menu-item>
<el-menu-item v-if="selectedCategory.arrangeType !== 1" index="2-3" @click="handlePackingBox(1)">分卷装盒</el-menu-item> <el-menu-item v-if="selectedCategory.arrangeType !== 1" index="2-3" @click="handlePackingBox(1)">分卷装盒</el-menu-item>
</el-menu-item-group> </el-menu-item-group>
<el-menu-item-group v-if="selectedCategory.isType === 2" class="collect-submenu-group submenu-tree">
<el-menu-item-group class="collect-submenu-group submenu-tree">
<template slot="title">档案移交</template> <template slot="title">档案移交</template>
<el-menu-item index="2-4" @click="handleOnlineHandover">在线移交</el-menu-item> <el-menu-item index="2-4" @click="handleOnlineHandover">在线移交</el-menu-item>
<el-menu-item index="2-5" @click="handleOffLineHandover">离线移交</el-menu-item> <el-menu-item index="2-5" @click="handleOffLineHandover">离线移交</el-menu-item>
</el-menu-item-group> </el-menu-item-group>
<!-- <el-menu-item v-if="selectedCategory.isType === 2" index="2-6" @click="handleExportZip">导出ZIP包</el-menu-item> --> <!-- <el-menu-item v-if="selectedCategory.isType === 2" index="2-6" @click="handleExportZip">导出ZIP包</el-menu-item> -->
<el-menu-item v-if="selectedCategory.arrangeType !== 3" index="2-7" @click="handleArcReturn">档案退回</el-menu-item>
<el-menu-item v-if="isTitleType === 3 " index="2-8" @click="handleJD(0)">开放审核</el-menu-item>
<el-menu-item v-if="isTitleType === 3 " index="2-9" @click="handleJD(1)">销毁鉴定</el-menu-item>
<el-menu-item index="2-7" @click="handleArcReturn">档案退回</el-menu-item>
<el-menu-item index="2-8" @click="handleJD(0)">开放审核</el-menu-item>
<el-menu-item index="2-9" @click="handleJD(1)">销毁鉴定</el-menu-item>
</el-menu-item-group>
</el-submenu>
<el-submenu v-if="isTitleType === 4" index="2">
<template slot="title">
<i class="iconfont icon-zhengli" />
<span>整理</span>
</template>
<el-menu-item-group class="collect-submenu-group">
<el-menu-item index="2-1" @click="bindingTag(selections)">标签绑定</el-menu-item>
</el-menu-item-group> </el-menu-item-group>
</el-submenu> </el-submenu>
<el-submenu v-if="isTitleType !== 6" index="3"> <el-submenu v-if="isTitleType !== 6" index="3">

8
src/views/archivesManage/managementLibrary/module/handOverForm.vue

@ -20,8 +20,8 @@
<el-form-item label="申请人部门" prop="dept"> <el-form-item label="申请人部门" prop="dept">
<el-input v-model="form.dept" style="width: 280px;" disabled /> <el-input v-model="form.dept" style="width: 280px;" disabled />
</el-form-item> </el-form-item>
<el-form-item label="申请理由" prop="remarks">
<el-input v-model="form.remarks" type="textarea" style="width: 660px;" :rows="4" />
<el-form-item label="申请理由" prop="reason">
<el-input v-model="form.reason" type="textarea" style="width: 660px;" :rows="4" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<ArchivesListModule v-if="activeIndex == 0" ref="archivesListModule" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" /> <ArchivesListModule v-if="activeIndex == 0" ref="archivesListModule" :selected-category="selectedCategory" :collect-level="collectLevel" :selections="selections" />
@ -81,7 +81,7 @@ export default {
date: null, date: null,
applicant: null, applicant: null,
dept: null, dept: null,
remarks: null,
reason: null,
fondsNo: null fondsNo: null
}, },
rules: { rules: {
@ -160,7 +160,7 @@ export default {
'businessType': this.isHandOver ? 6 : this.overType, 'businessType': this.isHandOver ? 6 : this.overType,
'categoryId': this.selectedCategory.id, 'categoryId': this.selectedCategory.id,
'categoryLevel': this.collectLevel, 'categoryLevel': this.collectLevel,
'remarks': this.form.remarks,
'reason': this.form.reason,
'fondsNo': this.form.fondsNo, // 'fondsNo': this.form.fondsNo, //
'targetFondsNo': this.targetFondsNo ? this.targetFondsNo.fondsId : null// 'targetFondsNo': this.targetFondsNo ? this.targetFondsNo.fondsId : null//
// 'targetPosition': 'string', // // 'targetPosition': 'string', //

3
src/views/archivesManage/managementLibrary/module/offLineHandover/index.vue

@ -23,12 +23,10 @@
</template> </template>
<script> <script>
const data = [{}, {}]
import HandOverForm from '../handOverForm' import HandOverForm from '../handOverForm'
export default { export default {
name: 'OffLineHandover', name: 'OffLineHandover',
components: { HandOverForm }, components: { HandOverForm },
// inject: ['caseData', 'recycleMain'],
props: { props: {
selectedCategory: { selectedCategory: {
type: Object, type: Object,
@ -65,7 +63,6 @@ export default {
} }
}, },
created() { created() {
this.tableData = data
}, },
methods: { methods: {
submitOffLine() { submitOffLine() {

3
src/views/archivesManage/managementLibrary/module/onlineHandover/index.vue

@ -11,7 +11,8 @@
<div class="selct-data-head"> <div class="selct-data-head">
<p v-if="selectedCategory.arrangeType === 1">数据来源文件<span>{{ selections.length }}</span>条数据</p> <p v-if="selectedCategory.arrangeType === 1">数据来源文件<span>{{ selections.length }}</span>条数据</p>
<!-- totalSumAll --> <!-- totalSumAll -->
<p v-else>数据来源案卷<span>{{ selections.length }}</span>条数据 卷内<span>{{ totalSumAll }}</span>条数据</p>
<p v-else-if="selectedCategory.arrangeType === 2">数据来源案卷<span>{{ selections.length }}</span>条数据 卷内<span>{{ totalSumAll }}</span>条数据</p>
<p v-else>数据来源项目数据 {{ selections.length }} 案卷<span>{{ totalSumAll }}</span>条数据 卷内<span>{{ totalSumAll }}</span>条数据</p>
</div> </div>
</div> </div>
<el-table <el-table

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

@ -269,12 +269,7 @@ export default {
}) })
}, },
async getPackingFileList() { async getPackingFileList() {
let parentsId
if (this.selectedCategory.arrangeType === 3) {
parentsId = null
} else {
parentsId = this.selections[0].id
}
const parentsId = this.selections[0].id
const params = { const params = {
'categoryId': this.selectedCategory.id, 'categoryId': this.selectedCategory.id,
'categoryLevel': 3, 'categoryLevel': 3,

3
src/views/archivesManage/moveInventory/index.vue

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<InventoryModule :invent-type="3" />
<InventoryModule :invent-type="6" />
</div> </div>
</template> </template>
@ -12,7 +12,6 @@ export default {
components: { InventoryModule }, components: { InventoryModule },
data() { data() {
return { return {
isRecycle: true
} }
}, },
computed: { computed: {

138
src/views/archivesManage/openInventory/index.vue

@ -3,8 +3,21 @@
<div class="app-container row-container"> <div class="app-container row-container">
<div class="connection-header collect-header" style="margin-bottom: 20px;"> <div class="connection-header collect-header" style="margin-bottom: 20px;">
<div class="head-search" style="margin-bottom: 0;"> <div class="head-search" style="margin-bottom: 0;">
<el-input v-model="query.search" clearable size="small" placeholder="输入关键字可模糊搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="handleSearch()" @clear="handleSearch()" />
<el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="handleSearch()">搜索</el-button>
<el-select
v-model="status"
style="margin-right: 10px; width: 110px;"
placeholder="请选择"
@change="getBusinessFlowHistory"
>
<el-option
v-for="item in stateOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-input v-model="search" clearable size="small" placeholder="输入关键字可模糊搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="getBusinessFlowHistory" @clear="getBusinessFlowHistory" />
<el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="getBusinessFlowHistory">搜索</el-button>
<el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置</el-button> <el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery">重置</el-button>
</div> </div>
<el-button size="mini" :disabled="selections.length === 0" @click="doExport(selections)"> <el-button size="mini" :disabled="selections.length === 0" @click="doExport(selections)">
@ -14,14 +27,31 @@
</div> </div>
<el-table ref="table" :data="tableData" style="width: 100%;" height="calc(100vh - 330px)" @select="handleCurrentChange" @selection-change="selectionChangeHandler" @row-dblclick="handleDetail"> <el-table ref="table" :data="tableData" style="width: 100%;" height="calc(100vh - 330px)" @select="handleCurrentChange" @selection-change="selectionChangeHandler" @row-dblclick="handleDetail">
<el-table-column type="selection" align="center" width="55" /> <el-table-column type="selection" align="center" width="55" />
<el-table-column v-if="inventType===3" prop="title" label="类型" />
<el-table-column prop="title" label="标题" />
<el-table-column v-if="inventType===6" prop="business_type" label="类型">
<template>
<div>内部移交</div>
</template>
</el-table-column>
<el-table-column prop="title" label="标题" min-width="180" />
<el-table-column prop="reason" label="申请理由" /> <el-table-column prop="reason" label="申请理由" />
<el-table-column prop="reason" label="申请人" />
<el-table-column prop="dept" label="申请部门" />
<el-table-column prop="create_time" label="申请时间">
<el-table-column prop="applicant" label="申请人" />
<el-table-column prop="deptsName" label="申请部门" />
<el-table-column prop="createTime" label="申请时间">
<template slot-scope="scope">
<div>{{ scope.row.createTime }}</div>
</template>
</el-table-column>
<el-table-column prop="completeTime" label="完成时间">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.create_time | parseTime }}</div>
<div>{{ scope.row.completeTime }}</div>
</template>
</el-table-column>
<el-table-column prop="createTime" label="状态" width="80">
<template slot-scope="scope">
<span v-if="scope.row.status === 1" class="row-state ing-state">进行中</span>
<span v-if="scope.row.status === 2" class="row-state case-cancel">已取消</span>
<span v-if="scope.row.status === 3" class="row-state end-state">已完成</span>
<span v-if="scope.row.status === 4" class="row-state cancel-state">不通过</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -43,45 +73,47 @@
<script> <script>
import Detail from './module/detail' import Detail from './module/detail'
import { FetchBusinessFlowHistory } from '@/api/archivesManage/library'
import qs from 'qs'
import { exportFile } from '@/utils/index'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
const data = [
{
'id': '005E76FEC5A2AAB368CA1F',
'code': '230c4a438fa84b2c9a0405c99e7f5cb1',
'status': 1,
'remark': null,
'create_by': 'admin',
'create_time': 1687330805000
},
{
'id': '005E76FEC5A2AAB368CA1F',
'code': '230c4a438fa84b2c9a0405c99e7f5cb2',
'status': 0,
'remark': '请检查zip包格式是否正确',
'create_by': 'admin',
'create_time': 1687330805000
}
]
export default { export default {
name: 'OpenInventory', name: 'OpenInventory',
components: { Detail }, components: { Detail },
props: { props: {
inventType: { inventType: {
type: Number, type: Number,
default: 1
default: 3
} }
}, },
data() { data() {
return { return {
query: {
search: ''
status: null,
stateOptions: [
{
value: 1,
label: '进行中'
},
{
value: 2,
label: '已取消'
}, },
{
value: 3,
label: '已完成'
},
{
value: 4,
label: '不通过'
}
],
businessType: this.inventType,
search: '',
tableData: [], tableData: [],
selections: [], selections: [],
page: { page: {
page: 1,
page: 0,
size: 10, size: 10,
total: 0 total: 0
} }
@ -93,23 +125,41 @@ export default {
]) ])
}, },
created() { created() {
this.tableData = data
}, },
mounted() { mounted() {
this.getBusinessFlowHistory()
}, },
methods: { methods: {
resetQuery() { resetQuery() {
this.query = {}
this.search = ''
this.status = null
this.getBusinessFlowHistory()
}, },
handleSearch() {
getBusinessFlowHistory() {
const params = {
'status': this.status,
'search': this.search,
'businessType': this.businessType,
'page': this.page.page,
'size': this.page.size
}
FetchBusinessFlowHistory(params).then((res) => {
if (res.code !== 500) {
this.tableData = res.content
this.page.total = res.totalElements
} else {
this.$message.error('获取数据失败')
}
}).catch(err => {
console.log(err)
})
}, },
handleDetail() {
handleDetail(row) {
this.$refs.mDetail.rowCurrent = row
this.$refs.mDetail.detialVisible = true this.$refs.mDetail.detialVisible = true
}, },
// //
handleCurrentChange(selection, row) { handleCurrentChange(selection, row) {
console.log('触发单选', row)
this.selections = selection this.selections = selection
}, },
handleSizeChange(size) { handleSizeChange(size) {
@ -133,10 +183,11 @@ export default {
data.forEach(val => { data.forEach(val => {
ids.push(val.id) ids.push(val.id)
}) })
// const params = {
// 'roleIds': ids
// }
// exportFile(this.baseApi + '/api/role/exportRole?' + qs.stringify(params, { indices: false }))
const params = {
'businessIds': ids,
'businessType': this.businessType
}
exportFile(this.baseApi + '/api/control/exportBusinessFlow?' + qs.stringify(params, { indices: false }))
}).catch(() => { }).catch(() => {
}) })
} }
@ -149,4 +200,9 @@ export default {
.connection-header{ .connection-header{
padding: 0 !important; padding: 0 !important;
} }
.case-cancel{
color: #a6adb6;
border: 1px solid #e6e8ed;
background-color: #f3f5f9;
}
</style> </style>

75
src/views/archivesManage/openInventory/module/detail.vue

@ -1,60 +1,67 @@
<template> <template>
<!-- 详情 --> <!-- 详情 -->
<el-dialog :title="detialTitle" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="detialVisible">
<el-dialog :title="detialTitle" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="detialVisible" @opened="opened">
<div class="setting-dialog"> <div class="setting-dialog">
<ul class="hitch-info"> <ul class="hitch-info">
<li><span>标题</span>230c4a438fa84b2c9a0405c99e7f5cb1</li>
<li><span>申请时间</span>2016-09-21 08:50:08</li>
<li><span>申请人</span>admin</li>
<li><span>申请部门</span>档案室</li>
<li><span>申请理由</span>达到开放标准</li>
<li v-if="inventType===3"><span>移交类型</span>外部移交</li>
<li><span>标题</span>{{ rowCurrent && rowCurrent.title }}</li>
<li><span>申请时间</span>{{ rowCurrent && rowCurrent.createTime }}</li>
<li><span>申请人</span>{{ rowCurrent && rowCurrent.applicant }}</li>
<li><span>申请部门</span>{{ rowCurrent && rowCurrent.deptsName }}</li>
<li><span>申请理由</span>{{ rowCurrent && rowCurrent.reason }}</li>
<li v-if="inventType===6"><span>移交类型</span>内部移交</li>
<li><span>完成时间</span>{{ rowCurrent && rowCurrent.completeTime }}</li>
<li><span>审批意见</span>{{ rowCurrent && rowCurrent.opinion }}</li>
<li class="state-list">
<span v-if="rowCurrent && rowCurrent.status === 1" class="row-state ing-state">进行中</span>
<span v-if="rowCurrent && rowCurrent.status === 2" class="row-state case-cancel">已取消</span>
<span v-if="rowCurrent && rowCurrent.status === 3" class="row-state end-state">已完成</span>
<span v-if="rowCurrent && rowCurrent.status === 4" class="row-state cancel-state">不通过</span>
</li>
</ul> </ul>
<el-table ref="table" :data="tableData" style="width: 100%;"> <el-table ref="table" :data="tableData" style="width: 100%;">
<el-table-column type="index" align="center" width="55" label="序号" /> <el-table-column type="index" align="center" width="55" label="序号" />
<el-table-column prop="name" label="所属全宗" />
<el-table-column prop="reason2" label="门类名称" />
<el-table-column prop="reason2" label="整理方式" />
<el-table-column prop="reason2" label="项目号/档号" />
<el-table-column prop="reason2" label="题名" />
<el-table-column v-if="inventType===1" prop="reason" label="开放状态" align="center">
<template>
<span class="row-state end-state">开放</span>
<el-table-column prop="fondsName" label="所属全宗" />
<el-table-column prop="categoryName" label="门类名称" />
<el-table-column prop="categoryLevel" label="整理方式">
<template slot-scope="scope">
<span>{{ scope.row.categoryLevel === 2 ? '案卷整理' : '按件整理' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="inventType===2" prop="reason2" label="归档日期" />
<el-table-column v-if="inventType===2" prop="reason2" label="存档年限" />
<el-table-column v-if="inventType===2" prop="reason2" label="销毁日期" />
<el-table-column v-if="inventType===3" prop="reason2" label="移交日期" />
<el-table-column prop="archiveNo" label="项目号/档号" />
<el-table-column prop="maintitle" label="题名" />
<el-table-column v-if="inventType===4" prop="reason2" label="成文日期" />
<el-table-column v-if="inventType===4" prop="reason2" label="保管期限" />
</el-table> </el-table>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
const data = [{}, {}]
import { FetchBusinessFlowDetails } from '@/api/archivesManage/library'
export default { export default {
name: 'Detail', name: 'Detail',
components: { }, components: { },
props: { props: {
inventType: { inventType: {
type: Number, type: Number,
default: 1
default: 3
} }
}, },
data() { data() {
return { return {
rowCurrent: null,
detialVisible: false, detialVisible: false,
baseInfo: null,
tableData: [] tableData: []
} }
}, },
computed: { computed: {
detialTitle() { detialTitle() {
if (this.inventType === 1) {
if (this.inventType === 3) {
return '开放清册详情' return '开放清册详情'
} else if (this.inventType === 2) {
} else if (this.inventType === 4) {
return '销毁清册详情' return '销毁清册详情'
} else if (this.inventType === 3) {
} else if (this.inventType === 6) {
return '移交清册详情' return '移交清册详情'
} }
return '' return ''
@ -63,9 +70,27 @@ export default {
created() { created() {
}, },
mounted() { mounted() {
this.tableData = data
}, },
methods: { methods: {
opened() {
this.getBusinessFlowDetails()
},
getBusinessFlowDetails() {
const params = {
'businessId': this.rowCurrent.id
}
FetchBusinessFlowDetails(params).then((res) => {
if (res.code !== 500) {
console.log(res)
this.baseInfo = res.businessFlow
this.tableData = res.details
} else {
this.$message.error('获取数据失败')
}
}).catch(err => {
console.log(err)
})
}
} }
} }
</script> </script>

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

@ -537,6 +537,8 @@ export default {
this.isDesFormType = 'arcives' this.isDesFormType = 'arcives'
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.previewForm.archivesType = 'add' this.$refs.previewForm.archivesType = 'add'
console.log('active', this.activeIndex)
this.$refs.previewForm.activeIndex = this.activeIndex
this.$refs.previewForm.FetchNoFormatField(this.selectedCategory.id) this.$refs.previewForm.FetchNoFormatField(this.selectedCategory.id)
}) })
}) })

15
src/views/components/archivesListModule/index.vue

@ -12,7 +12,8 @@
@cell-dblclick="tableDoubleClick" @cell-dblclick="tableDoubleClick"
> >
<el-table-column type="index" label="序号" width="55" align="center" /> <el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column :label="selectedCategory.arrangeType === 1 ? '原文':'卷内'" prop="child" width="55" align="center">
<el-table-column v-if="isCase" prop="child" label="子条数目" align="center" width="100" />
<el-table-column v-else :label="selectedCategory.arrangeType === 1 ? '原文':'卷内'" prop="child" width="55" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.child === '' ? 0 : scope.row.child }} {{ scope.row.child === '' ? 0 : scope.row.child }}
</template> </template>
@ -69,6 +70,10 @@ export default {
isCollect: { isCollect: {
type: Boolean, type: Boolean,
default: true default: true
},
isCase: {
type: Boolean,
default: false
} }
}, },
data() { data() {
@ -80,7 +85,8 @@ export default {
arcId: null, arcId: null,
isDetail: false, isDetail: false,
parentId: null, parentId: null,
detailLevel: null
detailLevel: null,
caseCategoryId: null
} }
}, },
watch: { watch: {
@ -110,6 +116,11 @@ export default {
categoryId: this.selectedCategory.id, categoryId: this.selectedCategory.id,
categoryLevel: this.detailLevel categoryLevel: this.detailLevel
} }
} else if (this.isCase) {
params = {
categoryId: this.caseCategoryId,
categoryLevel: this.collectLevel
}
} else { } else {
params = { params = {
categoryId: this.selectedCategory.id, categoryId: this.selectedCategory.id,

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

@ -221,7 +221,8 @@ export default {
fileJsonString: null, fileJsonString: null,
mergeFileArcIds: null, mergeFileArcIds: null,
mergeFileCategory: null, mergeFileCategory: null,
archivesType: null
archivesType: null,
activeIndex: null
} }
}, },
computed: { computed: {
@ -804,7 +805,7 @@ export default {
'categoryLevel': 2, 'categoryLevel': 2,
'jsonString': JSON.stringify(this.addOrUpdateForm) 'jsonString': JSON.stringify(this.addOrUpdateForm)
} }
} else if (this.selectedCategory.arrangeType === 3 && this.collectLevel === 3 && this.archivesType === 'add') {
} else if (this.selectedCategory.arrangeType === 3 && this.activeIndex === 1 && this.archivesType === 'add') {
// parentsId === null // parentsId === null
params = { params = {
'archivesId': this.arcId, 'archivesId': this.arcId,

Loading…
Cancel
Save