2026-04-09 20:46:50 +08:00
|
|
|
|
(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() {
|
|
|
|
|
|
/**
|
2026-04-09 15:45:42 +08:00
|
|
|
|
* 构造函数
|
2026-04-09 20:46:50 +08:00
|
|
|
|
* @param options
|
|
|
|
|
|
* @constructor
|
|
|
|
|
|
*/
|
2026-04-09 15:45:42 +08:00
|
|
|
|
function App(options) {
|
|
|
|
|
|
var self = this;
|
|
|
|
|
|
//初始化参数
|
|
|
|
|
|
self.initParams(options);
|
|
|
|
|
|
//初始化dom
|
|
|
|
|
|
self.initDom();
|
|
|
|
|
|
//事件
|
|
|
|
|
|
self.events();
|
2026-04-09 20:46:50 +08:00
|
|
|
|
}
|
2026-04-09 15:45:42 +08:00
|
|
|
|
|
2026-04-09 20:46:50 +08:00
|
|
|
|
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) {
|
2026-06-05 21:43:41 +08:00
|
|
|
|
var self = this;
|
2026-04-09 20:46:50 +08:00
|
|
|
|
messageObj = adaptation.childrenGetData(privateId);
|
2026-06-05 21:43:41 +08:00
|
|
|
|
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;
|
2026-04-09 20:46:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-06-05 21:43:41 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 校验表单必填字段是否已匹配
|
|
|
|
|
|
if (isEmpty(jifeifs)) {
|
|
|
|
|
|
$.alert("未找到计费方式字段或值为空,请检查表单");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
if (isEmpty(jiaofeifs)) {
|
|
|
|
|
|
$.alert("未找到缴费方式字段或值为空,请检查表单");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2026-04-09 15:45:42 +08:00
|
|
|
|
|
|
|
|
|
|
// 判断合同开始日期是否在合同结束日期之前
|
2026-04-09 20:46:50 +08:00
|
|
|
|
if (!isEmpty(startDate) || !isEmpty(endDate)) {
|
|
|
|
|
|
if (Date.parse(startDate) > Date.parse(endDate)) {
|
|
|
|
|
|
$.alert("请正确填写合同日期");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$.alert("请填写合同日期");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2026-04-09 15:45:42 +08:00
|
|
|
|
|
2026-07-02 23:58:11 +08:00
|
|
|
|
// 当缴费方式为年缴费时年缴费类型必填(前缀匹配:年、年缴、年付等)
|
|
|
|
|
|
if (jiaofeifs && jiaofeifs.indexOf('年') === 0) {
|
2026-04-09 20:46:50 +08:00
|
|
|
|
if (isEmpty(njiaofeifs)) {
|
|
|
|
|
|
$.alert("请选择年缴费方式选项");
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-04-09 15:45:42 +08:00
|
|
|
|
|
2026-04-09 20:46:50 +08:00
|
|
|
|
$.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) {
|
2026-06-05 21:43:41 +08:00
|
|
|
|
if (bdid == "" || bdid == "0") {
|
2026-04-09 20:46:50 +08:00
|
|
|
|
var data = {
|
|
|
|
|
|
fieldId: bdidFieldName,
|
|
|
|
|
|
fieldData: {
|
2026-06-05 21:43:41 +08:00
|
|
|
|
value: res.num + '',
|
|
|
|
|
|
display: res.num + '',
|
2026-04-09 20:46:50 +08:00
|
|
|
|
auth: ''
|
|
|
|
|
|
}
|
|
|
|
|
|
};
|
|
|
|
|
|
csdk.core.setFieldData(data);
|
|
|
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
|
|
|
$.alert(res.s);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
2026-06-05 21:43:41 +08:00
|
|
|
|
},
|
2026-04-09 20:46:50 +08:00
|
|
|
|
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>';
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
};
|
2026-04-09 15:45:42 +08:00
|
|
|
|
|
2026-04-09 20:46:50 +08:00
|
|
|
|
function test() {
|
|
|
|
|
|
console.log("明细行生成成功");
|
|
|
|
|
|
}
|
2026-04-09 15:45:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
2026-04-09 20:46:50 +08:00
|
|
|
|
function isEmpty(text) {
|
|
|
|
|
|
return !text || text.trim() === '';
|
|
|
|
|
|
}
|
2026-04-09 15:45:42 +08:00
|
|
|
|
|
2026-04-09 20:46:50 +08:00
|
|
|
|
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);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2026-04-09 15:45:42 +08:00
|
|
|
|
|
2026-04-09 20:46:50 +08:00
|
|
|
|
return App;
|
2026-04-09 15:45:42 +08:00
|
|
|
|
});
|