From bf00347a300c9b0d3c212ef3a41c2977a6b62193 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期四, 11 四月 2024 17:41:47 +0800
Subject: [PATCH] action处理

---
 Source/ProjectWeb/src/actions/base/BaseAction.js |   98 +++++++++++++++++++++++++++++++++---------------
 1 files changed, 67 insertions(+), 31 deletions(-)

diff --git a/Source/ProjectWeb/src/actions/base/BaseAction.js b/Source/ProjectWeb/src/actions/base/BaseAction.js
index 528dbe4..e2583fe 100644
--- a/Source/ProjectWeb/src/actions/base/BaseAction.js
+++ b/Source/ProjectWeb/src/actions/base/BaseAction.js
@@ -1,9 +1,36 @@
 import {validatenull} from "@/util/validate";
-import {findArray} from "@/util/util";
 
 /**
  * 鎸夐挳鐨勫熀纭�鏈嶅姟
  */
+
+/**
+ * action閫氱敤鍏ュ彛
+ */
+export const doAction = (button,options) => {
+  debugger;
+  if(button.url && button.url!='null'){
+    let buttonParse = parseEventByUrl(button.url,options,false);
+    import("../"+buttonParse.jsPath).then(module => {
+      module.doAction(options);
+    })
+  }else {
+    const handlers = {
+      add: () => {import("@/actions/base/AddAction").then(module => {
+        module.doAction(options);
+      })},
+      edit: () => {},
+      delete: () => {},
+    };
+    if(handlers[button.actionVO.id]){
+      handlers[button.actionVO.id]()
+    }else{
+      this.$message.error('鏈壘鍒板搴攁ction锛岃閲嶆柊閰嶇疆鎸夐挳锛�');
+    }
+  }
+
+};
+
 
 /**
  * 鏇挎崲鏂囨湰涓殑${xxx}
@@ -28,7 +55,7 @@
       let temp = text.substring(0, text.indexOf(reg));
       let field = text.substring(text.indexOf(reg) + reg.length, text.indexOf("}"));
       let end = text.substring(text.indexOf("}") + 1);
-      field = replaceData[field] || sourceData[field] || '';
+      field = sourceData[field] || '';
       text = temp + field + end;
     }
     reg = "sourceData.${";
@@ -36,7 +63,7 @@
       let temp = text.substring(0, text.indexOf(reg));
       let field = text.substring(text.indexOf(reg) + reg.length, text.indexOf("}"));
       let end = text.substring(text.indexOf("}") + 1);
-      field = replaceData[field] || sourceData[field] || '';
+      field = sourceData[field] || '';
       text = temp + field + end;
     }
     reg = "${";
@@ -44,7 +71,7 @@
       let temp = text.substring(0, text.indexOf(reg));
       let field = text.substring(text.indexOf(reg) + reg.length, text.indexOf("}"));
       let end = text.substring(text.indexOf("}") + 1);
-      field = replaceData[field] || sourceData[field] || '';
+      field = replaceData[field] || '';
       text = temp + field + end;
     }
   }
@@ -70,23 +97,26 @@
 /**
  * 鎵ц鍓嶇疆浜嬩欢
  * @param options 鎸夐挳鐨勯厤缃俊鎭紝鍓嶇疆浜嬩欢閲岄厤缃殑鍙傛暟浼氭浛鎹㈣繖涓噷鐨勫弬鏁扮殑淇℃伅
- * @param buttonTarget 鎸夐挳js鎵�鍦ㄧ殑瀵硅薄
+ * @param fnTarget 鎵ц鏂规硶
  * @param callback 鍥炶皟锛屽鏋滃瓨鍦ㄥ墠缃簨浠讹紝浼氬湪鎵ц瀹屾垚鍚庢墽琛屽洖璋冿紝鍚﹀垯鐩存帴鍥炶皟
  * @param preEventName 鍓嶇疆浜嬩欢鍚嶇О锛岄粯璁eforeevent
  */
