|
|
@ -11,38 +11,42 @@ |
|
|
|
<li :class="{'active-tab-nav': archivesTabIndex == 2}" @click="changeActiveTab(2)">操作记录</li> |
|
|
|
</ul> |
|
|
|
<div style="position: absolute; right: 0; top:0;"> |
|
|
|
<span class="row-state defalut-state">未传阅</span> |
|
|
|
<!-- <span class="row-state soon-state">传阅中</span> --> |
|
|
|
<!-- <span class="row-state end-state">已传阅</span> --> |
|
|
|
<span |
|
|
|
class="row-state" |
|
|
|
:class="getStateClass(readStatus)" |
|
|
|
> |
|
|
|
{{ readStatus || '未传阅' }} |
|
|
|
</span> |
|
|
|
</div> |
|
|
|
<!-- 基本信息 --> |
|
|
|
<div v-if="archivesTabIndex===0" class="base-info item-content"> |
|
|
|
<el-row> |
|
|
|
<el-col v-for="(item,index) in archivesDetailsData" :key="index" :span="item.isLine ? 24 : 12" class="base-info-item"> |
|
|
|
<span>{{ item.fieldCnName }}:</span> |
|
|
|
<p :style="{ width: ( item.editLength ? item.editLength+'px' : '' ), flex: ( !item.editLength ? 1 : '' )}">{{ item.context }}</p> |
|
|
|
<p :style="{ width: ( item.editLength ? item.editLength+'px' : '' ), flex: ( !item.editLength ? 1 : '' ), whiteSpace: 'pre-line'}">{{ item.context }}</p> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<div> |
|
|
|
<div class="childDevice-info"> |
|
|
|
<p><i style="font-style:normal; font-weight: bold;">待传阅者:</i><span>张三、李四</span></p> |
|
|
|
<div v-if="borrowerList.length !== 0" class="childDevice-info"> |
|
|
|
<p><i style="font-style:normal; font-weight: bold;">待传阅者:</i><span>{{ borrowerList | formatBorrowerList }}</span></p> |
|
|
|
</div> |
|
|
|
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; padding: 0 20px 0 10px;"> |
|
|
|
<div style="display: flex; justify-content: space-between; align-items: center; margin-top: 20px; margin-bottom: 10px; padding: 0 20px 0 10px;"> |
|
|
|
<h4 style="font-size: 16px; color: #1c1c1c;">文件列表</h4> |
|
|
|
<el-button size="mini" style="padding: 7px 7px 7px 10px; "> |
|
|
|
<el-button v-if="archivesFiledata.length !== 0" size="mini" style="padding: 7px 7px 7px 10px; " @click="handleAddDocDetails"> |
|
|
|
<i class="iconfont icon-tianjiawenjian" /> |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
<el-table |
|
|
|
v-loading="archivesFiledataLoading" |
|
|
|
:data="archivesFiledata" |
|
|
|
style="min-width: 100%" |
|
|
|
style="min-width: 100%;" |
|
|
|
height="calc(100vh - 716px)" |
|
|
|
> |
|
|
|
<el-table-column prop="reg_no" label="登记号" show-overflow-tooltip min-width="140" /> |
|
|
|
<el-table-column prop="details_type" label="类型" min-width="85"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<el-tag v-if="scope.row.details_type === 1" type="success">原件</el-tag> |
|
|
|
<el-tag v-else type="info">复印件</el-tag> |
|
|
|
<el-tag v-if="scope.row.details_type === 1">原件</el-tag> |
|
|
|
<el-tag v-else>复印件</el-tag> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="pass_location" label="传阅所在位置" min-width="180" /> |
|
|
@ -120,12 +124,17 @@ |
|
|
|
|
|
|
|
<script> |
|
|
|
import { form } from '@crud/crud' |
|
|
|
import { FetchArchivesDetails, FetchInitDocumentDetailsList } from '@/api/system/documentArchives' |
|
|
|
import { FetchArchivesDetails, FetchInitDocumentDetailsList, FetchAddDocumentDetails, FetchDeleteDocumentDetails, FetchInitDistributorByDocumentId } from '@/api/system/documentArchives' |
|
|
|
import { mapGetters } from 'vuex' |
|
|
|
|
|
|
|
import BindingTagDlg from '@/views/components/BindingTagDlg' |
|
|
|
export default { |
|
|
|
name: 'PrearchiveLibraryDetail', |
|
|
|
filters: { |
|
|
|
formatBorrowerList(list) { |
|
|
|
return list.map(item => item.borrowName).join('、') |
|
|
|
} |
|
|
|
}, |
|
|
|
components: { BindingTagDlg }, |
|
|
|
mixins: [ |
|
|
|
form({}) |
|
|
@ -152,6 +161,9 @@ export default { |
|
|
|
tableData: [], |
|
|
|
parentInfo: null, |
|
|
|
handleTableData: [], |
|
|
|
currentArchivesId: null, |
|
|
|
archivesFiledataLoading: false, |
|
|
|
borrowerList: [], |
|
|
|
page: { |
|
|
|
page: 0, |
|
|
|
size: 10, |
|
|
@ -183,13 +195,32 @@ export default { |
|
|
|
computed: { |
|
|
|
...mapGetters([ |
|
|
|
'baseApi' |
|
|
|
]) |
|
|
|
]), |
|
|
|
// 计算属性:获取传阅状态 |
|
|
|
readStatus() { |
|
|
|
const readTypeItem = this.archivesDetailsData.find( |
|
|
|
item => item.fieldName === 'read_type' |
|
|
|
) |
|
|
|
return readTypeItem ? readTypeItem.context : '未传阅' |
|
|
|
} |
|
|
|
}, |
|
|
|
created() { |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
getStateClass(status) { |
|
|
|
switch (status) { |
|
|
|
case '未传阅': |
|
|
|
return 'defalut-state' |
|
|
|
case '传阅中': |
|
|
|
return 'soon-state' |
|
|
|
case '已传阅': |
|
|
|
return 'end-state' |
|
|
|
default: |
|
|
|
return 'defalut-state' |
|
|
|
} |
|
|
|
}, |
|
|
|
changeActiveTab(index) { |
|
|
|
this.archivesTabIndex = index |
|
|
|
}, |
|
|
@ -197,27 +228,96 @@ export default { |
|
|
|
return this.operateTypeMap[type] || '-' |
|
|
|
}, |
|
|
|
getDetial(rowId) { |
|
|
|
let documentId |
|
|
|
if (this.selectedDocument.isType === 2) { |
|
|
|
documentId = this.selectedDocument.id |
|
|
|
} else { |
|
|
|
documentId = this.selectedDocument.documentId |
|
|
|
} |
|
|
|
const params = { |
|
|
|
documentId: documentId, |
|
|
|
this.currentArchivesId = rowId |
|
|
|
const documentId = this.selectedDocument.isType === 2 |
|
|
|
? this.selectedDocument.id |
|
|
|
: this.selectedDocument.documentId |
|
|
|
|
|
|
|
const commonParams = { |
|
|
|
documentId, |
|
|
|
archivesId: rowId |
|
|
|
} |
|
|
|
FetchArchivesDetails(params).then(data => { |
|
|
|
|
|
|
|
Promise.all([ |
|
|
|
// 获取档案详情 |
|
|
|
FetchArchivesDetails(commonParams).then(data => { |
|
|
|
this.archivesDetailsData = data |
|
|
|
}), |
|
|
|
// 获取传阅人列表 |
|
|
|
FetchInitDistributorByDocumentId(commonParams).then(data => { |
|
|
|
this.borrowerList = data |
|
|
|
}) |
|
|
|
]).catch(error => { |
|
|
|
console.error('请求出错:', error) |
|
|
|
}) |
|
|
|
|
|
|
|
this.getInitDocumentDetailsList() |
|
|
|
}, |
|
|
|
|
|
|
|
getInitDocumentDetailsList() { |
|
|
|
this.archivesFiledataLoading = true |
|
|
|
const documentId = this.selectedDocument.isType === 2 |
|
|
|
? this.selectedDocument.id |
|
|
|
: this.selectedDocument.documentId |
|
|
|
|
|
|
|
const params = { |
|
|
|
documentId, |
|
|
|
archivesId: this.currentArchivesId |
|
|
|
} |
|
|
|
|
|
|
|
FetchInitDocumentDetailsList(params).then(data => { |
|
|
|
// id,parents_id,reg_no,details_type,pass_location,read_type,tid,is_destroy,create_by,create_time,update_by,update_time |
|
|
|
// id,公文id,登记号,文件类别(1.原文 2.复印件),传阅所在位置,传阅状态,tid,是否销毁,创建人,创建时间,更新人,更新时间 |
|
|
|
const jsonData = this.convertData(data) |
|
|
|
this.archivesFiledata = jsonData |
|
|
|
console.log(jsonData) |
|
|
|
this.archivesFiledataLoading = false |
|
|
|
}).catch(error => { |
|
|
|
console.error('获取文档详情列表失败:', error) |
|
|
|
this.archivesFiledataLoading = false |
|
|
|
}) |
|
|
|
}, |
|
|
|
// getDetial(rowId) { |
|
|
|
// this.currentArchivesId = rowId |
|
|
|
// let documentId |
|
|
|
// if (this.selectedDocument.isType === 2) { |
|
|
|
// documentId = this.selectedDocument.id |
|
|
|
// } else { |
|
|
|
// documentId = this.selectedDocument.documentId |
|
|
|
// } |
|
|
|
// const params = { |
|
|
|
// documentId: documentId, |
|
|
|
// archivesId: rowId |
|
|
|
// } |
|
|
|
// FetchArchivesDetails(params).then(data => { |
|
|
|
// this.archivesDetailsData = data |
|
|
|
// }) |
|
|
|
// this.getInitDocumentDetailsList() |
|
|
|
|
|
|
|
// FetchInitDistributorByDocumentId(params).then(data => { |
|
|
|
// this.borrowerList = data |
|
|
|
// }) |
|
|
|
// }, |
|
|
|
// getInitDocumentDetailsList() { |
|
|
|
// this.archivesFiledataLoading = true |
|
|
|
// let documentId |
|
|
|
// if (this.selectedDocument.isType === 2) { |
|
|
|
// documentId = this.selectedDocument.id |
|
|
|
// } else { |
|
|
|
// documentId = this.selectedDocument.documentId |
|
|
|
// } |
|
|
|
// const params = { |
|
|
|
// documentId: documentId, |
|
|
|
// archivesId: this.currentArchivesId |
|
|
|
// } |
|
|
|
// FetchInitDocumentDetailsList(params).then(data => { |
|
|
|
// // id,parents_id,reg_no,details_type,pass_location,read_type,tid,is_destroy,create_by,create_time,update_by,update_time |
|
|
|
// // id,公文id,登记号,文件类别(1.原文 2.复印件),传阅所在位置,传阅状态,tid,是否销毁,创建人,创建时间,更新人,更新时间 |
|
|
|
// const jsonData = this.convertData(data) |
|
|
|
// this.archivesFiledata = jsonData |
|
|
|
// console.log(jsonData) |
|
|
|
// this.archivesFiledataLoading = false |
|
|
|
// }) |
|
|
|
// }, |
|
|
|
convertData(data) { |
|
|
|
return data.map(item => { |
|
|
|
const fieldNames = [ |
|
|
@ -232,7 +332,28 @@ export default { |
|
|
|
return obj |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
handleAddDocDetails() { |
|
|
|
let documentId |
|
|
|
if (this.selectedDocument.isType === 2) { |
|
|
|
documentId = this.selectedDocument.id |
|
|
|
} else { |
|
|
|
documentId = this.selectedDocument.documentId |
|
|
|
} |
|
|
|
const params = { |
|
|
|
documentId: documentId, |
|
|
|
archivesId: this.currentArchivesId, |
|
|
|
regNo: this.archivesFiledata[0].reg_no |
|
|
|
} |
|
|
|
FetchAddDocumentDetails(params).then(data => { |
|
|
|
if (data) { |
|
|
|
this.getInitDocumentDetailsList() |
|
|
|
} else { |
|
|
|
this.$message({ message: '添加失败', type: 'error', offset: 8 }) |
|
|
|
} |
|
|
|
}).catch(error => { |
|
|
|
this.$message({ message: error, type: 'error', offset: 8 }) |
|
|
|
}) |
|
|
|
}, |
|
|
|
bindingTag(data) { |
|
|
|
if (data.tid) { |
|
|
|
this.$refs.bindingTag.isBinding = true |
|
|
@ -264,23 +385,34 @@ export default { |
|
|
|
}) |
|
|
|
}, |
|
|
|
toDelete(datas) { |
|
|
|
this.$confirm('此操作将删除当前所选' + this.crud.title + '<span>你是否还要继续?</span>', '提示', { |
|
|
|
console.log('datas', datas) |
|
|
|
this.$confirm('此操作将删除当前所选公文文件' + '<span>你是否还要继续?</span>', '提示', { |
|
|
|
confirmButtonText: '继续', |
|
|
|
cancelButtonText: '取消', |
|
|
|
type: 'warning', |
|
|
|
dangerouslyUseHTMLString: true |
|
|
|
}).then(() => { |
|
|
|
this.crud.delAllLoading = true |
|
|
|
const ids = datas.map(item => item.id) |
|
|
|
console.log('ids', ids) |
|
|
|
// FetchDelelteDocumentDetails(ids).then(() => { |
|
|
|
// this.$message({ message: '删除成功', type: 'success', offset: 8 }) |
|
|
|
// this.crud.delAllLoading = false |
|
|
|
// this.crud.refresh() |
|
|
|
// }).catch(err => { |
|
|
|
// this.crud.delAllLoading = false |
|
|
|
// console.log(err) |
|
|
|
// }) |
|
|
|
let documentId |
|
|
|
if (this.selectedDocument.isType === 2) { |
|
|
|
documentId = this.selectedDocument.id |
|
|
|
} else { |
|
|
|
documentId = this.selectedDocument.documentId |
|
|
|
} |
|
|
|
const params = { |
|
|
|
documentId: documentId, |
|
|
|
archivesId: datas.id, // this.currentArchivesId, |
|
|
|
isDestroy: true |
|
|
|
} |
|
|
|
|
|
|
|
console.log('ids', params) |
|
|
|
FetchDeleteDocumentDetails(params).then((res) => { |
|
|
|
console.log('res', res) |
|
|
|
this.$message({ message: '删除成功', type: 'success', offset: 8 }) |
|
|
|
this.getInitDocumentDetailsList() |
|
|
|
}).catch(err => { |
|
|
|
this.crud.delAllLoading = false |
|
|
|
console.log(err) |
|
|
|
}) |
|
|
|
}).catch(() => { |
|
|
|
}) |
|
|
|
}, |
|
|
@ -309,9 +441,9 @@ export default { |
|
|
|
.el-row{ |
|
|
|
padding: 20px 0 0 0; |
|
|
|
background-color: #F6F8FC; |
|
|
|
// height: calc(100vh / 2 - 200px); |
|
|
|
// overflow: hidden; |
|
|
|
// overflow-y: scroll; |
|
|
|
height: calc(100vh / 2 - 80px); |
|
|
|
overflow: hidden; |
|
|
|
overflow-y: scroll; |
|
|
|
} |
|
|
|
.base-info-item{ |
|
|
|
display: flex; |
|
|
@ -337,7 +469,6 @@ export default { |
|
|
|
display: flex; |
|
|
|
justify-content: flex-start; |
|
|
|
padding: 9px 12px 11px 12px; |
|
|
|
margin-bottom: 24px; |
|
|
|
background: rgba(151,199,255,0.2); |
|
|
|
border-radius: 3px; |
|
|
|
border: 1px solid #97C7FF; |
|
|
|