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.
293 lines
10 KiB
Plaintext
293 lines
10 KiB
Plaintext
var mapExt = null;
|
|
var webUser;
|
|
var selectJSON;
|
|
var jsonArray;
|
|
var treeClickUrl;
|
|
var global = window;
|
|
function initBranchesLPage(obj, oid, dtlKeyOfen, type) {
|
|
global.selectedRows = [];
|
|
|
|
mapExt = obj;
|
|
//登录用户信息
|
|
webUser = new WebUser();
|
|
var list = document.getElementById('list');
|
|
window.indexedList = new mui.IndexedList(list);
|
|
|
|
//设置变量.
|
|
global.FK_MapData = mapExt.FK_MapData;
|
|
global.AttrOfOper = dtlKeyOfen ? dtlKeyOfen : mapExt.AttrOfOper;
|
|
global.selectType = mapExt.GetPara("SelectType");
|
|
global.oid = oid;
|
|
|
|
//跟节点编号.
|
|
var rootNo = mapExt.Doc;
|
|
if (rootNo == "@WebUser.FK_Dept") {
|
|
rootNo = webUser.FK_Dept;
|
|
}
|
|
|
|
|
|
var treeUrl = mapExt.Tag2; //初始化树
|
|
treeClickUrl = mapExt.Tag3; //树选择.
|
|
if (treeUrl == "" || treeClickUrl == "") {
|
|
alert('配置错误:查询数据源,初始化树的数据源,点击树节点返回数据的数据源,必须都不能为空。');
|
|
return;
|
|
}
|
|
global.TreeUrl = treeUrl;
|
|
global.IsLazy = treeUrl.substr(treeUrl.toLowerCase().indexOf("where")).indexOf("ParentNo") != -1 ? true : false;
|
|
treeUrl = treeUrl.replace(/@Key/g, rootNo);
|
|
jsonArray = DBAccess.RunDBSrc(treeUrl, mapExt.DBType, mapExt.FK_DBSrc);
|
|
|
|
//获取已选择的项
|
|
var frmEleDBs = new Entities("BP.Sys.FrmEleDBs");
|
|
frmEleDBs.Retrieve("FK_MapData", FK_MapData, "EleID", AttrOfOper, "RefPKVal", oid);
|
|
$.each(frmEleDBs, function (i, o) {
|
|
global.selectedRows.push({
|
|
"No": o.Tag1,
|
|
"Name": o.Tag2,
|
|
"POP_Value": o.Tag3
|
|
});
|
|
});
|
|
|
|
global.count = frmEleDBs.length;
|
|
//改变完成初始状态
|
|
changeDoneState(count, "done");
|
|
|
|
|
|
//搜索框提示
|
|
Search(global,type);
|
|
|
|
global.rootNo = rootNo;
|
|
//根节点名称
|
|
global.rootName = "根目录";
|
|
for (var i = 0; i < jsonArray.length; i++) {
|
|
var data = jsonArray[i];
|
|
if (data.No == rootNo) {
|
|
rootName = data.Name;
|
|
break;
|
|
}
|
|
}
|
|
//解析树形结构
|
|
loadTree(rootNo, rootNo, rootName, global.selectType, type);
|
|
|
|
mui('.mui-indexed-list-inner').on('change', 'input', function () {
|
|
var obj = this;
|
|
//获取方法
|
|
cceval(this.attributes.getNamedItem('onclick').textContent);
|
|
});
|
|
};
|
|
|
|
//搜索框的设置
|
|
function Search(global, type) {
|
|
//设置标题.
|
|
var title = mapExt.GetPara("Title");
|
|
$("#BLTitle").text(title);
|
|
//设置搜索提示框
|
|
var tip = mapExt.GetPara("SearchTip");
|
|
//var input=$('<input id="TB_Key" type="search" class="mui-input-clear mui-indexed-list-search-input" placeholder="'+tip+'" >');
|
|
//$("#Search").append(input);
|
|
var span = $("#TB_Key").siblings().eq(1).children().eq(1);
|
|
span = span.html(tip);
|
|
|
|
//查询
|
|
var searchUrl = mapExt.Tag1;
|
|
$("#TB_Key").on("keyup", function () {
|
|
var keyVal = $(this).val();
|
|
if (searchUrl != "") {
|
|
var mySrc = replaceAll(searchUrl, "@Key", keyVal);
|
|
mySrc = replaceAll(mySrc, "~", "'");
|
|
//获得json.
|
|
var json = DBAccess.RunDBSrc(mySrc, mapExt.DBType, mapExt.FK_DBSrc);
|
|
selectJSON = json;
|
|
}
|
|
|
|
var newjson = $.grep(selectJSON, function (item) {
|
|
return item.No.indexOf(keyVal) != -1 || item.Name.indexOf(keyVal) != -1;
|
|
});
|
|
loadData(newjson, null, 0, global.selectType, type);
|
|
});
|
|
}
|
|
|
|
|
|
|
|
//加载结构
|
|
function loadTree(currentNo, parentNo, parentName, selectType,type) {
|
|
var slider = $("#LevelIdx");
|
|
if (currentNo == global.rootNo) {
|
|
slider.attr("href", "javaScript:void(0);loadTree(\"" + parentNo + "\",\"" + parentNo + "\",\"" + parentName + "\",\"" + selectType + "\")");
|
|
slider.text(global.rootName);
|
|
} else {
|
|
slider.text(parentName);
|
|
slider.attr("href", "javaScript:void(0);changeParentNo(\"" + parentNo + "\")");
|
|
}
|
|
var childJson;
|
|
if (global.IsLazy == true)
|
|
childJson = DBAccess.RunDBSrc(global.TreeUrl.replace(/@Key/g, currentNo), mapExt.DBType);
|
|
else
|
|
childJson = getJsonByParentNo(jsonArray, currentNo);
|
|
var infoJson = getInfoJsonByParentNo(treeClickUrl, currentNo);
|
|
loadData(infoJson, childJson, 1, global.selectType, type);
|
|
}
|
|
|
|
//返回上一级
|
|
function changeParentNo(rootNo, id) {
|
|
//获取该节点的上一节点
|
|
var parentNo = rootNo;
|
|
var rootName;
|
|
for (var i = 0; i < jsonArray.length; i++) {
|
|
var data = jsonArray[i];
|
|
if (data.No == rootNo) {
|
|
parentNo = data.ParentNo;
|
|
rootName = data.Name;
|
|
break;
|
|
}
|
|
}
|
|
if (id == "branches") {
|
|
loadBranchesTree(rootNo, parentNo, rootName);
|
|
} else {
|
|
loadTree(rootNo, parentNo, rootName, global.selectType);
|
|
}
|
|
}
|
|
//获取父节点下的所有节点
|
|
function getJsonByParentNo(jsonArray, parentNo) {
|
|
var treeJson = [];
|
|
for (var i = 0; i < jsonArray.length; i++) {
|
|
var data = jsonArray[i];
|
|
if (data.ParentNo == parentNo) {
|
|
treeJson.push(data);
|
|
}
|
|
}
|
|
return treeJson;
|
|
}
|
|
|
|
//获取节点关联的信息
|
|
function getInfoJsonByParentNo(treeClickUrl, rootNo) {
|
|
var myurl = replaceAll(treeClickUrl, "@Key", rootNo);
|
|
myurl = replaceAll(myurl, "~", "'");
|
|
//获得json.
|
|
var json = DBAccess.RunDBSrc(myurl, mapExt.DBType, mapExt.FK_DBSrc);
|
|
return json;
|
|
}
|
|
//加载数据
|
|
function loadData(infoJson, childJson, showType, selectType, type) {
|
|
$("#list").children('.mui-indexed-list-inner').removeClass('empty');
|
|
var ul = $("#treeView");
|
|
ul.html('');
|
|
if (showType == 1) {
|
|
//解析树形结构
|
|
if ($.isArray(childJson) && childJson.length > 0) {
|
|
$.each(childJson, function (i, o) {
|
|
var li = '<li data-value="' + o.No + '" data-tags="' + o.Name + '" class="mui-table-view-cell mui-indexed-list-item mui-left">';
|
|
li += "<a class='mui-navigate-right' href='javaScript:void(0);loadTree(\"" + o.No + "\",\"" + o.ParentNo + "\",\"" + o.Name + "\",\"" + global.selectType + "\")'>" + o.Name + "</a></li>";
|
|
ul.append(li);
|
|
});
|
|
}
|
|
}
|
|
|
|
if (!$.isArray(infoJson) || infoJson.length == 0) {
|
|
var list = document.getElementById('list');
|
|
|
|
// $("#list").children('.mui-indexed-list-inner').addClass('empty');
|
|
//$("#alert").show();
|
|
return false;
|
|
}
|
|
|
|
//解析数据信息
|
|
var globalSelectedRows = global.selectedRows;
|
|
$.each(infoJson, function (i, o) {
|
|
var isEqual = false;
|
|
for (var index = 0; index < globalSelectedRows.length; index++) {
|
|
if (o.No == globalSelectedRows[index].No) {
|
|
isEqual = true;
|
|
break;
|
|
}
|
|
}
|
|
if (selectType == 0) {
|
|
var li = '<li data-value="' + o.No + '" data-tags="' + o.Name + '" class="mui-table-view-cell mui-indexed-list-item mui-radio mui-left">';
|
|
if (isEqual) {
|
|
li += "<input name='radio1' type='radio' checked='chedked' onclick='changeRadioStatus(this,\"" + o.No + "\",\"" + o.Name + "\",\"\"" + type + ")'/>" + o.Name + "</li>";
|
|
} else {
|
|
li += "<input name='radio1' type='radio' onclick='changeRadioStatus(this,\"" + o.No + "\",\"" + o.Name + "\",\"\"" + type + ")'/>" + o.Name + "</li>";
|
|
}
|
|
} else {
|
|
var li = '<li data-value="' + o.No + '" data-tags="' + o.Name + '" class="mui-table-view-cell mui-indexed-list-item mui-checkbox mui-left">';
|
|
if (isEqual)
|
|
li += "<input type='checkbox' checked='chedked' onclick='changeSeltStatus(this,\"" + o.No + "\",\"" + o.Name + "\",\"\")'/>" + o.Name + "</li>";
|
|
else
|
|
li += "<input type='checkbox' onclick='changeSeltStatus(this,\"" + o.No + "\",\"" + o.Name + "\",\"\")'/>" + o.Name + "</li>";
|
|
}
|
|
|
|
ul.append(li);
|
|
});
|
|
return true;
|
|
}
|
|
//点击单选框事件
|
|
function changeRadioStatus(obj, No, Name, Tag3, type) {
|
|
var globalSelectedRows = global.selectedRows;
|
|
if (obj.checked == true) {
|
|
|
|
changeDoneState(globalSelectedRows.length, "done");
|
|
//清空数据库中所有数据
|
|
if (globalSelectedRows.length != 0) {
|
|
for (var i = 0; i < globalSelectedRows.length; i++) {
|
|
DeleteFrmEleDB(global.AttrOfOper, global.oid, globalSelectedRows[i].No);
|
|
}
|
|
|
|
}
|
|
//存入数据
|
|
SaveFrmEleDB(global.FK_MapData, global.AttrOfOper, global.oid, No, Name, "");
|
|
globalSelectedRows.length = 0;//清空数组
|
|
globalSelectedRows.push({
|
|
"No": No,
|
|
"Name": Name
|
|
});
|
|
var mtags = $("#" + global.AttrOfOper + "_mtags")
|
|
mtags.mtags("loadData", globalSelectedRows); //给框赋值
|
|
var text = mtags.mtags("getText");
|
|
$("#TB_" + global.AttrOfOper).val(text); //给隐藏的input赋值
|
|
//填充其他控件
|
|
FullIt(globalSelectedRows[0].No, mapExt.MyPK, "TB_" + global.AttrOfOper, type);
|
|
}
|
|
|
|
|
|
}
|
|
//点击复选框事件
|
|
function changeSeltStatus(obj, No, Name, Tag3) {
|
|
var globalSelectedRows = global.selectedRows;
|
|
if (obj.checked == true) {
|
|
var sel = $.grep(globalSelectedRows, function (obj) {
|
|
return obj.No == No;
|
|
});
|
|
if (sel.length == 0) {
|
|
//选择取消复选框时改变状态
|
|
global.count++;
|
|
changeDoneState(global.count, "done");
|
|
|
|
SaveFrmEleDB(global.FK_MapData, global.AttrOfOper, global.oid, No, Name, "");
|
|
globalSelectedRows.push({
|
|
"No": No,
|
|
"Name": Name
|
|
});
|
|
var mtags = $("#" + global.AttrOfOper + "_mtags")
|
|
mtags.mtags("loadData", globalSelectedRows); //给框赋值
|
|
var text = mtags.mtags("getText");
|
|
$("#TB_" + global.AttrOfOper).val(text); //给隐藏的input赋值
|
|
}
|
|
}
|
|
|
|
else {
|
|
for (var index = 0; index < globalSelectedRows.length; index++) {
|
|
if (No == globalSelectedRows[index].No) {
|
|
global.count--;
|
|
changeDoneState(global.count, "done");
|
|
DeleteFrmEleDB(global.AttrOfOper, global.oid, No);
|
|
globalSelectedRows.splice(index, 1);
|
|
var mtags = $("#" + global.AttrOfOper + "_mtags")
|
|
mtags.mtags("loadData", global.selectedRows); //给框赋值
|
|
var text = mtags.mtags("getText");
|
|
$("#TB_" + global.AttrOfOper).val(text); //给隐藏的input赋值
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
} |