From 4a2835ddadb796c69f180097b95f971dbab4687d Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 13 九月 2023 09:09:14 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS-WEB/src/views/code/code.vue |  352 ++++++++--------------------------------------------------
 1 files changed, 48 insertions(+), 304 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue
index 697ae5e..dbc4044 100644
--- a/Source/UBCS-WEB/src/views/code/code.vue
+++ b/Source/UBCS-WEB/src/views/code/code.vue
@@ -47,7 +47,7 @@
           </el-button>
           <el-button
             v-show="scope.row.lcStatus == 'Editing' ? true : false"
-            :disabled="releadDisabled"
+            :loading="releadDisabled"
             icon="el-icon-position"
             plain
             size="small"
@@ -156,7 +156,7 @@
     >
     </advanced-query>
 
-    <!-- 缂栫爜瑙勫垯鐩稿叧瀵硅瘽妗� -->
+    <!-- 浠ヤ笅鏄紪鐮佽鍒欑浉鍏冲璇濇 -->
     <el-dialog
       :visible.sync="codeRangeSettingBox"
       append-to-body
@@ -177,148 +177,18 @@
     </el-dialog>
 
     <!-- 缂栫爜瑙勫垯,鍏嬮殕瀵硅瘽妗� -->
-    <el-dialog
+    <clone-rule-dialog
       :visible.sync="cloneSettingBox"
-      append-to-body
-      class="avue-dialog avue-dialog--top"
-      style="height: 100vh"
-      title="鍏嬮殕缂栫爜瑙勫垯"
-      top="-3%"
-      width="800px"
-    >
-      <div>
-        <el-row>
-          <el-form ref="form" :inline="true" :model="form" label-width="80px">
-            <el-form-item label="缂栧彿" required>
-              <el-input v-model="cloneCodeRuleForm.id"></el-input>
-            </el-form-item>
-            <el-form-item label="鍚嶇О" required>
-              <el-input v-model="cloneCodeRuleForm.name"></el-input>
-            </el-form-item>
-            <el-form-item class="clone-input-textarea" label="鎻忚堪">
-              <el-input
-                v-model="cloneCodeRuleForm.description"
-                :autosize="{ minRows: 3, maxRows: 5 }"
-                type="textarea"
-              ></el-input>
-            </el-form-item>
-          </el-form>
-        </el-row>
-        <el-row>
-          <p
-            style="
-              margin: 0 0px 16px 50%;
-              font-weight: 500;
-              font-size: 20px;
-              color: #000;
-            "
-          >
-            鐮佹绠$悊
-          </p>
-          <avue-crud
-            :data="cloneData"
-            :option="cloneOption"
-            :table-loading="cloneTableLoading"
-            class="clone-avue-crud"
-            @on-load="cloneDataOnLoad"
-          >
-            <template slot="menu" slot-scope="scope">
-              <el-button
-                v-show="scope.row.orderNum > 1"
-                icon="el-icon-arrow-up"
-                plain
-                size="small"
-                type="text"
-                @click="upOrderNum(scope.row)"
-                >涓婄Щ
-              </el-button>
-              <el-button
-                icon="el-icon-arrow-down"
-                plain
-                size="small"
-                type="text"
-                @click="downOrderNum(scope.row)"
-                >涓嬬Щ
-              </el-button>
-            </template>
-          </avue-crud>
-        </el-row>
-      </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="saveCloneCodeRule">淇� 瀛�</el-button>
-        <el-button @click="cloneSettingBox = false">鍙� 娑�</el-button>
-      </div>
-    </el-dialog>
+      :ruleData="selectionList[0]"
+      @refreshRuleTable="onLoad">
+    </clone-rule-dialog>
 
     <!-- 缂栫爜瑙勫垯,浠庡叾浠栬鍒欏厠闅嗗璇濇 -->
-    <el-dialog
+    <clone-other-basic-sec-dialog
       :visible.sync="cloneOtherCodeRuleSettingBox"
