(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 = '