Browse Source

盒管理/装盒/分卷装盒

master
xuhuajiao 1 year ago
parent
commit
28238f6756
  1. 100
      src/api/archivesKeeping/caseManage.js
  2. 4
      src/api/archivesManage/library.js
  3. 17
      src/assets/styles/archives-manage.scss
  4. 368
      src/views/archiveKeeping/caseManage/caseList/index.vue
  5. 107
      src/views/archiveKeeping/caseManage/caseList/module/detailDialog.vue
  6. 248
      src/views/archiveKeeping/caseManage/caseList/module/form.vue
  7. 54
      src/views/archiveKeeping/caseManage/caseList/module/openCaseDlg.vue
  8. 57
      src/views/archiveKeeping/caseManage/index.vue
  9. 197
      src/views/archiveKeeping/caseManage/module/caseLog.vue
  10. 1
      src/views/archiveUtilize/archiveEditing/module/materialSelected.vue
  11. 2
      src/views/archivesManage/managementLibrary/anjuan/tableList.vue
  12. 3
      src/views/archivesManage/managementLibrary/index.vue
  13. 2
      src/views/archivesManage/managementLibrary/juannei/index.vue
  14. 7
      src/views/archivesManage/managementLibrary/mixins/index.js
  15. 6
      src/views/archivesManage/managementLibrary/module/archivesInfo/index.vue
  16. 25
      src/views/archivesManage/managementLibrary/module/collectHeader.vue
  17. 160
      src/views/archivesManage/managementLibrary/module/packingBox/index.vue
  18. 2
      src/views/archivesManage/managementLibrary/project/index.vue
  19. 2
      src/views/collectReorganizi/collectionLibrary/anjuan/tableList.vue
  20. 2
      src/views/collectReorganizi/collectionLibrary/juannei/index.vue
  21. 1
      src/views/collectReorganizi/collectionLibrary/mixins/index.js
  22. 6
      src/views/collectReorganizi/collectionLibrary/module/archivesInfo/index.vue
  23. 1
      src/views/collectReorganizi/collectionLibrary/module/collectMoveFile/index.vue
  24. 1
      src/views/collectReorganizi/collectionLibrary/module/insertFile/index.vue
  25. 2
      src/views/collectReorganizi/collectionLibrary/project/index.vue
  26. 30
      src/views/components/archivesListModule/index.vue
  27. 6
      src/views/components/category/PreviewForm.vue
  28. 10
      src/views/prearchiveLibrary/module/moveFile.vue

100
src/api/archivesKeeping/caseManage.js

