This commit is contained in:
2026-07-02 23:58:11 +08:00
parent 33b6e1fd47
commit aa8e9b9195
15 changed files with 5 additions and 3 deletions

View File

@@ -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;
});