From 22119b6c5128b773d4e72a0a6ca1f736d0def087 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期二, 08 八月 2023 18:08:05 +0800
Subject: [PATCH] 修改流程启动,流程执行

---
 Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue |  312 ++++++++++++++++++---------------------------------
 1 files changed, 109 insertions(+), 203 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
index 6d4c5a1..347fef0 100644
--- a/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
+++ b/Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -190,14 +190,14 @@
       WupinFindValue: "",
       //鐩镐技椤规煡璇�
       similarVisible: false,
-      //鍙戝竷
+      //鍚姩娴佺▼
       parameter: {
         ids: [],
         btmtype:'',
         code: "",
         type: '',
         // this.visibleDeactivate ?'ENABLE':this.visibleEnable ? 'DISABLE' :this.visibleRecovery ? 'ROLLBACK' :'PUBLIC'
-        template: "",
+        processName: "",
         vars: {
           codeClassifyOid: "",
           templateOid: ""
@@ -268,12 +268,19 @@
       result: ''
     };
   },
-  computed: {},
+  computed: {
+    oids() {
+      let oids = [];
+      this.selectRow.forEach(ele => {
+        oids.push(ele.oid);
+      });
+      return oids;
+    }
+  },
   created() {
     // const index = this.$route.query.id.indexOf('@name=') + '@name='.length;
     // this.result = this.$route.query.id.substring(index);
     getUserInfo().then(res=>{
-      console.log(res.data.data)
       this.result=res.data.data.realName
     })
   },
@@ -294,7 +301,6 @@
     codeClassifyOid: {
       handler(newval, oldval) {
         this.codeClassifyOid = newval;
-        this.parameter.vars.codeClassifyOid = newval
       },
       deep: true,
     },
@@ -337,9 +343,7 @@
     },
     templateOid: {
       handler(newval, oldval) {
-        this.parameter.code = newval;
         this.fileOptions.ownbizOid = "0";
-        this.parameter.vars.templateOid = newval
       },
       deep: true,
     },
