/** * 按钮的基础服务 * @author weidy * @date 2021-03-22 */ layui.define(['layer','element'],function(exports) { var webUtil = $webUtil; var Class = function () { this.MODELNAME = "BaseAction"; this.moduleKey = "BaseAction"; this.id = "BaseAction"; /** * 替换文本中的${xxx} * @param text 文本 * @param dataStore 选择的数据 * @param sourceData 来源数据 * @returns 替换后的值,字符串 */ this.replaceFreeMarker = function (text,dataStore,sourceData) { return $webUtil.replaceFreeMarker(text,dataStore,sourceData); }; /** * 执行前置事件 * @param options 按钮的配置信息,前置事件里配置的参数会替换这个里的参数的信息 * @param buttonTarget 按钮js所在的对象 * @param callback 回调,如果存在前置事件,会在执行完成后执行回调,否则直接回调 */ this.callPreEvent = function (options,buttonTarget,callback,preEventName) { var that = this; var params = $webUtil.paramLow(options.paramVOS); options.paramVOS = params; var beforeEvent = params[preEventName || 'beforeevent']; if(beforeEvent) { var buttonParse = that.parseEventByUrl(beforeEvent,options,true); buttonParse.options.callback = callback; if($webUtil.isNull(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所在的对象 */ this.callPostEvent = function(options,buttonTarget,callback,postEventName){ var that = this; var params = $webUtil.paramLow(options.paramVOS); options.paramVOS = params; var afterEvent = params[postEventName || 'afterevent']; if(afterEvent) { var buttonParse = that.parseEventByUrl(afterEvent,options,false); if($webUtil.isNull(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 路径 * @param options 按钮的配置信息,会自动覆盖相同属性的参数 * @param isBefore 是否为前置事件,否则为后置 * @returns {{jsPath: js的路径, options: 按钮的配置信息, methodName: (string)方法的名字}} */ this.parseEventByUrl = function (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) { $webUtil.showErrorMsg(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 }; }; this.renderUploadFile=function (filter,paramVOS,extraParams,callback){ var extendAttrMap = JSON.parse($(filter ).attr('extendAttrMap')); var data={ fileDocClassify: 'filePathField', fileDocClassifyName: '文件路径字段', updateFileFlag: false,//是否为修改 fileOid: ''//只在更新的时候才传递 } if(extraParams){ $.extend(data, extraParams); } layui.upload.render({ elem: filter , url: paramVOS.uploadfilebackpath + paramVOS.uploadfileurl , accept: extendAttrMap && extendAttrMap.accept ? extendAttrMap.accept : '' , exts: extendAttrMap && extendAttrMap.exts ? extendAttrMap.exts : '' , data: data , before: function (res) { $webUtil.showProgress('文件上传中'); } , done: function (res, index, upload) { $webUtil.closeProgress(); if (res.success) { layer.msg('上传成功'); if(layui.$( filter + ' .uploadDemoView').length>0 && res.obj){ layui.$( filter + ' .uploadDemoView').removeClass('layui-hide').find('img').attr('src', paramVOS.uploadfilebackpath + 'vciFileDownloadController/downloadByFileOid?fileOid=' + res.obj.oid + '&' + TOKEN_KEY + '=' + $webUtil.getToken()); layui.$( filter + ' .uploadDemoView input.uploadFileOid').val(res.obj.filePath); } if(callback){ callback(res.obj) } }else{ $webUtil.showErrorMsg(res.msg||"上传失败!"); } }, error: function (index, upload) { $webUtil.showErrorMsg("上传失败!"); } }); } //附件上传 this.renderUploadAttach=function (filter,paramVOS,extraParams){ var attachHtml=[ '
文件名 | 大小 | 状态 | 操作 |
---|