-      append-to-body
-      class="avue-dialog avue-dialog--top"
-      destroy-on-close
-      style="height: 100vh"
-      title="鍏嬮殕缂栫爜瑙勫垯鐨勫熀纭�淇℃伅"
-      top="-3%"
-      width="800px"
-    >
-      <div>
-        <el-row>
-          <p
-            style="
-              margin-top: -20px;
-              margin-bottom: 4px;
-              font-weight: 570;
-              font-size: 19px;
-              color: #0e2d5f;
-            "
-          >
-            缂栫爜瑙勫垯
-          </p>
-          <avue-crud
-            ref="crudCloneCodeRuleOther"
-            :data="data"
-            :option="cloneCodeRuleOption"
-            :page.sync="page"
-            :table-loading="loading"
-            class="other-clone-coderule-crud"
-            @row-click="codeOtherCloneRuleRowClick"
-            @size-change="sizeChange"
-            @selection-change="selectionOtherCloneCodeRuleChange"
-            @on-load="onLoad"
-          >
-          </avue-crud>
-        </el-row>
-        <el-row style="margin-top: 10px; border-top: 1px solid #ebeef5">
-          <p
-            style="
-              margin-top: 10px;
-              margin-bottom: 4px;
-              font-weight: 570;
-              font-size: 19px;
-              color: #0e2d5f;
-            "
-          >
-            鐮佹淇℃伅
-          </p>
-          <avue-crud
-            ref="crudCloneCodeBasicOther"
-            :data="basicData"
-            :option="cloneBasicOption"
-            :table-loading="loadingBasic"
-            class="other-clone-codebasic-crud"
-            @row-click="codeOtherCloneBasicRowClick"
-            @selection-change="selectionOtherCloneCodeBasicChange"
-          >
-          </avue-crud>
-        </el-row>
-      </div>
-      <div slot="footer" class="dialog-footer" style="height: 50px">
-        <el-button type="primary" @click="saveOtherCodeBasic">淇� 瀛�</el-button>
-        <el-button @click="cloneOtherCodeRuleSettingBox = false"
-          >鍙� 娑�</el-button
-        >
-      </div>
-    </el-dialog>
+      :quiltCloneCodeRule="selectionList[0]"
+      @refreshRuleTable="onLoad">
+    </clone-other-basic-sec-dialog>
 
     <!-- 缂栫爜瑙勫垯,杞Щ鎵�鏈夎�呭璇濇 -->
     <el-dialog
@@ -326,6 +196,7 @@
       append-to-body
       title="杞Щ鎵�鏈夎��"
       width="30%"
+      class= "avue-dialog avue-dialog--top"
     >
       <el-select v-model="ruleOwner" class="selects" placeholder="璇烽�夋嫨">
         <el-option
@@ -468,7 +339,7 @@
       append-to-body
       class="avue-dialog avue-dialog--top"
       destroy-on-close
-      style="height: 100vh"
+      style="height: 110vh"
       title="鐮佹鐮佸�肩鐞�"
       top="-3%"
       @close="clearFixedOrClassifyForm('close')"
@@ -476,17 +347,17 @@
       <!-- 鍒嗙被鐮佹鐮佸�肩鐞� -->
       <el-row v-show="!isShowFixedForm">
         <el-col :span="11">
-          <basic-container>
+          <basic-container style="overflow:hidden">
             <div
               class="box classify_value_box"
               style="height: 60vh; margin-bottom: -40px"
             >
               <basic-container>
-                <div class="abox" style="height: 54vh">
+                <div class="abox">
                   <avue-tree
                     :data="classifyValueTreeData"
                     :option="classisyValueTreeOption"
-                    style=""
+                    style="height: calc(60vh - 100px);"
                     @node-click="classisyValueTreeOnodeClick"
                   />
                 </div>
@@ -1274,9 +1145,8 @@
         <el-button
           :disabled="!showbtn"
           type="primary"
