From 1bfba74b6bea7da6d14b0da1ab8b1efe02e474b3 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 03 一月 2025 13:38:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/flowable/task/myProcess/detail/index.vue | 112 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 95 insertions(+), 17 deletions(-) diff --git a/src/views/flowable/task/myProcess/detail/index.vue b/src/views/flowable/task/myProcess/detail/index.vue index 13c6985..baa1eae 100644 --- a/src/views/flowable/task/myProcess/detail/index.vue +++ b/src/views/flowable/task/myProcess/detail/index.vue @@ -1,15 +1,47 @@ <template> <div class="app-container"> <el-card class="box-card" > - <div slot="header" class="clearfix"> - <span class="el-icon-document">宸插彂浠诲姟</span> + <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> <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"> - <v-form-render ref="vFormRef"/> + <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> + </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-tab-pane> <!--娴佺▼娴佽浆璁板綍--> @@ -23,7 +55,11 @@ :icon="setIcon(item.finishTime)" :color="setColor(item.finishTime)" > - <p style="font-weight: 700">{{item.taskName}}</p> + <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 && 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> <el-descriptions-item v-if="item.assigneeName" label-class-name="my-label"> @@ -70,6 +106,7 @@ <script> import {flowRecord} from "@/api/flowable/finished"; import {getProcessVariables, flowXmlAndNode} from "@/api/flowable/definition"; +import {flowTaskForm, flowTaskFormDetail} from "@/api/flowable/todo"; import BpmnViewer from '@/components/Process/viewer'; import "@riophae/vue-treeselect/dist/vue-treeselect.css"; @@ -81,14 +118,18 @@ props: {}, data() { return { + projectName: '', + flowName: '', // 妯″瀷xml鏁版嵁 flowData: {}, + formDataList: [], // 琛ㄥ崟鍒楄〃 activeName: '1', // 鏌ヨ鍙傛暟 queryParams: {}, // 閬僵灞� loading: true, flowRecordList: [], // 娴佺▼娴佽浆鏁版嵁 + goBackParams: {}, taskForm:{ multiple: false, comment:"", // 鎰忚鍐呭 @@ -104,6 +145,9 @@ this.taskForm.deployId = this.$route.query && this.$route.query.deployId; this.taskForm.taskId = this.$route.query && this.$route.query.taskId; this.taskForm.procInsId = this.$route.query && this.$route.query.procInsId; + this.goBackParams = this.$route.query && this.$route.query.goBackParams; + 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); @@ -144,27 +188,53 @@ processVariables(taskId) { if (taskId) { // 鎻愪氦娴佺▼鐢宠鏃跺~鍐欑殑琛ㄥ崟瀛樺叆浜嗘祦绋嬪彉閲忎腑鍚庣画浠诲姟澶勭悊鏃堕渶瑕佸睍绀� - getProcessVariables(taskId).then(res => { - this.$nextTick(() => { - // 鍥炴樉琛ㄥ崟 - this.$refs.vFormRef.setFormJson(res.data.formJson); + flowTaskFormDetail(taskId).then(res => { + this.formDataList = res.data + if (this.formDataList && this.formDataList.length > 0) { this.$nextTick(() => { - // 鍔犺浇琛ㄥ崟濉啓鐨勬暟鎹� - this.$refs.vFormRef.setFormData(res.data); - this.$nextTick(() => { - // 琛ㄥ崟绂佺敤 - this.$refs.vFormRef.disableForm(); + 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); + + eval("that.$refs.form" + index)[0].setFormData(formDataObj.formJsonObj); + this.$nextTick(() => { + eval("that.$refs.form" + index)[0].disableForm(); + }) + } }) + // this.formJson = this.formDataList[0].formJsonObj.formJson }) - }) + } + // this.$nextTick(() => { + // // 鍥炴樉琛ㄥ崟 + // this.$refs.vFormRef.setFormJson(res.data.formJson); + // this.$nextTick(() => { + // // 鍔犺浇琛ㄥ崟濉啓鐨勬暟鎹� + // this.$refs.vFormRef.setFormData(res.data); + // this.$nextTick(() => { + // // 琛ㄥ崟绂佺敤 + // this.$refs.vFormRef.disableForm(); + // }) + // }) + // }) }); } }, /** 杩斿洖椤甸潰 */ goBack() { - // 鍏抽棴褰撳墠鏍囩椤靛苟杩斿洖涓婁釜椤甸潰 - const obj = { path: "/task/process", query: { t: Date.now()} }; - this.$tab.closeOpenPage(obj); + // 鍏抽棴褰撳墠鏍囩椤� + this.$store.dispatch("tagsView/delView", this.$route); + this.$router.push({ + path: '/projectFlow/detail', + query: { + projectId: this.goBackParams.projectId, + processDefId: this.goBackParams.processDefId, + processName: this.goBackParams.processName + } + }) }, } }; @@ -197,4 +267,12 @@ .my-label { background: #E1F3D8; } + +.form-warp { + min-width: 700px; + 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; +} </style> -- Gitblit v1.8.0