You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
475 lines
18 KiB
475 lines
18 KiB
<template>
|
|
<div>
|
|
<div :class="[ isTitleType === 6 || isTitleType === 2 ? 'collect-header manage-fixed-style' : 'collect-header']">
|
|
<h4 :class="classType">{{ collectTitle }} <span v-if="isTitleType !== 2 && !(isTitleType === 3 && (selectedCategory.arrangeType === 1 || selectedCategory.arrangeType === 2) )"> > {{ test }}</span></h4>
|
|
<div class="head-search">
|
|
<el-select
|
|
v-if="isTitleType === 3 && selectedCategory.arrangeType !== 3"
|
|
v-model="selectStatus"
|
|
multiple
|
|
collapse-tags
|
|
style="margin-right: 10px;"
|
|
placeholder="请选择"
|
|
>
|
|
<el-option
|
|
v-for="item in options"
|
|
:key="item.value"
|
|
:label="item.label"
|
|
:value="item.value"
|
|
/>
|
|
</el-select>
|
|
<!-- 搜索 -->
|
|
<div v-if="isTitleType !== 6">
|
|
<el-input v-model="query.search" clearable size="small" :placeholder="placeholderType" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" />
|
|
<el-button class="filter-item filter-search" size="mini" type="success" icon="el-icon-search" @click="handleSearch">搜索</el-button>
|
|
<el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left">重置</el-button>
|
|
</div>
|
|
</div>
|
|
<div v-if="!isRecycle" class="collect-menu">
|
|
<el-menu
|
|
:default-active="activeMenuIndex"
|
|
mode="horizontal"
|
|
@select="handleSelect"
|
|
>
|
|
<el-submenu v-if="isTitleType !== 6" index="1">
|
|
<template slot="title">
|
|
<i class="iconfont icon-changgui" />
|
|
<span>常规</span>
|
|
</template>
|
|
<el-menu-item-group class="collect-submenu-group">
|
|
<el-menu-item v-if="isTitleType !== 6" index="1-1" @click="handleForm('edit')">编辑</el-menu-item>
|
|
</el-menu-item-group>
|
|
</el-submenu>
|
|
<el-submenu v-if="selectedCategory.isType === 2 && isTitleType !==4 && isTitleType !== 6" index="2">
|
|
<template slot="title">
|
|
<i class="iconfont icon-zhengli" />
|
|
<span>整理</span>
|
|
</template>
|
|
<el-menu-item-group class="collect-submenu-group">
|
|
<el-menu-item v-if="isTitleType === 3" index="2-1" @click="bindingTag(selections)">标签绑定</el-menu-item>
|
|
<el-menu-item-group v-if="isTitleType === 3" class="collect-submenu-group submenu-tree">
|
|
<template slot="title">档案装盒</template>
|
|
<el-menu-item index="2-2">装盒</el-menu-item>
|
|
<el-menu-item v-if="selectedCategory.arrangeType !== 1" index="2-3">分卷装盒</el-menu-item>
|
|
</el-menu-item-group>
|
|
<el-menu-item-group v-if="selectedCategory.isType === 2" class="collect-submenu-group submenu-tree">
|
|
<template slot="title">档案移交</template>
|
|
<el-menu-item index="2-4">在线移交</el-menu-item>
|
|
<el-menu-item index="2-5">离线移交</el-menu-item>
|
|
</el-menu-item-group>
|
|
<el-menu-item v-if="selectedCategory.isType === 2" index="2-6">导出ZIP包</el-menu-item>
|
|
<el-menu-item v-if="selectedCategory.isType === 2" index="2-7">档案退回</el-menu-item>
|
|
<el-menu-item v-if="isTitleType === 3 " index="2-8">开放鉴定</el-menu-item>
|
|
<el-menu-item v-if="isTitleType === 3 " index="2-9">销毁鉴定</el-menu-item>
|
|
</el-menu-item-group>
|
|
</el-submenu>
|
|
<el-submenu index="3">
|
|
<template slot="title">
|
|
<i class="iconfont icon-gengduo" />
|
|
<span>更多</span>
|
|
</template>
|
|
<el-menu-item-group class="collect-submenu-group">
|
|
<el-menu-item v-if="isTitleType !== 6" index="3-1" @click="handleExport">导出</el-menu-item>
|
|
<el-menu-item v-if="isTitleType === 3" index="3-2" @click="handlePrint">打印</el-menu-item>
|
|
<el-menu-item v-if="isTitleType === 6" index="3-3" @click="handleOriginalDownload">下载</el-menu-item>
|
|
</el-menu-item-group>
|
|
</el-submenu>
|
|
</el-menu>
|
|
</div>
|
|
|
|
<div v-if="isRecycle && (isTitleType === 2 || (isTitleType === 3 && selectedCategory.arrangeType !== 3))" class="collect-menu">
|
|
<el-button class="filter-item" size="mini" type="success" @click="toRecover"><i class="iconfont icon-huifu" />恢复</el-button>
|
|
<el-button class="filter-item" size="mini" type="success" @click="toCompletelyDelete"><i class="iconfont icon-shanchu" />彻底删除</el-button>
|
|
</div>
|
|
|
|
<!--新增 / 编辑 表单组件-->
|
|
<el-dialog class="preview-dialog" :modal-append-to-body="false" :close-on-click-modal="false" append-to-body :before-close="handleClose" :visible="formVisible" :title="formTitle">
|
|
<span class="dialog-right-top" />
|
|
<span class="dialog-left-bottom" />
|
|
<div class="setting-dialog">
|
|
<!-- @emitTableList="getTableList" -->
|
|
<PreviewForm v-if="formPreviewData.length" ref="previewForm" :is-has-code="true" :is-disabled="false" :form-preview-data.sync="formPreviewData" :selected-category="selectedCategory" :parents-id="parentsId" :arc-id="arcId" :is-des-form-type="isDesFormType" />
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="handlerArchivesSubmit">保存</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 绑定标签 -->
|
|
<binding-tag-dlg ref="bindingTag" :binding-id="selections[0] && selections[0].id" :binding-type="1" binding-txt="档案" />
|
|
|
|
<!--删除对话框组件-->
|
|
<el-dialog class="tip-dialog" title="提示" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="deleteVisible">
|
|
<div class="setting-dialog">
|
|
<div class="tip-content">
|
|
<p class="tipMsg">此删除将把会所选条目与其子集放入回收站</p>
|
|
<span>你是否还要继续?</span>
|
|
</div>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="text" @click="deleteVisible = false">取消</el-button>
|
|
<el-button type="primary" @click.native="handleDelConfirm">确定</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 导出 -->
|
|
<el-dialog class="tip-dialog" title="导出" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="exportVisible">
|
|
<div class="setting-dialog">
|
|
<div class="tip-content">
|
|
<p class="tipMsg">此操作将导出所选数据</p>
|
|
<span>你是否还要继续?</span>
|
|
</div>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="text" @click="downloadVisible = false">取消</el-button>
|
|
<el-button type="primary" @click.native="handleExportConfirm">确定</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 打印 -->
|
|
<Print ref="printRef" />
|
|
|
|
<!-- 回收站 - 恢复 -->
|
|
<el-dialog class="tip-dialog" title="提示" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="recoverVisible">
|
|
<div class="setting-dialog">
|
|
<div class="tip-content">
|
|
<p class="tipMsg">此恢复将会把所选条目及其子集一并恢复</p>
|
|
<span>你是否还要继续?</span>
|
|
</div>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="text" @click="recoverVisible = false">取消</el-button>
|
|
<el-button type="primary" @click.native="handleRecover">确定</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
|
|
<!-- 回收站 - 彻底删除 -->
|
|
<el-dialog class="tip-dialog" title="提示" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="completelyDeleteVisible">
|
|
<div class="setting-dialog">
|
|
<div class="tip-content">
|
|
<p class="tipMsg">此删除将把会所选条目与其子集彻底删除</p>
|
|
<span>你是否还要继续?</span>
|
|
</div>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="text" @click="completelyDeleteVisible = false">取消</el-button>
|
|
<el-button type="primary" @click.native="handleCompletelyDelete">确定</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</div>
|
|
<!-- v-if="selectedCategory.isType !== 1 && !isRecycle" :class="['archives-top', {'archives-fixed-top': selectedCategory.isType === 2 || selectedCategory.isType === 4 }]" -->
|
|
<div v-if="isTitleType !== 2 && !isRecycle && isTitleType !== 6" class="mangement-fixed-top">
|
|
<el-checkbox v-model="fixedStatusBar" @change="statusBarChecked">隐藏状态栏</el-checkbox>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { manageLibraryCrud } from '../mixins/index'
|
|
import { FetchInitCategoryInputFieldByPid } from '@/api/system/category/category'
|
|
import PreviewForm from '@/views/components/category/PreviewForm'
|
|
import Print from './print/index'
|
|
import BindingTagDlg from '@/views/components/BindingTagDlg'
|
|
// import { exportFile } from '@/utils/index'
|
|
import { mapGetters } from 'vuex'
|
|
export default {
|
|
name: 'CollectHeader',
|
|
components: { PreviewForm, BindingTagDlg, Print },
|
|
mixins: [manageLibraryCrud],
|
|
props: {
|
|
selectedCategory: {
|
|
type: Object,
|
|
default: function() {
|
|
return {}
|
|
}
|
|
},
|
|
isTitleType: {
|
|
type: Number,
|
|
default: 2
|
|
},
|
|
arcId: {
|
|
type: String,
|
|
default: function() {
|
|
return ''
|
|
}
|
|
},
|
|
test: {
|
|
type: String,
|
|
default: function() {
|
|
return ''
|
|
}
|
|
},
|
|
isRecycle: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
selections: {
|
|
type: Array,
|
|
default: function() {
|
|
return []
|
|
}
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
options: [
|
|
{
|
|
value: '未装盒',
|
|
label: '未装盒'
|
|
},
|
|
{
|
|
value: '已装盒',
|
|
label: '已装盒'
|
|
},
|
|
{
|
|
value: '未入库',
|
|
label: '未入库'
|
|
},
|
|
{
|
|
value: '已入库',
|
|
label: '已入库'
|
|
},
|
|
{
|
|
value: '无实体',
|
|
label: '无实体'
|
|
},
|
|
{
|
|
value: '有实体',
|
|
label: '有实体'
|
|
},
|
|
{
|
|
value: '实体在库',
|
|
label: '实体在库'
|
|
},
|
|
{
|
|
value: '实体待借',
|
|
label: '实体待借'
|
|
},
|
|
{
|
|
value: '实体已借',
|
|
label: '实体已借'
|
|
}
|
|
],
|
|
selectStatus: null,
|
|
activeMenuIndex: '1',
|
|
formVisible: false,
|
|
formTitle: '项目',
|
|
formPreviewData: [], // 预览界面data
|
|
deleteVisible: false,
|
|
moveVisible: false,
|
|
exportVisible: false,
|
|
downloadVisible: false,
|
|
recoverVisible: false,
|
|
completelyDeleteVisible: false,
|
|
parentsId: null, // 父id
|
|
isDesFormType: null // 区分是门类得还是档案得
|
|
}
|
|
},
|
|
computed: {
|
|
...mapGetters([
|
|
'baseApi'
|
|
]),
|
|
collectTitle() {
|
|
if (this.isTitleType === 2) {
|
|
return '项目'
|
|
} else if (this.isTitleType === 3) {
|
|
if (this.selectedCategory.arrangeType === 1) {
|
|
return '文件'
|
|
} else {
|
|
return '案卷'
|
|
// if (this.activeIndex === 1) {
|
|
// return '文件'
|
|
// } else {
|
|
// return '案卷'
|
|
// }
|
|
}
|
|
} else if (this.isTitleType === 4) {
|
|
return '卷内'
|
|
} else if (this.isTitleType === 6) {
|
|
return '原文'
|
|
}
|
|
return ''
|
|
},
|
|
classType() {
|
|
if (this.isTitleType === 2) {
|
|
return ''
|
|
} else if (this.isTitleType === 3) {
|
|
return 'is-anjuan'
|
|
} else if (this.isTitleType === 4) {
|
|
return 'is-juannei'
|
|
} else if (this.isTitleType === 6) {
|
|
return 'is-file'
|
|
}
|
|
return ''
|
|
},
|
|
placeholderType() {
|
|
if (this.isTitleType === 2) {
|
|
return '输入项目名称或项目编号搜索'
|
|
} else if (this.isTitleType === 3 || this.isTitleType === 4) {
|
|
return '输入题名或档号搜索'
|
|
}
|
|
return '输入项目名称或项目编号搜索'
|
|
}
|
|
},
|
|
created() {
|
|
},
|
|
mounted() {
|
|
if (localStorage.getItem('statusBarFixedType') !== 'undefined') {
|
|
this.fixedStatusBar = JSON.parse(localStorage.getItem('statusBarFixedType')) === true
|
|
this.$emit('status-bar-checked-changed', this.fixedStatusBar)
|
|
}
|
|
},
|
|
methods: {
|
|
// 缓存用户对于固定栏操作习惯
|
|
statusBarChecked(val) {
|
|
console.log('statusVal', val)
|
|
this.fixedStatusBar = val
|
|
this.$emit('status-bar-checked-changed', this.fixedStatusBar)
|
|
localStorage.setItem('statusBarFixedType', val)
|
|
},
|
|
handleSelect(key, keyPath) {
|
|
console.log(key, keyPath)
|
|
},
|
|
// 著录界面-form/详情-api
|
|
handleForm(type) {
|
|
if (type === 'add') {
|
|
this.formVisible = true
|
|
this.formTitle = '新增' + this.collectTitle
|
|
// this.arcId = null
|
|
} else if (type === 'edit') {
|
|
console.log(this.selections)
|
|
// this.arcId = this.selections[0].id
|
|
if (this.selections.length === 0) {
|
|
this.$message('您还未勾选需要操作的条目,请先确认!')
|
|
return false
|
|
} else if (this.selections.length > 1) {
|
|
this.$message('编辑操作只可勾选唯一目标条目,请先确认!')
|
|
return false
|
|
}
|
|
this.formVisible = true
|
|
this.formTitle = '编辑' + this.collectTitle
|
|
}
|
|
// this.form.dictionaryConfigId = {}
|
|
// this.formPreviewData = []
|
|
// 档案预编辑获取字段
|
|
this.getFormInfo(type)
|
|
},
|
|
getFormInfo(type) {
|
|
FetchInitCategoryInputFieldByPid({ categoryId: this.selectedCategory.id }).then(data => {
|
|
this.formPreviewData = data
|
|
this.$nextTick(() => {
|
|
if (type === 'edit') {
|
|
this.$refs.previewForm.addOrUpdateForm = data.echo
|
|
} else {
|
|
// if (this.recycleMain.selectedCategory.isType !== 5) {
|
|
// 新增时拿到项目和案卷的相同的字段的值
|
|
// this.formPreviewData.forEach(item => {
|
|
// if (isAnOrJuan === 1) {
|
|
// if (this.recycleMain.selectedCategory.isType !== 3) {
|
|
// if (this.recycleMain.projectSelection[item.fieldName]) {
|
|
// this.$refs.previewForm.addOrUpdateForm = JSON.parse(JSON.stringify(this.recycleMain.projectSelection))
|
|
// }
|
|
// }
|
|
// } else if (isAnOrJuan === 2) {
|
|
// if (this.recycleMain.anjuanSelection[item.fieldName]) {
|
|
// this.$refs.previewForm.addOrUpdateForm = JSON.parse(JSON.stringify(this.recycleMain.anjuanSelection))
|
|
// }
|
|
// }
|
|
// })
|
|
// }
|
|
}
|
|
this.isDesFormType = 'arcives'
|
|
this.$refs.previewForm.FetchNoFormatField(this.selectedCategory.id)
|
|
})
|
|
})
|
|
},
|
|
// form - submit
|
|
handlerArchivesSubmit() {
|
|
this.formVisible = false
|
|
this.$refs.previewForm.submitForm('addOrUpdateForm', this.selectedCategory.id)
|
|
this.selections = []
|
|
},
|
|
// 删除 - 关闭
|
|
handleClose(done) {
|
|
this.formVisible = false
|
|
done()
|
|
},
|
|
// 删除
|
|
// toDelete() {
|
|
// if (this.selections.length === 0) {
|
|
// this.$message('您还未勾选需要操作的条目,请先确认!')
|
|
// return false
|
|
// }
|
|
// this.deleteVisible = true
|
|
// },
|
|
// 删除 - 确认
|
|
handleDelConfirm() {
|
|
this.deleteVisible = false
|
|
},
|
|
// 绑定标签
|
|
bindingTag(data) {
|
|
if (data[0].tid) {
|
|
this.$refs.bindingTag.isBinding = true
|
|
this.$refs.bindingTag.tidCode = data[0].tid
|
|
}
|
|
this.$refs.bindingTag.bindingVisible = true
|
|
},
|
|
// 导出
|
|
handleExport() {
|
|
this.exportVisible = true
|
|
},
|
|
handleExportConfirm() {
|
|
this.exportVisible = false
|
|
},
|
|
// 打印
|
|
handlePrint() {
|
|
if (this.selections.length === 0) {
|
|
this.$refs.printRef.form.printRange = '当页条目'
|
|
} else {
|
|
this.$refs.printRef.form.printRange = '勾选条目'
|
|
}
|
|
this.$refs.printRef.printVisible = true
|
|
},
|
|
// 原文内的附件下载
|
|
handleOriginalDownload() {
|
|
if (this.selections.length > 1 || this.selections.length === 0) {
|
|
this.$message('下载操作只可勾选唯一目标条目,请先确认!')
|
|
return false
|
|
}
|
|
},
|
|
// 回收站 - 恢复
|
|
toRecover() {
|
|
if (this.selections.length === 0) {
|
|
this.$message('您还未勾选需要操作的条目,请先确认!')
|
|
return false
|
|
}
|
|
this.recoverVisible = true
|
|
},
|
|
handleRecover() {
|
|
this.recoverVisible = false
|
|
},
|
|
// 回收站 - 彻底删除
|
|
toCompletelyDelete() {
|
|
if (this.selections.length === 0) {
|
|
this.$message('您还未勾选需要操作的条目,请先确认!')
|
|
return false
|
|
}
|
|
this.completelyDeleteVisible = true
|
|
},
|
|
handleCompletelyDelete() {
|
|
this.completelyDeleteVisible = false
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang='scss' scoped>
|
|
.collect-header{
|
|
border-top: none !important;
|
|
padding: 20px 0 0 0 !important;
|
|
}
|
|
.manage-fixed-style{
|
|
margin-bottom: 30px;
|
|
}
|
|
|
|
</style>
|