From 6ae0fcef149ddbe614746023a58a3885b3ac4bde Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 25 三月 2025 11:31:04 +0800
Subject: [PATCH] Merge branch 'dev'
---
src/views/flowable/task/myProcess/detail/index.vue | 144 +++++++++++++++++++++++++++++++++--------------
1 files changed, 100 insertions(+), 44 deletions(-)
diff --git a/src/views/flowable/task/myProcess/detail/index.vue b/src/views/flowable/task/myProcess/detail/index.vue
index f9c5720..6dc7580 100644
--- a/src/views/flowable/task/myProcess/detail/index.vue
+++ b/src/views/flowable/task/myProcess/detail/index.vue
@@ -3,46 +3,52 @@
<el-card class="box-card" >
<div slot="header" class="clearfix" style="display: flex">
<div style="flex: 1" class="el-icon-document">{{`浠诲姟璇︽儏锛歚 + this.goBackParams.processName}}</div>
- <div style="flex: 2">{{projectName + '鈥斺��' + flowName}}</div>
+ <div style="flex: 2; color: #303133">{{projectName + '鈥斺��' + flowName}}</div>
<el-button style="float: right;" size="mini" type="danger" @click="goBack">鍏抽棴</el-button>
</div>
<el-tabs tab-position="top" v-model="activeName" @tab-click="handleClick">
<!--琛ㄥ崟淇℃伅-->
<el-tab-pane label="琛ㄥ崟淇℃伅" name="1">
- <el-col :span="16" :offset="4">
+ <!--鍒濆鍖栨祦绋嬪姞杞借〃鍗曚俊鎭�-->
+ <el-col :span="24" v-loading="formLoading" class="tab-min-height">
<div v-if="formDataList && formDataList.length > 0">
- <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp">
- <div v-if="formDataObj.current" style="margin-bottom: 15px;color: #409eff">褰撳墠闃舵锛�<span style="color: red">{{formDataObj.beforeNodeName}}</span></div>
- <div v-else style="margin-bottom: 15px;color: #409eff">鍓嶇疆闃舵锛�<span style="color: #d5904b">{{formDataObj.beforeNodeName}}</span></div>
- <div v-if="formDataObj.formJson !== null && formDataObj.formJson !== ''">
- <v-form-render :form-data="formDataObj.formJson" :ref="'form' + index"/>
- </div>
- <div v-else>
- <el-alert
- title="鑺傜偣鏃犺〃鍗曟暟鎹�"
- type="info"
- :closable="false"
- >
- </el-alert>
- </div>
+ <div v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp" style="position: relative">
+ <el-row>
+ <el-col :span="18">
+ <div v-if="formDataObj.current">
+ <div class="current">褰撳墠闃舵锛�<span>{{formDataObj.beforeNodeName}}</span></div>
+ </div>
+ <div v-else-if="formDataList.length > 1">
+ <div class="before">鍓嶇疆闃舵锛�<span>{{formDataObj.beforeNodeName}}</span></div>
+ </div>
+ <div v-if="formDataObj != null && formDataObj.formJsonObj != null">
+ <v-form-render :form-data="formDataObj.formJsonObj.formJson" :ref="'form' + index"/>
+ </div>
+ <div v-else>
+ <el-alert
+ title="鏈粦瀹氳〃鍗�"
+ type="warning"
+ :closable="false"
+ >
+ </el-alert>
+ </div>
+ <div v-if="formDataList.length <= 1">
+ <div class="before_none">鍓嶇疆闃舵锛�<span>涓嶅瓨鍦ㄥ墠缃樁娈�</span></div>
+ <el-alert
+ title="涓嶅瓨鍦ㄥ墠缃樁娈�"
+ type="warning"
+ :closable="false"
+ >
+ </el-alert>
+ </div>
+ </el-col>
+ <el-col :span="6">
+ <log-time-line v-if="formDataObj.events.length > 0" :log-list="formDataObj.events"/>
+ </el-col>
+ </el-row>
</div>
</div>
- <div v-else>
- <el-alert
- title="褰撳墠鑺傜偣鏃犺〃鍗曟暟鎹�"
- type="info"
- :closable="false"
- >
- </el-alert>
- <el-alert
- style="margin-top: 20px"
- title="鍓嶇疆鑺傜偣鏃犺〃鍗曟暟鎹�"
- type="info"
- :closable="false"
- >
- </el-alert>
- </div>
- </el-col>
+ </el-col>
</el-tab-pane>
<!--娴佺▼娴佽浆璁板綍-->
<el-tab-pane label="娴佽浆璁板綍" name="2">
@@ -57,7 +63,8 @@
>
<p style="font-weight: 700">{{item.taskName}}
<span v-if="item.comment && item.comment.type === '3'" style="color: red">(鎵ц浜嗛┏鍥�)</span>
- <span v-if="item.overtime" style="color: red">(宸茶秴鏃�)</span>
+ <span v-if="item.overtime && item.overtime==='red'" style="color: red">(宸茶秴鏃�)</span>
+ <span v-if="item.overtime && item.overtime==='yellow'" style="color: orange">(鍗冲皢瓒呮椂)</span>
</p>
<el-card :body-style="{ padding: '10px' }">
<el-descriptions class="margin-top" :column="1" size="small" border>
@@ -95,7 +102,9 @@
</el-tab-pane>
<!--娴佺▼鍥�-->
<el-tab-pane label="娴佺▼鍥�" name="3">
- <bpmn-viewer :flowData="flowData" :procInsId="taskForm.procInsId"/>
+ <div class="tab-min-height" v-loading="imgLoading">
+ <bpmn-viewer :flowData="flowData" :procInsId="taskForm.procInsId"/>
+ </div>
</el-tab-pane>
</el-tabs>
</el-card>
@@ -107,16 +116,20 @@
import {getProcessVariables, flowXmlAndNode} from "@/api/flowable/definition";
import {flowTaskForm, flowTaskFormDetail} from "@/api/flowable/todo";
import BpmnViewer from '@/components/Process/viewer';
+import LogView from "@/views/projectProcess/components/LogView";
+import LogTimeLine from "@/views/projectProcess/components/LogTimeLine";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "Record",
components: {
- BpmnViewer
+ BpmnViewer, LogView, LogTimeLine
},
props: {},
data() {
return {
+ formLoading: false, // 鍔犺浇琛ㄥ崟
+ imgLoading: false, // 鍔犺浇娴佺▼鍥�
projectName: '',
flowName: '',
// 妯″瀷xml鏁版嵁
@@ -148,13 +161,15 @@
this.projectName = this.$route.query && this.$route.query.projectName;
this.flowName = this.$route.query && this.$route.query.flowName;
// 娴佺▼浠诲姟閲嶈幏鍙栧彉閲忚〃鍗�
- this.processVariables( this.taskForm.taskId)
- this.getFlowRecordList(this.taskForm.procInsId, this.taskForm.deployId);
+ this.processVariables( this.taskForm.taskId, this.taskForm.procInsId)
+ this.getFlowRecordList(this.taskForm.procInsId);
},
methods: {
handleClick(tab, event) {
if (tab.name === '3'){
- flowXmlAndNode({procInsId:this.taskForm.procInsId,deployId:this.taskForm.deployId}).then(res => {
+ this.imgLoading = true
+ flowXmlAndNode({processInsId:this.taskForm.procInsId,deployId:this.taskForm.deployId}).then(res => {
+ this.imgLoading = false
this.flowData = res.data;
})
}
@@ -174,9 +189,9 @@
}
},
/** 娴佺▼娴佽浆璁板綍 */
- getFlowRecordList(procInsId, deployId) {
+ getFlowRecordList(procInsId) {
const that = this
- const params = {procInsId: procInsId, deployId: deployId}
+ const params = {procInsId: procInsId}
flowRecord(params).then(res => {
that.flowRecordList = res.data.flowList;
}).catch(res => {
@@ -184,17 +199,17 @@
})
},
/** 鑾峰彇娴佺▼鍙橀噺鍐呭 */
- processVariables(taskId) {
+ processVariables(taskId, processInsId) {
if (taskId) {
+ this.formLoading = true
// 鎻愪氦娴佺▼鐢宠鏃跺~鍐欑殑琛ㄥ崟瀛樺叆浜嗘祦绋嬪彉閲忎腑鍚庣画浠诲姟澶勭悊鏃堕渶瑕佸睍绀�
- flowTaskFormDetail(taskId).then(res => {
+ flowTaskFormDetail(processInsId, taskId).then(res => {
this.formDataList = res.data
if (this.formDataList && this.formDataList.length > 0) {
this.$nextTick(() => {
this.formDataList.forEach((formDataObj, index) => {
console.log("琛ㄥ崟鏁版嵁鍒楄〃", formDataObj.formJson)
let that = this
- console.log(eval("that.$refs.form" + index)[0])
if (formDataObj.formJsonObj) {
eval("that.$refs.form" + index)[0].setFormJson(formDataObj.formJsonObj.formJson);
@@ -207,6 +222,7 @@
// this.formJson = this.formDataList[0].formJsonObj.formJson
})
}
+ this.formLoading = false
// this.$nextTick(() => {
// // 鍥炴樉琛ㄥ崟
// this.$refs.vFormRef.setFormJson(res.data.formJson);
@@ -272,6 +288,46 @@
padding: 20px;
margin-top: 5px;
margin-bottom: 20px;
- box-shadow: rgba(67, 71, 85, 0.27) 0px 0px 0.25em, rgba(90, 125, 188, 0.05) 0px 0.25em 1em;
+ margin-left: 3px;
+ margin-right: 3px;
+ box-shadow: rgba(67, 71, 85, 0.27) 0px 0px 0.1em, rgba(90, 125, 188, 0.05) 0px 0.1em 0.5em;
+}
+.before {
+ span {
+ color: #F56C6C
+ }
+ margin-bottom: 15px;
+ color: #E6A23C
+}
+.before_none {
+ span {
+ color: #F56C6C
+ }
+ margin-bottom: 15px;
+ margin-top: 15px;
+ color: #E6A23C
+}
+.reject-but {
+ position: absolute;
+ top: 4px;
+ right: 4px
+}
+.current {
+ span {
+ color: #409EFF
+ }
+ margin-bottom: 15px;
+ color: #E6A23C
+}
+.op-list {
+ position: absolute;
+ top: 4px;
+ right: 4px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.tab-min-height {
+ min-height: 500px;
}
</style>
--
Gitblit v1.8.0