From 5bac5571ec6b2bad33069d24ef1b6954f41782df Mon Sep 17 00:00:00 2001
From: fujunling <2984387807@qq.com>
Date: 星期二, 11 七月 2023 17:36:03 +0800
Subject: [PATCH] fjl

---
 Source/UBCS-WEB/src/api/modeling/cycle.js                            |   11 ++
 Source/UBCS-WEB/src/views/modeling/cycle.vue                         |  144 +++++++++++++++++------------------
 Source/UBCS-WEB/src/components/FormTemplate/index.vue                |   10 ++
 Source/UBCS-WEB/src/mixins/codeApply.js                              |    9 ++
 Source/UBCS-WEB/src/components/flow-cycle/components/DetailPanel.vue |   37 ++++++---
 Source/UBCS-WEB/src/components/BatchImport/index.vue                 |    3 
 Source/UBCS-WEB/src/components/flow-cycle/flowchartEditor.vue        |   24 +----
 7 files changed, 127 insertions(+), 111 deletions(-)

diff --git a/Source/UBCS-WEB/src/api/modeling/cycle.js b/Source/UBCS-WEB/src/api/modeling/cycle.js
index 692342a..c350d70 100644
--- a/Source/UBCS-WEB/src/api/modeling/cycle.js
+++ b/Source/UBCS-WEB/src/api/modeling/cycle.js
@@ -7,6 +7,15 @@
         params
     })
 }
+// 鏂板
+export const add = (data) => {
+  return request({
+      url: '/api/ubcs-omd/lifeCycle/submit',
+      method: 'post',
+      data
+  })
+}
 export default {
-  getList
+  getList,
+  add
 }
diff --git a/Source/UBCS-WEB/src/components/BatchImport/index.vue b/Source/UBCS-WEB/src/components/BatchImport/index.vue
index a0f6495..3b347ac 100644
--- a/Source/UBCS-WEB/src/components/BatchImport/index.vue
+++ b/Source/UBCS-WEB/src/components/BatchImport/index.vue
@@ -31,6 +31,7 @@
         left="30px"
       ></Divider>
       <FormTemplate
+        v-loading="!showCodeApply"
         style="margin-top: 30px"
         type="add"
         :selfColumnType="selfColumnType"
@@ -173,7 +174,7 @@
       leftTree: [],
       redisOid: "",
       pageLoading: null,
