Procházet zdrojové kódy

修改oa审批和撤销按钮渲染逻辑

lph před 1 rokem
rodič
revize
e3311c2b8c

+ 75 - 3
zkqy-ui/src/views/bussiness/OAMange.vue

@@ -100,6 +100,7 @@
           >
             <template slot-scope="scope">
               <el-button
+                v-show="scope.row.bepTaskProcessState != 3"
                 class="mr5 mb5"
                 @click="approveHandler(scope.row)"
                 type="primary"
@@ -128,11 +129,15 @@
                     >
                   </el-dropdown-item>
                   <el-dropdown-item>
-                    <el-button @click="() => {}" type="text" size="small"
+                    <el-button
+                      v-show="isShowCancel(scope.row)"
+                      @click="cancelHandler(scope.row)"
+                      type="text"
+                      size="small"
                       >取消申请</el-button
                     >
                   </el-dropdown-item>
-                  <el-dropdown-item>
+                  <!-- <el-dropdown-item>
                     <el-button
                       @click="() => {}"
                       type="text"
@@ -140,7 +145,7 @@
                       v-hasPermi="['system:deployment:remove']"
                       >删除</el-button
                     >
-                  </el-dropdown-item>
+                  </el-dropdown-item> -->
                 </el-dropdown-menu>
               </el-dropdown>
               <!-- <el-button @click="(scope) => {}" type="text" size="small"
@@ -196,6 +201,7 @@ import {
   getProcessNodeFormTemplate,
   getProcessNodeFormInfoData,
   processNodeExecutionApproval,
+  revokeApplication,
 } from "@/api/bpmprocess/run/executeProcess";
 import { triggerExceptionNode } from "@/api/bpmprocess/process";
 import getNodeSequence from "@/utils/bpmn/getNodeSequence";
@@ -458,6 +464,72 @@ export default {
         this.$message.error("审批失败");
       }
     },
+    // 取消审批回调
+    async cancelHandler(row) {
+      console.log(row);
+      // 先获取tableName
+      let {
+        benTaskNodeKey,
+        bepTaskProcessXmlContent,
+        implementationName,
+        bepTaskPlanKey,
+        benTaskProcessKey,
+      } = row;
+      let { nodeId, nextNodeId } = this.getNextNodeKey(
+        benTaskNodeKey,
+        bepTaskProcessXmlContent
+      );
+      // let payLoad = {
+      //   taskNodeKey: benTaskNodeKey,
+      //   taskProcessKey: benTaskProcessKey,
+      //   // taskAutomaticScriptTriggerType: benmTaskAutomaticScriptTriggerType,
+      //   taskPlanKey: bepTaskPlanKey,
+      // };
+      // 准备审批数据
+      let payLoad = {
+        taskProcessKey: row.bepTaskKey, //当前任务流程编码
+        taskNodeKey: nodeId, //当前执行节点唯一编码
+        nextNodeKey: nextNodeId, //下一节点编码
+        implementationName: row.benmTaskAutomaticScriptTriggerType, //当前节点绑定的脚本名
+        // taskProcessXmlContent: this.row.bepTaskProcessXmlContent, //当前流程xml
+        tableName: this.tableName,
+        // formDataMap: JSON.stringify(res.data), //自定义表单组件收集的表单数据
+        taskNodeType: row.benTaskNodeType,
+      };
+      let fileXML = new File(
+        [row.bepTaskProcessXmlContent],
+        row.bepTaskKey + ".bpmn",
+        {
+          type: "text/bpmn",
+        }
+      );
+      const subformData = new FormData();
+      subformData.append("fileXML", fileXML);
+      for (let key in payLoad) {
+        subformData.append(key, payLoad[key] == null ? "" : payLoad[key]);
+      }
+      this.$confirm("确认取消吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(async () => {
+        let result = await revokeApplication(subformData);
+        if (result.code == 200) {
+          this.$message.success("取消成功");
+          this.getList();
+        } else {
+          this.$message.error("取消失败");
+        }
+      });
+    },
+    // 取消审批按钮  显示与隐藏
+    isShowCancel(row) {
+      if (row.bepTaskProcessState == 3) {
+        return false;
+      }
+      this.cancelShow = !this.cancelShow;
+    },
+
     //重置查询参数
     resetQuery() {
       this.queryParams = {

+ 4 - 5
zkqy-ui/src/views/bussiness/detail/index.vue

@@ -111,8 +111,9 @@ export default {
         if (res.code == 200) {
           this.formList = res.data;
           let row = window.sessionStorage.getItem("oaRow");
+          // console.log(object);
           if (row) {
-            this.nodeLogList = JSON.parse(row).nodeLog.slice(1);
+            this.nodeLogList = JSON.parse(row).nodeLog?.slice(1);
             this.initFlowData(row);
           }
         }
@@ -126,12 +127,10 @@ export default {
       let xmlData = row.bepTaskProcessXmlContent;
       let xmlObj = this.xmlStr2XmlObj(xmlData);
       let nodeSequence = getNodeSequence(xmlObj);
-      console.log(nodeSequence);
-      console.log(row);
       let currentNodeKey = row.benTaskNodeKey;
       let isCompleted = true;
-      let nodeData = nodeSequence.map((item) => {
-        if (currentNodeKey === item.nodeId) {
+      let nodeData = nodeSequence.map((item, index, list) => {
+        if (currentNodeKey === item.nodeId && index != list.length - 1) {
           isCompleted = false;
         }
         return {