Browse Source

盒管理/装盒系列

master
xuhuajiao 9 months ago
parent
commit
1759db50b1
  1. 10
      src/api/archivesKeeping/caseManage.js
  2. 16
      src/views/archiveKeeping/caseManage/caseList/index.vue
  3. 69
      src/views/archiveKeeping/caseManage/caseList/module/detailDialog.vue
  4. 7
      src/views/archiveKeeping/caseManage/caseList/module/form.vue
  5. 12
      src/views/archivesManage/managementLibrary/index.vue
  6. 32
      src/views/archivesManage/managementLibrary/module/collectHeader.vue
  7. 47
      src/views/archivesManage/managementLibrary/module/packingBox/index.vue
  8. 10
      src/views/collectReorganizi/collectionLibrary/anjuan/tableList.vue
  9. 17
      src/views/collectReorganizi/collectionLibrary/index.vue
  10. 10
      src/views/collectReorganizi/collectionLibrary/juannei/index.vue
  11. 1
      src/views/collectReorganizi/collectionLibrary/mixins/index.js
  12. 24
      src/views/collectReorganizi/collectionLibrary/module/collectHeader.vue
  13. 47
      src/views/collectReorganizi/collectionLibrary/module/packingBox/index.vue
  14. 22
      src/views/components/category/PreviewForm.vue

10
src/api/archivesKeeping/caseManage.js

