(function(f) { var nameSpace = 'field_5209586381190735608'; if (!window[nameSpace]) { var Builder = f(); window[nameSpace] = { instance: {} }; window[nameSpace].init = function(options) { window[nameSpace].instance[options.privateId] = new Builder(options); }; } })(function() { /** * 构造函数 * @param options * @constructor */ function App(options) { var self = this; //初始化参数 self.initParams(options); //初始化dom self.initDom(); //事件 self.events(); } App.prototype = { initParams: function(options) { var self = this; self.adaptation = options.adaptation; self.adaptation.formMessage = options.formMessage; self.privateId = options.privateId; self.messageObj = options.getData; self.preUrl = options.url_prefix; }, initDom: function() { var self = this; dynamicLoading.css(self.preUrl + 'css/formQueryBtn.css'); self.appendChildDom(); }, events: function() { var self = this; // 监听是否数据刷新 $("." + self.privateId).css("background-color", "#008BFF"); $("." + self.privateId).css("color", "#FFFFFF"); $("." + self.privateId).css("border-radius", "10px"); $("." + self.privateId).mouseover(function(e) { var $this = $(this); // 当前触发事件的标签对象 }).mouseout(function(e) { $("." + self.privateId).css("background-color", "#008BFF"); }).mousemove(function(e) { $("." + self.privateId).css("background-color", "#005297"); }); }, doBiz: function(privateId, messageObj, adaptation) { var self = this; messageObj = adaptation.childrenGetData(privateId); var targetObj = messageObj.formdata.formmains[adaptation.formMessage.tableName]; // 先获取字段显示名称映射,再执行业务逻辑 $.ajax({ type: 'get', async: true, url: encodeURI('/seeyon/leaseBillController.do?action=getFieldDisplayMap&datetime=' + Math.random()), dataType: 'json', success: function(mappingRes) { if (!mappingRes.success) { $.alert(mappingRes.s || "获取字段映射失败"); return; } var fieldMap = JSON.parse(mappingRes.data); self.doGenerateBill(targetObj, fieldMap, adaptation, privateId); }, error: function() { $.alert("获取字段映射请求失败"); } }); }, doGenerateBill: function(targetObj, fieldMap, adaptation, privateId) { // 校验字段映射配置完整性 var requiredKeys = ["计费方式", "缴费方式", "计租日期", "合同截止日期", "账单编号"]; for (var i = 0; i < requiredKeys.length; i++) { if (!fieldMap[requiredKeys[i]]) { $.alert("字段映射配置缺少必要key:" + requiredKeys[i] + ",请联系管理员检查插件配置"); return; } } var jifeifs, jiaofeifs, njiaofeifs, mjzj, gdzj, startDate, endDate, mj, bdid, bdidFieldName; if (targetObj) { for (var key in targetObj) { if (targetObj.hasOwnProperty(key) && !/^auxiliary/.test(key)) { var display = targetObj[key].display; if (display === fieldMap["计费方式"]) { jifeifs = targetObj[key].showValue; } else if (display === fieldMap["缴费方式"]) { jiaofeifs = targetObj[key].showValue; } else if (display === fieldMap["年缴费方案选项"]) { njiaofeifs = targetObj[key].showValue; } else if (display === fieldMap["租赁单价"]) { mjzj = targetObj[key].showValue; } else if (display === fieldMap["固定租金标准"]) { gdzj = targetObj[key].showValue; } else if (display === fieldMap["计租日期"]) { startDate = targetObj[key].showValue; } else if (display === fieldMap["合同截止日期"]) { endDate = targetObj[key].showValue; } else if (display === fieldMap["租赁面积"]) { mj = targetObj[key].showValue; } else if (display === fieldMap["账单编号"]) { bdidFieldName = key; bdid = targetObj[key].showValue; } } } } // 校验表单必填字段是否已匹配 if (isEmpty(jifeifs)) { $.alert("未找到计费方式字段或值为空,请检查表单"); return; } if (isEmpty(jiaofeifs)) { $.alert("未找到缴费方式字段或值为空,请检查表单"); return; } // 判断合同开始日期是否在合同结束日期之前 if (!isEmpty(startDate) || !isEmpty(endDate)) { if (Date.parse(startDate) > Date.parse(endDate)) { $.alert("请正确填写合同日期"); return; } } else { $.alert("请填写合同日期"); return; } // 当缴费方式为年缴费时年缴费类型必填(前缀匹配:年、年缴、年付等) if (jiaofeifs && jiaofeifs.indexOf('年') === 0) { if (isEmpty(njiaofeifs)) { $.alert("请选择年缴费方式选项"); return; } } $.ajax({ type: 'post', async: true, url: encodeURI('/seeyon/leaseBillController.do?datetime=' + Math.random()), data: { "jifeifs": jifeifs, "jiaofeifs": jiaofeifs, "njiaofeifs": njiaofeifs, "startDate": startDate, "endDate": endDate, "mj": mj, "mjzj": mjzj, "gdzj": gdzj, "bdid": bdid }, dataType: 'json', contentType: 'application/json; charset=UTF-8', success: function(res) { if (res.success) { if (bdid == "" || bdid == "0") { var data = { fieldId: bdidFieldName, fieldData: { value: res.num + '', display: res.num + '', auth: '' } }; csdk.core.setFieldData(data); } } else { $.alert(res.s); } } }); }, appendChildDom: function() { var self = this; var domStructure = '
' + '
' + self.messageObj.display.escapeHTML() + '
' + '
'; document.querySelector('#' + self.privateId).innerHTML = domStructure; var jumpFun = function() { self.doBiz(self.privateId, self.messageObj, self.adaptation); } var content = self.messageObj.formdata.content document.querySelector('.' + self.privateId).removeEventListener('click', jumpFun); document.querySelector('.' + self.privateId).addEventListener('click', jumpFun); //渲染隐藏权限 if (self.messageObj.auth === 'hide') { document.querySelector('#' + self.privateId).innerHTML = '
***
'; } }, }; function test() { console.log("明细行生成成功"); } function isEmpty(text) { return !text || text.trim() === ''; } var dynamicLoading = { css: function(path) { if (!path || path.length === 0) { throw new Error('argument "path" is required !'); } var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.href = path; link.rel = 'stylesheet'; link.type = 'text/css'; head.appendChild(link); }, js: function(path) { if (!path || path.length === 0) { throw new Error('argument "path" is required !'); } var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.src = path; script.type = 'text/javascript'; head.appendChild(script); } } return App; });