¶Ô±ÈÐÂÎļþ |
| | |
| | | import {validatenull} from "@/util/validate"; |
| | | import {findArray} from "@/util/util"; |
| | | |
| | | /** |
| | | * æé®çåºç¡æå¡ |
| | | */ |
| | | |
| | | /** |
| | | * æ¿æ¢ææ¬ä¸ç${xxx} |
| | | * @param text ææ¬ |
| | | * @param dataStore éæ©çæ°æ® |
| | | * @param sourceData æ¥æºæ°æ® |
| | | * @returns æ¿æ¢åçå¼,å符串 |
| | | */ |
| | | export const replaceFreeMarker = (text,dataStore,sourceData) => { |
| | | //æ¿æ¢è¡¨è¾¾å¼ |
| | | if (!sourceData) { |
| | | sourceData = {}; |
| | | } |
| | | if (!dataStore) { |
| | | dataStore = []; |
| | | } |
| | | let replaceData = dataStore.length > 0 ? dataStore[0] : {}; |
| | | if (text && text.indexOf("${") > -1 && text.indexOf("}")) { |
| | | //jsåªè½ä½¿ç¨${xxx}è¿ç§çæ¹å¼ |
| | | let reg = "root.${"; |
| | | while (text.indexOf(reg) > -1) { |
| | | 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] || ''; |
| | | text = temp + field + end; |
| | | } |
| | | reg = "sourceData.${"; |
| | | while (text.indexOf(reg) > -1) { |
| | | 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] || ''; |
| | | text = temp + field + end; |
| | | } |
| | | reg = "${"; |
| | | while (text.indexOf(reg) > -1) { |
| | | 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] || ''; |
| | | text = temp + field + end; |
| | | } |
| | | } |
| | | return text; |
| | | }; |
| | | |
| | | /** |
| | | * åæ°è½¬æ¢ä¸ºå°å |
| | | * @param paramsVOs åæ° |
| | | * @returns å°ååçåæ°å¯¹è±¡ |
| | | */ |
| | | export const paramLow = (paramsVOs) => { |
| | | // |
| | | if (!paramsVOs) { |
| | | paramsVOs = {}; |
| | | } |
| | | var params = {}; |
| | | for (var key in paramsVOs) { |
| | | params[key.toLowerCase()] = paramsVOs[key]; |
| | | } |
| | | return params; |
| | | }; |
| | | /** |
| | | * æ§è¡åç½®äºä»¶ |
| | | * @param options æé®çé
置信æ¯ï¼åç½®äºä»¶éé
ç½®ç忰伿¿æ¢è¿ä¸ªéçåæ°çä¿¡æ¯ |
| | | * @param buttonTarget æé®jsæå¨ç对象 |
| | | * @param callback åè°ï¼å¦æåå¨åç½®äºä»¶ï¼ä¼å¨æ§è¡å®æåæ§è¡åè°ï¼å¦åç´æ¥åè° |
| | | * @param preEventName åç½®äºä»¶åç§°ï¼é»è®¤beforeevent |
| | | */ |
| | | export const callPreEvent = (options,buttonTarget,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); |
| | | }else{ |
| | | layui.use(buttonParse.jsPath,function () { |
| | | layui[buttonParse.jsPath][buttonParse.methodName](options); |
| | | }); |
| | | } |
| | | }else{ |
| | | if(callback){ |
| | | callback(options); |
| | | } |
| | | } |
| | | }; |
| | | /** |
| | | * æ§è¡åç½®æ¶é´ |
| | | * @param options æé®çé
置信æ¯ï¼åç½®äºä»¶éé
ç½®ç忰伿¿æ¢è¿ä¸ªéçåæ°çä¿¡æ¯ |
| | | * @param buttonTarget æé®Jsæå¨ç对象 |
| | | */ |
| | | export const callPostEvent = (options,buttonTarget,callback,postEventName)=>{ |
| | | const params = paramLow(options.paramVOS); |
| | | options.paramVOS = params; |
| | | var afterEvent = params[postEventName || 'afterevent']; |
| | | if(afterEvent) { |
| | | var buttonParse = parseEventByUrl(afterEvent,options,false); |
| | | if(validatenull(buttonParse)){ |
| | | buttonTarget[buttonParse.methodName](buttonParse); |
| | | }else{ |
| | | layui.use(buttonParse.jsPath,function () { |
| | | layui[buttonParse.jsPath][buttonParse.methodName](options); |
| | | }); |
| | | } |
| | | }else{ |
| | | if(callback){ |
| | | callback(options); |
| | | } |
| | | } |
| | | }; |
| | | /** |
| | | * 使ç¨urlè·åäºä»¶çä¿¡æ¯ |
| | | * @param url è·¯å¾,æ ¼å¼å¦jsPath#methodName?param=aaa¶m1=bbb |
| | | * @param options æé®çé
置信æ¯ï¼ä¼èªå¨è¦çç¸å屿§çåæ° |
| | | * @param isBefore æ¯å¦ä¸ºåç½®äºä»¶ï¼å¦å为åç½® |
| | | * @returns {{jsPath: jsçè·¯å¾, options: æé®çé
置信æ¯, methodName: (string)æ¹æ³çåå}} |
| | | */ |
| | | export const parseEventByUrl = (url,options,isBefore) => { |
| | | //æ ¹æ®é
ç½®æ ¼å¼åäºä»¶ |
| | | var jsPath = url; |
| | | var methodName = isBefore?"doBefore":"doAfter"; |
| | | var params = {}; |
| | | if (url.indexOf("?")) { |
| | | var temp = url.substring(0, url.indexOf("?")); |
| | | if (temp.indexOf("#") > -1) { |
| | | var array = temp.split("#"); |
| | | if(array.length == 1){ |
| | | jsPath = array[0]; |
| | | }else{ |
| | | jsPath = array[0]; |
| | | methodName = array[1]; |
| | | } |
| | | }else{ |
| | | jsPath = temp; |
| | | } |
| | | var paramArray = url.substring(url.indexOf("?") + 1).split("&"); |
| | | layui.each(paramArray, function (_index, _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("#"); |
| | | if(array.length == 1){ |
| | | jsPath = array[0]; |
| | | }else{ |
| | | jsPath = array[0]; |
| | | methodName = array[1]; |
| | | } |
| | | }else{ |
| | | jsPath = url; |
| | | } |
| | | } |
| | | for (var key in params) { |
| | | options.paramVOS[key.toLowerCase()] = params[key]; |
| | | } |
| | | return { |
| | | jsPath:jsPath, |
| | | methodName:methodName, |
| | | options:options |
| | | }; |
| | | }; |