From eda2e443a82ffcfc07773b103bc6d6f28f922410 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 01 八月 2023 14:27:57 +0800
Subject: [PATCH] 修改样式

---
 Source/UBCS-WEB/src/views/modeling/cycle.vue |  347 +++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 309 insertions(+), 38 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/modeling/cycle.vue b/Source/UBCS-WEB/src/views/modeling/cycle.vue
index 7c171f6..db3bda8 100644
--- a/Source/UBCS-WEB/src/views/modeling/cycle.vue
+++ b/Source/UBCS-WEB/src/views/modeling/cycle.vue
@@ -5,9 +5,13 @@
       :option="option"
       :page="page"
       :table-loading="loading"
+      selection
+      @size-change="search('size', ...arguments)"
+      @current-change="search('current', ...arguments)"
       @refresh-change="search"
       @search-change="search('search', ...arguments)"
       @search-reset="search('reset', ...arguments)"
+      @selection-change="selectionChange"
     >
       <template slot-scope="scope" slot="menuLeft">
         <el-button
@@ -17,12 +21,22 @@
           @click="openDialog('add', {})"
           >鏂板</el-button
         >
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="small"
+          @click="batchDel()"
+          v-if="selectedData.length > 0"
+          :loading="delLoading"
+          >鍒犻櫎</el-button
+        >
       </template>
       <template slot-scope="{ row, index }" slot="menu">
         <el-button
           type="text"
           icon="el-icon-edit"
           size="mini"
+          :loading="row.editLoading"
           @click="openDialog('edit', row)"
           >缂栬緫</el-button
         >
@@ -30,8 +44,18 @@
           type="text"
           icon="el-icon-view"
           size="mini"
+          :loading="row.detailLoading"
           @click="openDialog('detail', row)"
           >棰勮</el-button
+        >
+        <el-button
+          class="btn_link_del"
+          type="text"
+          icon="el-icon-delete"
+          size="mini"
+          :loading="row.delLoading"
+          @click="rowDel(row)"
+          >鍒犻櫎</el-button
         >
       </template></avue-crud
     >
@@ -51,14 +75,20 @@
         v-if="visible"
         class="cycle_flow"
         :type="type"
-        :chart-data="rowData.data || {}"
+        :chart-data="nodesEdgesData"
         :chart-data-node-items="flowChartNodeItems"
         :rowData="rowData"
         ref="vueFlowchartEditor"
         @save-data="save"
       />
       <template #footer v-if="type !== 'detail'">
-        <el-button type="primary" size="mini" @click="submit">淇濆瓨</el-button>
+        <el-button
+          type="primary"
+          size="mini"
+          @click="submit"
+          :loading="submitLoading"
+          >淇濆瓨</el-button
+        >
         <el-button type="" size="mini" @click="visible = false">鍙栨秷</el-button>
       </template>
     </el-dialog>
@@ -78,10 +108,14 @@
         pageSize: 10,
         total: 0,
         currentPage: 1,
-        layout: "total, sizes, prev, pager, next, jumper"
+        layout: "total, sizes, prev, pager, next, jumper",
       },
       option: {
-        searchMenuSpan: 12,
+        height:'auto',
+        calcHeight:20,
+        tip:false,
+        selection: true,
+        searchMenuSpan: 6,
         searchMenuPosition: "right",
         border: true,
         align: "center",
@@ -94,6 +128,7 @@
           {
             label: "缂栧彿",
             prop: "id",
+            search: true,
           },
           {
             label: "鍚嶇О",
@@ -102,7 +137,7 @@
           },
           {
             label: "璧峰鐘舵��",
-            prop: "startStatusName",
+            prop: "startStatus",
             search: true,
           },
           {
@@ -116,9 +151,13 @@
       visible: false,
       flowChartNodeItems: [],
       rowData: {},
+      nodesEdgesData: {},
       dialogWidth: "50%",
       type: "detail",
       loading: false,
+      delLoading: false,
+      submitLoading: false,
+      selectedData: [],
     };
   },
   created() {
@@ -134,14 +173,18 @@
           total: 0,
           currentPage: 1,
         };
+      } else if (type === "size") {
+        this.page.pageSize = params;
+      } else if (type === "current") {
+        this.page.currentPage = params;
       }
       this.loading = true;
