You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

751 lines
22 KiB
Plaintext

9 months ago

/**
* 傻瓜表单、累加表单联动枚举,外键,复选框其它控件
* @param {any} mapAttr
* @param {any} frmType
*/
function InitFoolLink(mapAttr, frmType) {
var AtPara = mapAttr.AtPara;
if (AtPara == "" || AtPara == null || AtPara == undefined || AtPara.indexOf('@IsEnableJS=1') == -1)
return;
if (mapAttr.LGType == "0" && mapAttr.MyDataType == "1" && mapAttr.UIContralType == 1 && mapAttr.UIIsEnable != 0) {
var selecedval = $(obj).children('option:selected').val(); //弹出select的值.
cleanAll(mapAttr.KeyOfEn, frmType);
setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, selecedval, "");
}
//外键类型.
if (mapAttr.LGType == "2" && mapAttr.MyDataType == "1") {
var selecedval = $(obj).children('option:selected').val(); //弹出select的值.
cleanAll(mapAttr.KeyOfEn, frmType);
setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, selecedval, "");
}
if (mapAttr.MyDataType == 2 && mapAttr.LGType == 1) { // AppInt Enum
if (mapAttr.AtPara && mapAttr.AtPara.indexOf('@IsEnableJS=1') >= 0) {
if (mapAttr.UIContralType == 1) {
/*启用了显示与隐藏.*/
var ddl = $("#DDL_" + mapAttr.KeyOfEn);
//如果现在是隐藏状态就不可以设置
var ctrl = $("#Td_" + mapAttr.KeyOfEn);
if (ctrl.length > 0) {
if (ctrl.parent('tr').css('display') == "none")
return;
}
//初始化页面的值
var nowKey = ddl.val();
if (nowKey == null || nowKey == undefined || nowKey == "" || nowKey == -1)
return;
setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, nowKey, frmType);
}
if (mapAttr.UIContralType == 3) {
//如果现在是隐藏状态就不可以设置
var ctrl = $("#Td_" + mapAttr.KeyOfEn);
if (ctrl.length > 0) {
if (ctrl.parent('tr').css('display') == "none")
return;
}
var nowKey = $('input[name="RB_' + mapAttr.KeyOfEn + '"]:checked').val();
if (nowKey == null || nowKey == undefined || nowKey == "" || nowKey == -1)
return;
setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, nowKey, frmType);
}
}
}
//复选框
if (mapAttr.MyDataType == 4 && mapAttr.AtPara.indexOf('@IsEnableJS=1') >= 0) {
//获取复选框的值
if ($("#CB_" + mapAttr.KeyOfEn).checked == true)
setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, 1, frmType);
else
setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, 0, frmType);
}
}
/**
* 开发者联动枚举,外键,复选框其它控件
* @param {any} mapAttr
* @param {any} frmType
*/
function InitDevelopLink(mapAttr, frmType) {
if (mapAttr.MyDataType == 2 && mapAttr.LGType == 1) { // AppInt Enum
if (mapAttr.AtPara && mapAttr.AtPara.indexOf('@IsEnableJS=1') >= 0) {
if (mapAttr.UIContralType == 1) {
/*启用了显示与隐藏.*/
var ddl = $("#DDL_" + mapAttr.KeyOfEn);
//如果现在是隐藏状态就不可以设置
if (ddl.length > 0) {
if (ddl.css('display') == "none")
return;
}
//初始化页面的值
var nowKey = ddl.val();
if (nowKey == null || nowKey == undefined || nowKey == "")
return;
setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, nowKey, frmType);
}
if (mapAttr.UIContralType == 3) {
//如果现在是隐藏状态就不可以设置
var ctrl = $("#SR_" + mapAttr.KeyOfEn);
if (ctrl.length > 0) {
if (ctrl.parent('tr').css('display') == "none")
return;
}
var nowKey = $('input[name="RB_' + mapAttr.KeyOfEn + '"]:checked').val();
if (nowKey == null || nowKey == undefined || nowKey == "" || nowKey == -1)
return;
setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, nowKey, frmType);
}
}
}
//复选框
if (mapAttr.MyDataType == 4 && mapAttr.AtPara.indexOf('@IsEnableJS=1') >= 0) {
//获取复选框的值
if ($("#CB_" + mapAttr.KeyOfEn).checked == true)
setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, 1, frmType);
else
setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, 0, frmType);
}
}
//记录改变字段样式 不可编辑,不可见
var mapAttrs = {};
/**
* 下拉框改变事件
* @param {any} obj
* @param {any} FK_MapData
* @param {any} KeyOfEn
* @param {any} AtPara
* @param {any} frmType
*/
function changeEnable(obj, FK_MapData, KeyOfEn, AtPara, frmType) {
if (AtPara.indexOf('@IsEnableJS=1') >= 0) {
var selecedval = $(obj).children('option:selected').val(); //弹出select的值.
cleanAll(KeyOfEn);
setEnable(FK_MapData, KeyOfEn, selecedval, frmType);
}
}
/**
* 枚举改变事件
* @param {any} obj
* @param {any} FK_MapData
* @param {any} KeyOfEn
* @param {any} AtPara
* @param {any} frmType
*/
function clickEnable(obj, FK_MapData, KeyOfEn, AtPara, frmType) {
if (AtPara.indexOf('@IsEnableJS=1') >= 0) {
var selectVal = $(obj).val();
cleanAll(KeyOfEn);
setEnable(FK_MapData, KeyOfEn, selectVal, frmType);
}
}
/**
* 复选框改变事件
* @param {any} obj
* @param {any} FK_MapData
* @param {any} KeyOfEn
* @param {any} AtPara
* @param {any} frmType
*/
function changeCBEnable(obj, FK_MapData, KeyOfEn, AtPara, frmType) {
if (AtPara.indexOf('@IsEnableJS=1') >= 0) {
cleanAll(KeyOfEn);
if (obj.checked == true)
setEnable(FK_MapData, KeyOfEn, 1, frmType);
else
setEnable(FK_MapData, KeyOfEn, 0, frmType);
}
}
/**
* 清空设置
* @param {any} KeyOfEn
* @param {any} frmType
*/
function cleanAll(KeyOfEn, frmType) {
var trs = $("#CCForm div .FoolFrmGroupBar"); //如果隐藏就显示
$.each(trs, function (i, obj) {
if ($(obj).parent().is(":hidden") == true)
$(obj).parent().show();
});
if (mapAttrs.length == 0)
return;
//获取他的值
if (mapAttrs[KeyOfEn] != undefined && mapAttrs[KeyOfEn].length > 0) {
var FKMapAttrs = mapAttrs[KeyOfEn][0];
for (var i = 0; i < FKMapAttrs.length; i++) {
if (frmType != null && frmType !== undefined && frmType == 8)
SetDevelopCtrlShow(FKMapAttrs[i]);
else
SetCtrlShow(FKMapAttrs[i]);
SetCtrlEnable(FKMapAttrs[i]);
SetCtrlUnMustInput(FKMapAttrs[i]);
CleanCtrlVal(FKMapAttrs[i]);
}
layui.form.render();
}
}
//启用了显示与隐藏.
function setEnable(FK_MapData, KeyOfEn, selectVal, frmType) {
var NDMapAttrs = [];
var pkval = FK_MapData + "_" + KeyOfEn + "_" + selectVal;
var frmRB = new Entity("BP.Sys.FrmRB");
frmRB.SetPKVal(pkval);
if (frmRB.RetrieveFromDBSources() == 0)
return;
var Script = frmRB.Script;
//解析执行js脚本
if (Script != null && Script != "" && Script != undefined)
DBAccess.RunDBSrc(Script, 2);
//提示信息未解析
//解决字段隐藏显示.
var cfgs = frmRB.FieldsCfg;
//解决为其他字段设置值.
var setVal = frmRB.SetVal;
if (setVal) {
var strs = setVal.split('@');
for (var i = 0; i < strs.length; i++) {
var str = strs[i];
if (str == "")
continue;
var kv = str.split('=');
var key = kv[0];
var value = kv[1];
SetCtrlVal(key, value);
NDMapAttrs.push(key);
}
layui.form.render();
}
//@Title=3@OID=2@RDT=1@FID=3@CDT=2@Rec=1@Emps=3@FK_Dept=2@FK_NY=3
if (cfgs) {
var strs = cfgs.split('@');
for (var i = 0; i < strs.length; i++) {
var str = strs[i];
var kv = str.split('=');
var key = kv[0];
var sta = kv[1];
if (sta == 0)
continue; //什么都不设置.
if (sta == 1) { //要设置为可编辑.
if (frmType != null && frmType != undefined && frmType == 8)
SetDevelopCtrlShow(key);
else
SetCtrlShow(key);
SetCtrlEnable(key);
NDMapAttrs.push(key);
}
if (sta == 2) { //要设置为不可编辑.
if (frmType != null && frmType != undefined && frmType == 8)
SetDevelopCtrlShow(key);
else
SetCtrlShow(key);
SetCtrlUnEnable(key);
NDMapAttrs.push(key);
}
if (sta == 3) { //不可见.
if (frmType != null && frmType != undefined && frmType == 8)
SetDevelopCtrlHidden(key);
else
SetCtrlHidden(key);
NDMapAttrs.push(key);
}
if (sta == 4) { //要设置为可编辑且必填.
if (frmType != null && frmType != undefined && frmType == 8)
SetDevelopCtrlShow(key);
else
SetCtrlShow(key);
SetCtrlMustInput(key);
NDMapAttrs.push(key);
}
}
}
if (!$.isArray(mapAttrs[KeyOfEn])) {
mapAttrs[KeyOfEn] = [];
}
mapAttrs[KeyOfEn] = [];
if (NDMapAttrs.length > 0) {
mapAttrs[KeyOfEn].push(NDMapAttrs);
}
//设置是否隐藏分组、获取字段分组所有的tr
var trs = $("#CCForm div .FoolFrmGroupBar");
var isHidden = false;
$.each(trs, function (i, obj) {
//获取所有跟随的同胞元素其中有不隐藏的tr,就跳出循环
var sibles = $(obj).nextAll();
if (sibles.length == 0) {
$(obj).hide();
return true;
}
var isAllHidenField = false;
for (var k = 0; k < sibles.length; k++) {
var sible = $(sibles[k]);
if (k == 0 && sible.hasClass("FoolFrmFieldRow") == true)
break;
if (k == 0 && sible.hasClass("layui-row") == true)
break;
if (k == 0 && sible.hasClass("FoolFrmFieldRow") == true) {
isHidden = true;
break;
}
if (sibles[k].type == "hidden" && sibles[k].localName == "input") {
isAllHidenField = true;
continue;
}
isAllHidenField = false;
}
if (isHidden == true || isAllHidenField == true)
$(obj).hide();
});
//$.each(trs, function (i, obj) {
// //获取所有跟随的同胞元素其中有不隐藏的tr,就跳出循环
// var sibles = $(obj).parent().nextAll();
// for (var k = 0; k < sibles.length; k++) {
// var sible = $(sibles[k]);
// if (sible.find(".FoolFrmGroupBar").length > 0 || sible.find(".form-unit").length > 0)
// break;
// if (sible.is(":hidden") == false) {
// isHidden = false;
// break;
// }
// isHidden = true;
// }
// if (isHidden == true)
// $(obj).parent().hide();
//});
}
//设置是否可以用?
function SetCtrlEnable(key) {
var ctrl = $("#TB_" + key);
if (ctrl.length > 0) {
ctrl.removeAttr("disabled");
}
ctrl = $("#DDL_" + key);
if (ctrl.length > 0) {
ctrl.removeAttr("disabled");
}
ctrl = $("#CB_" + key);
if (ctrl.length > 0) {
ctrl.removeAttr("disabled");
}
ctr = document.getElementsByName('RB_' + key);
if (ctrl != null) {
var ses = new Entities("BP.Sys.SysEnums");
ses.Retrieve("EnumKey", key);
for (var i = 0; i < ses.length; i++)
$("#RB_" + key + "_" + ses[i].IntKey).removeAttr("disabled");
}
}
function SetCtrlUnEnable(key) {
var ctrl = $("#TB_" + key);
if (ctrl.length > 0) {
ctrl.attr("disabled", "true");
}
ctrl = $("#DDL_" + key);
if (ctrl.length > 0) {
ctrl.attr("disabled", "disabled");
}
ctrl = $("#CB_" + key);
if (ctrl.length > 0) {
ctrl.attr("disabled", "disabled");
}
ctrl = $("#RB_" + key);
if (ctrl != null) {
$('input[name=RB_' + key + ']').attr("disabled", "disabled");
//ctrl.attr("disabled", "disabled");
}
}
//设置是否可用必填?
function SetCtrlMustInput(key) {
var ctrl = $("#TB_" + key);
if (ctrl.length > 0) {
ctrl.removeAttr("disabled");
var layVerify = ctrl.attr("lay-verify")
if (layVerify == undefined || layVerify == "")
ctrl.attr("lay-verify", "required")
else
ctrl.attr("lay-verify", layVerify + "|required");
}
ctrl = $("#DDL_" + key);
if (ctrl.length > 0) {
ctrl.removeAttr("disabled");
if (layVerify == undefined || layVerify == "")
ctrl.attr("lay-verify", "required")
else
ctrl.attr("lay-verify", layVerify + "|required");
}
ctrl = $("#CB_" + key);
if (ctrl.length > 0) {
ctrl.removeAttr("disabled");
if (layVerify == undefined || layVerify == "")
ctrl.attr("lay-verify", "required")
else
ctrl.attr("lay-verify", layVerify + "|required");
}
ctr = document.getElementsByName('RB_' + key);
if (ctrl != null) {
var ses = new Entities("BP.Sys.SysEnums");
ses.Retrieve("EnumKey", key);
for (var i = 0; i < ses.length; i++) {
$("#RB_" + key + "_" + ses[i].IntKey).removeAttr("disabled");
if (layVerify == undefined || layVerify == "")
$("#RB_" + key + "_" + ses[i].IntKey).attr("lay-verify", "required")
else
$("#RB_" + key + "_" + ses[i].IntKey).attr("lay-verify", layVerify + "|required");
}
}
if ($("#Lab_" + key).length == 0)
$("#Span_" + key).append("<font color=red>*</font>");
else
$("#Lab_" + key).before("<span style='color: red' class='mustInput' data-keyofen='" + key + "'>*</span>");
}
//设置可不必填?
function SetCtrlUnMustInput(key) {
var ctrl = $("#TB_" + key);
if (ctrl.length > 0) {
var layVerify = ctrl.attr("lay-verify")
if (layVerify != undefined && layVerify != "") {
layVerify = layVerify.replace("|required", "").replace("required", "");
ctrl.attr("lay-verify", layVerify)
}
}
ctrl = $("#DDL_" + key);
if (ctrl.length > 0) {
var layVerify = ctrl.attr("lay-verify")
if (layVerify != undefined && layVerify != "") {
layVerify = layVerify.replace("|required", "").replace("required", "");
ctrl.attr("lay-verify", layVerify)
}
}
ctrl = $("#CB_" + key);
if (ctrl.length > 0) {
var layVerify = ctrl.attr("lay-verify")
if (layVerify != undefined && layVerify != "") {
layVerify = layVerify.replace("|required", "").replace("required", "");
ctrl.attr("lay-verify", layVerify)
}
}
ctrl = $("#RB_" + key);
if (ctrl != null) {
var layVerify = $('input[name=RB_' + key + ']').attr("lay-verify")
if (layVerify != undefined && layVerify != "") {
layVerify = layVerify.replace("|required", "").replace("required", "");
$('input[name=RB_' + key + ']').attr("lay-verify", layVerify)
}
}
if ($("#Lab_" + key).prev().length>0)
$("#Lab_" + key).prev().remove();
}
//设置隐藏?
function SetCtrlHidden(key) {
ctrl = $("#Lab_" + key);
if (ctrl.length > 0)
ctrl.parent().parent('.layui-row').css("display", "none");
var ctrl = $("#TD_" + key);
if (ctrl.length > 0) {
ctrl.parent().parent('.layui-row').css("display", "none");
}
//从表隐藏
var ctrl = $("#Dtl_" + key);
if (ctrl.length > 0) {
ctrl.parent().parent('.layui-row').css("display", "none");
ctrl.parent().parent('.layui-row').prev().css("display", "none");
}
//附件隐藏
var ctrl = $("#Div_" + key);
if (ctrl.length > 0) {
ctrl.parent().parent('.layui-row').css("display", "none");
ctrl.parent().parent('.layui-row').prev().css("display", "none");
}
}
//设置显示?
function SetCtrlShow(key) {
var ctrl = $("#TD_" + key);
if (ctrl.length > 0) {
ctrl.parent().parent('.layui-row').css("display", "block");
}
ctrl = $("#Lab_" + key);
if (ctrl.length > 0)
ctrl.parent().parent('.layui-row').css("display", "block");
//从表隐藏
var ctrl = $("#Dtl_" + key);
if (ctrl.length > 0) {
ctrl.parent().parent('.layui-row').css("display", "block");
ctrl.parent().parent('.layui-row').prev().css("display", "block");
}
//附件隐藏
var ctrl = $("#Div_" + key);
if (ctrl.length > 0) {
ctrl.parent().parent('.layui-row').css("display", "block");
ctrl.parent().parent('.layui-row').prev().css("display", "block");
}
}
//设置隐藏?
function SetDevelopCtrlHidden(key) {
//从表隐藏
var ctrl = $("#Fd" + key);
if (ctrl.length > 0) {
ctrl.hide();
$("#Lab_" + key).hide();
return;
}
//附件隐藏
ctrl = $("#Div_" + key);
if (ctrl.length > 0) {
$("#Div_" + key).hide();
$("#Lab_" + key).hide();
return;
}
ctrl = $("#TB_" + key);
if (ctrl.length == 0) {
ctrl = $("#SS_FDBZQ");
if (ctrl.length == 0)
ctrl = $("#DDL_" + key);
}
if (ctrl.length == 0)
ctrl = $("#CB_" + key);
if (ctrl.length == 0)
ctrl = $("#SR_" + key);
if (ctrl.length == 0)
ctrl = $("#SC_" + key);
if (ctrl.length == 0) {
layer.alert(key + "的类型判断不正确,请告知开发人员");
return;
}
var parent = ctrl.parent()[0];
if (parent.tagName.toLowerCase() != "td")
parent = $(parent).parent()[0];
if (parent.tagName.toLowerCase() == "td") {
if (parent.id != "CCForm")
$(parent).hide();
//当前节点的兄弟节点如果没有inputselect,就隐藏
var prev = $(parent).prev();
if (prev.find("input").length == 0 && prev.find("select").length == 0)
prev.hide();
}
}
//设置显示?
function SetDevelopCtrlShow(key) {
//从表显示
var ctrl = $("#Fd" + key);
if (ctrl.length > 0) {
ctrl.show();
$("#Lab_" + key).show();
return;
}
//附件显示
ctrl = $("#Div_" + key);
if (ctrl.length > 0) {
$("#Div_" + key).show();
$("#Lab_" + key).show();
return;
}
ctrl = $("#TB_" + key);
if (ctrl.length == 0) {
ctrl = $("#SS_FDBZQ");
if (ctrl.length == 0)
ctrl = $("#DDL_" + key);
}
if (ctrl.length == 0)
ctrl = $("#CB_" + key);
if (ctrl.length == 0)
ctrl = $("#SR_" + key);
if (ctrl.length == 0)
ctrl = $("#SC_" + key);
if (ctrl.length == 0) {
layer.alert(key + "的类型判断不正确,请告知开发人员");
return;
}
var parent = ctrl.parent()[0];
if (parent.tagName.toLowerCase() != "td")
parent = $(parent).parent()[0];
$(parent).show();
ctrl.show();
//当前节点的兄弟节点如果没有inputselect,就隐藏
var prev = $(parent).prev();
if (prev.find("input").length == 0 && prev.find("select").length == 0)
prev.show();
}
//设置值?
function SetCtrlVal(key, value) {
var ctrl = $("#TB_" + key);
if (ctrl.length > 0) {
ctrl.val(value);
return;
}
ctrl = $("#DDL_" + key);
if (ctrl.length > 0) {
ctrl.val(value);
return;
}
ctrl = $("input[name='CB_" + key + "']");
if (ctrl.length == 1) {
if (parseInt(value) <= 0)
ctrl.attr('checked', false);
else {
ctrl.attr('checked', true);
document.getElementById("CB_" + key).checked = true;
}
return;
}
if (ctrl.length > 1) {
var checkBoxArray = value.split(",");
ctrl.attr("checked", false);
for (var k = 0; k < checkBoxArray.length; k++) {
if (checkBoxArray[k] == "")
continue;
document.getElementById("CB_" + key + "_" + checkBoxArray[k]).checked = true;
}
return;
}
ctrl = document.getElementsByName("RB_" + key);
if (ctrl.length > 0) {
for (var i = 0; i < ctrl.length; i++) {
if (value == ctrl[i].value) {
$(ctrl[i]).next().click();
}
}
}
//ctrl = $('input:radio[name=RB_' + key + ']');
//if (ctrl.length > 0) {
// var checkVal = $('input:radio[name=RB_' + key + ']:checked').val();
// if (checkVal != null && checkVal != undefined)
// document.getElementById("RB_" + key + "_" + checkVal).checked = false;
// if ($("#RB_" + key + "_" + value).length == 1)
// document.getElementById("RB_" + key + "_" + value).checked = true;
// return;
//}
}
//清空值?
function CleanCtrlVal(key) {
var ctrl = $("#TB_" + key);
if (ctrl.length > 0) {
ctrl.val('');
return;
}
ctrl = $("#DDL_" + key);
if (ctrl.length > 0) {
//ctrl.attr("value",'');
ctrl.val('');
return;
}
ctrl = $("#CB_" + key);
if (ctrl.length > 0) {
ctrl.attr('checked', false);
return;
}
ctrl = $("#RB_" + key + "_" + 0);
if (ctrl.length > 0) {
var checkVal = $('input:radio[name=RB_' + key + ']:checked').val();
if (checkVal != null && checkVal != undefined)
document.getElementById("RB_" + key + "_" + checkVal).checked = false;
return;
}
}