From 711f4fff709d1b1c7170ee0e86fff1356faae824 Mon Sep 17 00:00:00 2001 From: Mr-wang Date: Tue, 20 Jun 2023 13:26:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=91=E5=BD=A2=E7=BD=91=E6=A0=BC=E5=AD=97?= =?UTF-8?q?=E5=85=B8=E9=80=89=E6=8B=A9=E6=B8=85=E9=99=A4=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=95=B0=E6=8D=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...m.ui.design.dict.treedictionary.runtime.js | 1023 +++++++++++++++++ 1 file changed, 1023 insertions(+) create mode 100644 apps/_bpm.platform/ui/dict/treedictionary/js/console.m.ui.design.dict.treedictionary.runtime.js diff --git a/apps/_bpm.platform/ui/dict/treedictionary/js/console.m.ui.design.dict.treedictionary.runtime.js b/apps/_bpm.platform/ui/dict/treedictionary/js/console.m.ui.design.dict.treedictionary.runtime.js new file mode 100644 index 00000000..464a9784 --- /dev/null +++ b/apps/_bpm.platform/ui/dict/treedictionary/js/console.m.ui.design.dict.treedictionary.runtime.js @@ -0,0 +1,1023 @@ +$(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 = ""; + html += "" + name + ""; + html += ""; + html += ""; + $(".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("" + 无数据 + ""); + $("#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 += ""; + if (config.multiselect) { + html += " "; + } + html += "" + sortIndex + ""; + html += "" + o["name"] + ""; + html += "" + o["path"] + ""; + html += ""; + 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 { + } +}