兼容
This commit is contained in:
@@ -0,0 +1,242 @@
|
||||
(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 = '<section class="customButton_box_content">' +
|
||||
'<div class="customButton_class_box ' + self.privateId + '" title="' + self.messageObj.display
|
||||
.escapeHTML() + '">' + self.messageObj.display.escapeHTML() + '</div>' +
|
||||
'</section>';
|
||||
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 =
|
||||
'<div class="cap4-text__browse" style="line-height: 1.8; color: rgb(0, 0, 0) !important;">***</div>';
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
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;
|
||||
});
|
||||
Reference in New Issue
Block a user