@ -97,4 +97,12 @@ export function getNewCaseCode(params) {
}) })
} }
export default { add, edit, del, unpacking, findInCase, getNewBarcode, getNewCaseCode }
// 点击档案盒内案卷查看案卷在档案盒内卷内信息
export function findArchiveInCase(params) {
return request({
url: 'api/archivesDeposit/findArchiveInCase' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export default { add, edit, del, unpacking, findInCase, getNewBarcode, getNewCaseCode, findArchiveInCase }

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

@ -80,10 +80,17 @@
</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="collectFormal" label="所在库" align="center" min-width="100">
<template slot-scope="scope">
{{ scope.row.collectFormal===1 ? '收集库' : (scope.row.collectFormal===3 ? '管理库':'') }}
</template>
</el-table-column>
<el-table-column prop="cnName" label="门类" align="center" min-width="120" :show-overflow-tooltip="true" />
<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="caseCode" label="盒号" :show-overflow-tooltip="true" align="center" min-width="180" />
<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="140" />
<el-table-column label="存放位置" align="center" min-width="300"> <el-table-column label="存放位置" align="center" min-width="300">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="!scope.row.folderLocationDetails">-</span> <span v-if="!scope.row.folderLocationDetails">-</span>
@ -92,9 +99,9 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="update_time" width="175" label="操作时间" align="center">
<el-table-column prop="boxingTime" width="175" label="操作时间" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<div>{{ scope.row.update_time | parseTime }}</div>
<div>{{ scope.row.boxingTime | parseTime }}</div>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -311,7 +318,6 @@ export default {
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_o this.$refs.detailDom.tableData = res.archives_o
this.$refs.detailDom.queryFields = res.field_o this.$refs.detailDom.queryFields = res.field_o

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

@ -9,13 +9,21 @@
</ul> </ul>
<div v-if="caseTabIndex===0" class="base-info"> <div v-if="caseTabIndex===0" class="base-info">
<ul> <ul>
<li>
<span>所在库</span>
<p>{{ rowData && rowData.collectFormal===1 ? '收集库' : (rowData.collectFormal===3 ? '管理库':'') }}</p>
</li>
<li>
<span>门类</span>
<p>{{ rowData && rowData.cnName }}</p>
</li>
<li> <li>
<span>盒号</span> <span>盒号</span>
<p>{{ rowData && rowData.caseCode }}</p> <p>{{ rowData && rowData.caseCode }}</p>
</li> </li>
<li> <li>
<span>状态</span> <span>状态</span>
<p>{{ rowData && rowData.depositNum ? '已装':'' }}</p>
<p>{{ rowData && rowData.depositNum ? '已装':'未装' }}</p>
</li> </li>
<li> <li>
<span>盒名称</span> <span>盒名称</span>
@ -91,13 +99,7 @@
</li> </li>
</ul> </ul>
</div> </div>
<!-- <ArchivesListModule
v-show="caseTabIndex===1"
ref="archivesListModuleRef"
:collect-level="collectLevel"
:selections="tableData"
:is-case="true"
/> -->
<div v-if="caseTabIndex===1 && tableData.length !== 0 && queryFields.includes('record_no')" class="double-click-btn"><i class="iconfont icon-zhuyi-lan" /><span>双击列表数据查看详情</span></div>
<el-table <el-table
v-show="caseTabIndex===1" v-show="caseTabIndex===1"
ref="table" ref="table"
@ -105,6 +107,7 @@
style="width: 100%;" style="width: 100%;"
row-key="id" row-key="id"
height="342px" height="342px"
@cell-dblclick="tableDoubleClick"
> >
<el-table-column type="index" label="序号" width="55" align="center" /> <el-table-column type="index" label="序号" width="55" align="center" />
<template v-for="(field, index) in queryFields"> <template v-for="(field, index) in queryFields">
@ -115,16 +118,43 @@
:label="queryCnFields[index]" :label="queryCnFields[index]"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
:width="field === 'archive_no' ? '260px' : '120px'" :width="field === 'archive_no' ? '260px' : '120px'"
:formatter="formatCell"
/> />
</template> </template>
</el-table> </el-table>
</div> </div>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog class="detail-dialog" append-to-body :close-on-click-modal="false" :modal-append-to-body="false" title="文件列表" :visible.sync="fileVisible">
<div class="setting-dialog">
<el-table
ref="table"
:data="fileTableData"
style="width: 100%;"
row-key="id"
height="342px"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<template v-for="(field, index) in queryFields">
<el-table-column
v-if="field !== 'id'"
:key="index"
:prop="field"
:label="queryCnFields[index]"
:show-overflow-tooltip="true"
:width="field === 'archive_no' ? '260px' : '120px'"
:formatter="formatCell"
/>
</template>
</el-table>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { findArchiveInCase } from '@/api/archivesKeeping/caseManage'
export default { export default {
data() { data() {
return { return {
@ -135,12 +165,33 @@ export default {
collectLevel: null, collectLevel: null,
selectedItem: null, selectedItem: null,
queryCnFields: null, queryCnFields: null,
queryFields: null
queryFields: null,
fileVisible: false,
fileTableData: []
} }
}, },
methods: { methods: {
changeActiveTab(data) { changeActiveTab(data) {
this.caseTabIndex = data this.caseTabIndex = data
},
formatCell(row, column) {
if (row[column.property] === 'null' || row[column.property] === null) {
return ''
} else {
return row[column.property]
}
},
tableDoubleClick(row) {
if (row.id) {
const params = {
'caseId': this.rowData.id, // id
'archivesId': row.id// id
}
findArchiveInCase(params).then(res => {
this.fileTableData = res.archives_o
this.fileVisible = true
})
}
} }
} }
} }

7
src/views/archiveKeeping/caseManage/caseList/module/form.vue

@ -9,7 +9,7 @@
<el-input v-model="form.caseCode" placeholder="请输入" disabled /> <el-input v-model="form.caseCode" placeholder="请输入" disabled />
</el-form-item> </el-form-item>
<div v-if="crud.status.edit === 1" class="form-fixed-status"> <div v-if="crud.status.edit === 1" class="form-fixed-status">
<span class="row-state end-state">已装</span>
<span v-if="form.depositNum" class="row-state end-state">已装</span>
<span class="row-state end-state">已入</span> <span class="row-state end-state">已入</span>
</div> </div>
</el-row> </el-row>
@ -134,7 +134,8 @@
import { form } from '@crud/crud' import { form } from '@crud/crud'
import { caseNameIsRepeat, barcodeIsRepeat } from '@/api/archivesKeeping/caseManage' import { caseNameIsRepeat, barcodeIsRepeat } from '@/api/archivesKeeping/caseManage'
import { FetchDictionaryTree } from '@/api/system/dict' import { FetchDictionaryTree } from '@/api/system/dict'
import { FetchFondsAll } from '@/api/system/fonds'
// import { FetchFondsAll } from '@/api/system/fonds'
import { FetchInitSearchFonds } from '@/api/archiveUtilize/archiveUtilize'
const defaultForm = { const defaultForm = {
id: null, id: null,
@ -219,7 +220,7 @@ export default {
}, },
methods: { methods: {
getFondsDatas() { getFondsDatas() {
FetchFondsAll().then(res => {
FetchInitSearchFonds().then(res => {
this.fondsOptions = res this.fondsOptions = res
}) })
}, },

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

@ -228,6 +228,7 @@ export default {
label: item.fondName, label: item.fondName,
isType: 0, isType: 0,
id: item.fondsId, id: item.fondsId,
fondsNo: item.fondsNo,
children: item.categoryList.map(category => { children: item.categoryList.map(category => {
return { return {
label: category.cnName, label: category.cnName,
@ -235,14 +236,16 @@ export default {
arrangeType: category.arrangeType, arrangeType: category.arrangeType,
isType: category.isType, isType: category.isType,
fondsId: item.fondsId, fondsId: item.fondsId,
children: this.transformChildren(category.children, item.fondsId)
fondName: item.fondName,
fondsNo: item.fondsNo,
children: this.transformChildren(category.children, item.fondsId, item.fondName, item.fondsNo)
} }
}) })
} }
}) })
}, },
// //
transformChildren(children, fondsId) {
transformChildren(children, fondsId, fondName, fondsNo) {
return children.map(child => { return children.map(child => {
return { return {
label: child.cnName, label: child.cnName,
@ -252,7 +255,9 @@ export default {
code: child.code, code: child.code,
arrangeType: child.arrangeType, arrangeType: child.arrangeType,
fondsId: fondsId, fondsId: fondsId,
children: child.children.length ? this.transformChildren(child.children, fondsId) : []
fondName: fondName,
fondsNo: fondsNo,
children: child.children.length ? this.transformChildren(child.children, fondsId, fondName, fondsNo) : []
} }
}) })
}, },
@ -280,7 +285,6 @@ export default {
}, },
[CRUD.HOOK.afterRefresh]() { [CRUD.HOOK.afterRefresh]() {
this.crud.data = this.filterData(this.transformData(this.crud.data)) this.crud.data = this.filterData(this.transformData(this.crud.data))
console.log('this.crud.data', this.crud.data)
this.$nextTick(() => { this.$nextTick(() => {
let currentKey let currentKey
if (localStorage.getItem('currentArchivesKey') !== null) { if (localStorage.getItem('currentArchivesKey') !== null) {

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

@ -165,6 +165,7 @@
:is-des-form-type="isDesFormType" :is-des-form-type="isDesFormType"
:is-title-type="isTitleType" :is-title-type="isTitleType"
:collect-level="collectLevel" :collect-level="collectLevel"
:category-menu="categoryMenu"
@close-dialog="closeDialog" @close-dialog="closeDialog"
/> />
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -207,7 +208,7 @@
<script> <script>
import { crud } from '@crud/crud' import { crud } from '@crud/crud'
import { manageLibraryCrud } from '../mixins/index' import { manageLibraryCrud } from '../mixins/index'
import { FetchInitCategoryInputFieldByPid } from '@/api/system/category/category'
import { FetchInitCategoryInputFieldByPid, FetchCategoryMenu } from '@/api/system/category/category'
import { FetchDetailsById, FetchCompleteDelArchives, FetchRestoreArchives } from '@/api/collect/collect' import { FetchDetailsById, FetchCompleteDelArchives, FetchRestoreArchives } from '@/api/collect/collect'
import { FetchArchivesClassTree } from '@/api/system/archivesClass' import { FetchArchivesClassTree } from '@/api/system/archivesClass'
@ -266,6 +267,7 @@ export default {
more: ['admin', 'archives:more'] more: ['admin', 'archives:more']
}, },
value: null, value: null,
categoryMenu: [],
statusOptions: [ statusOptions: [
{ {
label: '标签状态', label: '标签状态',
@ -472,8 +474,14 @@ export default {
if (localStorage.getItem('statusBarFixedType') !== 'undefined') { if (localStorage.getItem('statusBarFixedType') !== 'undefined') {
this.parentsData.fixedStatusBar = JSON.parse(localStorage.getItem('statusBarFixedType')) === true this.parentsData.fixedStatusBar = JSON.parse(localStorage.getItem('statusBarFixedType')) === true
} }
this.getCategoryDataTree()
}, },
methods: { methods: {
getCategoryDataTree() {
FetchCategoryMenu().then(res => {
this.categoryMenu = res
})
},
resetQuery() { resetQuery() {
this.selectStatus = [] this.selectStatus = []
this.query = { this.query = {
@ -519,13 +527,15 @@ export default {
this.formTitle = '新增' + this.collectTitle this.formTitle = '新增' + this.collectTitle
this.arcId = null this.arcId = null
} else if (type === 'edit') { } else if (type === 'edit') {
console.log(this.selections)
if (this.selections.length === 0) { if (this.selections.length === 0) {
this.$message({ message: '您还未勾选需要操作的条目,请先确认!', offset: 8 }) this.$message({ message: '您还未勾选需要操作的条目,请先确认!', offset: 8 })
return false return false
} else if (this.selections.length > 1) { } else if (this.selections.length > 1) {
this.$message({ message: '编辑操作只可勾选唯一目标条目,请先确认!', offset: 8 }) this.$message({ message: '编辑操作只可勾选唯一目标条目,请先确认!', offset: 8 })
return false return false
} else if (this.selections[0].process_status !== 1) {
this.$message({ message: '当前所选的档案处于流程中,不可操作编辑,请先确认!', offset: 8 })
return false
} }
this.arcId = this.selections[0].id this.arcId = this.selections[0].id
this.formTitle = '编辑' + this.collectTitle this.formTitle = '编辑' + this.collectTitle
@ -591,7 +601,11 @@ export default {
this.$message({ message: '只可勾选唯一目标条目,请先确认!', offset: 8 }) this.$message({ message: '只可勾选唯一目标条目,请先确认!', offset: 8 })
return false return false
} }
const isHasFillFormal = this.selections.some(item => item.process_status !== 1)
if (isHasFillFormal) {
this.$message({ message: '您所选的条目有正在流程中,不可操作绑定标签,请先确认!', offset: 8 })
return false
}
if (data[0].tid) { if (data[0].tid) {
// this.$refs.bindingTag.isBinding = true // this.$refs.bindingTag.isBinding = true
this.$refs.bindingTag.tidCode = data[0].tid this.$refs.bindingTag.tidCode = data[0].tid
@ -691,7 +705,6 @@ export default {
} }
FetchRestoreArchives(params).then((res) => { FetchRestoreArchives(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
console.log(res)
this.$message({ message: res, type: 'success', offset: 8 }) this.$message({ message: res, type: 'success', offset: 8 })
this.handleSearch(this.collectLevel) this.handleSearch(this.collectLevel)
} else { } else {
@ -743,6 +756,11 @@ export default {
this.$message({ message: '您还未勾选需要操作的条目,请先确认!', offset: 8 }) this.$message({ message: '您还未勾选需要操作的条目,请先确认!', offset: 8 })
return false return false
} }
const isHasFillFormal = this.selections.some(item => item.process_status !== 1)
if (isHasFillFormal) {
this.$message({ message: '您所选的条目有正在流程中,不可操作装盒,请先确认!', offset: 8 })
return false
}
if (this.selectedCategory.arrangeType === 2) { if (this.selectedCategory.arrangeType === 2) {
if (type === 1) { if (type === 1) {
if (this.selections.length > 1) { if (this.selections.length > 1) {
@ -765,7 +783,6 @@ export default {
// this.$message('') // this.$message('')
// return false // return false
// } // }
console.log('box', this.parentsData.listCategory)
this.$refs.packingBox.packingVisible = true this.$refs.packingBox.packingVisible = true
this.$refs.packingBox.isPackingOrPartType = type this.$refs.packingBox.isPackingOrPartType = type
this.$refs.packingBox.packFileCategory = this.parentsData.listCategory this.$refs.packingBox.packFileCategory = this.parentsData.listCategory
@ -821,6 +838,11 @@ export default {
this.$message({ message: '您还未勾选需要操作的条目,请先确认!', offset: 8 }) this.$message({ message: '您还未勾选需要操作的条目,请先确认!', offset: 8 })
return false return false
} }
const isHasFillFormal = this.selections.some(item => item.process_status !== 1)
if (isHasFillFormal) {
this.$message({ message: '您所选的条目有正在流程中,不可操作档案退回,请先确认!', offset: 8 })
return false
}
this.$confirm('此移出将把会所选条目退回到收集库' + '<span>你是否还要继续?</span>', '提示', { this.$confirm('此移出将把会所选条目退回到收集库' + '<span>你是否还要继续?</span>', '提示', {
confirmButtonText: '继续', confirmButtonText: '继续',
cancelButtonText: '取消', cancelButtonText: '取消',

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

@ -260,6 +260,10 @@ export default {
'tid': this.tid, 'tid': this.tid,
'caseCode': this.caseCode, 'caseCode': this.caseCode,
'barcode': this.barcode, 'barcode': this.barcode,
'collectFormal': this.selections[0].collect_formal,
'caseType': this.selectedCategory.arrangeType === 2 ? '2' : '3', // 2. 3.
'caseFonds': this.selectedCategory.fondsNo, //
'categoryId': this.selectedCategory.id, //
'page': 0, 'page': 0,
'size': 10 'size': 10
} }
@ -268,8 +272,8 @@ export default {
this.tableData = res.content this.tableData = res.content
}) })
}, },
async getPackingFileList() {
const parentsId = this.selections[0].id
async getPackingFileList(id) {
const parentsId = id
const params = { const params = {
'categoryId': this.selectedCategory.id, 'categoryId': this.selectedCategory.id,
'categoryLevel': 3, 'categoryLevel': 3,
@ -291,37 +295,48 @@ export default {
'securityClass': null, 'securityClass': null,
'organizationMatter': null 'organizationMatter': null
} }
await FetchInitContorlView(params).then(data => {
const data = await FetchInitContorlView(params)
if (data) { if (data) {
this.packingData = data.list.content
if (this.isPackingOrPartType === 1 && this.selectedCategory.arrangeType === 2) {
this.archivesTable = data.list.content this.archivesTable = data.list.content
}
this.packingData = data.list.content
} else {
data.list.content.forEach(item => {
item.archivesParentsId = id
}) })
return data.list.content
}
}
}, },
// api // api
async handleCartoning(row) { async handleCartoning(row) {
let jnCategoryId let jnCategoryId
let archivesParentsId
if (this.selectedCategory.arrangeType === 1) { if (this.selectedCategory.arrangeType === 1) {
this.packingData = this.selections this.packingData = this.selections
jnCategoryId = this.packFileCategory.id jnCategoryId = this.packFileCategory.id
} else { } else {
await this.getPackingFileList()
const combinedData = []
const promises = []
this.selections.forEach(async(item) => {
const promise = this.getPackingFileList(item.id)
.then(data => {
combinedData.push(...data)
})
promises.push(promise)
})
await Promise.all(promises)
this.packingData = combinedData
jnCategoryId = this.packFileCategory.id jnCategoryId = this.packFileCategory.id
// if (this.selectedCategory.isType === 2) {
// jnCategoryId = this.selectedCategory.children[0].children[0].id
// } else {
// jnCategoryId = this.selectedCategory.children[0].id
// }
archivesParentsId = this.selections[0].id
} }
const arrParams = this.packingData.map(item => {
const arrParams = this.packingData.map((item) => {
const json = {} const json = {}
json.archivesId = item.id json.archivesId = item.id
if (this.selectedCategory.arrangeType === 1) { if (this.selectedCategory.arrangeType === 1) {
json.archivesParentsId = item.id json.archivesParentsId = item.id
} else { } else {
json.archivesParentsId = archivesParentsId
json.archivesParentsId = item.archivesParentsId
} }
json.caseId = row.id json.caseId = row.id
json.caseName = row.caseName json.caseName = row.caseName
@ -420,7 +435,7 @@ export default {
this.arrySort.push(item.fieldName + ',' + item.displayOrderBy) this.arrySort.push(item.fieldName + ',' + item.displayOrderBy)
} }
}) })
this.getPackingFileList()
this.getPackingFileList(this.selections[0].id)
} }
}) })
} }

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

@ -40,9 +40,15 @@
{{ scope.row[field.fieldName] }} {{ scope.row[field.fieldName] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="!isRecycle && !(isTitleType === 3 && activeIndex === 1 && selectedCategory.arrangeType !== 1 )" label="归档审批" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<el-table-column v-if="!isRecycle" label="装盒" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template slot-scope="scope"> <template slot-scope="scope">
<span :class="['row-state', 'row-warehousing', scope.row.collect_formal===2 ? 'state-active' : '' ]">{{ scope.row.collect_formal===2 ? '锁定': '-' }}</span>
<!-- 未装 / 已装 -->
<span :class="['row-state', 'row-packing', scope.row.case_no ? 'state-active' : '' ]">{{ scope.row.case_no ? '已装': '未装' }}</span>
</template>
</el-table-column>
<el-table-column v-if="!isRecycle && !(isTitleType === 3 && activeIndex === 1 && selectedCategory.arrangeType !== 1 )" label="审批锁定" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template slot-scope="scope">
<span :class="['row-state', 'row-warehousing', scope.row.collect_formal===2 ? 'state-active' : '' ]">{{ scope.row.collect_formal===2 ? '归档': '空闲' }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

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

@ -148,7 +148,8 @@ export default {
}, },
isTabFile: false, isTabFile: false,
fixedStatusBar: false, fixedStatusBar: false,
topLevelNode: null
topLevelNode: null,
listCategory: null
} }
}, },
computed: { computed: {
@ -227,6 +228,7 @@ export default {
label: item.fondName, label: item.fondName,
isType: 0, isType: 0,
id: item.fondsId, id: item.fondsId,
fondsNo: item.fondsNo,
children: item.categoryList.map(category => { children: item.categoryList.map(category => {
return { return {
label: category.cnName, label: category.cnName,
@ -234,14 +236,16 @@ export default {
arrangeType: category.arrangeType, arrangeType: category.arrangeType,
isType: category.isType, isType: category.isType,
fondsId: item.fondsId, fondsId: item.fondsId,
children: this.transformChildren(category.children, item.fondsId)
fondName: item.fondName,
fondsNo: item.fondsNo,
children: this.transformChildren(category.children, item.fondsId, item.fondName, item.fondsNo)
} }
}) })
} }
}) })
}, },
// //
transformChildren(children, fondsId) {
transformChildren(children, fondsId, fondName, fondsNo) {
return children.map(child => { return children.map(child => {
return { return {
label: child.cnName, label: child.cnName,
@ -251,7 +255,9 @@ export default {
code: child.code, code: child.code,
arrangeType: child.arrangeType, arrangeType: child.arrangeType,
fondsId: fondsId, fondsId: fondsId,
children: child.children.length ? this.transformChildren(child.children, fondsId) : []
fondName: fondName,
fondsNo: fondsNo,
children: child.children.length ? this.transformChildren(child.children, fondsId, fondName, fondsNo) : []
} }
}) })
}, },
@ -266,7 +272,6 @@ export default {
}, },
[CRUD.HOOK.afterRefresh]() { [CRUD.HOOK.afterRefresh]() {
this.crud.data = this.filterData(this.transformData(this.crud.data)) this.crud.data = this.filterData(this.transformData(this.crud.data))
console.log('this.crud.data', this.crud.data)
this.$nextTick(() => { this.$nextTick(() => {
let currentKey let currentKey
if (localStorage.getItem('currentArchivesKey') !== null) { if (localStorage.getItem('currentArchivesKey') !== null) {
@ -656,7 +661,7 @@ export default {
'organ_or_function': null, // 'organ_or_function': null, //
'fonds_no': null // 'fonds_no': null //
} }
this.getFonds()
this.smartQuery.fonds_no = this.selectedCategory.fondsId
this.$refs.classifyTree.setCheckedKeys([]) this.$refs.classifyTree.setCheckedKeys([])
var treeNodeList = this.$refs.classifyTree.store._getAllNodes() var treeNodeList = this.$refs.classifyTree.store._getAllNodes()
for (var i = 0; i < treeNodeList.length; i++) { for (var i = 0; i < treeNodeList.length; i++) {

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

@ -48,9 +48,15 @@
{{ scope.row[field.fieldName] }} {{ scope.row[field.fieldName] }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column v-if="!isRecycle" label="归档审批" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<el-table-column v-if="!isRecycle" label="装盒" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template slot-scope="scope"> <template slot-scope="scope">
<span :class="['row-state', 'row-warehousing', scope.row.collect_formal===2 ? 'state-active' : '' ]">{{ scope.row.collect_formal===2 ? '锁定': '-' }}</span>
<!-- 未装 / 已装 -->
<span :class="['row-state', 'row-packing', scope.row.case_no ? 'state-active' : '' ]">{{ scope.row.case_no ? '已装': '未装' }}</span>
</template>
</el-table-column>
<el-table-column v-if="!isRecycle" label="审批锁定" width="88" align="center" :fixed="parentsData.fixedStatusBar ? false : 'right' ">
<template slot-scope="scope">
<span :class="['row-state', 'row-warehousing', scope.row.collect_formal===2 ? 'state-active' : '' ]">{{ scope.row.collect_formal===2 ? '归档': '空闲' }}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

1
src/views/collectReorganizi/collectionLibrary/mixins/index.js

@ -130,6 +130,7 @@ export const collectionLibraryCrud = {
} }
FetchInitCategoryView(params).then((res) => { FetchInitCategoryView(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
this.parentsData.listCategory = res.category
if (categoryLevel === 1) { if (categoryLevel === 1) {
// 项目 // 项目
const projectObj = this.parentsData.$refs.projectEle const projectObj = this.parentsData.$refs.projectEle

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

@ -106,7 +106,7 @@
<el-menu-item index="2-12" @click="handleQuickPaper">快速组卷</el-menu-item> <el-menu-item index="2-12" @click="handleQuickPaper">快速组卷</el-menu-item>
<el-menu-item index="2-13" @click="handlePaper">手工组卷</el-menu-item> <el-menu-item index="2-13" @click="handlePaper">手工组卷</el-menu-item>
</el-menu-item-group> </el-menu-item-group>
<el-menu-item-group class="collect-submenu-group submenu-tree">
<el-menu-item-group v-if="isTitleType !== 4" 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>
@ -154,6 +154,7 @@
:is-des-form-type="isDesFormType" :is-des-form-type="isDesFormType"
:is-title-type="isTitleType" :is-title-type="isTitleType"
:collect-level="collectLevel" :collect-level="collectLevel"
:category-menu="categoryMenu"
@close-dialog="closeDialog" @close-dialog="closeDialog"
/> />
<div slot="footer" class="dialog-footer" style="margin-top: 85px !important;"> <div slot="footer" class="dialog-footer" style="margin-top: 85px !important;">
@ -223,7 +224,7 @@
<script> <script>
import CRUD, { crud } from '@crud/crud' import CRUD, { crud } from '@crud/crud'
import { collectionLibraryCrud } from '../mixins/index' import { collectionLibraryCrud } from '../mixins/index'
import { FetchInitCategoryInputFieldByPid } from '@/api/system/category/category'
import { FetchInitCategoryInputFieldByPid, FetchCategoryMenu } from '@/api/system/category/category'
import { FetchDetailsById, collectDel, FetchRemoveArchivesSingle, FetchDeleteArchivesFile, FetchUpdateArchivesNo, FetchDisbandArchives, FetchReturnReDocument, FetchCompleteDelArchives, FetchRestoreArchives } from '@/api/collect/collect' import { FetchDetailsById, collectDel, FetchRemoveArchivesSingle, FetchDeleteArchivesFile, FetchUpdateArchivesNo, FetchDisbandArchives, FetchReturnReDocument, FetchCompleteDelArchives, FetchRestoreArchives } from '@/api/collect/collect'
import { FetchArchivesClassTree } from '@/api/system/archivesClass' import { FetchArchivesClassTree } from '@/api/system/archivesClass'
import Treeselect from '@riophae/vue-treeselect' import Treeselect from '@riophae/vue-treeselect'
@ -297,7 +298,8 @@ export default {
arcId: null, arcId: null,
quickPaper: false, quickPaper: false,
quickPaperArcId: [], quickPaperArcId: [],
totalSumAll: 0
totalSumAll: 0,
categoryMenu: []
} }
}, },
computed: { computed: {
@ -395,7 +397,6 @@ export default {
console.log('isTitleType', newValue) console.log('isTitleType', newValue)
}, },
activeIndex: function(newValue, oldValue) { activeIndex: function(newValue, oldValue) {
console.log('activeIndex', newValue)
if (newValue === 1) { if (newValue === 1) {
this.parentsData.isTabFile = true this.parentsData.isTabFile = true
} else { } else {
@ -407,8 +408,14 @@ export default {
}, },
mounted() { mounted() {
this.getInitArchivesClass() this.getInitArchivesClass()
this.getCategoryDataTree()
}, },
methods: { methods: {
getCategoryDataTree() {
FetchCategoryMenu().then(res => {
this.categoryMenu = res
})
},
resetQuery() { resetQuery() {
this.query = { this.query = {
'search': null, 'search': null,
@ -450,8 +457,6 @@ export default {
// -form/-api // -form/-api
handleForm(type, isPaper) { handleForm(type, isPaper) {
if (type === 'add') { if (type === 'add') {
console.log('parentsProjectId', this.parentsData.parentsProjectId)
console.log(this.parentsData.parentsAnjuanRow)
if (this.parentsData.parentsProjectId && this.isTitleType === 3) { if (this.parentsData.parentsProjectId && this.isTitleType === 3) {
console.log('项目下的案卷') console.log('项目下的案卷')
} else { } else {
@ -521,7 +526,6 @@ 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.activeIndex = this.activeIndex
this.$refs.previewForm.FetchNoFormatField(this.selectedCategory.id) this.$refs.previewForm.FetchNoFormatField(this.selectedCategory.id)
}) })
@ -1087,6 +1091,11 @@ export default {
this.$message({ message: '您还未勾选需要操作的条目,请先确认!', offset: 8 }) this.$message({ message: '您还未勾选需要操作的条目,请先确认!', offset: 8 })
return false return false
} }
const isHasFillFormal = this.selections.some(item => item.collect_formal === 2)
if (isHasFillFormal) {
this.$message({ message: '您所选的条目有正在归档流程中,不可操作装盒,请先确认!!', offset: 8 })
return false
}
if (this.selectedCategory.arrangeType === 2) { if (this.selectedCategory.arrangeType === 2) {
if (type === 1) { if (type === 1) {
if (this.selections.length > 1) { if (this.selections.length > 1) {
@ -1165,7 +1174,6 @@ export default {
} }
FetchRestoreArchives(params).then((res) => { FetchRestoreArchives(params).then((res) => {
if (res.code !== 500) { if (res.code !== 500) {
console.log(res)
if (res.includes('成功')) { if (res.includes('成功')) {
this.$message({ message: res, type: 'success', offset: 8 }) this.$message({ message: res, type: 'success', offset: 8 })
} else { } else {

47
src/views/collectReorganizi/collectionLibrary/module/packingBox/index.vue

@ -259,6 +259,10 @@ export default {
'tid': this.tid, 'tid': this.tid,
'caseCode': this.caseCode, 'caseCode': this.caseCode,
'barcode': this.barcode, 'barcode': this.barcode,
'collectFormal': this.selections[0].collect_formal,
'caseType': this.selectedCategory.arrangeType === 2 ? '2' : '3', // 2. 3.
'caseFonds': this.selectedCategory.fondsNo, //
'categoryId': this.selectedCategory.id, //
'page': 0, 'page': 0,
'size': 10 'size': 10
} }
@ -267,8 +271,8 @@ export default {
this.tableData = res.content this.tableData = res.content
}) })
}, },
async getPackingFileList() {
const parentsId = this.selections[0].id
async getPackingFileList(id) {
const parentsId = id
const params = { const params = {
'categoryId': this.selectedCategory.id, 'categoryId': this.selectedCategory.id,
'categoryLevel': 3, 'categoryLevel': 3,
@ -290,37 +294,48 @@ export default {
'securityClass': null, 'securityClass': null,
'organizationMatter': null 'organizationMatter': null
} }
await FetchInitCategoryView(params).then(data => {
const data = await FetchInitCategoryView(params)
if (data) { if (data) {
this.packingData = data.list.content
if (this.isPackingOrPartType === 1 && this.selectedCategory.arrangeType === 2) {
this.archivesTable = data.list.content this.archivesTable = data.list.content
}
this.packingData = data.list.content
} else {
data.list.content.forEach(item => {
item.archivesParentsId = id
}) })
return data.list.content
}
}
}, },
// api // api
async handleCartoning(row) { async handleCartoning(row) {
let jnCategoryId let jnCategoryId
let archivesParentsId
if (this.selectedCategory.arrangeType === 1) { if (this.selectedCategory.arrangeType === 1) {
this.packingData = this.selections this.packingData = this.selections
jnCategoryId = this.packFileCategory.id jnCategoryId = this.packFileCategory.id
} else { } else {
await this.getPackingFileList()
const combinedData = []
const promises = []
this.selections.forEach(async(item) => {
const promise = this.getPackingFileList(item.id)
.then(data => {
combinedData.push(...data)
})
promises.push(promise)
})
await Promise.all(promises)
this.packingData = combinedData
jnCategoryId = this.packFileCategory.id jnCategoryId = this.packFileCategory.id
// if (this.selectedCategory.isType === 2) {
// jnCategoryId = this.selectedCategory.children[0].children[0].id
// } else {
// jnCategoryId = this.selectedCategory.children[0].id
// }
archivesParentsId = this.selections[0].id
} }
const arrParams = this.packingData.map(item => {
const arrParams = this.packingData.map((item) => {
const json = {} const json = {}
json.archivesId = item.id json.archivesId = item.id
if (this.selectedCategory.arrangeType === 1) { if (this.selectedCategory.arrangeType === 1) {
json.archivesParentsId = item.id json.archivesParentsId = item.id
} else { } else {
json.archivesParentsId = archivesParentsId
json.archivesParentsId = item.archivesParentsId
} }
json.caseId = row.id json.caseId = row.id
json.caseName = row.caseName json.caseName = row.caseName
@ -419,7 +434,7 @@ export default {
this.arrySort.push(item.fieldName + ',' + item.displayOrderBy) this.arrySort.push(item.fieldName + ',' + item.displayOrderBy)
} }
}) })
this.getPackingFileList()
this.getPackingFileList(this.selections[0].id)
} }
}) })
} }

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

@ -190,6 +190,10 @@ export default {
isTitleType: { isTitleType: {
type: Number, type: Number,
default: 2 default: 2
},
categoryMenu: {
type: Array,
default: () => { return [] }
} }
}, },
@ -351,7 +355,6 @@ export default {
string += '' string += ''
} else { } else {
const fieldInfo = this.formPreviewData.find(element => element.fieldName === val.fieldName) const fieldInfo = this.formPreviewData.find(element => element.fieldName === val.fieldName)
console.log('fieldInfo', fieldInfo)
if (fieldInfo.isInputClass === 'select' || fieldInfo.isInputClass === 'popover') { if (fieldInfo.isInputClass === 'select' || fieldInfo.isInputClass === 'popover') {
if (fieldInfo.mateData === 3) { if (fieldInfo.mateData === 3) {
await FetchSonDictionaryList({ 'pid': fieldInfo.dictionaryId.id }).then(res => { await FetchSonDictionaryList({ 'pid': fieldInfo.dictionaryId.id }).then(res => {
@ -378,7 +381,6 @@ export default {
}) })
} }
if (fieldInfo.mateData === 2) { if (fieldInfo.mateData === 2) {
console.log('进来了')
let categoryId let categoryId
if (this.isDesFormType !== 'mergeFile' && this.isDesFormType !== 'arcives' && this.isDesFormType !== 'manageArcives') { if (this.isDesFormType !== 'mergeFile' && this.isDesFormType !== 'arcives' && this.isDesFormType !== 'manageArcives') {
categoryId = this.selectedCategory.pid categoryId = this.selectedCategory.pid
@ -386,9 +388,7 @@ export default {
categoryId = this.selectedCategory.id categoryId = this.selectedCategory.id
} }
await FetchArchivesClassTree({ 'categoryId': categoryId }).then(res => { await FetchArchivesClassTree({ 'categoryId': categoryId }).then(res => {
console.log('res', res)
const option = this.getClassfiyNode(res, this.addOrUpdateForm[val.fieldName]) const option = this.getClassfiyNode(res, this.addOrUpdateForm[val.fieldName])
console.log('option', option)
if (option) { if (option) {
const obj = {} const obj = {}
obj.name = val.name obj.name = val.name
@ -583,7 +583,6 @@ export default {
}, },
// tree - select // tree - select
selectTree(val) { selectTree(val) {
console.log('val111', val)
if (val.fondsNo) { if (val.fondsNo) {
this.addOrUpdateForm[this.treeCurrentFiled.fieldName] = val.fondsName this.addOrUpdateForm[this.treeCurrentFiled.fieldName] = val.fondsName
} else if (val.name) { } else if (val.name) {
@ -707,9 +706,8 @@ export default {
const targetId = this.selectedCategory.pid const targetId = this.selectedCategory.pid
targetNode = this.findNodeById(this.crud.data[0], targetId) targetNode = this.findNodeById(this.crud.data[0], targetId)
} else { } else {
targetNode = this.selectedCategory
targetNode = this.findNodeById(this.categoryMenu[0], this.selectedCategory.id)
} }
if (targetNode) { if (targetNode) {
this.$set(this.addOrUpdateForm, item.fieldName, targetNode.code) this.$set(this.addOrUpdateForm, item.fieldName, targetNode.code)
} else { } else {
@ -720,7 +718,9 @@ export default {
if (item.fieldName === 'is_entity') { if (item.fieldName === 'is_entity') {
this.$set(this.addOrUpdateForm, item.fieldName, 1) this.$set(this.addOrUpdateForm, item.fieldName, 1)
} }
if (item.fieldName === 'fonds_no') {
this.$set(this.addOrUpdateForm, item.fieldName, this.selectedCategory.fondsNo)
}
this.$set(this.rules, item.fieldName, [ this.$set(this.rules, item.fieldName, [
{ {
required: !!item.isRequired, required: !!item.isRequired,
@ -728,7 +728,6 @@ export default {
trigger: item.isInputClass === 'text' ? 'blur' : 'change' trigger: item.isInputClass === 'text' ? 'blur' : 'change'
} }
]) ])
// this.$set(this.rules, 'fileOriginal', [ // this.$set(this.rules, 'fileOriginal', [
// { // {
// required: fas, // required: fas,
@ -767,9 +766,8 @@ export default {
} }
}) })
if (this.archivesType === 'add') { if (this.archivesType === 'add') {
this.addOrUpdateForm.fonds_affiliation = this.user.fonds.id
this.addOrUpdateForm.fonds_affiliation = this.selectedCategory.fondsId
} }
console.log(this.addOrUpdateForm)
delete this.addOrUpdateForm.id delete this.addOrUpdateForm.id
this.$refs[formName].validate((valid) => { this.$refs[formName].validate((valid) => {
if (valid) { if (valid) {
@ -872,7 +870,6 @@ export default {
}) })
} else { } else {
collectEdit(params).then(res => { collectEdit(params).then(res => {
console.log(res)
if (res.code === 200) { if (res.code === 200) {
this.$message({ message: res.message, type: 'success', offset: 8 }) this.$message({ message: res.message, type: 'success', offset: 8 })
this.$emit('close-dialog', parentsId) this.$emit('close-dialog', parentsId)
@ -944,7 +941,6 @@ export default {
arrayUpload.push(json) arrayUpload.push(json)
this.fileOriginal = this.fileNames this.fileOriginal = this.fileNames
// this.$set(this.addOrUpdateForm, 'fileOriginal', this.fileNames) // this.$set(this.addOrUpdateForm, 'fileOriginal', this.fileNames)
console.log('ddd', this.fileOriginal)
this.fileJsonString = JSON.stringify(arrayUpload) this.fileJsonString = JSON.stringify(arrayUpload)
}, },

Loading…
Cancel
Save