From a9bbbe822377536e6f3374b05e2b64b12b2f188c Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期一, 27 五月 2024 10:25:43 +0800
Subject: [PATCH] action文档

---
 Source/ProjectWeb/src/components/actions/base/BaseAction.js |   76 ++++++++++++-------------------------
 1 files changed, 25 insertions(+), 51 deletions(-)

diff --git a/Source/ProjectWeb/src/components/actions/base/BaseAction.js b/Source/ProjectWeb/src/components/actions/base/BaseAction.js
index 732231c..1c336ee 100644
--- a/Source/ProjectWeb/src/components/actions/base/BaseAction.js
+++ b/Source/ProjectWeb/src/components/actions/base/BaseAction.js
@@ -1,5 +1,6 @@
 import {validatenull} from "@/util/validate";
 import Vue from 'vue';
+import {handlerAction} from '../handlers';
 
 /**
  * 鎸夐挳鐨勫熀纭�鏈嶅姟
@@ -10,30 +11,30 @@
  */
 export const doAction = (button,options,callback) => {
   options.paramVOS = paramLow(options.paramVOS)
-  options.paramVOS['title']=replaceFreeMarker(options.paramVOS.title,options.dataStore,options.sourceData);
+  options.paramVOS['title'] = replaceFreeMarker(options.paramVOS.title, options.dataStore, options.sourceData);
   let isShow = true;
-  if (options.paramVOS['initvalue'] && typeof(options.paramVOS.initvalue)=='string') {
+  if (options.paramVOS['initvalue'] && typeof (options.paramVOS.initvalue) == 'string') {
     let values = options.paramVOS['initvalue'].split(';');
     let initValues = {}
-    values.forEach((item,i) => {
-      if(isShow){
+    values.forEach((item, i) => {
+      if (isShow) {
         item = item.replace(':', '=');
         if (item.indexOf('${') > -1) {
           if (item.split('=')[1].indexOf('.') > -1) {
             //initvaluenull=true鍏佽鍒濆鍊间负绌�
-            if ((options.sourceData.length < 1 || !options.sourceData.oid) && options.paramVOS['initvaluenull']!=true && options.paramVOS['initvaluenull']!="true") {
+            if ((options.sourceData.length < 1 || !options.sourceData.oid) && options.paramVOS['needselect'] != false && options.paramVOS['needselect'] != "false") {
               isShow = false;
               Vue.prototype.$message.error("璇峰厛閫夋嫨涓�鏉℃潵婧愭暟鎹�")
               return false;
             }
             let name = item.split('=')[1].split('.')[1].replace('${', '').replace('}', '');
-            if(options.sourceData){
+            if (options.sourceData) {
               initValues[item.split('=')[0]] = options.sourceData[name]
-            }else {
-              initValues[item.split('=')[0]]=""
+            } else {
+              initValues[item.split('=')[0]] = ""
             }
           } else {
-            if (options.dataStore.length < 1 && options.paramVOS['initvaluenull'] != true && options.paramVOS['initvaluenull'] != "true") {
+            if (options.dataStore.length < 1 && options.paramVOS['needselect'] != false && options.paramVOS['needselect'] != "false") {
               isShow = false;
               Vue.prototype.$message.error("璇峰厛閫夋嫨涓�鏉℃暟鎹�");
               return false;
@@ -48,52 +49,25 @@
         }
       }
     })
-    if(isShow){
+    if (isShow) {
       options.paramVOS['initvalue'] = initValues
     }
   }
-  if(!isShow){
+  if (!isShow) {
     return;
   }
-
-  if(button.url && button.url!='null'){
-    //鏈夐厤缃產ction璺緞锛屼娇鐢ㄨ矾寰勫搴旂殑js
-    import("../"+button.url+".js").then(module => {
-      module.doAction(options,callback);
-    })
-  }else {
-    //閫氱敤action
-    const handlers = {
-      //鏌ョ湅
-      view: () => {import("@/components/actions/base/TabViewAction").then(module => {
-        module.doAction(options,callback);
-      })},
-      //鍒涘缓
-      add: () => {import("@/components/actions/base/AddAction").then(module => {
-        module.doAction(options,callback);
-      })},
-      //淇敼
-      edit: () =>  {import("@/components/actions/base/EditAction").then(module => {
-        module.doAction(options,callback);
-      })},
-      //鍒犻櫎
-      delete: () =>  {import("@/components/actions/base/DeleteAction").then(module => {
-        module.doAction(options,callback);
-      })},  //鍒犻櫎
-      del: () =>  {import("@/components/actions/base/DeleteAction").then(module => {
-        module.doAction(options,callback);
-      })},
-    };
-    if(validatenull(options.paramVOS.context)) {
-      options.paramVOS.context = options.paramVOS.content;
-    }
-    if(handlers[button.actionVO.id.toLowerCase()]){
-      handlers[button.actionVO.id.toLowerCase()]()
-    }else{
-      Vue.prototype.$message.error('鏈壘鍒板搴攁ction锛岃閲嶆柊閰嶇疆鎸夐挳锛�');
-    }
+  if (validatenull(options.paramVOS.context)) {
+    options.paramVOS.context = options.paramVOS.content;
   }
-
+  if (button.url && button.url != 'null') {
+    //鏈夐厤缃產ction璺緞锛屼娇鐢ㄨ矾寰勫搴旂殑js
+    import(`../${button.url}`).then(module => {
+      module.doAction(options, callback);
+    })
+  } else {
+    //鎵ц閫氱敤action
+    handlerAction(button.actionVO.id.toLowerCase(),options, callback)
+  }
 };
 
 
@@ -174,7 +148,7 @@
       fnTarget(buttonParse,callback);
     }else{
       try {
-        import("../"+buttonParse.jsPath+".js").then(module => {
+        import(`../${buttonParse.jsPath}.js`).then(module => {
           module[buttonParse.methodName](options,callback);
         })
       } catch (error) {
@@ -202,7 +176,7 @@
       fnTarget(buttonParse,callback,actionType);
     }else{
       try {
-        import("../"+buttonParse.jsPath+".js").then(module => {
+        import(`../${buttonParse.jsPath}.js`).then(module => {
           module[buttonParse.methodName](options,callback,actionType);
         })
       } catch (error) {

--
Gitblit v1.9.3