-          @click="saveOrEditBasicCode"
-          >淇� 瀛�</el-button
-        >
+          :loading="isLoadingSecCodeAddBtn"
+          @click="saveOrEditBasicCode">淇� 瀛�</el-button>
         <el-button @click="addBasicCodeSettingBox = false">鍙� 娑�</el-button>
       </div>
 
@@ -1402,7 +1272,7 @@
     </el-dialog>
   </basic-container>
 </template>
- 
+
 <script>
 import {
   gridCodeRule,
@@ -1412,7 +1282,6 @@
   remove,
   listUseRange,
   updateStatus,
-  clone,
   clearAllCode,
   checkLikeCodeRule,
 } from "@/api/code/mdmrule";
@@ -1422,7 +1291,6 @@
   upOrderNum,
   deleteData,
   editSave,
-  cloneCodeBasic,
   addSave,
   refDataGridClassifySec,
 } from "@/api/code/codebasic";
@@ -1443,9 +1311,6 @@
 } from "@/api/code/codeClassifyValue";
 import { getDictionary } from "@/api/omd/enum";
 import optionBasic from "@/const/code/codebasic";
-import cloneOption from "@/const/code/cloneOption";
-import cloneBasicOption from "@/const/code/cloneBasicDialogOption";
-import cloneCodeRuleOption from "@/const/code/cloneCodeRuleDialogOption";
 import optionRule from "@/const/code/mdmrule";
 import attrOption from "@/const/code/selectAttrOptionDialog";
 import treeOption from "@/const/code/classifyTreeOptionDialog";
@@ -1455,7 +1320,6 @@
 import { mapGetters } from "vuex";
 import { getByRoleUserList } from "@/api/system/user";
 import func from "@/util/func";
