//定义全局的变量 var pageData = {};//全局的参数变量 var frmData = {}; // 表单数据 var isReadonly = true;//表单方案是只读时的变化 webUser = typeof webUser == "undefined" || webUser == null ? new WebUser() : webUser;//用户信息 var UserICon = getConfigByKey("UserICon", '../../../DataUser/Siganture/'); //获取签名图片的地址 var UserIConExt = getConfigByKey("UserIConExt", '.jpg'); //签名图片的默认后缀 var currentUrl = GetHrefUrl(); var richTextType = getConfigByKey("RichTextType", 'tinymce'); var currentURL = GetHrefUrl(); //初始化函数 $(function () { UserICon = UserICon.replace("@basePath", basePath); //增加css样式 $('head').append(''); //初始化参数. initPageParam(); //构造表单. GenerFrm(); //表单数据. }); /** * 初始化获取网页数据 */ function initPageParam() { pageData.FK_MapData = GetQueryString("FrmID"); pageData.FrmID = pageData.FK_MapData; pageData.FK_Flow = GetQueryString("FK_Flow"); pageData.FK_Node = GetQueryString("FK_Node"); pageData.FK_Node = pageData.FK_Node == null || pageData.FK_Node == undefined ? 0 : pageData.FK_Node; pageData.FID = GetQueryString("FID") == null ? 0 : GetQueryString("FID"); var oid = GetQueryString("OID"); pageData.OID = oid; pageData.WorkID = oid; pageData.IsReadonly = 1; pageData.DBVer = GetQueryString("DBVer"); } /** * * 获取表单数据 */ var frmData = null; function GenerFrm() { var urlParam = currentUrl.substring(currentUrl.indexOf('?') + 1, currentUrl.length); urlParam = urlParam.replace('&DoType=', '&DoTypeDel=xx'); frmData = window.parent.frmData; if (frmData != null) { var datas = frmData.MainData; $.each(datas, function (idx, item) { var data = item.Data; data = data.replace(/\\\\\\\\"/g, "'"); if (item.Ver == pageData.DBVer) frmData.MainTable = JSON.parse(data); else frmData.CompareTable = JSON.parse(data); }) } //处理附件的问题 if (frmData.Sys_FrmAttachment.length != 0) { Skip.addJs("../Ath.js"); Skip.addJs("../JS/FileUpload/fileUpload.js"); Skip.addJs("../../Scripts/jquery-form.js"); Skip.addJs("../../../DataUser/OverrideFiles/Ath.js"); $('head').append(""); } //获得sys_mapdata. var mapData = frmData["Sys_MapData"][0]; var frmNode = frmData["WF_FrmNode"] //根据表单类型不同生成表单. var isTest = GetQueryString("IsTest"); var isFloolFrm = false; var isDevelopForm = false; if (isTest == "1") { var frmType = GetQueryString("FrmType"); if (frmType == 'Develop') { $('head').append(''); $('head').append(''); Skip.addJs("../FrmDevelop2021.js?ver=1"); isDevelopForm = true; GenerDevelopFrm(frmData, mapData.No); //开发者表单. } else { $('head').append(''); Skip.addJs("../FrmFool.js?ver=" + Math.random()); GenerFoolFrm(frmData); isFloolFrm = true; } } else { if (mapData.FrmType == 0 || mapData.FrmType == 10 || mapData.FrmType == 9) { $('head').append(''); Skip.addJs("../FrmFool.js?ver=" + Math.random()); isFloolFrm = true; GenerFoolFrm(frmData); } if (mapData.FrmType == 8) { $('head').append(''); $('head').append(''); Skip.addJs("../FrmDevelop2021.js?ver=1"); GenerDevelopFrm(frmData, mapData.No); //开发者表单. isDevelopForm = true; } } //表单名称. var w = mapData.FrmW; if (isFloolFrm == true) { //$('#ContentDiv').width(w); $('#ContentDiv').css("margin-left", "auto").css("margin-right", "auto"); } // 加载JS文件 改变JS文件的加载方式 解决JS在资源中不显示的问题. var enName = frmData.Sys_MapData[0].No; if (mapData.IsEnableJs == 1) loadScript("../../../DataUser/JSLibData/" + enName + "_Self.js?t=" + Math.random()); layui.form.render(); //3.装载表单数据与修改表单元素风格. LoadFrmDataAndChangeEleStyle(frmData); var verType = GetQueryString("VerType"); if (verType == "main") { window.addEventListener("scroll", function () { var top = $(this).scrollTop(); var iframe = $("#compareFrame", window.parent.document)[0]; iframe.contentWindow.document.documentElement.scrollTop = top; }, true); } if (verType == "compare") { window.addEventListener("scroll", function () { var top = $(this).scrollTop(); var iframe = $("#mainFrame", window.parent.document)[0]; iframe.contentWindow.document.documentElement.scrollTop = top; }, true); } } function LoadFrmDataAndChangeEleStyle(frmData) { mapData = frmData.Sys_MapData[0]; //加入隐藏控件. var mapAttrs = frmData.Sys_MapAttr; frmMapAttrs = mapAttrs; var checkData = null; $.each(mapAttrs, function (i, mapAttr) { if (mapAttr.UIContralType == 18) return true; if (mapAttr.UIVisible == 0 && $("#TB_" + mapAttr.KeyOfEn).length == 0) { return true; } var val = ConvertDefVal(frmData.MainTable, mapAttr.KeyOfEn); //设置ICON,如果有icon,并且是文本框类型. SetICONForCtrl(mapAttr); //下拉框赋值 if ($('#DDL_' + mapAttr.KeyOfEn).length == 1) { // 判断下拉框是否有对应option, 若没有则追加 if (val != "" && $("option[value='" + val + "']", '#DDL_' + mapAttr.KeyOfEn).length == 0) { var mainTable = frmData.MainTable; var selectText = mainTable[mapAttr.KeyOfEn + "Text"]; if (selectText == null || selectText == undefined || selectText == "") selectText = mainTable[mapAttr.KeyOfEn + "T"]; if (selectText != null && selectText != undefined && selectText != "") $('#DDL_' + mapAttr.KeyOfEn).append(""); } if (val != "") { $('#DDL_' + mapAttr.KeyOfEn).val(val); } $('#DDL_' + mapAttr.KeyOfEn).attr('disabled', true); return true; } //checkbox. if (mapAttr.UIContralType == 2) { if (val == "1") $('#CB_' + mapAttr.KeyOfEn).attr("checked", "true"); else $('#CB_' + mapAttr.KeyOfEn).attr("checked", false); $('#CB_' + mapAttr.KeyOfEn).attr('disabled', true); return true; } //枚举 if (mapAttr.MyDataType == 2 && mapAttr.LGType == 1) { $("#RB_" + mapAttr.KeyOfEn + "_" + val).attr("checked", 'checked'); $('input[name=RB_' + mapAttr.KeyOfEn + ']').attr("disabled", "disabled"); return true; } //枚举复选框 if (mapAttr.MyDataType == 1 && mapAttr.LGType == 1) { var checkBoxArray = val.split(","); for (var k = 0; k < checkBoxArray.length; k++) { $("input[name='CB_" + mapAttr.KeyOfEn + "']").each(function () { if ($(this).val() == checkBoxArray[k]) { $(this).attr("checked", true); } }); } $('input[name=CB_' + mapAttr.KeyOfEn + ']').attr("disabled", "disabled"); return true; } $('#TB_' + mapAttr.KeyOfEn).val(val); var compareVal = ConvertDefVal(frmData.CompareTable, mapAttr.KeyOfEn); //文本框. if (mapAttr.UIContralType == 0) { if (mapAttr.TextModel == 3) { $("#TD_" + mapAttr.KeyOfEn +" div").html(val); }else $('#TB_' + mapAttr.KeyOfEn).val(val); if (mapAttr.Tip != "") { $('#TB_' + mapAttr.KeyOfEn).attr("placeholder", mapAttr.Tip); } $('#TB_' + mapAttr.KeyOfEn).attr('disabled', true); if (val != compareVal) $('#TB_' + mapAttr.KeyOfEn).css("background-color", "yellow"); return true; } if (mapAttr.UIContralType == 14) { //签批组件 $("#TB_" + mapAttr.KeyOfEn).hide(); if (GetHrefUrl().indexOf("AdminFrm.htm") != -1) return true; //获取审核组件信息 var node = frmData.WF_Node == undefined ? null : frmData.WF_Node[0]; if (node != null && (node.FWCVer == 0 || node.FWCVer == "" || node.FWCVer == undefined)) FWCVer = 0; else FWCVer = 1; if (checkData == null && node != null) { Skip.addJs("../../WorkOpt/WorkCheck.js"); isFistQuestWorkCheck = false; checkData = WorkCheck_Init(FWCVer); } if (checkData != null && checkData != undefined) { var checkField = "" if (frmData.WF_FrmNode != null && frmData.WF_FrmNode != undefined && frmData.WF_FrmNode[0].FK_Node != 0) { checkField = frmData.WF_FrmNode[0].CheckField; } else { checkField = checkData.WF_FrmWorkCheck[0].CheckField; } var height = $("#TB_" + mapAttr.KeyOfEn).css("height"); var _Html = "
" + GetWorkCheck_Node(checkData, mapAttr.KeyOfEn, checkField, FWCVer) + "
"; $("#TB_" + mapAttr.KeyOfEn).after(_Html); } return true; } }) layui.form.render(); //联动其他控件 $.each(mapAttrs, function (i, mapAttr) { if (mapAttr.LGType == 1 && (mapAttr.UIContralType == 1 || mapAttr.UIContralType == 3) || (mapAttr.LGType == "0" && mapAttr.MyDataType == "1" && mapAttr.UIContralType == 1) || (mapAttr.LGType == "2" && mapAttr.MyDataType == "1") || mapAttr.MyDataType == "4") { var selectVal = ""; var model = "select;" if ($("#DDL_" + mapAttr.KeyOfEn).length = 1) selectVal = $("#DDL_" + mapAttr.KeyOfEn).val(); else if ($("#CB_" + mapAttr.KeyOfEn).length = 1) { model = "checkbox" selectVal = $("#CB_" + mapAttr.KeyOfEn).val(); } else { model = "radio"; selectVal = $('input[name="RB_' + mapAttr.KeyOfEn + '"]:checked').val(); } var compareVal = ConvertDefVal(frmData.CompareTable, mapAttr.KeyOfEn); if (selectVal != compareVal) $("#DIV_" + mapAttr.KeyOfEn + " .layui-select-title input").css("background-color", "yellow"); var AtPara = mapAttr.AtPara; var isEnableJS = AtPara == "" || AtPara == null || AtPara == undefined || AtPara.indexOf('@IsEnableJS=1') == -1 ? false : true; if (isEnableJS == true) { if ((selectVal != null && selectVal != undefined && selectVal != "")) { if (model == "radio" && selectVal == -1) { } else { cleanAll(mapAttr.KeyOfEn, mapData.FrmType); setEnable(mapAttr.FK_MapData, mapAttr.KeyOfEn, selectVal, mapData.FrmType); } } } } }); //设置是否隐藏分组、获取字段分组所有的tr var trs = $("#CCForm .FoolFrmGroupBar"); var isHidden = false; $.each(trs, function (i, obj) { //获取所有跟随的同胞元素,其中有不隐藏的tr,就跳出循环 var sibles = $(obj).nextAll(); 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(); }); } /** * 获取字段值 * @param {any} mainData 表单属性数据 * @param {any} keyOfEn 字段英文名 */ function ConvertDefVal(mainData, keyOfEn) { var result = mainData[keyOfEn]; if (result == undefined) return ""; return result = unescape(result); } /** * 给字段增加图标 * @param {any} mapAttr */ function SetICONForCtrl(mapAttr) { var icon = mapAttr.ICON; var id = "TDIV_" + mapAttr.KeyOfEn; if (mapAttr.ICON.length < 2 || mapAttr.UIContralType != 0) { $('#' + id).removeClass("ccbpm-input-group"); return; } if (mapAttr.MyDataType >= 7) return; var ctrl = $('#' + id); if (ctrl.length <= 0) return; if (icon) { var htmlBefore = ""; htmlBefore += ' '; ctrl.prepend(htmlBefore); } } /** * 初始化获取下拉框字段的选项 * @param {any} frmData * @param {any} mapAttr * @param {any} defVal */ function InitDDLOperation(frmData, mapAttr, defVal) { var operations = ''; var data = frmData[mapAttr.KeyOfEn]; if (data == undefined) data = frmData[mapAttr.UIBindKey]; if (data == undefined) { //枚举类型的. if (mapAttr.LGType == 1) { var enums = frmData.Sys_Enum; enums = $.grep(enums, function (value) { return value.EnumKey == mapAttr.UIBindKey; }); if (mapAttr.DefVal == -1) operations += ""; $.each(enums, function (i, obj) { operations += ""; }); } return operations; } //operations += ""; $.each(data, function (i, obj) { operations += ""; }); return operations; } //设置不可以用. function SetReadonly() { //设置保存按钮不可以用. $("#Btn_Save").attr("disabled", true); $('#CCForm').find('input,textarea,select').attr('disabled', false); $('#CCForm').find('input,textarea,select').attr('readonly', true); $('#CCForm').find('input,textarea,select').attr('disabled', true); } //设置表单元素不可用 function setFormEleDisabled() { //文本框等设置为不可用 $('#divCCForm textarea').attr('disabled', 'disabled'); $('#divCCForm select').attr('disabled', 'disabled'); $('#divCCForm input[type!=button]').attr('disabled', 'disabled'); }