/** * 傻瓜表单的解析 * @param {any} wn */ var frmData; function GenerFoolFrm(wn, isComPare) { $('head').append(''); if (isComPare == null || isComPare == undefined || isComPare == "") isComPare = false; frmData = wn; var mapData = frmData.Sys_MapData[0]; //表单属性 var tableCol = getTableCol(mapData.TableCol); //表单列数 var frmShowType = mapData.FrmShowType; //表单展示方式 普通方式、页签方式 var Sys_GroupFields = frmData.Sys_GroupField; //分组信息 var frmName = mapData.Name; //表单名称 var node = frmData.WF_Node; //节点属性 node = node != null && node != undefined ? node[0] : null; frmShowType = frmShowType == null || frmShowType == undefined || frmShowType == "" ? 0 : frmShowType; var _html = ""; //表头 _html += "
"; _html += "
"; _html += "
" + frmName + "
"; var imgbath = "../DataUser/"; if (GetHrefUrl().indexOf("/CCBill") != -1 || GetHrefUrl().indexOf("CCForm") != -1) imgsrc = "../../DataUser/"; if (GetHrefUrl().indexOf("/AdminFrm.htm") != -1) imgsrc = "../../../DataUser/"; var imgsrc = imgbath + "ICON/logoFrm.png"; _html += '
'; _html += "
"; _html += "
"; //普通方式 if (frmShowType == 0) _html += ShowFoolByTable(frmData, tableCol, Sys_GroupFields, node, isComPare); // 页签显示 if (frmShowType == 1) _html += ShowFoolByTab(frmData, tableCol, Sys_GroupFields, node, isComPare); $("#CCForm").html(_html); //表格附件 if (frmData.Sys_FrmAttachment && frmData.Sys_FrmAttachment.length != 0) { $.each(frmData.Sys_FrmAttachment, function (idex, ath) { if ($("#Div_" + ath.MyPK).length == 1) AthTable_Init(ath, "Div_" + ath.MyPK); }); } //字段附件 var aths = $(".athModel"); $.each(aths, function (idx, ath) { //获取ID var name = $(ath).attr('id'); var keyOfEn = name.replace("athModel_", ""); $("#Lab_" + keyOfEn).html("
" + $("#Lab_" + keyOfEn).text() + "
"); }); $.each($(".layui-attr-btn"), function (idx, item) { $(this).on("click", function () { var keyOfEn = item.id.substring(4); var mapAttr = $.grep(frmData.Sys_MapAttr, function (attr) { return attr.KeyOfEn == keyOfEn; })[0]; var tag = mapAttr.Tag || ""; if (tag != "") tag = DealExp(tag); if (mapAttr.UIIsEnable == 1) { //执行js DBAccess.RunUrlReturnString(tag); } if (mapAttr.UIIsEnable == 2) DBAccess.RunFunctionReturnStr(tag); if (mapAttr.UIIsEnable != 0 && isReadonly != true) FullIt("", mapAttr.MyPK + "_FullData", "Btn_" + mapAttr.KeyOfEn, 0); }) }) }; /** * 普通方式的解析 */ function ShowFoolByTable(frmData, tableCol, Sys_GroupFields, node, isComPare) { var _html = ""; var gfLabHtml = ""; Sys_GroupFields.filter(gf=>gf.ShowType!=2).forEach(function (gf) { var ctrlType = gf.CtrlType; ctrlType = ctrlType == null ? "" : ctrlType; _html += "
"; if (ctrlType == "FWC") gfLabHtml = "
" else gfLabHtml = "
" gfLabHtml += "
"; gfLabHtml += gf.Lab; gfLabHtml += "
"; gfLabHtml += "
"; switch (ctrlType) { case "Ath": //附件 if (gf.CtrlID == "") break; if (frmData.Sys_FrmAttachment == undefined || frmData.Sys_FrmAttachment.length == 0) break; //创建附件描述信息. var aths = $.grep(frmData.Sys_FrmAttachment, function (ath) { return ath.MyPK == gf.CtrlID }); var ath = aths.length > 0 ? aths[0] : null; //附件分组不显示或者是审核组件中的附件 if (ath != null && (ath.IsVisable == "0" || ath.NoOfObj == "FrmWorkCheck")) break; //增加附件分组 _html += gfLabHtml; _html += "
" _html += "
"; if (ath == null) _html += "附件" + gf.CtrlID + "信息丢失"; else _html += "
"; _html += "
"; _html += "
"; break; case "Dtl"://从表 if (frmData.Sys_MapDtl == undefined || frmData.Sys_MapDtl.length == 0) break; var dtls = $.grep(frmData.Sys_MapDtl, function (dtl) { return dtl.No == gf.CtrlID && dtl.IsView != 0; }); var dtl = dtls.length > 0 ? dtls[0] : null; if (dtl == null) break; _html += gfLabHtml; _html += "
" _html += "
"; if (dtl == null) _html += "从表" + gf.CtrlID + "信息丢失"; else _html += "
" + Ele_Dtl(dtl, isComPare) + "
"; _html += "
"; _html += "
"; break; case "FWC"://审核组件 if (node == null || node.FWCSta == 0) break; if (frmData.WF_FrmNode != undefined && frmData.WF_FrmNode.length != 0) { if (frmData.WF_FrmNode[0].MyPK != "" && frmData.WF_FrmNode[0].IsEnableFWC == 0) { break; } } if (GetHrefUrl().indexOf("AdminFrm.htm") != -1) break; //如何有签批字段就不解析 _html += gfLabHtml; _html += "
" _html += "
"; _html += "
"; _html += "
"; _html += "
"; break; case "Frame": //框架. _html += gfLabHtml; _html += "
" _html += "
"; var frames = frmData.Sys_MapFrame; if (frames == undefined || frames.length == 0) _html += "获取框架信息丢失"; else { frames = frames.filter(frame => frame.MyPK === gf.CtrlID); if (frames == undefined || frames.length == 0) _html += "获取框架信息丢失"; else _html += Ele_Frame(frames[0],gf); } _html += "
"; _html += "
"; break; case "SubFlow": //父子流程. Skip.addJs("./WorkOpt/SubFlow.js"); _html += gfLabHtml; _html += "
" _html += "
"; //说明是累加表单. if (gf.FrmID.indexOf(node.NodeID) == -1) { var myNodeID = gf.FrmID.substring(2); var myNode = new Entity("BP.WF.Node", myNodeID); _html += "
" + SubFlow_Init(myNode) + "
"; } else { _html += "
" + SubFlow_Init(node) + "
"; } _html += "
"; _html += "
"; break; default://普通字段 if (gf.ShowType == 2) //0显示 1 PC折叠 2 隐藏 break; _html += gfLabHtml; _html += InitMapAttr(frmData, tableCol, gf.OID); break; } _html += "
"; }); return _html; } /** * Tab页签的方式显示 */ function ShowFoolByTab(frmData, tableCol, Sys_GroupFields, node, isComPare) { var _html = ""; _html += '
'; _html += ''; _html += '
'; $.each(gfs, function (i, gf) { var contHtml = ""; if (i == 0) contHtml += "
"; else contHtml += "
"; var ctrlType = gf.CtrlType; ctrlType = ctrlType == null ? "" : ctrlType; switch (ctrlType) { case "Ath": //附件 //增加附件分组 contHtml += "
" contHtml += "
"; if (gf.Ath == null) contHtml += "附件" + gf.CtrlID + "信息丢失"; else contHtml += "
"; contHtml += "
"; contHtml += "
"; break; case "Dtl"://从表 contHtml += "
" contHtml += "
"; if (gf.Dtl == null) contHtml += "从表" + gf.CtrlID + "信息丢失"; else contHtml += "
" + Ele_Dtl(gf.Dtl, isComPare) + "
"; contHtml += "
"; contHtml += "
"; break; case "FWC"://审核组件 //如何有签批字段就不解析 contHtml += "
" contHtml += "
"; contHtml += "
"; contHtml += "
"; contHtml += "
"; break; case "Frame"://框架 contHtml += "
" contHtml += "
"; var frames = frmData.Sys_MapFrame; if (frames == undefined || frames.length == 0) contHtml += "获取框架信息丢失"; else { frames = frames.filter(frame => frame.MyPK === gf.CtrlID); if (frames == undefined || frames.length == 0) contHtml += "获取框架信息丢失"; else contHtml += Ele_Frame(frames[0],gf); } contHtml += "
"; contHtml += "
"; break; case "SubFlow"://父子流程 Skip.addJs("./WorkOpt/SubFlow.js"); contHtml += gfLabHtml; contHtml += "
" contHtml += "
"; //说明是累加表单. if (gf.FrmID.indexOf(node.NodeID) == -1) { var myNodeID = gf.FrmID.substring(2); var myNode = new Entity("BP.WF.Node", myNodeID); contHtml += "
" + SubFlow_Init(myNode) + "
"; } else { contHtml += "
" + SubFlow_Init(node) + "
"; } contHtml += "
"; contHtml += "
"; break; default://普通字段 if (gf.ShowType == 2) //0显示 1 PC折叠 2 隐藏 break; contHtml += InitMapAttr(frmData, tableCol, gf.OID); break; } contHtml += "
"; _html += contHtml; }); _html += '
'; _html += '
'; if ($("#SubFlow").length == 0 && node.SFSta != 0) { Skip.addJs(basePath + "/WF/WorkOpt/SubFlow.js"); _html += gfLabHtml; _html += "
" _html += "
"; _html += "
" + SubFlow_Init(node) + "
"; _html += "
"; _html += "
"; } return _html; return _html; } /** * 解析基本字段 * @param {any} groupID */ function InitMapAttr(frmData, tableCol, groupID) { var Sys_MapAttr = $.grep(frmData.Sys_MapAttr, function (mapAttr) { return mapAttr.GroupID == groupID; }); var html = ""; var isDropTR = true; var colSpan = 1; var LabelColSpan = 1; var textWidth = ""; var colWidth = ""; var useColSpan = 0; for (var i = 0; i < Sys_MapAttr.length; i++) { var attr = Sys_MapAttr[i]; if (attr.UIVisible == 0) continue; //单元格和标签占的列数 colSpan = attr.ColSpan; LabelColSpan = attr.LabelColSpan; //单元格和标签占的列数对应的class colWidth = getColSpanClass(colSpan, tableCol); textWidth = getLabelColSpanClass(LabelColSpan, tableCol); //大文本备注信息 独占一行 if (attr.UIContralType == 60) { if (isDropTR == false) { html += "
"; isDropTR = true; } textWidth = getLabelColSpanClass(tableCol, tableCol); //获取文本信息 var mapExts = frmData.Sys_MapExt || []; var myExts = $.grep(mapExts, function (item) { var mypk = "HtmlText_" + attr.MyPK; return item.MyPK == mypk; }); var str = ""; if (myExts.length > 0) { var mapExt = new Entity("BP.Sys.MapExt", myExts[0]); mapExt.MyPK = myExts[0].MyPK; str = mapExt.DoMethodReturnString("ReadBigNoteHtmlText"); } html += "
"; html += "
" + str + "
"; html += "
"; isDropTR = true; continue; } //跨列设置(显示的是文本) if (colSpan == 0) { if (LabelColSpan >= tableCol) { if (isDropTR == false) { html += "
"; isDropTR = true; } textWidth = getLabelColSpanClass(tableCol, tableCol); html += "
"; html += "
" + GetLab(attr, frmData) + "
"; html += "
"; isDropTR = true; continue; } //线性展示都跨一个单元格 //换行的情况 if (isDropTR == true) { useColSpan = LabelColSpan; html += "
"; html += "
" + GetLab(attr, frmData) + "
"; if (useColSpan == tableCol) { isDropTR = true; html += "
"; } else isDropTR = false; continue; } if (isDropTR == false) { useColSpan += LabelColSpan; if (useColSpan > tableCol) { useColSpan = LabelColSpan; //自动换行 html += ""; html += "
"; } if (attr.UIContralType == 18) html += "
" + GetLab(attr, frmData) + "
"; else html += "
" + GetLab(attr, frmData) + "
"; if (useColSpan == tableCol) { isDropTR = true; html += "
"; } else isDropTR = false; continue; } } //标签为0 if (LabelColSpan == 0) { if (colSpan >= tableCol) { if (isDropTR == false) { html += ""; isDropTR = true; } colWidth = getColSpanClass(colSpan, tableCol); html += "
"; html += "
" + InitMapAttrOfCtrlFool(frmData, attr) + "
"; html += "
"; isDropTR = true; continue; } //线性展示都跨一个单元格 //换行的情况 if (isDropTR == true) { useColSpan = colSpan; html += "
"; html += "
" + InitMapAttrOfCtrlFool(frmData, attr) + "
"; if (useColSpan == tableCol) { isDropTR = true; html += "
"; } else isDropTR = false; continue; } if (isDropTR == false) { useColSpan += colSpan; if (useColSpan > tableCol) { useColSpan = colSpan; //自动换行 html += ""; html += "
"; } html += "
" + InitMapAttrOfCtrlFool(frmData, attr) + "
"; if (useColSpan == tableCol) { isDropTR = true; html += "
"; } else isDropTR = false; continue; } } //解析占一行的情况 if (colSpan == tableCol) { if (isDropTR == false) { html += ""; isDropTR = true; } useColSpan = 0; //自动换行 html += "
"; html += "
" + GetLab(attr, frmData) + "
"; if (attr.UIContralType != 12) html += "
" + InitMapAttrOfCtrlFool(frmData, attr) + "
"; html += "
" continue; } var sumColSpan = colSpan + LabelColSpan; if (sumColSpan >= tableCol) { if (isDropTR == false) { html += ""; isDropTR = true; } useColSpan = 0; if (sumColSpan > tableCol) colWidth = getColSpanClass(tableCol - LabelColSpan, tableCol) //colWidth = textWidth.replace("layui-col-md", "").replace(" layui-col-xs4"); //colWidth = "layui-col-md" + (12 - parseInt(colWidth)) +" layui-col-xs8" ; html += "
"; if (attr.MyDataType == 1 && attr.LGType == 0 && (attr.IsSupperText == 1 || attr.UIHeight > 40)) html += "
" + GetLab(attr, frmData) + "
"; //html += "
" + GetLab(attr, frmData) + "
"; else html += "
" + GetLab(attr, frmData) + "
"; if (attr.UIContralType != 12) html += "
" + InitMapAttrOfCtrlFool(frmData, attr) + "
"; html += "
"; continue; } //换行的情况 if (isDropTR == true) { useColSpan = LabelColSpan + colSpan; html += "
"; if (attr.UIContralType == 18) { textWidth = getLabelColSpanClass(attr.LabelColSpan + attr.ColSpan, tableCol); html += "
" + GetLab(attr, frmData) + "
"; } else { html += "
" + GetLab(attr, frmData) + "
"; if (attr.UIContralType != 12) html += "
" + InitMapAttrOfCtrlFool(frmData, attr) + "
"; } if (useColSpan >= tableCol) { isDropTR = true; html += "
"; } else isDropTR = false; continue; } if (isDropTR == false) { useColSpan += LabelColSpan + colSpan; if (useColSpan > tableCol) { useColSpan = LabelColSpan + colSpan; //自动换行 html += ""; html += "
"; if (attr.UIContralType == 18) { textWidth = getLabelColSpanClass(attr.LabelColSpan + attr.ColSpan, tableCol); html += "
" + GetLab(attr, frmData) + "
"; } else { html += "
" + GetLab(attr, frmData) + "
"; if (attr.UIContralType != 12) html += "
" + InitMapAttrOfCtrlFool(frmData, attr) + "
"; } } else { if (attr.UIContralType == 18) { textWidth = getLabelColSpanClass(attr.LabelColSpan + attr.ColSpan, tableCol); html += "
" + GetLab(attr, frmData) + "
"; } else { html += "
" + GetLab(attr, frmData) + "
"; if (attr.UIContralType != 12) html += "
" + InitMapAttrOfCtrlFool(frmData, attr) + "
"; } } if (useColSpan == tableCol) { isDropTR = true; html += "
"; } else isDropTR = false; continue; } } if (isDropTR == false) html += ""; return html; } /** * 获取单元格显示的内容 * @param {any} mapAttr */ function InitMapAttrOfCtrlFool(frmData, mapAttr) { var ccsCtrl = mapAttr.CSSCtrl; ccsCtrl = ccsCtrl == null || ccsCtrl == undefined || ccsCtrl == "0" ? "" : ccsCtrl; var suffix = GetPara(mapAttr.AtPara, "suffix"); suffix = suffix == null || suffix == undefined ? "" : suffix; var eleHtml = ""; //下拉框 外键和外部数据源 if ((mapAttr.LGType == "0" && mapAttr.MyDataType == "1" && mapAttr.UIContralType == 1) || (mapAttr.LGType == "2" && mapAttr.MyDataType == "1")) { var css = ""; if (mapAttr.LGType == "0") css = "class='ddl-ext'"; var disabled = ""; if (mapAttr.UIIsEnable == 0 || pageData.IsReadonly == 1) disabled = "disabled='disabled'"; return "
" + suffix + "
"; } //枚举 单选枚举和下拉框枚举 if (mapAttr.LGType == 1) { var ses = frmData[mapAttr.KeyOfEn]; if (ses == undefined) ses = frmData[mapAttr.UIBindKey]; if (ses == undefined) { //枚举类型的. if (mapAttr.LGType == 1) { ses = frmData.Sys_Enum; ses = $.grep(ses, function (value) { return value.EnumKey == mapAttr.UIBindKey; }); } } if (mapAttr.UIContralType == 1) {//下拉框显示 var operations = ""; var indexnum = []; //大于20条数据添加搜索功能 $.each(ses, function (i, obj) { operations += ""; indexnum.push(obj) }); var disabled = ""; if (mapAttr.UIIsEnable == 0 || pageData.IsReadonly == 1) disabled = "disabled='disabled'"; if (indexnum.length >= 20) { return "
" + suffix + "
"; } else { return "
" + suffix + "
"; } } if (mapAttr.UIContralType == 2) {//复选框 var disabled = ""; if (mapAttr.UIIsEnable == 0 || pageData.IsReadonly == 1) disabled = "disabled='disabled'"; var rbHtmls = ""; //显示方式,默认为 0=横向展示 3=横向.. var RBShowModel = 0; if (mapAttr.AtPara.indexOf('@RBShowModel=3') >= 0) RBShowModel = 3; for (var i = 0; i < ses.length; i++) { var se = ses[i]; var br = ""; if (RBShowModel == 0) br = "
"; var checked = ""; //if (se.IntKey == mapAttr.DefVal) // checked = " checked=true "; rbHtmls += ""; } return "
" + rbHtmls + "
"; } if (mapAttr.UIContralType == 3) {//单选按钮显示 var disabled = ""; if (mapAttr.UIIsEnable == 0 || pageData.IsReadonly == 1) disabled = "disabled='disabled'"; var rbHtmls = ""; //显示方式,默认为 0=横向展示 3=横向.. var RBShowModel = 0; if (mapAttr.AtPara.indexOf('@RBShowModel=3') >= 0) RBShowModel = 3; for (var i = 0; i < ses.length; i++) { var se = ses[i]; var br = ""; if (RBShowModel == 0) br = "
"; var checked = ""; if (se.IntKey == mapAttr.DefVal) checked = " checked=true "; rbHtmls += "" + br; } return "
" + rbHtmls + "
"; } } //普通字段 if (mapAttr.LGType == 0) { var disabled = ""; if (mapAttr.UIIsEnable == 0 || pageData.IsReadonly == 1) disabled = "disabled='disabled'"; switch (parseInt(mapAttr.MyDataType)) { case 1://普通文本 //获取到当前字段值 var val = ConvertDefVal(frmData, mapAttr.DefVal, mapAttr.KeyOfEn); switch (parseInt(mapAttr.UIContralType)) { case 4: //地图 //如果是地图,并且可以编辑 var eleHtml = "
"; if (mapAttr.UIIsEnable == 1 && isReadonly == false) { eleHtml += ""; eleHtml += ""; } else { eleHtml += ""; eleHtml += ""; } eleHtml += "
"; return eleHtml; case 6://字段附件 return getFieldAth(mapAttr,frmData.Sys_FrmAttachment); case 8://写字板 var imgPath = "../"; if (currentURL.indexOf("CCBill") != -1 || currentURL.indexOf("CCForm") != -1) imgPath = "../../"; if (currentURL.indexOf("AdminFrm.htm") != -1) imgPath = "../../../"; var imgSrc = imgPath + "DataUser/Siganture/UnName.jpg"; //如果是图片签名,并且可以编辑 var ondblclick = "" if (mapAttr.UIIsEnable == 1 && isReadonly == false) { ondblclick = " ondblclick='figure_Template_HandWrite(\"" + mapAttr.KeyOfEn + "\",\"" + val + "\")'"; } val = val || ""; if (val.indexOf("data:image/")==-1) val = imgPath + val.substring(val.indexOf("DataUser")); var html = ""; eleHtml += "" + html; return eleHtml; case 9://超链接 var val = mapAttr.Tag2; //替换@符号的数据 val = DealJsonExp(frmData.MainTable[0], val); return "" + mapAttr.Name + ""; case 13://身份证 if (mapAttr.KeyOfEn == "IDCardAddress") { eleHtml = "
"; eleHtml += ""; if (mapAttr.UIIsEnable == 1 && isReadonly == false) eleHtml += ""; eleHtml += "
"; return eleHtml; } return "
"; break; case 16://系统定位 eleHtml = "
"; eleHtml += ""; eleHtml += "
"; return eleHtml; //return ""; case 50://工作进度 return "
"; case 101://评分标准 val = val == null || val == undefined || val == "" ? 0 : val; //如果编辑 var eleHtml = "
"; if (mapAttr.UIIsEnable == 1 && isReadonly == false) eleHtml += ""; else eleHtml += ""; var num = mapAttr.Tag2; var baseUrl = "./"; if (currentURL.indexOf("CCForm") != -1 || currentURL.indexOf("CCBill") != -1) baseUrl = "../"; if (currentURL.indexOf("AdminFrm.htm") != -1) baseUrl = "../../"; for (var i = 0; i < val; i++) { eleHtml += ""; } for (var j = 0; j < num - val; j++) { eleHtml += ""; } eleHtml += "  " + val + " 分"; eleHtml += ""; eleHtml += "
"; return eleHtml; case 110: //公文组件 eleHtml = "
"; eleHtml += ""; eleHtml += ""; eleHtml += "
"; return eleHtml; default: //判断是不是富文本编辑器 if (mapAttr.TextModel == 3) { if (mapAttr.UIIsEnable == "0" || isReadonly == true) { //使用div展示 var defValue = ConvertDefVal(frmData, mapAttr.DefVal, mapAttr.KeyOfEn); defValue = defValue.replace(/white-space: nowrap;/g, ""); return "
" + defValue + "
"; } if (richTextType == "tinymce") return "" } var baseUrl = "../"; if (currentURL.indexOf("AdminFrm.htm") != -1) baseUrl = "../../../"; if (currentURL.indexOf("CCBill") != -1 || currentURL.indexOf("CCForm") != -1) baseUrl = "../../"; if (mapAttr.IsSigan == "1" && mapAttr.UIIsEnable == 1 && isReadonly != 0) { var html = ""; //是否签过 var sealData = new Entities("BP.Tools.WFSealDatas"); sealData.Retrieve("OID", pageData.OID, "FK_Node", GetQueryString("FK_Node"), "SealData", GetQueryString("UserNo")); if (sealData.length > 0) { eleHtml += "" + defValue + "" + html; isSigantureChecked = true; } else { eleHtml += "" + html; } return eleHtml; } //如果不可编辑,并且是图片名称 if (mapAttr.IsSigan == "1") { var val = ConvertDefVal(frmData, mapAttr.DefVal, mapAttr.KeyOfEn); var html = ""; eleHtml += "" + val + "" + html; return eleHtml; } return "
"; } break; case 2://整数 var _html = "
"; var minNum = GetPara(mapAttr.AtPara, "NumMin") || ""; var maxNum = GetPara(mapAttr.AtPara, "NumMax") || ""; var dataInfo = ""; if (minNum != "") dataInfo = " data-min='" + minNum + "'"; if (maxNum != "") dataInfo += " data-max='" + maxNum + "'"; if (suffix != "") { _html += ""; _html += ""; } else { _html += ""; } _html += "
"; return _html; case 4: //复选框 if (mapAttr.UIIsEnable == 0 || pageData.IsReadonly == 1) { enableAttr = "disabled='disabled'"; } else { enableAttr = ""; } return "
"; case 3://浮点 case 5://双精度 var _html = "
"; var attrdefVal = mapAttr.DefVal; var bit; if (attrdefVal != null && attrdefVal !== "" && attrdefVal.indexOf(".") >= 0) bit = attrdefVal.substring(attrdefVal.indexOf(".") + 1).length; else bit = 2; var minNum = GetPara(mapAttr.AtPara, "NumMin") || ""; var maxNum = GetPara(mapAttr.AtPara, "NumMax") || ""; var dataInfo = ""; if (minNum != "") dataInfo = " data-min='" + minNum + "'"; if (maxNum != "") dataInfo += " data-max='" + maxNum + "'"; if (suffix != "") { _html += ""; _html += ""; } else { _html += ""; } _html += "
"; return _html; case 6://日期类型 case 7://时间类型 //生成中间的部分. var enableAttr = ''; var frmDate = mapAttr.IsSupperText; //获取日期格式 var dateFmt = ''; var dateType = ""; if (frmDate == 0) { dateFmt = "yyyy-MM-dd"; dateType = "date" } else if (frmDate == 1) { dateFmt = "yyyy-MM-dd HH:mm"; dateType = "datetime"; } else if (frmDate == 2) { dateFmt = "yyyy-MM-dd HH:mm:ss"; dateType = "datetime"; } else if (frmDate == 3) { dateFmt = "yyyy-MM"; dateType = "month"; } else if (frmDate == 4) { dateFmt = "HH:mm"; dateType = "time"; } else if (frmDate == 5) { dateFmt = "HH:mm:ss"; dateType = "time"; } else if (frmDate == 6) { dateFmt = "MM-dd"; dateType = "date"; } else if (frmDate == 7) { dateFmt = "yyyy"; dateType = "year"; } if (mapAttr.UIIsEnable == 0 || pageData.IsReadonly == 1) enableAttr = "disabled='disabled' "; return "
"; case 8://金额 //获取DefVal,根据默认的小数点位数来限制能输入的最多小数位数 var _html = "
"; var attrdefVal = mapAttr.DefVal; var bit; if (attrdefVal != null && attrdefVal !== "" && attrdefVal.indexOf(".") >= 0) bit = attrdefVal.substring(attrdefVal.indexOf(".") + 1).length; else bit = 2; var minNum = GetPara(mapAttr.AtPara, "NumMin") || ""; var maxNum = GetPara(mapAttr.AtPara, "NumMax") || ""; var dataInfo = ""; if (minNum != "") dataInfo = " data-min='" + minNum + "'"; if (maxNum != "") dataInfo += " data-max='" + maxNum + "'"; if (suffix != "") { _html += ""; _html += ""; } else { _html += ""; } _html += "
"; return _html; default: break; } } } /** * 获取字段标签 * @param {any} attr * @param {any} frmData */ function GetLab(attr, frmData) { var lab = ""; var forID = "TB_" + attr.KeyOfEn; var contralType = attr.UIContralType; var ccsLab = attr.CSSLabel; ccsLab = ccsLab == null || ccsLab == undefined || ccsLab == "0" ? "" : ccsLab; switch (parseInt(contralType)) { case 0://文本 case 1://下拉框 case 2://复选框 case 3://单选按钮 case 4://地图 case 6://字段附件 case 8://手写签字版 case 13://身份证号 case 14://签批字段 case 50: //流程进度图 case 101://评分 if (contralType == 1)//外键下拉框 forID = "DDL_" + attr.KeyOfEn; if (contralType == 3)//枚举 forID = "RB_" + attr.KeyOfEn; if (contralType == 2)//枚举复选框 forID = "CB_" + attr.KeyOfEn; ccsLab += " layui-form-label" if (attr.UIIsInput == 1 && attr.UIIsEnable == 1) { lab = " *"; ccsLab += " mustInput "; } lab += ""; return lab; case 9://超链接 var url = attr.Tag2; //替换URL中的参数 var pageParams = getQueryString(); $.each(pageParams, function (i, pageParam) { var pageParamArr = pageParam.split('='); url = url.replace("@" + pageParamArr[0], pageParamArr[1]); }); //替换表单中的参数 $.each(frmData.Sys_MapAttr, function (i, obj) { if (url != null && url.indexOf('@' + obj.KeyOfEn) > 0) { url = url.replace('@' + obj.KeyOfEn, frmData.MainTable[0][obj.KeyOfEn]); } }); url = url.indexOf("?") == -1 ? url + "?1=1" : url; if (url.indexOf("Search.htm") != -1) url = url + "&FK_Node=" + pageData.FK_Node + "&FK_Flow=" + pageData.FK_Flow + "&UserNo=" + webUser.No + "&Token=" + webUser.Token; else url = url + "&UserNo=" + webUser.No + "&Token=" + webUser.Token; if (url.indexOf('OID=') == -1) url += "&OID=" + frmData.MainTable[0].OID; if (url.indexOf('WorkID=') == -1) url += "&WorkID=" + frmData.MainTable[0].OID; if (url.indexOf('FrmID=') == -1) url += "&FrmID=" + attr.FK_MapData; return '' + attr.Name + ''; case 11://图片(只显示) //获取图片控件的信息 var frmImg = new Entity("BP.Sys.FrmUI.ExtImg"); frmImg.SetPKVal(attr.MyPK); var count = frmImg.RetrieveFromDBSources(); if (count == 0) { layer.alert("主键为" + attr.MyPK + "名称为" + attr.Name + "的图片控件信息丢失,请联系管理员111"); return ""; } //解析图片 if (frmImg.ImgAppType == 0) { //图片类型 //数据来源为本地. var imgSrc = ''; if (frmImg.ImgSrcType == 0) { //替换参数 var frmPath = frmImg.ImgPath; frmPath = frmPath.replace('@', '@'); frmPath = frmPath.replace('@basePath', basePath); frmPath = frmPath.replace('@basePath', basePath); imgSrc = DealJsonExp(frmData.MainTable[0], frmPath); } //数据来源为指定路径. if (frmImg.ImgSrcType == 1) { var url = frmImg.ImgURL; url = url.replace('@', '@'); url = url.replace('@basePath', basePath); imgSrc = DealJsonExp(frmData.MainTable[0], url); } // 由于火狐 不支持onerror 所以 判断图片是否存在放到服务器端 if (imgSrc == "" || imgSrc == null) imgSrc = "../DataUser/ICON/CCFlow/LogBig.png"; var style = "text-align:center;"; if (attr.UIWidth == 0) style += "width:100%;"; else style += "width:" + attr.UIWidth + "px;"; if (attr.UIHeight == 0) style += "Height:100%;"; else style += "Height:" + attr.UIHeight + "px;"; return ""; } break; case 12://单图片附件(可以上传) //获取图片控件的信息 if (frmData.Sys_FrmImgAth == undefined || frmData.Sys_FrmImgAth.length == 0) return; var frmImgs = $.grep(frmData.Sys_FrmImgAth, function (item, i) { return item.MyPK == attr.MyPK; }); if (frmImgs.length == 0) { alert("主键为" + attr.MyPK + "名称为" + attr.Name + "的图片控件信息丢失,请联系管理员"); return ""; } var frmImg = frmImgs[0]; var imgSrc = basePath + "/DataUser/ICON/CCFlow/LogBig.png"; //获取数据 if (frmImg.FK_MapData.indexOf("ND") != -1) imgSrc = basePath + "/DataUser/ImgAth/Data/" + frmImg.CtrlID + "_" + pageData.WorkID + ".png"; else imgSrc = basePath + "/DataUser/ImgAth/Data/" + frmImg.FK_MapData + "_" + frmImg.CtrlID + "_" + pageData.WorkID + ".png"; var _html = ""; if (frmImg.IsEdit == "1" && pageData.IsReadonly != "1") { var url = dynamicHandler + "?DoType=HttpHandler&DoMethod=FrmImgAthDB_Upload&HttpHandlerName=BP.WF.HttpHandler.WF_CCForm&FK_MapData=" + frmData.Sys_MapData[0].No + "&CtrlID=" + frmImg.CtrlID + "&RefPKVal=" + pageData.WorkID _html += "
"; _html += "
"; _html += ""; _html += '
修改图片
'; _html += "
"; _html += ""; _html += "
"; _html += "
"; return _html; } else { _html += "
"; _html += ""; _html += "
"; return _html; } break; case 18://按钮 return "" default: return ""; } } //初始化 框架 function Ele_Frame(frmData, gf) { var frame = null; try { frame = new Entity("BP.Sys.MapFrame", gf.CtrlID); } catch (e) { layer.alert("没有找到框架的定义,请与管理员联系。"); return; } if (frame == null) return; //获取框架的类型 0 自定义URL 1 地图开发 2流程轨迹表 3流程轨迹图 var urlType = frame.UrlSrcType; var eleHtml = ''; var url = ""; if (urlType == 0) { url = frame.URL; if (url.indexOf('?') == -1) url += "?1=2"; if (url.indexOf("@basePath") == 0) url = url.replace("@basePath", basePath); //2.替换@参数 var pageParams = getQueryString(); $.each(pageParams, function (i, pageParam) { var pageParamArr = pageParam.split('='); url = url.replace("@" + pageParamArr[0], pageParamArr[1]); }); //3.替换表单中的参数 var src = url.replace(new RegExp(/(:)/g), ':'); if (src.indexOf("?") > 0) { var params = getQueryStringFromUrl(src); if (params != null && params.length > 0) { $.each(params, function (i, param) { if (param.indexOf('@') != -1) {//是需要替换的参数 paramArr = param.split('='); if (paramArr.length == 2 && paramArr[1].indexOf('@') == 0) { if (paramArr[1].indexOf('@WebUser.') == 0) url = url.replace(paramArr[1], flowData.MainTable[0][paramArr[1].substr('@WebUser.'.length)]); else url = url.replace(paramArr[1], flowData.MainTable[0][paramArr[1].substr(1)]); } } }); } } //处理URL需要的参数 //1.拼接参数 var paras = this.pageData; var strs = ""; for (var str in paras) { if (str == "EnsName" || str == "RefPKVal" || str == "IsReadonly") continue else strs += "&" + str + "=" + paras[str]; } url = url + strs + "&IsReadonly=0"; //4.追加GenerWorkFlow AtPara中的参数 var gwf = frmData.WF_GenerWorkFlow; if (gwf != null && gwf != undefined) { gwf = gwf[0]; var atPara = gwf.AtPara; if (atPara != null && atPara != "") { atPara = atPara.replace(/@/g, '&'); url = url + atPara; } } } var baseUrl = "./"; if (currentURL.indexOf("AdminFrm.htm") != -1) baseUrl = "../../"; if (currentURL.indexOf("CCBill") != -1 || currentURL.indexOf("CCForm") != -1) baseUrl = "../"; if (urlType == 2) //轨迹表 url = baseUrl + "WorkOpt/OneWork/Table.htm?FK_Node=" + pageData.FK_Node + "&FK_Flow=" + pageData.FK_Flow + "&WorkID=" + pageData.WorkID + "&FID=" + pageData.FID; if (urlType == 3)//轨迹图 url = baseUrl + "WorkOpt/OneWork/TimeBase.htm?FK_Node=" + pageData.FK_Node + "&FK_Flow=" + pageData.FK_Flow + "&WorkID=" + pageData.WorkID + "&FID=" + pageData.FID; eleHtml += "" + ''; return eleHtml; } //初始化从表 function Ele_Dtl(frmDtl, isComPare) { if (isComPare == true) return ""; var src = ""; var href = GetHrefUrl(); var urlParam = href.substring(href.indexOf('?') + 1, href.length); urlParam = urlParam.replace('&DoType=', '&DoTypeDel=xx'); var ensName = frmDtl.No; if (ensName == undefined) { layer.alert('系统错误,请找管理员联系'); return; } var baseUrl = "./CCForm/"; if (currentURL.indexOf("AdminFrm.htm") != -1) baseUrl = "../../CCForm/"; if (currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1) baseUrl = "../CCForm/"; if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("FrmDBVer.htm") != -1 || currentURL.indexOf("DtlFrm.htm") != -1) baseUrl = "./"; //表格模式 if (frmDtl.ListShowModel == "0") src = baseUrl + "Dtl2017.htm?1=1"; if (frmDtl.ListShowModel == "1") src = baseUrl + "DtlCard.htm?1=1"; if (frmDtl.ListShowModel == "2") { if (frmDtl.UrlDtl == null || frmDtl.UrlDtl == undefined || frmDtl.UrlDtl == "") return "从表" + frmDtl.Name + "没有设置URL,请在" + frmDtl.FK_MapData + "_Self.js中解析"; src = basePath + "/" + frmDtl.UrlDtl; if (src.indexOf("?") == -1) src += "?1=1"; } var refpk = this.pageData.WorkID; if (refpk == undefined) refpk = pageData.OID; src += "&EnsName=" + frmDtl.No + "&RefPKVal=" + refpk + "&FK_MapData=" + frmDtl.FK_MapData + "&IsReadonly=" + (isReadonly == true ? 1 : 0) + "&" + urlParam + "&Version=1&FrmType=0"; return ""; } /** * 获取表单显示的列数 * @param {any} tableColType */ function getTableCol(tableColType) { tableColType = tableColType || 0; switch (parseInt(tableColType)) { case 0: return 4; case 1: return 6; case 2: return 3; default: return 4; } } /** * 获取字段占的列数 * @param {any} colSpan * @param {any} tabCol */ function getColSpanClass(colSpan, tabCol) { colSpan = colSpan || 1; if (tabCol == 4) { switch (parseInt(colSpan)) { case 1: return "layui-col-sm4 layui-col-md4 layui-col-xs8"; case 2: return "layui-col-sm6 layui-col-md6 layui-col-xs8"; case 3: return "layui-col-sm10 layui-col-md10 layui-col-xs8"; case 4: return "layui-col-sm12 layui-col-md12 layui-col-xm12"; default: return "layui-col-sm4 layui-col-md4 layui-col-xs8"; } } if (tabCol == 6) { switch (parseInt(colSpan)) { case 1: return "layui-col-xs2"; case 2: return "layui-col-xs4"; case 3: return "layui-col-xs6"; case 4: return "layui-col-xs8"; case 5: return "layui-col-xs10"; case 6: return "layui-col-xs12"; default: return "layui-col-xs2"; } } } /** * 获取标签占的列数 * @param {any} LabelColSpan * @param {any} tabCol */ function getLabelColSpanClass(LabelColSpan, tabCol) { LabelColSpan = LabelColSpan || 1; if (tabCol == 4) { switch (parseInt(LabelColSpan)) { case 1: return "layui-col-sm2 layui-col-md2 layui-col-xs4"; case 2: return "layui-col-sm6 layui-col-md6 layui-col-xs4"; case 3: return "layui-col-sm8 layui-col-md8 layui-col-xs4"; case 4: return "layui-col-sm12 layui-col-md12 layui-col-xs12"; default: return "layui-col-sm2 layui-col-md2 layui-col-xs4"; } } if (tabCol == 6) { switch (parseInt(LabelColSpan)) { case 1: return "layui-col-xs2"; case 2: return "layui-col-xs4"; case 3: return "layui-col-xs6"; case 4: return "layui-col-xs8"; case 5: return "layui-col-xs10"; case 6: return "layui-col-xs12"; default: return "layui-col-xs2"; } } }