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.
288 lines
9.3 KiB
288 lines
9.3 KiB
<template>
|
|
<el-dialog class="detail-dialog" :visible.sync="detailVisible" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body title="流程详情">
|
|
<div class="setting-dialog">
|
|
<ul class="detail-info">
|
|
<li><span>流程名称:</span>{{ selectRow.flowableName || selectRow.title }}</li>
|
|
<li v-if="!isCenterProcess"><span>流程结果:</span><p :class="['row-state', !isHistroy?'ing-state':(selectRow.endTime?'end-state':'cancel-state')]">{{ !isHistroy ? '进行中' : ( selectRow.endTime ? '已完成' : '已取消') }}</p></li>
|
|
<li v-if="isCenterProcess">
|
|
<span>流程结果:</span>
|
|
<p v-if="selectRow.status === 1" class="row-state ing-state">运行中</p>
|
|
<p v-if="selectRow.status === 2" class="row-state case-cancel">已取消</p>
|
|
<p v-if="selectRow.status === 3" class="row-state end-state">已完成</p>
|
|
<p v-if="selectRow.status === 4" class="row-state cancel-state">不通过</p>
|
|
</li>
|
|
<!-- 等门类树更改之后再显示 -->
|
|
<!-- <li><span>所属全宗:</span>全宗A</li> -->
|
|
<li v-if="selectRow.endTime || selectRow.complete_time"><span>结束时间:</span>{{ (selectRow.endTime || selectRow.complete_time) | parseTime }}</li>
|
|
<li v-else><span>结束时间:</span>-</li>
|
|
</ul>
|
|
<!-- 1.归档 index=1 2.退回 index=2 3.开放 index=6 4.销毁index=7 5.利用index=3 6.内部移交index=4 7.外部移交index=5 -->
|
|
<!-- 归档 / 退档 -->
|
|
<!-- <ul class="detail-type-info">
|
|
<li><span>原始位置:</span>整编库</li>
|
|
<li><span>目标位置:</span>管理库</li>
|
|
</ul> -->
|
|
<!-- 赋权审批 -->
|
|
<!-- <ul class="detail-type-info">
|
|
<li><span>利用目的:</span>资料查阅</li>
|
|
<li><span>赋权开始:</span>2022-10-01 10:23:56</li>
|
|
<li><span>赋权结束:</span>2022-10-07 10:23:56</li>
|
|
</ul> -->
|
|
<!-- 内部移交 -->
|
|
<!-- <ul class="detail-type-info">
|
|
<li><span>目标全宗:</span>全宗B</li>
|
|
</ul> -->
|
|
<!-- 开发鉴定 / 销毁鉴定 -->
|
|
<!-- <ul class="detail-type-info">
|
|
<li><span>申请缘由:</span>开放学习</li>
|
|
</ul> -->
|
|
<!-- <div class="detail-arrow" @click="isExpend = !isExpend"><i :class="[ isExpend ? 'arrow-up':'']" /></div>
|
|
<el-collapse-transition>
|
|
<div v-show="isExpend" class="service-detail">
|
|
<h4>业务详情</h4>
|
|
<ul class="detail-list">
|
|
<li><span>业务类型:</span>归档审批</li>
|
|
<li><span>原始位置:</span>全宗A-整理库-门类A</li>
|
|
<li><span>目标位置:</span>全宗A-整理库-门类A</li>
|
|
<li><span>赋权类型:</span>-</li>
|
|
<li><span>起始时间:</span>-</li>
|
|
<li><span>终止时间:</span>-</li>
|
|
<li><span>利用目的:</span>-</li>
|
|
<li><span>业务状态:</span>已完成</li>
|
|
<li><span>审批状态:</span>通过</li>
|
|
</ul>
|
|
</div>
|
|
</el-collapse-transition> -->
|
|
<div class="detail-tab tab-content">
|
|
<ul class="tab-nav">
|
|
<li :class="{'active-tab-nav': activeIndex == 0 }" @click="changeActiveTab(0)">档案列表</li>
|
|
<li :class="{'active-tab-nav': activeIndex == 1 }" @click="changeActiveTab(1)">任务列表</li>
|
|
<li :class="{'active-tab-nav': activeIndex == 2 }" @click="changeActiveTab(2)">流程图</li>
|
|
</ul>
|
|
<div v-if="activeIndex == 0" class="double-click-btn"><i class="iconfont icon-zhuyi-lan" /><span>双击列表数据查看详情</span></div>
|
|
<component :is="comName" class="component-cont" :table-data="tableData" :src-img="srcImg" :task-table-list="taskTableList" :is-utilize="isUtilize" :set-page="setPage" @page-change="pageChangeHandler" @size-change="sizeChangeHandler" />
|
|
</div>
|
|
<div slot="footer" class="dialog-footer">
|
|
<el-button type="primary" @click="detailVisible=false">确定</el-button>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</template>
|
|
|
|
<script>
|
|
import { FetchGenProcessDiagram, FetchTaskByProcinstId } from '@/api/system/flowable'
|
|
import { FetchBusinessFlowDetails } from '@/api/archivesManage/library'
|
|
import processImg from './processImg/index'
|
|
import businessDetails from './businessDetails/index'
|
|
import taskList from './taskList/index'
|
|
// import approvalList from './approvalList/index'
|
|
export default {
|
|
name: 'Detail',
|
|
components: {
|
|
processImg,
|
|
businessDetails,
|
|
taskList
|
|
// approvalList
|
|
},
|
|
props: {
|
|
isHistroy: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
isCenterProcess: {
|
|
type: Boolean,
|
|
default: false
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
detailVisible: false,
|
|
isExpend: false,
|
|
activeIndex: 0,
|
|
selectRow: {},
|
|
srcImg: '',
|
|
taskTableList: [],
|
|
tableData: [],
|
|
isUtilize: false,
|
|
setPage: {
|
|
total: 0,
|
|
size: 10,
|
|
page: 0
|
|
}
|
|
}
|
|
},
|
|
computed: {
|
|
comName: function() {
|
|
if (this.activeIndex === 0) {
|
|
return 'businessDetails'
|
|
} else if (this.activeIndex === 1) {
|
|
return 'taskList'
|
|
} else if (this.activeIndex === 2) {
|
|
return 'processImg'
|
|
}
|
|
return 'businessDetails'
|
|
}
|
|
},
|
|
mounted() {
|
|
|
|
},
|
|
methods: {
|
|
changeActiveTab(data) {
|
|
this.activeIndex = data
|
|
if (this.activeIndex === 0) {
|
|
this.setPage.page = 0
|
|
this.getBusinessFlowDetails()
|
|
} else if (this.activeIndex === 1) {
|
|
this.getTaskByProcinstId()
|
|
} else if (this.activeIndex === 2) {
|
|
this.getProcessImg()
|
|
}
|
|
},
|
|
getBusinessFlowDetails() {
|
|
const params = {
|
|
'businessId': (this.selectRow && this.selectRow.businessId) ? this.selectRow.businessId : this.selectRow.id,
|
|
'page': this.setPage.page,
|
|
'size': this.setPage.size
|
|
}
|
|
FetchBusinessFlowDetails(params).then((res) => {
|
|
if (res.code !== 500) {
|
|
console.log(res)
|
|
this.baseInfo = res.businessFlow
|
|
if (res.businessFlow.businessType === 5) {
|
|
this.isUtilize = true
|
|
res.details.content.forEach(item => {
|
|
item.utilizeType = item.utilizeType.split(',').map(Number)
|
|
})
|
|
} else {
|
|
this.isUtilize = false
|
|
res.details.content.forEach(item => {
|
|
item.utilizeType = []
|
|
})
|
|
}
|
|
this.tableData = res.details.content
|
|
this.setPage.total = res.details.totalElements
|
|
} else {
|
|
this.$message({ message: '获取数据失败', type: 'error', offset: 8 })
|
|
}
|
|
}).catch(err => {
|
|
console.log(err)
|
|
})
|
|
},
|
|
getProcessImg() {
|
|
this.srcImg = ''
|
|
FetchGenProcessDiagram({ 'processId': this.selectRow.procInstId }).then((res) => {
|
|
this.srcImg = res
|
|
}).catch(err => {
|
|
console.log(err)
|
|
})
|
|
},
|
|
getTaskByProcinstId() {
|
|
this.taskTableList = []
|
|
FetchTaskByProcinstId({ 'procinstId': this.selectRow.procInstId }).then((res) => {
|
|
this.taskTableList = res
|
|
}).catch(err => {
|
|
console.log(err)
|
|
})
|
|
},
|
|
// 当前页改变
|
|
pageChangeHandler(e) {
|
|
this.setPage.page = e
|
|
this.getBusinessFlowDetails()
|
|
},
|
|
// 每页条数改变
|
|
sizeChangeHandler(e) {
|
|
this.setPage.size = e
|
|
this.setPage.page = 0
|
|
this.getBusinessFlowDetails()
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang='scss' scoped>
|
|
|
|
.detail-dialog{
|
|
.detail-info,
|
|
.detail-list,
|
|
.detail-type-info{
|
|
display: flex;
|
|
justify-content: space-between;
|
|
flex-wrap: wrap;
|
|
padding-top: 10px;
|
|
font-size: 14px;
|
|
line-height: 30px;
|
|
color: #545B65;
|
|
li{
|
|
display: flex;
|
|
justify-content: flex-start;
|
|
width: 50%;
|
|
span{
|
|
display: inline-block;
|
|
width: 75px;
|
|
text-align: right;
|
|
color: #0C0E1E;
|
|
}
|
|
p.row-state{
|
|
display: block;
|
|
font-size: 14px;
|
|
height: 26px;
|
|
line-height: 26px;
|
|
margin-top: 2px;
|
|
}
|
|
}
|
|
}
|
|
.detail-type-info{
|
|
padding-top: 0;
|
|
}
|
|
.detail-arrow{
|
|
position: relative;
|
|
width: 64px;
|
|
height: 16px;
|
|
margin: 10px auto;
|
|
background-color:#E8F2FF;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
i{
|
|
position: absolute;
|
|
left: 50%;
|
|
top: 50%;
|
|
display: block;
|
|
width: 9px;
|
|
height: 5px;
|
|
margin-top: -2px;
|
|
margin-left: -4px;
|
|
background: url('~@/assets/images/icon/arrow.png') no-repeat center center;
|
|
transition: all ease-in 0.5s;
|
|
&.arrow-up {
|
|
transform: rotate(180deg);
|
|
}
|
|
}
|
|
|
|
}
|
|
.service-detail{
|
|
padding: 8px 12px;
|
|
background-color: #F6F8FC;
|
|
font-size: 14px;
|
|
h4{
|
|
position: relative;
|
|
padding-left: 10px;
|
|
color: #0C0E1E;
|
|
&::before {
|
|
content: "";
|
|
position: absolute;
|
|
left: 0;
|
|
top: 50%;
|
|
width: 3px;
|
|
height: 14px;
|
|
background-color: #0348F3;
|
|
transform: translateY(-50%);
|
|
}
|
|
}
|
|
.detail-list{
|
|
p{
|
|
width: 33%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</style>
|