Преглед на файлове

节点展示结构改变/执行表单传参修改

lph преди 1 година
родител
ревизия
b5ed94f301

+ 10 - 0
zkqy-ui/src/api/bpmprocess/run/executeProcess.js

@@ -81,3 +81,13 @@ export function getProcessNodeFormInfoData(query) {
     baseURL: process.env.VUE_APP_BASE_API4,
   })
 }
+
+// 获取节点展示列表数据
+export function getListLog(query) {
+  return request({
+    url: '/system/execute/process/listLog',
+    method: 'get',
+    params: query,
+    baseURL: process.env.VUE_APP_BASE_API4,
+  })
+}

+ 10 - 3
zkqy-ui/src/views/bussiness/components/taskList.vue

@@ -1,6 +1,13 @@
 <template>
   <div class="task-list-wrap">
     <div class="title-list">
+      <div class="title-item">
+        <!-- <span class="title-label">完成时间:</span> -->
+        <span class="title-label">序号:</span>
+        <span class="title-content" style="font-size: 50px; color: red">{{
+          num
+        }}</span>
+      </div>
       <div class="title-item">
         <span class="title-label">任务号:</span>
         <span class="title-content">{{ baseInfo.benTaskProcessKey }}</span>
@@ -21,7 +28,7 @@
         <!-- <span class="title-label">完成时间:</span> -->
         <span class="title-label">开始时间:</span>
         <span class="title-content">{{
-          baseInfo.benCreateTime.replace("T", " ")
+          baseInfo.benCreateTime ? baseInfo.benCreateTime.replace("T", " ") : ""
         }}</span>
       </div>
     </div>
@@ -33,7 +40,7 @@
         <TaskItem
           class="card-item"
           v-for="(item, index) of tempList"
-          :key="item.nodeId"
+          :key="item.nodeId + index"
           :itemData="item"
           :index="index + 1"
         ></TaskItem>