-import logeVue from '../docking/loge.vue';
 
 export default {
   data() {
@@ -1474,21 +1338,13 @@
       optionRule: optionRule,
       data: [],
       currentRuleLcStatus: "",
-      /*鍏嬮殕瀵硅瘽妗嗘帶鍒跺彉閲�*/
+
+      /*鍏嬮殕缂栫爜瑙勫垯瀵硅瘽妗嗘帶鍒跺彉閲�*/
       cloneSettingBox: false,
-      cloneTableLoading: false,
-      cloneOption: cloneOption,
-      cloneData: [],
-      cloneCodeRuleForm: {
-        id: "",
-        name: "",
-        description: "",
-      },
+
       /*浠庡叾浠栬鍒欏厠闅嗙爜娈�*/
       cloneOtherCodeRuleSettingBox: false,
-      cloneBasicOption: cloneBasicOption,
-      cloneCodeRuleOption: cloneCodeRuleOption,
-      selectionOtherCloneCodeBasicList: [], // 褰撳墠閫変腑鐨勫熀纭�鐮佹
+
       /** 杞Щ鎵�鏈夎�呭璇濇 */
       escapeOwnerVisible: false,
       ruleAdminUserList: [], //瑙勫垯绠$悊鍛樺垪琛�
@@ -1543,7 +1399,8 @@
       loadingBasic: false,
       selectionBasicList: [],
       addBasicCodeSettingBox: false,
-      showbtn: false, //鍩虹鐮佹鏂板鏄惁鏄剧ず鍩虹鐮佹
+      showbtn: false, //鍩虹鐮佹鏂板鎸夐挳鏄惁绂佺敤
+      isLoadingSecCodeAddBtn: false,
       basicSecDialogTitle: "", //鍩虹鐮佹绗竴灞傚璇濇鏍囬
       basicSecOnlyRead: false, //鏂板鍩虹鐮佹琛ㄥ崟鏄惁鍙
 
@@ -1748,6 +1605,7 @@
     });
   },
   methods: {
+
     /** 杞Щ瑙勫垯鎵�鏈夎�呭璇濇 */
     escapeOwner() {
       if (this.selectionList.length === 0) {
@@ -2018,6 +1876,8 @@
               oid: this.codefixedsecOrCodeclassifysec.oid,
             });
             this.clearFixedOrClassifyForm("codefixedsec");
+            this.$refs.crudFixedValue.refreshTable();
+            this.$refs.crudFixedValue.doLayout();
             this.$message({
               type: "success",
               message: "鎿嶄綔鎴愬姛!",
@@ -2514,6 +2374,7 @@
     updateStatus(oid, update) {
       updateStatus({ oid: oid, ts: new Date().getTime, update: update }).then(
         () => {
+          this.releadDisabled = false;
           this.onLoad(this.page);
           this.$message({
             type: "success",
@@ -2528,8 +2389,8 @@
     /** 鍙戝竷缂栫爜瑙勫垯 */
     async enableOrDeactivatse(oid, update) {
       if (update === "release") {
-        // 閬垮厤鐢ㄦ埛閲嶅鐐瑰嚮鎸夐挳
         this.releadDisabled = true;
+        // 閬垮厤鐢ㄦ埛閲嶅鐐瑰嚮鎸夐挳
         await checkLikeCodeRule(oid)
           .then((res) => {
             //console.log(res)
@@ -2540,17 +2401,15 @@
                 distinguishCancelAndClose: true,
                 confirmButtonText: "缁х画鍙戝竷",
                 cancelButtonText: "鍙栨秷",
-              })
-              .then(() => {
+              }).then(() => {
                 this.updateStatus(oid, update);
                 this.releadDisabled = false;
-              })
-              .catch((action) => {
-                this.releadDisabled = false;
+              }).catch((action) => {
                 this.$message({
                   type: "info",
                   message: "鍙栨秷鍙戝竷!",
                 });
+                this.releadDisabled = false;
               });
             }
           })
@@ -2561,53 +2420,15 @@
         this.updateStatus(oid, update);
       }
     },
+
     /** 鎵撳紑缂栫爜瑙勫垯鍏嬮殕瀵硅瘽妗�*/
     openCodeRuleDialog() {
       if (!this.tipsMessage(this.selectionList)) {
         return;
       }
       this.cloneSettingBox = true;
-      this.cloneCodeRuleForm.id = this.selectionList[0].id;
-      this.cloneCodeRuleForm.name = this.selectionList[0].name;
-      this.cloneCodeRuleForm.description = this.selectionList[0].description;
-      this.loadBasic({ oid: this.selectionList[0].oid });
     },
-    /** 鍏嬮殕缂栫爜瑙勫垯淇濆瓨鍔熻兘*/
-    saveCloneCodeRule() {
-      let form = this.cloneCodeRuleForm;
-      if (form.id.trim() == "") {
-        this.$message.warning("缂栧彿涓嶈兘涓虹┖!");
-        return;
-      }
-      if (form.name.trim() == "") {
-        this.$message.warning("鐮佸�间笉鑳戒负绌�!");
-        return;
-      }
-      this.selectionList[0].oid = "";
-      this.selectionList[0].id = form.id;
-      this.selectionList[0].name = form.name;
-      this.selectionList[0].description = form.description;
-      this.selectionList[0].createTime = new Date().getTime();
-      this.selectionList[0].ts = new Date(this.selectionList[0].ts).getTime();
-      this.selectionList[0].lcStatus = "Editing";
-      let data = Object.assign({}, this.selectionList[0], {
-        elements: this.cloneData,
-      });
-      clone(data).then(
-        () => {
-          this.cloneSettingBox = false;
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!",
-          });
-        },
-        (error) => {
-          window.console.log(error);
-        }
-      );
-      //console.log(data);
-    },
+
     /** 鎵撳紑浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹瀵硅瘽妗�*/
     openOtherCodeRuleDialog() {
       if (!this.tipsMessage(this.selectionList)) {
@@ -2619,79 +2440,7 @@
       }
       this.cloneOtherCodeRuleSettingBox = true;
     },
-    //** 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹瀵硅瘽妗�-鍗曞嚮缂栫爜瑙勫垯瀹炵幇琛岄�夋嫨*/
-    codeOtherCloneRuleRowClick(row) {
-      this.$refs.crudCloneCodeRuleOther.toggleSelection();
-      this.selectionOtherCloneCodeRuleList = row;
-      this.$refs.crudCloneCodeRuleOther.setCurrentRow(row);
-      this.$refs.crudCloneCodeRuleOther.toggleRowSelection(row); //閫変腑褰撳墠琛�
-      this.loadBasic(row);
-    },
-    /** 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹瀵硅瘽妗�-鍗曞嚮鍩虹鐮佹瀹炵幇琛岄�夋嫨*/
-    codeOtherCloneBasicRowClick(row) {
-      this.$refs.crudCloneCodeBasicOther.toggleSelection();
-      this.selectionOtherCloneCodeBasicList = row;
-      this.$refs.crudCloneCodeBasicOther.setCurrentRow(row);
-      this.$refs.crudCloneCodeBasicOther.toggleRowSelection(row); //閫変腑褰撳墠琛�
-    },
-    /** 浠庡叾浠栬鍒欏厠闅嗙爜娈电晫闈腑缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�*/
-    selectionOtherCloneCodeRuleChange(list) {
-      //console.log(list);
-      this.selectionOtherCloneCodeRuleList = list;
-      this.$refs.crudBasic.setCurrentRow(
-        this.selectionBasicList[list.length - 1]
-      );
-      if (list == "") {
-        this.basicData = [];
-      }
-      if (this.selectionOtherCloneCodeRuleList.length > 0) {
-        this.loadBasic(this.selectionOtherCloneCodeRuleList[list.length - 1]);
-      }
-    },
-    selectionOtherCloneCodeBasicChange(list) {
-      this.selectionOtherCloneCodeBasicList = list;
-      this.$refs.crudCloneCodeBasicOther.setCurrentRow(
-        this.selectionOtherCloneCodeBasicList[list.length - 1]
-      );
-    },
-    /** 浠庡叾浠栫紪鐮佽鍒欎腑鍏嬮殕鐮佹淇℃伅*/
-    saveOtherCodeBasic() {
-      let oid = this.selectionList[0].oid;
-      let fromDialogPkCodebasic = this.selectionOtherCloneCodeBasicList;
-      if (fromDialogPkCodebasic.length <= 0) {
-        this.$message.warning("璇烽�夋嫨鐮佹鏁版嵁!");
-        return;
-      }
-      let res = fromDialogPkCodebasic.filter((item) => {
-        return item.pkCodeRule == oid;
-      });
-      if (res != "") {
-        this.$message.warning("闇�瑕佸厠闅嗙殑缂栫爜瑙勫垯涓庤鍏嬮殕鐨勭紪鐮佽鍒欑浉鍚�!");
-        return;
-      }
-      let oidArr = [];
-      fromDialogPkCodebasic.forEach((ele) => {
-        oidArr.push(ele.oid);
-      });
-      let data = {
-        pkCodeRule: oid,
-        oidArr: oidArr.join(","),
-      };
-      //console.log(data);
-      cloneCodeBasic(data).then(
-        () => {
-          this.cloneOtherCodeRuleSettingBox = false;
-          this.onLoad(this.page);
-          this.$message({
-            type: "success",
-            message: "鎿嶄綔鎴愬姛!",
-          });
-        },
-        (error) => {
-          window.console.log(error);
-        }
-      );
-    },
+
     /** 娓呯┖鐮佸��*/
     clearAllCodeSec() {
       if (this.selectionList.length == 0) {
@@ -2793,10 +2542,12 @@
       }
       done();
     },
+    // 缂栫爜瑙勫垯蹇�熸煡璇㈤噸缃�
     searchReset() {
       this.query = {};
       this.onLoad(this.page);
     },
+    // 缂栫爜瑙勫垯蹇�熸煡璇�
     searchChange(params, done) {
       this.page.currentPage = 1;
       // 澶氫釜conditionMap杩欐牱浼犲弬锛屽揩閫熸煡璇㈤粯璁ら噰鐢ㄦā绯婃煡璇�
@@ -2808,7 +2559,7 @@
         });
       }
       this.query = requestData;
-      this.onLoad(this.page);
+      this.onLoad(this.page, this.query);
       done();
     },
     /** 缂栫爜瑙勫垯褰撳墠閫変腑琛屽彉鍖栫殑鏃跺�欒Е鍙�*/