-      console.log(
-        Object.assign({}, params, this.page),
-        "Object.assign({}, params, this.page)"
-      );
-      const { limit, page } = this.page;
-      API.getList(Object.assign({}, params, { limit, page })).then((res) => {
+      API.getList(
+        Object.assign({}, params, {
+          size: this.page.pageSize,
+          current: this.page.currentPage,
+        })
+      ).then((res) => {
         this.loading = false;
         this.data = res.data.data.records;
         this.page.total = res.data.data.total;
@@ -150,45 +193,270 @@
       });
     },
     openDialog(type, row) {
-      if (type === "detail") {
-        this.title = "棰勮鐢熷懡鍛ㄦ湡娴佺▼鍥�";
-        this.dialogWidth = "50%";
-      } else if (type === "edit") {
+      this.type = type;
+      if (type === "edit") {
+        this.$set(row, "editLoading", true);
         this.title = "缂栬緫鐢熷懡鍛ㄦ湡娴佺▼鍥�";
         this.dialogWidth = "95%";
-      } else if (type === "add") {
+      } else if (type === "detail") {
+        this.$set(row, "detailLoading", true);
+        this.title = "棰勮鐢熷懡鍛ㄦ湡娴佺▼鍥�";
+        this.dialogWidth = "50%";
+      }
+      if (type !== "add") {
+        API.detail({ id: row.id }).then((res) => {
+          this.$set(row, "detailLoading", false);
+          this.$set(row, "editLoading", false);
+          this.rowData = row;
+          const nodes = res.data.data.nodes.map((item) => {
+            item.label = item.id;
+            item.index = item.indexNum;
+            return item;
+          });
+          const edges = res.data.data.edges.map((item) => {
+            item.label = item.name;
+            item.width = 80;
+            item.height = 48;
+            item.index = 1;
+            item.index = item.indexNum;
+            return item;
+          });
+          this.nodesEdgesData = { nodes, edges };
+          this.visible = true;
+        });
+      } else {
+        this.nodesEdgesData = {};
+        this.rowData = {};
         this.title = "鏂板鐢熷懡鍛ㄦ湡娴佺▼鍥�";
         this.dialogWidth = "95%";
+        this.visible = true;
       }
-      this.type = type;
-      this.rowData = row;
-      this.visible = true;
+    },
+    // 閫変腑鏁版嵁
+    selectionChange(selectedData) {
+      this.selectedData = selectedData;
+    },
+    // 鍒犻櫎
+    rowDel(row) {
+      this.$confirm("纭鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      }).then(() => {
+        this.$set(row, "delLoading", true);
+        API.del({ oid: row.oid, id: row.id })
+          .then((res) => {
+            this.$set(row, "delLoading", false);
+            if (res.data.code === 200) {
+              this.$message.success("鍒犻櫎鎴愬姛锛�");
+              this.search();
+            }
+          })
+          .catch(() => {
+            this.$set(row, "delLoading", false);
+          });
+      });
+    },
+    batchDel() {
+      this.$confirm("纭鍒犻櫎鎵�閫夋暟鎹�?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      }).then(() => {
+        const data = this.selectedData.map((item) => {
+          return {
+            id: item.id,
+            oid: item.oid,
+          };
+        });
+        this.delLoading = true;
+        API.del(data, true)
+          .then((res) => {
+            this.delLoading = false;
+            if (res.data.code === 200) {
+              this.$message.success("鍒犻櫎鎴愬姛锛�");
+              this.search();
+            }
+          })
+          .catch(() => {
+            this.delLoading = false;
+          });
+      });
     },
     async submit() {
+      // const data = {
+      //   startStatus: "Auditing",
+      //   name: "22",
+      //   id: "asas",
+      //   nodes: [
+      //     {
+      //       type: "node",
+      //       size: "80*48",
+      //       shape: "flow-rect",
+      //       color: "#1890FF",
+      //       label: "Auditing",
+      //       x: 278.60856031183397,
+      //       y: 84.12841612613737,
+      //       id: "Auditing",
+      //       change: true,
+      //       index: 0,
+      //       name: "Auditing",
+      //       indexNum: 0,
+      //     },
+      //     {
+      //       type: "node",
+      //       size: "80*48",
+      //       shape: "flow-rect",
+      //       color: "#1890FF",
+      //       label: "Editing",
+      //       x: 294.17388658989535,
+      //       y: 299.9676071819219,
+      //       id: "Editing",
+      //       change: true,
+      //       index: 1,
+      //       name: "Editing",
+      //       indexNum: 1,
+      //     },
+      //     {
+      //       type: "node",
+      //       size: "80*48",
+      //       shape: "flow-rect",
+      //       color: "#1890FF",
+      //       label: "drg",
+      //       x: 278.60856031183397,
+      //       y: 463.92237731083515,
+      //       id: "drg",
+      //       change: true,
+      //       index: 3,
+      //       name: "drg",
+      //       indexNum: 3,
+      //     },
+      //   ],
+      //   edges: [
+      //     {
+      //       source: "Auditing",
+      //       sourceAnchor: 2,
+      //       target: "Editing",
+      //       targetAnchor: 0,
+      //       id: "3083896f",
+      //       index: 2,
+      //       indexNum: 2,
+      //       events: [
+      //         {
+      //           eventFullName:
+      //             "plm.bs.omd.lifecycle.server.pubimpl.TransationEvente",
+      //           eventShowName: "TransationEventE",
+      //           description: "",
+      //           bizDomain: "mdm",
+      //           oid: "5",
+      //           creator: "",
+      //           createTime: "",
+      //           lastModifier: "",
+      //           lastModifyTime: "",
+      //           ts: "",
+      //         },
+      //       ],
+      //     },
+      //     {
+      //       source: "Editing",
+      //       sourceAnchor: 2,
+      //       target: "drg",
+      //       targetAnchor: 0,
+      //       id: "b941a21d",
+      //       index: 4,
+      //       indexNum: 4,
+      //       events: [
+      //         {
+      //           eventFullName:
+      //             "plm.bs.omd.lifecycle.server.pubimpl.TransationEventf",
+      //           eventShowName: "TransationEventF",
+      //           description: "",
+      //           bizDomain: "mdm",
+      //           oid: "6",
+      //           creator: "",
+      //           createTime: "",
+      //           lastModifier: "",
+      //           lastModifyTime: "",
+      //           ts: "",
+      //         },
+      //         {
+      //           eventFullName:
+      //             "plm.bs.omd.lifecycle.server.pubimpl.TransationEvente",
+      //           eventShowName: "TransationEventE",
+      //           description: "",
+      //           bizDomain: "mdm",
+      //           oid: "5",
+      //           creator: "",
+      //           createTime: "",
+      //           lastModifier: "",
+      //           lastModifyTime: "",
+      //           ts: "",
+      //         },
+      //       ],
+      //     },
+      //   ],
+      // };
+      // API.add(data)
+      //   .then((res) => {
+      //     this.submitLoading = false;
+      //     if (res.data.code === 200) {
+      //       this.$message.success(
+      //         this.type === "edit" ? "淇敼鎴愬姛锛�" : "鏂板鎴愬姛锛�"
+      //       );
+      //       this.visible = false;
+      //       this.search();
+      //     }
+      //   })
+      //   .catch(() => {
+      //     this.submitLoading = false;
+      //   });
+      // return;
       const newRowData = await this.$refs.vueFlowchartEditor.getNewRowData();
-      console.log(newRowData, 'newRowDatanewRowData');
       if (!newRowData) {
         return;
       }
-      const flowData = this.$refs.vueFlowchartEditor.getFlowData();
-      let params = {
-        ...flowData,
-        ...newRowData
+      // const edgeEvents = this.$refs.vueFlowchartEditor.getEdgesEvents();
+      const flowData = await this.$refs.vueFlowchartEditor.getFlowData();
+      if (Array.isArray(flowData.nodes)) {
+        flowData.nodes = flowData.nodes.map((item) => {
+          item.name = item.id;
+          item.indexNum = item.index;
+          return item;
+        });
       }
-      console.log(flowData, newRowData);
-      API.add(params).then(res => {
-        console.log(res, 'res');
-      })
-    },
-  },
-  watch: {
-    page: {
-      deep: true,
-      immediate: true,
-      handler(newV) {
-        this.page.page = newV.currentPage;
-        this.page.limit = newV.pageSize;
-      },
+      if (Array.isArray(flowData.edges)) {
+        flowData.edges = flowData.edges.map((item) => {
+          item.name = item.label;
+          item.indexNum = item.index;
+          // item.events = edgeEvents[item.id] || [];
+          return item;
+        });
+      }
+      let params = {
+        ...newRowData,
+        ...flowData,
+      };
+      debugger;
+      this.submitLoading = true;
+      let APIFun = API.add;
+      if (this.type === "edit") {
+        APIFun = API.edit;
+        this.$delete(params, "id");
+      }
+      APIFun(params)
+        .then((res) => {
+          this.submitLoading = false;
+          if (res.data.code === 200) {
+            this.$message.success(
+              this.type === "edit" ? "淇敼鎴愬姛锛�" : "鏂板鎴愬姛锛�"
+            );
+            this.visible = false;
+            this.search();
+          }
+        })
+        .catch(() => {
+          this.submitLoading = false;
+        });
     },
   },
 };
@@ -205,4 +473,7 @@
   margin: 0;
   padding: 0;
 }
+.btn_link_del {
+  color: red;
+}
 </style>

--
Gitblit v1.9.3