/** * 树型组件编辑:新增、修改、删除,根据名称过滤节点操作 * @param {*} dlgId 对话框随机id,防止id冲突与数据集id统一命名引用 * @param {*} dsId 绑定过滤数据集ID * @param {*} option 扩展选项 * @returns */ import pinyin from "pinyin"; export function treeEditFilter(dlgId, dsId, option) { let filterField = option.hcTree.labelField; let lazy = option.hcTree.lazy; let fireAction = lazy ? "" : "keyup"; let treeId = "HcTree_org"; // 过滤编辑器 let inputFilter = { controlName: "HcInputFilter", controlId: "HcInputFilter_" + dlgId, size: "small", fireAction: fireAction, events: { filterChange: function (filterKey) { this.getRefCompt(treeId).filter( filterKey ); }, } }; // 编辑树组件 let hcTree = { controlName: "HcTree", controlId: treeId, dataset: dsId, labelField: filterField, // defaultExpandAll: true, // accordion: true, highlightCurrent: true, expandOnClickNode: false, lazy: false, filterNodeMethod:function(value, data,node) { if (!value){ return true }else{ let key =node.label +"_" + pinyin.getCamelChars(node.label); return key.indexOf(value.toUpperCase()) !== -1; } }, height: function (parentHeight) { return parentHeight - 80; }, renderContent(h, { node, data, store}) { var _this = this var iconClass = '' switch (data.FORGKIND) { case '.ROOT': iconClass = 'iconfont icon-root' break; case '.ORG': iconClass = 'iconfont icon-org' break; case '.DPT': iconClass = 'iconfont icon-dpt' break; case '.PTM': iconClass = 'iconfont icon-ptm' break; default: iconClass = '' break; } return ( <span class="custom-tree-node"> <span title={data.FORGKINDNAME}> <i class={iconClass}></i> {node.label} </span> </span>); } }; // 应用树个性化配置 Object.assign(hcTree, option.hcTree); // 返回布局结构 return [ inputFilter, hcTree ] }