From 9d8be8e7580ef577def96c852288a5a95eab4ea3 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 11 七月 2023 19:22:53 +0800
Subject: [PATCH] 代码整合,前端代码打包

---
 Source/UBCS-WEB/src/views/modeling/cycle.vue |  181 ++++++++++++++++++++++++--------------------
 1 files changed, 98 insertions(+), 83 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/modeling/cycle.vue b/Source/UBCS-WEB/src/views/modeling/cycle.vue
index 3db8c4b..c7a5fd2 100644
--- a/Source/UBCS-WEB/src/views/modeling/cycle.vue
+++ b/Source/UBCS-WEB/src/views/modeling/cycle.vue
@@ -1,6 +1,14 @@
 <template>
   <basic-container class="">
-    <avue-crud :data="data" :option="option" @refresh-change="search" :table-loading="loading">
+    <avue-crud
+      :data="data"
+      :option="option"
+      :page="page"
+      :table-loading="loading"
+      @refresh-change="search"
+      @search-change="search('search', ...arguments)"
+      @search-reset="search('reset', ...arguments)"
+    >
       <template slot-scope="scope" slot="menuLeft">
         <el-button
           type="primary"
@@ -32,14 +40,18 @@
       :width="dialogWidth"
       :title="title"
       append-to-body
-      :before-close="() => {visible = false}"
+      :before-close="
+        () => {
+          visible = false;
+        }
+      "
       top="10vh"
     >
       <CycleFlow
         v-if="visible"
         class="cycle_flow"
         :type="type"
-        :chart-data="rowData.data || {}"
+        :chart-data="nodesEdgesData"
         :chart-data-node-items="flowChartNodeItems"
         :rowData="rowData"
         ref="vueFlowchartEditor"
@@ -54,18 +66,23 @@
 </template>
 
 <script>
-import API from '@/api/modeling/cycle'
+import API from "@/api/modeling/cycle";
 import CycleFlow from "@/components/flow-cycle/flowchartEditor.vue";
 export default {
   name: "cycle.vue",
   components: { CycleFlow },
   data() {
     return {
-      form: {
-        page: 1,
-        limit: 10
+      form: {},
+      page: {
+        pageSize: 10,
+        total: 0,
+        currentPage: 1,
+        layout: "total, sizes, prev, pager, next, jumper",
       },
       option: {
+        searchMenuSpan: 12,
+        searchMenuPosition: "right",
         border: true,
         align: "center",
         menuAlign: "center",
@@ -81,10 +98,12 @@
           {
             label: "鍚嶇О",
             prop: "name",
+            search: true,
           },
           {
             label: "璧峰鐘舵��",
             prop: "startStatusName",
+            search: true,
           },
           {
             label: "鎻忚堪",
@@ -92,107 +111,103 @@
           },
         ],
       },
-      // data: [
-      //   {
-      //     name: "鎴戞槸name",
-      //     label: "鎴戞槸label",
-      //     startState: "鎴戞槸startState",
-      //     remark: "鎴戞槸remark",
-      //     data: {
-      //       nodes: [
-      //         {
-      //           type: "node",
-      //           size: "80*48",
-      //           shape: "flow-rect",
-      //           color: "#1890FF",
-      //           label: "Auditing",
-      //           x: 110.50303650877106,
-      //           y: 59.22389408123915,
-      //           id: "Auditing",
-      //           index: 0,
-      //         },
-      //         {
-      //           type: "node",
-      //           size: "80*48",
-      //           shape: "flow-rect",
-      //           color: "#1890FF",
-      //           label: "Editing",
-      //           x: 120.87992069414531,
-      //           y: 156.76660542375714,
-      //           id: "Editing",
-      //           index: 1,
-      //         },
-      //         {
-      //           type: "node",
-      //           size: "80*48",
-      //           shape: "flow-rect",
-      //           color: "#1890FF",
-      //           label: "Released",
-      //           x: 100.12615232339681,
-      //           y: 252.2339399292003,
-      //           id: "Released",
-      //           index: 2,
-      //         },
-      //       ],
-      //       edges: [
-      //         {
-      //           source: "Auditing",
-      //           sourceAnchor: 1,
-      //           target: "Released",
-      //           targetAnchor: 1,
-      //         },
-      //         {
-      //           source: "Editing",
-      //           sourceAnchor: 3,
-      //           target: "Auditing",
-      //           targetAnchor: 3,
-      //         },
-      //       ],
-      //     },
-      //   },
-      // ],
+      data: [],
       title: "棰勮鐢熷懡鍛ㄦ湡娴佺▼鍥�",
       visible: false,
       flowChartNodeItems: [],
       rowData: {},
+      nodesEdgesData: {},
       dialogWidth: "50%",
       type: "detail",
-      loading: false
+      loading: false,
     };
   },
   created() {
-    this.search()
+    this.search("search", {});
   },
   methods: {
-    search() {
-      this.loading = true
-      API.getList(this.form).then(res => {
-        this.loading = false
-        this.data = res.data.data
-      })
+    search(type, params, done) {
+      if (type === "search") {
+        this.page.currentPage = 1;
+      } else if (type === "reset") {
+        this.page = {
+          pageSize: 10,
+          total: 0,
+          currentPage: 1,
+        };
+      }
+      this.loading = true;
+      const { limit, page } = this.page;
+      API.getList(Object.assign({}, params, { limit, page })).then((res) => {
+        this.loading = false;
+        this.data = res.data.data.records;
+        this.page.total = res.data.data.total;
+        this.loading = false;
+        done && done();
+      });
     },
     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;
+          this.nodesEdgesData = {nodes: res.nodes, edges: res.edges}
+        });
+      } else {
         this.title = "鏂板鐢熷懡鍛ㄦ湡娴佺▼鍥�";
         this.dialogWidth = "95%";
+        this.visible = true;
       }
-      this.type = type;
-      this.rowData = row;
-      this.visible = true;
     },
     async submit() {
       const newRowData = await this.$refs.vueFlowchartEditor.getNewRowData();
+      console.log(newRowData, "newRowDatanewRowData");
       if (!newRowData) {
         return;
       }
       const flowData = this.$refs.vueFlowchartEditor.getFlowData();
-      console.log(JSON.stringify(flowData));
+      if (Array.isArray(flowData.nodes)) {
+        flowData.nodes = flowData.nodes.map((item) => {
+          item.name = item.id;
+          return item;
+        });
+      }
+      if (Array.isArray(flowData.edges)) {
+        flowData.edges = flowData.edges.map((item) => {
+          item.name = item.label;
+          return item;
+        });
+      }
+
+      let params = {
+        ...flowData,
+        ...newRowData,
+      };
+      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;
+      },
     },
   },
 };

--
Gitblit v1.9.3