Browse Source

档案管理-绑定标签

master
xuhuajiao 3 years ago
parent
commit
35026e230e
  1. 11
      src/views/archivesManage/archivesList/archivesDetail.vue
  2. 4
      src/views/archivesManage/archivesList/index.vue
  3. 31
      src/views/archivesManage/archivesList/module/archivesAnjuan/index.vue
  4. 27
      src/views/archivesManage/archivesList/module/data.json
  5. 2
      src/views/archivesManage/archivesList/module/packing/index.vue
  6. 160
      src/views/archivesManage/archivesList/module/partPacking/index.vue
  7. 230
      src/views/archivesManage/archivesList/module/table/index.vue
  8. 1
      src/views/components/category/PreviewForm.vue

11
src/views/archivesManage/archivesList/archivesDetail.vue

@ -39,7 +39,7 @@
<!-- 装盒btn 多选 -->
<el-button class="packing-btn iconfont icon-weibiaoti-2" type="primary" :disabled="crud.selections.length === 0" @click="handlePacking(crud.selections)">装盒</el-button>
<!-- 分卷装盒btn 针对案卷-单选 -->
<el-button v-if="selectedCategory.isType === 3" class="part-btn iconfont icon-weibiaoti-2" type="primary" :disabled="crud.selections.length !== 1" @click="handlePartPacking(crud.selections)">分卷装盒</el-button>
<el-button v-if="selectedCategory.isType === 3" class="part-btn iconfont icon-weibiaoti-2" type="primary" :disabled="crud.selections.length !== 1" @click="handlePacking(crud.selections)">分卷装盒</el-button>
<!-- <el-button class="warehousing-btn iconfont icon-weibiaoti-2" type="primary">入库</el-button> -->
<!-- 借阅btn 多选 -->
<el-button class="lending-btn iconfont icon-weibiaoti-2" :disabled="crud.selections.length === 0" type="primary" @click="lengingVisible=true">借阅</el-button>
@ -140,8 +140,6 @@
<ArchivesInfo ref="archivesInfo" />
<!-- 装盒 -->
<Packing ref="packing" />
<!-- 装盒 -->
<PartPacking ref="partPacking" />
<!-- 绑定标签 -->
<Binding ref="bind" :is-binding="isBinding" />
<!-- 借阅 -->
@ -173,12 +171,11 @@ import PreviewForm from '@/views/components/category/PreviewForm'
import UploadFile from './module/uploadFile/index'
import ArchivesInfo from './module/archivesInfo/index'
import Packing from './module/packing/index'
import PartPacking from './module/partPacking/index'
import Binding from './module/binding/index'
export default {
name: 'ArchivesDetail',
components: { crudOperation, rrOperation, pagination, PreviewForm, UploadFile, ArchivesInfo, Packing, Binding, PartPacking },
components: { crudOperation, rrOperation, pagination, PreviewForm, UploadFile, ArchivesInfo, Packing, Binding },
mixins: [
presenter(),
header(),
@ -450,10 +447,6 @@ export default {
//
handlePacking(data) {
this.$refs.packing.packingVisible = true
},
//
handlePartPacking(data) {
this.$refs.partPacking.partPackingVisible = true
}
}
}

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

@ -28,7 +28,6 @@
<div v-if="selectedCategory.isType !== 1 && !isRecycle" :class="['archives-top', {'archives-fixed-top': selectedCategory.isType===2 || selectedCategory.isType===4 }]">
<el-checkbox v-model="fixedStatusBar">隐藏固定状态栏</el-checkbox>
</div>
<!-- <archivesDetail :selected-category="selectedCategory" /> -->
<!-- 项目 -->
<archivesProject
v-if="selectedCategory.isType === 2"
@ -148,7 +147,6 @@ export default {
}
return null
},
//
expandParents(node) {
node.expanded = true
@ -355,7 +353,6 @@ export default {
}
} else {
this.treeCurrentNode.classList.add('is-current')
console.log(this.$refs.smartTree.getNode(selectedKey).parent.data)
switch (selectedParentVal) {
case 'Search_year':
if (selectedKey.dicCode !== 'Search_year') {
@ -379,7 +376,6 @@ export default {
break
default:
if (selectedKey.dicCode !== 'Search_JGWT') {
console.log(selectedKey.dicName)
this.smartQuery.organizationMatter = selectedKey.dicName
}
}

31
src/views/archivesManage/archivesList/module/archivesAnjuan/index.vue

@ -50,7 +50,7 @@
<!-- 借阅btn 多选 -->
<el-button class="lending-btn iconfont" :disabled="selections.length === 0" type="primary" @click="lengingVisible=true"><svg-icon icon-class="jieyue" class="svg-arc-style" />借阅</el-button>
<!-- 绑定标签btn 单选 -->
<el-button class="binding-btn iconfont" type="primary" :disabled="selections.length !== 1" @click="handleBinding(selections)"><svg-icon icon-class="bindbiaoqian" class="svg-arc-style" />绑定标签</el-button>
<el-button class="binding-btn iconfont" type="primary" :disabled="selections.length !== 1" @click="bindingTag(crud.selections)"><svg-icon icon-class="bindbiaoqian" class="svg-arc-style" />绑定标签</el-button>
</div>
</div>
@ -173,10 +173,9 @@
<!-- 装盒 -->
<Packing ref="packing" />
<!-- 装盒 -->
<PartPacking ref="partPacking" />
<!-- 绑定标签 -->
<Binding ref="bind" :is-binding="isBinding" />
<!-- <Binding ref="bind" :is-binding="isBinding" /> -->
<binding-tag-dlg ref="bindingTag" :binding-id="crud.selections[0] && crud.selections[0].id" :binding-type="1" binding-txt="档案" @refresh="crud.refresh" />
<!-- 借阅 -->
<el-dialog title="借阅" :visible.sync="lengingVisible" :close-on-click-modal="false" :before-close="handleClose">
<span class="dialog-right-top" />
@ -215,13 +214,12 @@ import { exportFile } from '@/utils/index'
import PreviewForm from '@/views/components/category/PreviewForm'
import ArchivesInfo from '../archivesInfo/index'
import Packing from '../packing/index'
import PartPacking from '../partPacking/index'
import Binding from '../binding/index'
import BindingTagDlg from '@/views/components/BindingTagDlg'
import UploadFile from '../uploadFile/index'
export default {
name: 'ArchivesAnjuan',
components: { PreviewForm, ArchivesInfo, Packing, Binding, PartPacking, UploadFile },
components: { PreviewForm, ArchivesInfo, Packing, BindingTagDlg, UploadFile },
mixins: [
header(),
form({})
@ -605,16 +603,13 @@ export default {
this.crud.refresh()
})
},
//
handleBinding(data) {
this.$refs.bind.bindingVisible = true
if (data.tid == null) {
this.isBinding = false
this.$refs.bind.bindingTitle = '绑定标签'
} else {
this.isBinding = true
this.$refs.bind.bindingTitle = '重新绑定'
//
bindingTag(data) {
if (data[0].tid) {
this.$refs.bindingTag.isBinding = true
this.$refs.bindingTag.tidCode = data[0].tid
}
this.$refs.bindingTag.bindingVisible = true
},
//
handlePacking(data, type) {
@ -634,10 +629,6 @@ export default {
this.$refs.packing.archivesTable = this.recycleMain.$refs.file.junneiData
}
this.getTotalSumAll()
},
//
handlePartPacking(data) {
this.$refs.partPacking.partPackingVisible = true
}
}
}

27
src/views/archivesManage/archivesList/module/data.json

@ -1,27 +0,0 @@
{
"code": 200,
"message": "操作成功",
"data": [{
"fileName": "附件标题",
"fileFormat":"xls",
"fileSize":"76kb",
"fileDpi":"1920*1080",
"fileCover":"https://qiniu.aiyxlib.com/yuekan-5-h5bg.jpg",
"create_date":"2022-5-27 08:00"
},{
"fileName": "附件标题2",
"fileFormat":"xls",
"fileSize":"76kb",
"fileDpi":"1920*1080",
"fileCover":"",
"create_date":"2022-5-27 08:00"
},{
"fileName": "附件标题3",
"fileFormat":"xls",
"fileSize":"76kb",
"fileDpi":"1920*1080",
"fileCover":"",
"create_date":"2022-5-27 08:00"
}
]
}

2
src/views/archivesManage/archivesList/module/packing/index.vue

@ -158,7 +158,6 @@
</template>
<script>
//
import { FetchInitCaseList, FetchCartoning } from '@/api/archivesManage/caseManage'
import { header, form } from '@crud/crud'
export default {
@ -289,7 +288,6 @@ export default {
this.selectTableData.splice(index, 1)
this.selectArchivesTable.forEach((item, i) => {
if (item.caseId === row.id) {
console.log(item.id)
this.archivesTable.push(item)
}
})

160
src/views/archivesManage/archivesList/module/partPacking/index.vue

@ -1,160 +0,0 @@
<template>
<el-dialog class="partPackingDialog" title="分卷装盒" :close-on-click-modal="false" :visible.sync="partPackingVisible" :before-close="handleClose">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
<div class="part-packing-wrap" style="height: calc(100vh - 230px);">
<div class="head-container packing-head">
<div class="head-search">
<!-- 搜索 -->
<el-input v-model="query[inputSelect]" clearable size="small" placeholder="请输入" style="width: 245px;" class="input-prepend filter-item" @keyup.enter.native="crud.toQuery">
<el-select slot="prepend" v-model="inputSelect" style="width: 90px" @change="querySelect">
<el-option
v-for="item in queryOption"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-input>
<rrOperation />
</div>
</div>
<div class="part-packing-cont">
<div class="part-packing-item">
<h5 class="part-packing-title">盒列表-待选</h5>
<el-table
ref="tableBoxWaiting"
:data="tableData"
style="width: 100%"
height="calc(100vh/2 - 200px)"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="fileName" label="已装" width="60" align="center" />
<el-table-column prop="fileFormat" label="盒名称" show-overflow-tooltip align="center" />
<el-table-column prop="fileSize" label="TID" show-overflow-tooltip align="center" />
<el-table-column prop="fileDpi" label="条形码" show-overflow-tooltip align="center" />
<el-table-column prop="create_date" label="操作" align="center">
<template>
<el-button class="packing-handle-btn iconfont"><svg-icon icon-class="zhuanghe" class="svg-arc-style" />装盒</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="part-packing-item">
<h5 class="part-packing-title">盒列表-已选</h5>
<el-table
ref="tableBoxSelected"
:data="tableData"
style="width: 100%"
height="calc(100vh/2 - 200px)"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="fileName" label="已装" width="60" align="center" />
<el-table-column prop="fileFormat" label="盒名称" show-overflow-tooltip align="center" />
<el-table-column prop="fileSize" label="TID" show-overflow-tooltip align="center" />
<el-table-column prop="fileDpi" label="条形码" show-overflow-tooltip align="center" />
<el-table-column prop="create_date" label="操作" align="center">
<template>
<el-button class="packing-recall-btn iconfont"><svg-icon icon-class="chehui" class="svg-arc-style" />撤销</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="part-packing-item">
<h5 class="part-packing-title">档案列表-待选</h5>
<el-table
ref="arcListWaiting"
:data="tableData"
style="width: 100%"
height="calc(100vh/2 - 200px)"
@row-click="clickRowHandler"
@selection-change="selectionChangeHandler"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="fileName" label="全宗号" show-overflow-tooltip align="center" />
<el-table-column prop="fileFormat" label="档号" show-overflow-tooltip align="center" />
<el-table-column prop="fileSize" label="归档年度" show-overflow-tooltip align="center" />
<el-table-column prop="fileDpi" label="保密程度" show-overflow-tooltip align="center" />
</el-table>
</div>
<div class="part-packing-item">
<h5 class="part-packing-title">档案列表-已选</h5>
<el-table
ref="arcListSelected"
:data="tableData"
style="width: 100%"
height="calc(100vh/2 - 200px)"
>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="fileName" label="全宗号" show-overflow-tooltip align="center" />
<el-table-column prop="fileFormat" label="档号" show-overflow-tooltip align="center" />
<el-table-column prop="fileSize" label="归档年度" show-overflow-tooltip align="center" />
<el-table-column prop="fileDpi" label="保密程度" show-overflow-tooltip align="center" />
</el-table>
</div>
</div>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="partPackingVisible=false">保存</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
import { header, form } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import data from '../data.json'
export default {
name: 'PartPacking',
components: { rrOperation },
mixins: [
header(),
form({})
],
data() {
return {
partPackingVisible: false,
tableData: [],
selections: null,
inputSelect: null,
queryOption: [
{ value: '1', label: '盒名称' },
{ value: '2', label: 'TID' },
{ value: '3', label: '条形码' }
]
}
},
created() {
this.tableData = data.data
// select -
this.inputSelect = this.queryOption[0].value
},
methods: {
// -select
querySelect(val) {
this.inputSelect = val
},
// table
clickRowHandler(row) {
this.$refs.arcListWaiting.toggleRowSelection(row)
},
// table
selectionChangeHandler(val) {
this.selections = val
console.log(this.selections)
},
//
handleClose(done) {
this.coverBindingVisible = false
done()
}
}
}
</script>
<style lang="scss" scoped>
@import "~@/assets/styles/archives-manage.scss";
</style>

230
src/views/archivesManage/archivesList/module/table/index.vue

@ -1,230 +0,0 @@
<template>
<div>
<!-- table表格渲染 -->
<el-card class="box-card" shadow="never">
<span class="right-top-line" />
<span class="left-bottom-line" />
<el-table
ref="table"
v-loading="crud.loading || getTableDisplayFieldsLoading"
class="archives-table"
:data="anjuanData"
highlight-current-row
style="width: 100%; "
height="calc(100vh - 350px)"
@selection-change="crud.selectionChangeHandler"
@row-click="clickRowHandler"
@cell-dblclick="tableDoubleClick"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" 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-scope="scope">
{{ scope.row[field.fieldName] }}
</template>
</el-table-column>
<el-table-column label="装盒" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<!-- state-active 已装/已入/已借/已绑 -->
<template slot-scope="scope">
<!-- 未装 / 已装 -->
<span class="row-state row-packing state-active">{{ scope.row.case_no ? '已装': '未装' }}</span>
</template>
</el-table-column>
<el-table-column label="入库" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<template slot-scope="">
<!-- 未入 / 已入 -->
<span class="row-state row-warehousing">未入</span>
</template>
</el-table-column>
<el-table-column label="借阅" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<template slot-scope="">
<!-- 待借 / 不可借- 表示 / 已借 -->
<span class="row-state row-lending"></span>
</template>
</el-table-column>
<el-table-column label="标签" width="100" align="center" :fixed="fixedStatusBar?false:'right'">
<template slot-scope="scope">
<!-- 未绑 / 已绑 -->
<span class="row-state row-binding">{{ scope.row.tid ? '已绑': '未绑' }}</span>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</el-card>
<!-- 档案详情 -->
<ArchivesInfo ref="archivesInfo" />
</div>
</template>
<script>
import { FetchInitArchivesView, FetchTableDisplayFields } from '@/api/archivesManage/archivesList'
import { header, form } from '@crud/crud'
// import { initData } from '@/api/data'
// import crudOperation from '@crud/CRUD.operation'
// import rrOperation from '@crud/RR.operation'
import pagination from '@crud/Pagination'
import ArchivesInfo from '../archivesInfo/index'
export default {
name: 'TableAnjuan',
components: { pagination, ArchivesInfo },
mixins: [
header(),
form({})
],
props: {
selectedCategory: {
type: Object,
default: function() {
return {}
}
}
},
data() {
return {
anjuanData: [],
formVisible: false,
formTitle: '新建档案',
isAddOrEditBtn: null,
tableDisplayFields: [], // table-list-title
getTableDisplayFieldsLoading: false, // table-loading
formPreviewData: [], // data
stateOptions: [ // -
{ key: '1', label: '全部' },
{ key: '2', label: '未装' },
{ key: '3', label: '未入' },
{ key: '4', label: '在库' },
{ key: '5', label: '待借' },
{ key: '6', label: '已借' }
],
queryOption: [
{ value: 'maintitle', label: '题名' },
{ value: 'archive_no', label: '档号' },
{ value: 'archive_year', label: '年度' }
],
inputSelect: '',
permission: {
add: ['admin', 'archivesList:add'],
edit: ['admin', 'archivesList:edit'],
del: ['admin', 'archivesList:del'],
download: ['admin', 'archivesList:download']
},
fixedStatusBar: false, // table-fixed
deleteVisible: false, // dialog
deleteData: {}, // data
selections: [], // table
archivesTabIndex: 0, //
arcId: null, // ID
arrySort: [], // sort-query
uploadFileVisible: false, //
archivesInfoVisible: false, //
lengingVisible: false, //
isBinding: false, //
parentsId: null
}
},
watch: {
selectedCategory: function(newValue, oldValue) {
//
if (newValue.isType === 3 || newValue.isType === 4 || newValue.isType === 5) {
// this.crud.query.categoryId = newValue.id
}
},
tableDisplayFields(val) {
this.doLayout()
}
},
mounted() {
this.getTableDisplayFields()
},
methods: {
//
getTableDisplayFields() {
FetchTableDisplayFields({ categoryId: this.selectedCategory.id }).then(data => {
this.tableDisplayFields = data
this.getTableDisplayFieldsLoading = false
this.tableDisplayFields.map(item => {
if (item.queue) {
this.arrySort.push(item.fieldName + ', ' + (item.displayOrder === 1 ? 'asc' : 'desc'))
}
})
this.getTableList()
})
},
// list
getTableList() {
if (this.selectedCategory.pid !== '0') {
this.parentsId = this.selectedCategory.pid
} else {
this.parentsId = null
}
const params = {
'categoryId': this.selectedCategory.id,
'parentsId': this.parentsId,
'isdel': false,
'page': 0,
'size': 10,
'sort': this.arrySort
}
FetchInitArchivesView(params).then(data => {
if (data) {
this.anjuanData = data.content
}
})
},
// table -
tableDoubleClick(row) {
this.$refs.archivesInfo.archivesInfoVisible = true
const params = {
categoryId: this.selectedCategory.id,
archivesId: row.id
}
this.getFormInfo(params)
},
// table - row
clickRowHandler(row) {
this.$refs.table.toggleRowSelection(row)
this.selections = this.crud.selections
console.log(this.crud.selections.id)
},
//
toDelete(data) {
this.deleteData = data
this.deleteVisible = true
},
/* 重新渲染table组件 防止table-fixed 错位 配合watch-table数据 */
doLayout() {
this.$nextTick(() => {
this.$refs.table.doLayout()
})
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss" scoped>
@import "~@/assets/styles/archives-manage.scss";
.preview-dialog {
::v-deep .el-dialog {
.el-dialog__body{
padding: 0;
}
.preview-content {
width: auto !important;
margin-right: 6px;
overflow: hidden;
overflow-y: auto;
.el-textarea__inner {
border: 1px solid #339cff;
background-color: transparent;
}
}
.dialog-footer{
margin: 0 auto;
padding: 15px 0 20px 0;
}
}
}
</style>

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

@ -284,7 +284,6 @@ export default {
}
}
delete this.addOrUpdateForm.id
console.log(this.addOrUpdateForm)
this.$refs[formName].validate((valid) => {
if (valid) {
const params = {

Loading…
Cancel
Save