archives-html
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.
 
 
 
 
 

574 lines
17 KiB

<template>
<div>
<div class="aside">
<div>
<br>
<br>
<el-tree ref="tree" :props="{children: 'children', label: 'label' }"
:data="caOptions"
default-expand-all
@node-click="handleNodeClick"
node-key="id"
:expand-on-click-node="false" >
<span slot-scope="{ node, data }">
<span>
<i class="el-icon-folder"></i>
{{ node.label }}
</span>
</span>
</el-tree>
</div>
</div>
<div style="float:left;width:83%">
<el-tabs type="card" v-model="activeTabs" @tab-click="handleClick">
<el-tab-pane name="1">
<span slot="label"><i class="el-icon-folder-checked"></i> 预立卷</span>
</el-tab-pane>
<el-tab-pane name="2">
<span slot="label"><i class="el-icon-thumb"></i> 待审核</span>
</el-tab-pane >
<el-tab-pane name="3">
<span slot="label"><i class="el-icon-refresh-left"></i> 已退回</span>
</el-tab-pane >
<br>
<storage-time @storageTime="getStorageTimeValue" @changeArchiveScopeValue="changeArchiveScopeValue" :archiveScopeValue="code"></storage-time>
<avue-crud ref="crud" style="padding-left:8px"
:page="page"
:data="tableData"
:table-loading="tableLoading"
@on-load="getPage"
@refresh-change="refreshChange"
:option="getOption"
v-model="form"
@row-update="handleUpdate"
@row-save="handleSave"
@row-del="handleDel"
@search-change="searchChange"
@selection-change="selectionChange" class="mainCrud"
>
<!-- 左边按钮组-->
<template slot="menuLeft">
<el-button type="primary" size="small" icon="el-icon-plus" @click="insertRecord()">新增</el-button>
<el-button type="warning" size="small" icon="el-icon-s-promotion" @click="transfer()">移交</el-button>
<router-link to="/archiveturnoverinfo"><el-button
type="success" size="small" icon="el-icon-s-claim">移交清单</el-button></router-link>
<el-button type="danger" size="small" icon="el-icon-delete" @click="handleDel()">删除</el-button>
</template>
<!-- 行内按钮组-->
<template slot="menu" slot-scope="scope">
<el-dropdown ><span class="el-dropdown-link"><el-button type="text" size="small">操作列表<i class="el-icon-arrow-down el-icon--right"></i></el-button>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item ><span @click="showFileList(scope.row,scope.index)"><i class="el-icon-document"></i> 卷内文件</span>
</el-dropdown-item>
<el-dropdown-item v-if='scope.row.status == "1" || scope.row.status == "3"' ><span @click="updateRecordInfo(scope.row)"><i class="el-icon-edit"></i> 编辑</span>
</el-dropdown-item>
<el-dropdown-item v-if='scope.row.status == 1 || scope.row.status == 3'><span @click="electronicFileUpload(scope.row)"><i class="el-icon-upload"></i> 上传</span>
</el-dropdown-item>
<el-dropdown-item ><span @click="showFileUploadList(scope.row)"><i class="el-icon-tickets"></i>上传列表</span>
</el-dropdown-item>
<el-dropdown-item v-if='scope.row.status == 1'><span @click="copy(scope.row)"><i class="el-icon-document-copy"></i> 复制</span>
</el-dropdown-item>
<el-dropdown-item ><span @click="view(scope.row)"><i class="el-icon-view"></i> 查看</span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</avue-crud>
</el-tabs>
</div>
<!--卷内文件-->
<el-dialog
:title="title"
:visible.sync="dialogVisible"
v-if="dialogVisible"
width="70%"
>
<archiveFileinfo :arId="arId" :archiveCategory="code" :status="status" ref="archiveFileinfo" :archiveCategoryName="archiveCategory" :archiveScope="archiveScope" :storageTime="storageTime"></archiveFileinfo>
</el-dialog>
<!-- 上传组件-->
<file-upload ref="fileUploadRef" @closeFlag="closeFlag"></file-upload>
<!-- 文件列表组件-->
<show-file-list ref="showFileUploadRef"></show-file-list>
</div>
</template>
<script>
import {listInfo, addInfo, downLoadUtil} from '@/api/archives/archiveRecord.js'
import {delInfo, transfer, updateInfo} from "@/api/archives/archiveRecord";
import archiveFileinfo from '@/views/archives/archiveFileInfo';
import {treeselectAndYear} from "@/api/archives/categoryInfo";
import {getOptionUtils} from "@/utils/util";
import fileUpload from '@/views/archives/fileUpload';
import ShowFileList from "@/views/archives/showFileList/index";
import StorageTime from "@/views/archives/commonComponent/storageTime";
export default {
components: {StorageTime, ShowFileList, archiveFileinfo,fileUpload},
data() {
return {
title:'',
status:'',
year:null,
dialogVisible:false,
tableLoading:false,
storageTime:'',
selectDate: [],
activeTabs:'1',
arId:"",
option: {
filter: false,
defaultExpandAll: true,
props: {
labelText:'标题',
label:'label',
value:'code',
children:'children'
}
},
form: {},
tableData: [],
code:'WS',
page: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 10, // 每页显示多少条
},
caOptions: [],
defaultProps: {
children: "children",
label: "label",
},
paramsSearch:{
archiveCategory:'WS'
},
archiveCategory:'',
archiveScope:'',
storageTimeValue:null,
archiveScopeValue:null,
recordType:null,
}
},
created() {
this.getTreeselect();
},
watch:{
'form.archiveCategory'(value){
this.form.archiveCategory=this.code
},
getOption(value){
if (this.activeTabs=='3'){
value.column[1].hide=false
}else{
value.column[1].hide=true
}
},
'activeTabs'(val){
if (val=='3'){
this.$refs.crud.option.column[1].hide=false
}else{
this.$refs.crud.option.column[1].hide=true
}
}
},
computed: {
getOption() {
return getOptionUtils(this.code)
}
},
mounted() {
},
methods: {
changeArchiveScopeValue(val){
if (this.code='ZX'){
if (val!=null&&val!='-1'){
this.recordType=val;
}else {
this.recordType = null;
}
}else {
if (val!=null&&val!='-1'){
this.archiveScopeValue=val;
}else{
this.archiveScopeValue=null;
}
}
},
getStorageTimeValue(val){
if (val!=null&&val!='0'){
this.storageTimeValue=val;
}else{
this.storageTimeValue=null;
}
},
showFileUploadList(row){
this.$refs.showFileUploadRef.fileUpParamsSearch.fileId=row.id
this.$refs.showFileUploadRef.fileUpParamsSearch.fileType='record'
this.$refs.showFileUploadRef.fileUploadPage.currentPage=1
this.$refs.showFileUploadRef.getUpPage(this.$refs.showFileUploadRef.fileUploadPage)
this.$refs.showFileUploadRef.drawer=true
},
closeFlag(){
this.getPage(this.page)
},
insertRecord(){
this.$refs.crud.rowAdd()
},
copy(row){
let obj={
address: row.address,
archiveCategory: row.archiveCategory,
archiveScope: row.archiveScope,
buildingNumber: row.buildingNumber,
cabinetNumber: row.cabinetNumber,
country: row.country,
department: row.department,
issuingUnit: row.issuingUnit,
major: row.major,
partner: row.partner,
projectNumber: row.projectNumber,
project_name: row.project_name,
secretLevel: row.secretLevel,
storageTime: row.storageTime,
winnersUnit: row.winnersUnit,
startDate:row.startDate,
endDate:row.endDate,
descriptionTime:row.descriptionTime,
recordType:row.recordType,
year: row.year,
ownerName:row.ownerName,
provide_date:row.provide_date,
location_num:row.location_num,
original_path:row.original_path,
see_no:row.see_no,
disc_number:row.disc_number,
number:row.number
}
this.$refs.crud.rowCopy(obj)
},
view(row){
this.$refs.crud.rowView(row)
},
electronicFileUpload(row){
this.$refs.fileUploadRef.options.query.fileId = row.id;
this.$refs.fileUploadRef.options.query.archiveCategory=row.$archiveCategory
if (row.$archiveScope!=null&&row.archiveScope!=undefined&&''!=row.$archiveScope){
this.$refs.fileUploadRef.options.query.archiveScope=row.$archiveScope
}
this.$refs.fileUploadRef.options.query.storageTime=row.$storageTime
this.$refs.fileUploadRef.dsBox=true;
},
updateRecordInfo(row,index){
this.$refs.crud.rowEdit(row, index);
},
//移交
transfer(){
let _this = this
if(this.selectDate.length==0){
_this.$message({
showClose: true,
message: '请先选择需要移交的数据',
type: 'warning'
})
return;
}
let ids = [];
for (var i=0;i<this.selectDate.length;i++){
let row = this.selectDate[i];
if(row.status=='2'){
_this.$message({
showClose: true,
message: '选中档案包含已经移交过的档案请勿重复操作',
type: 'warning'
})
return;
}
ids.push(row.id);
}
this.$confirm('是否确认移交此数据', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function () {
return transfer(ids)
}).then(data => {
_this.$notify({
title:'成功',
showClose: true,
message: '移交成功',
type: 'success'
})
this.getPage(this.page)
}).catch(function (err) {
})
},
showFileList(row,index){
this.title=row.boxName+"》卷内文件"
this.arId=row.id
this.status=row.status
this.archiveCategory=row.$archiveCategory
if (row.$archiveScope!=undefined&&row.$archiveScope!=null&&""!=row.$archiveScope){
this.archiveScope=row.$archiveScope
}else{
this.archiveScope=null
}
this.storageTime=row.$storageTime
this.dialogVisible=true
setTimeout(()=>{
let page={
currentPage: 1, // 当前页数
pageSize: 10, // 每页显示多少条
};
this.$refs.archiveFileinfo.getPage(page)
},)
},
getTreeselect() {
let obj={
parentId:1
}
treeselectAndYear(obj).then((response) => {
this.caOptions = response.data;
});
},
// 节点单击事件
handleNodeClick(data) {
//是否二级查询
let isSecond = data.code.indexOf("-")!=-1;
//节点单击选中的档案类目
let code = isSecond?data.code.split("-")[0]:data.code;
//如果选中的code不等于当前code则需要滞空查询条件;因为一定是选了其他类型的档案(二级查询不能滞空)
this.year=null;
if (code!=this.code){
this.archiveScopeValue=null;
this.storageTimeValue=null;
this.recordType=null;
this.paramsSearch={};
this.$refs.crud.searchReset();
}
//如果二级查询
if (isSecond){
//如果是基建档案
if (code=='JJ'){
let lables=data.label.split("-");
this.paramsSearch['fileNum']=lables[0];
this.paramsSearch.project_name =lables[1]
}else{
this.year=data.label;
}
}else{
//一级查询如果是基建档案,则滞空fileNum;和右侧档号查询只取其一
if (code=='JJ'){
this.paramsSearch['fileNum']=null;
}
}
//选中的档案类目赋给当前code
this.code=code;
this.$set(this.form,'archiveCategory',this.code);
this.page.currentPage=1
this.getPage(this.page)
// if (data.code.indexOf("-")!=-1){
// let split= data.code.split("-");
// this.code=split[0];
// this.year=split[1]
// }else{
// if (data.code!=this.code){
// this.archiveScopeValue=null;
// this.storageTimeValue=null;
// this.paramsSearch={};
// this.$refs.crud.searchReset();
// }
// this.code=data.code;
// this.year=null
// }
// this.page.currentPage=1
// this.getPage(this.page)
// setTimeout(n=>{
// this.form.archiveCategory=this.code;
// },1000)
},
// 筛选节点
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
searchChange(params, done) {
if(params.searchDate && params.searchDate.length > 1){
params.searchDate = params.searchDate[0]+","+params.searchDate[1];
}else {
delete(params.searchDate);
}
this.paramsSearch = params
this.page.currentPage = 1
this.getPage(this.page, params)
done()
},
getPage(page, params) {
this.paramsSearch.status=this.activeTabs;
this.paramsSearch.archiveCategory=this.code;
this.paramsSearch.year=this.year;
this.paramsSearch.storageTime=this.storageTimeValue;
this.paramsSearch.archiveScope=this.archiveScopeValue;
if (this.recordType!=null){
this.paramsSearch.recordType=this.recordType;
}
this.tableLoading = true;
listInfo(Object.assign({
pageNum: page.currentPage,
pageSize: page.pageSize,
}, params, this.paramsSearch)).then(response => {
this.tableData = response.rows
if (this.code==='ZX'){
this.tableData.forEach(item=>{
if (item.recordType){
item.recordType=Number(item.recordType)
}
})
}
this.page.total = response.total.toString()
this.page.currentPage=page.currentPage
this.page.pageSize=page.pageSize
this.tableLoading = false
}).catch(() => {
this.tableLoading = false
})
},
/**
* @title 数据删除
* @param row 为当前的数据
* @param index 为当前删除数据的行数
*
**/
/**
* @title 数据删除
*
**/
handleDel: function () {
if (this.selectDate.length == 0) {
this.$notify({
showClose: true,
message: '请先选择需要删除的数据',
type: 'warning'
})
} else {
let ids = new Array();
let length = this.selectDate.length;
for (let i = 0; i < length; i++) {
if (this.selectDate[i].status=='2'){
this.$notify({
showClose: true,
message: '错误,不能删除待审核中的档案',
type: 'warning'
})
return;
}
ids.push(this.selectDate[i].id)
}
this.$confirm('是否确认删除此数据', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(function () {
return delInfo(ids);
}).then(data => {
this.$notify({
title: '成功',
showClose: true,
message: '删除成功',
type: 'success'
});
this.getPage(this.page);
}).catch(function (err) {
})
}
},
/**
* @title 数据更新
* @param row 为当前的数据
* @param index 为当前更新数据的行数
* @param done 为表单关闭函数
*
**/
handleUpdate: function (row, index, done, loading) {
updateInfo(row).then(response => {
this.$notify({
title: '成功',
showClose: true,
message: '修改成功',
type: 'success'
})
done()
this.getPage(this.page)
}).catch(() => {
loading()
})
},
/**
* @title 数据添加
* @param row 为当前的数据
* @param done 为表单关闭函数
*
**/
handleSave: function (row, done, loading) {
//预立卷
row.status='1';
addInfo(row).then(response => {
this.$notify({
title: '成功',
showClose: true,
message: '添加成功',
type: 'success'
})
done()
this.getPage(this.page)
}).catch((res) => {
done()
})
},
/**
* 刷新回调
*/
refreshChange(page) {
this.getPage(this.page)
},
handleClick(tab, event) {
this.getPage(this.page);
},
//多选
selectionChange(list) {
this.selectDate = list;
},
}
}
</script>
<style>
.aside {
width: 17%;
height: 100%;
margin-bottom: 50px;
text-align: center;
float: left;
padding-left: 35px;
padding-right: 10px;
}
</style>