yili-apps/apps/_bpm.platform/ui/dict/treedictionary/js/console.m.ui.design.dict.treedictionary.runtime.js

1024 lines
28 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

$(document).ready(function () {
initTree();
awsui.parse();
$(".tablecont").height($(window).height() - $(".sousuo").outerHeight() - 40);
if (config.multiselect) {
} else {
$("#selectTd").hide();
}
$("#buttonedit").width($(window).width() - 30);
$("#buttonedit").buttonedit({
iconCls: "forms-icon search",
onClick: function () {
if ($("#buttonedit").val() == "") {
return;
}
$.simpleAlert(正在加载 + ".....", "loading");
// 单击事件
searchDictByName();
}
});
// 回车事件
$('#buttonedit').keydown(function (e) {
if (e.keyCode == 13) {
if ($("#buttonedit").val() == "") {
return;
}
$.simpleAlert(正在加载 + ".....", "loading");
searchDictByName();
}
});
});
var searchArray = [];
function searchDictByName() {
var val = $("#buttonedit").val();
if (val == "") {
return;
}
// if (config.dictKey != null) {
// searcherDict(val);
// return;
// }
// 判断是否有 $公式
if (config.rootSqlcascade) {
var cascadeData = [];
var cascadeFieldList = config.rootSqlcascade;
for (var item in cascadeFieldList) {
var fieldName = cascadeFieldList[item];
var cascadeFieldVal = '';
if ($("#" + fieldName).length > 0) {
cascadeFieldVal = $('#' + fieldName, parent.document).val();
}
var obj = {
cascadeField: cascadeFieldList[item],
cascadeFieldVal: cascadeFieldVal
}
cascadeData.push(obj);
}
config.cascadeData = cascadeData;
}
config.searchValue = val;
var params = {
config: BASE64.encoder(escape(JSON.stringify(config))),
boItemName: boItemName,
sid: $("#sid").val(),
formData: awsui.encode(formData),
rowData: awsui.encode(rowData),
cmd: 'CLIENT_UI_TREEDICTIONARY_FILLBACK_SEARCHERDATA'
};
var p = {
type: "POST",
url: "./jd",
data: params,
dataType: "json",
alert: false,
success: function (r) {
$.simpleAlert("close");
if (r.result == "ok") {
$("#dictionaryTree").hide();
$("#back").show();
searchArray = r.data.array;
// alert(JSON.stringify(searchArray));
if (config.searchShow == "tree") {
buildSearchTree(searchArray);
} else {
getHtml();
}
}
}
};
awsui.ajax.request(p);
config.searchValue = null;
}
function buildSearchTree(datas) {
var rebuildDatas = [];
dictionaryTree.isSearching = true;
var rootDatas = dictionaryTree.getRootNode();
for (var i = 0, size_i = rootDatas.length; i < size_i; i++) {
var allDatum = rootDatas[i];
allDatum.open = true;
rebuildDatas.push(allDatum);
var count = 0;
for (var j = 0, size_j = datas.length; j < size_j; j++) {
var datum = datas[j];
if (datum.pId == allDatum.id) {
count++;
datum.pid = datum.pId;
datum.id = datum.dId;
if (!datum.isLeaf) {
datum.open = false;
}
//datum.cls = "leafCls"
rebuildDatas.push(datum);
}
}
if (count == 0) {
rebuildDatas.pop();
}
}
dictionaryTree.refresh({data: rebuildDatas});
$(".searchCont").hide();
$("#dictionaryTree").show();
}
function searcherDict(val) {
var isShowParent = config.mappingRule.indexOf("parent") > -1, isShowLeaf = config.mappingRule.indexOf("leaf") > -1, datas = dictionaryTree.setting.dataModel.data;
searchArray = new Array();
for (var i = 0, size = datas.length; i < size; i++) {
var data = datas[i];
if (data.name.indexOf(val) > -1) {
searchArray.push(data);
if (data.isLeaf && !isShowLeaf) {
data.hidden = true;
continue;
}
if (!data.isLeaf && !isShowParent) {
data.hidden = true;
continue;
}
// 查找全路径
var array = new Array();
getAllPath(data.pid, array, datas);
var path = "";
for (var a = array.length - 1; a > -1; a--) {
path += array[a] + "/";
}
data.path = path;
}
}
$("#dictionaryTree").hide();
$("#back").show();
getHtml();
$.simpleAlert("close");
}
var selectArray = [];
function addItem(json) {
var id = getId(json);
if (hasSame(selectArray, json)) {
return false;
}
var name = json["name"];
selectArray.push(json);
html = "<span class=\"awsui-supertext-items\" id=\"" + id + "\" >";
html += "<span style=\"cursor: pointer;\" class=\"awsui-supertext-item current\">" + name + "</span>";
html += "<span class=\"forms-icon down close closecondition\" onclick=\"removeItem(this)\"></span>";
html += "</span>";
$(".selectMult").append(html);
}
function removeItem(obj) {
var id = $(obj).parent().attr("id");
$("input[boxid=" + id + "]").check("option", "checked", false);
$(obj).parent().remove();
for (var i = 0, size = selectArray.length; i < size; i++) {
var data = selectArray[i];
if (getId(data) == id) {
selectArray.splice(i, 1);
return true;
}
}
}
function getId(json) {
if (json) {
return json.id ? json.id : json.dId;
}
}
function deleteItemByIndex(json) {
if (json) {
var id = getId(json);
$(".selectMult").find(".awsui-supertext-items").each(function () {
if (id == $(this).attr('id')) {
$(".selectMult").find("#" + id).remove();
}
});
for (var i = 0, size = selectArray.length; i < size; i++) {
var data = selectArray[i];
if (getId(data) == id) {
selectArray.splice(i, 1);
return true;
}
}
}
}
function hasSame(arrays, json) {
for (var i = 0, size = arrays.length; i < size; i++) {
var data = arrays[i];
if (getId(data) == getId(json)) {
return true;
}
}
return false;
}
function hasChildNode(id, datas) {
for (var i = 0, size = datas.length; i < size; i++) {
var data = datas[i];
if (id == data.pid) {
return true;
}
}
return false;
}
function getAllPath(pid, array, datas) {
if (pid == null || pid == "") {
return;
}
for (var i = 0, size = datas.length; i < size; i++) {
var data = datas[i];
if (pid == data.id) {
array.push(data.name);
getAllPath(data.pid, array, datas);
break;
}
}
}
// 搜索框事件
function selectThisVal2(obj, i) {
var pid = $(obj).find("td").eq(1).attr("id");
getValue2(i, pid);
if (config.isGrid === false) {
parent.$("#popbox_tree_" + boItemName).popbox("close");
hideWeboffice();
}
}
// 搜索框判断
function getValue2(index, pid) {
var isGrid = config.isGrid;
var selectNodeArray = getDataArray(index);
var valueData = {};
var separator = config.separator;
var displayValueData = {};
function buildValueData(x, value) {
if (valueData[x]) {
valueData[x] += separator + value;
} else {
valueData[x] = value;
}
}
function buildDisplayValueData(x, value) {
if (displayValueData[x]) {
displayValueData[x] += separator + value;
} else {
displayValueData[x] = value;
}
}
var fillBackFieldsConfig = config.fillBackFields.split("|");
if (selectNodeArray.length == 0) {
for (var s = 0; s < fillBackFieldsConfig.length; s++) {
buildValueData(fillBackFieldsConfig[s], "");
}
// parent.$.simpleAlert("请选择数据", "info", 1000, {
// model : true
// });
}
var json = {};
var hasTrueValue = false;
// 有正确回填的值
for (var m = 0; m < selectNodeArray.length; m++) {
var selectNode = selectNodeArray[m];
if (selectNode == undefined) {
return "";
}
var isLeaf = selectNode.isLeaf;
var fillBackValue = selectNode.fillBackFields;
var fillBackDisplayValue = selectNode.displayFieldValue;
for (var x in fillBackValue) {
var temp = false; // 当前判断结果
var value = fillBackValue[x].indexOf("^") > -1 ? fillBackValue[x].split("^")[1] : fillBackValue[x]; // 要回填的值
var sourveField = fillBackValue[x].split("^")[0]; // 要回填的源字段名
var tempValue = fillBackDisplayValue;
if (fillBackDisplayValue == null || fillBackDisplayValue == "") {
tempValue = value;
}
if (config.mappingRule == "") {
buildValueData(x, value);
buildDisplayValueData(x + "VAL", tempValue);
} else {
var mapping = config.mappingRule;
var rules = mapping.split(";");
var msg = "";
if (mapping.indexOf("parent") > -1) {
if (isLeaf) {
msg = "叶子节点";
} else {
//允许非叶子节点
temp = true;
}
}
if (temp == false) {
if (isLeaf) {
temp = true;
} else {
msg = "非叶子节点";
}
}
if (temp == false) {
parent.$.simpleAlert(msg + "不允许被回填", "info", 1000, {
model: true
});
}
if (temp == true) {
buildValueData(x, value);
buildDisplayValueData(x + "VAL", tempValue);
hasTrueValue = true;
}
}
}
}
if (!hasTrueValue && config.multiselect) {
parent.parent.$.simpleAlert("未找到可回填的节点", "info", 1000, {
model: true
});
}
if (hasTrueValue) {
$.each(valueData, function (key, value) {
if (isGrid) {
json[key] = value;
json[key + "_DISPLAYVALUE"] = displayValueData[key + "VAL"];
} else {
parent.$("#" + key).val(value);
parent.$("#" + key + "VAL").val(displayValueData[key + "VAL"]);
}
});
if (!isGrid) {
parent.UIInit.treeDictionaryHelper.refreshNode(boItemName);
}
if (isGrid) {
if (config.multiselect) {
return awsui.encode(json);
} else {
var boDefName = config.boDefName;
var boItemDefName = config.boItemDefName;
eval("parent." + boDefName + boItemDefName + "(json, config)");// 调用在grid的editor那注册的函数进行赋值
}
} else {
var beforVal = config.beforVal;
if (parent.triggerChangeByBoItemName) {
parent.triggerChangeByBoItemName(boItemName, beforVal);
}
}
if (window.onTreeDictionaryChangeEvent && typeof window.onTreeDictionaryChangeEvent == "function") {
window.onTreeDictionaryChangeEvent(config);
}
}
}
function getHtml() {
var s = searchArray.length;
if (s == 0) {
$("#searcontent").html("<tr><td colspan='4' style='text-align:center'>" + 无数据 + "</td></tr>");
$("#selectTd").hide();
$(".searchCont").show();
return;
}
if (config.multiselect) {
$("#selectTd").show();
}
var html = "";
var sortIndex = 1;
for (var i = 0, s = searchArray.length; i < s; i++) {
var o = searchArray[i], index = i + 1, click = "";
if (o.hidden) {
continue;
}
if (!config.multiselect) {
click = "onclick=\"selectThisVal2(this," + index + ")\"";
}
html += "<tr class=\"hov\" " + click + " >";
if (config.multiselect) {
html += "<td align=\"center\"> <input type=\"checkbox\" value=\"" + index + "\" boxid=\"" + getId(o) + "\" name=\"multcheck\" class=\"awsui-checkbox\"/> </td>";
}
html += "<td align=\"center\">" + sortIndex + "</td>";
html += "<td id = " + getId(o) + ">" + o["name"] + "</td>";
html += "<td>" + o["path"] + "</td>";
html += "</tr>";
sortIndex++;
}
$("#searcontent").html(html);
if (config.multiselect) {
$(".awsui-checkbox").check({
label: "tr"
});
// 选中
for (var i = 0, size = selectArray.length; i < size; i++) {
var data = selectArray[i];
$("input[boxid=" + getId(data) + "]").check("option", "checked", true);
}
// 事件
$(".awsui-checkbox").off("ifChecked").on("ifChecked", function () {
if ($(this).attr("class").indexOf("check-group") > -1) {
for (var i = 0; i < $(".awsui-checkbox").length - 1; i++) {
addItem(searchArray[i]);
}
} else {
addItem(searchArray[parseInt(this.value, 10) - 1]);
}
});
$(".awsui-checkbox").off("ifUnchecked").on("ifUnchecked", function () {
if ($(this).attr("class").indexOf("check-group") > -1) {
for (var i = 0; i < $(".awsui-checkbox").length - 1; i++) {
deleteItemByIndex(searchArray[parseInt($($(".awsui-checkbox")[i + 1]).val(), 10) - 1]);
}
} else {
deleteItemByIndex(searchArray[parseInt(this.value, 10) - 1]);
}
});
$("#cbox").show();
$(".table.table-bordered tr").css("cursor", "pointer");
checkOne();
checkAll();
}
$(".searchCont").show();
$(".selectMult").height($(".searchCont").height() - 10);
}
function checkOne() {
var checkObjs = $(".searchCont .awsui-checkbox[name]");
checkObjs.each(function (i) {
$(this).on("ifChecked", function () {
var length = checkObjs.length - 1;
if (length == -1)
return;
$(".check-group").prop("checked", true);
$(".check-group").check("update");
checkObjs.each(function (i) {
if (!$(this).prop("checked")) {
$(".check-group").prop("checked", false);
$(".check-group").check("update");
}
});
});
$(this).on("ifUnchecked", function () {
var length = checkObjs.length - 1;
if (length == -1)
return;
$(".check-group").prop("checked", false);
$(".check-group").check("update");
});
});
}
function checkAll() {
var checkObjs = $(".searchCont .awsui-checkbox[name]");
$(".check-group").on("ifChecked", function () {
checkObjs.each(function (i) {
$(this).prop("checked", true);
$(this).check("update");
});
});
$(".check-group").on("ifUnchecked", function () {
checkObjs.each(function (i) {
$(this).prop("checked", false);
$(this).check("update");
});
});
}
function backToTree() {
$("#back").hide();
$(".searchCont").hide();
$("#dictionaryTree").show();
$("#buttonedit").val("");
if (config.searchShow == "tree" && dictionaryTree.isSearching) {
dictionaryTree.isSearching = false;
refreshTree();
}
}
function refreshTree() {
//暂时仅处理初始数据不包括子节点全部数据需要todo
for (var i = 0, size_i = treeHelp.allData.length; i < size_i; i++) {
var numbers = treeHelp.allData[i];
numbers.open = false;
}
dictionaryTree.refresh({data: treeHelp.allData});
}
var treeHelp = {}
// 初始化树节点
function initTree() {
// $.simpleAlert(正在加载 + "...", "loading");
var isMult = config.multiselect;
var treeEvent = {
beforeExpand: mouseUp,
afterLoad: function () {
// parent.$.simpleAlert("close");
parent.$(".loadingDiv").remove();
}
};
if (isMult) {
treeEvent.onCheck = getCheckValue;
treeEvent.onClick = multlpleClick;
treeEvent.afterExpand = function () {
autoSelect();
}
} else {
treeEvent.onClick = singleClick;
}
var setting = {
showIcon: true,
sort: true,
animate: true,
checkbox: isMult,
rememberNode: false,
checkInherit: config.checkInherit,
event: treeEvent,
dataModel: {
url: './jd',
method: "POST",
dataType: "JSON",
async: true,
params: {
config: BASE64.encoder(escape(JSON.stringify(config))),
pid: pid,
boItemName: boItemName,
sid: $("#sid").val(),
isDeep: false,
formData: awsui.encode(formData),
rowData: awsui.encode(rowData),
cmd: 'CLIENT_UI_TREEDICTIONARY_FILLBACK_LOADDATA'
},
successCallBack: function (data) {
$("#dictionaryTree").show();
treeHelp.queryDatas = treeHelp.allData = data;
}
}
};
//settimeout作用用于加载页面后显示出load图标后再去执行同步请求否则无loading效果
setTimeout(function () {
dictionaryTree = awsui.tree.init($("#dictionaryTree"), setting);
if (isMult) {
autoSelect();
}
});
var height;
var h = 37;
var div = parent.$("#popbox_tree_" + $.escapeSelector(boItemName));
if (div.length > 0 && div.css("display") != "none") {
height = parent.$("#popbox_tree_" + $.escapeSelector(boItemName) + "_frm").height() - $(".sousuo").outerHeight() - h;
} else {
height = parent.$("#id-awsui-win-frm-2013-frm").height() - $(".sousuo").outerHeight() - h;
}
$("#dictionaryTree").height(height);
$(".searchCont").height(height);
}
function autoSelect() {
//自动选中
this.doOnce = {};
if (this.valuesReal == null) {
this.valuesReal = [];
this.showBackValues = {};
var data = config.isGrid ? formData.otherData : formData;
if (!data || data[boItemName] == null || data[boItemName] == "") {
return;
}
var values = data[boItemName].split(config.separator);
var displayValue = config.isGrid ? data[boItemName + "_DISPLAYVALUE"] : parent.$("#" + boItemName + "VAL").val();
var displayValues = (displayValue == null ? "" : displayValue).split(config.separator); //防止空值报错
var fillBackFields = config.fillBackFields.split("|");
var getFields = config.getFields.split("|");
var fillBackFields_group = [];
for (var i = 0, size_i = fillBackFields.length; i < size_i; i++) {
var x1 = fillBackFields[i];
fillBackFields_group[x1] = {
data: data[x1] ? data[x1].split(config.separator) : "",
getField: getFields[i]
}
}
for (var i = 0, size_i = values.length; i < size_i; i++) {
var x2 = values[i];
showBackValues[x2] = {
fillBackFields: {},
getFieldValue: x2,
id: x2,
bringValue: true,
displayFieldValue: displayValues[i],
name: displayValues[i]
};
for (var k in fillBackFields_group) {
showBackValues[x2].fillBackFields[k] = fillBackFields_group[k].getField + "^" + (fillBackFields_group[k].data[i] ? fillBackFields_group[k].data[i] : "");
}
}
//console.log(showBackValues);
if (config.allPathSeparator == null) {
this.valuesReal = values;
} else {
for (var i = 0, size_i = values.length; i < size_i; i++) {
var value = values[i];
var vs = value.split(config.allPathSeparator);
this.valuesReal.push(vs[vs.length - 1]);
}
}
}
if (this.valuesReal.length > 0) {
dictionaryTree.setCheckNodes(this.valuesReal, false);
for (var i = 0, size_i = this.valuesReal.length; i < size_i; i++) {
var x = this.valuesReal[i];
if ($("#ckb_" + x).is(":visible")) {
this.valuesReal.splice(i, 1);
i--;
size_i--;
}
}
}
}
function getFiled() {
var id = parent.$("iframe[id$='_ifm']").attr("id");
if (id.indexOf("_ifm") > -1) {
id = id.substring(0, id.indexOf("_ifm"));
}
return id;
}
function getDataArray(index) {
var selectNodeArray = [];
if ($(".searchCont").is(":visible")) {
if (config.multiselect) {
var prevIndex = 0;
var s = searchArray.length;
selectNodeArray = selectArray;
} else {
for (var i = 0, s = searchArray.length; i < s; i++) {
if (i + 1 == index) {
selectNodeArray[0] = searchArray[i];
break;
}
}
}
} else {
if (config.multiselect) {
$("#dictionaryTree input:checked").each(function () {
selectNodeArray.push(dictionaryTree.config.nodes[$(this).val()]);
});
} else {
selectNodeArray[0] = dictionaryTree.getSelectedNode();
}
}
if (config.multiselect) {
//加入未操作的回填值
for (var i = 0, size_i = this.valuesReal.length; i < size_i; i++) {
var x = this.valuesReal[i];
if (config.allPathSeparator == null) {
if (this.showBackValues[x]) {
selectNodeArray.push(this.showBackValues[x]);
}
} else {
//全路径存储的是 AAA/BBB/CCC形式
for (var k in this.showBackValues) {
var karr = k.split(config.allPathSeparator);
if (karr[karr.length - 1] == x) {
selectNodeArray.push(this.showBackValues[k]);
}
}
}
}
}
return selectNodeArray;
}
// 树形图判断
function getValue(index) {
var isGrid = config.isGrid;
var selectNodeArray = getDataArray(index);
var valueData = {};
var displayValueData = {};
var separator = config.separator;
function buildValueData(x, value) {
if (valueData[x]) {
valueData[x] += separator + value;
} else {
valueData[x] = value;
}
}
function buildDisplayValueData(x, value) {
if (displayValueData[x]) {
displayValueData[x] += separator + value;
} else {
displayValueData[x] = value;
}
}
var fillBackFieldsConfig = config.fillBackFields.split("|");
if (selectNodeArray.length == 0) {
for (var s = 0; s < fillBackFieldsConfig.length; s++) {
buildValueData(fillBackFieldsConfig[s], "");
}
// parent.$.simpleAlert("请选择数据", "info", 1000, {
// model : true
// });
}
var json = {};
var hasTrueValue = false;
// 有正确回填的值
for (var m = 0; m < selectNodeArray.length; m++) {
debugger;
var selectNode = selectNodeArray[m];
if (selectNode == undefined) {
return "";
}
var fillBackValue = selectNode.fillBackFields;
var fillBackDisplayValue = selectNode.displayFieldValue;
// alert(JSON.stringify(selectNode));
for (var x in fillBackValue) {
var temp = false; // 当前判断结果
var value = fillBackValue[x].indexOf("^") > -1 ? fillBackValue[x].split("^")[1] : fillBackValue[x]; // 要回填的值
var sourveField = fillBackValue[x].indexOf("^") > -1 ? fillBackValue[x].split("^")[0] : x; // 要回填的源字段名
var tempValue = fillBackDisplayValue;
if (fillBackDisplayValue == null || fillBackDisplayValue == "") {
tempValue = value;
}
if (config.mappingRule == "") {
buildValueData(x, value);
buildDisplayValueData(x + "VAL", tempValue);
} else {
var mapping = config.mappingRule;
var rules = mapping.split(";");
var msg = "";
if (mapping.indexOf("parent") > -1) {
if (!selectNode.isLeaf) {
temp = true;
} else {
if (config.multiselect == true) {
} else {
msg = "叶子节点";
}
}
}
if (temp == false && mapping.indexOf("leaf") > -1) {
if (selectNode.isLeaf||selectNode.isLeaf==undefined) {
temp = true;
} else {
if (config.multiselect == true) {
} else {
msg = "非叶子节点";
}
}
}
if (temp == false && config.multiselect != true && !selectNode.bringValue) {
parent.$.simpleAlert(msg + "不允许被回填", "info", 1000, {
model: true
});
}
if (temp == true && mapping.indexOf(":") > 0) {
for (var j = 0; j < rules.length; j++) {
if (rules[j].indexOf(":") > 0) {
var filterNode = rules[j];
var filterFile = filterNode.split(":")[0];
var filterValue = filterNode.split(":")[1];
if (sourveField == filterFile && filterValue == value) {
temp = true;
} else {
temp = false;
if (config.multiselect) {
break;
}
parent.$.simpleAlert("当前节点不允许被回填", "info", 1000, {
model: true
});
}
}
}
}
if (temp == true) {
buildValueData(x, value);
buildDisplayValueData(x + "VAL", tempValue);
hasTrueValue = true;
}
}
}
}
if (!hasTrueValue && config.multiselect) {
if (parent.parent.$ !== undefined) {
parent.parent.$.simpleAlert("未找到可回填的节点", "info", 1000, {
model: true
});
} else {
parent.$.simpleAlert("未找到可回填的节点", "info", 1000, {
model: true
});
}
}
if (hasTrueValue) {
$.each(valueData, function (key, value) {
if (isGrid) {
json[key] = value;
json[key + "_DISPLAYVALUE"] = displayValueData[key + "VAL"];
} else {
if (config.gridfilter) { //子表过滤标识
parent.$("#" + boItemName).val(value).trigger("change");
parent.$("#" + boItemName + "VAL").val(displayValueData[key + "VAL"]).trigger("change");
} else {
parent.$("#" + key).val(value).trigger("change");
parent.$("#" + key + "VAL").val(displayValueData[key + "VAL"]);
}
if (parent.$("#" + key).attr("displayrule") == "true") {
parent.UIInit.getDisplayRuleValue(parent.$("#appId").val(), parent.$("#" + key).attr("boName"), key, value, separator);
}
}
});
if (!isGrid) {
parent.UIInit.treeDictionaryHelper.refreshNode(isGrid ? ("Grid_" + config.boDefName + boItemName) : boItemName);
}
if (isGrid) {
if (config.multiselect) {
return awsui.encode(json);
} else if (config.isGrid) {
parent[config.boDefName + config.boItemDefName](json, config);// 调用在grid的editor那注册的函数进行赋值
}
}
if (window.onTreeDictionaryChangeEvent && typeof window.onTreeDictionaryChangeEvent == "function") {
window.onTreeDictionaryChangeEvent(config);
}
}
}
// 加载子节点数据
function mouseUp(treeNode, params) {
if (!dictionaryTree.existsChildren(treeNode.id) && !treeNode.isLeaf) {
var sid = $("#sid").val(), id = treeNode.id, tAPath = {}, fillBackFields = treeNode.fillBackFields;
var dataModel = {
url: "./jd?sid=" + sid,
method: "POST",
dataType: "JSON",
params: {
config: BASE64.encoder(escape(JSON.stringify(config))),
pid: treeNode.id,
isDeep: dictionaryTree.setting.checkInherit ? dictionaryTree.setting.dataModel.params.isDeep : false,
cmd: 'CLIENT_UI_TREEDICTIONARY_FILLBACK_LOADDATA',
formData: awsui.encode(formData),
rowData: awsui.encode(rowData)
}
};
var childNode = dictionaryTree.getData(dataModel);
var displayField = config.displayField;
if (config.allPath) {
for (var i = 0, j = childNode.length; i < j; i++) {
var cfillbackFields = childNode[i].fillBackFields;
$.each(fillBackFields, function (k, v) {
cfillbackFields[k] = v + config.allPathSeparator + cfillbackFields[k].split("^")[1];
});
// 添加节点绝对路径展示值 用于回填展示
var newDisplayFieldVal = "";//
if (displayField != undefined && displayField != "") {
newDisplayFieldVal = treeNode['displayFieldValue'] + config.allPathSeparator + childNode[i].displayFieldValue;
childNode[i].displayFieldValue = newDisplayFieldVal;
}
}
}
dictionaryTree.buildTree(childNode, null, params);
}
}
// 多选点击 展开节点
function getCheckValue(node, data) {
if (!config.multiselect) {
return false;
}
if (config.mappingRule.indexOf("leaf") < 0) {//不允许回填叶子节点
if (data.isLeaf == true && data.root != "root") { //!!!!! 需求歧义,没有子节点的节点被当作父节点,而根节点不在这个规则之内吗?
$(node).get(0).checked = false;
return false;
}
} else if (config.mappingRule.indexOf("parent") < 0) {//不允许回填父节点
if (data.isLeaf == undefined || data.isLeaf == false) {
$(node).get(0).checked = false;
return false;
}
}
if ($(node).get(0).checked) {
var domnode = dictionaryTree.getNodeDomById(data.id);
dictionaryTree.setting.dataModel.params.isDeep = true;
dictionaryTree.expandNode(domnode, true);
dictionaryTree.setting.dataModel.params.isDeep = false;
}
}
function singleClick(treeNode) {
var flag = true;
if (config.mappingRule.indexOf("parent") < 0) {
if (treeNode.isLeaf == undefined || treeNode.isLeaf == false) {
flag = false;
}
} else if (config.mappingRule.indexOf("leaf") < 0) {
if (treeNode.isLeaf == true) {
flag = false;
}
}
if (flag) {
getValue(config.isGrid);
if (config.isGrid === false) { //子表在clientui层进行特殊处理
// parent.$("#" + boItemName + "dicttree").data("popbox", "close");
// parent.$("#popbox_tree_" + boItemName).hide();
parent.$("#popbox_tree_" + boItemName).popbox("close");
hideWeboffice();
if (parent.triggerChangeByBoItemName) {
parent.triggerChangeByBoItemName(boItemName, config.beforVal);
}
}
}
}
function hideWeboffice() {
if (parent.$('#iweboffice').length > 0) {
var isHideGold = false;
if (parent.$("#WebOffice2015").closest("div.aws-form-ux-tab-item").length > 0) {
if (!parent.$("#WebOffice2015").closest("div.aws-form-ux-tab-item").hasClass("show")) {
isHideGold = true;
}
}
if (!isHideGold) {
if (parent.iweboffice) {
$(parent.iweboffice).css('visibility', '');
}
}
}
}
function clearSelect() {
if (config.multiselect) {
var datas = dictionaryTree.getCheckedNodes();
for (var i = 0, size = datas.length; i < size; i++) {
$("#ckb_" + datas[i].id).removeAttr("checked");
}
} else {
var data = dictionaryTree.getSelectedNode();
dictionaryTree.cancelSelectNode(data);
}
}
function multlpleClick(treeNode) {
if (config.multiselect) {
var check = $("#ckb_" + treeNode.id).get(0);
check.checked = !check.checked;
if (check.checked) {
getCheckValue($(check), treeNode);
}
var nodeDom = dictionaryTree.getNodeDomById(treeNode.id);
var checkDom = $(nodeDom).children('input');
var check = $(checkDom).is(":checked");
var ck = $(checkDom);
/**
* 实现子节点选中父节点同时选中,子节点 取消父节点若有其他子节点被选中则不取消父节点
*/
// 存在子项
if (ck.attr("doc") == null) {
// 当启用checkbox并且checkInherit为true时启用父级和子级选中状态的继承
if (dictionaryTree.setting.checkInherit) {
// 如果未打开则出发打开事件
ck.parent().next().find("input[type=checkbox]").each(function () {
this.checked = ck.is(":checked");
});
}
} else {
var type = ck.is(":checked");
// 如果存在其他子项选中,则不撤销父级选中状态
var checked = ck.parent().parent().siblings().find("input[type=checkbox]:checked");
if (checked.length > 0) {
event.stopPropagation();
return;
}
if (config.checkInherit) {
checkParent(ck.attr("value"), type);
}
}
// 选中父级节点
function checkParent(id, type) {
var node = dictionaryTree.getParentNodeById(id);
if (node == null) {
return;
}
if (!dictionaryTree.setting.checkInherit) {
return;
}
dictionaryTree.config.treeObj.find("#ckb_" + node.id).prop("checked", type);
if (node.pid != 0) {
// 递归 如果不是根目录继续选中
checkParent(node.id, type);
}
}
// 阻止冒泡
event.stopPropagation();
} else {
}
}