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.

1024 lines
42 KiB
Plaintext

11 months ago
/**
* 开发者表单的解析
* @param {any} mapData 表单属性
* @param {any} fk_mapData 表单数据
*/
var currentURL = GetHrefUrl();
var frmData;
function GenerDevelopFrm(wn, fk_mapData) {
frmData = wn;
$('head').append('<style type="text/css"> .form-control{display: inline; }</style >');
var htmlContent = "";
//数据库中查找
var handler = new HttpHandler("BP.WF.HttpHandler.WF_Admin_DevelopDesigner");
handler.AddPara("FK_MapData", fk_mapData);
htmlContent = handler.DoMethodReturnString("Designer_Init");
if (htmlContent == "") {
alert("开发者设计的表单内容丢失,请联系管理员");
return;
}
if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1) {
htmlContent = htmlContent.replace(new RegExp("../../../", 'gm'), "../../");
} else if (currentURL.indexOf("AdminFrm.htm") != -1) {
//不做替换
} else {
htmlContent = htmlContent.replace(new RegExp("../../../", 'gm'), "../");
}
$("#CCForm").html(htmlContent);
//解析表单中的数据
//1.加载隐藏字段,
var mapAttrs = frmData.Sys_MapAttr;
var html = "";
for (var i = 0; i < mapAttrs.length; i++) {
var mapAttr = mapAttrs[i];
if (mapAttr.UIVisible == 0) {
$("#TB_" + mapAttr.KeyOfEn).hide();
$("#DDL_" + mapAttr.KeyOfEn).hide();
$("input[name=CB_" + mapAttr.KeyOfEn + "]").hide();
$("input[name=RB_" + mapAttr.KeyOfEn + "]").hide();
continue;
}
//必填属性
if (mapAttr.UIIsEnable == 1 && mapAttr.UIIsInput) {
var mustInput = "<span style='color:red' class='mustInput' data-keyofen='" + mapAttr.KeyOfEn + "' >*</span>";
$("#TB_" + mapAttr.KeyOfEn).after(mustInput);
$("#DDL_" + mapAttr.KeyOfEn).after(mustInput);
$("#CB_" + mapAttr.KeyOfEn).parent().append(mustInput);
}
//设置字段的样式属性
$('#TB_' + mapAttr.KeyOfEn).addClass(mapAttr.CSS);
$('#RB_' + mapAttr.KeyOfEn).addClass(mapAttr.CSS);
$('#DDL_' + mapAttr.KeyOfEn).addClass(mapAttr.CSS);
$('#CB_' + mapAttr.KeyOfEn).addClass(mapAttr.CSS);
if (mapAttr.AtPara && mapAttr.AtPara.indexOf("@IsRichText=1") >= 0) {
var defValue = ConvertDefVal(frmData, mapAttr.DefVal, mapAttr.KeyOfEn);
var eleHtml = "";
//如果是富文本就使用百度 UEditor
if (mapAttr.UIIsEnable == "0" || pageData.IsReadonly == "1") {
//只读状态直接 div 展示富文本内容
defValue = defValue.replace(/white-space: nowrap;/g, "");
var eleHtml= "<div class='richText' style='width:99%;margin-right:2px'>" + defValue + "</div>";
var element = $("#TB_" + mapAttr.KeyOfEn);
element.after(eleHtml);
element.remove(); //移除节点
} else {
//设置一个默认高度
if (mapAttr.UIHeight < 180) {
mapAttr.UIHeight = 180;
}
//document.BindEditorMapAttr.push(mapAttr); //存到全局备用
//设置编辑器的默认样式
var styleText = "text-align:left;font-size:12px;";
styleText += "width:100%;";
var height = parseInt(mapAttr.UIHeight) - 54;
styleText += "height:" + height + "px;";
//注意这里 name 属性是可以用来绑定表单提交时的字段名字的 id 是特殊约定的.
eleHtml += "<script class='EditorClass' id='editor_" + mapAttr.KeyOfEn + "' name='TB_" + mapAttr.KeyOfEn + "' type='text/plain' style='" + styleText + "'>" + defValue + "</script>";
var element = $("#TB_" + mapAttr.KeyOfEn);
element.after(eleHtml);
element.remove(); //移除节点
}
}
if (mapAttr.UIContralType == 14 || mapAttr.UIContralType == 15)
$('#TB_' + mapAttr.KeyOfEn).removeAttr("placeholder");
if (mapAttr.UIContralType == 17)
$('#TB_' + mapAttr.KeyOfEn).attr("placeholder", "请单击进行编辑");
//如果是时间控件
if (mapAttr.MyDataType == 6 && (mapAttr.UIIsEnable != 0 && pageData.IsReadonly != "1")) {
var frmDate = mapAttr.IsSupperText;
var dateFmt = '';
if (frmDate == 0) {
dateFmt = "yyyy-MM-dd";
} else if (frmDate == 3) {
dateFmt = "yyyy-MM";
} else if (frmDate == 6) {
dateFmt = "MM-dd";
} else if (frmDate == 7) {
dateFmt = "yyyy";
}
$('#TB_' + mapAttr.KeyOfEn).attr("onfocus", "WdatePicker({ dateFmt:'" + dateFmt + "' })");
continue;
}
if (mapAttr.MyDataType == 7 && (mapAttr.UIIsEnable != 0 && pageData.IsReadonly != "1")) {
var frmDate = mapAttr.IsSupperText;
var dateFmt = '';
if (frmDate == 1) {
dateFmt = "yyyy-MM-dd HH:mm";
} else if (frmDate == 2) {
dateFmt = "yyyy-MM-dd HH:mm:ss";
} else if (frmDate == 4) {
dateFmt = "HH:mm";
} else if (frmDate == 5) {
dateFmt = "HH:mm:ss";
}
$('#TB_' + mapAttr.KeyOfEn).attr("onfocus", "WdatePicker({ dateFmt:'" + dateFmt + "' })");
continue;
}
//数值型的字段
if (mapAttr.UIIsEnable != 0 && pageData.IsReadonly != "1"
//浮点型,双精度,整型,金额类型
&& (mapAttr.MyDataType == 5 || mapAttr.MyDataType == 3 || (mapAttr.MyDataType == 2 && mapAttr.LGType==0) || mapAttr.MyDataType == 8)) {
var obj = $("#TB_" + mapAttr.KeyOfEn);
if (mapAttr.IsSecret)
obj.attr("type", password);
var bit = 0;
var defVal = mapAttr.DefVal;
if (defVal != null && defVal !== "" && defVal.indexOf(".") >= 0)
bit = defVal.substring(defVal.indexOf(".") + 1).length;
if(bit == null || bit==undefined||bit=="")
bit = 0;
obj.attr("data-bit", bit);
obj.bind('focus', function () {
removeplaceholder(this, parseInt($(this).attr("data-bit")));
});
obj.bind('blur', function () {
addplaceholder(this, parseInt($(this).attr("data-bit")));
if (this.getAttribute("data-type") == "Money")
numberFormat(this, parseInt($(this).attr("data-bit")));
});
obj.bind('keyup', function () {
limitLength(this, parseInt($(this).attr("data-bit")));
if (this.getAttribute("data-type") == "Int")
valitationAfter(this, 'int');
if (this.getAttribute("data-type") == "Float" || this.getAttribute("data-type") == "Money")
valitationAfter(this, 'float');
});
continue;
}
//外部数据源、外键的选择列表
if ((mapAttr.LGType == "0" && mapAttr.MyDataType == "1" && mapAttr.UIContralType == 1)
|| (mapAttr.LGType == "2" && mapAttr.MyDataType == "1")) {
var _html = InitDDLOperation(frmData, mapAttr, null);
$("#DDL_" + mapAttr.KeyOfEn).empty();
$("#DDL_" + mapAttr.KeyOfEn).append(_html);
continue;
}
if (mapAttr.MyDataType == "1" && mapAttr.IsSigan == "1") {
//隐藏该字段值
$("#TB_" + mapAttr.KeyOfEn).hide();
var html = "";
var val = ConvertDefVal(frmData, mapAttr.DefVal, mapAttr.KeyOfEn);
var localHref = GetLocalWFPreHref();
if (mapAttr.UIIsEnable == 1 && pageData.IsReadonly != 0) {
//是否签过
var sealData = new Entities("BP.Tools.WFSealDatas");
sealData.Retrieve("OID", pageData.WorkID, "FK_Node", GetQueryString("FK_Node"), "SealData", GetQueryString("UserNo"));
if (sealData.length > 0) {
html = "<img src='" + localHref + "/DataUser/Siganture/" + defValue + ".jpg' alt='" + defValue +"' style='border:0px;width:100px;height:30px;' id='Img" + mapAttr.KeyOfEn + "' />";
isSigantureChecked = true;
}
else {
html = "<img src='" + localHref + "/DataUser/Siganture/siganture.jpg' ondblclick='figure_Template_Siganture(\"" + mapAttr.KeyOfEn + "\",\"" + val + "\")' style='border:0px;width:100px;height:30px;' id='Img" + mapAttr.KeyOfEn + "' />";
}
} else {
html = "<img src='" + localHref + "/DataUser/Siganture/" + val + ".jpg' alt='" + val + "' style='border:0px;width:100px;height:30px;' id='Img" + mapAttr.KeyOfEn + "' />";
}
$("#TB_" + mapAttr.KeyOfEn).after(html);
}
//为复选框高级设置绑定事件
if (mapAttr.MyDataType == 4 && mapAttr.AtPara.indexOf('@IsEnableJS=1') >= 0) {
$("#CB_" + mapAttr.KeyOfEn).attr("onchange", "clickEnable(this, \"" + mapAttr.FK_MapData + "\",\"" + mapAttr.KeyOfEn + "\",\"" + mapAttr.AtPara + "\",8)");
continue;
}
//为单选按钮高级设置绑定事件
if (mapAttr.MyDataType == 2 && mapAttr.LGType == 1) {
//枚举下拉框
if (mapAttr.UIContralType == 1) {
//重新生成枚举下拉框的值
var _html = InitDDLOperation(frmData, mapAttr, null);
$("#DDL_" + mapAttr.KeyOfEn).empty();
$("#DDL_" + mapAttr.KeyOfEn).append(_html);
//绑定事件
if (mapAttr.AtPara && mapAttr.AtPara.indexOf('@IsEnableJS=1') >= 0)
$("#DDL_" + mapAttr.KeyOfEn).attr("onchange", "changeEnable(this,\"" + mapAttr.FK_MapData + "\",\"" + mapAttr.KeyOfEn + "\",\"" + mapAttr.AtPara + "\",8)");
}
//枚举单选
if (mapAttr.UIContralType == 3) {
//重新设置单选按钮的值
var _html = "";
//显示方式,默认为横向展示.
var RBShowModel = 3;
if (mapAttr.AtPara.indexOf('@RBShowModel=0') > 0)
RBShowModel = 0;
$.each(frmData.Sys_Enum, function (i, obj) {
if (obj.EnumKey == mapAttr.UIBindKey) {
var onclickEvent = "";
if (mapAttr.AtPara && mapAttr.AtPara.indexOf('@IsEnableJS=1') >= 0) {
onclickEvent = "onchange='clickEnable( this ,\"" + mapAttr.FK_MapData + "\",\"" + mapAttr.KeyOfEn + "\",\"" + mapAttr.AtPara + "\",8)'";
}
if (RBShowModel == 3)
_html += "<label style='vertical-align:middle;'><input style='width:15px;height:15px;vertical-align:-1px;' type='radio' name='RB_" + mapAttr.KeyOfEn + "' id='RB_" + mapAttr.KeyOfEn + "_" + obj.IntKey + "' value='" + obj.IntKey + "' " + onclickEvent + " />&nbsp;" + obj.Lab + "</label>";
else
_html += "<label style='vertical-align:middle;'><input style='width:15px;height:15px;vertical-align:-1px;' type='radio' name='RB_" + mapAttr.KeyOfEn + "' id='RB_" + mapAttr.KeyOfEn + "_" + obj.IntKey + "' value='" + obj.IntKey + "' " + onclickEvent + "/>&nbsp;" + obj.Lab + "</label><br/>";
}
});
$("#SR_" + mapAttr.KeyOfEn).empty();
$("#SR_" + mapAttr.KeyOfEn).append(_html);
if (mapAttr.UIIsEnable == 1 && mapAttr.UIIsInput) {
var mustInput = "<span style='color:red' class='mustInput' data-keyofen='" + mapAttr.KeyOfEn + "' >*</span>";
$("#SR_" + mapAttr.KeyOfEn).after(mustInput);
}
}
continue;
}
//枚举多选复选框
if (mapAttr.MyDataType == "1" && mapAttr.UIContralType == "2") {
//显示方式,默认为横向展示.
var RBShowModel = 3;
if (mapAttr.AtPara.indexOf('@RBShowModel=0') > 0)
RBShowModel = 0;
var _html = "";
$.each(frmData.Sys_Enum, function (i, obj) {
if (obj.EnumKey == mapAttr.UIBindKey) {
var br = "";
if (RBShowModel == 0)
br = "<br>";
debugger
_html += "<label style='font-weight:normal;vertical-align:middle;'><input style='vertical-align:-1px;' class='mcheckbox' type=checkbox name='CB_" + mapAttr.KeyOfEn + "' id='CB_" + mapAttr.KeyOfEn + "_" + obj.IntKey + "' value='" + obj.IntKey + "' onclick='clickEnable( this ,\"" + mapAttr.FK_MapData + "\",\"" + mapAttr.KeyOfEn + "\",\"" + mapAttr.AtPara + "\")' />" + obj.Lab + " </label>&nbsp;" + br;
}
});
$("#SC_" + mapAttr.KeyOfEn).empty();
$("#SC_" + mapAttr.KeyOfEn).append(_html);
if (mapAttr.UIIsEnable == 1 && mapAttr.UIIsInput) {
var mustInput = "<span style='color:red' class='mustInput' data-keyofen='" + mapAttr.KeyOfEn + "' >*</span>";
$("#SC_" + mapAttr.KeyOfEn).after(mustInput);
}
continue;
}
if (mapAttr.MyDataType == 1) {
if (mapAttr.UIContralType == 8)//手写签字版
{
var element = $("#Img" + mapAttr.KeyOfEn);
var defValue = ConvertDefVal(frmData, mapAttr.DefVal, mapAttr.KeyOfEn);
var ondblclick = ""
if (mapAttr.UIIsEnable == 1) {
ondblclick = " ondblclick='figure_Develop_HandWrite(\"" + mapAttr.KeyOfEn + "\",\"" + defValue + "\")'";
}
var html = "<input maxlength=" + mapAttr.MaxLen + " id='TB_" + mapAttr.KeyOfEn + "' name='TB_" + mapAttr.KeyOfEn + "' value='" + defValue + "' type=hidden />";
var eleHtml = "";
if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1)
eleHtml = "<img src='" + defValue + "' " + ondblclick + " onerror=\"this.src='../../DataUser/Siganture/UnName.jpg'\" style='border:0px;width:100px;height:30px;' id='Img" + mapAttr.KeyOfEn + "' />" + html;
else if (currentURL.indexOf("AdminFrm.htm") != -1)
eleHtml = "<img src='" + defValue + "' " + ondblclick + " onerror=\"this.src='../../../DataUser/Siganture/UnName.jpg'\" style='border:0px;width:100px;height:30px;' id='Img" + mapAttr.KeyOfEn + "' />" + html;
else
eleHtml = "<img src='" + defValue + "' " + ondblclick + " onerror=\"this.src='../DataUser/Siganture/UnName.jpg'\" style='border:0px;width:100px;height:30px;' id='Img" + mapAttr.KeyOfEn + "' />" + html;
element.after(eleHtml);
element.remove(); //移除Imge节点
continue;
}
if (mapAttr.UIContralType == 4)//地图
{
var obj = $("#TB_" + mapAttr.KeyOfEn);
//获取兄弟节点
$(obj.prev()).attr("onclick", "figure_Template_Map('" + mapAttr.KeyOfEn + "','" + mapAttr.UIIsEnable + "')");
continue;
}
if (mapAttr.UIContralType == 6) {//字段附件
var _html = GetFieldAth(mapAttr);
$("#TB_" + mapAttr.KeyOfEn).hide();
$("#TB_" + mapAttr.KeyOfEn).after(_html);
continue;
}
if (mapAttr.UIContralType == 101)//评分
{
var scores = $(".simplestar");//获取评分的类
$.each(scores, function (score, idx) {
$.each($(this).children("Img"), function () {
if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1)
$(this).attr("src", $(this).attr("src").replace("../../", "../"));
else if (currentURL.indexOf("AdminFrm.htm") != -1) {
//不做处理
} else
$(this).attr("src", $(this).attr("src").replace("../../", "./"));
});
});
continue;
}
}
}
//获取版本
var ver = GetPara(frmData.MainTable[0].AtPara, "FrmVer");
ver = ver == null || ver == undefined || ver == "" ? 0 : parseInt(ver);
var mainFrmID = GetPara(frmData.Sys_MapData[0].AtPara, "MainFrmID");
var isSameVer = mainFrmID == fk_mapData ? true : false;
//2.解析控件 从表、附件、附件图片、框架、地图、签字版、父子流程
var frmDtls = frmData.Sys_MapDtl;
for (var i = 0; i < frmDtls.length; i++) {
var frmDtl = frmDtls[i];
var dtlNo = frmDtl.No;
if (isSameVer == false)
dtlNo = dtlNo.replace(fk_mapData, mainFrmID);
//根据data-key获取从表元素
var element = $("Img[data-key=" + dtlNo+ "]");
if (element.length == 0)
continue;
figure_Develop_Dtl(element, frmDtl);
}
var aths = frmData.Sys_FrmAttachment;//附件
//表格附件
$.each(aths, function (idex, ath) {
var mypk = ath.MyPK;
if (isSameVer == false)
mypk = mypk.replace(fk_mapData, mainFrmID);
var element = $("Img[data-key=" + mypk + "]");
if (element.length != 0) {
var eleHtml = $("<div id='Div_" + ath.MyPK + "' name='Ath' style=' height:auto;margin:5px 10px' ></div>");
$(element).after(eleHtml);
$(element).remove(); //移除Imge节点
AthTable_Init(ath, "Div_" + ath.MyPK);
}
});
//图片附件
var athImgs = frmData.Sys_FrmImgAth;
if (athImgs.length > 0) {
var imgSrc = "<input type='hidden' id='imgSrc'/>";
$('#CCForm').append(imgSrc);
}
for (var i = 0; i < athImgs.length; i++) {
var athImg = athImgs[i];
var mypk = athImg.MyPK;
if (isSameVer == false)
mypk = mypk.replace(fk_mapData, mainFrmID);
//根据data-key获取从表元素
var element = $("Img[data-key=" + mypk + "]");
if (element.length == 0)
continue;
figure_Develop_ImageAth(element, athImg, fk_mapData);
}
//图片
var imgs = frmData.Sys_FrmImg;
for (var i = 0; i < imgs.length; i++) {
var img = imgs[i];
var mypk = img.MyPK;
if (isSameVer == false)
mypk = mypk.replace(fk_mapData, mainFrmID);
//根据data-key获取从表元素
var element = $("Img[data-key=" + mypk + "]");
if (element.length == 0)
continue;
figure_Develop_Image(element, img);
}
var iframes = frmData.Sys_MapFrame;//框架
for (var i = 0; i < iframes.length; i++) {
var iframe = iframes[i];
var mypk = iframe.MyPK;
if (isSameVer == false)
mypk = mypk.replace(fk_mapData, mainFrmID);
//根据data-key获取从表元素
var element = $("Img[data-key=" + mypk + "]");
if (element.length == 0)
continue;
figure_Develop_IFrame(element, iframe);
}
// debugger
if (frmData.WF_FrmNodeComponent == null || frmData.WF_FrmNodeComponent == undefined) {
var element = $("Img[data-type=WorkCheck]");
if (element.length != 0)
$(element).remove();
element = $("Img[data-type=SubFlow]");
if (element.length != 0)
$(element).remove();
}
//审核组件的判断
if (frmData.WF_FrmNodeComponent != null && frmData.WF_FrmNodeComponent != undefined) {
var nodeComponents = frmData.WF_FrmNodeComponent[0];//节点组件
if (nodeComponents != null) {
var element = $("Img[data-type=WorkCheck]");
if (element.length != 0)
figure_Develop_FigureFrmCheck(nodeComponents, element, frmData);
element = $("Img[data-type=SubFlow]");
if (element.length != 0)
figure_Develop_FigureSubFlowDtl(nodeComponents, element);
//var elements = $("Img[data-key=" + nodeComponents.NodeID + "]");
//$.each(elements, function (i, element) {
// //父子流程
// if (element.getAttribute("data-type") == "SubFlow")
// figure_Develop_FigureSubFlowDtl(nodeComponents, element);
// //如果有审核组件增加审核组件的HTML
// //if (element.getAttribute("data-type") == "WorkCheck")
//})
}
}
if ($("#SubFlow").length == 1 && frmData.WF_Node!=undefined) {
Skip.addJs(ccbpmPath + "/WF/WorkOpt/SubFlow.js");
var html = SubFlow_Init(frmData.WF_Node[0]);
$("#SubFlow").html(html);
}
}
//从表
function figure_Develop_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") {
if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1)
src = "../CCForm/Dtl2017.htm"
else if (currentURL.indexOf("AdminFrm.htm") != -1)
src = "../../CCForm/Dtl2017.htm"
else
src = "./CCForm/Dtl2017.htm";
}
//表格模式
if (frmDtl.ListShowModel == "1") {
//卡片模式
if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1)
src = "../CCForm/DtlCard.htm";
else if (currentURL.indexOf("AdminFrm.htm") != -1)
src = "../../CCForm/DtlCard.htm";
else
src = "./CCForm/DtlCard.htm";
}
src += "?EnsName=" + frmDtl.No + "&RefPKVal=" + pageData.OID + "&FK_MapData=" + frmDtl.FK_MapData + "&IsReadonly=" + pageData.IsReadonly + "&Version=1&FrmType=8";
src += "&WorkID=" + pageData.OID + "&FID=" + GetQueryString("FID") + "&PWorkID=" + GetQueryString("PWorkID") + "&FK_Node=" + GetQueryString("FK_Node");
var W = element.width();
var eleHtml = $("<div id='Fd" + frmDtl.No + "' name='Dtl' style='height:auto;margin:5px 10px;border-top:1px solid #D0D0D0' ></div>");
var eleIframe = $("<iframe class= 'Fdtl' name='Dtl' ID = 'Dtl_" + frmDtl.No + "' src = '" + src + "' frameborder=0 style='width:100%; height:auto;"
+ "height: auto; text-align: left; ' leftMargin='0' topMargin='0' scrolling=auto /></iframe>");
eleHtml.append(eleIframe);
$(element).after(eleHtml);
$(element).remove(); //移除Imge节点
}
//附件
function figure_Develop_Ath(element, ath) {
var src = "";
if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1)
src = "../CCForm/Ath.htm?PKVal=" + pageData.OID;
else if (currentURL.indexOf("AdminFrm.htm") != -1)
src = "../../CCForm/Ath.htm?PKVal=" + pageData.OID;
else
src = "./CCForm/Ath.htm?PKVal=" + pageData.WorkID;
src = src + "&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();
}
//图片附件
function figure_Develop_ImageAth(element, frmImageAth, fk_mapData) {
var isEdit = frmImageAth.IsEdit;
var img = $("<img class='pimg'/>");
var imgSrc = basePath + "/WF/Data/Img/LogH.PNG";
var refpkVal = pageData.OID;
//获取数据
if (fk_mapData.indexOf("ND") != -1)
imgSrc = basePath + "/DataUser/ImgAth/Data/" + frmImageAth.CtrlID + "_" + refpkVal + ".png";
else
imgSrc = basePath + "/DataUser/ImgAth/Data/" + 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 style='display:inline'></fieldset>");
var length = $("<legend></legend>");
var a = $("<a></a>");
var url = basePath + "/WF/CCForm/ImgAth.htm?W=" + frmImageAth.W + "&H=" + frmImageAth.H + "&FK_MapData=" + 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').css('width', frmImageAth.W);
fieldSet.append(length);
length.append(a);
fieldSet.append(img);
$(element).after(fieldSet);
} else {
$(element).after(img);
}
$(element).remove(); //移除Imge节点
}
//图片附件编辑
function ImgAth(url, athMyPK) {
var dgId = "iframDg";
url = url + "&s=" + Math.random();
OpenBootStrapModal(url, dgId, '图片附件', 900, 580, 'icon-new', false, function () {
}, null, function () {
//关闭也切换图片
var imgSrc = $("#imgSrc").val();
if (imgSrc != null && imgSrc != "")
document.getElementById('Img' + athMyPK).setAttribute('src', imgSrc + "?t=" + Math.random());
$("#imgSrc").val("");
});
}
//初始化 IMAGE 只初始化了图片类型
function figure_Develop_Image(element, frmImage) {
//解析图片
if (frmImage.ImgAppType == 0) { //图片类型
//数据来源为本地.
var imgSrc = '';
if (frmImage.ImgSrcType == 0) {
//替换参数
var frmPath = frmImage.ImgPath;
frmPath = frmPath.replace('', '@');
frmPath = frmPath.replace('@basePath', basePath);
frmPath = frmPath.replace('@basePath', basePath);
imgSrc = DealJsonExp(frmData.MainTable[0], frmPath);
}
//数据来源为指定路径.
if (frmImage.ImgSrcType == 1) {
var url = frmImage.ImgURL;
url = url.replace('', '@');
url = url.replace('@basePath', basePath);
imgSrc = DealJsonExp(frmData.MainTable[0], url);
}
var errorImg = "../DataUser/ICON/CCFlow/LogBig.png";
if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1)
errorImg = "../../DataUser/ICON/CCFlow/LogBig.png";
else if (currentURL.indexOf("AdminFrm.htm") != -1)
errorImg = "../../../DataUser/ICON/CCFlow/LogBig.png";
// 由于火狐 不支持onerror 所以 判断图片是否存在放到服务器端
if (imgSrc == "" || imgSrc == null)
imgSrc = errorImg;
var a = $("<a></a>");
var img = $("<img/>")
img.attr("src", imgSrc).css('width', frmImage.W).css('height', frmImage.H).attr('onerror', "this.src='" + errorImg + "'");
if (frmImage.LinkURL != undefined && frmImage.LinkURL != '') {
a.attr('href', frmImage.LinkTarget).attr('target', frmImage.LinkTarget).css('width', frmImage.W).css('height', frmImage.H);
a.append(img);
$(element).after(a);
} else {
$(element).after(img);
}
$(element).remove(); //移除Imge节点
} else if (frmImage.ImgAppType == 3)//二维码 手机
{
} else if (frmImage.ImgAppType == 1) {//暂不解析
//电子签章 写后台
}
}
function figure_Develop_Btn(frmBtn) {
var element;
if ($("#TB_" + frmBtn.BtnID).length == 0)
return;
element = $("#TB_" + frmBtn.BtnID);
var doc = frmBtn.EventContext;
doc = doc.replace("~", "'");
var eventType = frmBtn.EventType;
if (eventType == 0) {//禁用
element.attr('disabled', 'disabled').css('background', 'gray');
} else if (eventType == 1) {//运行URL
$.each(frmData.Sys_MapAttr, function (i, obj) {
if (doc.indexOf('@' + obj.KeyOfEn) > 0) {
doc = doc.replace('@' + obj.KeyOfEn, frmData.MainTable[0][obj.KeyOfEn]);
}
});
var OID = GetQueryString("OID");
if (OID == undefined || OID == "");
OID = GetQueryString("OID");
var FK_Node = GetQueryString("FK_Node");
var FK_Flow = GetQueryString("FK_Flow");
var webUser = new WebUser();
var userNo = webUser.No;
var SID = webUser.Token;
if (SID == undefined)
SID = "";
if (doc.indexOf("?") == -1)
doc = doc + "?1=1";
doc = doc + "&OID=" + pageData.WorkID + "&FK_Node=" + FK_Node + "&FK_Flow=" + FK_Flow + "&UserNo=" + userNo + "&Token=" + SID;
element.attr('onclick', "window.open('" + doc + "')");
} else {//运行JS
if (doc.indexOf("(") == -1)
doc = doc + "()";
element.attr('onclick', doc);
}
}
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_Develop_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 || urlType == 3) {
if (urlType == 2) { //轨迹表
if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1)
url = "../WorkOpt/OneWork/Table.htm";
else
url = "./WorkOpt/OneWork/Table.htm";
}
if (urlType == 3) {//轨迹图
if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1)
url = "../WorkOpt/OneWork/TimeBase.htm";
else if (currentURL.indexOf("AdminFrm.htm") != -1)
url = "../../WorkOpt/OneWork/TimeBase.htm";
else
url = "./WorkOpt/OneWork/TimeBase.htm";
}
url = url + "?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_Develop_FigureSubFlowDtl(wf_node, element) {
Skip.addJs(ccbpmPath + "/WF/WorkOpt/SubFlow.js");
var html = SubFlow_Init(wf_node);
var eleHtml = $("<div id='SubFlow' style='width:100% height:auto;' >" + html + "</div>");
$(element).after(eleHtml);
$(element).remove(); //移除SubFlow节点
}
//审核组件
function figure_Develop_FigureFrmCheck(wf_node, element, frmData) {
var currentURL = GetHrefUrl();
//这个修改数据的位置
if (currentURL != undefined && currentURL.indexOf("AdminFrm.htm") != -1) {
$(element).remove();
return;
}
var sta = wf_node.FWCSta;
if (sta == 0 || sta == undefined) {
$(element).remove(); //移除审核组件图片
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) {
$(element).remove();
return $('');
}
if (frmNode != null && node.FormType == 5 && frmNode.IsEnableFWC == 0) {
$(element).remove();
return $('');
}
var url = "./WorkOpt/";
if (currentURL.indexOf("FrmGener.htm") != -1 || currentURL.indexOf("MyBill.htm") != -1 || currentURL.indexOf("MyDict.htm") != -1)
url = '../WorkOpt/';
else if (currentURL.indexOf("AdminFrm.htm") != -1)
url = '../../WorkOpt/';
if (wf_node.FWCSta != 0) {
if (wf_node.FWCVer == 0 || wf_node.FWCVer == "" || wf_node.FWCVer == undefined)
pageData.FWCVer = 0;
else
pageData.FWCVer = 1;
}
var eleHtml = $("<div id='WorkCheck'></div>");
$(element).after(eleHtml);
$(element).remove(); //移除SubFlow节点
}
//双击签名
function figure_Develop_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 = UserICon + val + UserIConExt; //新图片地址
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_Develop_HandWrite(HandWriteID, val) {
var url = basePath + "/WF/CCForm/HandWriting.htm?WorkID=" + pageData.OID + "&FK_Node=" + pageData.FK_Node + "&KeyOfEn=" + HandWriteID;
OpenBootStrapModal(url, "eudlgframe", '签字板', 400, 300, false);
}
//地图
function figure_Develop_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);
// $("#TB_" + HandWriteID).val(imagePath);
// $('#eudlg').dialog('close');
//}
function GetFieldAth(mapAttr) {
//获取上传附件列表的信息及权限信息
var nodeID = pageData.FK_Node;
if (nodeID == null || nodeID == undefined)
IsStartNode = 0;
else {
var no = nodeID.substring(nodeID.length - 2);
var IsStartNode = 0;
if (no == "01")
IsStartNode = 1;
}
//创建附件描述信息.
var mypk = mapAttr.MyPK;
//获取附件显示的格式
var athShowModel = GetPara(mapAttr.AtPara, "AthShowModel");
var ath = null;
var aths = frmData.Sys_FrmAttachment;
for (var i = 0; i < aths.length; i++) {
if (aths[i].MyPK == mypk) {
ath = aths[i];
break;
}
}
if (ath == null) {
// alert("没有找到附件属性,请联系管理员");
return;
}
//获取附件上传的URL
var url = "./CCForm/Ath.htm?PKVal=" + pageData.WorkID + "&FID=" + pageData.FID + "&Ath=" + noOfObj + "&FK_MapData=" + mapAttr.FK_MapData + "&FromFrm=" + mapAttr.FK_MapData + "&FK_FrmAttachment=" + mypk + "&IsStartNode=" + IsStartNode + "&IsReadOnly=" + pageData.IsReadonly + "&M=" + Math.random();
//自定义表单模式.
if (ath.AthRunModel == 2) {
url = "../DataUser/OverrideFiles/Ath.htm?PKVal=" + pageData.WorkID + "&FID=" + pageData.FID + "&Ath=" + noOfObj + "&FK_MapData=" + mapAttr.FK_MapData + "&FK_FrmAttachment=" + mypk + "&IsStartNode=" + IsStartNode + "&IsReadOnly=" + pageData.IsReadonly + "&M=" + Math.random();
}
var noOfObj = mypk.replace(mapAttr.FK_MapData + "_", "");
var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
handler.AddPara("WorkID", pageData.WorkID);
handler.AddPara("FID", pageData.FID);
handler.AddPara("FK_Node", nodeID);
handler.AddPara("FK_Flow", pageData.FK_Flow);
handler.AddPara("IsStartNode", IsStartNode);
handler.AddPara("PKVal", pageData.WorkID);
handler.AddPara("Ath", noOfObj);
handler.AddPara("FK_MapData", mapAttr.FK_MapData);
handler.AddPara("FromFrm", mapAttr.FK_MapData);
handler.AddPara("FK_FrmAttachment", mypk);
data = handler.DoMethodReturnString("Ath_Init");
if (data.indexOf('err@') == 0) {
alert(data);
return;
}
if (data.indexOf('url@') == 0) {
var url = data.replace('url@', '');
SetHref(url);
return;
}
data = JSON.parse(data);
var dbs = data["DBAths"];
var athDesc = data["AthDesc"][0];
var eleHtml = "";
if (athDesc.IsUpload == 1 || pageData.IsReadonly == 0) {
var btnHtml = "<div style='float:left'><div onclick='OpenAth(\"" + mapAttr.Name + "\",\"" + mapAttr.KeyOfEn + "\",\"" + mapAttr.MyPK + "\",\"" + mapAttr.AtPara + "\",\"" + mapAttr.FK_MapData + "\",8)'><div><div style='height: 30px;line-height: 10px;width: 82px;background-color: white!important;color: black!important;border: 1px solid black!important;font-size: 14px!important;font-weight: normal;padding: 10px;font-size: 15px;border-radius: 2px;cursor: pointer;'>上传附件</div></div></div></div>";
eleHtml += "<div style='text-align:left;padding-left:10px;display:inline' class='only-print-hidden' id='athModel_" + mapAttr.KeyOfEn + "'>" + btnHtml;
}
if (dbs.length == 0 && pageData.IsReadonly == 1) {
return eleHtml; // +"<div style='text-align:left;padding-left:10px;display:inline' id='athModel_" + mapAttr.KeyOfEn + "' class='athModel'><label>附件(0)</label></div>";
}
if (athShowModel == "" || athShowModel == 0)
return "<div style='text-align:left;padding-left:10px' id='athModel_" + mapAttr.KeyOfEn + "' data-type='0'><label >附件(" + dbs.length + ")</label></div>";
eleHtml += "<div style='text-align:left;padding-left:10px;display:inline' data-type='1'>";
var workid = GetQueryString("WorkID");
for (var i = 0; i < dbs.length; i++) {
var db = dbs[i];
eleHtml += "<label><a style='font-weight:normal;font-size:12px' href=\"javascript:Down2018('" + db.MyPK + "','" + workid + "');\"><img src='./Img/FileType/" + db.FileExts + ".gif' />" + db.FileName + "</a></label>&nbsp;&nbsp;&nbsp;"
}
eleHtml += "</div>";
eleHtml += "</div>";
return eleHtml;
}