@ -0,0 +1,100 @@
import request from '@/utils/request'
import qs from 'qs'
export function add(form) {
return edit(form)
}
export function edit(parameter) {
return request({
url: 'api/archivesDeposit/editCase',
method: 'post',
data: parameter
})
}
// 删除档案盒
export function del(data) {
return request({
url: 'api/archivesDeposit/del',
method: 'post',
data: data
})
}
// 判断盒名称是否重复
export function caseNameIsRepeat(parameter) {
return request({
url: 'api/archivesDeposit/caseNameIsRepeat',
method: 'get',
params: parameter
})
}
// 判断条形码值是否重复
export function barcodeIsRepeat(parameter) {
return request({
url: 'api/archivesDeposit/barcodeIsRepeat',
method: 'get',
params: parameter
})
}
// 档案盒列表
export function FetchInitCaseList(parameter) {
return request({
url: 'api/archivesDeposit/initCaseList',
method: 'get',
params: parameter
})
}
// 档案盒装盒列表
export function FetchInitCartoningList(parameter) {
return request({
url: 'api/archivesDeposit/initCartoningList',
method: 'get',
params: parameter
})
}
// 装盒
export function FetchCartoning(data) {
return request({
url: 'api/archivesDeposit/cartoning',
method: 'post',
data: data
})
}
// 拆盒
export function unpacking(data) {
return request({
url: 'api/archivesDeposit/unpacking',
method: 'post',
data: data
})
}
// 盒详情
export function findInCase(params) {
return request({
url: 'api/archivesDeposit/findInCase' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 获取新条码号
export function getNewBarcode(params) {
return request({
url: 'api/archivesDeposit/getNewBarcode' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
// 获取新盒号
export function getNewCaseCode(params) {
return request({
url: 'api/archivesDeposit/getNewCaseCode' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
})
}
export default { add, edit, del, unpacking, findInCase, getNewBarcode, getNewCaseCode }

4
src/api/archivesManage/library.js

@ -10,7 +10,7 @@ export function FetchInitCategoryViewTable(params) {
})
}
export function FetchInitCategoryView(params) {
export function FetchInitContorlView(params) {
return request({
url: 'api/control/initCategoryView' + '?' + qs.stringify(params, { indices: false }),
method: 'get'
@ -19,5 +19,5 @@ export function FetchInitCategoryView(params) {
export default {
FetchInitCategoryViewTable,
FetchInitCategoryView
FetchInitContorlView
}

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

@ -909,4 +909,21 @@
display: inline-block;
color: #0348F3;
}
}
.filter-rfid{
margin-left: 10px;
padding: 0 13px;
height: 32px;
line-height: 30px;
&.is-disabled,
&.is-disabled:focus{
border-color: #0348F3 !important;
background-color: rgba(31, 85, 235, 0.20) !important;
color: #0348F3 !important;
opacity: 0.6;
}
.iconfont{
font-size: 20px;
}
}

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

@ -0,0 +1,368 @@
<template>
<div class="recordList-main">
<div class="head-container">
<div class="head-search">
<el-select
v-model="selectStatus"
style="margin-right: 10px; width: 110px;"
placeholder="请选择"
@change="crud.toQuery"
>
<el-option
v-for="item in stateOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-input
v-model="crud.query[inputSelect]"
size="small"
clearable
placeholder="请输入搜索关键字"
style="width: 300px;"
class="input-prepend filter-item"
@clear="crud.toQuery"
@keyup.enter.native="crud.toQuery"
>
<el-select slot="prepend" v-model="inputSelect" style="width: 92px">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-input>
<rrOperation />
</div>
<div class="handle-container">
<crudOperation :permission="permission">
<template v-slot:middle>
<el-button slot="reference" size="mini" :loading="crud.delAllLoading" :disabled="!crud.selections.length" @click="handleDel(crud.selections)">
<i class="iconfont icon-shanchu" />
删除
</el-button>
</template>
</crudOperation>
<div>
<el-button size="mini" :disabled="crud.selections.length === 0" @click="openCase(crud.selections)">
<i class="iconfont icon-chaihe" />
拆盒
</el-button>
<el-button size="mini" :disabled="crud.selections.length !== 1" @click="bindingTag(crud.selections)">
<i class="iconfont icon-bendiguajie" />
绑定标签
</el-button>
<el-button size="mini" :disabled="crud.selections.length !== 1" @click="getPrintData">
<i class="iconfont icon-dayin" />
打印目录
</el-button>
</div>
</div>
</div>
<el-table
ref="table"
:data="crud.data"
style="width: 100%;"
height="calc(100vh - 346px)"
@cell-dblclick="tableDoubleClick"
@selection-change="crud.selectionChangeHandler"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="createTime" label="状态" align="center" width="110">
<template slot-scope="scope">
<span :class="getClassByStorageType(scope.row)">{{ scope.row.storageType | storageTypeStatus }}</span>
</template>
</el-table-column>
<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="tid" label="TID" align="center" min-width="180" />
<el-table-column prop="barcode" label="条形码" align="center" min-width="120" />
<el-table-column label="存放位置" align="center" min-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>
</template>
</el-table-column>
<el-table-column prop="update_time" width="175" label="操作时间" align="center">
<template slot-scope="scope">
<div>{{ scope.row.update_time | parseTime }}</div>
</template>
</el-table-column>
</el-table>
<pagination v-if="crud.data.length !== 0" />
<eForm />
<binding-tag-dlg ref="bindingTag" :binding-id="crud.selections[0] && crud.selections[0].id" :binding-type="2" binding-txt="档案盒" @refresh="crud.refresh" />
<open-case-dlg ref="openCase" @refresh="crud.refresh" />
<detailDialog ref="detailDom" />
</div>
</template>
<script>
import CRUD, { presenter, crud } from '@crud/crud'
import caseCurd from '@/api/archivesKeeping/caseManage'
import { getNewBarcode, getNewCaseCode } from '@/api/archivesKeeping/caseManage'
import { FetchFondsDetail } from '@/api/system/fonds'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination'
import BindingTagDlg from '@/views/components/BindingTagDlg'
import eForm from './module/form'
import openCaseDlg from './module/openCaseDlg'
import detailDialog from './module/detailDialog'
import html2canvas from 'html2canvas'
import printJS from 'print-js'
import { mapGetters } from 'vuex'
export default {
name: 'RecordList',
filters: {
storageTypeStatus(val) {
switch (val) {
case 0:
return '未入'
case 1:
return '待入'
case 2:
return '已入'
case 3:
return '待出'
}
}
},
components: { pagination, rrOperation, crudOperation, BindingTagDlg, eForm, openCaseDlg, detailDialog },
mixins: [presenter(), crud()],
cruds() {
return CRUD({
url: 'api/archivesDeposit/initCaseList',
crudMethod: { ...caseCurd },
title: '档案盒',
optShow: {
add: true,
edit: true,
del: false,
download: false,
reset: false,
group: false
}
})
},
props: {
activeIndex: {
type: Number,
default: 0
}
},
data() {
return {
permission: {
add: ['admin', 'caseManage:add'],
edit: ['admin', 'caseManage:edit'],
del: ['admin', 'caseManage:del']
},
selectStatus: null,
stateOptions: [
{
value: 1,
label: '空盒'
},
{
value: 2,
label: '未入库'
},
{
value: 3,
label: '待入库'
},
{
value: 4,
label: '已入库'
}, {
value: 5,
label: '待出库'
}
],
options: [
{ value: 'caseCode', label: '盒号' },
{ value: 'caseName', label: '盒名称' },
{ value: 'tid', label: '电子标签' },
{ value: 'barcode', label: '条码' }
],
inputSelect: 'caseCode'
}
},
computed: {
...mapGetters([
'user'
])
},
watch: {
activeIndex: function(newValue, oldValue) {
}
},
mounted() {
},
methods: {
getClassByStorageType(row) {
if (row.storageType === 0) { //
return 'row-state cancel-state'
} else if (row.storageType === 1) { //
return 'row-state ing-state'
} else if (row.storageType === 2) { //
return 'row-state end-state'
} else if (row.storageType === 3) { //
return 'row-state ing-state'
}
},
[CRUD.HOOK.beforeRefresh]() {
this.crud.query.storageType = this.selectStatus
},
// -
[CRUD.HOOK.beforeToAdd](crud, form, btn) {
getNewBarcode().then(res => {
form.barcode = res
})
getNewCaseCode().then(res => {
form.caseCode = res
})
if (this.user.fonds.id) {
FetchFondsDetail({ id: this.user.fonds.id }).then((res) => {
form.caseFonds = res.fondsNo
}).catch(err => {
console.log(err)
})
}
},
[CRUD.HOOK.beforeToCU](crud, form, btn) {
console.log(form)
},
//
[CRUD.HOOK.afterValidateCU](crud) {
console.log(crud.form)
return true
},
resetQuery() {
},
tableDoubleClick(row) {
},
handleCloseDialog(done) {
},
//
getPrintData() {
const params = {
caseId: this.crud.selections[0].id
}
this.crud.crudMethod.findInCase(params).then(res => {
if (res) {
this.printData = res.archives
}
this.isHidden = true
this.$nextTick(() => {
this.printFn()
this.isHidden = false
})
})
},
printFn() {
const printContent = this.$refs.printId
// dom
const width = printContent.clientWidth
const height = printContent.clientHeight
// canvas
const canvas = document.createElement('canvas')
const scale = 4 //
canvas.width = width * scale // canvas *
canvas.height = height * scale // canvas *
canvas.style.width = width * scale + 'px'
canvas.style.height = height * scale + 'px'
canvas.getContext('2d').scale(scale, scale) // context,scale
const scrollTop = document.documentElement.scrollTop || document.body.scrollTop //
const scrollLeft = document.documentElement.scrollLeft || document.body.scrollLeft //
html2canvas(printContent, {
canvas,
backgroundColor: null,
useCORS: true,
windowHeight: document.body.scrollHeight,
scrollX: -scrollLeft, //
scrollY: -scrollTop
}).then((canvas) => {
const url = canvas.toDataURL('image/png')
printJS({
printable: url,
type: 'image',
documentTitle: '', //
style: '@page{size:auto;margin: 0cm 1cm 0cm 1cm;}' //
})
}).catch(err => {
console.error(err)
})
},
bindingTag(data) {
if (data[0].tid) {
this.$refs.bindingTag.isBinding = true
this.$refs.bindingTag.tidCode = data[0].tid
}
this.$refs.bindingTag.bindingVisible = true
},
openCase(data) {
const isBool = data.every(item => item.storageType === 0)
if (isBool) {
const bool = data.some(item => item.depositNum === 0)
if (bool) {
this.$message({
message: '存在空档案盒不可拆盒!',
type: 'warning'
})
} else {
this.$refs.openCase.openCaseVisible = true
this.$refs.openCase.caseData = data
}
} else {
this.msgVisible = true
}
}
}
}
</script>
<style lang="scss" scoped>
.head-container{
display: flex;
justify-content: space-between;
align-items: center;
.head-search{
margin-bottom: 0 !important;
}
.handle-container{
display: flex;
justify-content: space-between;
align-items: center;
.crud-opts{
margin-right: 80px;
}
}
}
::v-deep .el-pagination{
margin: 24px 0 10px 0 !important
}
::v-deep .input-prepend .el-input__inner{
padding-left: 100px;
}
.filter-rfid{
border: 1px solid #0348F3 !important;
background-color: #fff !important;
color: #0348F3 !important;
}
</style>

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

@ -0,0 +1,107 @@
<template>
<div>
<el-dialog title="档案盒详情" :visible.sync="detailVisible">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<div style="padding:0 10px">
<div class="dpflex">
<p class="left"><span class="color-blue">盒名称</span><span class="color-white">{{ rowData.caseName }}</span></p>
<p class="right"><span class="color-blue">盒条码</span><span class="color-white">{{ rowData.barcode }}</span></p>
</div>
<div class="dpflex">
<p class="left"><span class="color-blue">存放位置</span>
<span class="color-white">
<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 class="color-white">{{ rowData.tid }}</span></p>
</div>
<p class="left"><span class="color-blue">创建时间</span><span class="color-white">{{ 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>
</template>
</el-table-column>
<el-table-column prop="create_time" align="center" label="创建时间" width="150">
<template slot-scope="scope">
<div>{{ scope.row.create_time | parseTime }}</div>
</template>
</el-table-column>
</el-table>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
detailVisible: false,
rowData: {},
tableData: []
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog{
width: 950px;
// height: 520px;
}
::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;
}
.dpflex{
display: flex;
.left{
width: 400px;
}
}
.color-blue{
width: 86px;
display: inline-block;
text-align: right;
color: #339CFF;
}
.color-white{
display: inline-block;
color: #fff;
}
</style>

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

@ -0,0 +1,248 @@
<template>
<el-dialog append-to-body :close-on-click-modal="false" :modal-append-to-body="false" :before-close="crud.cancelCU" :visible="crud.status.cu > 0" :title="crud.status.title">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<el-form ref="form" :model="form" inline :rules="rules" size="small" label-width="105px">
<el-row>
<el-form-item label="盒号" prop="caseCode">
<el-input v-model="form.caseCode" placeholder="请输入" disabled />
</el-form-item>
</el-row>
<el-form-item label="盒名称" prop="caseName">
<el-input v-model="form.caseName" placeholder="请输入" />
</el-form-item>
<el-form-item label="规格" prop="caseSpecs">
<el-select
v-model="form.caseSpecs"
placeholder="请选择"
style="width: 225px;"
>
<el-option
v-for="item in specsOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="全宗" prop="caseFonds">
<el-select v-model="form.caseFonds" placeholder="请选择" style="width: 225px;">
<el-option
v-for="(item,index) in fondsOptions"
:key="index"
:label="item.fondsName"
:value="item.fondsNo"
/>
</el-select>
</el-form-item>
<el-form-item label="年度" prop="caseYear">
<el-input v-model="form.caseYear" placeholder="请输入" />
</el-form-item>
<el-form-item label="保管期限" prop="caseRetention">
<el-select
v-model="form.caseRetention"
placeholder="请选择"
style="width: 225px;"
>
<el-option
v-for="item in retentionOptions"
:key="item.dictionaryName"
:label="item.dictionaryName"
:value="item.dictionaryName"
/>
</el-select>
</el-form-item>
<el-form-item label="密级" prop="caseClass">
<el-select
v-model="form.caseClass"
placeholder="请选择"
style="width: 225px;"
>
<el-option
v-for="item in calssOptions"
:key="item.dictionaryName"
:label="item.dictionaryName"
:value="item.dictionaryName"
/>
</el-select>
</el-form-item>
<el-form-item label="开始件号" prop="startItemNo">
<el-input v-model="form.startItemNo" placeholder="请输入" />
</el-form-item>
<el-form-item label="结束件号" prop="endItemNo">
<el-input v-model="form.endItemNo" placeholder="请输入" />
</el-form-item>
<el-form-item label="装盒人" prop="packing">
<el-input v-model="form.packing" placeholder="请输入" />
</el-form-item>
<el-form-item label="装盒日期" prop="packDate">
<el-date-picker
v-model="form.packDate"
type="date"
placeholder="选择日期"
style="width: 225px;"
/>
</el-form-item>
<el-form-item label="检查人" prop="check">
<el-input v-model="form.check" placeholder="请输入" />
</el-form-item>
<el-form-item label="检查日期" prop="checkDate">
<el-date-picker
v-model="form.checkDate"
type="date"
placeholder="选择日期"
style="width: 225px;"
/>
</el-form-item>
<el-row>
<el-form-item label="电子标签" prop="tid">
<el-input v-model="form.tid" style="width: 568px;" placeholder="请输入" disabled />
</el-form-item>
</el-row>
<el-row>
<el-form-item label="条码" prop="barcode">
<el-input v-model="form.barcode" style="width: 568px;" placeholder="请输入" disabled />
</el-form-item>
</el-row>
<el-row>
<el-form-item label="备注" prop="caseNotes">
<el-input v-model="form.caseNotes" type="textarea" :rows="2" style="width: 568px;" placeholder="请输入" />
</el-form-item>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button class="auto-gx-btn"><i class="iconfont icon-zidonggengxin" />自动更新</el-button>
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">
保存
</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
import { form } from '@crud/crud'
import { caseNameIsRepeat, barcodeIsRepeat } from '@/api/archivesKeeping/caseManage'
import { FetchDictionaryTree } from '@/api/system/dict'
import { FetchFondsAll } from '@/api/system/fonds'
const defaultForm = {
id: null,
caseCode: null,
caseName: null,
caseSpecs: null,
caseFonds: null,
caseYear: null,
caseRetention: null,
caseClass: null,
startItemNo: null,
endItemNo: null,
tid: null,
barcode: null,
caseNotes: null
}
export default {
mixins: [form(defaultForm)],
data() {
var checkCaseName = (rule, value, callback) => {
if (!value) {
callback(new Error('请输入盒名称'))
} else {
caseNameIsRepeat({ caseId: this.form.id, caseName: value }).then((res) => {
if (res) {
callback(new Error('盒名称重复'))
} else {
callback()
}
})
}
}
var checkBarcode = (rule, value, callback) => {
if (value) {
barcodeIsRepeat({ caseId: this.form.id, barcode: value }).then((res) => {
if (res) {
callback(new Error('条形码重复'))
} else {
callback()
}
})
} else {
callback()
}
}
return {
specsOptions: [
{
label: '20mm',
value: 20
},
{
label: '30mm',
value: 30
},
{
label: '40mm',
value: 40
},
{
label: '50mm',
value: 50
}
],
fondsOptions: [],
retentionOptions: [],
calssOptions: [],
rules: {
caseCode: [{ required: true, message: '盒号不可为空', trigger: 'blur' }],
caseName: [{ validator: checkCaseName, trigger: 'blur' }],
barcode: [{ validator: checkBarcode, trigger: 'blur' }]
}
}
},
created() {
},
mounted() {
this.getFondsDatas()
this.getDictsList()
},
methods: {
getFondsDatas() {
FetchFondsAll().then(res => {
this.fondsOptions = res
})
},
getDictsList() {
FetchDictionaryTree().then((res) => {
const filterCodes = ['retention']
const filteredItems = JSON.parse(JSON.stringify(res)).filter(item => filterCodes.includes(item.dictionaryCode))
this.retentionOptions = filteredItems[0].childDictionarys
const filterCodes2 = ['security_class']
const filteredItems2 = JSON.parse(JSON.stringify(res)).filter(item => filterCodes2.includes(item.dictionaryCode))
this.calssOptions = filteredItems2[0].childDictionarys
}).catch(err => {
console.log(err)
})
}
}
}
</script>
<style lang="scss" scoped>
::v-deep .el-dialog .el-dialog__body .el-form-item:nth-child(odd){
margin-right: 0 !important;
}
.auto-gx-btn{
width: 104px;
line-height: 30px;
border: 1px solid #0348F3;
color: #0348F3;
}
::v-deep .dialog-footer{
margin-top: 30px 22px 20px 0 !important;
}
</style>

54
src/views/archiveKeeping/caseManage/caseList/module/openCaseDlg.vue

@ -0,0 +1,54 @@
<template>
<el-dialog :close-on-click-modal="false" title="拆盒" :visible.sync="openCaseVisible">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<div class="dialog-delt">
<p><span>确定拆除当前选择的所有档案盒吗</span></p>
<p class="delt-tip">
<svg-icon icon-class="tishijinggao" />
<span>提示1.确定拆盒后当前盒号下绑定的所有档案数据将一并清除</span>
<span>2.若案卷存在多个盒选择其中一个分盒则自动拆掉该案卷的全部档案盒</span>
</p>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click.native="handleConfirm">确定</el-button>
<!-- <el-button @click.native="handleCancel">取消</el-button> -->
</div>
</div>
</el-dialog>
</template>
<script>
import { unpacking } from '@/api/archivesManage/caseManage'
import { crud } from '@crud/crud'
export default {
mixins: [crud()],
data() {
return {
caseData: [],
openCaseVisible: false
}
},
methods: {
handleConfirm() {
// console.log(this.caseData)
const caseIds = this.caseData.map(item => item.id)
unpacking(JSON.stringify(caseIds)).then(res => {
this.$message.success('拆盒成功!')
this.caseData = []
this.openCaseVisible = false
this.crud.refresh()
})
},
handleCancel() {
this.caseData = []
this.openCaseVisible = false
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
</style>

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

@ -0,0 +1,57 @@
<template>
<div class="app-container tab-container">
<div class="tab-content">
<span class="right-top-line" />
<span class="left-bottom-line" />
<span class="right-bottom-line" />
<ul class="tab-nav">
<li :class="{ 'active-tab-nav': activeIndex == 0 }" @click="changeActiveTab(0)">档案盒列表<i /></li>
<li :class="{ 'active-tab-nav': activeIndex == 1 }" @click="changeActiveTab(1)">使用记录<i /></li>
<!-- 最右侧装饰img -->
<span class="tab-right-img" />
</ul>
<!-- <RecordList :active-index="activeIndex" @handleTab="getRecordId" /> -->
<component :is="comName" />
</div>
</div>
</template>
<script>
import caseList from './caseList/index'
import caseLog from './module/caseLog'
export default {
name: 'CaseManage',
components: {
caseList,
caseLog
},
data() {
return {
activeIndex: 0,
currentRecordId: null
}
},
computed: {
comName: function() {
if (this.activeIndex === 0) {
return 'caseList'
} else if (this.activeIndex === 1) {
return 'caseLog'
}
return 'caseList'
}
},
methods: {
getRecordId(index, id) {
this.changeActiveTab(index)
this.currentRecordId = id
},
changeActiveTab(data) {
this.activeIndex = data
}
}
}
</script>
<style lang="scss" scoped>
</style>

197
src/views/archiveKeeping/caseManage/module/caseLog.vue

@ -0,0 +1,197 @@
<template>
<div class="recordList-main">
<div class="head-container">
<div class="head-search">
<el-select
v-model="selectStatus"
style="margin-right: 10px; width: 110px;"
placeholder="请选择"
@change="crud.toQuery"
>
<el-option
v-for="item in stateOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-input
v-model="crud.query[inputSelect]"
size="small"
clearable
placeholder="请输入搜索关键字"
style="width: 300px;"
class="input-prepend filter-item"
@clear="crud.toQuery"
@keyup.enter.native="crud.toQuery"
>
<el-select slot="prepend" v-model="inputSelect" style="width: 92px">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-input>
<rrOperation />
</div>
<div class="handle-container">
<el-button slot="reference" size="mini" :disabled="!crud.selections.length">
<i class="iconfont icon-daochu" />
导出
</el-button>
</div>
</div>
<el-table
ref="table"
:data="crud.data"
style="width: 100%;"
height="calc(100vh - 346px)"
@selection-change="crud.selectionChangeHandler"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="operationType" label="类型" align="center" width="110">
<template slot-scope="scope">
<div>{{ scope.row.operationType === 1 ? '装盒' : '拆盒' }}</div>
</template>
</el-table-column>
<el-table-column prop="caseCode" label="盒号" align="center" min-width="120" />
<el-table-column prop="caseName" label="盒名称" :show-overflow-tooltip="true" align="center" min-width="150" />
<el-table-column prop="tid" label="电子标签" align="center" min-width="180" />
<el-table-column prop="barcode" label="条形码" align="center" min-width="120" />
<el-table-column prop="create_by" label="操作人" align="center" min-width="300" />
<el-table-column prop="create_time" width="175" label="操作时间" align="center">
<template slot-scope="scope">
<div>{{ scope.row.create_time | parseTime }}</div>
</template>
</el-table-column>
</el-table>
<pagination v-if="crud.data.length !== 0" />
</div>
</template>
<script>
import CRUD, { presenter, crud } from '@crud/crud'
import caseCurd from '@/api/archivesKeeping/caseManage'
import rrOperation from '@crud/RR.operation'
import pagination from '@crud/Pagination'
export default {
name: 'RecordList',
filters: {
storageTypeStatus(val) {
switch (val) {
case 0:
return '未入'
case 1:
return '待入'
case 2:
return '已入'
case 3:
return '待出'
}
}
},
components: { pagination, rrOperation },
mixins: [presenter(), crud()],
cruds() {
return CRUD({
url: 'api/archivesDeposit/initCaseLog',
crudMethod: { ...caseCurd },
title: '档案盒记录',
optShow: {
add: false,
edit: false,
del: false,
download: false,
reset: false,
group: false
}
})
},
props: {
activeIndex: {
type: Number,
default: 0
}
},
data() {
return {
selectStatus: 0,
stateOptions: [
{
value: 0,
label: '全部'
},
{
value: 1,
label: '装盒'
},
{
value: 2,
label: '拆盒'
}
],
options: [
{ value: 'caseCode', label: '盒号' },
{ value: 'caseName', label: '盒名称' },
{ value: 'tid', label: '电子标签' },
{ value: 'barcode', label: '条码' }
],
inputSelect: 'caseCode'
}
},
computed: {
// ...mapGetters([
// 'user'
// ])
},
watch: {
activeIndex: function(newValue, oldValue) {
}
},
mounted() {
},
methods: {
[CRUD.HOOK.beforeRefresh]() {
this.crud.query.storageType = this.selectStatus
},
resetQuery() {
}
}
}
</script>
<style lang="scss" scoped>
.head-container{
display: flex;
justify-content: space-between;
align-items: center;
.head-search{
margin-bottom: 0 !important;
}
.handle-container{
display: flex;
justify-content: space-between;
align-items: center;
.crud-opts{
margin-right: 80px;
}
}
}
::v-deep .el-pagination{
margin: 24px 0 10px 0 !important
}
::v-deep .input-prepend .el-input__inner{
padding-left: 100px;
}
.filter-rfid{
border: 1px solid #0348F3 !important;
background-color: #fff !important;
color: #0348F3 !important;
}
</style>

1
src/views/archiveUtilize/archiveEditing/module/materialSelected.vue

@ -167,6 +167,7 @@ export default {
const params = {
'categoryId': this.currentCategory.id,
'categoryLevel': this.currentLevel,
'ignore': false,
'search': this.query.search,
'page': this.page.page - 1,
'size': this.page.size

2
src/views/archivesManage/managementLibrary/anjuan/tableList.vue

@ -98,7 +98,7 @@
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" />
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" :is-collect="false" />
</div>
</template>

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

@ -133,7 +133,8 @@ export default {
'archive_year': null, //
'fonds_no': null //
},
fixedStatusBar: false
fixedStatusBar: false,
listCategory: null
}
},
watch: {

2
src/views/archivesManage/managementLibrary/juannei/index.vue

@ -108,7 +108,7 @@
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" />
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" :is-collect="false" />
<span class="closed-btn" @click="closeDrawer" />
</el-drawer>
</template>

7
src/views/archivesManage/managementLibrary/mixins/index.js

@ -1,4 +1,4 @@
import { FetchInitCategoryViewTable, FetchInitCategoryView } from '@/api/archivesManage/library'
import { FetchInitCategoryViewTable, FetchInitContorlView } from '@/api/archivesManage/library'
import { crud } from '@crud/crud'
export const manageLibraryCrud = {
mixins: [crud()],
@ -111,6 +111,7 @@ export const manageLibraryCrud = {
'parentId': parentsId,
'categoryId': this.selectedCategory.id,
'categoryLevel': categoryLevel,
'ignore': false,
'isdel': this.parentsData.isdel,
'checkTypes': this.selectStatus && this.selectStatus.length !== 0 ? this.selectStatus.join(',') : null,
'search': this.query.search,
@ -126,8 +127,10 @@ export const manageLibraryCrud = {
'size': this.page.size,
'sort': this.arrySort
}
FetchInitCategoryView(params).then((res) => {
FetchInitContorlView(params).then((res) => {
console.log('resssss', res)
if (res.code !== 500) {
this.parentsData.listCategory = res.category
if (categoryLevel === 1) {
// 项目
const projectObj = this.parentsData.$refs.projectEle

6
src/views/archivesManage/managementLibrary/module/archivesInfo/index.vue

@ -35,7 +35,7 @@
</div>
<FourTestInfo v-if="archivesTabIndex===3" />
<HandleInfo v-if="archivesTabIndex===4" />
<ArchivesListModule v-show="archivesTabIndex===5" ref="archivesListModuleRef" :selected-category="selectedCategory" :is-title-type="isTitleType" />
<ArchivesListModule v-show="archivesTabIndex===5" ref="archivesListModuleRef" :selected-category="selectedCategory" :is-title-type="isTitleType" :is-collect="isCollect" />
</div>
</div>
</el-dialog>
@ -69,6 +69,10 @@ export default {
isTitleType: {
type: Number,
default: 2
},
isCollect: {
type: Boolean,
default: true
}
},
data() {

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

@ -143,7 +143,7 @@
<!-- 绑定标签 -->
<binding-tag-dlg ref="bindingTag" :binding-id="selections[0] && selections[0].id" :binding-type="1" binding-txt="档案" @close-dialog="closeDialog" />
<!-- 装盒 / 分卷装盒 -->
<PackingBox ref="packingBox" :selected-category="selectedCategory" :selections="selections" @close-dialog="closeDialog" />
<PackingBox ref="packingBox" :selected-category="selectedCategory" :selections="selections" :total-sum-all="totalSumAll" @close-dialog="closeDialog" />
<!-- 在线移交 -->
<OnlineHandover ref="onlineHandover" :selected-category="selectedCategory" :selections="selections" @close-dialog="closeDialog" />
<!-- 离线移交 -->
@ -351,7 +351,8 @@ export default {
projectOptions: [],
classifyOptions: [],
isDesFormType: 'manageArcives', //
arcId: null
arcId: null,
totalSumAll: 0
}
},
computed: {
@ -725,7 +726,15 @@ export default {
},
// /
handlePackingBox(type) {
if (this.selections.length === 0) {
this.$message('您还未勾选需要操作的条目,请先确认!')
return false
}
if (this.selectedCategory.arrangeType === 2) {
if (this.selections.length > 1) {
this.$message('只可勾选唯一目标条目,请先确认!')
return false
}
if (this.selections[0].child === 0) {
this.$message.error('当前选中的档案无相关卷内文件,不可装盒!')
return
@ -741,13 +750,25 @@ export default {
// this.$message('')
// return false
// }
console.log('box', this.parentsData.listCategory)
this.$refs.packingBox.packingVisible = true
this.$refs.packingBox.isPackingOrPartType = type
this.$refs.packingBox.packFileCategory = this.parentsData.listCategory
if (type === 0) {
this.$refs.packingBox.packingTitle = '装盒'
} else {
this.$refs.packingBox.packingTitle = '分卷装盒'
this.$refs.packingBox.getViewTable()
}
this.getTotalSumAll()
},
getTotalSumAll() {
this.totalSumAll = 0
this.selections.map((item) => { if (!isNaN(item.child)) this.totalSumAll += item.child })
if (isNaN(this.totalSumAll)) {
return 0
}
return this.totalSumAll
},
// 线
handleOnlineHandover() {

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

@ -20,7 +20,7 @@
<div class="selct-data-head">
<p v-if="selectedCategory.arrangeType === 1">数据来源文件<span>{{ selections.length }}</span>条数据</p>
<!-- totalSumAll -->
<p v-else>数据来源案卷<span>{{ selections.length }}</span>条数据 卷内<span>{{ 111 }}</span>条数据</p>
<p v-else>数据来源案卷<span>{{ selections.length }}</span>条数据 卷内<span>{{ totalSumAll }}</span>条数据</p>
</div>
</div>
<!--表格渲染-->
@ -37,13 +37,13 @@
<el-button class="packing-handle-btn iconfont" @click="handleCartoning(scope.row)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
</template>
</el-table-column>
<el-table-column prop="caseNum" label="盒号" min-width="60" align="center" />
<el-table-column prop="depositNum" label="已装" min-width="100" align="center" />
<el-table-column prop="caseCode" label="盒号" min-width="120" align="center" />
<el-table-column prop="depositNum" label="已装" min-width="60" align="center" />
<el-table-column prop="tid" label="TID" min-width="120" align="center" />
<el-table-column prop="barcode" label="条形码" min-width="120" align="center" />
<el-table-column prop="retention" label="保管期限" min-width="100" align="center" />
<el-table-column prop="security_class" label="密级" min-width="100" align="center" />
<el-table-column prop="fonds" label="全宗" min-width="100" align="center" />
<el-table-column prop="caseRetention" label="保管期限" min-width="100" align="center" />
<el-table-column prop="caseClass" label="密级" min-width="100" align="center" />
<el-table-column prop="caseFonds" label="全宗" min-width="100" align="center" />
<el-table-column prop="category" label="所属门类" min-width="100" align="center" />
<el-table-column prop="classify" label="所属分类" min-width="100" align="center" />
</el-table>
@ -60,16 +60,16 @@
>
<el-table-column prop="create_date" label="操作" width="80" align="center">
<template slot-scope="scope">
<el-button class="packing-handle-btn iconfont" @click="handleCartoning(scope.row)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
<el-button class="packing-handle-btn iconfont" @click="handlePartParking(scope.row,scope.$index)"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
</template>
</el-table-column>
<el-table-column prop="caseNum" label="盒号" min-width="60" align="center" />
<el-table-column prop="caseCode" label="盒号" min-width="60" align="center" />
<el-table-column prop="depositNum" label="已装" min-width="100" align="center" />
<el-table-column prop="tid" label="TID" min-width="120" align="center" />
<el-table-column prop="barcode" label="条形码" min-width="120" align="center" />
<el-table-column prop="retention" label="保管期限" min-width="100" align="center" />
<el-table-column prop="security_class" label="密级" min-width="100" align="center" />
<el-table-column prop="fonds" label="全宗" min-width="100" align="center" />
<el-table-column prop="caseRetention" label="保管期限" min-width="100" align="center" />
<el-table-column prop="caseClass" label="密级" min-width="100" align="center" />
<el-table-column prop="caseFonds" label="全宗" min-width="100" align="center" />
<el-table-column prop="category" label="所属门类" min-width="100" align="center" />
<el-table-column prop="classify" label="所属分类" min-width="100" align="center" />
</el-table>
@ -88,13 +88,13 @@
<el-button class="packing-recall-btn iconfont" @click="cancelParking(scope.row,scope.$index)"><svg-icon icon-class="chehui" class="svg-arc-style" />撤销</el-button>
</template>
</el-table-column>
<el-table-column prop="caseNum" label="盒号" min-width="60" align="center" />
<el-table-column prop="caseCode" label="盒号" min-width="60" align="center" />
<el-table-column prop="depositNum" label="已装" min-width="100" align="center" />
<el-table-column prop="tid" label="TID" min-width="120" align="center" />
<el-table-column prop="barcode" label="条形码" min-width="120" align="center" />
<el-table-column prop="retention" label="保管期限" min-width="100" align="center" />
<el-table-column prop="security_class" label="密级" min-width="100" align="center" />
<el-table-column prop="fonds" label="全宗" min-width="100" align="center" />
<el-table-column prop="caseRetention" label="保管期限" min-width="100" align="center" />
<el-table-column prop="caseClass" label="密级" min-width="100" align="center" />
<el-table-column prop="caseFonds" label="全宗" min-width="100" align="center" />
<el-table-column prop="category" label="所属门类" min-width="100" align="center" />
<el-table-column prop="classify" label="所属分类" min-width="100" align="center" />
</el-table>
@ -112,8 +112,6 @@
@row-click="clickRowHandler"
>
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column prop="fonds" label="全宗" min-width="100" align="center" /> -->
<!-- <el-table-column label="文件" prop="children_num" width="55" align="center" /> -->
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
<template slot="header">
<el-tooltip
@ -142,7 +140,6 @@
height="calc(100vh/2 - 200px)"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<!-- <el-table-column label="文件" prop="children_num" width="55" align="center" /> -->
<el-table-column v-for="field in tableDisplayFields" :key="field.id" :label="field.fieldCnName" :align="field.displayformatType" :width="field.displayLength" show-overflow-tooltip>
<template slot="header">
<el-tooltip
@ -171,13 +168,14 @@
</template>
<script>
import { FetchInitCartoningList, FetchCartoning } from '@/api/archivesManage/caseManage'
import { FetchInitArchivesView } from '@/api/archivesManage/archivesList'
import { FetchInitCartoningList, FetchCartoning } from '@/api/archivesKeeping/caseManage'
import { FetchInitContorlView } from '@/api/archivesManage/library'
import { FetchInitCategoryViewTable } from '@/api/collect/collect'
import { header, form } from '@crud/crud'
export default {
name: 'Packing',
components: { },
// inject: ['caseData', 'recycleMain'],
inject: ['parentsData'],
mixins: [
header(),
form({})
@ -192,10 +190,17 @@ export default {
selections: {
type: Array,
default: () => []
},
totalSumAll: {
type: Number,
default: 0
}
},
data() {
return {
currentSelections: [],
arrySort: null,
tableDisplayFields: [],
packingTitle: '装盒',
packingData: [],
tableData: [],
@ -203,17 +208,18 @@ export default {
archivesTable: [],
selectArchivesTable: [],
tid: null,
caseName: null,
caseCode: null,
barcode: null,
caseQuery: {},
inputSelect: null,
queryOption: [
{ value: 'caseName', label: '盒号' },
{ value: 'caseCode', label: '盒号' },
{ value: 'tid', label: 'TID' },
{ value: 'barcode', label: '条形码' }
],
packingVisible: false, //
isPackingOrPartType: 0
isPackingOrPartType: 0,
packFileCategory: null
}
},
created() {
@ -232,46 +238,49 @@ export default {
return
}
switch (this.inputSelect) {
case 'caseName':
this.caseName = this.caseQuery[this.inputSelect]
case 'caseCode':
this.caseCode = this.caseQuery[this.inputSelect]
this.tid = null
this.barcode = null
break
case 'tid':
this.tid = this.caseQuery[this.inputSelect]
this.caseName = null
this.caseCode = null
this.barcode = null
break
case 'barcode':
this.barcode = this.caseQuery[this.inputSelect]
this.caseName = null
this.caseCode = null
this.tid = null
break
}
const params = {
'tid': this.tid,
'caseName': this.caseName,
'caseCode': this.caseCode,
'barcode': this.barcode,
'page': 0,
'size': 10
}
console.log(params)
FetchInitCartoningList(params).then(res => {
this.tableData = res.content
})
},
async getPackingFileList() {
let categoryId
if (this.selectedCategory.isType === 2) {
categoryId = this.selectedCategory.children[0].children[0].id
let parentsId
if (this.selectedCategory.arrangeType === 3) {
parentsId = null
} else {
categoryId = this.selectedCategory.children[0].id
parentsId = this.selections[0].id
}
const params = {
'categoryId': categoryId,
'parentsId': this.recycleMain.anjuanSelection.id,
'categoryId': this.selectedCategory.id,
'categoryLevel': 3,
'parentId': parentsId,
'ignore': false,
'isdel': false,
'page': 0,
'size': null,
'size': 100,
'sort': null,
'queryType': null,
'queryTitle': null,
@ -285,7 +294,7 @@ export default {
'securityClass': null,
'organizationMatter': null
}
await FetchInitArchivesView(params).then(data => {
await FetchInitContorlView(params).then(data => {
if (data) {
this.packingData = data.list.content
this.archivesTable = data.list.content
@ -296,22 +305,23 @@ export default {
async handleCartoning(row) {
let jnCategoryId
let archivesParentsId
if (this.caseData.selectedCategory.isType === 5) {
this.packingData = this.caseData.selections
jnCategoryId = this.caseData.selectedCategory.id
if (this.selectedCategory.arrangeType === 1) {
this.packingData = this.selections
jnCategoryId = this.packFileCategory.id
} else {
await this.getPackingFileList()
if (this.caseData.selectedCategory.isType === 2) {
jnCategoryId = this.caseData.selectedCategory.children[0].children[0].id
} else {
jnCategoryId = this.caseData.selectedCategory.children[0].id
}
archivesParentsId = this.caseData.selections[0].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 json = {}
json.archivesId = item.id
if (this.caseData.selectedCategory.isType === 5) {
if (this.selectedCategory.arrangeType === 1) {
json.archivesParentsId = item.id
} else {
json.archivesParentsId = archivesParentsId
@ -321,20 +331,21 @@ export default {
json.categoryId = jnCategoryId
return json
})
console.log('ddddd', arrParams)
await this.FetchCartioning(arrParams)
},
FetchCartioning(arrParams) {
FetchCartoning(arrParams).then(res => {
this.$message.success('装盒成功!')
this.packingVisible = false
this.crud.refresh()
this.$emit('close-dialog')
this.tableData = []
this.caseQuery[this.inputSelect] = ''
})
},
//
handlePartParking(row, index) {
if (!this.selections.length) {
if (!this.currentSelections.length) {
this.$message.error('请选择要装盒的档案!')
return
}
@ -343,7 +354,7 @@ export default {
this.selectTableData.push(row)
}
this.tableData.splice(index, 1)
this.selections.forEach(item => {
this.currentSelections.forEach(item => {
item.caseId = row.id
item.caseName = row.caseName
this.archivesTable.splice(this.archivesTable.findIndex(val => val.id === item.id), 1)
@ -366,21 +377,17 @@ export default {
this.$message.error('左侧档案待选列表全部装盒完成才可保存')
return
}
let jnCategoryId
if (this.caseData.selectedCategory.isType === 2) {
jnCategoryId = this.caseData.selectedCategory.children[0].children[0].id
} else {
jnCategoryId = this.caseData.selectedCategory.children[0].id
}
const jnCategoryId = this.packFileCategory.id
const arrParams = this.selectArchivesTable.map(item => {
const json = {}
json.archivesId = item.id
json.archivesParentsId = this.caseData.selections[0].id
json.archivesParentsId = this.selections[0].id
json.caseId = item.caseId
json.caseName = item.caseName
json.categoryId = jnCategoryId
return json
})
console.log('arrParams', arrParams)
this.FetchCartioning(arrParams)
},
clearTableData() {
@ -392,7 +399,7 @@ export default {
},
// table
selectionChangeHandler(val) {
this.selections = val
this.currentSelections = val
},
// dialog - close
handleClose(done) {
@ -403,27 +410,28 @@ export default {
this.archivesTable = []
this.selectArchivesTable = []
done()
},
getViewTable() {
this.tableDisplayFields = []
FetchInitCategoryViewTable({ categoryId: this.selectedCategory.id, categoryLevel: 3 }).then((res) => {
if (res) {
this.arrySort = []
this.tableDisplayFields = res
const orderSortArry = this.tableDisplayFields.filter(item => item.displayOrder).sort((a, b) => a.displayOrder - b.displayOrder)
orderSortArry.forEach(item => {
if (item.displayOrderBy) {
this.arrySort.push(item.fieldName + ',' + item.displayOrderBy)
}
})
this.getPackingFileList()
}
})
}
}
}
</script>
<style lang="scss" scoped>
.filter-rfid{
margin-left: 10px;
padding: 0 13px;
height: 32px;
line-height: 30px;
&.is-disabled,
&.is-disabled:focus{
border-color: #0348F3 !important;
background-color: rgba(31, 85, 235, 0.20) !important;
color: #0348F3 !important;
opacity: 0.6;
}
.iconfont{
font-size: 20px;
}
}
.el-table .el-button{
padding: 0;
}
@ -446,4 +454,8 @@ export default {
::v-deep .custom-table .el-table__body-wrapper::-webkit-scrollbar-corner {
background-color: #DDE8FB !important;
}
.filter-rfid{
margin-left: 10px !important;
}
</style>

2
src/views/archivesManage/managementLibrary/project/index.vue

@ -55,7 +55,7 @@
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" />
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" :is-collect="false" />
</div>
</template>

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

@ -59,7 +59,7 @@
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" />
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" :is-collect="true" />
</div>
</template>

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

@ -67,7 +67,7 @@
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" />
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" :is-collect="true" />
<span class="closed-btn" @click="closeDrawer" />
</el-drawer>
</template>

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

@ -110,6 +110,7 @@ export const collectionLibraryCrud = {
'parentId': parentsId,
'categoryId': this.selectedCategory.id,
'categoryLevel': categoryLevel,
'ignore': false,
'isdel': this.parentsData.isdel,
'search': this.query.search,
'retention': this.smartQuery.retention,

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

@ -35,7 +35,7 @@
</div>
<FourTestInfo v-if="archivesTabIndex===3" />
<HandleInfo v-if="archivesTabIndex===4" />
<ArchivesListModule v-show="archivesTabIndex===5" ref="archivesListModuleRef" :selected-category="selectedCategory" :is-title-type="isTitleType" />
<ArchivesListModule v-show="archivesTabIndex===5" ref="archivesListModuleRef" :selected-category="selectedCategory" :is-title-type="isTitleType" :is-collect="isCollect" />
</div>
</div>
</el-dialog>
@ -69,6 +69,10 @@ export default {
isTitleType: {
type: Number,
default: 2
},
isCollect: {
type: Boolean,
default: true
}
},
data() {

1
src/views/collectReorganizi/collectionLibrary/module/collectMoveFile/index.vue

@ -193,6 +193,7 @@ export default {
const params = {
'categoryId': this.currentCategory.id,
'categoryLevel': this.currentLevel,
'ignore': false,
'search': this.query.search,
'page': this.page.page - 1,
'size': this.page.size

1
src/views/collectReorganizi/collectionLibrary/module/insertFile/index.vue

@ -154,6 +154,7 @@ export default {
const params = {
'parentId': parentsId,
'categoryId': this.selectedCategory.id,
'ignore': false,
'categoryLevel': categoryLevel,
'search': this.query.search,
'page': this.page.page - 1,

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

@ -55,7 +55,7 @@
/>
</div>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" />
<ArchivesInfo ref="archivesInfo" :selected-category="selectedCategory" :arc-id="arcId" :is-title-type="isTitleType" :is-collect="true" />
</div>
</template>

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

@ -41,6 +41,7 @@
<script>
import ArchivesInfo from '@/views/collectReorganizi/collectionLibrary/module/archivesInfo/index'
import { FetchInitCategoryViewTable, FetchInitCategoryView } from '@/api/collect/collect'
import { FetchInitContorlView } from '@/api/archivesManage/library'
export default {
name: 'ArchivesListModule',
components: { ArchivesInfo },
@ -64,6 +65,10 @@ export default {
isTitleType: {
type: Number,
default: 2
},
isCollect: {
type: Boolean,
default: true
}
},
data() {
@ -136,17 +141,28 @@ export default {
'parentId': this.parentId,
'categoryId': this.selectedCategory.id,
'categoryLevel': this.detailLevel,
'ignore': false,
'page': 0,
'size': 100,
'sort': this.arrySort
}
FetchInitCategoryView(params).then((res) => {
if (res.code !== 500) {
this.tableData = res.list.content
this.collectLevelList = res.categoryLevel
}
this.tableLoading = false
})
if (this.isCollect) {
FetchInitCategoryView(params).then((res) => {
if (res.code !== 500) {
this.tableData = res.list.content
this.collectLevelList = res.categoryLevel
}
this.tableLoading = false
})
} else {
FetchInitContorlView(params).then((res) => {
if (res.code !== 500) {
this.tableData = res.list.content
this.collectLevelList = res.categoryLevel
}
this.tableLoading = false
})
}
}
}
}

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

@ -794,7 +794,7 @@ export default {
parentsId = this.parentsData.parentsJuanneiId
}
let params
if (quickPaperArcId.length !== 0 && this.archivesType === 'add') {
if (quickPaperArcId && quickPaperArcId.length !== 0 && this.archivesType === 'add') {
// archivesIds archivesIdthis.arcId = null
params = {
'archivesId': this.arcId,
@ -834,9 +834,13 @@ export default {
})
} else {
collectEdit(params).then(res => {
console.log(res)
if (res.code === 200) {
this.$message.success(res)
this.$emit('close-dialog', parentsId)
} else {
this.$message.error(res.message)
this.$emit('close-dialog', parentsId)
}
})
}

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

@ -170,6 +170,8 @@ export default {
if (val.pid !== '0') {
Vue.set(this.selectedCategoryMove, 'parentName', this.$refs.treeMove.getNode(val.pid).data.cnName)
}
this.page.page = 1
this.page.size = 10
this.getViewTable()
}
},
@ -199,6 +201,8 @@ export default {
const params = {
'categoryId': this.selectedCategoryMove.id,
'categoryLevel': 3,
'ignore': true,
'isdel': false,
'search': this.query.search,
'page': this.page.page - 1,
'size': this.page.size
@ -340,4 +344,10 @@ export default {
background-color: #E8F2FF;
}
}
::v-deep .el-table {
.el-table__body-wrapper{
overflow: auto !important;
}
}
</style>
Loading…
Cancel
Save