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.

1148 lines
46 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.初始化附件全局使用的参数
if (typeof AthParams == "undefined") {
AthParams = {};
AthParams.AthInfo = {};
}
if (typeof athRefPKVal == "undefined")
athRefPKVal = 0;
var IsOnlinePreviewOfAth = getConfigByKey("IsOnlinePreviewOfAth", false);
var PreviewPathOfAth = getConfigByKey("PreviewPathOfAth", "");
/**
* 附件初始化
* @param athchment 附件属性
* @param athDivID 生成的附件信息追加的位置
*/
function AthTable_Init(athchment, athDivID, refPKVal) {
if (typeof athchment != "object" && typeof athchment == "string")
athchment = new Entity("BP.Sys.FrmAttachment", athchment);
if (refPKVal == null || refPKVal == undefined || refPKVal == 0)
athRefPKVal = pageData.WorkID == 0 ? pageData.OID : pageData.WorkID;
else
athRefPKVal = refPKVal;
AthParams.FK_MapData = athchment.FK_MapData;
var uploadUrl = "";
//2.上传的URL的设置
if (plant == 'CCFlow')
uploadUrl = basePath + '/WF/Comm/ProcessRequest?DoType=HttpHandler&HttpHandlerName=BP.WF.HttpHandler.WF_CCForm&AttachPK=' + athchment.MyPK + '&DoMethod=MoreAttach&FK_Flow=' + pageData.FK_Flow + '&PKVal=' + athRefPKVal;
else {
uploadUrl = basePath + "/WF/Ath/AttachmentUploadS.do?FK_FrmAttachment=" + athchment.MyPK + '&FK_Flow=' + pageData.FK_Flow + "&PKVal=" + athRefPKVal;
}
uploadUrl += "&WorkID=" + pageData.WorkID;
uploadUrl += "&FID=" + pageData.FID;
uploadUrl += "&FK_Node=" + pageData.FK_Node;
uploadUrl += "&PWorkID=" + GetQueryString("PWorkID");
uploadUrl += "&FK_MapData=" + AthParams.FK_MapData;
//3.初始化附件列表
InitAthPage(athDivID, uploadUrl);
//4.调用附件上传的功能
$("#fileUpload_" + athchment.MyPK).initUpload({
"uploadUrl": uploadUrl,//上传文件信息地址
"progressUrl": "#",//获取进度信息地址可选注意需要返回的data格式如下{bytesRead: 102516060, contentLength: 102516060, items: 1, percent: 100, startTime: 1489223136317, useTime: 2767}
"showSummerProgress": false,//总进度条,默认限制
"size": athDesc.FileMaxSize,//文件大小限制单位kb,默认不限制
"ismultiple": true,
"beforeUpload": beforeUploadFun,//在上传前执行的函数
"onUpload": function (opt, data) {
uploadTools.uploadError(opt);//显示上传错误
InitAthPage(athDivID);
AthTable_Init(athchment, athDivID, pageData.WorkID);
},
autoCommit: true,//文件是否自动上传
"fileType": AthParams.realFileExts,//文件类型限制,默认不限制,注意写的是文件后缀
"FK_FrmAttachment": athchment.MyPK,
"IsExpCol": athchment.IsExpCol == 0 ? false : true,
"TopNumOfUpload": athDesc.TopNumOfUpload//附件上传的最大数量
});
}
/**
* 附件上传前需要序列化
* @param opt
*/
function beforeUploadFun(opt) {
if (parseInt(athDesc.IsExpCol) == 0) {
var sort = $("#Sort_" + opt.FK_FrmAttachment).val();
if (sort != null && sort != "" && sort != undefined)
opt.otherData = [{ "name": "Sort", "value": sort }];
}
if (parseInt(athDesc.IsExpCol) == 1) {
var parasData = $("form").serialize();
parasData = decodeURIComponent(parasData, true);
parasData = parasData.replace(/&/g, '@');
parasData = parasData.replace(/TB_/g, '');
parasData = parasData.replace(/RB_/g, '');
parasData = parasData.replace(/CB_/g, '');
parasData = parasData.replace(/DDL_/g, '');
//获取分组
var sort = $("#Sort").val();
if (sort != null && sort != "" && sort != undefined)
opt.otherData = [{ "name": "Sort", "value": sort }];
opt.otherData = [{ "name": "parasData", "value": parasData }];
}
}
/**
* 初始化附件列表信息
* @param athDivID 生成的附件信息追加的位置
*/
function InitAthPage(athDivID, uploadUrl) {
AthParams.PKVal = athRefPKVal;
//1.请求后台数据
var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
handler.AddUrlData();
if (athDivID.indexOf("_AthMDtl") != -1)
handler.AddPara("RefOID", AthParams.PKVal == undefined ? pageData.WorkID : AthParams.PKVal);
//alert("RefOID=" + AthParams.PKVal);
handler.AddPara("FK_FrmAttachment", athDivID.replace("Div_", ""));
handler.AddPara("FK_MapData", AthParams.FK_MapData);
var data = handler.DoMethodReturnString("Ath_Init");
if (data.indexOf('err@') == 0) {
//执行方法报错
alert(data);
console.log(data);
return;
}
if (data.indexOf('url@') == 0) {
var url = data.replace('url@', '');
SetHref(url);
return;
}
data = JSON.parse(data);
athDesc = data["AthDesc"][0]; // 附件属性
var dbs = data["DBAths"]; // 附件列表数据
//不显示附件分组
if (athDesc.IsVisable == "0") {
$("#" + athDivID).hide();
//傻瓜表单隐藏分组Lab
$("#Group_" + athDesc.MyPK).hide();
//如果是开发者表单
var parent = $("#" + athDivID).parent()[0];
if (parent && parent.tagName.toLowerCase() == "td") {
//当前节点的兄弟节点如果没有inputselect,就隐藏
var prev = $(parent).prev();
if (prev[0].tagName.toLowerCase() == "td" && prev[0].innerText == athDesc.Name)
prev.hide();
}
}
console.log(dbs);
//2.自定义表单模式.
if (athDesc.AthRunModel == 2) {
src = "../../DataUser/OverrideFiles/AthSelf.htm?PKVal=" + AthParams.PKVal + "&Ath=" + athDesc.NoOfObj + "&FK_MapData=" + athDesc.FK_MapData + "&FK_FrmAttachment=" + athDesc.MyPK;
SetHref(src);
return;
}
//3.附件校验属性
if (!$.isArray(AthParams.AthInfo[athDesc.MyPK])) {
AthParams.AthInfo[athDesc.MyPK] = [];
}
AthParams.AthInfo[athDesc.MyPK].push([athDesc.NumOfUpload, athDesc.TopNumOfUpload, athDesc.FileMaxSize, athDesc.Exts]);
//AthParams.NumOfUpload = athDesc.NumOfUpload; //最低上传的数量.
//AthParams.TopNumOfUpload = athDesc.TopNumOfUpload; //最大上传的数量.
//AthParams.FileMaxSize = athDesc.FileMaxSize; //最大上传的附件大小.
//附件上传的格式限制
AthParams.realFileExts = athDesc.Exts;
if (athDesc.Exts == null || athDesc.Exts == "" || athDesc.Exts == "*.*")
AthParams.realFileExts = "*";
else {
AthParams.realFileExts = AthParams.realFileExts.replace(/\s*/g, "").replace(/[*.]/g, "").split(",");
}
//4.附件列表展示
// debugger
//4.1.图片的展示方式
if (athDesc.FileType == 1) {
$("#" + athDivID).html(FileShowPic(athDesc, dbs, uploadUrl));
$(".athImg").on("click", function () {
var _this = $(this); //将当前的pimg元素作为_this传入函数
var src = _this.parent().css("background-image").replace("url(\"", "").replace("\")", "")
imgShow(this, src);
});
$(".athImg").on("mousemove", function () {
debugger
var _this = $(this);
$(_this.children()[0]).show();
})
$(".athImg").on("mouseout", function () {
var _this = $(this);
$(_this.children()[0]).hide();
})
}
//4.2 普通附件的展示方式包含图片word文档pdf等
else {
if ($("#fileUpload_" + athDesc.MyPK).length != 0)
uploadEvent.cleanFileEvent(uploadTools.getInitOption("fileUpload_" + athDesc.MyPK));
if ($("#tbody_" + athDesc.MyPK).length == 0)
$("#" + athDivID).html(FileShowWayTable(athDesc, dbs, uploadUrl));
else
$("#tbody_" + athDesc.MyPK).html(FileShowWayTable(athDesc, dbs, uploadUrl));
}
$("#" + athDivID).show();
layui.form.render("select");
}
/**
* 生成附件列表的Html代码(Table模式)
* @param athDesc 附件属性
* @param dbs 附件列表
*/
var columnNum = 6;
function FileShowWayTable(athDesc, dbs, uploadUrl) {
var _html = "<table class='layui-table'>";
//1.是否启用扩展列
var mapAttrs = null;
if (athDesc.IsExpCol != 0) {
mapAttrs = new Entities("BP.Sys.MapAttrs");
var extMapData = athDesc.MyPK;
mapAttrs.Retrieve("FK_MapData", extMapData);
}
//2.是否增加有类别
var isHaveSort = athDesc.Sort != null && athDesc.Sort != undefined && athDesc.Sort != "" ? true : false;
var sortColoum = isHaveSort == true && athDesc.Sort.indexOf("@") != -1 ? athDesc.Sort.substring(0, athDesc.Sort.indexOf("@")) : "类别";
var currImgPath = './Img';
if (GetHrefUrl().indexOf("CCForm") != -1 || GetHrefUrl().indexOf("CCBill") != -1)
currImgPath = '../Img';
//3.是否显示标题列
if (athDesc.IsShowTitle == 1 && $("#thead_" + athDesc.MyPK).length == 0) {
_html += "<thead id='thead_" + athDesc.MyPK + "'>";
_html += "<tr style='border:0px;'>";
var colstyle = "line-height:30px;border: 1px solid #ddd;background-color:white;";
colstyle = "background-color:#FAFAFA !important; ";
_html += "<th style='" + colstyle + "width:50px;'>序号</th>";
if (isHaveSort == true)
_html += "<th style='" + colstyle + "width:120px' nowrap=true >" + sortColoum + "</th>";
//if ((athDesc.IsUpload == 0 || pageData.IsReadonly == "1") || athDesc.IsExpCol == 1)
// _html += "<th style='" + colstyle + "width:200px'>文件名</th>";
//else
_html += "<th style='" + colstyle + "width:200px'>文件名</th>";
//_html += "<th style='" + colstyle + "width:50px;'>大小KB</th>";
_html += "<th style='" + colstyle + "width:120px;'>上传时间</th>";
_html += "<th style='" + colstyle + "width:80px;'>上传人</th>";
//增加了扩展列
if (athDesc.IsExpCol == 1) {
$.each(mapAttrs, function (i, mapAttr) {
if (mapAttr.UIIsInput == 1 && mapAttr.UIIsEnable == 1)
_html += "<th style='" + colstyle + "'><span style='color:red' class='mustInput' data-keyofen='" + mapAttr.KeyOfEn + "' >*</span>";
else
_html += "<th style='" + colstyle + "'>";
if (mapAttr.UIContralType == 0)
_html += "<label for='TB_" + mapAttr.KeyOfEn + "' class='" + (mapAttr.UIIsInput == 1 ? "mustInput" : "") + "' >" + mapAttr.Name + "</label></th>";
if (mapAttr.UIContralType == 1)
_html += "<label for='DDL_" + mapAttr.KeyOfEn + "' class='" + (mapAttr.UIIsInput == 1 ? "mustInput" : "") + "' >" + mapAttr.Name + "</label></th>";
if (mapAttr.UIContralType == 2)
_html += "<label for='CB_" + mapAttr.KeyOfEn + "' class='" + (mapAttr.UIIsInput == 1 ? "mustInput" : "") + "' >" + mapAttr.Name + "</label></th>";
if (mapAttr.UIContralType == 3)
_html += "<label for='RB_" + mapAttr.KeyOfEn + "' class='" + (mapAttr.UIIsInput == 1 ? "mustInput" : "") + "' >" + mapAttr.Name + "</label></th>";
})
}
//排序列的增加
if (athDesc.IsIdx == 1 && athDesc.IsReadonly != 1) {
_html += "<th nowrap=true style='" + colstyle + "width:50px' >排序</th>";
}
//增加操作列
_html += "<th nowrap=true style='" + colstyle + "width:23%;text-align: center;' >";
if (athDesc.IsDownload == 1 && dbs.length > 0)
_html += "操作" + "<a href=\"javascript:DownZip('" + athDesc.MyPK + "','" + AthParams.PKVal + "')\" ><img src='" + currImgPath + "/FileType/zip.png' style='width:16px;height:16px;margin-left:5px;' alt='打包下载' /></a>";
else
_html += "操作";
//if (((athDesc.IsUpload != 0 || pageData.IsReadonly != "1") || athDesc.IsExpCol != 1) && _html.indexOf("操作") != -1) {
// _html += "<div style='float:right' id='fileUpload_" + athDesc.MyPK + "' class='fileUploadContent'></div> ";
//} else if ((((athDesc.IsUpload != 0 || pageData.IsReadonly != "1") || athDesc.IsExpCol != 1) && _html.indexOf("操作") == -1)) {
// _html += "操作" + "<div style='float:right' id='fileUpload_" + athDesc.MyPK + "' class='fileUploadContent'></div> ";
//}
//if(_html.indexOf("操作") == -1)
_html += "</th>";
_html += "</thead>";
}
//4.增加附件列表的显示
//4.1.存在分组,增加一个空分组主要是为合并解析没有分组的情况
if (isHaveSort == true && athDesc.Sort.lastIndexOf(",") + 1 != athDesc.Sort.length)
athDesc.Sort = athDesc.Sort + ",";
athDesc.Sort = athDesc.Sort == null ? "" : athDesc.Sort;
var fileSorts = athDesc.Sort.indexOf("@") != -1 ? athDesc.Sort.substring(athDesc.Sort.indexOf('@') + 1).split(',') : athDesc.Sort.split(',');
var athIdx = 0;
if ($("#tbody_" + athDesc.MyPK).length == 0)
_html += "<tbody id='tbody_" + athDesc.MyPK + "'>";
//循环分组
for (var j = 0; j < fileSorts.length; j++) {
var sort = fileSorts[j]
//存在分组只显示分组下的文件
if (fileSorts.length > 1 && sort == "")
continue;
var IsExistFile = false; //该分组是否有文件,不存在文件增加一行空白数据
var isAddSortTD = false; //是否增加类别所在的列
var imgUrl = "../";
var localPath = GetHrefUrl();
if (localPath.indexOf("CCBill") != -1 || localPath.indexOf("CCForm") != -1)
imgUrl = "../../";
for (var k = 0; k < dbs.length; k++) {
var db = dbs[k];
if (isHaveSort == true && db.Sort != sort)
continue;
IsExistFile = true;
athIdx++;
_html += "<tr class='athInfo'>";
//①序号
_html += "<td class='Idx' nowrap>" + athIdx + "</td>";
//增加类别列,有可能跨多行
if (isHaveSort == true && isAddSortTD == false) {
isAddSortTD = true;
var rowSpan = GetSortLenth_FromDB(sort, dbs);
_html += "<td rowspan=" + rowSpan + " style='text-align:center;vertical-align: middle;'>" + db.Sort + "</td>";
}
// debugger
var filePath = db.FileFullName;
var i = filePath.indexOf('\DataUser');
var str = '/' + filePath.substring(i);
filePath = str.replace(new RegExp("\\\\", "gm"), "/");
//②附件名称 扩展了预览功能先阶段需要用户自己在DataUser/OverrideFiles/Ath.js重写AthViewOverWrite_Del方法
_html += "<td style='text-align:left'><a href=\"javascript:AthView('" + db.MyPK + "','" + filePath + "');\" ><img src='" + currImgPath + "/FileType/" + db.FileExts + ".gif' border=0 onerror=\"src='" + currImgPath + "/FileType/Undefined.gif'\" style='margin-right:5px;float:left;' />" + db.FileName + "</td>";
//③附件大小
//_html += "<td>" + db.FileSize + "</td>";
//④上传时间
_html += "<td>" + db.RDT + "</td>";
//⑤上传人
_html += "<td>" + db.RecName + "</td>";
//⑥扩展列数据的增加
if (athDesc.IsExpCol == 1) {
$.each(mapAttrs, function (index, mapAttr) {
var defVal = GetPara(db.AtPara, mapAttr.KeyOfEn);
if (mapAttr.MyDataType == 2 && mapAttr.LGType == 1) {
var senum = new Entity("BP.Sys.SysEnum", mapAttr.UIBindKey + "_CH" + "_" + defVal);
defVal = senum.Lab;
}
if (mapAttr.MyDataType == 4) {
if (defVal == "on") defVal = "是";
else defVal = "否";
}
_html += "<td>" + defVal + "</td>";
});
}
//排序列的增加
if (athDesc.IsIdx == 1 && athDesc.IsReadonly != 1) {
_html += "<td class='operate'>";
_html += "<a href=\"javascript:GFDoUp('" + db.MyPK + "' )\"><img src=\"" + imgUrl + "WF/\Img/\Btn/\Up.GIF\"/></a>";
_html += "<a href=\"javascript:GFDoDown('" + db.MyPK + "');\"><img src=\"" + imgUrl + "WF/\Img/\Btn/\Down.GIF\"/></a>";
_html += "</td>";
}
//⑦操作列的增加.
_html += "<td style='text-align: center;'class='operate'>";
if (isHaveSort == true)
_html += "<a href='javaScript:void(0)' onclick='changeSort(\"" + sort + "\",\"" + athDesc.MyPK + "\")'>上传</a>";
if (athDesc.IsDownload == 1)
_html += "<a href=\"javascript:Down2018('" + db.MyPK + "')\">下载</a>&nbsp;&nbsp;&nbsp;&nbsp;";
if (pageData.IsReadonly != 1) {
if (athDesc.DeleteWay == 1)//删除所有
_html += "<a style='color:red;' href=\"javascript:Del('" + db.MyPK + "','" + athDesc.MyPK + "','" + db.FileName + "')\">删除</a>";
var webuser = new WebUser();
if (athDesc.DeleteWay == 2 && db.Rec == webuser.No)//删除自己上传的
_html += "<a style='color:red;' href=\"javascript:Del('" + db.MyPK + "','" + athDesc.MyPK + "','" + db.FileName + "')\">删除</a>";
}
_html += "</td>";
_html += "</tr>";
} //结束数据输出.
//输出上传功能》
if (IsExistFile == false || (athDesc.IsExpCol == 1 && athDesc.IsUpload == true && pageData.IsReadonly != "1")) {
athIdx++;
//①序号
_html += "<td class='Idx'>" + athIdx + "</td>";
//增加类别列
if (isHaveSort == true)
_html += "<td>" + sort + "</td>";
//②附件名称
if (athDesc.IsUpload == true && pageData.IsReadonly != "1")
_html += "<td style='width:100px;color:red'>请上传附件..</td>";
else
_html += "<td style='width:100px;color:red'></td>";
//③附件大小
// _html += "<td>&nbsp&nbsp</td>";
//④上传时间
_html += "<td>&nbsp&nbsp</td>";
//⑤上传人
_html += "<td>&nbsp&nbsp</td>";
//⑥扩展列数据的增加
if (athDesc.IsExpCol == 1) {
$.each(mapAttrs, function (index, mapAttr) {
_html += "<td>" + InitAthMapAttrOfCtrlFool("", mapAttr) + "</td>"
});
}
//⑦操作列的增加.
if (isHaveSort == true) {
_html += "<td><a href='javaScript:void(0)' onclick='changeSort(\"" + sort + "\",\"" + athDesc.MyPK + "\")'>上传</a>";
if (athDesc.IsExpCol == 1) {
_html += "&nbsp;&nbsp;&nbsp;<a href=\"\" onclick='return SaveUpload(\"" + athDesc.MyPK + "\",\"" + uploadUrl + "\")'>保存</a>";
}
_html += "</td>";
}
else {
if (athDesc.IsExpCol == 1) {
_html += "<td><a href=\"\" onclick='return SaveUpload(\"" + athDesc.MyPK + "\",\"" + uploadUrl + "\")'>保存</a></td>";
} else
_html += "<td></td>";
}
_html += "</tr>";
}
}
//附件可上传并且存在分组,增加分组的选择下拉框 && (isHaveSort == true || athDesc.IsNote)
// debugger;
if ((athDesc.IsUpload == true && pageData.IsReadonly != "1") && athDesc.IsExpCol != 1) {
columnNum += mapAttrs != null ? mapAttrs.length + isHaveSort == true ? 1 : 0 : 0 + isHaveSort == true ? 1 : 0;
_html += "<tr>";
_html += "<td colspan=" + columnNum + ">"
_html += "<div id='file_upload-queue' class='uploadify-queue'></div>";
_html += "<div id='s' style='text-align:left;float:left;display:inline;width:100%' >";
if (isHaveSort == false)
_html += "<div style='float:right' id='fileUpload_" + athDesc.MyPK + "' class='fileUploadContent'></div> ";
else {
_html += "<div style='float:right;display:none' id='fileUpload_" + athDesc.MyPK + "' class='fileUploadContent'></div> ";
_html += "<input id='Sort_" + athDesc.MyPK + "'style='display:none'>";
}
//if (isHaveSort == true || athDesc.IsNote) {
// var operations = "";
// for (var idx = 0; idx < fileSorts.length; idx++) {
// operations += "<option value='" + fileSorts[idx] + "'>" + fileSorts[idx] + "</option>";
// }
// if (isHaveSort == true) {
// _html += "<div style='float:left;padding-right:2px'>";
// _html += "请选择" + sortColoum + "";
// _html += "<select id='Sort_" + athDesc.MyPK + "' class='form-control' style='margin:0px 0px !important;width:auto !important'>" + operations + "</select>";
// _html += "</div>";
// }
// if (athDesc.IsNote)
// _html += "<input type='text' id='TB_Note' style='width:90%;display:none;' size='30'/>";
//}
_html += "</div>";
_html += "</td>";
_html += "</tr>";
}
if ($("#tbody_" + athDesc.MyPK).length == 0) {
_html += "</tbody>";
_html += "</table>";
}
return _html;
}
// 向上移动.
function GFDoUp(mypk) {
var en = new Entity("BP.Sys.FrmAttachmentDB", mypk);
var data = en.DoMethodReturnString("DoUpTabIdx");
if (data.indexOf('err@') != -1)
alert(data);
Reload();
}
//向下移动.
function GFDoDown(mypk) {
var en = new Entity("BP.Sys.FrmAttachmentDB", mypk);
var data = en.DoMethodReturnString("DoDownTabIdx");
if (data.indexOf('err@') != -1)
alert(data);
Reload();
}
/**
* 附件图片显示的方式
* @param athDesc 附件属性
* @param dbs 附件列表
*/
function FileShowPic(athDesc, dbs, uploadUrl) {
var exts = athDesc.Exts;
if (exts != null && exts != undefined && (exts.indexOf("*.*") != -1 || exts == ""))
exts = "image/gif,image/jpg,image/jepg,image/jpeg,image/bmp,image/png,image/tif,image/gsp";
var _Html = "<form id='Form_" + athDesc.MyPK + "' enctype='multipart/form-data' method='post'>";
for (var i = 0; i < dbs.length; i++) {
var db = dbs[i];
var url = GetFileStream(db.MyPK, db.FK_FrmAttachment);
_Html += "<div id='" + db.MyPK + "' class='image-item athInfo' style='background-image: url(&quot;" + url + "&quot;);'>";
if(pageData.IsReadonly != 1 &&((athDesc.DeleteWay == 1) || ((athDesc.DeleteWay == 2) && (db.Rec == webUser.No))))
_Html += "<div class='image-close' onclick='Del(\"" + db.MyPK + "\",\"" + db.FK_FrmAttachment + "\")'>X</div>";
_Html += "<div style ='width: 100%; height: 100%;' class='athImg' >";
_Html += "<div class='Img_ShowText'><span>上传人:"+db.RecName+"</span><br/><span>上传时间:"+db.RDT+"</span></div>";
_Html +="</div > ";
_Html += "<div class='image-name' id = 'name-0-0' > ";
if (athDesc.IsDownload == 0)
_Html += "<p style = 'text-align:center;width:63.4px;margin:0;padding:0;overflow:hidden;text-overflow: ellipsis;white-space: nowrap' >" + db.FileName + "</p>";
else
_Html += "<p style = 'text-align:center;width:63.4px;margin:0;padding:0;overflow:hidden;text-overflow: ellipsis;white-space: nowrap' ><a href=\"javascript:Down2018('" + db.MyPK + "');\" title='" + db.FileName.split(".")[0] + "'>" + db.FileName.split(".")[0] + "</a></p>";
_Html += "</div>";
_Html += "</div>";
}
//可以上传附件,增加上传附件按钮
if (athDesc.IsUpload == true && pageData.IsReadonly != "1") {
_Html += "<div class='image-item space'><input type='file' id='file_" + athDesc.MyPK + "'name='file_" + athDesc.MyPK + "' accept='" + exts + "' onchange='UploadChangeAth(\"" + uploadUrl + "\",\"" + athDesc.MyPK + "\");'></div>";
}
_Html += "</form>";
return _Html;
}
/**
* 获取分组中的附件列表数据个数
* @param sort 类别
* @param dbs 附件列表
*/
function GetSortLenth_FromDB(sort, dbs) {
var sortLength = 0;
for (var p = 0; p < dbs.length; p++) {
if (dbs[p].Sort == sort) sortLength++;
}
return sortLength;
}
//文件数据流
function GetFileStream(mypk, FK_FrmAttachment) {
var Url = "";
if (plant == "CCFlow") {
Url = basePath + "/WF/Comm/ProcessRequest?DoType=HttpHandler&DoMethod=AttachmentUpload_Down&HttpHandlerName=BP.WF.HttpHandler.WF_CCForm&WorkID=" + GetQueryString("WorkID") + "&FK_Node=" + GetQueryString("FK_Node") + "&MyPK=" + mypk;
} else {
//按照数据流模式下载。
Url = basePath + "/WF/Ath/downLoad.do?MyPK=" + mypk + "&FK_FrmAttachment=" + FK_FrmAttachment;
}
return Url;
}
/**
* 附件下载
* @param fk_ath 附件的属性
* @param MyPK 上传附件数据的信息主键
*/
function Down2018(mypk) {
var nodeID = GetQueryString("FK_Node");
var workID = GetQueryString("WorkID");
var url = "";
if (plant == "CCFlow") {
SetHref(basePath + "/WF/Comm/ProcessRequest?DoType=HttpHandler&DoMethod=AttachmentUpload_Down&HttpHandlerName=BP.WF.HttpHandler.WF_CCForm&WorkID=" + workID + "&FK_Node=" + nodeID + "&MyPK=" + mypk);
return;
}
var currentPath = GetHrefUrl();
var path = currentPath.substring(0, currentPath.indexOf('/WF') + 1);
url = path + 'WF/Ath/downLoad.do?MyPK=' + mypk + "&WorkID=" + workID + "&FK_Node=" + nodeID;
if(typeof filterXSS === 'function'){
url = filterXSS(url);
}else {
url = url.replace(/<\/?[^>]+>/gi, '')
.replace(/[(]/g, '')
.replace(/->/g, '_')
}
if (IEVersion() < 11) {
window.open(url);
return;
}
var link = document.createElement('a');
link.setAttribute("download", "");
link.href = url;
link.click();
}
/**
* 打包下载
* @param fk_frmattachment 附件属性MyPK
* @param PKVal 附件控制权限的ID
*/
function DownZip(fk_frmattachment, PKVal) {
var httpHandler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
httpHandler.AddUrlData();
httpHandler.AddPara("FK_FrmAttachment", fk_frmattachment);
httpHandler.AddPara("PKVal", PKVal)
var data = httpHandler.DoMethodReturnString("AttachmentUpload_DownZip");
if (data.indexOf('err@') == 0) {
alert(data); //如果是异常,就提提示.
return;
}
if (data.indexOf('url@') == 0) {
data = data.replace('url@', ''); //如果返回url就直接转向.
var i = data.indexOf('\DataUser');
var str = '/' + data.substring(i);
str = str.replace('\\\\', '\\');
if (plant != 'CCFlow') {
var currentPath = GetHrefUrl();
var path = currentPath.substring(0, currentPath.indexOf('/WF') + 1);
str = path + str;
} else {
str = basePath + str;
}
SetHref(str);
}
}
/**
* 删除附件
* @param delPKVal
*/
function Del(delPKVal, fk_framAttachment, name) {
if (window.confirm('您确定要删除吗? ') == false)
return;
var handler = new HttpHandler("BP.WF.HttpHandler.WF_CCForm");
handler.AddPara("DelPKVal", delPKVal);
var data = handler.DoMethodReturnString("AttachmentUpload_Del");
if (data.indexOf("err@") != -1) {
alert(data);
console.log(data);
return;
}
var opt = AthParams.Opt;
if (opt != undefined) {
var fileListArray = uploadFileList.getFileList(opt);
var newFileListArray = [];
for (var i = 0; i < fileListArray.length; i++) {
if (fileListArray[i].name == name)
continue;
newFileListArray.push(fileListArray[i]);
}
uploadFileList.setFileList(newFileListArray, opt);
}
//获取
InitAthPage("Div_" + fk_framAttachment);
AthTable_Init(fk_framAttachment, "Div_" + fk_framAttachment, pageData.WorkID);
}
//在线预览,如果需要连接其他的文件预览查看器,就需要在这里重写该方法.
function AthView(mypk, filePath) {
debugger;
if (typeof AthViewOverWrite === 'function') {
AthViewOverWrite(mypk);
return;
}
if (typeof IsOnlinePreviewOfAth == "undefined")
IsOnlinePreviewOfAth = true;
if (IsOnlinePreviewOfAth == true) {
//配置的在线预览的方式,待处理.
var host = window.location.protocol + "//" + window.location.host;
var url = host + filePath;
//url = 'http://localhost:2296/DataUser/UploadFile/ND18201/838/6456dd46-04ec-4843-a057-31351053cd42.混合 - 副本.docx';
url = encodeURIComponent(base64Encode(url));
//debugger;
//预览文件服务器.
var fileServerHost = PreviewPathOfAth;
// window.open("/home/OA/jflow-web/DataUser/UploadFile" + lujin[1], "_blank");
//对它进行编码 .
window.open(fileServerHost + '/onlinePreview?url=' + url);
return;
}
Down2018(mypk);
}
function base64Encode(input) {
let _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
let output = "";
let chr1, chr2, chr3, enc1, enc2, enc3, enc4;
let i = 0;
input = this.utf8_encode(input);
while (i < input.length) {
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
_keyStr.charAt(enc1) + _keyStr.charAt(enc2) +
_keyStr.charAt(enc3) + _keyStr.charAt(enc4);
}
return output;
}
function utf8_encode(input) {
input = input.replace(/\r\n/g, "\n");
let utftext = "";
for (let n = 0; n < input.length; n++) {
let c = input.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
} else if ((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
} else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
/**
* 更改附件上传的分类类别
* @param {any} sort
* @param {any} FK_FrmAttachment
*/
function changeSort(sort, FK_FrmAttachment) {
$("#Sort_" + FK_FrmAttachment).val(sort);
/*if ($("#file_" + FK_FrmAttachment).length == 0) {
var inputObj = document.createElement('input');
inputObj.setAttribute('id', "file_" + FK_FrmAttachment);
inputObj.setAttribute('name', "file_" + FK_FrmAttachment);
inputObj.setAttribute('type', 'file');
document.forms[0].appendChild(inputObj);
}
document.getElementById("file_" + FK_FrmAttachment).click();*/
//激活上传文件
$("#fileUpload_" + FK_FrmAttachment + " .uploadBts .selectFileBt").click()
}
function SaveUpload(fk_frmAttachment, uploadUrl) {
//必填项和正则表达式检查
var formCheckResult = true;
if (checkBlanks() == false) {
formCheckResult = false;
}
if (checkReg() == false) {
formCheckResult = false;
}
if (formCheckResult == false) {
alert("请检查表单必填项和正则表达式");
return false;
}
UploadChangeAth(uploadUrl, fk_frmAttachment);
}
/**
* 图片附件上传
*/
function UploadChangeAth(uploadUrl, fk_frmAttachment) {
if ($("#file_" + fk_frmAttachment).length == 0)
return;
var fileObj = $("#file_" + fk_frmAttachment).val();
if (typeof (fileObj) == "undefined" || fileObj.size <= 0) {
alert("请选择上传的文件.");
return;
}
var file = document.getElementById("file_" + fk_frmAttachment).files[0];
var fileSize = AthParams.AthInfo[fk_frmAttachment][0][2];
if (file.size > fileSize * 1000) {
alert("上传附件大小的最大限制是" + fileSize + "KB");
return;
}
var fileExt = fileObj.substring(fileObj.lastIndexOf(".")).toLowerCase();
var exts = AthParams.AthInfo[fk_frmAttachment][0][3];
if (exts == null || exts == "" || exts == undefined)
exts = "*.*";
//附件的后缀
if (exts != "*.*" && exts.indexOf(fileExt) == -1) {
alert("附件上传的格式是" + exts);
return;
}
var uploadUrl = "";
if (plant == 'CCFlow')
uploadUrl = basePath + '/WF/CCForm/ProcessRequest?DoType=HttpHandler&HttpHandlerName=BP.WF.HttpHandler.WF_CCForm&AttachPK=' + fk_frmAttachment + '&DoMethod=MoreAttach&FK_Flow=' + pageData.FK_Flow + '&PKVal=' + athRefPKVal;
else {
uploadUrl = basePath + "/WF/Ath/AttachmentUploadS.do?FK_FrmAttachment=" + fk_frmAttachment + '&FK_Flow=' + pageData.FK_Flow + "&PKVal=" + athRefPKVal;
}
uploadUrl += "&WorkID=" + pageData.WorkID;
uploadUrl += "&FID=" + pageData.FID;
uploadUrl += "&FK_Node=" + pageData.FK_Node;
uploadUrl += "&PWorkID=" + GetQueryString("PWorkID");
uploadUrl += "&FK_MapData=" + AthParams.FK_MapData;
//form表单序列话
var parasData = $("#Form_" + fk_frmAttachment).serialize();
//form表单序列化时调用了encodeURLComponent方法将数据编码了
parasData = decodeURIComponent(parasData, true);
parasData = decodeURIComponent(parasData, true);
parasData = parasData.replace(/&/g, '@');
parasData = parasData.replace(/TB_/g, '');
parasData = parasData.replace(/RB_/g, '');
parasData = parasData.replace(/CB_/g, '');
parasData = parasData.replace(/DDL_/g, '');
//提交数据
var option = {
url: uploadUrl + "&parasData=" + parasData,
type: 'POST',
dataType: 'json',
headers: { "ClientCallMode": "ajax" },
success: function (data) {
if (data != null && data.indexOf("err@") != -1) {
alert(data.replace("err@", ""));
return;
}
if (typeof AfterAthUploadOver === 'function')
AfterAthUploadOver(fk_frmAttachment, AthParams.PKVal, xhr.responseText.substring(0, xhr.responseText.length - 1));
InitAthPage("Div_" + fk_frmAttachment);
},
error: function (xhr, status, err) {
if (xhr.responseText != null && xhr.responseText.indexOf("err@") != -1) {
alert(xhr.responseText);
return;
}
if (typeof AfterAthUploadOver === 'function')
AfterAthUploadOver(fk_frmAttachment, AthParams.PKVal, xhr.responseText.substring(0, xhr.responseText.length - 1));
InitAthPage("Div_" + fk_frmAttachment);
}
};
$("form").ajaxSubmit(option);
return false;
}
//解析附件扩张字段
function InitAthMapAttrOfCtrlFool(db, mapAttr) {
var defValue = "";
if (db == !"")
defValue = GetPara(mapAttr.Name, db.AtPara)
var eleHtml = '';
//外部数据源类型.
if (mapAttr.LGType == "0" && mapAttr.MyDataType == "1" && mapAttr.UIContralType == 1) {
if (mapAttr.UIIsEnable == 0) {
var ctrl = "<input maxlength=" + mapAttr.MaxLen + " id='TB_" + mapAttr.KeyOfEn + "' name='TB_" + mapAttr.KeyOfEn + "' type=hidden class='form-control' type='text'/>";
defValue = ConvertDefVal(flowData, mapAttr.DefVal, mapAttr.KeyOfEn + "T");
if (defValue == '' || defValue == null)
defValue = '无';
ctrl += "<input maxlength=" + mapAttr.MaxLen + " id='TB_" + mapAttr.KeyOfEn + "Text' value='" + defValue + "' disabled='disabled' type='text'/>";
return ctrl;
}
return "<select id='DDL_" + mapAttr.KeyOfEn + "' name='DDL_" + mapAttr.KeyOfEn + "' onchange='changeEnable(this,\"" + mapAttr.FK_MapData + "\",\"" + mapAttr.KeyOfEn + "\",\"" + mapAttr.AtPara + "\")'>" + InitDDLOperation(mapAttr, defValue) + "</select>";
}
//外键类型.
if (mapAttr.LGType == "2" && mapAttr.MyDataType == "1") {
var data = flowData[mapAttr.UIBindKey];
//枚举类型.
if (mapAttr.UIIsEnable == 1)
enableAttr = "";
else
enableAttr = "disabled='disabled'";
return "<select id='DDL_" + mapAttr.KeyOfEn + "' name='TB_" + mapAttr.KeyOfEn + "' onchange='changeEnable(this,\"" + mapAttr.FK_MapData + "\",\"" + mapAttr.KeyOfEn + "\",\"" + mapAttr.AtPara + "\")'>" + InitDDLOperation(mapAttr, defValue) + "</select>";
}
//添加文本框 ,日期控件等.
//AppString
if (mapAttr.MyDataType == "1") { //不是外键
if (mapAttr.UIHeight <= 40) //普通的文本框.
return "<input maxlength=" + mapAttr.MaxLen + " id='TB_" + mapAttr.KeyOfEn + "' name='TB_" + mapAttr.KeyOfEn + "' type='text'/>";
if (mapAttr.AtPara && mapAttr.AtPara.indexOf("@IsRichText=1") >= 0) {
var eleHtml = "";
//如果是富文本就使用百度 UEditor
if (mapAttr.UIIsEnable == "0") {
//只读状态直接 div 展示富文本内容
eleHtml += "<div class='richText' style='width:99%;margin-right:2px'>" + defValue + "</div>";
} else {
document.BindEditorMapAttr = mapAttr; //存到全局备用
//设置编辑器的默认样式
var styleText = "text-align:left;font-size:12px;";
styleText += "width:100%;";
styleText += "height:" + mapAttr.UIHeight + "px;";
//注意这里 name 属性是可以用来绑定表单提交时的字段名字的 id 是特殊约定的.
eleHtml += "<script id='editor' name='TB_" + mapAttr.KeyOfEn + "' type='text/plain' style='" + styleText + "'>" + defValue + "</script>";
}
eleHtml = "<div style='white-space:normal;'>" + eleHtml + "</div>";
return eleHtml
}
//普通的大块文本.
return "<textarea maxlength=" + mapAttr.MaxLen + " style='height:" + mapAttr.UIHeight + "px;width:100%;' id='TB_" + mapAttr.KeyOfEn + "' name='TB_" + mapAttr.KeyOfEn + "' type='text' " + (mapAttr.UIIsEnable == 1 ? '' : ' disabled="disabled"') + " />"
}
//日期类型.
if (mapAttr.MyDataType == 6) {
var enableAttr = '';
if (mapAttr.UIIsEnable == 1)
enableAttr = 'onfocus="WdatePicker({dateFmt:' + "'yyyy-MM-dd'})" + '";';
else
enableAttr = "disabled='disabled'";
return "<input type='text' " + enableAttr + " value='" + defValue + "' style='width:120px;' class='form-control' id='TB_" + mapAttr.KeyOfEn + "' name='TB_" + mapAttr.KeyOfEn + "'/>";
}
//时期时间类型.
if (mapAttr.MyDataType == 7) {
var enableAttr = '';
if (mapAttr.UIIsEnable == 1)
enableAttr = 'onfocus="WdatePicker({dateFmt:' + "'yyyy-MM-dd HH:mm'})" + '";';
else
enableAttr = "disabled='disabled'";
return "<input type='text' value='" + defValue + "' style='width:140px;' class='form-control' " + enableAttr + " id='TB_" + mapAttr.KeyOfEn + "' name='TB_" + mapAttr.KeyOfEn + "' />";
}
// boolen 类型.
if (mapAttr.MyDataType == 4) { // AppBoolean = 7
if (mapAttr.UIIsEnable == 1)
enableAttr = "";
else
enableAttr = "disabled='disabled'";
//CHECKBOX 默认值
var checkedStr = '';
if (checkedStr != "true" && checkedStr != '1') {
checkedStr = ' checked="checked" ';
}
return "<label ><input " + enableAttr + " " + (defValue == 1 ? "checked='checked'" : "") + " type='checkbox' id='CB_" + mapAttr.KeyOfEn + "' name='CB_" + mapAttr.KeyOfEn + "' " + checkedStr + " /> </label>";
}
//枚举类型.
if (mapAttr.MyDataType == 2 && mapAttr.LGType == 1) { //AppInt Enum
if (mapAttr.UIIsEnable == 1)
enableAttr = "";
else
enableAttr = "disabled='disabled'";
if (mapAttr.UIContralType == 1)
//return "<select " + enableAttr + " id='DDL_" + mapAttr.KeyOfEn + "' class='form-control' >" + InitDDLOperation(flowData, mapAttr, defValue) + "</select>";
return "<select id='DDL_" + mapAttr.KeyOfEn + "' name='DDL_" + mapAttr.KeyOfEn + "' class='form-control' onchange='changeEnable(this,\"" + mapAttr.FK_MapData + "\",\"" + mapAttr.KeyOfEn + "\",\"" + mapAttr.AtPara + "\")'>" + InitAthDDLOperation(mapAttr, defValue) + "</select>";
if (mapAttr.UIContralType == 3) {
//横向排列
var RBShowModel = 3;
if (mapAttr.AtPara.indexOf("@RBShowModel=3") == -1)
RBShowModel = 0;
return InitRBShowContentAth(mapAttr, defValue, RBShowModel, enableAttr);
}
}
// AppDouble AppFloat
if (mapAttr.MyDataType == 5 || mapAttr.MyDataType == 3) {
return "<input value='" + defValue + "' style='text-align:right;width:80px;'class='form-control' onkeyup=" + '"' + "if(isNaN(value)) execCommand('undo')" + '"' + " onafterpaste=" + '"' + "if(isNaN(value))execCommand('undo')" + '"' + " maxlength=" + mapAttr.MaxLen / 2 + " type='text' id='TB_" + mapAttr.KeyOfEn + "' name='TB_" + mapAttr.KeyOfEn + "'/>";
}
if ((mapAttr.MyDataType == 2)) { //AppInt
var enableAttr = '';
if (mapAttr.UIIsEnable != 1) {
enableAttr = "disabled='disabled'";
}
//alert(defValue);
return "<input value='0' style='text-align:right;width:80px;' class='form-control' onkeyup=" + '"' + "if(isNaN(value) || (value%1 !== 0))execCommand('undo')" + '"' + " onafterpaste=" + '"' + "if(isNaN(value) || (value%1 !== 0))execCommand('undo')" + '"' + " maxlength=" + mapAttr.MaxLen / 2 + " type='text'" + enableAttr + " id='TB_" + mapAttr.KeyOfEn + "' name='TB_" + mapAttr.KeyOfEn + "'/>";
}
//AppMoney AppRate
if (mapAttr.MyDataType == 8) {
return "<input value='" + defValue + "' style='text-align:right;width:80px;' class='form-control' onkeyup=" + '"' + "if(isNaN(value))execCommand('undo')" + '"' + " onafterpaste=" + '"' + "if(isNaN(value))execCommand('undo')" + '"' + " maxlength=" + mapAttr.MaxLen / 2 + " type='text' name='TB_" + mapAttr.KeyOfEn + "' id='TB_" + mapAttr.KeyOfEn + "'/>";
}
alert(mapAttr.Name + "的类型没有判断.");
return;
}
//初始化下拉列表框的OPERATION
function InitAthDDLOperation(mapAttr, defVal) {
var operations = '';
//外键类型的.
if (mapAttr.LGType == 2) {
if (flowData[mapAttr.KeyOfEn] != undefined) {
$.each(flowData[mapAttr.KeyOfEn], function (i, obj) {
operations += "<option " + (obj.No == defVal ? " selected='selected' " : "") + " value='" + obj.No + "'>" + obj.Name + "</option>";
});
}
if (flowData[mapAttr.UIBindKey] != undefined) {
$.each(flowData[mapAttr.UIBindKey], function (i, obj) {
operations += "<option " + (obj.No == defVal ? " selected='selected' " : "") + " value='" + obj.No + "'>" + obj.Name + "</option>";
});
}
return operations;
}
//枚举类型的.
if (mapAttr.LGType == 1) {
var enums = new Entities("BP.Sys.SysEnums");
enums.Retrieve("EnumKey", mapAttr.UIBindKey);
$.each(enums, function (i, obj) {
operations += "<option " + (obj.IntKey == defVal ? " selected='selected' " : "") + " value='" + obj.IntKey + "'>" + obj.Lab + "</option>";
});
return operations;
}
//外部数据源类型 FrmGener.js.InitDDLOperation
if (mapAttr.LGType == 0) {
//如果是一个函数.
var fn;
try {
if (mapAttr.UIBindKey) {
fn = cceval(mapAttr.UIBindKey);
}
} catch (e) {
// alert(e);
}
if (typeof fn == "function") {
$.each(fn.call(), function (i, obj) {
operations += "<option " + (obj.No == defVal ? " selected='selected' " : "") + " value='" + obj.No + "'>" + obj.Name + "</option>";
});
return operations;
}
if (typeof CommonHandler == "function") {
CommonHandler.call("", mapAttr.UIBindKey, function (data) {
GenerBindDDL("DDL_" + mapAttr.KeyOfEn, data, "No", "Name");
})
return "";
}
if (mapAttr.UIIsEnable == 0) {
alert('不可编辑');
operations = "<option value='" + defVal + "'>" + defVal + "</option>";
return operations;
}
if (flowData[mapAttr.KeyOfEn] != undefined) {
$.each(flowData[mapAttr.KeyOfEn], function (i, obj) {
operations += "<option " + (obj.No == defVal ? " selected='selected' " : "") + " value='" + obj.No + "'>" + obj.Name + "</option>";
});
return operations;
}
if (flowData[mapAttr.UIBindKey] != undefined) {
$.each(flowData[mapAttr.UIBindKey], function (i, obj) {
operations += "<option " + (obj.No == defVal ? " selected='selected' " : "") + " value='" + obj.No + "'>" + obj.Name + "</option>";
});
return operations;
}
return "";
// alert('没有获得约定的数据源.');
alert('没有获得约定的数据源..' + mapAttr.KeyOfEn + " " + mapAttr.UIBindKey);
}
alert(mapAttr.LGType + "没有判断.");
}
function InitRBShowContentAth(mapAttr, defValue, RBShowModel, enableAttr) {
var rbHtml = "";
var enums = new Entities("BP.Sys.SysEnums");
enums.Retrieve("EnumKey", mapAttr.UIBindKey);
enums = $.grep(enums, function (value) {
return value.EnumKey == mapAttr.UIBindKey;
});
$.each(enums, function (i, obj) {
if (RBShowModel == 3)
//<input " + (defValue == 1 ? "checked='checked'" : "") + " type='checkbox' id='CB_" + mapAttr.KeyOfEn + "' name='CB_" + mapAttr.KeyOfEn + "' " + checkedStr + " /> &nbsp;" + mapAttr.Name + "</label</div>";
rbHtml += "<label><input " + enableAttr + " " + (obj.IntKey == defValue ? "checked='checked' " : "") + " type='radio' name='RB_" + mapAttr.KeyOfEn + "' id='RB_" + mapAttr.KeyOfEn + "_" + obj.IntKey + "' value='" + obj.IntKey + "' />&nbsp;" + obj.Lab + "</label>";
else
rbHtml += "<label><input " + enableAttr + " " + (obj.IntKey == defValue ? "checked='checked' " : "") + " type='radio' name='RB_" + mapAttr.KeyOfEn + "' id='RB_" + mapAttr.KeyOfEn + "_" + obj.IntKey + "' value='" + obj.IntKey + "' />&nbsp;" + obj.Lab + "</label><br/>";
});
return rbHtml;
}