From c061998c347b0735c8a1db8d2e191de050caf7e8 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 14 六月 2024 15:21:36 +0800
Subject: [PATCH] 启动流程action

---
 Source/plt-web/plt-web-ui/src/components/actions/base/StartWorkflowAction.js |   74 ++++++++++++++++++
 Source/plt-web/plt-web-ui/src/api/base/actions.js                            |   25 ++++++
 Source/plt-web/plt-web-ui/src/components/actions/base/RevisionDialog.vue     |   85 +++++++++++++++-----
 3 files changed, 162 insertions(+), 22 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/api/base/actions.js b/Source/plt-web/plt-web-ui/src/api/base/actions.js
index 9f4c25c..2e9931f 100644
--- a/Source/plt-web/plt-web-ui/src/api/base/actions.js
+++ b/Source/plt-web/plt-web-ui/src/api/base/actions.js
@@ -32,3 +32,28 @@
     data
   })
 }
+
+// 閾炬帴绫诲瀷鏂板
+export const linkAddSave = (data,url,method) => {
+  return request({
+    url: url || "/api/uiDataController/linkAddSave",
+    method: method || 'post',
+    data
+  })
+}
+// 閾炬帴绫诲瀷淇敼
+export const linkEditSave = (data,url,method) => {
+  return request({
+    url: url || '/api/uiDataController/linkEditSave',
+    method: method || 'put',
+    data
+  })
+}
+// 閾炬帴绫诲瀷鍒犻櫎
+export const linkDeleteData = (data,url,method) => {
+  return request({
+    url:url || '/api/uiDataController/linkDeleteData',
+    method: method || 'delete',
+    data
+  })
+}
diff --git a/Source/plt-web/plt-web-ui/src/components/actions/base/RevisionDialog.vue b/Source/plt-web/plt-web-ui/src/components/actions/base/RevisionDialog.vue
index 5469dc2..8cc6c6a 100644
--- a/Source/plt-web/plt-web-ui/src/components/actions/base/RevisionDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/components/actions/base/RevisionDialog.vue
@@ -175,13 +175,24 @@
           this.formDefineId=this.$refs.uiViewRef.data[key].DefineVO.id;
           if (this.paramVOS.savebeforeevent) {
             var urlobj = parseEventByUrl(this.paramVOS.savebeforeevent,null,null,'doAction');
-            import(`./${urlobj.jsPath}.js`).then(module => {
-              module[urlobj.methodName]({
-                paramVOS: this.paramVOS,
-                dataStore: this.dataStore,
-                sourceData:this.sourceData
-              },this.formSaveHandle);
-            })
+            if(urlobj.params){
+              Object.assign(this.paramVOS,urlobj.params);
+            }
+            if(validatenull(urlobj.jsPath)){
+              this.saveBforeHandle(this.paramVOS);
+            }else{
+              try {
+                import(`./${urlobj.jsPath}.js`).then(module => {
+                  module[urlobj.methodName]({
+                    paramVOS: this.paramVOS,
+                    dataStore: this.dataStore,
+                    sourceData:this.sourceData
+                  },this.formSaveHandle);
+                })
+              } catch (error) {
+                this.$message.error('鏈壘鍒颁繚瀛樺墠缃簨浠舵墽琛宩s');
+              }
+            }
           } else {
             this.formSaveHandle();
           }
@@ -196,13 +207,24 @@
           this.formDefineId=this.paramVOS.form;
           if (this.paramVOS.savebeforeevent) {
             var urlobj = parseEventByUrl(this.paramVOS.savebeforeevent,null,null,'doAction');
-            import(`./${urlobj.jsPath}.js`).then(module => {
-              module[urlobj.methodName]({
-                paramVOS: this.paramVOS,
-                dataStore: this.dataStore,
-                sourceData:this.sourceData
-              },that.formSaveHandle);
-            })
+            if(urlobj.params){
+              Object.assign(this.paramVOS,urlobj.params);
+            }
+            if(validatenull(urlobj.jsPath)){
+              this.saveBforeHandle(this.paramVOS);
+            }else{
+              try {
+                import(`./${urlobj.jsPath}.js`).then(module => {
+                  module[urlobj.methodName]({
+                    paramVOS: this.paramVOS,
+                    dataStore: this.dataStore,
+                    sourceData:this.sourceData
+                  },this.formSaveHandle);
+                })
+              } catch (error) {
+                this.$message.error('鏈壘鍒颁繚瀛樺墠缃簨浠舵墽琛宩s');
+              }
+            }
           } else {
             that.formSaveHandle();
           }