-      showCodeApply: false,
+      showCodeApply: true,
       currentTypeObj: {
         historyImport: {
           title: "鍘嗗彶鏁版嵁瀵煎叆",
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
index 5db4a8a..98665ec 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -236,7 +236,10 @@
             if (this.hasResemble) {
               this.activeName = "resembleQuery";
               this.showResembleQuery = true;
+            } else {
+              this.showResembleQuery = false
             }
+            console.log(this.hasResemble, 'this.hasResemblethis.hasResemble');
             this.$nextTick(() => {
               this.$refs.FormTemplate.templateRender(
                 res.data.formDefineVO.items
@@ -317,10 +320,13 @@
           return false;
         }
       }
-      // 杩涜鐩镐技椤规煡璇�
-      const resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery(
+      let resembleQueryList = []
+      if (this.$refs.resembleQueryRef) {
+        // 杩涜鐩镐技椤规煡璇�
+      resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery(
         this.form
       );
+      }
       if (resembleQueryList.length === 0) {
         let resForm = {};
         const { defaultValue, formValue } = this.getDefaultValueAndFormValues(
diff --git a/Source/UBCS-WEB/src/components/flow-cycle/components/DetailPanel.vue b/Source/UBCS-WEB/src/components/flow-cycle/components/DetailPanel.vue
index 1fb051b..534d360 100644
--- a/Source/UBCS-WEB/src/components/flow-cycle/components/DetailPanel.vue
+++ b/Source/UBCS-WEB/src/components/flow-cycle/components/DetailPanel.vue
@@ -11,20 +11,20 @@
         <el-form-item label="鍚嶇О" prop="name">
           <el-input v-model.trim="newRowData.name" :maxLength="20" clearable />
         </el-form-item>
-        <el-form-item label="鏍囩" prop="label">
-          <el-input v-model.trim="newRowData.label" clearable />
+        <el-form-item label="鏍囩" prop="id">
+          <el-input v-model.trim="newRowData.id" clearable />
         </el-form-item>
-        <el-form-item label="璧峰鐘舵��" prop="startState">
+        <el-form-item label="璧峰鐘舵��" prop="startStatus">
           <el-select
-            v-model="newRowData.startState"
+            v-model="newRowData.startStatus"
             placeholder="璇烽�夋嫨璧峰鐘舵��"
             style="width: 100%"
           >
             <el-option
-              v-for="item in []"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
+              v-for="item in existNodes"
+              :key="item.id"
+              :label="item.id"
+              :value="item.id"
             >
             </el-option>
           </el-select>
@@ -74,15 +74,20 @@
     DetailPanel,
     DetailForm,
   },
-  props: ["readOnly", "rowData"],
+  props: ["rowData", "existNodes"],
   data() {
     return {
-      newRowData: {},
+      newRowData: {
+        startStatus: undefined,
+        name: undefined,
+        id: undefined,
+        remark: undefined
+      },
       rules: {
         name: [{ required: true, message: "鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }],
-        label: [{ required: true, message: "鏍囩涓嶈兘涓虹┖", trigger: "blur" }],
-        startState: [
-          // { required: true, message: "璧峰鐘舵�佷笉鑳戒负绌�", trigger: "change" },
+        id: [{ required: true, message: "鏍囩涓嶈兘涓虹┖", trigger: "blur" }],
+        startStatus: [
+          { required: true, message: "璧峰鐘舵�佷笉鑳戒负绌�", trigger: "change" },
         ],
       },
     };
@@ -114,6 +119,12 @@
         }
       },
     },
+    existNodes(newV) {
+      const flag = newV.some((item) => item.id === this.newRowData.startStatus);
+      if (!flag) {
+        this.newRowData.startStatus = undefined;
+      }
+    },
   },
 };
 </script>
diff --git a/Source/UBCS-WEB/src/components/flow-cycle/flowchartEditor.vue b/Source/UBCS-WEB/src/components/flow-cycle/flowchartEditor.vue
index 22c03ce..aaac12b 100644
--- a/Source/UBCS-WEB/src/components/flow-cycle/flowchartEditor.vue
+++ b/Source/UBCS-WEB/src/components/flow-cycle/flowchartEditor.vue
@@ -23,7 +23,7 @@
         </div>
         <div class="vfe-chart-panel" v-if="type !== 'detail'">
           <div class="vfe-chart-panel-detail">
-            <editor-detail-panel :rowData="rowData" ref="EditorDetailPanel" />
+            <editor-detail-panel :rowData="rowData" ref="EditorDetailPanel" :existNodes="existNodes"/>
           </div>
         </div>
       </div>
@@ -83,6 +83,7 @@
       },
       tooltipShow: true,
       tooltipData: [],
+      existNodes: []
     };
   },
 
@@ -95,25 +96,7 @@
   },
 
   methods: {
-    // onAfterChange(e) {
-    //   const model = e.model
-    //   console.log(JSON.parse(JSON.stringify(e)));
-    //   if (!model.change) {
-    //     model.id = model.label
-    //     model.change = true
-    //   } else {
-    //     return
-    //   }
-    //   const { nodes } = this.$refs.flowChart.propsAPI.save()
-    //   if (Array.isArray(nodes) && nodes.length > 0) {
-
-    //   } else {
-    //     this.$refs.flowChart.propsAPI.add("node", model);
-    //   }
-    //   throw '绂佹鍘熺敓鏂板鏂规硶'
-    // },
     onAfterChange(e) {
-      console.log(e);
       try {
         if (e.action === "add" && e.model.type === "node") {
           if (!e.model.change) {
@@ -131,6 +114,9 @@
           this.$message.error("涓嶈兘娣诲姞宸插瓨鍦ㄧ殑鑺傜偣锛�");
         }
       }
+      const { nodes } = this.$refs.flowChart.propsAPI.save()
+      this.existNodes = nodes || []
+      console.log(this.$refs.flowChart.propsAPI.save());
     },
     _downloadImage(data, filename = "flowchart.png") {
       const a = document.createElement("a");
diff --git a/Source/UBCS-WEB/src/mixins/codeApply.js b/Source/UBCS-WEB/src/mixins/codeApply.js
index b424b44..ffe002e 100644
--- a/Source/UBCS-WEB/src/mixins/codeApply.js
+++ b/Source/UBCS-WEB/src/mixins/codeApply.js
@@ -41,10 +41,15 @@
       codeApplyForm: {},
     }
   },
+  created() {
+    if (this.type === 'batchImportApply') {
+      this.getCodeRule()
+    }
+  },
   methods: {
     // 鑾峰彇鐮佸�肩敵璇锋暟鎹�
     getCodeRule() {
-      getCodeRule({ codeClassifyOid: this.localCodeClassifyOid }).then((res) => {
+      getCodeRule({ codeClassifyOid: this.localCodeClassifyOid || this.codeClassifyOid }).then((res) => {
         if (res.data && res.data.code === 200) {
           const typeList = [
             "codefixedsec",
@@ -64,6 +69,8 @@
               }
               this.$refs.CodeApply.templateRender(this.localSecVOList);
             });
+          } else {
+            this.showCodeApply = false
           }
 
         }
diff --git a/Source/UBCS-WEB/src/views/modeling/cycle.vue b/Source/UBCS-WEB/src/views/modeling/cycle.vue
index 3db8c4b..7c171f6 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,7 +40,11 @@
       :width="dialogWidth"
       :title="title"
       append-to-body
-      :before-close="() => {visible = false}"
+      :before-close="
+        () => {
+          visible = false;
+        }
+      "
       top="10vh"
     >
       <CycleFlow
@@ -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,84 +111,43 @@
           },
         ],
       },
-      // 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: {},
       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;
+      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) => {
+        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") {
@@ -188,11 +166,29 @@
     },
     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));
+      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