From 0829704d064b5d843014897a84b42f3625571d97 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期日, 09 三月 2025 23:29:42 +0800 Subject: [PATCH] 容缺补办实现 --- src/views/flowable/task/myProcess/detail/index.vue | 126 ++++++++++++++++++++++++++++++----------- 1 files changed, 92 insertions(+), 34 deletions(-) diff --git a/src/views/flowable/task/myProcess/detail/index.vue b/src/views/flowable/task/myProcess/detail/index.vue index baa1eae..b8e9952 100644 --- a/src/views/flowable/task/myProcess/detail/index.vue +++ b/src/views/flowable/task/myProcess/detail/index.vue @@ -9,40 +9,52 @@ <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="16" :offset="4" 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 v-for="(formDataObj, index) in formDataList" :key="index" class="form-warp" style="position: relative"> + <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="info" + title="鏈粦瀹氳〃鍗�" + type="warning" + :closable="false" + > + </el-alert> + </div> + <div style="position: absolute;top: 10px; right: 20px" v-if="formDataObj.events.length > 0"> + <el-popover + placement="right-start" + title="浠诲姟鏃ュ織" + width="800" + trigger="hover" + > + <div v-if="formDataObj.events.length > 0"> + <log-view :log-list="formDataObj.events"/> + </div> + <el-button slot="reference">浠诲姟鏃ュ織</el-button> + </el-popover> + </div> + <div v-if="formDataList.length <= 1"> + <div class="before_none">鍓嶇疆闃舵锛�<span>涓嶅瓨鍦ㄥ墠缃樁娈�</span></div> + <el-alert + title="涓嶅瓨鍦ㄥ墠缃樁娈�" + type="warning" :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-col> </el-tab-pane> <!--娴佺▼娴佽浆璁板綍--> <el-tab-pane label="娴佽浆璁板綍" name="2"> @@ -96,7 +108,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> @@ -108,16 +122,19 @@ 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 "@riophae/vue-treeselect/dist/vue-treeselect.css"; export default { name: "Record", components: { - BpmnViewer + BpmnViewer, LogView }, props: {}, data() { return { + formLoading: false, // 鍔犺浇琛ㄥ崟 + imgLoading: false, // 鍔犺浇娴佺▼鍥� projectName: '', flowName: '', // 妯″瀷xml鏁版嵁 @@ -149,13 +166,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; }) } @@ -175,9 +194,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 => { @@ -185,17 +204,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); @@ -208,6 +227,7 @@ // this.formJson = this.formDataList[0].formJsonObj.formJson }) } + this.formLoading = false // this.$nextTick(() => { // // 鍥炴樉琛ㄥ崟 // this.$refs.vFormRef.setFormJson(res.data.formJson); @@ -275,4 +295,42 @@ 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; } +.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