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.

1568 lines
62 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.

/**
* 主表中只显示从表名称,点击详情跳转的页面
*/
var Form_ReadOnly = false;
var mainData;
var gfs; //明细表分组
var dtlSize = 0; //明细表条数
var dtlmapAttrs;
var dtlMapExt;
var dtl_No;
var dtls = {};
//加载明细表数据
function Load_DtlInit(dtlDiv, dtlNo) {
dtlDiv = dtlDiv || "DtlContent";
$("#" + dtlDiv).empty();
dtl_No = dtlNo || $("#HD_CurDtl_No").val();
//获得mapdtl实体的基本信息.
var hand = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
hand.AddPara("EnsName", dtl_No);
hand.AddPara("RefPKVal", pageData.WorkID);
hand.AddPara("FK_Node", pageData.FK_Node);
hand.AddPara("IsReadonly", pageData.IsReadonly);
mainData = hand.DoMethodReturnJSON("Dtl_Init");
//获取真正含有的分组
var handler = new HttpHandler("BP.WF.HttpHandler.CCMobile_MyFlow");
handler.AddPara("FrmID", dtl_No);
gfs = handler.DoMethodReturnJSON("RetrieveFieldGroup");
//主表数据,用于变量替换.
var mainTable = mainData["MainTable"]; //主表数据.
//从表信息.
sys_MapDtl = mainData["Sys_MapDtl"][0]; //从表描述.
dtlmapAttrs = mainData["Sys_MapAttr"]; //从表字段.
dtlMapExt = mainData["Sys_MapExt"]; //扩展信息.
var dbDtl = mainData["DBDtl"]; //从表数据.
var mapDtls = mainData["MapDtls"]; //从表的从表集合.
dtlSize = dbDtl.length;
if (!$.isArray(dtls[dtl_No])) {
dtls[dtl_No] = [];
}
dtls[dtl_No].push({
No: dtl_No,
Name: sys_MapDtl.Name,
Count: dbDtl.length,
NumOfDtl: sys_MapDtl.NumOfDtl
})
var _Html = "";
//判断是否有数据
if (dbDtl.length == 0) {
_Html = "<div class='mui-indexed-list-inner empty'>";
_Html += " <div class='mui-indexed-list-empty-alert'>没有数据</div>";
_Html += "</div>";
}
Form_ReadOnly = pageData.IsReadonly == "1" ? true : false;
if (Form_ReadOnly == false && sys_MapDtl.IsReadonly == "1")
Form_ReadOnly = true;
//加载表单元素\数据
var dtl_Idx = 1;
for (var j = 0; j < dbDtl.length; j++) {
_Html += "<ul class='mui-table-view'>";
_Html += " <li class='mui-table-view-divider'>明细:" + dtl_Idx;
if (sys_MapDtl.IsDelete == "1") {
_Html += " <div class='dtl_deleterow' id='" + dbDtl[j].OID + "' data-info='" + dtl_No + "' data-div='" + dtlDiv +"'>删除</div>";
}
_Html += " </li>";
//循环分组
for (var g = 0; g < gfs.length; g++) {
//收个分组标签不进行添加
if (g != 0 && gfs[g].CtrlType != 'Ath') {
_Html += "<div class=\"mui-table-view-divider\"><h5 style='color:black;'>" + gfs[g].Lab + "</h5></div>";
}
//明细表的控件.
if (gfs[g].CtrlType == 'Dtl') {
if (mapDtls) {
$.each(mapDtls, function (i, dtl) {
if (gfs[g].CtrlID == dtl.No) {
var func = "DtlChild_ShowPage(\"" + dtl.No + "\",\"" + dtl.Name + "\",\"" + dbDtl[j].OID + "\")";
_Html += "<div class='mui-table-view-cell'>";
_Html += " <a class='mui-navigate-right' data-title-type='native' href='javascript:" + func + "'><h5>" + dtl.Name
+ "<span id='" + dtl.No + "_Count'></span></h5>";
_Html += " <p>点击查看详细</p>";
_Html += " </a>";
_Html += "</div>";
}
});
}
continue;
}
if (gfs[g].CtrlType == 'Ath') {
_Html += InitAth(frmData, gfs[g],false, mainData, 1, dbDtl[j].OID);
continue;
}
//字段生成
var OID = dbDtl[j].OID;
for (var k = 0; k < dtlmapAttrs.length; k++) {
if (dtlmapAttrs[k].UIVisible == "0") {
_Html += "<input type='hidden' id='TB_" + dtlmapAttrs[k].KeyOfEn + "_" + OID + "' name='TB_" + dtlmapAttrs[k].KeyOfEn + "_" + OID + "' value='" + dbDtl[j][dtlmapAttrs[k].KeyOfEn] + "' />";
continue;
}
if (dtlmapAttrs[k].KeyOfEn == "OID") {
_Html += "<input type='hidden' id='TB_" + dtlmapAttrs[k].KeyOfEn + "_" + OID + "' name='TB_" + dtlmapAttrs[k].KeyOfEn + "_" + OID + "' value='" + dbDtl[j][dtlmapAttrs[k].KeyOfEn] + "' />";
continue;
}
var transControl = new TranseDtlControl(dtlmapAttrs[k], dbDtl[j]);
_Html += transControl.To_Html();
}
}
_Html += "</ul>";
dtl_Idx++;
}
//启用新增按钮
if (Form_ReadOnly == false && sys_MapDtl.IsInsert == "1") {
_Html += "<ul class='mui-table-view' id='AddInfo'>";
_Html += "<li class='mui-table-view-cell'>";
_Html += " <div class='dtl_addpanel'>";
_Html += " <a data-info='" + dtl_No +"' data-div='"+dtlDiv+"'><b class='dtl_addpanel_b'>+</b> 增加" + sys_MapDtl.Name + "明细</a>";
_Html += " </div>";
_Html += "</li>";
_Html += "</ul>";
}
//添加保存按钮
if (Form_ReadOnly == false && dbDtl.length > 0 && (sys_MapDtl.IsInsert == "1" || sys_MapDtl.IsUpdate == "1")) {
$("#dtlDone").html("提交");
$("#dtlDone").off("tap").on("tap", function () {
if (checkDtlBlanks() == false) {
mui.alert("请输入必填项!");
return false;
}
$("input").blur();
var isTrue = Dtl_SaveData(dtl_No,"form_Dtl");
if (isTrue == false)
return;
viewApi.back();
mui.toast("保存成功!");
});
}
//更新明细表记录数量
//$("#" + dtl_No + "_Count").html("(" + dbDtl.length + ")条记录");
//生成页面
$("#" + dtlDiv).append(_Html);
if (mainData.Sys_FrmAttachment.length > 0) {
try {
var s = document.createElement('script');
s.type = 'text/javascript';
s.src = "/CCMobile/js/mui/js/feedback-page.js";
var tmp = document.getElementsByTagName('script')[0];
tmp.parentNode.insertBefore(s, tmp);
}
catch (err) {
}
}
if (pageData.IsReadonly == "1") {
setDtlFormEleDisabled((dtlDiv == "DtlContent" ? "form_Dtl" : dtlNo + "form_Dtl"))
}
//解析扩展设置,MapExt
for (var y = 0; y < dbDtl.length; y++) {
AfterBindDtl_DealMapExt(dbDtl[y].OID);
}
if (Form_ReadOnly == false && dbDtl.length > 0 && (sys_MapDtl.IsInsert == "1" || sys_MapDtl.IsUpdate == "1")) {
//日期控件
mui(".mui-input-row").off("tap").on("tap", ".ccformdatedtl", function () {
var dDate = new Date();
var optionsJson = this.getAttribute('data-options') || '{}';
var ctrID = this.getAttribute('id');
var options = JSON.parse(optionsJson);
var picker = new mui.DtPicker(options);
picker.show(function (rs) {
var timestr = rs.text;
$("#" + ctrID).html(timestr);
$("#TB_" + ctrID.substr(4)).val(timestr);
picker.dispose();
});
});
}
//添加行事件
$("#"+dtlDiv+" .dtl_addpanel a").on("click", function () {
//先保存后新增行
var dtlNo = $(this).attr("data-info");
var dtlDivID = $(this).attr("data-div");
var isTrue = Dtl_SaveData(dtlNo, (dtlDivID == "DtlContent" ? "form_Dtl" : dtlNo + "form_Dtl"));
if (isTrue == false)
return;
Dtl_InsertRow(dtlNo);
Load_DtlInit(dtlDivID, dtlNo);
});
//删除事件
$("#" + dtlDiv +" .dtl_deleterow").on("click", function () {
var target = $(this);
var oid = target.attr("id");
var dtlNo = $(this).attr("data-info");
var dtlDivID = $(this).attr("data-div");
//先保存后删除行
var isTrue = Dtl_SaveData(dtlNo, (dtlDivID == "DtlContent" ? "form_Dtl" : dtlNo + "form_Dtl"));
if (isTrue == false)
return;
Dtl_DeleteByOID(oid, dtlDivID, dtlNo);
});
mui(".mui-switch").switch();
//监听开关事件
var SW = $('.mui-switch');
$.each(SW, function (i, obj) {
var KeyOfEn = $(obj).attr("id");
document.getElementById(KeyOfEn).addEventListener("toggle", function (event) {
KeyOfEn = KeyOfEn.substring(3);
if (event.detail.isActive) {
$("#CB_" + KeyOfEn).val("1");
} else {
$("#CB_" + KeyOfEn).val("0");
}
})
})
//var numInputs = $(".minMax");
//$.each(numInputs, function (i, obj) {
// $(obj).bind("input", function () {
// NumEnterLimit($(this));
// })
//})
parentStatistics(dtlNo);
mui('.mui-numbox').numbox();
}
function setDtlFormEleDisabled(formID) {
//文本框等设置为不可用
$('#'+formID+' li textarea').attr('disabled', 'disabled');
$('#'+ formID +' li select').attr('disabled', 'disabled');
$('#'+ formID +' li input[type!=button]').attr('disabled', 'disabled');
}
//根据从表字段计算主表的和
function parentStatistics(dtlNo) {
if (detailExt != undefined && $.isArray(detailExt[dtlNo])) {
$.each(detailExt[dtlNo], function (i, extObj) {
var exp = extObj.exp;
var name = extObj.DtlColumn;
var obj = $(":input[name^=TB_" + name + "_]");
if (obj.length == 0)
obj = $(":input[name^=RB_" + name + "_]");
if (obj.length == 0)
obj = $(":input[name^=DDL_" + name + "_]");
if (obj.length == 0)
obj = $(":input[name^=CB_" + name + "_]");
var template = $("#TB_" + extObj.AttrOfOper);
var DXTemplate = $("#TB_" + extObj.DaXieAttrOfOper);
var expVal = 0;
if (exp == "Sum") { // 和
var sum = 0;
//判断值是否含有小数
var flag = false;
obj.each(function (i, e) {
var val = $(e).val();
val = val.replace(/,/g, "");
val = val.replace(/¥/g, "");
sum += parseFloat(val);
if ($(e).val().indexOf('.') >= 0)
flag = true;
});
if (flag) {
if (!/\./.test(sum))
sum += '.00';
//防止出现相加小数位数不正确的情况
parseFloat(sum).toFixed(2);
}
expVal = sum;
//sum = formatNumber(sum, 2, ',');
template.val(sum);
} else if (exp == "Avg") { // 平均数
var sum = 0;
var count = 0;
obj.each(function (i, e) {
var val = $(e).val();
val = val.replace(/,/g, "");
val = val.replace(/¥/g, "");
sum += parseFloat(val);
count++;
});
if (count > 0) {
expVal = sum / count;
var avg = formatNumber(sum / count, 2, ',');
template.val(avg);
}
} else if (exp == "Max") { // 最大
var max = null;
obj.each(function (i, e) {
var val = $(e).val();
val = val.replace(/,/g, "");
val = val.replace(/¥/g, "");
var value = parseFloat(val);
if (max == null) {
max = value;
} else if (value > max) {
max = value;
}
});
expVal = max;
max = formatNumber(max, 2, ',');
template.val(max);
} else if (exp == "Min") { // 最小
var min = null;
obj.each(function (i, e) {
var val = $(e).val();
val = val.replace(/,/g, "");
val = val.replace(/¥/g, "");
var value = parseFloat(val);
if (min == null) {
min = value;
} else if (value < min) {
min = value;
}
});
expVal = min;
min = formatNumber(min, 2, ',');
template.val(min);
}
template.trigger("change");
if (DXTemplate.length == 1)
DXTemplate.val(Rmb2DaXie(expVal));
if (extObj.Tag == "1")
DBAccess.RunFunctionReturnStr(extObj.Tag1);
});
}
}
function checkDtlBlanks(dtlNo) {
var checkBlankResult = true;
//获取所有的列名 找到带* 的LABEL mustInput
var lbs = $('#' + dtlNo+' .mustInput');
$.each(lbs, function (i, obj) {
var parentObj = $(obj).parent().parent();
if (parentObj && parentObj.css('display') != 'none') {
var keyOfEn = obj.id;
if (keyOfEn != null) {
var item = $("#" + keyOfEn);
if (item.length == 0)
return true;
if (keyOfEn.indexOf("TB_") == 0) {
if (item.val() == "") {
checkBlankResult = false;
item.addClass('errorInput');
} else {
item.removeClass('errorInput');
}
return true;
}
if (keyOfEn.indexOf("DDL_") == 0) {
if (item.val() == "" || item.val() == -1 || item.children('option:checked').text() == "*请选择") {
checkBlankResult = false;
item.addClass('errorInput');
} else {
item.removeClass('errorInput');
}
return true;
}
}
}
});
return checkBlankResult;
}
//保存数据
function Dtl_SaveData(dtlNo,formID) {
if ($(".compareClass").length > 0)
return false;
//必填项和正则表达式检查.
if (checkDtlBlanks(dtlNo) == false) {
mui.alert("请输入必填项!");
return false;
}
var urlExt = urlExtFrm();
var args = new RequestArgs();
//var dtl_No = $("#HD_CurDtl_No").val();
var url = GetHrefUrl();
if (url.indexOf('/jflow-web/') >= 0) {
var index = url.indexOf('/jflow-web');
url = url.substring(index);
}
var handler = new HttpHandler("BP.WF.HttpHandler.CCMobile_CCForm");
handler.AddPara("EnsName", dtlNo);
handler.AddPara("RefPKVal", pageData.WorkID);
handler.AddUrlData();
var params = getFormData(true, true, formID, true);
handler.AddJson(params);
var data = handler.DoMethodReturnString("Dtl_SaveRow");
if (data.indexOf("err@") == 0) {
mui.toast(data);
return;
}
parentStatistics(dtlNo);
return true;
}
//添加行
function Dtl_InsertRow(dtlNo) {
var args = new RequestArgs();
var dtl = new Entity(dtlNo);
dtl.RefPK = args.WorkID;
dtl.FID = args.FID;
dtl = dtl.Insert();
//$.each(dtlmapAttrs, function (item) {
// dtl[item.KeyOfEn] = GetValByDefVal(dtl[item.KeyOfEn], item);
//});
//dtl.Update();
Load_DtlForm(dtl);
parentStatistics(dtlNo);
}
/**
* 默认值的转化
* @param defVal 默认值
* @param attr 字段属性
*/
function GetValByDefVal(defVal, attr) {
switch (defVal) {
case "@WebUser.No":
case "@CurrWorker":
return webUser.No;
case "@WebUser.Name":
return webUser.Name;
case "@WebUser.FK_Dept":
return webUser.FK_Dept;
case "@WebUser.FK_DeptName":
return webUser.FK_DeptName;
case "@WebUser.FK_DeptNameOfFull":
case "@WebUser.FK_DeptFullName":
return webUser.FK_DeptNameOfFull;
case "@WebUser.OrgNo":
return webUser.OrgNo;
case "@WebUser.OrgName":
return webUser.OrgName;
case "@RDT":
var dataFormat = "yyyy-MM-dd";
switch (attr.IsSupperText) {
case 0: break;
case 1:
dataFormat = "yyyy-MM-dd HH:mm";
break;
case 2:
dataFormat = "yyyy-MM-dd HH:mm:ss";
break;
case 3:
dataFormat = "yyyy-MM";
break;
case 4:
dataFormat = "HH:mm";
break;
case 5:
dataFormat = "HH:mm:ss";
break;
case 6:
dataFormat = "MM-dd";
break;
case 7:
dataFormat = "yyyy";
break;
default:
alert("没有找到指定的时间类型");
return;
}
return FormatDate(new Date(), dataFormat);
case "@FK_ND":
return FormatDate(new Date(), "yyyy-MM");
case "@yyyy年MM月dd日":
case "@yyyy年MM月dd日HH时mm分":
case "@yy年MM月dd日":
case "@yy年MM月dd日HH时mm分":
case "@yyyy-MM-dd":
return FormatDate(new Date(), defVal.replace("@", ""));
default:
return defVal;
}
}
function Load_DtlForm(dbDtl) {
var _Html = "";
var index = parseInt(dtlSize) + 1;
_Html += "<ul class='mui-table-view'>";
_Html += " <li class='mui-table-view-divider'>明细:" + index;
_Html += " </li>";
//循环分组
for (var g = 0; g < gfs.length; g++) {
//收个分组标签不进行添加
if (g != 0) {
_Html += "<div class=\"mui-table-view-divider\"><h5 style='color:black;'>" + gfs[g].Lab + "</h5></div>";
}
//明细表的控件.
if (gfs[g].CtrlType == 'Dtl') {
continue;
}
//字段生成
for (var k = 0; k < dtlmapAttrs.length; k++) {
// if (sys_mapAttr[k].GroupID != gfs[g].OID)
// continue;
if (dtlmapAttrs[k].UIVisible == "0")
continue;
if (dtlmapAttrs[k].KeyOfEn == "OID")
continue;
var transControl = new TranseDtlControl(dtlmapAttrs[k], dbDtl);
_Html += transControl.To_Html();
}
}
_Html += "</ul>";
$(_Html).appendTo('#DtlContent');
AfterBindDtl_DealMapExt(dbDtl.OID);
}
//删除记录通过主键OID
function Dtl_DeleteByOID(oid, dtlDiv,dtlNo) {
var btnArray = ['否', '是'];
mui.confirm('确定要删除所选记录吗?', '提示', btnArray, function (e) {
if (e.index == 1) {
var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
handler.AddPara("FK_MapDtl", dtlNo);
handler.AddPara("OID", oid);
handler.DoMethodReturnString("Dtl_DeleteRow");
Load_DtlInit(dtlDiv,dtlNo);
}
});
}
//打开明细表的明细表
function DtlChild_ShowPage(dtlNo, dtlName, OID) {
$("#HD_CurChildDtl_No").val(dtlNo);
$("#HD_CurDtl_OID").val(OID);
$("#frmChildDtlTitle").html(dtlName);
Load_ChildDtlForm();
viewApi.go("#frmChildDtl");
}
//加载明细表的字表数据
function Load_ChildDtlForm() {
var cdtl_No = $("#HD_CurChildDtl_No").val();
$("#ChildDtlContent").empty();
var OID = $("#HD_CurDtl_OID").val();
var args = new RequestArgs();
//获得mapdtl实体的基本信息.
var hand = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
hand.AddPara("EnsName", cdtl_No);
hand.AddPara("RefPKVal", OID);
hand.AddPara("FK_Node", args.FK_Node);
hand.AddPara("IsReadonly", args.IsReadonly);
mainData = hand.DoMethodReturnJSON("Dtl_Init");
//获取正真含有的分组
var handler = new HttpHandler("BP.WF.HttpHandler.CCMobile_MyFlow");
handler.AddPara("FK_Node", args.FK_Node);
handler.AddPara("FK_MapData", cdtl_No);
var gfs = handler.DoMethodReturnJSON("GetGroupFields");
//主表数据,用于变量替换.
var mainTable = mainData["MainTable"]; //主表数据.
//从表信息.
sys_MapDtl = mainData["Sys_MapDtl"][0]; //从表描述.
var sys_mapAttr = mainData["Sys_MapAttr"]; //从表字段.
var sys_mapExtDtl = mainData["Sys_MapExt"]; //扩展信息.
var dbDtl = mainData["DBDtl"]; //从表数据.
//var mapDtls = mainData["MapDtls"]; //从表的从表集合.
var _Html = "";
//判断是否有数据
if (dbDtl.length == 0) {
if (Form_ReadOnly == false && sys_MapDtl.Insert == "1") {
Dtl_InsertRow();
return;
}
_Html = "<div class='mui-indexed-list-inner empty'>";
_Html += " <div class='mui-indexed-list-empty-alert'>没有数据</div>";
_Html += "</div>";
} else if (Form_ReadOnly == true || (sys_MapDtl.IsInsert == "0" && sys_MapDtl.IsUpdate == "0")) {
//只读
Form_ReadOnly = true;
}
//加载表单元素\数据
var dtl_Idx = 1;
for (var j = 0; j < dbDtl.length; j++) {
_Html += "<ul class='mui-table-view'>";
_Html += " <li class='mui-table-view-divider'>明细:" + dtl_Idx;
if (sys_MapDtl.IsDelete == "1") {
_Html += " <div class='dtlchild_deleterow' id='" + dbDtl[j].OID + "'>删除</div>";
}
_Html += " </li>";
//循环分组
for (var g = 0; g < gfs.length; g++) {
//收个分组标签不进行添加
if (g != 0) {
_Html += "<div class=\"mui-table-view-divider\"><h5 style='color:black;'>" + gfs[g].Lab + "</h5></div>";
}
//明细表的控件.
if (gfs[g].CtrlType == 'Dtl') {
if (mapDtls) {
$.each(mapDtls, function (i, dtl) {
if (gfs[g].CtrlID == dtl.No) {
var func = "DtlChild_ShowPage(\"" + dtl.No + "\",\"" + dtl.Name + "\")";
_Html += "<div class='mui-table-view-cell'>";
_Html += " <a class='mui-navigate-right' data-title-type='native' href='javascript:" + func + "'><h5>" + dtl.Name
+ "<span id='" + dtl.No + "_Count'></span></h5>";
_Html += " <p>点击查看详细</p>";
_Html += " </a>";
_Html += "</div>";
}
});
}
continue;
}
//字段生成
for (var k = 0; k < sys_mapAttr.length; k++) {
if (sys_mapAttr[k].GroupID != gfs[g].OID)
continue;
if (sys_mapAttr[k].UIVisible == "0")
continue;
if (sys_mapAttr[k].KeyOfEn == "OID")
continue;
var transControl = new TranseDtlControl(sys_mapAttr[k], null);
_Html += transControl.To_Html();
}
}
_Html += "</ul>";
}
//生成页面
$("#AddInfo").before(_Html);
if (Form_ReadOnly == false && dbDtl.length > 0 && (sys_MapDtl.IsInsert == "1" || sys_MapDtl.IsUpdate == "1")) {
//日期控件
mui(".mui-input-row").off("tap").on("tap", ".ccformdatedtl", function () {
var dDate = new Date();
var optionsJson = this.getAttribute('data-options') || '{}';
var ctrID = this.getAttribute('id');
var options = JSON.parse(optionsJson);
var picker = new mui.DtPicker(options);
picker.show(function (rs) {
var timestr = rs.text;
$("#" + ctrID).html(timestr);
$("#TB_" + ctrID.substr(4)).val(timestr);
picker.dispose();
});
});
}
}
//保存子表数据
function DtlChild_SaveData(CallBack) {
var urlExt = urlExtFrm();
var args = new RequestArgs();
var dtl_No = $("#HD_CurChildDtl_No").val();
var revpk = $("#HD_CurDtl_OID").val();
var url = GetHrefUrl();
if (url.indexOf('/jflow-web/') >= 0) {
var index = url.indexOf('/jflow-web');
url = url.substring(index);
}
var ccmobile = url.substring(0, url.lastIndexOf('/') + 1) + "CCForm/ProcessRequest.do";
$("#form_ChildDtl").ajaxSubmit({
type: 'post',
url: ccmobile + "?DoType=SaveDtl&EnsName=" + dtl_No + "&RefPKVal=" + revpk,
success: function (data) {
CallBack(data);
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
mui.toast("保存失败,请检查表单!");
}
});
}
//子表添加行
function DtlChild_InsertRow() {
var dtl_No = $("#HD_CurChildDtl_No").val();
var revpk = $("#HD_CurDtl_OID").val();
var dtl = new Entity(dtl_No);
dtl.RefPK = revpk;
dtl.FID = 0;
dtl = dtl.Insert();
Load_ChildDtlForm();
}
//删除记录通过主键OID
function DtlChild_DeleteByOID(oid) {
var btnArray = ['否', '是'];
mui.confirm('确定要删除所选记录吗?', '提示', btnArray, function (e) {
if (e.index == 1) {
var dtl_No = $("#HD_CurChildDtl_No").val();
var dtl = new Entity(dtl_No);
dtl.OID = oid;
dtl.SetPKVal(oid);
var dtl = dtl.Delete();
Load_ChildDtlForm();
}
});
}
//转控件
function TranseDtlControl(dtlColumn, DataRow) {
this.control = dtlColumn;
this.DataRow = DataRow;
this.Ctrl_Class = "";
//控件是否可用
this.Enable = true;
}
//控件属性
TranseDtlControl.prototype = {
To_Html: function () {
var _html = "";
this.Ctrl_Class = "";
this.Enable = true;
//判断控件是否可用
if (this.control.UIIsEnable == "0" || Form_ReadOnly == true) {
this.Enable = false;
this.Ctrl_Class = "disabled = \"disabled\" ";
}
if (this.control.MyDataType == FormDataType.AppString && this.control.IsSupperText == 1)
_html = "";
else {
_html = "<li class='mui-input-row'>";
//标签
var mustInputDtl = this.control.UIIsInput == 1 ? '<span style="color:red;display: inline-block;" class="mustInputDtl" data-keyofen="' + this.control.KeyOfEn + '" >*</span>' : "";
_html += " <label><p>" + this.control.Name + mustInputDtl + "</P></label>";
}
//图片签名
if (this.control.IsSigan == "1") {
_html += this.CreateSignPicture();
_html += "</li>"
return _html;
}
var Ctrl_Val = "";
if (this.DataRow != null)
Ctrl_Val = this.DataRow[this.control.KeyOfEn];
if (Ctrl_Val == undefined)
Ctrl_Val = "";
//if (this.control.DefValType == 0 && this.control.DefVal == "10002" && (Ctrl_Val == "10002" || Ctrl_Val == "10002.0000"))
// Ctrl_Val = "";
//加载其他数据控件
switch (this.control.LGType) {
case FieldTypeS.Normal: //输出普通类型字段
if (this.control.UIContralType == UIContralType.DDL) {
//判断外部数据或WS类型.
if (this.Enable == false) {
this.Ctrl_Class = "disabled = \"disabled\" ";
}
_html += this.CreateDDLPK(Ctrl_Val);
break;
}
switch (this.control.MyDataType) {
case FormDataType.AppString:
_html += this.CreateTBString(Ctrl_Val);
break;
case FormDataType.AppInt:
_html += this.CreateTBInt(Ctrl_Val);
break;
case FormDataType.AppFloat:
case FormDataType.AppDouble:
case FormDataType.AppMoney:
_html += this.CreateTBFloat(Ctrl_Val);
break;
case FormDataType.AppDate:
if (this.Enable == false) {
this.Ctrl_Class = "readonly = \"readonly\" ";
}
_html += this.CreateTBDate(Ctrl_Val);
break;
case FormDataType.AppDateTime:
if (this.Enable == false) {
this.Ctrl_Class = "readonly = \"readonly\" ";
}
_html += this.CreateTBDateTime(Ctrl_Val);
break;
case FormDataType.AppBoolean:
if (this.Enable == false) {
this.Ctrl_Class = "readonly = \"readonly\" ";
}
_html += this.CreateCBBoolean(Ctrl_Val);
break;
}
break;
case FieldTypeS.Enum: //枚举值下拉框
if (this.Enable == false) {
this.Ctrl_Class = "disabled = \"disabled\" ";
}
_html += this.CreateDDLEnum(Ctrl_Val);
break;
case FieldTypeS.FK: //外键表下拉框
if (this.Enable == false) {
this.Ctrl_Class = "disabled = \"disabled\" ";
}
_html += this.CreateDDLPK(Ctrl_Val);
break;
}
_html += "</li>"
return _html;
},
CreateSignPicture: function (Ctrl_Val) {
//图片签名
var sign_id = this.control.KeyOfEn;
var val = this.DataRow[sign_id];
var errorVal = this.DataRow["ImgErrorValue"];
return "<img name=\"Sign_Dtl_" + sign_id + "\" id=\"Sign_Dtl_" + sign_id + "\" src='" + val + "' border=0 onerror=\"this.src='" + errorVal + "'\"/>";
},
CreateTBString: function (Ctrl_Val) {
var Ctrl_Id = "TB_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
//多行文本
if (this.control.IsSupperText == 1) {
var html_string = "<div class='' style='padding:11px 15px;line-height:1.1;'>";
html_string += "<label for=\"" + Ctrl_Id + "\"><p>" + this.control.Name + "</p></label>";
if (this.control.UIIsEnable == "0" || Form_ReadOnly == false)
html_string += "<div name='" + Ctrl_Id + "' id='" + Ctrl_Id + "' style='padding:5px;border:1px solid #d6dde6;font-size: 14px;line-height:22px;'>" + Ctrl_Val + "</div>";
else
html_string += "<textarea wrap='virtual' onpropertychange= 'this.style.posHeight=this.scrollHeight' cols='40' style='overflow:visible;font-size:14px;width:100%;border:solid 1px gray;' rows=\"5\" name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\">" + Ctrl_Val + "</textarea>";
return html_string;
}
//单行文本
return "<input " + this.Ctrl_Class + " type=\"text\" name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" value=\"" + Ctrl_Val + "\" />";
},
CreateTBInt: function (Ctrl_Val) {
var Ctrl_Id = "TB_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
this.Ctrl_Class = " class='mui-numbox-input'";
var disabledStr = "";
if (this.control.UIIsEnable == "0" || Form_ReadOnly == true)
disabledStr = " disabled=disabled";
var event = 'onblur="valitationAfter(this, \'int\')" onkeydown="valitationBefore(this, \'int\')" onkeyup="valitationAfter(this, \'int\'); if(isNaN(value) || (value%1 !== 0))execCommand(\'undo\')" onafterpaste="valitationAfter(this, \'int\'); if(isNaN(value) || (value%1 !== 0))execCommand(\'undo\')"';
var minNum = GetPara(this.control.AtPara, "NumMin")||"";
var maxNum = GetPara(this.control.AtPara, "NumMax") || "";
var dataInfo = "";
if (minNum!="")
dataInfo = " data-numbox-min='" + minNum + "'";
if (maxNum != "")
dataInfo += " data-numbox-max='" + maxNum + "'";
var inputHtml = "";
if (Form_ReadOnly == false && this.control.UIIsEnable == 1) {
var step = GetPara(this.control.AtPara, "NumStepLength");
step = step == null || step == undefined ? 1 : parseInt(step) == 0 ? 1 : parseInt(step);
inputHtml += "<div class='mui-numbox' data-numbox-step='"+step+"' data-numbox-bit='0' " +dataInfo+"style='width:200px'>";
inputHtml += "<button class='mui-btn mui-btn-numbox-minus' type='button'>-</button>";
}
inputHtml += "<input " + this.Ctrl_Class + disabledStr + " type=\"number\" " + event;
if (this.control.DefValType == 0)
inputHtml += " name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" value=\"" + Ctrl_Val + "\" />";
else
inputHtml += " name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" placeholder=\"0\" value=\"" + Ctrl_Val + "\" />";
if (Form_ReadOnly == false && this.control.UIIsEnable == 1) {
inputHtml += "<button class='mui-btn mui-btn-numbox-plus' type='button'>+</button>";
inputHtml += "</div>";
}
return inputHtml;
},
CreateTBFloat: function (Ctrl_Val) {
var dataInfo = "";
var minNum = GetPara(this.control.AtPara, "NumMin") || "";
var maxNum = GetPara(this.control.AtPara, "NumMax") || "";
var dataInfo = "";
if (minNum != "")
dataInfo = " data-numbox-min='" + minNum + "'";
if (maxNum != "")
dataInfo += " data-numbox-max='" + maxNum + "'";
var bit;
var defVal = this.control.DefValType;
if (defVal != null && defVal !== "" && defVal.toString().indexOf(".") >= 0)
bit = attrdefVal.substring(defVal.indexOf(".") + 1).length;
else
bit = 2;
var Ctrl_Id = "TB_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
var inputHtml = "";
if (Form_ReadOnly == false && this.control.UIIsEnable == 1) {
var step = GetPara(this.control.AtPara, "NumStepLength");
step = step == null || step == undefined ? 0.1 : parseFloat(step);
inputHtml += "<div class='mui-numbox' data-numbox-step='"+step+"' data-numbox-bit='" + bit + "' "+dataInfo+" style='width:200px'>";
inputHtml += "<button class='mui-btn mui-btn-numbox-minus' type='button'>-</button>";
this.Ctrl_Class = " class='mui-numbox-input'";
}
if (defVal == 0)
inputHtml += "<input " + this.Ctrl_Class + " type=\"number\" name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" value=\"" + Ctrl_Val + "\" />";
else
inputHtml += "<input " + this.Ctrl_Class + " type=\"number\" name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" placeholder=\"0.00\" value=\"" + Ctrl_Val + "\" />"
if (Form_ReadOnly == false && this.control.UIIsEnable == 1) {
inputHtml += "<button class='mui-btn mui-btn-numbox-plus' type='button'>+</button>";
inputHtml += "</div>";
}
return inputHtml;
},
CreateTBDate: function (Ctrl_Val) {
var Ctrl_Id = "TB_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
var LAB_Id = "LAB_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
var Ctrl_Text = Ctrl_Val;
if (this.Enable == false) {
return "<input " + this.Ctrl_Class + " type=\"text\" data-role=\"datebox\" name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" value=\"" + Ctrl_Val + "\" />";
}
var inputHtml = "";
if (Ctrl_Val == "") {
Ctrl_Text = "<p>请选择日期</p>";
}
inputHtml += "<a class='mui-navigate-right'>";
inputHtml += " <span name=\"" + LAB_Id + "\" id=\"" + LAB_Id + "\" data-options='{\"type\":\"date\"}' class='mui-pull-right ccformdatedtl' style='margin-right:30px;margin-top:10px;min-width:160px;text-align:right;'>" + Ctrl_Text + "</span>";
inputHtml += "</a>";
inputHtml += "<input type='hidden' name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" value='" + Ctrl_Val + "' />";
return inputHtml;
},
CreateTBDateTime: function (Ctrl_Val) {
var isSupperText = this.control.IsSupperText;
var optionType = "datetime";
if (isSupperText == 0) {
optionType = "date";//yyyy-MM-dd
} else if (isSupperText == 1 || isSupperText == 5) {
optionType = "date-time";//yyyy-MM-dd HH:mm
} else if (isSupperText == 2) {
optionType = "datetime";//yyyy-MM-dd HH:mm:ss
} else if (isSupperText == 3) {
optionType = "month";//yyyy-MM
} else if (isSupperText == 4) {
optionType = "time-min";//HH:mm
} else if (isSupperText == 5) {
optionType = "time";//HH:mm:ss
} else if (isSupperText == 6) {
optionType = "month-day";//MM-dd
} else if (isSupperText == 7) {
options.type = "year";//MM-dd
}
var Ctrl_Id = "TB_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
var LAB_Id = "LAB_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
//var Ctrl_Val = this.DataRow[this.control.KeyOfEn];
var Ctrl_Text = Ctrl_Val;
if (this.Enable == false) {
return "<input " + this.Ctrl_Class + " type=\"text\" data-role=\"datetimebox\" name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" value=\"" + Ctrl_Val + "\" />";
}
var inputHtml = "";
if (Ctrl_Val == "") {
Ctrl_Text = "<p>请选择时间</p>";
}
inputHtml += "<a class='mui-navigate-right'>";
inputHtml += " <span name=\"" + LAB_Id + "\" id=\"" + LAB_Id + "\" data-options='{\"type\":\"" + optionType + "\"}' class='mui-pull-right ccformdatedtl' style='margin-right:30px;margin-top:10px;min-width:160px;text-align:right;'>" + Ctrl_Text + "</span>";
inputHtml += "</a>";
inputHtml += "<input type='hidden' name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" value='" + Ctrl_Val + "' />";
return inputHtml;
},
CreateTBTime: function (Ctrl_Val) {
var Ctrl_Id = "TB_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
var LAB_Id = "LAB_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
//var Ctrl_Val = this.DataRow[this.control.KeyOfEn];
var Ctrl_Text = Ctrl_Val;
if (this.Enable == false) {
return "<input " + this.Ctrl_Class + " type=\"text\" data-role=\"datetimebox\" name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" value=\"" + Ctrl_Val + "\" />";
}
var inputHtml = "";
if (Ctrl_Val == "") {
Ctrl_Text = "<p>请选择时间</p>";
}
inputHtml += "<a class='mui-navigate-right'>";
inputHtml += " <span name=\"" + LAB_Id + "\" id=\"" + LAB_Id + "\" data-options='{\"type\":\"time\"}' class='mui-pull-right ccformdatedtl' style='margin-right:30px;margin-top:10px;min-width:160px;text-align:right;'>" + Ctrl_Text + "</span>";
inputHtml += "</a>";
inputHtml += "<input type='hidden' name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" value='" + Ctrl_Val + "' />";
return inputHtml;
},
CreateCBBoolean: function (Ctrl_Val) {
var checkBoxVal = "";
var keyOfEn = this.control.KeyOfEn;
var Ctrl_Id = "CB_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
var CB_Html = "";
CB_Html += " <input type='hidden' id='" + Ctrl_Id + "' name='" + Ctrl_Id + "' value='" + checkBoxVal + "'/>";
var classVal = "";
if (Ctrl_Val == 1)
classVal = " mui-active";
if (this.Enable == false )
CB_Html += " <div class='mui-switch mui-switch-blue mui-switch-mini mui-disabled" + classVal + "' id='SW_" + keyOfEn + "_" + this.DataRow.OID + "'>";
else
CB_Html += " <div class='mui-switch mui-switch-blue mui-switch-mini" + classVal + "' id='SW_" + keyOfEn + "_" + this.DataRow.OID + "'>";
CB_Html += " <div class='mui-switch-handle'></div>";
CB_Html += " </div>";
return CB_Html;
},
CreateDDLEnum: function (Ctrl_Val) {
//下拉框和单选都使用下拉框实现
var Ctrl_Id = "RB_" + this.control.KeyOfEn + "_" + this.DataRow.OID
if (this.control.UIContralType == UIContralType.DDL) {
Ctrl_Id = "DDL_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
}
//获取枚举数据
var enums = new Entities("BP.Sys.SysEnums");
enums.Retrieve("EnumKey", this.control.UIBindKey);
var html_Select = "";
html_Select += "<select name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" " + this.Ctrl_Class + ">";
if (this.control.UIIsInput == 0)
html_Select += "<option value='-1'>- 请选择 -</option>";
for (var i = 0; i < enums.length; i++) {
if (Ctrl_Val == enums[i].IntKey) {
html_Select += "<option value=\"" + enums[i].IntKey + "\" selected='selected'>" + enums[i].Lab + "</option>";
} else {
html_Select += "<option value=\"" + enums[i].IntKey + "\">" + enums[i].Lab + "</option>";
}
}
html_Select += "</select>";
return html_Select;
},
CreateDDLPK: function (Ctrl_Val) {
var args = new RequestArgs();
// var Ctrl_Val = this.DataRow[this.control.KeyOfEn];
var Ctrl_Id = "DDL_" + this.control.KeyOfEn + "_" + this.DataRow.OID;
var dtl_OID = this.DataRow.OID;
var isEnable = this.Enable == true ? 1 : 0;
var WorkID = args.WorkID;
var html_Select = "";
html_Select += "<select name=\"" + Ctrl_Id + "\" id=\"" + Ctrl_Id + "\" " + this.Ctrl_Class + ">";
if (isEnable == 0) {
if (this.DataRow[this.control.KeyOfEn + "Text"] != null && this.DataRow[this.control.KeyOfEn + "Text"] != undefined)
html_Select += "<option value=\"" + this.DataRow[this.control.KeyOfEn] + "\">" + this.DataRow[this.control.KeyOfEn + "Text"] + "</option>";
else
html_Select += "<option value=\"" + this.DataRow[this.control.KeyOfEn] + "\">" + this.DataRow[this.control.KeyOfEn + "T"] + "</option>";
}
var pushData = mainData[this.control.UIBindKey];
//获取外键表数据,不存在表及sql方法
var sfTable = new Entity("BP.Sys.SFTable", this.control.UIBindKey);
if (sfTable != null && sfTable != "") {
var selectStatement = sfTable.SelectStatement;
var srcType = sfTable.SrcType;
//Handler 获取外部数据源
if (srcType == 5)
pushData = DBAccess.RunDBSrc(selectStatement, 1);
//JavaScript获取外部数据源
if (srcType == 6)
pushData = DBAccess.RunDBSrc(sfTable.FK_Val, 2);
}
if (pushData != null) {
if (this.control.UIIsInput == 0)
if (this.control.LGType == 1)
html_Select += "<option value='-1'>- 请选择 -</option>";
else
html_Select += "<option value=''>- 请选择 -</option>";
for (var i = 0; i < pushData.length; i++) {
if (Ctrl_Val == pushData[i].No) {
html_Select += "<option value=\"" + pushData[i].No + "\" selected='selected'>" + pushData[i].Name + "</option>";
} else {
html_Select += "<option value=\"" + pushData[i].No + "\">" + pushData[i].Name + "</option>";
}
}
}
html_Select += "</select>";
return html_Select;
}
}
//必填项检查 名称最后是*号的必填 如果是选择框,值为'' 或者 显示值为 【*请选择】都算为未填 返回FALSE 检查必填项失败
function checkDtlBlanks() {
var checkBlankResult = true;
//获取所有的列名 找到带* 的LABEL mustInput
var lbs = $('.mustInputDtl');
$.each(lbs, function (i, obj) {
//if ($(obj).parent().css('display') != 'none') {
var ele = $(obj).parent().parent().siblings("input");
if (ele.length == 1) {
switch (ele[0].tagName.toUpperCase()) {
case "INPUT":
if (ele.attr('type') == "text") {
if (ele.val() == "") {
checkBlankResult = false;
ele.addClass('errorInput');
} else {
ele.removeClass('errorInput');
}
}
break;
case "SELECT":
if (ele.val() == "" || ele.children('option:checked').text() == "*请选择") {
checkBlankResult = false;
ele.addClass('errorInput');
} else {
ele.removeClass('errorInput');
}
break;
case "TEXTAREA":
if (ele.val() == "") {
checkBlankResult = false;
ele.addClass('errorInput');
} else {
ele.removeClass('errorInput');
}
break;
case "A":
break;
}
}
//}
});
return checkBlankResult;
}
//处理 MapExt 的扩展. 工作处理器,独立表单都要调用他.
function AfterBindDtl_DealMapExt(oid) {
var mapExts = dtlMapExt;
var mapAttrs = dtlmapAttrs;
// 主表扩展(统计从表)
var detailExt = {};
wxh: for (var i = 0; i < mapExts.length; i++) {
var mapExt1 = mapExts[i];
//一起转成entity.
var mapExt = new Entity("BP.Sys.MapExt", mapExt1);
mapExt.MyPK = mapExt1.MyPK;
if (mapExt.ExtType == "FullDataDtl")
continue;
var mapAttr1 = null;
for (var j = 0; j < mapAttrs.length; j++) {
if (mapAttrs[j].FK_MapData == mapExt.FK_MapData && mapAttrs[j].KeyOfEn == mapExt.AttrOfOper) {
if (mapAttrs[j].UIIsEnable == 0 && (mapExt.ExtType == 'PopBranchesAndLeaf' || mapExt.ExtType == 'PopBranches' || mapExt.ExtType == 'PopTableSearch' || mapExt.ExtType == 'PopGroupList'))
continue wxh;//如果控件只读并且是pop弹出形式就continue到外循环
mapAttr1 = mapAttrs[j];
break;
}
}
if (mapAttr1 == null) {
continue;
}
if (isLoadJs.isLoadPop == false) {
isLoadJs.isLoadPop = true;
Skip.addJs(urlPrefix + "JS/Pop.js?t=" + Math.random());
}
if (isLoadJs.isLoadMapExt == false) {
isLoadJs.isLoadMapExt = true;
Skip.addJs(urlPrefix + "MapExt2016.js?t=" + Math.random());
}
if (isLoadJs.isLoadmtags == false) {
isLoadJs.isLoadmtags = true;
$('head').append('<link href="' + urlPrefix + 'JS/mselector.css" rel="Stylesheet"/>');
Skip.addJs(urlPrefix + "JS/mselector.js?t=" + Math.random());
Skip.addJs(urlPrefix + "JS/mtags.js?t=" + Math.random());
}
var mapAttr = new Entity("BP.Sys.MapAttr", mapAttr1);
mapAttr.MyPK = mapAttr1.MyPK;
//处理Pop弹出框
var PopModel = mapAttr.GetPara("PopModel");
if (PopModel != "" && mapAttr.GetPara("PopModel") == "None" && mapExt.ExtType.indexOf("Pop") >= 0)
continue;
if (PopModel != undefined && PopModel != "" && mapExt.ExtType == mapAttr.GetPara("PopModel")) {
PopMapDtlExt(mapAttr, mapExt, oid);
continue;
}
//处理文本自动填充
var TBModel = mapAttr.GetPara("TBFullCtrl");
if (TBModel != undefined && TBModel != "" && TBModel != "None" && (mapExt.ExtType == "FullData")) {
var tbAuto = $("#TB_" + mapExt.AttrOfOper + "_" + oid);
if (tbAuto.length == 0)
continue;
if (isLoadJs.isLoadTBFullCtrl == false) {
isLoadJs.isLoadTBFullCtrl = true;
loadScript(urlPrefix + "TBFullCtrl.js?t=" + Math.random());
}
TBFullCtrl(mapExt, mapAttr, "TB_" + mapExt.AttrOfOper + "_" + oid, 1);
continue
}
//下拉框填充其他控件
var DDLFull = mapAttr.GetPara("IsFullData");
if (DDLFull != undefined && DDLFull != "" && DDLFull == "1" && (mapExt.MyPK.indexOf("DDLFullCtrl") != -1)) {
/* //枚举类型
if (mapAttr.MyDataType == 2 && mapAttr.LGType == 1) {
var ddlOper = $('input:radio[name="RB_' + mapExt.AttrOfOper + "_" + oid + '"]');
if (ddlOper.length == 0)
continue;
ddlOper.attr("onchange", "DDLFullCtrl(this.value,\'" + "DDL_" + mapExt.AttrOfOper + "_" + oid + "\', \'" + mapExt.MyPK + "\')");
//初始化填充数据
var val = $('input:radio[name="RB_' + mapExt.AttrOfOper + "_" + oid + '"]:checked').val();
DDLFullCtrl(val, "DDL_" + mapExt.AttrOfOper + "_" + oid, mapExt.MyPK);
continue;
}*/
//外键类型
var ddlOper = $("#DDL_" + mapExt.AttrOfOper + "_" + oid);
if (ddlOper.length == 0)
continue;
ddlOper.attr("onchange", "DDLFullCtrl(this.value,\'" + "DDL_" + mapExt.AttrOfOper + "_" + oid + "\', \'" + mapExt.MyPK + "\',1)");
//初始化填充数据
var val = ddlOper.val();
if (val != "" && val != undefined)
DDLFullCtrl(val, "DDL_" + mapExt.AttrOfOper + "_" + oid, mapExt.MyPK, 1);
continue;
}
switch (mapExt.ExtType) {
case "MultipleChoiceSmall":
MultipleChoiceSmall(mapExt, mapAttr, oid); //调用 /CCForm/JS/MultipleChoiceSmall.js 的方法来完成.
break;
case "MultipleChoiceSearch":
MultipleChoiceSearch(mapExt, oid); //调用 /CCForm/JS/MultipleChoiceSmall.js 的方法来完成.
break;
case "BindFunction": //控件绑定函数.
if ($('#TB_' + mapExt.AttrOfOper + '_' + oid).length == 1) {
$('#TB_' + mapExt.AttrOfOper + '_' + oid).bind(DynamicBind(mapExt, "TB_", oid));
break;
}
if ($('#DDL_' + mapExt.AttrOfOper + '_' + oid).length == 1) {
$('#DDL_' + mapExt.AttrOfOper + '_' + oid).bind(DynamicBind(mapExt, "DDL_"));
break;
}
if ($('#CB_' + mapExt.AttrOfOper + '_' + oid).length == 1) {
$('#CB_' + mapExt.AttrOfOper + '_' + oid).bind(DynamicBind(mapExt, "CB_"));
break;
}
if ($('#RB_' + mapExt.AttrOfOper + '_' + oid).length == 1) {
$('#RB_' + mapExt.AttrOfOper + '_' + oid).bind(DynamicBind(mapExt, "RB_"));
break;
}
break;
case "RegularExpression": //正则表达式 统一在保存和提交时检查
var tb = $('#TB_' + mapExt.AttrOfOper + '_' + oid);
if (tb.attr('class') != undefined && tb.attr('class').indexOf('CheckRegInput') > 0) {
break;
} else {
tb.addClass("CheckRegInput");
tb.data(mapExt)
tb.attr(mapExt.Tag, "CheckRegInput('" + tb.attr('name') + "','','" + mapExt.Tag1 + "')");
}
break;
case "InputCheck": //输入检查
break;
case "ActiveDDL": /*自动初始化ddl的下拉框数据. 下拉框的级联操作 已经 OK*/
var ddlPerant = $("#DDL_" + mapExt.AttrOfOper + "_" + oid);
var ddlChild = $("#DDL_" + mapExt.AttrsOfActive + "_" + oid);
if (ddlPerant == null || ddlChild == null)
continue;
ddlPerant.attr("onchange", "DDLAnsc(this.value,\'" + "DDL_" + mapExt.AttrsOfActive + "_" + oid + "\', \'" + mapExt.MyPK + "\',\'" + ddlPerant.val() + "\')");
var valClient = ConvertDefVal(frmData, '', mapExt.AttrsOfActive); // ddlChild.SelectedItemStringVal;
//初始化页面时方法加载
DDLAnsc(ddlPerant.val(), "DDL_" + mapExt.AttrsOfActive + "_" + oid, mapExt.MyPK);
break;
case "AutoFullDLL": // 自动填充下拉框.
continue; //已经处理了。
case "AutoFull": //自动填充 //a+b=c DOC='@DanJia*@ShuLiang' 等待后续优化
//循环 KEYOFEN
//替换@变量
//处理 +-*%
if (mapExt.Doc == undefined || mapExt.Doc == '')
continue;
calculator(mapExt, oid);
break;
case "AutoFullDtlField": //主表扩展(统计从表)
var docs = mapExt.Doc.split("\.");
if (docs.length == 3) {
var ext = {
"DtlNo": docs[0],
"FK_MapData": mapExt.FK_MapData,
"AttrOfOper": mapExt.AttrOfOper,
"Doc": mapExt.Doc,
"DtlColumn": docs[1],
"exp": docs[2],
"Tag": mapExt.Tag,
"Tag1": mapExt.Tag1
};
if (!$.isArray(detailExt[ext.DtlNo])) {
detailExt[ext.DtlNo] = [];
}
detailExt[ext.DtlNo].push(ext);
var iframeDtl = $("#F" + ext.DtlNo);
iframeDtl.load(function () {
$(this).contents().find(":input[id=formExt]").val(JSON.stringify(detailExt[ext.DtlNo]));
if (this.contentWindow && typeof this.contentWindow.parentStatistics === "function") {
this.contentWindow.parentStatistics(detailExt[ext.DtlNo]);
}
});
$(":input[name=TB_" + ext.AttrOfOper + "]").attr("disabled", true);
}
break;
}
}
}
/**Pop弹出框的处理**/
function PopMapDtlExt(mapAttr, mapExt, oid) {
switch (mapAttr.GetPara("PopModel")) {
case "PopBranchesAndLeaf": //树干叶子模式.
if (isLoadJs.isLoadBranchesAndLeaf == false) {
isLoadJs.isLoadBranchesAndLeaf = true;
loadScript(urlPrefix + "BranchesAndLeaf.js?t=" + Math.random());
}
Dtl_PopBranchesAndLeaf(mapExt, mapAttr, oid, 1); //调用 /CCForm/JS/Pop.js 的方法来完成.
break;
case "PopBranches": //树干简单模式.
if (isLoadJs.isLoadBranches == false) {
isLoadJs.isLoadBranches = false;
loadScript(urlPrefix + "Branches.js?t=" + Math.random());
}
Dtl_PopBranches(mapExt, mapAttr, oid, 1); //调用 /CCForm/JS/Pop.js 的方法来完成.
break;
case "PopGroupList": //分组模式.
PopGroupList(mapExt, mapAttr, oid, 1); //调用 /CCForm/JS/Pop.js 的方法来完成.
break;
case "PopSelfUrl": //自定义url.
SelfUrl(mapExt, mapAttr, oid, 1); //调用 /CCForm/JS/MultipleChoiceSmall.js 的方法来完成.
break;
case "PopTableSearch": //表格查询.
Dtl_PopTableSearch(mapExt, mapAttr, oid, 1); //调用 /CCForm/JS/Pop.js 的方法来完成.
break;
default:
break;
}
}
/****************************************** 树干枝叶模式 **********************************/
function Dtl_PopBranchesAndLeaf(mapExt, mapAttr, OID) {
if (mapAttr.UIVisible == 0) {
return;
}
var attrOfOper = mapExt.AttrOfOper + "_" + OID;
var ctrlID = "TB_" + mapExt.AttrOfOper + "_" + OID;
var target = $("#" + ctrlID);
target.hide();
var parentTarget = target.parent();
if (mapAttr.UIIsEnable != 0 && mapAttr.UIVisible != 0) {
//增加a标签
var aLink = $('<a class="mui-navigate-right"></a>');
aLink.on('tap', function () {
viewApi.go("#branchesAndLeaf");
initBranchesLPage(mapExt, OID, attrOfOper, 1);
});
aLink.append($('<p style="margin-right:30px;margin-top:10px;min-width:160px;text-align:right;">请选择</p>'));
parentTarget.append(aLink);
}
//增加显示选择结果行
var width = target.width();
var height = target.height();
var container = $("<div class='mui-table-view-cell'></div>");
parentTarget.after(container);
container.attr("id", attrOfOper + "_mtags");
$("#" + attrOfOper + "_mtags").mtags({
"fit": true,
"onUnselect": function (record) {
DeleteFrmEleDB(attrOfOper, OID, record.No);
var mtags = $("#" + ctrlID + "_mtags i");
var len = mtags.length;
var RemoveFunc = mapExt.GetPara("RemoveFunc");
if (RemoveFunc) {
if (RemoveFunc.indexOf("(") == -1) {
RemoveFunc = RemoveFunc + "('" + record.No + "','" + len + "')";
} else {
var para = record.No + "','" + len;
RemoveFunc = replaceAll(RemoveFunc, "Key", para);
RemoveFunc = replaceAll(RemoveFunc, "~", "'");
}
//调用移除函数
DBAccess.RunDBSrc(RemoveFunc, mapExt.DBType);
}
console.log("unselect: " + JSON.stringify(record));
}
});
//初始加载
Refresh_Mtags(mapExt.FK_MapData, attrOfOper, OID, mapAttr);
return;
}
/****************************************** 树干模式 **********************************/
function Dtl_PopBranches(mapExt, mapAttr, OID) {
if (mapAttr.UIVisible == 0) {
return;
}
var attrOfOper = mapExt.AttrOfOper + "_" + OID;
var ctrlID = "TB_" + mapExt.AttrOfOper + "_" + OID;
var target = $("#" + ctrlID);
target.hide();
var parentTarget = target.parent();
var oid = GetPKVal();
if (mapAttr.UIIsEnable != 0 && mapAttr.UIVisible != 0) {
//增加a标签
var aLink = $('<a class="mui-navigate-right"></a>');
aLink.on('tap', function () {
viewApi.go("#branches");
initBranchesPage(mapExt, OID, attrOfOper, 1);
});
aLink.append($('<p style="margin-right:30px;margin-top:10px;min-width:160px;text-align:right;">请选择</p>'));
parentTarget.append(aLink);
}
//增加显示选择结果行
var width = target.width();
var height = target.height();
var container = $("<div class='mui-table-view-cell'></div>");
parentTarget.after(container);
container.attr("id", attrOfOper + "_mtags");
$("#" + attrOfOper + "_mtags").mtags({
"fit": true,
"onUnselect": function (record) {
console.log("unselect: " + JSON.stringify(record));
DeleteFrmEleDB(attrOfOper, OID, record.No);
var mtags = $("#" + attrOfOper + "_mtags i");
var len = mtags.length;
var RemoveFunc = mapExt.GetPara("RemoveFunc");
if (RemoveFunc) {
if (RemoveFunc.indexOf("(") == -1) {
RemoveFunc = RemoveFunc + "('" + record.No + "','" + len + "')";
} else {
var para = record.No + "','" + len;
RemoveFunc = replaceAll(RemoveFunc, "Key", para);
RemoveFunc = replaceAll(RemoveFunc, "~", "'");
}
//调用移除函数
DBAccess.RunDBSrc(RemoveFunc, mapExt.DBType);
}
}
});
//初始加载
Refresh_Mtags(mapExt.FK_MapData, attrOfOper, OID, mapAttr);
}
/****************************************** 表格查询 **********************************/
function Dtl_PopTableSearch(mapExt, mapAttr, OID) {
if (mapAttr.UIVisible == 0) {
return;
}
var attrOfOper = mapExt.AttrOfOper + "_" + OID;
var ctrlID = "TB_" + mapExt.AttrOfOper + "_" + OID;
var target = $("#" + ctrlID);
target.hide();
var parentTarget = target.parent();
var oid = OID;
if (mapAttr.UIIsEnable != 0 && mapAttr.UIVisible != 0) {
//增加a标签
var aLink = $('<a class="mui-navigate-right"></a>');
aLink.on('tap', function () {
viewApi.go("#tableSearch");
initTableSPage(mapExt, oid, attrOfOper, 1);
});
aLink.append($('<p style="margin-right:30px;margin-top:10px;min-width:160px;text-align:right;">请选择</p>'));
parentTarget.append(aLink);
}
//增加显示选择结果行
var width = target.width();
var height = target.height();
var container = $("<div class='mui-table-view-cell'></div>");
parentTarget.after(container);
container.attr("id", attrOfOper + "_mtags");
$("#" + attrOfOper + "_mtags").mtags({
"fit": true,
"onUnselect": function (record) {
DeleteFrmEleDB(attrOfOper, oid, record.No);
}
});
//初始加载
Refresh_Mtags(mapExt.FK_MapData, attrOfOper, oid, mapAttr);
}
function GetNumberMinMax(mapAttr) {
var isEnableNumEnterLimit = GetPara(mapAttr.AtPara, "IsEnableNumEnterLimit");
isEnableNumEnterLimit = isEnableNumEnterLimit == null || isEnableNumEnterLimit == "" || isEnableNumEnterLimit == undefined || isEnableNumEnterLimit == "0" ? false : true;
if (isEnableNumEnterLimit == false)
return [];
var min = 0, max = 0;
if (isEnableNumEnterLimit == true) {
min = GetPara(mapAttr.AtPara, "MinNum");
if (min == undefined || min == "")
min = 0;
max = GetPara(mapAttr.AtPara, "MaxNum");
if (max == undefined || max == "")
max = 100000;
return [min, max];
}
}