-export const callPreEvent = (options,buttonTarget,callback,preEventName) => {
+export const callPreEvent = (options,fnTarget,callback,preEventName) => {
   const params = paramLow(options.paramVOS);
   options.paramVOS = params;
   let beforeEvent = params[preEventName || 'beforeevent'];
   if(beforeEvent) {
     let buttonParse = parseEventByUrl(beforeEvent,options,true);
-    buttonParse.options.callback = callback;
-    if(validatenull(buttonParse)){
-      buttonTarget[buttonParse.methodName](buttonParse);
+    if(validatenull(buttonParse.jsPath)){
+      fnTarget(buttonParse,callback);
     }else{
-      layui.use(buttonParse.jsPath,function () {
-        layui[buttonParse.jsPath][buttonParse.methodName](options);
-      });
+      try {
+        import("../"+buttonParse.jsPath).then(module => {
+          module[buttonParse.methodName](options,callback);
+        })
+      } catch (error) {
+        this.$message.error('鏈壘鍒板墠缃簨浠舵墽琛宩s');
+      }
     }
   }else{
     if(callback){
@@ -95,22 +125,28 @@
   }
 };
 /**
- * 鎵ц鍚庣疆鏃堕棿
+ * 鎵ц鍚庣疆浜嬩欢
  * @param options 鎸夐挳鐨勯厤缃俊鎭紝鍚庣疆浜嬩欢閲岄厤缃殑鍙傛暟浼氭浛鎹㈣繖涓噷鐨勫弬鏁扮殑淇℃伅
- * @param buttonTarget 鎸夐挳Js鎵�鍦ㄧ殑瀵硅薄
+ * @param fnTarget 鎵ц鏂规硶
+ * @param callback 鍥炶皟锛屽鏋滃瓨鍦ㄥ悗缃簨浠讹紝浼氬湪鎵ц瀹屾垚鍚庢墽琛屽洖璋冿紝鍚﹀垯鐩存帴鍥炶皟
+ * @param preEventName 鍚庣疆浜嬩欢鍚嶇О锛岄粯璁� afterevent
  */
-export const callPostEvent = (options,buttonTarget,callback,postEventName)=>{
+export const callPostEvent = (options,fnTarget,callback,postEventName)=>{
   const params = paramLow(options.paramVOS);
   options.paramVOS = params;
-  var afterEvent = params[postEventName || 'afterevent'];
+  let afterEvent = params[postEventName || 'afterevent'];
   if(afterEvent) {
-    var buttonParse = parseEventByUrl(afterEvent,options,false);
-    if(validatenull(buttonParse)){
-      buttonTarget[buttonParse.methodName](buttonParse);
+    let buttonParse = parseEventByUrl(afterEvent,options,false);
+    if(validatenull(buttonParse.jsPath)){
+      fnTarget(buttonParse,callback);
     }else{
-      layui.use(buttonParse.jsPath,function () {
-        layui[buttonParse.jsPath][buttonParse.methodName](options);
-      });
+      try {
+        import("../"+buttonParse.jsPath).then(module => {
+          module[buttonParse.methodName](options,callback);
+        })
+      } catch (error) {
+        this.$message.error('鏈壘鍒板悗缃簨浠舵墽琛宩s');
+      }
     }
   }else{
     if(callback){
@@ -127,13 +163,13 @@
  */
 export const parseEventByUrl = (url,options,isBefore) => {
   //鏍规嵁閰嶇疆鏍煎紡鍖栦簨浠�
-  var jsPath = url;
-  var methodName = isBefore?"doBefore":"doAfter";
-  var params = {};
+  let jsPath = url;
+  let methodName = isBefore?"doBefore":"doAfter";
+  let params = {};
   if (url.indexOf("?")) {
-    var temp = url.substring(0, url.indexOf("?"));
+    let temp = url.substring(0, url.indexOf("?"));
     if (temp.indexOf("#") > -1) {
-      var array = temp.split("#");
+      let array = temp.split("#");
       if(array.length == 1){
         jsPath = array[0];
       }else{
@@ -143,17 +179,17 @@
     }else{
       jsPath = temp;
     }
-    var paramArray = url.substring(url.indexOf("?") + 1).split("&");
-    layui.each(paramArray, function (_index, _item) {
+    let paramArray = url.substring(url.indexOf("?") + 1).split("&");
+    paramArray.forEach(_item=>{
       if (_item.indexOf("=") < 0) {
         this.$message.error(isBefore?"鍓嶇疆浜嬩欢":"鍚庣疆浜嬩欢" + "鐨勫弬鏁伴厤缃敊璇紝闇�瑕佽xxx=yyy&zzz=a鐨勬柟寮�");
         return true;
       }
       params[_item.split("=")[0]] = _item.split("=")[1];
-    });
+    })
   }else{
     if (url.indexOf("#") > -1) {
-      var array = url.split("#");
+      let array = url.split("#");
       if(array.length == 1){
         jsPath = array[0];
       }else{

--
Gitblit v1.9.3