@@ -434,213 +438,120 @@
     },
     // 鍙戝竷
     setHandler() {
-      console.log('Treedata',this.Treedata)
-      if (this.selectRow.length > 0) {
-        let hasEditing = this.selectRow.some(item => item.lcstatus !== 'Editing');
-        let showMessage = true;
-        this.selectRow.forEach(item => {
-          if (this.selectRow.length === 1 && item.lcstatus !== "Editing" && showMessage) {
-            this.$message.warning('鍙湁鐘舵�佹槸銆愮紪杈戜腑銆戠殑鏁版嵁鎵嶅彲浠ュ彂璧锋祦绋�');
-            showMessage = false;
-          } else if (hasEditing && showMessage) {
-            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愮紪杈戜腑銆戞墠鍙互鍙戣捣娴佺▼');
-            showMessage = false;
-          } else if (showMessage) {
-            processTS({templateId: this.templateOid, buttonTypeKey: 'PUBLIC'}).then(res => {
-              if (res.data.data.records && res.data.data.records.length != 0) {
-                this.parameter.processName = this.result + '-鐢宠[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']';
-                this.parameter.type = 'PUBLIC';
-                this.parameter.code = this.templateOid;
-                this.parameter.btmtype=this.selectRow[0].btmname || this.selectRow[0].btmtype;
-                this.title = '娴佺▼瀹℃壒'
-                this.visibleFlow = true;
-              } else {
-                this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', {
-                  confirmButtonText: '纭畾',
-                  cancelButtonText: '鍙栨秷',
-                  type: 'warning'
-                }).then(() => {
-                  const oid = this.selectRow.map(obj => obj.oid).join(",");
-                  changeStatus({oid: oid, btmname: this.selectRow[0].btmname, lcStatus: 'Released'}).then(res => {
-                    if (res.data.code == 200) {
-                      this.$message.success('鍙戝竷鎴愬姛')
-                      this.onLoad()
-                    }
-                  });
-                }).catch(() => {
-                  this.$message({
-                    type: 'info',
-                    message: '宸插彇娑�'
-                  });
-                })
-              }
-            })
-          }
-        });
-      } else {
-        this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
+      var options = {
+        processUse:'PUBLIC',
+        processUseText:'鐢宠',
+        allowStatus:'Editing',
+        allowStatusText:'宸茬紪杈�',
+        startStatus:'Auditing',
+        resetStatus:'Editing',
+        batchTitle:'鎵归噺鎻愪氦缂栫爜鏁版嵁鍒版祦绋嬪鎵�',
+        title:'鎻愪氦缂栫爜鏁版嵁鍒版祦绋嬪鎵�'
       }
+      this.checkStatusAndSubmitProcess(options,'Released');
     },
     //鍋滅敤
     Deactivate() {
-      if (this.selectRow.length <= 0) {
-        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
-      } else {
-        let hasEditing = this.selectRow.every(item => item.lcstatus == 'Released');
-        let showMessage = true;
-        this.selectRow.forEach(item => {
-          if (this.selectRow.length === 1 && item.lcstatus === "Disabled" && showMessage) {
-            this.$message.warning('閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�');
-            showMessage = false;
-          } else if (this.selectRow.length > 1 && !hasEditing && showMessage) {
-            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愬彂甯冪姸鎬併�戞墠鍙互鍙戣捣娴佺▼');
-            showMessage = false;
-          } else if (this.selectRow.length >= 1 && hasEditing && showMessage) {
-            processTS({templateId: this.templateOid, buttonTypeKey: 'DISABLE'}).then(res => {
-              if (res.data.records != [] && res.data.data.records.length != 0) {
-                this.parameter.processName = this.result + '-鍋滅敤[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']';
-                this.parameter.type = 'DISABLE';
-                this.parameter.code = this.templateOid
-                this.parameter.btmtype=this.selectRow[0].btmname || this.selectRow[0].btmtype;
-                this.title = '鍋滅敤锛堝喕缁擄級缂栫爜鏁版嵁'
-                this.visibleDeactivate = true;
-              } else {
-                if (showMessage) {
-                  showMessage = false; // 鏍囪宸叉墽琛岃繃鎿嶄綔
-                  this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', {
-                    confirmButtonText: '纭畾',
-                    cancelButtonText: '鍙栨秷',
-                    type: 'warning'
-                  }).then(() => {
-                    const oid = this.selectRow.map(obj => obj.oid).join(",");
-                    changeStatus({oid: oid, btmname: this.selectRow[0].btmname, lcStatus: 'Disabled'}).then(res => {
-                      if (res.data.code == 200) {
-                        this.$message.success('鍋滅敤鎴愬姛')
-                        this.onLoad()
-                      }
-                    });
-                  }).catch(() => {
-                    this.$message({
-                      type: 'info',
-                      message: '宸插彇娑�'
-                    });
-                  });
-                }
-              }
-            });
-          } else if(this.selectRow.length == 1 && !hasEditing && showMessage ) {
-            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹负銆愬彂甯冪姸鎬併�戞墠鍙互鍙戣捣娴佺▼')
-          }
-        });
+      var options = {
+        processUse:'DISABLE',
+        processUseText:'鍋滅敤',
+        allowStatus:'Released',
+        allowStatusText:'宸插彂甯�',
+        resetStatus:'Released',
+        batchTitle:'鎵归噺鍋滅敤(鍐荤粨)鐨勭紪鐮佹暟鎹�',
+        title:'鍋滅敤(鍐荤粨)缂栫爜鏁版嵁',
+        confirmMsg:'鏄惁瑕佸仠鐢ㄨ繖浜涙暟鎹�'
       }
+      this.checkStatusAndSubmitProcess(options,'Disabled');
     },
     //鍚敤
     Enable() {
-      if (this.selectRow.length <= 0) {
-        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
-      } else {
-        let hasEditing = this.selectRow.every(item => item.lcstatus == 'Disabled');
-        let showMessage = true;
-        this.selectRow.forEach(item => {
-          if (this.selectRow.length === 1 && item.lcstatus !== "Disabled" && showMessage) {
-            this.$message.warning('閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�');
-            showMessage = false;
-          } else if (this.selectRow.length >= 1 && hasEditing && showMessage) {
-            processTS({templateId: this.templateOid, buttonTypeKey: 'ENABLE'}).then(res => {
-              if (res.data.data.records && res.data.data.records.length != 0) {
-                this.parameter = res.data.data.records[0]
-                this.parameter.processName = this.result + '-鍚敤[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']';
-                this.parameter.type = 'Released';
-                this.parameter.code = this.templateOid
-                this.parameter.btmtype=this.selectRow[0].btmname || this.selectRow[0].btmtype;
-                this.title = '鍚敤缂栫爜鏁版嵁'
-                this.visibleDeactivate = true;
-              } else {
-                if (showMessage) {
-                  showMessage = false; // 鏍囪宸叉墽琛岃繃鎿嶄綔
-                  this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', {
-                    confirmButtonText: '纭畾',
-                    cancelButtonText: '鍙栨秷',
-                    type: 'warning'
-                  }).then(() => {
-                    const oid = this.selectRow.map(obj => obj.oid).join(",");
-                    changeStatus({oid: oid, btmname: this.selectRow[0].btmname, lcStatus: 'Released'}).then(res => {
-                      if (res.data.code == 200) {
-                        this.$message.success('鍚敤鎴愬姛')
-                        this.onLoad()
-                      }
-                    });
-                  }).catch(() => {
-                    this.$message({
-                      type: 'info',
-                      message: '宸插彇娑�'
-                    });
-                  });
-                }
-              }
-            });
-          } else if (this.selectRow.length > 1 && !hasEditing && showMessage) {
-            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愬仠鐢ㄧ姸鎬併�戞墠鍙互鍙戣捣娴佺▼');
-            showMessage = false;
-          }
-        });
+      var options = {
+        processUse:'ENABLE',
+        processUseText:'鍚敤',
+        allowStatus:'Disabled',
+        allowStatusText:'宸插仠鐢�',
+        resetStatus:'Disabled',
+        batchTitle:'鎵归噺鍚敤(瑙e喕)鐨勭紪鐮佹暟鎹�',
+        title:'鍚敤(瑙e喕)缂栫爜鏁版嵁',
+        confirmMsg:'鏄惁瑕佸惎鐢�(瑙e喕)杩欎簺鏁版嵁'
       }
