znbm.ek.jsV20170518
2017-05-18 09:18:40 访问(2165) 赞(0) 踩(0)
// 职能部门相关的方法 //
function EkGetCtrlId(theCtrl)
{
// 获得控件的ID //
if (theCtrl == null)
return "";
var clientID = theCtrl.id;
if (clientID == undefined) {
// 如果控件Id为未定义 //
clientID = $(theCtrl).attr("id");
}
if (clientID == undefined || clientID == null || clientID == "") {
return "";
}
return clientID;
}
function EkGetRadiobuttonListCtrlValue(curCtrl) {
// 获得RadiobuttonList的选中值 //
var clientID = curCtrl.id;
if (clientID == undefined) {
// 如果控件Id为未定义 //
clientID = $(curCtrl).attr("id");
}
if (clientID == undefined || clientID == null || clientID == "") {
return;
}
var idx = 0;
var theCtrl = null;
while (true) {
theCtrl = document.getElementById(clientID + "_" + idx);
if (theCtrl == null)
return null;
if (theCtrl.checked) {
// 返回选中的值 //
return theCtrl.value;
}
idx = idx + 1;
}
}
function EkSetRadiobuttonListCtrlValue(curCtrl, theValue) {
// 设置RadiobuttonList的选中值 //
var clientID = curCtrl.id;
if (clientID == undefined) {
clientID = $(curCtrl).attr("id");
}
if (clientID == undefined || clientID == null || clientID == "") {
return;
}
var idx = 0;
var theCtrl = null;
while (true) {
theCtrl = document.getElementById(clientID + "_" + idx);
if (theCtrl == null)
return;
if (theCtrl.value == theValue)
theCtrl.checked = true;
else
theCtrl.checked = false;
idx = idx + 1;
}
}
function EkGetCheckBoxListCtrlValue(curCtrl, linkChar) {
// 获得CheckBoxList的选中值 //
var clientID = curCtrl.id;
if (clientID == undefined) {
clientID = $(curCtrl).attr("id");
}
if (clientID == undefined || clientID == null || clientID == "") {
return;
}
var idx = 0;
var theCtrl = null;
var theResult = "";
var isFirst = true;
while (true) {
theCtrl = document.getElementById(clientID + "_" + idx);
if (theCtrl == null)
return theResult;
if (theCtrl.checked) {
if (isFirst) {
isFirst = false;
}
else {
theResult += linkChar;
}
theResult += theCtrl.value;
}
idx = idx + 1;
}
return theResult;
}
function EkSetCheckBoxListCtrlValue(curCtrl, linkChar, theValue) {
// 设置CheckBoxList的选中值 //
var clientID = curCtrl.id;
if (clientID == undefined)
{
clientID = $(curCtrl).attr("id");
}
if (clientID == undefined || clientID == null || clientID == "") {
return;
}
var idx = 0;
var isEmpty = true;
if (theValue != null && theValue != "")
{
theValue = linkChar + theValue + linkChar;
isEmpty = false;
}
var theCtrl = null;
while (true) {
theCtrl = document.getElementById(clientID + "_" + idx);
if (theCtrl == null)
return;
idx = idx + 1;
if (isEmpty)
{
theCtrl.checked = false;
}
else
{
if(theValue.indexOf(linkChar+theCtrl.value+linkChar) == -1)
{
theCtrl.checked = false;
}
else
{
theCtrl.checked = true;
}
}
}
}
function EkGetCheckBoxValue(curCtrl) {
// 获得checkbox控件的值 //
if (curCtrl == null)
return "";
var ctrlId = EkGetCtrlId(curCtrl);
if (ctrlId == null || ctrlId == "" || ctrlId == undefined)
return "";
var chkCtrl = document.getElementById(ctrlId);
if (chkCtrl == null)
return "";
if (chkCtrl.checked)
return "1";
else
return "0";
}
function EkSetCheckBoxValue(curCtrl, theValue) {
// 设置checkbox控件的值 //
if (curCtrl == null)
return "";
var ctrlId = EkGetCtrlId(curCtrl);
if (ctrlId == null || ctrlId == "" || ctrlId == undefined)
return "";
var chkCtrl = document.getElementById(ctrlId);
if (chkCtrl == null)
return "";
if (theValue == true || theValue == "1")
chkCtrl.checked = true;
else
chkCtrl.checked = false;
}
function EkGetMultipleSelectValue(curCtrl)
{
// 获得下拉多选框的值 //
if (curCtrl == null)
return "";
var theValue = $(curCtrl).val();
if (theValue == null)
return "";
var iLen = theValue.length;
var i = 0;
var theResult = "";
for (i = 0; i < iLen; ++i) {
if (i != 0)
theResult += ",";
theResult += theValue[i];
}
return theResult;
}
function EkSetMultipleSelectValue(curCtrl, theValue) {
// 设置下拉多选框的值 //
if (curCtrl == null)
return;
// 清空原先的选中 //
$(curCtrl)[0].sumo.unSelectAll();
if (theValue == null || theValue == "")
{
// 没有给定值,清空选中 //
return;
}
var isText = false;
$.each(theValue.split(','), function (i, v) {
if (isText == true) {
$(curCtrl)[0].sumo.selectItemByText(v);
} else {
$(curCtrl)[0].sumo.selectItem(v);
}
});
}
function EkGetCtrlValue(curCtrl) {
// 获得控件的值 //
if (curCtrl == null)
return null;
// 优先判断是否自动完成 //
var vHidValueCtrlId = $(curCtrl).attr("autocompletervaluectrlid");
// 如果是并找到控件,取该值 //
if (vHidValueCtrlId != null && vHidValueCtrlId != "" && vHidValueCtrlId != undefined) {
return $("#" + vHidValueCtrlId).val();
}
// 燃油判断树选中 //
vHidValueCtrlId = $(curCtrl).attr("treeloadvaluectrlid");
// 如果是并找到控件,取该值 //
if (vHidValueCtrlId != null && vHidValueCtrlId != "" && vHidValueCtrlId != undefined) {
return $("#" + vHidValueCtrlId).val();
}
// jQuery可以用val()取到控件的值 //
// 但是有几个规则:
// checkbox: true=1;false=0,后续需要扩展这个方法做取值 //
// checkboxlist(复选框)、树的取值 //
var vEmCtrlType = $(curCtrl).attr("emctrltype");
var theResult = null;
switch(vEmCtrlType)
{
case "radiobuttonlist":
return EkGetRadiobuttonListCtrlValue(curCtrl);
case "checkboxlist":
return EkGetCheckBoxListCtrlValue(curCtrl, ",");
case "checkbox":
return EkGetCheckBoxValue(curCtrl);
case "span":
return $(curCtrl).html();
case "multipleselect":
return EkGetMultipleSelectValue(curCtrl);
}
theResult = $(curCtrl).val();
return theResult;
}
function EkSetCtrlValue(curCtrl, theValue) {
// 设置控件的值 //
if (curCtrl == null)
return;
var vEmCtrlType = $(curCtrl).attr("emctrltype");
switch (vEmCtrlType) {
case "radiobuttonlist":
EkSetRadiobuttonListCtrlValue(curCtrl, theValue);
return;
case "checkboxlist":
EkSetCheckBoxListCtrlValue(curCtrl, ",", theValue);
return;
case "checkbox":
EkSetCheckBoxValue(curCtrl, theValue);
return;
case "span":
$(curCtrl).html(theValue);
return;
case "multipleselect":
EkSetMultipleSelectValue(curCtrl, theValue);
return;
default:
break;
}
$(curCtrl).val(theValue);
}
function EkSetCtrlValueById(curCtrlId, theValue) {
// 通过控件ID,设置控件的值 //
var curCtrl = $("#" + curCtrlId);
// 设置控件的值 //
if (curCtrl == null)
return;
EkSetCtrlValue(curCtrl, theValue);
}
function EkGetSearchData4Build(theResult, pI, ekCode, isNormalSearch) {
// 将搜索条件装入Ajax的数组中,用于ajax实现 //
// pI == 搜索控件所在的容器(div) ==> 如果 pI == null 则整个网页 //
// ekCode == 控件元素searchcode对应的代号
// isNormalSearch == 是否普通搜索
var addCount = 0;
var isAdvSearch = !isNormalSearch;
var eA = null;
if (pI == null) {
// 如果没有指定容器 //
eA = $("[searchcode=" + ekCode + "]");
}
else {
// 如果指定了容器 //
eA = $("#" + pI).find("[searchcode=" + ekCode + "]");
}
var eALen = eA.length;
var i = 0;
var eI = null;
var eId = null;
var eName = null;
var eValue = null;
var searchselect = null;
var isAdd = true;
for (i = 0; i < eALen; ++i) {
eI = eA[i];
if (eI == null)
continue;
eId = eI.id;
if (eId == null || eId == "" || eId == undefined)
continue;
searchselect = $("#" + eId).attr("searchselect");
isAdd = false;
if (searchselect == 4) {
// 搜索或高级搜索 //
isAdd = true;
}
else if (searchselect == 2) {
if (isAdvSearch)
isAdd = false;
else
isAdd = true;
}
else if (searchselect == 3) {
if (isAdvSearch)
isAdd = true;
else
isAdd = false;
}
if (!isAdd)
continue;
eValue = EkGetCtrlValue(eI);
eName = eId;
theResult.push({ name: eName, value: eValue });
if (eValue != null && eValue != "" && eValue != undefined)
addCount = addCount + 1;
}
return addCount;
}
function EkGetSearchInfoData( current, per_num) {
// 将搜索条件装入Ajax的数组中,用于ajax实现 //
// current == 当前页索引(从1开始)
// per_num == 每页记录数
// 获得搜索的数据 //
var theResult = [];
theResult.push({ name: "PageIndex", value: current });
theResult.push({ name: "PageSize", value: per_num });
var tbCtrl = $("#" + EPI.TableId);
// 表格重新设置排序 //
var orderField = tbCtrl.attr("orderfield");
// 表格重新设置排序 //
var orderType = tbCtrl.attr("ordertype");
theResult.push({ name: "OrderField", value: orderField });
theResult.push({ name: "OrderType", value: orderType });
return theResult;
}
function EkGetSearchData(pI, ekCode, isNormalSearch, current, per_num) {
// 将搜索条件装入Ajax的数组中,用于ajax实现 //
// pI == 搜索控件所在的容器(div) ==> 如果 pI == null 则整个网页 //
// ekCode == 控件元素searchcode对应的代号
// isNormalSearch == 是否普通搜索
// current == 当前页索引(从1开始)
// per_num == 每页记录数
// 获得搜索的数据 //
var theResult = EkGetSearchInfoData(current, per_num);
EkGetSearchData4Build(theResult, pI, ekCode, isNormalSearch);
return theResult;
}
function BaseAjaxSearchData(current, per_num)
{
// 构建搜索 - 工具栏 + 弹窗 //
// 构建搜索 //
var theResult = EkGetSearchInfoData(current, per_num);
EkGetSearchData4Build(theResult, "div_search", "a", true);
// Echart相关的搜索条件 //
EkGetSearchData4Build(theResult, "echart_search", "a", true);
var addCount = EkGetSearchData4Build(theResult, "moresearch_box", "a", true);
if (addCount > 0)
{
// 如果有添加高级搜索的记录 //
$("#moresearch_btn").addClass("addmoresearch_btn");
}
else {
// 如果没有添加高级搜索的记录 //
$("#moresearch_btn").removeClass("addmoresearch_btn");
}
return theResult;
}
function EkResetSearchEvent( pI, ekCode, isNormalSearch) {
// 将搜索条件装入Ajax的数组中,用于ajax实现 //
// pI == 搜索控件所在的容器(div) ==> 如果 pI == null 则整个网页 //
// ekCode == 控件元素searchcode对应的代号
// isNormalSearch == 是否普通搜索
var isAdvSearch = !isNormalSearch;
var eA = null;
if (pI == null) {
// 如果没有指定容器 //
eA = $("[searchcode=" + ekCode + "]");
}
else {
// 如果指定了容器 //
eA = $("#" + pI).find("[searchcode=" + ekCode + "]");
}
var eALen = eA.length;
var i = 0;
var eI = null;
var eId = null;
var eName = null;
var eValue = null;
var searchselect = null;
var isAdd = true;
for (i = 0; i < eALen; ++i) {
eI = eA[i];
if (eI == null)
continue;
eId = eI.id;
if (eId == null || eId == "" || eId == undefined)
continue;
searchselect = $("#" + eId).attr("searchselect");
isAdd = false;
if (searchselect == 4) {
// 搜索或高级搜索 //
isAdd = true;
}
else if (searchselect == 2) {
if (isAdvSearch)
isAdd = false;
else
isAdd = true;
}
else if (searchselect == 3) {
if (isAdvSearch)
isAdd = true;
else
isAdd = false;
}
if (!isAdd)
continue;
EkSetCtrlValue(eI, "");
}
}
function BaseResetSearchEvent() {
// 重置高级搜索项 //
EkResetSearchEvent("div_search", "a", true);
EkResetSearchEvent("moresearch_box", "a", true);
}
function EkGetSaveDetailData(pI, ekCode, pkId) {
// 将保存内容装入Ajax的数组中,用于ajax实现 //
// pI == 搜索控件所在的容器(div) ==> 如果 pI == null 则整个网页 //
// ekCode == 控件元素searchcode对应的代号
// 获得保存的数据 //
var theResult = [];
theResult.push({ name: "_id", value: pkId });
var eA = null;
if (pI == null) {
// 如果没有指定容器 //
eA = $("[savecode=" + ekCode + "]");
}
else {
// 如果指定了容器 //
eA = $("#" + pI).find("[savecode=" + ekCode + "]");
}
var eALen = eA.length;
var i = 0;
var eI = null;
var eId = null;
var eName = null;
var eValue = null;
for (i = 0; i < eALen; ++i) {
eI = eA[i];
if (eI == null)
continue;
eId = eI.id;
if (eId == null || eId == "" || eId == undefined)
continue;
eValue = EkGetCtrlValue(eI);
eName = eId;
theResult.push({ name: eName, value: eValue });
}
return theResult;
}
function EkClearDetailData(containerId, ekCode) {
// 将录入内容清空,新增使用 //
// containerId == 搜索控件所在的容器(div) ==> 如果 containerId == null 则整个网页 //
// ekCode == 控件元素searchcode对应的代号
var eA = null;
if (containerId == null) {
// 如果没有指定容器 //
eA = $("[setcode=" + ekCode + "]");
}
else {
// 如果指定了容器 //
eA = $("#" + containerId).find("[setcode=" + ekCode + "]");
}
var eALen = eA.length;
var i = 0;
var eI = null;
for (i = 0; i < eALen; ++i) {
eI = eA[i];
if (eI == null)
continue;
EkSetCtrlValue(eI, "");
}
}
function EkSetDetailData(rData)
{
if (rData == null)
return;
// 获得赋值的数组 //
var itemList = rData.ItemList;
var iLen = itemList.length;
var i = 0;
var item = null;
for (i = 0; i < iLen; ++i) {
item = itemList[i];
// 对控件赋值 //
EkSetCtrlValueById(item.TheName, item.TheValue);
}
}
function EkToStr(str) {
// str 如果是null或undefined,返回空 //
if (str == null)
return "";
if (str == undefined)
return "";
return str;
}
function AjaxChangeValue(theResult, eName, eValue) {
// 添加或更改Ajax的选中值 //
var iLen = theResult.length;
var i = 0;
for(i = 0; i< iLen;++i)
{
if (theResult.name == eName)
{
theResult.value = eValue;
return theResult;
}
}
theResult.push({ name: eName, value: eValue });
return theResult;
}
function CheckBoxCheckClick(tableId, curCtrl) {
// 设置checkbox全选和全不选的操作 //
if (curCtrl == null)
return;
// 顶上的全选和全不选的checkbox //
var gId = tableId + "__0";
// 获得checkbox控件 //
var gCheck = document.getElementById(gId);
if (gCheck == null)
return;
// 获得当前的控件ID //
var ctrlId = curCtrl.id;
// 如果当前控件没有给定id等属性信息 //
if (ctrlId == undefined || ctrlId == null || ctrlId == "")
return;
var isGroup = false;
if (ctrlId == gId) {
// 组选择控件 //
isGroup = true;
}
var checkFlag = curCtrl.checked;
var eA = $("[tablename=" + tableId + "]");
if (eA == null)
return;
var i = 0;
var iLen = eA.length;
if (isGroup) {
for (i = 0; i < iLen; ++i) {
eA[i].checked = checkFlag;
}
return;
}
if (!checkFlag) {
gCheck.checked = false;
return;
}
var iCount = 0;
for (i = 0; i < iLen; ++i) {
if (eA[i].id == gId)
continue;
if (eA[i].checked)
++iCount;
}
if (iCount == iLen - 1) {
gCheck.checked = true;
}
else {
gCheck.checked = false;
}
}
function CheckBoxRegClick(tableId)
{
// 注册CheckBox的全选和全不选事件 //
$("[tablename=" + tableId + "]").click(function () {
CheckBoxCheckClick(tableId, this);
});
}
function HtmlSelectSetMultiple(ctrlId)
{
// Html.select 设置多选 //
if (ctrlId == null || ctrlId == "" || ctrlId == undefined)
return;
// 通过Ajax加载select //
var theCtrl = $("#" + ctrlId);
if (theCtrl == null)
return;
var theChild = theCtrl.children();
var theCount = 0;
if(theChild==undefined || theChild==null)
theCount = 0;
else
theCount = theChild.length;
theCtrl.SumoSelect({
search: true,
csvDispCount: theCount,
searchText: "搜索",
selectAll: true
});
}
function HtmlSelectSetMultipleByCtrl(ctrlThis) {
// 通过控件设置下拉框多选 //
if (ctrlThis == null)
return;
var ctrlId = EkGetCtrlId(ctrlThis);
HtmlSelectSetMultiple(ctrlId);
}
function HtmlSelectInitMultiple()
{
// HTML的select初始化多选 //
var eA = $("[ismultiple=true]");
if (eA == null)
return;
var iLen = eA.length;
var i = 0;
var isAjaxAutoLoad = null;
for (i = 0; i < iLen; ++i)
{
isAjaxAutoLoad = $(eA[i]).attr("ajaxautoload");
// 自动加载的不做处理 //
if (isAjaxAutoLoad == "true")
continue;
HtmlSelectSetMultipleByCtrl(eA[i]);
}
}
function AjaxLoadHtmlSelect(ctrlId, ajaxUrl, emDS, listItemAddEm)
{
// 通过ajax加载HTML的select //
if (ajaxUrl == null)
return;
// 通过Ajax加载select //
var theCtrl = $("#" + ctrlId);
if (theCtrl == null)
return;
if (listItemAddEm == null || listItemAddEm == undefined) {
listItemAddEm = "";
}
// 获得搜索的数据 //
var ajxData = [];
ajxData.push({ name: "em", value: emDS });
ajxData.push({ name: "listAddEm", value: listItemAddEm });
$.ajax({
cache: false,
async: true,
url: ajaxUrl,
type: "post",
data: ajxData,
success: function (rData) {
if (rData == null)
return;
// 获得赋值的数组 //
var itemList = rData.ItemList;
var iLen = itemList.length;
var i = 0;
var item = null;
var htmlV = "";
for (i = 0; i < iLen; ++i) {
item = itemList[i];
if (item.IsCtrlSelected) {
htmlV += "<option value=\"" + item.TheValue + "\" selected=\"selected\">" + item.TheName + "</option>";
}
else {
htmlV += "<option value=\"" + item.TheValue + "\">" + item.TheName + "</option>";
}
}
$(theCtrl).html(htmlV);
var multipleAttr = $(theCtrl).attr("multiple");
if (multipleAttr == "multiple") {
// 如果是多选模式 //
HtmlSelectSetMultiple(ctrlId);
}
}
});
}
function SelectOptionHtmlGet(theText, theValue, isSelected) {
// 绘制select的option //
var htmlV = "";
if (isSelected) {
htmlV += "<option value=\"" + theValue + "\" selected=\"selected\">" + theText + "</option>";
}
else {
htmlV += "<option value=\"" + theValue + "\">" + theText + "</option>";
}
return htmlV;
}
// 树的显示和隐藏操作 //
// 树显示 //
function ZTreeClickShowMenu(thisCtrl) {
if (thisCtrl != null)
{
if (thisCtrl.id != EPI.DropTreeTextBoxId)
{
// 不同于原先的ID //
// 隐藏原先的DIV //
ZTreeClickHideMenu();
}
// 下拉树的TextBox的控件ID //
EPI.DropTreeTextBoxId = thisCtrl.id;
// 下拉树的DIV层ID //
EPI.DropTreeDivId = "SelectDiv" + EPI.DropTreeTextBoxId;
// 下拉树的UL层ID //
EPI.DropTreeULId = "UL" + EPI.DropTreeTextBoxId;
// 下拉树的值ID //
EPI.DropTreeValueId = "hid" + EPI.DropTreeTextBoxId;
}
var valueCtrl = $("#" + EPI.DropTreeTextBoxId);
var valueCtrlOffset = $("#" + EPI.DropTreeTextBoxId).offset();
var addboxObj = $("#" + EPI.DropTreeAddBoxId)
if (addboxObj.length > 0) {
var addboxOffset = $("#" + EPI.DropTreeAddBoxId).offset();
$("#" + EPI.DropTreeDivId).css({ left: valueCtrlOffset.left - addboxOffset.left + "px", top: valueCtrlOffset.top - addboxOffset.top + valueCtrl.outerHeight() + "px" }).slideDown("fast");
}
else {
$("#" + EPI.DropTreeDivId).css({ left: valueCtrlOffset.left + "px", top: valueCtrlOffset.top + valueCtrl.outerHeight() + "px" }).slideDown("fast");
}
$("body").bind("mousedown", OnZTreeBodyDown);
}
// 隐藏树 //
function ZTreeClickHideMenu() {
if (EPI.DropTreeDivId == null)
return;
if (EPI.DropTreeDivId == "")
return;
$("#" + EPI.DropTreeDivId).fadeOut("fast");
$("body").unbind("mousedown", OnZTreeBodyDown);
}
function OnZTreeBodyDown(event) {
// 浮动层 //
if (event.target.id == EPI.DropTreeDivId)
return;
// 元素 //
if($(event.target).parents("#" + EPI.DropTreeDivId).length > 0)
return;
ZTreeClickHideMenu();
}
// 点击事件 //
function OnZTreeItemClick(e, treeId, treeNode) {
//$('#txtd_PID').val(treeNode.id);
//$("#" + curId).val(treeNode.name);
$("#" + EPI.DropTreeTextBoxId).val(treeNode.name);
$("#" + EPI.DropTreeValueId).val(treeNode.id);
ZTreeClickHideMenu();
}
// 树的显示和隐藏操作END //
function AjaxLoadHtmlTree(ctrlId, ajaxUrl, emDS, listItemAddEm) {
// 通过ajax加载HTML的tree //
if (ajaxUrl == null)
return;
// 通过Ajax加载select //
var theCtrl = $("#" + ctrlId);
if (theCtrl == null)
return;
if (listItemAddEm == null || listItemAddEm == undefined) {
listItemAddEm = "";
}
// 获得搜索的数据 //
var ajxData = [];
ajxData.push({ name: "em", value: emDS });
ajxData.push({ name: "listAddEm", value: listItemAddEm });
$.ajax({
cache: false,
async: true,
url: ajaxUrl,
type: "post",
data: ajxData,
success: function (rData) {
if (rData == null)
return;
var setting = {
data: {
key: {
title: "title"
},
simpleData: {
enable: true
}
},
callback: {
onClick: OnZTreeItemClick
}
};
var treeULCtrl = $("#UL" + ctrlId);
var treeObj = $.fn.zTree.init(treeULCtrl, setting, rData.zNodes);
if (treeObj != null) {
// 获得树节点 //
var nodes = treeObj.getNodes();
if (nodes != null && nodes.length > 0) {
treeObj.expandNode(nodes[0], true, false, true);
}
}
$("#" + ctrlId).focus(function () {
ZTreeClickShowMenu(this);
});
}
});
}
function HtmlInitTreeLoad(ajaxUrl) {
// HTML的树初始化自动加载 //
var eA = $("[treeload=true]");
if (eA == null)
return;
var iLen = eA.length;
var i = 0;
var ctrlId = null;
var ajaxUrlSet = null;
var ajaxEm = null;
var listItemAddEm = null;
for (i = 0; i < iLen; ++i) {
ctrlId = EkGetCtrlId(eA[i]);
ajaxUrlSet = $(eA[i]).attr("treeloadurl");
if (ajaxUrlSet == null || ajaxUrlSet == "" || ajaxUrlSet == undefined)
ajaxUrlSet = ajaxUrl;
ajaxEm = $(eA[i]).attr("treeloadem");
listItemAddEm = $(eA[i]).attr("treecontroladditemem");
// 加载树 //
AjaxLoadHtmlTree(ctrlId, ajaxUrlSet, ajaxEm, listItemAddEm);
}
}
function HtmlSelectInitAjaxAutoLoad(ajaxUrl) {
// HTML的select初始化自动加载 //
var eA = $("[ajaxautoload=true]");
if (eA == null)
return;
var iLen = eA.length;
var i = 0;
var ctrlId = null;
var ajaxUrlSet = null;
var ajaxEm = null;
var listItemAddEm = null;
for (i = 0; i < iLen; ++i) {
ctrlId = EkGetCtrlId(eA[i]);
ajaxUrlSet = $(eA[i]).attr("ajaxloadurl");
if (ajaxUrlSet == null || ajaxUrlSet == "" || ajaxUrlSet == undefined)
ajaxUrlSet = ajaxUrl;
ajaxEm = $(eA[i]).attr("ajaxloadem");
listItemAddEm = $(eA[i]).attr("listcontroladditemem");
AjaxLoadHtmlSelect(ctrlId, ajaxUrlSet, ajaxEm, listItemAddEm);
}
}
function EkGetCheckBoxSelectedValue(tableId) {
// 如果没有指定表格,返回空 //
if (tableId == null || tableId == "" || tableId == undefined)
return null;
// 顶上的全选和全不选的checkbox //
var gId = tableId + "__0";
var eA = $("[tablename=" + tableId + "]");
if (eA == null)
return;
// 获得选中的数据 //
var theResult = [];
var i = 0;
var iLen = eA.length;
for (i = 0; i < iLen; ++i) {
if (eA[i].id == gId)
continue;
if (!eA[i].checked) {
continue;
}
// 将 id,value 装入数组 //
theResult.push({ name: eA[i].id, value: eA[i].value });
}
return theResult;
}
function EkGetTableParent(theCtrl) {
while (true) {
if (theCtrl == null)
return null;
if (theCtrl.tagName == "table")
return theCtrl;
theCtrl = theCtrl.parent;
}
}
function EkClearTableHeadText(vThis)
{
// 清空网页头 //
if (vThis == null)
return;
var theText = $(vThis).attr("showtext");
if (theText == null || theText == undefined)
return;
$(vThis).html(theText);
}
function EkSetTableHeadText4Order(vThis,orderType)
{
// 设置排序头 //
if (vThis == null)
return;
var theText = $(vThis).attr("showtext");
if (theText == null || theText == undefined)
return;
var linkText = "↓";
if (orderType == "asc")
linkText = "↑";
$(vThis).html(theText + linkText);
}
function HtmlRegAutoCompleterItem(theCtrl)
{
// 注册自动完成事件的单项 //
if (theCtrl == null)
return;
var ajaxUrl = null;
var ctrlId = EkGetCtrlId(theCtrl);
// 自动完成的URL地址 //
ajaxUrl = $(theCtrl).attr("autocompleterurl");
if (ajaxUrl == null || ajaxUrl == "" || ajaxUrl == undefined)
return;
$(theCtrl).autocompleter({
// object to local or url to remote search
source: ajaxUrl,
// custom template
template: '{{ label }}',
// show hint
hint: false,
callback: function (value, index, selected) {
if (selected) {
var vCtrlId = $("#" + ctrlId).attr("autocompletervaluectrlid");
if (vCtrlId == null || vCtrlId == "" || vCtrlId == undefined)
return;
$("#" + vCtrlId).val(selected.TheValue);
}
}
});
}
function HtmlRegAutoCompleter() {
// 注册自动完成事件 //
var eA = $("[isautocompleter=true]");
if (eA == null)
return;
var iLen = eA.length;
var i = 0;
for (i = 0; i < iLen; ++i) {
HtmlRegAutoCompleterItem(eA[i]);
}
}
function EkPageReload()
{
// 刷新当前页面 //
window.location.href = window.location.href;
}
function EkGoPage(url)
{
// 重定向 //
window.location.href = url;
}
function EkOpenPage(url)
{
// 打开新窗口 //
window.open(url);
}
function EkHtmlAjaxLoad4TableTr(curThis, re_detail, ajaxRootUrl)
{
// 通过ajax加载内容 //
if (curThis == null)
return;
if (re_detail == null)
return;
var vEmLoadInfoTypeV = $(curThis).attr("emloadinfotypev");
var vEmLoadInfoOperV = $(curThis).attr("emloadinfooperv");
var vDataGuid = $(curThis).attr("data-guid");
var vIsLoad = $(curThis).attr("isload");
// 无 = 1/首次加载 = 2/每次加载 = 3
if (vEmLoadInfoTypeV == "1") {
// 无 ==> 保留原先的功能,不需要加载 //
return;
}
if (vEmLoadInfoTypeV == "2") {
// 首次加载 //
if (vIsLoad == "1") {
// 已经加载 //
return;
}
}
var ajaxUrl = ajaxRootUrl + "?em=" + vEmLoadInfoOperV + "&id=" + vDataGuid;
$.ajax({
cache: false,
async: true,
url: ajaxUrl,
type: "post",
success: function (rData) {
// rData ==> 1.IsSucc;2.ShowHtml //
if (rData == null)
return;
if (!rData.IsSucc) {
// 如果错误,弹出错误提示 //
alert(rData.ShowHtml);
return;
}
// 设为已加载 //
$(curThis).attr("isload", "1")
// tr --> 找到td //
var tdArray = $(re_detail).find("td");
// 如果td非空和td有记录数 //
if (tdArray != null && tdArray.length > 0) {
// 设定第一个td的HTML //
$(tdArray[0]).html(rData.ShowHtml);
}
}
});
}
// 保存记录集合 //
function BaseAjaxGetSaveDetailData(pkId) {
// 构建保存记录的集合 //
var theResult = EkGetSaveDetailData("add_box", "a", pkId);
return theResult;
}
function BaseSetDetailData(rData) {
// 编辑时候设置录入的数据 //
EkSetDetailData(rData);
}
function BaseClearDetailData() {
// 新增时候清空原先录入的数据 //
EkClearDetailData("add_box", "a");
}
function BaseJsCheckInput() {
// JS 校验 //
var checkResult = EkJudgeValidate("add_box", "a");
if (!checkResult) {
return false;
}
return true;
}
function BaseDelItemClick()
{
// 树节点点击删除事件 //
var pkId = $("#add_box").attr("data-guid");
if (pkId == null)
return;
if (pkId == "")
return;
if (!confirm("确定删除?"))
return;
// 获得Ajax的Url地址 //
var ajaxUrl = GlobalPhyPath + "/" + EPI.DeleteDataUrl;
// 获得搜索的数据 //
var ajxData = [];
ajxData.push({ name: "_id", value: pkId });
$.ajax({
cache: false,
async: true,
url: ajaxUrl,
type: "post",
data: ajxData,
success: function (rData) {
if (rData == null)
return;
// 删除成功 //
if (rData.IsSucc) {
alert(rData.Msg);
EkPageReload();
}
else {
// 删除失败的提示 //
alert(rData.Msg);
}
}
});
}
function BaseEkTreeNodeOnClick4Edit(event, treeId, treeNode, clickFlag)
{
// 树节点点击事件 //
var pkId = treeNode.id;
// 设置关键字ID为编辑值 //
$("#add_box").attr("data-guid", pkId);
var spanCtrl = $("#span_detail");
if (spanCtrl != null) {
// 设置标题 //
$("#span_detail").html("编辑" + EPI.PageTitle);
$("#span_detail").attr("title", "关键字:" + pkId);
}
// 加载内容 //
// 获得Ajax的Url地址 //
var ajaxUrl = GlobalPhyPath + "/" + EPI.DetailLoadUrl;
// 获得搜索的数据 //
var ajxData = [];
ajxData.push({ name: "_id", value: pkId });
$.ajax({
cache: false,
async: true,
url: ajaxUrl,
type: "post",
data: ajxData,
success: function (rData) {
// 设置控件的值 //
// 如果返回结果为空,保护代码不往下执行 //
if (rData == null)
return;
if (EPI.IsOverrideSetDetailData) {
SetDetailData(rData);
}
else {
BaseSetDetailData(rData);
}
}
});
}
function BaseEkTreeNodeOnClick(event, treeId, treeNode, clickFlag) {
if(treeId == EPI.TreeId)
{
BaseEkTreeNodeOnClick4Edit(event, treeId, treeNode, clickFlag);
return;
}
}
// 显示和隐藏表格列项的 //
function ShowColDiv() {
// 显示表格列项勾选的浮层 //
var cityObj = $("#ColCtrl_btn");
var cityOffset = $("#ColCtrl_btn").offset();
$("#triangle").show();
$("#ColCtrlDiv").css({ left: cityOffset.left + "px", top: cityOffset.top + 10 + cityObj.outerHeight() + "px" }).slideDown("fast");
$("body").bind("mousedown", OnBodyDown4ColCtrl);
}
function HideColDiv() {
// 隐藏表格框浮层 //
$("#ColCtrlDiv").fadeOut("fast");
$("body").unbind("mousedown", OnBodyDown4ColCtrl);
}
function OnBodyDown4ColCtrl(event) {
// 鼠标点击事件 //
if (event == null)
return;
if (event.target == null)
return;
if (event.target.id == "ColCtrlDiv")
return;
var theClassName = event.target.className;
if (theClassName == "colCheck")
return;
if (theClassName == "ColNameTd")
return;
if (theClassName == "tr_white")
return;
if (theClassName == "checkTd")
return;
if (theClassName == "ColCtrl_table")
return;
// 隐藏表格框浮层 //
HideColDiv();
}
// 控制列显示和隐藏 //
function ShowHiddenCol(tbId, colIndex, isShow) {
var tb = document.getElementById(tbId);
if (tb == null)
return;
var tbHead = document.getElementById(EPI.TableId);
if (tbHead == null)
return;
var displayV = "none";
if (isShow)
displayV = "";
var trs = tb.rows;
var iLen = trs.length;
var i = 0;
var cellV = null;
for (i = 0; i < iLen; ++i) {
cellV = trs[i].cells[colIndex];
cellV.style.display = displayV;
}
tbHead.rows[0].cells[colIndex].style.display = displayV;
}
function GetColIndex(curColName) {
// 找到表格列索引 //
var curTableId = EPI.TableId;
if (curTableId == null || curTableId == "")
return -1;
var tbCtrl = document.getElementById(curTableId);
if (tbCtrl == null)
return -1;
var trCells = tbCtrl.rows[0].cells;
if (trCells == null)
return -1;
var iLen = trCells.length;
var i = 0;
var thName = null;
for (i = 0; i < iLen; ++i) {
thName = $(trCells[i]).attr("thname");
if (thName == curColName) {
return i;
}
}
return -1;
}
// 显示和隐藏表格列项的END //
function EkBaseToReDetail(i, v) {
// 绘制展开项的JS代码 //
if (v == null)
return "";
if (v._rowexpandhtml == undefined)
return "";
if (v._rowexpandhtml == null)
return "";
return v._rowexpandhtml;
}
// 找到ToolTip对应的Item //
function FindToolTipDivHtml(pkId) {
var eA = EPI.ZnbmItemHtmlArray;
if (eA == null)
return null;
var iLen = eA.length;
var i = 0;
for (i = 0; i < iLen; ++i) {
if (eA[i].PkId == pkId)
return eA[i];
}
return null;
}
// 设置ToolTip对应的Item //
function SetToolTipDivHtmlToArray(pkId, theHtml) {
var item = FindToolTipDivHtml(pkId);
if (item != null) {
item.TheHtml = theHtml;
return;
}
if (EPI.ZnbmItemHtmlArray == null) {
EPI.ZnbmItemHtmlArray = new Array();
}
item = new ZnbmItemHtml();
item.PkId = pkId;
item.TheHtml = theHtml;
EPI.ZnbmItemHtmlArray.push(item);
}
function SelectCtrlHtmlGet(pageSizeOptions, selectedValue) {
// 获得每页显示记录数的select //
// 获得Select的HTML //
if (pageSizeOptions == null)
return;
var iLen = pageSizeOptions.length;
// 动态绑定下拉框 //
var strHTML = "";
var isSelected = false;
for (var i = 0; i < iLen; ++i) {
if (pageSizeOptions[i] == selectedValue) {
isSelected = true;
}
else {
isSelected = false;
}
strHTML += SelectOptionHtmlGet(pageSizeOptions[i], pageSizeOptions[i], isSelected);
}
return strHTML;
}
//分页代码
function TableListSetPaper(current, list_num, per_num) {
var curPageNoValue = current;
// 总页数 //
var total_page = Math.ceil(list_num / per_num);
var html = '<span class="p_r20">共' + total_page + '页/<em class="c_yellow">' + list_num + '</em>条数据</span><a title="首页" page_no="1">首页</a>';
if (current == 1) {
html += '<a title="上一页" page_no="1">上一页</a>';
} else {
html += '<a title="上一页" page_no="' + (current - 1) + '">上一页</a>'
}
if (current < 4) {
for (var i = 1 ; i <= total_page && i <= 5 ; ++i) {
if (current == i) {
html += '<a class="current_page" page_no="' + i + '">' + i + '</a>';
} else {
html += '<a page_no="' + i + '">' + i + '</a>';
}
}
} else if (current > total_page - 2) {
for (var i = total_page - 4 ; i <= total_page ; i++) {
if (current == i) {
html += '<a class="current_page" page_no="' + i + '">' + i + '</a>';
} else {
html += '<a page_no="' + i + '">' + i + '</a>';
}
}
} else {
for (var i = current - 2 ; i <= total_page && i <= Number(current) + 2 ; i++) {
if (current == i) {
html += '<a class="current_page" page_no="' + i + '">' + i + '</a>';
} else {
html += '<a page_no="' + i + '">' + i + '</a>';
}
}
}
if (current < total_page) {
html += '<a title="下一页" page_no="' + parseInt(++current) + '">下一页</a>';
} else {
html += '<a title="下一页" page_no="' + total_page + '">下一页</a>';
}
html += '<a title="尾页" page_no="' + total_page + '">尾页</a><input type="text" class="page_txt" value="' + curPageNoValue + '"><a id="gopage_btn">GO</a>';
var htmlPageSize = "";
htmlPageSize += "<span class=\"p_l20\">每页记录 </span>";
htmlPageSize += "<select class=\"pagesize_ddl\" id=\"ddlPage_PageSize\" style=\"height:30px;\">";
htmlPageSize += SelectCtrlHtmlGet(EPI.PageSizeOptions, per_num);
htmlPageSize += "</select>";
$(".page").html(html + htmlPageSize);
$("input.page_txt").change(function () {
$("#gopage_btn").attr("page_no", $(this).val());
})
}
// 绑定下拉框change事件 //
function RegDropDownListPagePageSizeEvent() {
$("#ddlPage_PageSize").on("change", function () {
EPI.PageSize = $(this).val();
TableListBind(1);
});
}
// 绑定表格相关的方法 //
// 获得列表 //
function TableListBind(current) {
// 没有指定数据表 //
// 其他业务逻辑,比如统计分析时候 //
if (EPI.TableId == null || EPI.TableId == "" || EPI.TableId == undefined)
return;
// 获得表格控件 //
var tableCtrl = document.getElementById(EPI.TableId);
if (tableCtrl == null) {
// 没有设定表格控件 //
return;
}
$("#tb_con .table_list tbody").html("正在加载中...");
// current = 页索引+1 //
// 第一页从1开始 //
// 获得每页显示的页码 //
var per_num = EPI.PageSize;
//var per_num = $('#page_perNo').val();
// 获得搜索条件 //
var ajxData = null;
if (EPI.IsOverrideAjaxSearchData) {
// 重写获取搜索的条件 //
ajxData = AjaxSearchData(current, per_num);
}
else {
ajxData = BaseAjaxSearchData(current, per_num);
}
// 获得Ajax的Url地址 //
var ajaxUrl = GlobalPhyPath + "/" + EPI.TableListUrl;
$.ajax({
cache: false,
async: true,
url: ajaxUrl,
type: "post",
data: ajxData,
success: function (rData) {
if (rData == null)
return;
var pageIndex = rData.pageindex;
// 获得记录数 //
var list_num = rData.total;
// 绘制HTML表格内容 //
var html = BuildHTML(rData);
// 设置HTML表格内容--画表格 //
$("#tb_con .table_list tbody").html(html);
if (per_num <= 0) {
// 所有记录数 //
per_num = 2147483647
}
// 设置页码 -- page在all.js里面注册了 //
TableListSetPaper(pageIndex, list_num, per_num);
// 注册 //
RegDropDownListPagePageSizeEvent();
// 登记当前的页索引 //
$("#" + EPI.TableId).attr("pageindex", pageIndex);
// 登记当前的记录数 //
$("#" + EPI.TableId).attr("total", list_num);
if ($("#page_tip") != null) {
$("#page_tip").html(rData.pagetip);
}
// checkbox注册点击事件 //
CheckBoxRegClick(EPI.TableId);
if (EPI.IsOverrideAfterTableList) {
AfterTableList(rData);
}
}
});
}
// 绑定表格相关的方法END //
// 测试用的JS1 //
function EkToTest(i, v, name) {
return "i-" + name + "=" + eval("v." + name);
}
// 测试用的JS2 //
function EkJsToTest(i, v, name) {
// i = 行索引 //
// v = 一行的记录值 //
// name = 行对应的名称 //
return eval("v." + name);
}
标签:
znbm.ek.jsV20170518 


上一条:
下一条:
相关评论
发表评论