@@ -2846,7 +2597,7 @@
     },
     onLoad(page, params = {}) {
       this.loading = true;
-      gridCodeRule(page.currentPage, page.pageSize, this.query).then((res) => {
+      gridCodeRule(page.currentPage, page.pageSize, params).then((res) => {
         //console.log(res.data);
         const data = res.data.data;
         this.page.total = data.total;
@@ -2871,6 +2622,7 @@
     /** 闃叉鎵撳紑杩囩紪杈戠獥鍙d箣鍚庤〃鍗曚腑瀛樺湪鍊硷紝鎵�浠ラ渶瑕佹竻绌�,骞跺垵濮嬪寲form琛ㄥ崟灞炴��*/
     clearBasicAddForm() {
       this.form = this.$options.data().form;
+      //this.isLoadingSecCodeAddBtn = false;
       // this.changeSectypeFormItems(null);
     },
     /** 鎵撳紑鏂板绐楀彛*/
@@ -2912,6 +2664,7 @@
     },
     /** 鏂板鍩虹鐮佹*/
     async saveOrEditBasicCode() {
+      this.isLoadingSecCodeAddBtn = true;
       if (
         this.selectionList[0].oid == null ||
         this.selectionList[0].oid == ""
@@ -2966,6 +2719,7 @@
         // 鍏抽棴瀵硅瘽妗�
         this.addBasicCodeSettingBox = false;
       }
+      this.isLoadingSecCodeAddBtn = false;
     },
     /** 鍥犱负elementui鐨勮〃鍗曟牎楠岃缃笉涓婃墍浠ラ噰鐢ㄥ垽鏂殑鏂瑰紡鏉ュ仛琛ㄥ崟妫�楠屾柟寮�*/
     checkForm() {
@@ -3200,14 +2954,10 @@
     },
     /** 鐐瑰嚮瑙﹀彂鍔犺浇鍩虹鐮佹淇℃伅*/
     loadBasic(row) {
-      if (this.cloneSettingBox) {
-        this.cloneTableLoading = true;
-      } else {
-        this.loadingBasic = true;
-      }
+      this.loadingBasic = true;
       // console.log(row.oid);
-      //瀛樺偍褰撳墠鍏宠仈鐨勭紪鐮佽鍒欑浉鍏充俊鎭�
       if (row != "" || row != null) {
+        //瀛樺偍褰撳墠鍏宠仈鐨勭紪鐮佽鍒欑浉鍏充俊鎭�
         this.currentCodeRuleOid = row.oid;
         this.currentRuleLcStatus = row.lcStatus;
         this.sendGridCodeBasicSec({ pkCodeRule: row.oid }, false);
@@ -3237,14 +2987,8 @@
       gridCodeBasicSec(1, -1, isAdancedQuery ? condition : conditionMaps).then(
         (res) => {
           const data = res.data.data;
-          if (this.cloneSettingBox) {
-            this.cloneData = data.records;
-            this.cloneTableLoading = false;
-          } else {
-            this.basicData = data.records;
-            // console.log(this.basicData);
-            this.loadingBasic = false;
-          }
+          this.basicData = data.records;
+          this.loadingBasic = false;
         }
       );
     },
@@ -3660,7 +3404,7 @@
   },
 };
 </script>
- 
+
 <style>
 [class^="icon-"] {
   font-size: 12px !important;
@@ -3803,4 +3547,4 @@
 /* .code-total > .basic-container__card {
     height: 100%;
   } */
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3