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