From c4d9e7a20dac267c5496ad3586c5053be279a17a Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 26 四月 2024 20:09:59 +0800
Subject: [PATCH] 添加action,表单组件

---
 Source/ProjectWeb/src/actions/base/BaseAction.js |   55 +++++++++++++++++++++++++++++++++----------------------
 1 files changed, 33 insertions(+), 22 deletions(-)

diff --git a/Source/ProjectWeb/src/actions/base/BaseAction.js b/Source/ProjectWeb/src/actions/base/BaseAction.js
index e2583fe..c4cec61 100644
--- a/Source/ProjectWeb/src/actions/base/BaseAction.js
+++ b/Source/ProjectWeb/src/actions/base/BaseAction.js
@@ -1,4 +1,5 @@
 import {validatenull} from "@/util/validate";
+import Vue from 'vue';
 
 /**
  * 鎸夐挳鐨勫熀纭�鏈嶅姟
@@ -7,25 +8,39 @@
 /**
  * action閫氱敤鍏ュ彛
  */
-export const doAction = (button,options) => {
-  debugger;
+export const doAction = (button,options,callback) => {
+  options.paramVOS['title']=replaceFreeMarker(options.paramVOS.title,options.dataStore,options.sourceData);
+
   if(button.url && button.url!='null'){
-    let buttonParse = parseEventByUrl(button.url,options,false);
-    import("../"+buttonParse.jsPath).then(module => {
-      module.doAction(options);
+    //鏈夐厤缃產ction璺緞锛屼娇鐢ㄨ矾寰勫搴旂殑js
+    import("../"+button.url+".js").then(module => {
+      module.doAction(options,callback);
     })
   }else {
+    //閫氱敤action
     const handlers = {
+      //鏌ョ湅
+      view: () => {},
+      //鍒涘缓
       add: () => {import("@/actions/base/AddAction").then(module => {
-        module.doAction(options);
+        module.doAction(options,callback);
       })},
-      edit: () => {},
-      delete: () => {},
+      //淇敼
+      edit: () =>  {import("@/actions/base/EditAction").then(module => {
+        module.doAction(options,callback);
+      })},
+      //鍒犻櫎
+      delete: () =>  {import("@/actions/base/DeleteAction").then(module => {
+        module.doAction(options,callback);
+      })},
     };
-    if(handlers[button.actionVO.id]){
-      handlers[button.actionVO.id]()
+    if(validatenull(options.paramVOS.context)) {
+      options.paramVOS.context = options.paramVOS.content;
+    }
+    if(handlers[button.actionVO.id.toLowerCase()]){
+      handlers[button.actionVO.id.toLowerCase()]()
     }else{
-      this.$message.error('鏈壘鍒板搴攁ction锛岃閲嶆柊閰嶇疆鎸夐挳锛�');
+      Vue.prototype.$message.error('鏈壘鍒板搴攁ction锛岃閲嶆柊閰嶇疆鎸夐挳锛�');
     }
   }
 
@@ -102,20 +117,18 @@
  * @param preEventName 鍓嶇疆浜嬩欢鍚嶇О锛岄粯璁eforeevent
  */
 export const callPreEvent = (options,fnTarget,callback,preEventName) => {
-  const params = paramLow(options.paramVOS);
-  options.paramVOS = params;
-  let beforeEvent = params[preEventName || 'beforeevent'];
+  let beforeEvent = options.paramVOS[preEventName || 'beforeevent'];
   if(beforeEvent) {
     let buttonParse = parseEventByUrl(beforeEvent,options,true);
     if(validatenull(buttonParse.jsPath)){
       fnTarget(buttonParse,callback);
     }else{
       try {
-        import("../"+buttonParse.jsPath).then(module => {
+        import("../"+buttonParse.jsPath+".js").then(module => {
           module[buttonParse.methodName](options,callback);
         })
       } catch (error) {
-        this.$message.error('鏈壘鍒板墠缃簨浠舵墽琛宩s');
+        Vue.prototype.$message.error('鏈壘鍒板墠缃簨浠舵墽琛宩s');
       }
     }
   }else{
@@ -132,20 +145,18 @@
  * @param preEventName 鍚庣疆浜嬩欢鍚嶇О锛岄粯璁� afterevent
  */
 export const callPostEvent = (options,fnTarget,callback,postEventName)=>{
-  const params = paramLow(options.paramVOS);
-  options.paramVOS = params;
-  let afterEvent = params[postEventName || 'afterevent'];
+  let afterEvent = options.paramVOS[postEventName || 'afterevent'];
   if(afterEvent) {
     let buttonParse = parseEventByUrl(afterEvent,options,false);
     if(validatenull(buttonParse.jsPath)){
       fnTarget(buttonParse,callback);
     }else{
       try {
-        import("../"+buttonParse.jsPath).then(module => {
+        import("../"+buttonParse.jsPath+".js").then(module => {
           module[buttonParse.methodName](options,callback);
         })
       } catch (error) {
-        this.$message.error('鏈壘鍒板悗缃簨浠舵墽琛宩s');
+        Vue.prototype.$message.error('鏈壘鍒板悗缃簨浠舵墽琛宩s');
       }
     }
   }else{
@@ -182,7 +193,7 @@
     let paramArray = url.substring(url.indexOf("?") + 1).split("&");
     paramArray.forEach(_item=>{
       if (_item.indexOf("=") < 0) {
-        this.$message.error(isBefore?"鍓嶇疆浜嬩欢":"鍚庣疆浜嬩欢" + "鐨勫弬鏁伴厤缃敊璇紝闇�瑕佽xxx=yyy&zzz=a鐨勬柟寮�");
+        Vue.prototype.$message.error(isBefore?"鍓嶇疆浜嬩欢":"鍚庣疆浜嬩欢" + "鐨勫弬鏁伴厤缃敊璇紝闇�瑕佽xxx=yyy&zzz=a鐨勬柟寮�");
         return true;
       }
       params[_item.split("=")[0]] = _item.split("=")[1];

--
Gitblit v1.9.3