+      this.checkStatusAndSubmitProcess(options,'Released');
     },
     //鍥炴敹
     Recovery() {
+      var options = {
+        processUse:'ROLLBACK',
+        processUseText:'鍥炴敹',
+        allowStatus:'Released,Disabled',
+        allowStatusText:'宸插彂甯�,宸插仠鐢�',
+        batchTitle:'鎵归噺鍥炴敹鐨勭紪鐮佹暟鎹�',
+        title:'鍥炴敹缂栫爜鏁版嵁',
+        confirmMsg:'鏄惁瑕佸洖鏀惰繖浜涙暟鎹�',
+      }
+      this.checkStatusAndSubmitProcess(options,'TakeBack');
+    },
+    checkStatusAndSubmitProcess(options,targetLcstatus){
+      // 缂栬緫涓�-鍙兘鍙戝竷锛屼笉鑳藉洖鏀�
+      // 瀹℃牳涓�-浠�涔堥兘涓嶈兘鍋�
+      // 宸插彂甯�-鍋滅敤銆佸洖鏀�
+      // 鍋滅敤-鍙兘鍚敤銆佸洖鏀�
       if (this.selectRow.length <= 0) {
-        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
+        this.$message.warning("璇烽�夋嫨鏁版嵁");
+      } else if (this.selectRow.length >1000) {
+        this.$message.warning("姣忔鎻愪氦鍒版祦绋嬬殑鏁伴噺璇蜂笉瑕佽秴杩�1000鏉�");
       } else {
-        // 缂栬緫涓�-鍙兘鍙戝竷锛屼笉鑳藉洖鏀�
-        // 瀹℃牳涓�-浠�涔堥兘涓嶈兘鍋�
-        // 宸插彂甯�-鍋滅敤銆佸洖鏀�
-        // 鍋滅敤-鍙兘鍚敤銆佸洖鏀�
-        const disabledCount = this.selectRow.filter(item => item.lcstatus === 'Disabled').length;
-        const releasedCount = this.selectRow.filter(item => item.lcstatus === 'Released').length;
-        let showMessage = true;
-        this.selectRow.forEach(item => {
-          if (this.selectRow.length === 1 && item.lcstatus == "TakeBack" && showMessage) {
-            this.$message.warning('閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�');
-            showMessage = false;
-          } else if (this.selectRow.length >= 1 && (disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0) && showMessage) {
-            //disabledCount 鍜� releasedCount 涓换鎰忎竴涓瓑浜� this.selectRow 鏁扮粍鐨勯暱搴﹀垯琛ㄧず鍏ㄩ儴鏄悓涓�绉嶇姸鎬侊紝杩斿洖 true 濡傛灉disabledCount 鍜� releasedCount 閮藉ぇ浜�0锛屽垯琛ㄧず鏃㈡湁Disabled涔熸湁Released杩斿洖 true
-            processTS({templateId: this.templateOid, buttonTypeKey: 'ROLLBACK'}).then(res => {
-              if (res.data.records != [] && res.data.data.records.length != 0) {
-                this.parameter.processName = this.result + '-鍥炴敹[' + this.selectRow[0].btmname + '-' + this.selectRow[0].name + ']';
-                this.parameter.type = 'TakeBack';
-                this.parameter.code = this.templateOid
-                this.parameter.btmtype=this.selectRow[0].btmname || this.selectRow[0].btmtype;
-                this.title = '鍥炴敹缂栫爜鏁版嵁'
-                this.visibleDeactivate = true;
-              } else {
-                if (showMessage) {
-                  showMessage = false; // 鏍囪宸叉墽琛岃繃鎿嶄綔
-                  this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', {
-                    confirmButtonText: '纭畾',
-                    cancelButtonText: '鍙栨秷',
-                    type: 'warning'
-                  }).then(() => {
-                    const oid = this.selectRow.map(obj => obj.oid).join(",");
-                    changeStatus({oid: oid, btmname: this.selectRow[0].btmname, lcStatus: 'TakeBack'}).then(res => {
-                      if (res.data.code == 200) {
-                        this.$message.success('鍥炴敹鎴愬姛')
-                        this.onLoad()
-                      }
-                    });
-                  }).catch(() => {
-                    this.$message({
-                      type: 'info',
-                      message: '宸插彇娑�'
-                    });
-                  });
+        //瀹℃壒鐨勬暟鎹殑鐘舵�佸繀椤荤浉鍚�
+        var lcstatus = this.selectRow[0].lcstatus;
+        let hasDiff = this.selectRow.every(item => item.lcstatus == lcstatus);
+        if (!hasDiff) {
+          this.$message.warning("鎮ㄩ�夋嫨鐨勬暟鎹殑鐘舵�佷笉鐩稿悓");
+          return false;
+        }
+        if (lcstatus == targetLcstatus) {
+          this.$message.warning("閫夋嫨鐨勬暟鎹腑鐘舵�佹棤闇�鍐嶆墽琛屽綋鍓嶆搷浣�");
+          return false;
+        }
+        if(options.processUseText=='鐢宠' && !validatenull(this.selectRow[0].copyfromversion)){
+          options.processUseText='淇敼'
+          options.processUse='EDIT'
+        }
+        let checkStatus = this.selectRow.every(item =>  options.allowStatus.indexOf(item.lcstatus)!=-1);
+        if(!checkStatus){
+          this.$message.warning('鍙湁鐘舵�佹槸銆�'+options.allowStatusText+'銆戠殑鏁版嵁鎵嶅彲浠ュ彂璧锋祦绋�');
+          return  false;
+        }
+        processTS({templateId: this.templateOid, buttonTypeKey: options.processUse}).then(res => {
+          if (res.data.data.records && res.data.data.records.length != 0) {
+            this.parameter.ids=this.oids;
+            this.parameter.processName = this.result + '-'+options.processUseText+'[' + this.Treedata[0].name + '-' + this.selectRow[0].name + ']';
+            this.parameter.type = options.processUse;
+            this.parameter.code = this.templateOid
+            this.parameter.btmtype=this.selectRow[0].btmname || this.selectRow[0].btmtype;
+            this.parameter.vars= {
+              codeClassifyOid: this.codeClassifyOid,
+              templateOid: this.templateOid
+            };
+            this.title = this.selectRow.length>1?options.batchTitle:options.title;
+            this.visibleDeactivate = true;
+          } else {
+            this.$confirm('褰撳墠鍒嗙被娌℃湁娣诲姞娴佺▼妯℃澘锛屾槸鍚︿笉鐢ㄦ祦绋嬪鎵圭洿鎺ユ墽琛�?', '鎻愮ず', {
+              confirmButtonText: '纭畾',
+              cancelButtonText: '鍙栨秷',
+              type: 'warning'
+            }).then(() => {
+              changeStatus({oid: this.oids.join(','), btmname: this.selectRow[0].btmname, lcStatus: targetLcstatus}).then(res => {
+                if (res.data.code == 200) {
+                  this.$message.success(options.processUseText + '鎴愬姛')
+                  this.onLoad()
                 }
-              }
+              });
+            }).catch(() => {
+              this.$message({
+                type: 'info',
+                message: '宸插彇娑�'
+              });
             });
-          } else if (showMessage && this.selectRow.length > 1 && !(disabledCount === this.selectRow.length || releasedCount === this.selectRow.length) || (disabledCount > 0 && releasedCount > 0)) {
-            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹叏閮ㄤ负銆愬仠鐢ㄧ姸鎬佹垨鍙戝竷鐘舵�併�戞墠鍙互鍙戣捣娴佺▼');
-            showMessage = false;
-          } else if (showMessage) {
-            this.$message.warning('鎮ㄩ�夋嫨鐨勬暟鎹负銆愬仠鐢ㄧ姸鎬佹垨鍙戝竷鐘舵�併�戞墠鍙互鍙戣捣娴佺▼')
           }
         });
       }
@@ -787,11 +698,6 @@
     //澶氶��
     handleSelectionChange(list) {
       this.selectRow = list;
-      console.log(this.selectRow)
-      this.parameter.ids = [];
-      list.forEach((item) => {
-        this.parameter.ids.push(item.oid);
-      });
     },
     //閫夋嫨
     handleSelection(list, row) {

--
Gitblit v1.9.3