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.

1131 lines
40 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
说明:
1. 围绕该文件工作的有两个js文件分别是。 FrmFool.js
2. 对于傻瓜表单自由表单的,展现方式不同以外其他的都相同.
3. 相同的部分写入到了该文件里不同的部分分别在不同的两个js文件里.
4. MapExt2016.js 文件是一个公用的文件,用于处理扩展业务逻辑的,它在多个地方别调用了.
*/
//初始化函数
$(function () {
if(webUser == null)
webUser = new WebUser();
initPageParam(); //初始化参数.
//时间轴的表单增加打印单据按钮
var fromWorkOpt = GetQueryString("FromWorkOpt");
if (fromWorkOpt == 2) {
var PrintDocHtml = "<input type=button name='PrintDoc' value='打印单据' enable=true onclick='printDoc()' />";
$("#topToolBar").append(PrintDocHtml);
}
//构造表单.
GenerFrm(); //表单数据.
if (parent != null && parent.document.getElementById('MainFrames') != undefined) {
//计算高度,展示滚动条
var height = $(parent.document.getElementById('MainFrames')).height() - 110;
$('#topContentDiv').height(height);
$(window).resize(function () {
$("#CCForm").height($(window).height() - 150 + "px").css("overflow-y", "auto").css("scrollbar-face-color", "#fff"); ;
});
}
$('#btnCloseMsg').bind('click', function () {
$('.Message').hide();
});
});
//打印单据
function printDoc() {
WinOpen("../WorkOpt/PrintDoc.htm?FK_Node=" + pageData.FK_Node + "&FID=" + pageData.FID + "&WorkID=" + pageData.OID + "&FK_Flow=" + pageData.FK_Flow + "&s=" + Math.random()+"', 'dsdd'");
}
//设置不可以用.
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);
}
var frmData = null;
//将v1版本表单元素转换为v2 杨玉慧 silverlight 自由表单转化为H5表单.
function GenerFrm() {
var isTest = GetQueryString("IsTest");
var isReadonly = GetQueryString("IsReadonly");
var href = GetHrefUrl();
var urlParam = href.substring(href.indexOf('?') + 1, href.length);
urlParam = urlParam.replace('&DoType=', '&DoTypeDel=xx');
//隐藏保存按钮.
if (href.indexOf('&IsReadonly=1') > 1 || href.indexOf('&IsEdit=0') > 1) {
$("#Btn").hide();
}
var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
handler.AddUrlData(urlParam);
handler.AddJson(pageData);
var data = handler.DoMethodReturnString("FrmGener_Init");
if (data.indexOf('err@') == 0) {
alert('装载表单出错,请查看控制台console,或者反馈给管理员.');
alert(data);
console.log(data);
return;
}
try {
frmData = JSON.parse(data);
}
catch (err) {
alert(" frmData数据转换JSON失败:" + data);
console.log(data);
return;
}
//获取没有解析的外部数据源
var uiBindKeys = frmData["UIBindKey"];
if (uiBindKeys.length != 0) {
//获取外部数据源 handler/JavaScript
var operdata;
for (var i = 0; i < uiBindKeys.length; i++) {
var sfTable = new Entity("BP.Sys.SFTable", uiBindKeys[i].No);
var srcType = sfTable.SrcType;
if (srcType != null && srcType != "") {
//Handler 获取外部数据源
if (srcType == 5) {
var selectStatement = sfTable.SelectStatement;
if (plant == "CCFLow")
selectStatement = basePath + "/DataUser/SFTableHandler.ashx" + selectStatement;
else
selectStatement = basePath + "/DataUser/SFTableHandler" + selectStatement;
operdata = DBAccess.RunDBSrc(selectStatement, 1);
}
//JavaScript获取外部数据源
if (srcType == 6) {
operdata = DBAccess.RunDBSrc(sfTable.FK_Val, 2);
}
frmData[uiBindKeys[i].No] = operdata;
}
}
}
//获得sys_mapdata.
var mapData = frmData["Sys_MapData"][0];
//初始化Sys_MapData
var h = mapData.FrmH;
var w = mapData.FrmW;
if (h <= 1200)
h = 1200;
// beign 设置表单标题和表单的布局
document.title = mapData.Name;
//$('#divCCForm').height(h);
//$('#topContentDiv').height(h);
$('#topContentDiv').width(w);
$('.Bar').width(w + 15);
var marginLeft = $('#topContentDiv').css('margin-left');
if (undefined == marginLeft)
marginLeft = '0px';
marginLeft = marginLeft.replace('px', '');
marginLeft = parseFloat(marginLeft.substr(0, marginLeft.length - 2)) + 50;
$('#topContentDiv i').css('left', marginLeft.toString() + 'px');
$('#CCForm').html('');
//end
// 加载JS文件 改变JS文件的加载方式 解决JS在资源中不显示的问题.
jQuery.getScript("../../DataUser/JSLibData/" + mapData.No + "_Self.js");
jQuery.getScript("../../DataUser/JSLibData/" + mapData.No + ".js");
//加载开发者表单的内容
//先判断DataUser/CCForm / HtmlTemplateFile / FK_MapData.htm是否存在
var filename = basePath + "/DataUser/CCForm/HtmlTemplateFile/" + mapData.No + ".htm";
var htmlobj = $.ajax({ url: filename, async: false });
var htmlContent = "";
if (htmlobj.status == 404) {
//数据库中查找
htmlContent = mapdata.HtmlTemplateFile;
} else {
htmlContent = htmlobj.responseText;
if (htmlContent == null && htmlContent == "" && htmlContent == undefined) {
htmlContent = "";
}
}
if (htmlContent == "" || htmlContent == null ) {
alert("开发者设计的表单内容丢失,请联系管理员");
return;
}
$("#CCForm").html(htmlContent);
//解析表单中的数据
//1.加载隐藏字段,设置只读,赋初始值
LoadFrmDataAndChangeEleStyle(frmData);
//2.解析控件 从表、附件、附件图片、框架、地图、签字版、父子流程
var frmDtls = frmData.Sys_MapDtl;
for (var i = 0; i < frmDtls.length;i++) {
var frmDtl = frmDtls[i];
//根据data-key获取从表元素
var element = $("Img[data-key=" + frmDtl.No + "]");
if (element.length == 0)
continue;
figure_Template_Dtl(element,frmDtl);
}
var aths = frmData.Sys_FrmAttachment;//附件
for (var i = 0; i < aths.length; i++) {
var ath = aths[i];
//根据data-key获取从表元素
var element = $("Img[data-key=" + ath.MyPK + "]");
if (element.length == 0)
continue;
figure_Template_Ath(element,ath);
}
var athImgs = frmData.Sys_FrmImgAth;//从表附件 figure_Template_Ath
for (var i = 0; i < athImgs.length; i++) {
var athImg = athImgs[i];
//根据data-key获取从表元素
var element = $("Img[data-key=" + athImg.MyPK + "]");
if (element.length == 0)
continue;
figure_Template_ImageAth(element,athImg);
}
var iframes = frmData.Sys_MapFrame;//框架
for (var i = 0; i < iframes.length; i++) {
var iframe = iframes[i];
//根据data-key获取从表元素
var element = $("Img[data-key=" + iframe.MyPK + "]");
if (element.length == 0)
continue;
figure_Template_IFrame(element, iframe);
}
if (frmData.WF_FrmNodeComponent != null && frmData.WF_FrmNodeComponent != undefined) {
var nodeComponents = frmData.WF_FrmNodeComponent[0];//节点组件
if (nodeComponents != null) {
var element = $("Img[data-key=" + nodeComponents.NodeID + "]");
if (element.length != 0)
figure_Template_FigureSubFlowDtl(nodeComponents, mapData, element);
//如果有审核组件增加审核组件的HTML
var _html = figure_Template_FigureFrmCheck(nodeComponents, mapData, frmData);
$("#CCForm").append(_html);
}
}
//3.处理下拉框级联等扩展信息(小范围多选)
AfterBindEn_DealMapExt(frmData);
ShowTextBoxNoticeInfo();
//textarea的高度自适应的设置
var textareas = $("textarea");
$.each(textareas, function (idex, item) {
autoTextarea(item);
});
}
//从表
function figure_Template_Dtl(element,frmDtl, ext) {
//$("<link href='../Comm/umeditor1.2.3-utf8/themes/default/css/umeditor.css' type = 'text/css' rel = 'stylesheet' />").appendTo("head");
//在Image元素下引入IFrame文件
var src = "";
if (frmDtl.ListShowModel == "0")
//表格模式
src = "../../CCForm/Dtl2017.htm?EnsName=" + frmDtl.No + "&RefPKVal=" + pageData.OID + "&FK_MapData=" + frmDtl.FK_MapData + "&IsReadonly=" + pageData.IsReadonly + "Version=1";
if (frmDtl.ListShowModel == "1")
//卡片模式
src = "../../CCForm/DtlCard.htm?EnsName=" + frmDtl.No + "&RefPKVal=" + pageData.OID + "&FK_MapData=" + frmDtl.FK_MapData + "&IsReadonly=" + pageData.isReadonly + "&Version=1";
var W =element.width();
var eleHtml = $("<div id='Fd" + frmDtl.No + "' style='width:" + W + "px; height:auto;' ></div>");
var eleIframe = $("<iframe class= 'Fdtl' ID = 'Dtl_" + frmDtl.No + "' src = '" + src + "' frameborder=0 style='width:" + W + "px;"
+ "height: auto; text-align: left; ' leftMargin='0' topMargin='0' scrolling=auto /></iframe>");
eleHtml.append(eleIframe);
$(element).after(eleHtml);
$(element).remove(); //移除Imge节点
}
//附件
function figure_Template_Ath(element,ath) {
var src = "../../CCForm/Ath.htm?PKVal=" + pageData.OID + "&PWorkID=" + GetQueryString("PWorkID") + "&Ath=" + ath.NoOfObj + "&FK_MapData=" + ath.FK_MapData + "&FK_FrmAttachment=" + ath.MyPK + "&IsReadonly=" + pageData.isReadonly + "&FK_Node=" + pageData.FK_Node + "&FK_Flow=" + pageData.FK_Flow;
var fid = GetQueryString("FID");
var pWorkID = GetQueryString("PWorkID");
src += "&FID=" + fid;
src += "&PWorkID=" + pWorkID;
var W = element.width();
var eleHtml = $("<div id='Fd" + ath.MyPK + "' style='width:" + W + "px; height:auto;' ></div>");
var eleIframe = $("<iframe class= 'Fdtl' ID = 'Attach_" + ath.MyPK + "' src = '" + src + "' frameborder=0 style='width:" + W + "px;"
+ "height: auto; text-align: left; ' leftMargin='0' topMargin='0' scrolling=auto /></iframe>");
eleHtml.append(eleIframe);
$(element).after(eleHtml);
$(element).remove(); //移除Imge节点
}
//图片附件
function figure_Template_ImageAth(element,frmImageAth) {
var isEdit = frmImageAth.IsEdit;
var eleHtml = $("<div></div>");
var img = $("<img class='pimg'/>");
var imgSrc = basePath + "/WF/Data/Img/LogH.PNG";
var refpkVal = pageData.OID;
//获取数据
if (pageData.FK_MapData.indexOf("ND") != -1)
imgSrc = basePath + "/DataUser/ImgAth/Data/" + frmImageAth.CtrlID + "_" + refpkVal + ".png";
else
imgSrc = basePath + "/DataUser/ImgAth/Data/" + pageData.FK_MapData + "_" + frmImageAth.CtrlID + "_" + refpkVal + ".png";
//设计属性
img.attr('id', 'Img' + frmImageAth.MyPK).attr('name', 'Img' + frmImageAth.MyPK);
img.attr("src", imgSrc).attr('onerror', "this.src='" + basePath + "/WF/Admin/CCFormDesigner/Controls/DataView/AthImg.png'");
img.css('width', element.width()).css('height', element.height()).css('padding', "0px").css('margin', "0px").css('border-width', "0px");
//不可编辑
if (isEdit == "1" && pageData.IsReadonly != 1) {
var fieldSet = $("<fieldset></fieldset>");
var length = $("<legend></legend>");
var a = $("<a></a>");
var url = basePath + "/WF/CCForm/ImgAth.htm?W=" + frmImageAth.W + "&H=" + frmImageAth.H + "&FK_MapData=" + pageData.FK_MapData + "&RefPKVal=" + refpkVal + "&CtrlID=" + frmImageAth.CtrlID;
a.attr('href', "javascript:ImgAth('" + url + "','" + frmImageAth.MyPK + "');").html("编辑");
length.css('font-style', 'inherit').css('font-weight', 'bold').css('font-size', '12px');
fieldSet.append(length);
length.append(a);
fieldSet.append(img);
eleHtml.append(fieldSet);
} else {
eleHtml.append(img);
}
$(element).after(eleHtml);
$(element).remove(); //移除Imge节点
}
//图片附件编辑
function ImgAth(url, athMyPK) {
var dgId = "iframDg";
url = url + "&s=" + Math.random();
OpenEasyUiDialog(url, dgId, '图片附件', 900, 580, 'icon-new', false, function () {
}, null, null, function () {
//关闭也切换图片
var imgSrc = $("#imgSrc").val();
if (imgSrc != null && imgSrc != "")
document.getElementById('Img' + athMyPK).setAttribute('src', imgSrc + "?t=" + Math.random());
$("#imgSrc").val("");
});
}
function getMapExt(Sys_MapExt, KeyOfEn) {
var ext = {};
for (var p in Sys_MapExt) {
if (KeyOfEn == Sys_MapExt[p].AttrOfOper) {
ext = Sys_MapExt[p];
break;
}
}
return ext;
}
//初始化框架
function figure_Template_IFrame(element,frame) {
//获取框架的类型 0 自定义URL 1 地图开发 2流程轨迹表 3流程轨迹图
var urlType = frame.UrlSrcType;
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);
//1.处理URL需要的参数
var pageParams = getQueryString();
$.each(pageParams, function (i, pageParam) {
var pageParamArr = pageParam.split('=');
url = url.replace("@" + pageParamArr[0], pageParamArr[1]);
});
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], frmData.MainTable[0][paramArr[1].substr('@WebUser.'.length)]);
else
url = url.replace(paramArr[1], frmData.MainTable[0][paramArr[1].substr(1)]);
}
}
});
}
}
//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[0];
if (gwf != null) {
var atPara = gwf.AtPara;
if (atPara != null && atPara != "") {
atPara = atPara.replace(/@/g, '&');
url = url + atPara;
}
}
}
if (urlType == 2) //轨迹表
url = "../WorkOpt/OneWork/Table.htm?FK_Node=" + pageData.FK_Node + "&FK_Flow=" + pageData.FK_Flow + "&WorkID=" + pageData.OID + "&FID=" + pageData.FID;
if (urlType == 3)//轨迹图
url = "../WorkOpt/OneWork/TimeBase.htm?FK_Node=" + pageData.FK_Node + "&FK_Flow=" + pageData.FK_Flow + "&WorkID=" + pageData.OID + "&FID=" + pageData.FID;
var eleHtml = $("<div id='Frame" + frame.MyPK + "' style='width:" + frame.W + "px; height:auto;' ></div>");
var eleIframe = $("<iframe class= 'Fdtl' ID = 'Frame_" + frame.MyPK + "' src = '" + url + "' frameborder=0 style='width:" + frame.W + "px;"
+ "height: auto; text-align: left; ' leftMargin='0' topMargin='0' scrolling=auto /></iframe>");
eleHtml.append(eleIframe);
$(element).after(eleHtml);
$(element).remove(); //移除Frame节点
}
//子流程
function figure_Template_FigureSubFlowDtl(wf_node, mapData,element) {
//@这里需要处理, 对于流程表单.
if (sta == 0 || sta == "0" || sta == undefined)
return $('');
var sta = wf_node.SFSta;
var w = wf_node.SF_W;
var src = "../WorkOpt/SubFlow.htm?s=2";
var paras = '';
paras += "&FID=" + pageData.FID;
paras += "&OID=" + pageData.OID;
paras += '&FK_Flow=' + pageData.FK_Flow;
paras += '&FK_Node=' + pageData.FK_Node;
paras += '&WorkID=' + pageData.OID;
if (sta == 2 || pageData.IsReadonly == 1)//只读
{
src += "&DoType=View";
}
else {
fwcOnload = "onload= 'WC" + wf_node.NodeID + "load();'";
$('body').append(addLoadFunction("WC" + wf_node.NodeID, "blur", "SaveDtl"));
}
src += "&r=q" + paras;
var eleHtml = $("<div id=''SubFlow" + wf_node.NodeID + "' style='width:100%; height:auto;' ></div>");
var eleIframe = $("<iframe class= 'Fdtl' ID = 'SubFlow_" + wf_node.NodeID + "' src = '" + src + "' frameborder=0 style='width:" + w + "px;"
+ "height: auto; text-align: left; ' leftMargin='0' topMargin='0' scrolling=auto /></iframe>");
eleHtml.append(eleIframe);
$(element).after(eleHtml);
$(element).remove(); //移除SubFlow节点
}
//审核组件
function figure_Template_FigureFrmCheck(wf_node, mapData, frmData) {
var sta = wf_node.FWCSta;
if (sta == 0 || sta == undefined)
return $('');
var node = frmData.WF_Node;
if (node != undefined)
node = node[0];
var frmNode = frmData.WF_FrmNode;
if (frmNode != undefined)
frmNode = frmNode[0];
if (node == null || frmNode == null)
return $('');
if (node.FormType == 5 && frmNode.IsEnableFWC == 0)
return $('');
var pos = PreaseFlowCtrls(mapData.FlowCtrls, "FrmCheck");
var x = 0, y = 0, h = 0, w = 0;
if (pos == null) {
x = wf_node.FWC_X;
y = wf_node.FWC_Y;
h = wf_node.FWC_H;
w = wf_node.FWC_W;
}
if (pos != null) {
x = parseFloat(pos.X);
y = parseFloat(pos.Y);
h = parseFloat(pos.H);
w = parseFloat(pos.W);
}
if (x <= 10)
x = 100;
if (y <= 10)
y = 100;
if (h <= 10)
h = 100;
if (w <= 10)
w = 300;
var src = "";
if (wf_node.FWCVer == 0 || wf_node.FWCVer == "" || wf_node.FWCVer == undefined)
src = "../WorkOpt/WorkCheck.htm?s=2&IsReadonly=" + GetQueryString("IsReadonly");
else
src = "../WorkOpt/WorkCheck2019.htm?s=2&IsReadonly=" + GetQueryString("IsReadonly");
var fwcOnload = "";
var paras = '';
var isReadonly = GetQueryString('IsReadonly');
if (isReadonly != "1") {
isReadonly = "0";
}
if (sta == 2)//只读
isReadonly = "1";
paras += "&FID=" + pageData["FID"];
paras += "&WorkID=" + pageData["OID"];
paras += '&FK_Flow=' + pageData.FK_Flow;
paras += '&FK_Node=' + pageData.FK_Node;
// paras += '&WorkID=' + pageData.WorkID;
if (sta == 2)//只读
{
// src += "&DoType=View";
}
else {
fwcOnload = "onload= 'WC" + wf_node.NodeID + "load();'";
$('body').append(addLoadFunction("WC" + wf_node.NodeID, "blur", "SaveDtl"));
}
src += "&r=q" + paras;
var eleHtml = '<div >' + "<iframe style='width:100%' height=" + h + 800 + "' id='FWC' src='" + src + "' frameborder=0 leftMargin='0' topMargin='0' scrolling=auto ></iframe>" + '</div>';
eleHtml = $(eleHtml);
eleHtml.css('position', 'absolute').css('top', y + 'px').css('left', x + 'px').css('width', w + 'px').css('height', h + 'px');
return eleHtml;
}
var pageData = {};
//初始化网页URL参数
function initPageParam() {
pageData.FK_Flow = GetQueryString("FK_Flow");
pageData.FK_Node = GetQueryString("FK_Node");
pageData.FID = GetQueryString("FID") == null ? 0 : GetQueryString("FID");
var oid = GetQueryString("WorkID");
if (oid == null)
oid = GetQueryString("OID");
if (oid == null)
oid = 0;
pageData.OID = oid;
pageData.Paras = GetQueryString("Paras");
var isReadonly = GetQueryString("IsReadonly");
if (isReadonly == null || isReadonly == undefined || isReadonly == "" || isReadonly == "0")
pageData.IsReadonly = 0;
else
pageData.IsReadonly = 1;
pageData.IsStartFlow = GetQueryString("IsStartFlow"); //是否是启动流程页面 即发起流程
pageData.DoType1 = GetQueryString("DoType")//View
pageData.FK_MapData = GetQueryString("FK_MapData")//View
}
//设置表单元素不可用
function setFormEleDisabled() {
//文本框等设置为不可用
$('#divCCForm textarea').attr('disabled', 'disabled');
$('#divCCForm select').attr('disabled', 'disabled');
$('#divCCForm input[type!=button]').attr('disabled', 'disabled');
}
//初始化下拉列表框的OPERATION
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;
});
$.each(enums, function (i, obj) {
operations += "<option " + (obj.IntKey == mapAttr.DefVal ? " selected='selected' " : "") + " value='" + obj.IntKey + "'>" + obj.Lab + "</option>";
});
}
return operations;
}
$.each(data, function (i, obj) {
operations += "<option " + (obj.No == defVal ? " selected='selected' " : "") + " value='" + obj.No + "'>" + obj.Name + "</option>";
});
return operations;
}
//填充默认数据
function ConvertDefVal(frmData, defVal, keyOfEn) {
//计算URL传过来的表单参数@TXB_Title=事件测试
var result = defVal;
//通过MAINTABLE返回的参数
for (var ele in frmData.MainTable[0]) {
if (keyOfEn == ele && frmData.MainTable[0] != '') {
result = frmData.MainTable[0][ele];
break;
}
}
if (result != undefined && typeof (result) == 'string') {
//result = result.replace(//g, "{").replace(//g, "}").replace(//g, ":").replace(//g, ",").replace(/【/g, "[").replace(/】/g, "]").replace(//g, ";").replace(/~/g, "'").replace(//g, "'").replace(//g, "'");
}
return result = unescape(result);
}
//获取表单数据
function getFormData(isCotainTextArea, isCotainUrlParam) {
var formss = $('#divCCForm').serialize();
var formArr = formss.split('&');
var formArrResult = [];
//获取CHECKBOX的值
$.each(formArr, function (i, ele) {
if (ele.split('=')[0].indexOf('CB_') == 0) {
if ($('#' + ele.split('=')[0] + ':checked').length == 1) {
ele = ele.split('=')[0] + '=1';
} else {
ele = ele.split('=')[0] + '=0';
}
}
if (ele.split('=')[0].indexOf('DDL_') == 0) {
var ctrlID = ele.split('=')[0];
var item = $("#" + ctrlID).find("option:selected").text();
var mystr = "TB_" + ctrlID.substring(4) + 'T=' + item;
formArrResult.push(mystr);
}
formArrResult.push(ele);
});
//获取树形结构的表单值
var combotrees = $(".easyui-combotree");
$.each(combotrees, function (i, combotree) {
var name = $(combotree).attr('id');
var tree = $('#' + name).combotree('tree');
//获取当前选中的节点
var data = tree.tree('getSelected');
if (data != null) {
formArrResult.push(name + '=' + data.id);
formArrResult.push(name + 'T=' + data.text);
}
});
//获取表单中禁用的表单元素的值
var disabledEles = $('#divCCForm :disabled');
$.each(disabledEles, function (i, disabledEle) {
var name = $(disabledEle).attr('name');
switch (disabledEle.tagName.toUpperCase()) {
case "INPUT":
switch (disabledEle.type.toUpperCase()) {
case "CHECKBOX": //复选框
formArrResult.push(name + '=' + ($(disabledEle).is(':checked') ? 1 : 0));
break;
case "TEXT": //文本框
case "HIDDEN":
formArrResult.push(name + '=' + $(disabledEle).val());
break;
case "RADIO": //单选钮
var eleResult = name + '=' + $('[name="' + name + ':checked"]').val();
if (!$.inArray(formArrResult, eleResult)) {
formArrResult.push();
}
break;
}
break;
//下拉框
case "SELECT":
formArrResult.push(name + '=' + $(disabledEle).children('option:checked').val());
break;
//文本区域
case "TEXTAREA":
formArrResult.push(name + '=' + $(disabledEle).val());
break;
}
});
if (!isCotainTextArea) {
formArrResult = $.grep(formArrResult, function (value) {
return value.split('=').length == 2 ? value.split('=')[1].length <= 50 : true;
});
}
formss = formArrResult.join('&');
var dataArr = [];
//加上URL中的参数
if (pageData != undefined && isCotainUrlParam) {
var pageDataArr = [];
for (var data in pageData) {
pageDataArr.push(data + '=' + pageData[data]);
}
dataArr.push(pageDataArr.join('&'));
}
if (formss != '')
dataArr.push(formss);
var formData = dataArr.join('&');
//为了复选框 合并一下值 复选框的值以 ,号分割
//用& 符号截取数据
var formDataArr = formData.split('&');
var formDataResultObj = {};
$.each(formDataArr, function (i, formDataObj) {
//计算出等号的INDEX
var indexOfEqual = formDataObj.indexOf('=');
var objectKey = formDataObj.substr(0, indexOfEqual);
var objectValue = formDataObj.substr(indexOfEqual + 1);
if (formDataResultObj[objectKey] == undefined) {
formDataResultObj[objectKey] = objectValue;
} else {
formDataResultObj[objectKey] = formDataResultObj[objectKey] + ',' + objectValue;
}
});
var formdataResultStr = '';
for (var ele in formDataResultObj) {
formdataResultStr = formdataResultStr + ele + '=' + formDataResultObj[ele] + '&';
}
return formdataResultStr;
}
//根据下拉框选定的值,弹出提示信息 绑定那个元素显示,哪个元素不显示
function ShowNoticeInfo() {
var rbs = frmData.Sys_FrmRB;
data = rbs;
$("input[type=radio],select").bind('change', function (obj) {
var needShowDDLids = [];
var methodVal = obj.target.value;
for (var j = 0; j < data.length; j++) {
var value = data[j].IntKey;
var noticeInfo = data[j].Tip;
var drdlColName = data[j].KeyOfEn;
if (obj.target.tagName == "SELECT") {
drdlColName = 'DDL_' + drdlColName;
} else {
drdlColName = 'RB_' + drdlColName;
}
//if (methodVal == value && obj.target.name.indexOf(drdlColName) == (obj.target.name.length - drdlColName.length)) {
if (methodVal == value && (obj.target.name == drdlColName)) {
//高级JS设置; 设置表单字段的 可用 可见 不可用
var fieldConfig = data[j].FieldsCfg;
var fieldConfigArr = fieldConfig.split('@');
for (var k = 0; k < fieldConfigArr.length; k++) {
var fieldCon = fieldConfigArr[k];
if (fieldCon != '' && fieldCon.split('=').length == 2) {
var fieldConArr = fieldCon.split('=');
var ele = $('[name$=' + fieldConArr[0] + ']');
if (ele.length == 0) {
continue;
}
var labDiv = undefined;
var eleDiv = undefined;
if (ele.css('display').toUpperCase() == "NONE") {
continue;
}
if (ele.parent().attr('class').indexOf('input-group') >= 0) {
labDiv = ele.parent().parent().prev();
eleDiv = ele.parent().parent();
} else {
labDiv = ele.parent().prev();
eleDiv = ele.parent();
}
switch (fieldConArr[1]) {
case "1": //可用
if (labDiv.css('display').toUpperCase() == "NONE" && ele[0].id.indexOf('DDL_') == 0) {
needShowDDLids.push(ele[0].id);
}
labDiv.css('display', 'block');
eleDiv.css('display', 'block');
ele.removeAttr('disabled');
break;
case "2": //可见
if (labDiv.css('display').toUpperCase() == "NONE" && ele[0].id.indexOf('DDL_') == 0) {
needShowDDLids.push(ele[0].id);
}
labDiv.css('display', 'block');
eleDiv.css('display', 'block');
break;
case "3": //不可见
labDiv.css('display', 'none');
eleDiv.css('display', 'none');
break;
}
}
}
//根据下拉列表的值选择弹出提示信息
if (noticeInfo == undefined || noticeInfo.trim() == '') {
break;
}
noticeInfo = noticeInfo.replace(/\\n/g, '<br/>')
var selectText = '';
if (obj.target.tagName.toUpperCase() == 'INPUT' && obj.target.type.toUpperCase() == 'RADIO') {//radio button
selectText = obj.target.nextSibling.textContent;
} else {//select
selectText = $(obj.target).find("option:selected").text();
}
$($('#div_NoticeInfo .popover-title span')[0]).text(selectText);
$('#div_NoticeInfo .popover-content').html(noticeInfo);
var top = obj.target.offsetHeight;
var left = obj.target.offsetLeft;
var current = obj.target.offsetParent;
while (current !== null) {
left += current.offsetLeft;
top += current.offsetTop;
current = current.offsetParent;
}
if (obj.target.tagName.toUpperCase() == 'INPUT' && obj.target.type.toUpperCase() == 'RADIO') {//radio button
left = left - 40;
top = top + 10;
}
if (top - $('#div_NoticeInfo').height() - 30 < 0) {
//让提示框在下方展示
$('#div_NoticeInfo').removeClass('top');
$('#div_NoticeInfo').addClass('bottom');
top = top;
} else {
$('#div_NoticeInfo').removeClass('bottom');
$('#div_NoticeInfo').addClass('top');
top = top - $('#div_NoticeInfo').height() - 30;
}
$('#div_NoticeInfo').css('top', top);
$('#div_NoticeInfo').css('left', left);
$('#div_NoticeInfo').css('display', 'block');
//$("#btnNoticeInfo").popover('show');
//$('#btnNoticeInfo').trigger('click');
break;
}
}
$.each(needShowDDLids, function (i, ddlId) {
$('#' + ddlId).change();
});
});
$('#span_CloseNoticeInfo').bind('click', function () {
$('#div_NoticeInfo').css('display', 'none');
})
$("input[type=radio]:checked,select").change();
$('#span_CloseNoticeInfo').click();
}
//给出文本框输入提示信息
function ShowTextBoxNoticeInfo() {
var mapAttr = frmData.Sys_MapAttr;
mapAttr = $.grep(mapAttr, function (attr) {
var atParams = attr.AtPara;
return atParams != undefined && AtParaToJson(atParams).Tip != undefined && AtParaToJson(atParams).Tip != '' && $('#TB_' + attr.KeyOfEn).length > 0 && $('#TB_' + attr.KeyOfEn).css('display') != 'none';
})
$.each(mapAttr, function (i, attr) {
$('#TB_' + attr.KeyOfEn).bind('focus', function (obj) {
var frmData = JSON.parse(jsonStr);
var mapAttr = frmData.Sys_MapAttr;
mapAttr = $.grep(mapAttr, function (attr) {
return 'TB_' + attr.KeyOfEn == obj.target.id;
})
var atParams = AtParaToJson(mapAttr[0].AtPara);
var noticeInfo = atParams.Tip;
if (noticeInfo == undefined || noticeInfo == '')
return;
//noticeInfo = noticeInfo.replace(/\\n/g, '<br/>')
$($('#div_NoticeInfo .popover-title span')[0]).text(mapAttr[0].Name);
$('#div_NoticeInfo .popover-content').html(noticeInfo);
var top = obj.target.offsetHeight;
var left = obj.target.offsetLeft;
var current = obj.target.offsetParent;
while (current !== null) {
left += current.offsetLeft;
top += current.offsetTop;
current = current.offsetParent;
}
if (top - $('#div_NoticeInfo').height() - 30 < 0) {
//让提示框在下方展示
$('#div_NoticeInfo').removeClass('top');
$('#div_NoticeInfo').addClass('bottom');
top = top;
} else {
$('#div_NoticeInfo').removeClass('bottom');
$('#div_NoticeInfo').addClass('top');
top = top - $('#div_NoticeInfo').height() - 30;
}
$('#div_NoticeInfo').css('top', top);
$('#div_NoticeInfo').css('left', left);
$('#div_NoticeInfo').css('display', 'block');
});
})
}
//必填项检查 名称最后是*号的必填 如果是选择框,值为'' 或者 显示值为 【*请选择】都算为未填 返回FALSE 检查必填项失败
function CheckBlanks() {
var checkBlankResult = true;
//获取所有的列名 找到带* 的LABEL mustInput
//var lbs = $('[class*=col-md-1] label:contains(*)');
var lbs = $('.mustInput');
$.each(lbs, function (i, obj) {
if ($(obj).parent().css('display') != 'none' && $(obj).parent().next().css('display')) {
var keyofen = $(obj).data().keyofen
var ele = $('[id$=_' + keyofen + ']');
if (ele.length == 0)
return;
$.each(ele, function (i, obj) {
var eleM = $(obj);
switch (eleM[0].tagName.toUpperCase()) {
case "INPUT":
if (eleM.attr('type') == "text") {
if (eleM.val() == "") {
checkBlankResult = false;
eleM.addClass('errorInput');
} else {
eleM.removeClass('errorInput');
}
}
break;
case "SELECT":
if (eleM.val() == "" || eleM.children('option:checked').text() == "*请选择") {
checkBlankResult = false;
eleM.addClass('errorInput');
} else {
eleM.removeClass('errorInput');
}
break;
case "TEXTAREA":
if (eleM.val() == "") {
checkBlankResult = false;
eleM.addClass('errorInput');
} else {
eleM.removeClass('errorInput');
}
break;
}
});
}
});
return checkBlankResult;
}
//正则表达式检查
function CheckReg() {
var CheckRegResult = true;
var regInputs = $('.CheckRegInput');
$.each(regInputs, function (i, obj) {
var name = obj.name;
var mapExtData = $(obj).data();
if (mapExtData.Doc != undefined) {
var regDoc = mapExtData.Doc.replace(/【/g, '[').replace(/】/g, ']').replace(//g, '(').replace(//g, ')').replace(//g, '{').replace(//g, '}').replace(//g, ',');
var tag1 = mapExtData.Tag1;
if ($(obj).val() != undefined && $(obj).val() != '') {
var result = CheckRegInput(name, regDoc, tag1);
if (!result) {
$(obj).addClass('errorInput');
CheckRegResult = false;
} else {
$(obj).removeClass('errorInput');
}
}
}
});
return CheckRegResult;
}
//双击签名
function figure_Template_Siganture(SigantureID, val, type) {
//先判断,是否存在签名图片
var handler = new HttpHandler("BP.WF.HttpHandler.WF");
handler.AddPara('no', val);
data = handler.DoMethodReturnString("HasSealPic");
//如果不存在,就显示当前人的姓名
if (data.length > 0 && type == 0) {
$("#TB_" + SigantureID).before(data);
var obj = document.getElementById("Img" + SigantureID);
var impParent = obj.parentNode; //获取img的父对象
impParent.removeChild(obj);
}
else {
var src = '/DataUser/Siganture/' + val + '.jpg'; //新图片地址
document.getElementById("Img" + SigantureID).src = src;
}
isSigantureChecked = true;
var sealData = new Entities("BP.Tools.WFSealDatas");
sealData.Retrieve("OID", GetQueryString("WorkID"), "FK_Node", GetQueryString("FK_Node"), "SealData", GetQueryString("UserNo"));
if (sealData.length > 0) {
return;
}
else {
sealData = new Entity("BP.Tools.WFSealData");
sealData.MyPK = GetQueryString("WorkID") + "_" + GetQueryString("FK_Node") + "_" + val;
sealData.OID = GetQueryString("WorkID");
sealData.FK_Node = GetQueryString("FK_Node");
sealData.SealData = val;
sealData.Insert();
}
}
//签字板
function figure_Template_HandWrite(HandWriteID, val) {
var url = basePath+ "/WF/CCForm/HandWriting.htm?WorkID=" + pageData.OID + "&FK_Node=" + pageData.FK_Node + "&KeyOfEn=" + HandWriteID;
OpenEasyUiDialogExt(url, '签字板', 400, 300, false);
}
//地图
function figure_Template_Map(MapID, UIIsEnable) {
var mainTable = frmData.MainTable[0];
var AtPara = "";
//通过MAINTABLE返回的参数
for (var ele in mainTable) {
if (ele == "AtPara" && mainTable != '') {
AtPara = mainTable[ele];
break;
}
}
var url = basePath + "/WF/CCForm/Map.htm?WorkID=" + pageData.WorkID + "&FK_Node=" + pageData.FK_Node + "&KeyOfEn=" + MapID + "&UIIsEnable=" + UIIsEnable + "&Paras=" + AtPara;
OpenBootStrapModal(url, "eudlgframe", "地图", 800, 500, null, false, function () { }, null, function () {
});
}
function setHandWriteSrc(HandWriteID, imagePath) {
imagePath = "../../" + imagePath.substring(imagePath.indexOf("DataUser"));
document.getElementById("Img" + HandWriteID).src = "";
$("#Img" + HandWriteID).attr("src", imagePath);
// document.getElementById("Img" + HandWriteID).src = imagePath;
$("#TB_" + HandWriteID).val(imagePath);
$('#eudlg').dialog('close');
}