@@ -50,7 +57,7 @@ import uuid from "@/utils/bpmn/uuid";
 import TaskItem from "./TaskItem.vue";
 export default {
   name: "TaskList",
-  props: ["cardData"],
+  props: ["cardData", "num"],
   components: { TaskItem },
   data() {
     return {

+ 31 - 0
zkqy-ui/src/views/bussiness/dialogCompments/KongBai/KB01.vue

@@ -0,0 +1,31 @@
+<template>
+  <div class="wrap">
+    <span class="content">暂无表单填写,请直接运行。</span>
+  </div>
+</template>
+
+<script>
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
+export default {
+  name: "KB01",
+  props: ["formData", "row"],
+  data() {
+    return {};
+  },
+
+  mounted() {},
+
+  methods: {
+    // 获取表单数据
+    async getFormData() {
+      return {
+        flag: true,
+        msg: "",
+        data: {},
+      };
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped></style>

+ 13 - 1
zkqy-ui/src/views/bussiness/processMange.vue

@@ -229,11 +229,23 @@ import CG2 from "./dialogCompments/test-component/CaiGou/CG02.vue";
 import KC1 from "./dialogCompments/test-component/KuCun/KC1.vue";
 import KC02 from "./dialogCompments/test-component/KuCun/KC02.vue";
 import GY06 from "./dialogCompments/GongYi/GY06.vue";
+import KB01 from "./dialogCompments/KongBai/KB01.vue"; //空白提示组件
 
 export default {
   name: "processMange",
   props: [],
-  components: { GY01, DialogTemplate, CG1, CG2, KC1, GY06, GY03, KC02, GY02 },
+  components: {
+    GY01,
+    DialogTemplate,
+    CG1,
+    CG2,
+    KC1,
+    GY06,
+    GY03,
+    KC02,
+    GY02,
+    KB01,
+  },
   dicts: ["bpm_type", "task_process_state"],
   data() {
     return {

+ 75 - 9
zkqy-ui/src/views/bussiness/progressShow.vue

@@ -38,6 +38,7 @@
         <TaskList
           v-for="(item, index) of tableData"
           :key="index + 1"
+          :num="index + 1"
           :cardData="item"
         ></TaskList>
         <pagination
@@ -54,7 +55,7 @@
 
 <script>
 import TaskList from "./components/taskList.vue";
-import { processList } from "@/api/bpmprocess/run/executeProcess";
+import { processList, getListLog } from "@/api/bpmprocess/run/executeProcess";
 import getNodeSequence from "@/utils/bpmn/getNodeSequence";
 import { xmlStr2XmlObj } from "@/utils/bpmn/xml";
 export default {
@@ -68,7 +69,7 @@ export default {
       total: 0,
       queryParams: {
         pageNum: 1,
-        pageSize: 5,
+        pageSize: 10,
       },
       tableData: [], //列表数据
     };
@@ -77,7 +78,19 @@ export default {
   methods: {
     // 获取列表数据
     getList() {
-      processList(this.queryParams).then((res) => {
+      getListLog(this.queryParams).then((res) => {
+        console.log(res);
+        if (res.code == 200) {
+          this.tableData = this.getTableData(
+            res.rows.map((item) => item.resultMap)
+          );
+          console.log(this.tableData);
+          this.total = res.total;
+        } else {
+          this.$message.error("网络异常,请稍后再试");
+        }
+
+        return;
         if (res.code == 200) {
           this.tableData = this.getTableData(
             res.rows.map((item) => item.resultMap)
@@ -92,18 +105,23 @@ export default {
     getTableData(dataList) {
       let res = [];
       res = dataList.map((item) => {
+        console.log(item);
         let baseObj = {
-          benTaskProcessKey: item.bepTaskKey, //任务编号
-          bepTaskName: item.bepTaskName, //任务名称
-          benCreateTime: item.benCreateTime, //开始或结束时间  需要根据bepTaskProcessState状态 来判定
-          currentNodeKey: item.benTaskNodeKey, //当前节点key
+          benTaskProcessKey: item.taskKey, //任务编号
+          bepTaskName: item.taskName, //任务名称
+          benCreateTime: item.nodeLogList[0].taskNodeType
+            ? item.nodeLogList[0].createTime
+            : "", //开始或结束时间  需要根据bepTaskProcessState状态 来判定
+          currentNodeKey: item.taskNodeKey, //当前节点key
           cardList: [],
+          doneNodeList: item.nodeLogList,
         };
-        let xmlObj = xmlStr2XmlObj(item.bepTaskProcessXmlContent);
+        let xmlObj = xmlStr2XmlObj(item.taskProcessXmlContent);
         baseObj.cardList = getNodeSequence(xmlObj);
         return baseObj;
       });
-      res = this.setNodeState(res);
+      res = this.nodeHandler(res); //合并两个节点数组
+      // res = this.setNodeState(res);
       return res;
     },
     // 设置节点完成情况
@@ -131,6 +149,54 @@ export default {
 
       return res;
     },
+
+    // 合并两个节点数组
+    nodeHandler(processList) {
+      let res = processList.map((item, index) => {
+        item.doneNodeList.forEach((node) => {
+          Object.assign(node, {
+            isDone: true,
+            isNow: false,
+            nodeId: node.taskNodeKey,
+            nodeInfo: {
+              localName: node.taskNodeType,
+              id: "",
+              name: node.taskNodeName,
+              nodeDescription: "",
+              industryType: "",
+              normalScriptKey: "",
+              normalScriptTriggerType: node.taskNodeExecuteType,
+              executeUserType: "",
+              executeUser: "",
+              virtuallyRole: "",
+            },
+          });
+        });
+        let currentIndex = item.cardList.findIndex(
+          (node) => node.nodeId == item.currentNodeKey
+        );
+        for (let i = currentIndex; i < item.cardList.length; i++) {
+          if (i == currentIndex) {
+            item.cardList[i].isNow = true;
+            if (i == item.cardList.length - 1) {
+              item.cardList[i].isDone = true;
+            } else {
+              item.cardList[i].isDone = false;
+            }
+          } else {
+            item.cardList[i].isDone = false;
+            item.cardList[i].isNow = false;
+          }
+        }
+        item.cardList.splice(0, currentIndex + 1, ...item.doneNodeList);
+
+        item.cardList.forEach((node, index) => {
+          node.num = index + 1;
+        });
+        return item;
+      });
+      return res;
+    },
   },
   mounted() {
     this.getList();

+ 17 - 1
zkqy-ui/src/views/system/bpmnPro/components/Panel/components/ElementGenerations.vue

@@ -23,7 +23,14 @@
         <el-input
           v-model="elFormData.elementName"
           maxlength="20"
-          @change="updateElementName"
+          @change="updateFormKey"
+        />
+      </el-form-item>
+      <el-form-item v-if="!isProcess" label="表单" prop="formKey">
+        <el-input
+          v-model="elFormData.formKey"
+          maxlength="20"
+          @change="updateFormKey"
         />
       </el-form-item>
       <!-- </edit-item> -->
@@ -120,6 +127,7 @@ import {
 } from "@packages/bo-utils/myFieldUtil";
 import EventEmitter from "@utils/EventEmitter";
 import { getActive } from "@packages/bpmn-utils/BpmnDesignerUtils";
+import { getFormKey, setFormKey } from "../../bo-utils/myFieldUtil";
 
 export default {
   name: "ElementGenerations",
@@ -136,6 +144,7 @@ export default {
         nodeDescription: "",
         elementExecutable: true,
         scriptTriggerType: false,
+        formKey: "",
       },
 
       isProcess: false,
@@ -160,6 +169,9 @@ export default {
       res.elementName = [
         { required: true, message: "请输入流程/节点名称", trigger: "blur" },
       ];
+      res.formKey = [
+        { required: true, message: "请输表单名称", trigger: "blur" },
+      ];
       // }
       return res;
     },
@@ -186,6 +198,7 @@ export default {
           getProcessVersionTag(getActive()) || "";
       } else {
         this.elFormData.nodeDescription = getNodeDescription(getActive()) || "";
+        this.elFormData.formKey = getFormKey(getActive()) || "";
       }
     },
     updateElementName(value) {
@@ -194,6 +207,9 @@ export default {
     updateElementId(value) {
       setIdValue(getActive(), value);
     },
+    updateFormKey(value) {
+      setFormKey(getActive(), value);
+    },
     updateElementVersion(value) {
       const reg = /((\d|([1-9](\d*))).){2}(\d|([1-9](\d*)))/;
       if (reg.test(value)) {

+ 12 - 8
zkqy-ui/src/views/system/bpmnPro/components/bo-utils/getNodeMsg.js

@@ -101,15 +101,15 @@ function getNodeException(node, nodeObj) {
   let prefix = getProcessEngine();
   let res = []
   let { children } = node;
-  let nodeName = node.getAttribute('name'), nodeFormType = '', formKey = '';
+  let nodeName = node.getAttribute('name'), nodeFormType = 'designForm', formKey = node.getAttribute(`${prefix}:nodeFormKey`);
 
-  if (nodeName.includes('-')) {
-    nodeFormType = 'designForm';
-    formKey = nodeName.split('-')[0]
-  } else {
-    nodeFormType = 'blankForm';
-    formKey = ''
-  }
+  // if (nodeName.includes('-')) {
+  //   nodeFormType = 'designForm';
+  //   formKey = nodeName.split('-')[0]
+  // } else {
+  //   nodeFormType = 'blankForm';
+  //   formKey = 'blankForm'
+  // }
   if (node.getAttribute(`${prefix}:NormalScriptKey`)) {
 
     res.push({
@@ -289,6 +289,10 @@ export function validateNode(xmlObj) {
       res.flag = false;
       res.msg = `${element.localName}必须绑定正常节点`
     }
+    if (!element.getAttribute(`${preFix}:nodeFormKey`)) {
+      res.flag = false;
+      res.msg = `${element.localName}必须绑定表单`
+    }
     // if (!element.getAttribute(`${preFix}:nodeFormKey`)) {
     //   res.flag = false;
     //   res.msg = `${element.localName}必须绑定表单`

+ 4 - 4
zkqy-ui/src/views/tableMange/index.vue

@@ -1924,15 +1924,15 @@ export default {
 
     // 获取按钮组数据
     async getBtnList() {
-      console.log("aaaaaaa");
       let res = await listBtn({ isEnablePaging: false, btnParentId: 0 });
       // this.btnGroupOption=res.rows
       // this.btnGroupOptions = res.rows.filter((item) => !item.whetherBind);
       this.btnGroupOptions = res.rows.filter((item) => {
-        let isMyBtn=this.formData.btnGroupList.some((val)=>item.btnKey==val)
-        return !item.whetherBind ||isMyBtn
+        let isMyBtn = this.formData.btnGroupList.some(
+          (val) => item.btnKey == val
+        );
+        return !item.whetherBind || isMyBtn;
       });
-      
     },
   },
   created() {},

+ 0 - 9
zkqy-ui/src/views/tablelist/commonTable/listInfo.vue

@@ -448,13 +448,6 @@ export default {
   methods: {
     // 获取row-key
     getRowKey(row) {
-      console.log(
-        row[
-          camelCase(
-            this.tableName + "_" + this.templateInfo.template?.primaryKey
-          )
-        ]
-      );
       return row[
         camelCase(this.tableName + "_" + this.templateInfo.template?.primaryKey)
       ];
@@ -642,8 +635,6 @@ export default {
         if (!data || !data.dfVueTemplate) {
           this.jsonData = false;
           this.$message.error("当前表格未绑定表单!");
-          this.title = "运行";
-          this.open = true;
           return;
         }
         if (data.dfFormSql) {