@@ -243,13 +265,24 @@
         }
         if (this.paramVOS.saveafterevent) {
           let urlobj = parseEventByUrl(this.paramVOS.saveafterevent,null,null,'doAction');
-          import(`./${urlobj.jsPath}.js`).then(module => {
-            module[urlobj.methodName]({
-              paramVOS: this.paramVOS,
-              dataStore: this.dataStore,
-              sourceData:this.sourceData
-            });
-          })
+          if(urlobj.params){
+            Object.assign(this.paramVOS,urlobj.params);
+          }
+          if(validatenull(urlobj.jsPath)){
+            this.saveAfterHandle(this.paramVOS);
+          }else{
+            try {
+              import(`./${urlobj.jsPath}.js`).then(module => {
+                module[urlobj.methodName]({
+                  paramVOS: this.paramVOS,
+                  dataStore: this.dataStore,
+                  sourceData:this.sourceData
+                });
+              })
+            } catch (error) {
+              this.$message.error('鏈壘鍒颁繚瀛樺悗缃簨浠舵墽琛宩s');
+            }
+          }
         }
         that.dialogClose();
       });
@@ -275,7 +308,15 @@
     },
     getFormData(form) {
       this.form = form;
-    }
+    },
+    //淇濆瓨鍓嶇疆浜嬩欢
+    saveBforeHandle(params){
+      this.$message.info('鎵ц淇濆瓨鍓嶇疆浜嬩欢');
+    },
+    //淇濆瓨鍚庣疆浜嬩欢
+    saveAfterHandle(params){
+      this.$message.info('淇濆瓨鍚庣疆浜嬩欢鎵ц');
+    },
   }
 }
 </script>
diff --git a/Source/plt-web/plt-web-ui/src/components/actions/base/StartWorkflowAction.js b/Source/plt-web/plt-web-ui/src/components/actions/base/StartWorkflowAction.js
new file mode 100644
index 0000000..5d67215
--- /dev/null
+++ b/Source/plt-web/plt-web-ui/src/components/actions/base/StartWorkflowAction.js
@@ -0,0 +1,74 @@
+/**
+ * 鎸夐挳澶勭悊 涓氬姟绫诲瀷瀹$
+ */
+import {paramLow,callPreEvent, callPostEvent} from '../BaseAction';
+import {validatenull} from "@/util/validate";
+import Vue from "vue";
+
+export const doAction = (options,callback) => {
+  options.sourceData = options.sourceData || {};
+  options.dataStore = options.dataStore || [];
+  if (!options.dataStore || options.dataStore.length < 1) {
+    Vue.prototype.$message.error("璇烽�夋嫨闇�瑕佸彂璧锋祦绋嬬殑鏁版嵁");
+    return false;
+  }
+  if (!options.paramVOS.multi && options.dataStore.length > 1) {
+    Vue.prototype.$message.error("浠呰兘閫夋嫨涓�鏉℃暟鎹彂璧锋祦绋�");
+    return false;
+  }
+
+  //楠岃瘉涓嶅厑璁稿惎鍔ㄧ殑鏉′欢
+  if(!validatenull(options.paramVOS.checknotprocess)) {
+    let notprocess = options.paramVOS.checknotprocess.split('&');
+    let checknotprocess=false;
+    notprocess.forEach((item,i)=>{
+      if (options.dataStore[0][item.split('=')[0]] == item.split('=')[1]) {
+        checknotprocess=true;
+        return false;
+      }
+    })
+    if (checknotprocess) {
+      Vue.prototype.$message.error(replaceFreeMarker(options.paramVOS.checknotprocessmsg,options.dataStore,{}) || "褰撳墠鏁版嵁涓嶅厑璁稿彂璧锋祦绋�");
+      return false;
+    }
+  }
+
+  callPreEvent(options, doBefore, function (options) {
+    showStartWindow(options, function () {
+      callPostEvent(options, doAfter, callback,type);
+    });
+  });
+};
+
+/**
+ * 鏄剧ず娴佺▼鐨勭獥鍙�
+ * @param options 鎸夐挳鐨勯厤缃俊鎭�
+ * @param callback 鍥炶皟
+ */
+export const showStartWindow = (options,callback)=> {
+  const paramVOS = options.paramVOS;
+
+
+}
+/**
+ * 鍓嶇疆浜嬩欢
+ * @param options 鎸夐挳鐨勯厤缃俊鎭�
+ * @param callback 鍥炶皟
+ */
+export const doBefore = (options,callback)=> {
+  console.log("鎵ц澧炲姞鍓嶇疆浜嬩欢")
+  if(callback){
+    callback(options);
+  }
+}
+/**
+ * 鍚庣疆浜嬩欢
+ * @param options 鎸夐挳鐨勯厤缃俊鎭�
+ * @param callback 鍥炶皟
+ */
+export const doAfter = (options,callback,actionType)=> {
+  console.log('鎵ц澧炲姞鍚庣疆浜嬩欢');
+  if(callback){
+    callback(actionType);
+  }
+}

--
Gitblit v1.9.3