@vtx/components 3.1.126 → 3.1.127
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/vtx-ztree/index.js +19 -4
- package/lib/vtx-ztree/index.js.map +1 -1
- package/package.json +1 -1
package/lib/vtx-ztree/index.js
CHANGED
|
@@ -77,6 +77,7 @@ var VtxZtree = /*#__PURE__*/function (_React$Component) {
|
|
|
77
77
|
searchVal: '',
|
|
78
78
|
isEmpty: false
|
|
79
79
|
};
|
|
80
|
+
_this.timer = null;
|
|
80
81
|
return _this;
|
|
81
82
|
}
|
|
82
83
|
|
|
@@ -569,10 +570,24 @@ var VtxZtree = /*#__PURE__*/function (_React$Component) {
|
|
|
569
570
|
var obj = {
|
|
570
571
|
searchVal: e.target.value
|
|
571
572
|
};
|
|
572
|
-
t.
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
573
|
+
t.setState(obj);
|
|
574
|
+
|
|
575
|
+
if (t.timer) {
|
|
576
|
+
clearTimeout(t.timer);
|
|
577
|
+
t.timer = null;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
t.timer = setTimeout(function () {
|
|
581
|
+
var _obj$searchVal;
|
|
582
|
+
|
|
583
|
+
t.fuzzySearch((_obj$searchVal = obj.searchVal) === null || _obj$searchVal === void 0 ? void 0 : _obj$searchVal.trim(), true, function (arr) {
|
|
584
|
+
t.setState({
|
|
585
|
+
isEmpty: arr.length == 0
|
|
586
|
+
});
|
|
587
|
+
});
|
|
588
|
+
clearTimeout(t.timer);
|
|
589
|
+
t.timer = null;
|
|
590
|
+
}, 100);
|
|
576
591
|
}
|
|
577
592
|
})), t.state.isEmpty && /*#__PURE__*/_react["default"].createElement("div", {
|
|
578
593
|
className: "".concat(prefixCls, "-empty")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["VtxZtree","props","treeId","Date","getTime","parseInt","Math","random","zTreeObj","treeSetting","treeNodes","keyNameMapping","searchTimeOutId","loadPromise","loadTreeResource","loadComplete","fuzzySearch","debounce","bind","state","searchVal","isEmpty","$","fn","zTree","treeAll","Promise","resolve","getScript","CONFIG","ztreeServer","attr","rel","type","href","appendTo","then","refreshTree","prevProps","isEqual","refreshFlag","data","destroy","t","check","enable","checkable","chkboxType","checkStrictly","Y","N","view","selectedMulti","multiple","showIcon","expandSpeed","showTitle","fontCss","treeNode","selectable","color","callback","beforeClick","beforeCheck","onClick","e","selectedNodes","getSelectedNodes","key","event","selectedKeys","map","item","selectedNames","name","onCheck","checkedNodes","getCheckedNodes","isChecked","checked","getChangeCheckedNodes","checkedKeys","checkedNames","onExpand","isExpand","expandedKeys","getNodesByParam","onCollapse","onRightClick","onDblClick","customCfg","merge","Array","isArray","chkDisabled","disableCheckboxAll","genNodes","nodes","indexOf","open","children","length","newNode","every","autoExpandParent","some","newProps","initTreeSetting","initTreeNodes","init","selectNodes","defaultExpandAll","expandAll","expandFlag","i","len","node","pop","expandNode","checkedFlag","updateNode","selectNode","cancelSelectedNode","keyworld","isHighLight","nameKey","setting","nameIsHTML","metaChar","rexMeta","RegExp","ztreeFilter","_keywords","filterFunc","oldname","showNode","toLowerCase","newKeywords","replace","matchStr","rexGlobal","originalText","highLightText","hideNode","nodesShow","getNodesByFilter","processShowNodes","each","n","obj","pathOfOne","getPath","rootNodes","trim","setState","check_Child_State","prefixCls","showSearch","searchPlaceholder","classnames","target","value","arr","emptyNode","React","Component","propTypes","PropTypes","bool","string","array","number","object"],"sources":["vtx-ztree/index.jsx"],"sourcesContent":["/*\r\n * @Author: yemu\r\n * @Date: 2021-04-08 22:03:07\r\n * @LastEditTime: 2021-04-09 10:36:45\r\n * @LastEditors: yemu\r\n * @Description: 树形控件\r\n */\r\nimport React from 'react';\r\nimport Input from 'antd/lib/input';\r\nimport isEqual from 'lodash.isequal';\r\nimport merge from 'lodash.merge';\r\nimport debounce from 'lodash.debounce';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport CONFIG from '../config';\r\nimport { Empty } from 'antd';\r\n\r\nexport default class VtxZtree extends React.Component {\r\n static defaultProps = {\r\n showSearch: true,\r\n prefixCls: 'vtx-ztree',\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.treeId = `tree-${new Date().getTime()}-${parseInt(Math.random() * 10000)}`;\r\n this.zTreeObj = null;\r\n this.treeSetting = {};\r\n this.treeNodes = [];\r\n this.keyNameMapping = {};\r\n this.searchTimeOutId = null;\r\n this.loadPromise = this.loadTreeResource();\r\n this.loadComplete = false;\r\n this.fuzzySearch = debounce(this.fuzzySearch.bind(this), 300);\r\n this.state = {\r\n searchVal: '',\r\n isEmpty: false\r\n };\r\n }\r\n\r\n loadTreeResource() {\r\n if (!$.fn.zTree) {\r\n const treeAll = new Promise(resolve => {\r\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.all.min.js`, function() {\r\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.exhide.min.js`, function() {\r\n resolve();\r\n });\r\n });\r\n });\r\n $('<link>')\r\n .attr({\r\n rel: 'stylesheet',\r\n type: 'text/css',\r\n href: `${CONFIG.ztreeServer}/css/zTreeStyle/zTreeStyle.css`,\r\n })\r\n .appendTo('head');\r\n return treeAll;\r\n } else {\r\n return new Promise(resolve => {\r\n resolve();\r\n });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.loadPromise.then(() => {\r\n this.loadComplete = true;\r\n this.refreshTree(this.props);\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (!this.loadComplete) return;\r\n if (\r\n !isEqual(prevProps.refreshFlag, this.props.refreshFlag) ||\r\n !isEqual(prevProps.data, this.props.data)\r\n ) {\r\n this.refreshTree(this.props);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.zTreeObj && this.zTreeObj.destroy();\r\n }\r\n\r\n // 初始化树的配置\r\n initTreeSetting(props) {\r\n const t = this;\r\n // 初始化树的配置\r\n this.treeSetting = {\r\n check: {\r\n enable: !!props.checkable,\r\n chkboxType: props.checkStrictly ? { Y: '', N: '' } : { Y: 'ps', N: 'ps' },\r\n },\r\n view: {\r\n selectedMulti: !!props.multiple,\r\n showIcon: true,\r\n expandSpeed: 'normal',\r\n showTitle: false,\r\n fontCss: (treeId, treeNode) => {\r\n return treeNode.selectable ? {} : { color: '#B9B9B9' };\r\n },\r\n },\r\n callback: {\r\n beforeClick(treeId, treeNode) {\r\n return treeNode.selectable;\r\n },\r\n beforeCheck(treeId, treeNode) {\r\n return props.beforeCheck ? props.beforeCheck(treeNode) : true;\r\n },\r\n onClick(e, treeId, treeNode) {\r\n // console.log('点击节点信息',treeNode)\r\n if (typeof props.onClick == 'function') {\r\n const selectedNodes = t.getSelectedNodes();\r\n props.onClick({\r\n key: treeNode.key,\r\n event: e,\r\n treeNode,\r\n selectedNodes,\r\n selectedKeys: selectedNodes.map(item => item.key),\r\n selectedNames: selectedNodes.map(item => item.name),\r\n });\r\n }\r\n },\r\n onCheck(e, treeId, treeNode) {\r\n // console.log('勾选节点信息',treeNode)\r\n if (typeof props.onCheck == 'function') {\r\n const checkedNodes = t.getCheckedNodes();\r\n props.onCheck({\r\n key: treeNode.key,\r\n isChecked: treeNode.checked,\r\n treeNode: t.zTreeObj.getChangeCheckedNodes(),\r\n checkedNodes,\r\n checkedKeys: checkedNodes.map(item => item.key),\r\n checkedNames: checkedNodes.map(item => item.name),\r\n });\r\n }\r\n },\r\n onExpand(e, treeId, treeNode) {\r\n // console.log('展开节点信息',treeNode)\r\n if (typeof props.onExpand == 'function') {\r\n props.onExpand({\r\n key: treeNode.key,\r\n isExpand: true,\r\n treeNode,\r\n expandedKeys: t.zTreeObj\r\n .getNodesByParam('open', true)\r\n .map(item => item.key),\r\n });\r\n }\r\n },\r\n onCollapse(e, treeId, treeNode) {\r\n // console.log('收起节点信息',treeNode)\r\n if (typeof props.onExpand == 'function') {\r\n props.onExpand({\r\n key: treeNode.key,\r\n isExpand: false,\r\n treeNode,\r\n expandedKeys: t.zTreeObj\r\n .getNodesByParam('open', true)\r\n .map(item => item.key),\r\n });\r\n }\r\n },\r\n onRightClick(e, treeId, treeNode) {\r\n // console.log('右击节点信息',treeNode);\r\n if (typeof props.onRightClick == 'function') {\r\n props.onRightClick({\r\n event: e,\r\n key: treeNode.key,\r\n treeNode,\r\n });\r\n }\r\n },\r\n onDblClick(e, treeId, treeNode) {\r\n // console.log('双击节点信息',treeNode);\r\n if (typeof props.onDblClick == 'function') {\r\n props.onDblClick({\r\n event: e,\r\n key: treeNode.key,\r\n treeNode,\r\n });\r\n }\r\n },\r\n },\r\n };\r\n // 继承外部配置\r\n if (typeof this.props.customCfg == 'object') {\r\n merge(this.treeSetting, this.props.customCfg);\r\n }\r\n }\r\n\r\n // 初始化树的数据,对expandedKeys,checkedKeys做处理\r\n initTreeNodes(props) {\r\n const t = this;\r\n this.keyNameMapping = {};\r\n if (!Array.isArray(props.data)) {\r\n this.treeNodes = [];\r\n } else {\r\n const checkedKeys = props.checkedKeys || [];\r\n const expandedKeys = props.expandedKeys || [];\r\n const chkDisabled = !!props.disableCheckboxAll;\r\n this.treeNodes = (function genNodes(nodes) {\r\n return nodes\r\n .map(item => {\r\n const checked = checkedKeys.indexOf(item.key) != -1;\r\n const open = expandedKeys.indexOf(item.key) != -1;\r\n t.keyNameMapping[item.key] = item.name;\r\n if (Array.isArray(item.children) && item.children.length > 0) {\r\n return {\r\n chkDisabled,\r\n selectable: true,\r\n ...item,\r\n checked,\r\n open,\r\n children: genNodes(item.children),\r\n };\r\n } else {\r\n return {\r\n chkDisabled,\r\n selectable: true,\r\n ...item,\r\n checked,\r\n open,\r\n };\r\n }\r\n })\r\n .map(item => {\r\n if (Array.isArray(item.children) && item.children.length > 0) {\r\n const newNode = { ...item };\r\n // 如果子节点全部被勾选,父节点自动勾选\r\n if (item.children.every(item => item.checked)) {\r\n newNode.checked = true;\r\n }\r\n // 如果配置了自动展开父节点,父节点自动展开\r\n if (props.autoExpandParent && item.children.some(item => item.open)) {\r\n newNode.open = true;\r\n }\r\n return newNode;\r\n } else {\r\n return item;\r\n }\r\n });\r\n })(props.data);\r\n }\r\n }\r\n\r\n // 重新生成树\r\n refreshTree(newProps) {\r\n this.zTreeObj && this.zTreeObj.destroy();\r\n this.initTreeSetting(newProps);\r\n this.initTreeNodes(newProps);\r\n this.zTreeObj = $.fn.zTree.init($(`#${this.treeId}`), this.treeSetting, this.treeNodes);\r\n if (Array.isArray(newProps.selectedKeys)) {\r\n this.selectNodes(newProps.selectedKeys, newProps.multiple);\r\n }\r\n // 初始化全展开判断\r\n if (newProps.defaultExpandAll && !newProps.expandedKeys) {\r\n this.zTreeObj.expandAll(true);\r\n }\r\n }\r\n\r\n // 展开或折叠相关节点,expandFlag为true表示展开,false表示折叠\r\n expandNodes(expandedKeys, expandFlag = true) {\r\n for (let i = 0, len = expandedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', expandedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.expandNode(node, expandFlag, false, false);\r\n }\r\n }\r\n }\r\n\r\n // 勾选节点, checkedFlag为true表示勾选,false表示取消勾选\r\n checkNodes(checkedKeys, checkedFlag = true) {\r\n for (let i = 0, len = checkedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', checkedKeys[i]).pop();\r\n if (node) {\r\n // 隐藏节点的勾选状态也要改变\r\n node.checked = checkedFlag;\r\n this.zTreeObj.updateNode(node, true);\r\n // this.zTreeObj.checkNode(node,checkedFlag,false);\r\n }\r\n }\r\n }\r\n\r\n // 点击选择节点\r\n selectNodes(selectedKeys, multiple) {\r\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.selectNode(node, multiple, true);\r\n }\r\n }\r\n }\r\n\r\n // 取消选择节点\r\n cancelSelectedNodes(selectedKeys) {\r\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.cancelSelectedNode(node);\r\n }\r\n }\r\n }\r\n\r\n fuzzySearch(keyworld, isHighLight = true, callback) {\r\n const t = this;\r\n const nameKey = this.zTreeObj.setting.data.key.name; // get the key of the node name\r\n // isHighLight = isHighLight===false?false:true;//default true, only use false to disable highlight\r\n // isExpand = isExpand?true:false; // not to expand in default\r\n this.zTreeObj.setting.view.nameIsHTML = isHighLight; // allow use html in node name for highlight use\r\n\r\n const metaChar = '[\\\\[\\\\]\\\\\\\\^\\\\$\\\\.\\\\|\\\\?\\\\*\\\\+\\\\(\\\\)]'; // js meta characters\r\n const rexMeta = new RegExp(metaChar, 'gi'); // regular expression to match meta characters\r\n\r\n // searchNodeLazy(keyworld);\r\n ztreeFilter(t.zTreeObj, keyworld);\r\n\r\n // -----------------------------内部函数----------------------------------\r\n // keywords filter function\r\n function ztreeFilter(zTreeObj, _keywords) {\r\n if (!_keywords) {\r\n _keywords = ''; // default blank for _keywords\r\n }\r\n\r\n // function to find the matching node\r\n function filterFunc(node) {\r\n if (node && node.oldname && node.oldname.length > 0) {\r\n node[nameKey] = node.oldname; // recover oldname of the node if exist\r\n }\r\n zTreeObj.updateNode(node); // update node to for modifications take effect\r\n if (_keywords.length == 0) {\r\n // return true to show all nodes if the keyword is blank\r\n zTreeObj.showNode(node);\r\n // zTreeObj.expandNode(node,isExpand);\r\n return true;\r\n }\r\n // transform node name and keywords to lowercase\r\n if (\r\n node[nameKey] &&\r\n node[nameKey].toLowerCase().indexOf(_keywords.toLowerCase()) != -1\r\n ) {\r\n if (isHighLight) {\r\n // highlight process\r\n // a new variable 'newKeywords' created to store the keywords information\r\n // keep the parameter '_keywords' as initial and it will be used in next node\r\n // process the meta characters in _keywords thus the RegExp can be correctly used in str.replace\r\n const newKeywords = _keywords.replace(rexMeta, function(matchStr) {\r\n // add escape character before meta characters\r\n return '\\\\' + matchStr;\r\n });\r\n node.oldname = node[nameKey]; // store the old name\r\n const rexGlobal = new RegExp(newKeywords, 'gi'); // 'g' for global,'i' for ignore case\r\n // use replace(RegExp,replacement) since replace(/substr/g,replacement) cannot be used here\r\n node[nameKey] = node.oldname.replace(rexGlobal, function(originalText) {\r\n // highlight the matching words in node name\r\n const highLightText =\r\n '<span style=\"color: whitesmoke;background-color:#f50;\">' +\r\n originalText +\r\n '</span>';\r\n return highLightText;\r\n });\r\n zTreeObj.updateNode(node); // update node for modifications take effect\r\n }\r\n zTreeObj.showNode(node); // show node with matching keywords\r\n return true; // return true and show this node\r\n }\r\n\r\n zTreeObj.hideNode(node); // hide node that not matched\r\n return false; // return false for node not matched\r\n }\r\n\r\n const nodesShow = zTreeObj.getNodesByFilter(filterFunc); // get all nodes that would be shown\r\n processShowNodes(zTreeObj, nodesShow, _keywords); // nodes should be reprocessed to show correctly\r\n }\r\n\r\n /**\r\n * reprocess of nodes before showing\r\n */\r\n function processShowNodes(zTreeObj, nodesShow, _keywords) {\r\n if (nodesShow && nodesShow.length > 0) {\r\n // process the ancient nodes if _keywords is not blank\r\n if (_keywords.length > 0) {\r\n $.each(nodesShow, function(n, obj) {\r\n const pathOfOne = obj.getPath(); // get all the ancient nodes including current node\r\n if (pathOfOne && pathOfOne.length > 0) {\r\n // i < pathOfOne.length-1 process every node in path except self\r\n for (let i = 0; i < pathOfOne.length - 1; i++) {\r\n zTreeObj.showNode(pathOfOne[i]); // show node\r\n zTreeObj.expandNode(pathOfOne[i], true); // expand node\r\n }\r\n }\r\n });\r\n } else {\r\n // show all nodes when _keywords is blank and expand the root nodes\r\n const rootNodes = zTreeObj.getNodesByParam('level', '0'); // get all root nodes\r\n $.each(rootNodes, function(n, obj) {\r\n zTreeObj.expandNode(obj, true); // expand all root nodes\r\n });\r\n }\r\n }\r\n callback && callback(nodesShow);\r\n }\r\n }\r\n\r\n // 清空搜索框数据(供外部调用)\r\n clearSearch() {\r\n if (this.state.searchVal.trim() == '') return;\r\n this.setState({\r\n searchVal: '',\r\n });\r\n this.refreshTree(this.props);\r\n }\r\n\r\n // 获取所有已被勾选的节点\r\n getCheckedNodes() {\r\n return this.zTreeObj\r\n .getNodesByFilter(node => {\r\n // 节点被勾选(非半勾状态)\r\n if (this.props.checkStrictly) return node.checked;\r\n return node.checked && node.check_Child_State != 1;\r\n })\r\n .map(item => {\r\n return {\r\n ...item,\r\n name: item.oldname || item.name, // 搜索树会改变节点的name\r\n };\r\n });\r\n }\r\n\r\n // 获取所有已被点击选中的节点\r\n getSelectedNodes() {\r\n return this.zTreeObj.getSelectedNodes().map(item => {\r\n return {\r\n ...item,\r\n name: item.oldname || item.name,\r\n };\r\n });\r\n }\r\n\r\n // 展开所有节点(供外部调用)\r\n expandAll() {\r\n this.zTreeObj.expandAll(true);\r\n }\r\n\r\n // 收起所有节点(供外部调用)\r\n collapseAll() {\r\n this.zTreeObj.expandAll(false);\r\n }\r\n\r\n render() {\r\n const t = this;\r\n const { prefixCls, showSearch, searchPlaceholder } = t.props;\r\n return (\r\n <div\r\n className={classnames(`${prefixCls}-wraaper`, {\r\n [`${prefixCls}-has-search`]: showSearch,\r\n })}\r\n >\r\n {showSearch && (\r\n <div className={`${prefixCls}-search`}>\r\n <Input\r\n value={t.state.searchVal}\r\n placeholder={searchPlaceholder || '请输入要查询的关键字'}\r\n onChange={e => {\r\n let obj = {\r\n searchVal: e.target.value\r\n }\r\n t.fuzzySearch(e.target.value.trim(), true, (arr)=>{\r\n obj['isEmpty'] = arr.length==0;\r\n t.setState(obj);\r\n });\r\n }}\r\n />\r\n </div>\r\n )}\r\n {\r\n t.state.isEmpty&&\r\n <div className={`${prefixCls}-empty`}>\r\n {\r\n t.props.emptyNode?\r\n t.props.emptyNode:\r\n <Empty description=\"暂无数据\"/>\r\n }\r\n </div>\r\n }\r\n <div id={this.treeId} className={classnames('ztree', prefixCls)} />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nVtxZtree.propTypes = {\r\n showSearch: PropTypes.bool,\r\n searchPlaceholder: PropTypes.string,\r\n data: PropTypes.array,\r\n refreshFlag: PropTypes.number,\r\n customCfg: PropTypes.object,\r\n checkStrictly: PropTypes.bool,\r\n emptyNode: PropTypes.node,\r\n};\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["VtxZtree","props","treeId","Date","getTime","parseInt","Math","random","zTreeObj","treeSetting","treeNodes","keyNameMapping","searchTimeOutId","loadPromise","loadTreeResource","loadComplete","fuzzySearch","debounce","bind","state","searchVal","isEmpty","timer","$","fn","zTree","treeAll","Promise","resolve","getScript","CONFIG","ztreeServer","attr","rel","type","href","appendTo","then","refreshTree","prevProps","isEqual","refreshFlag","data","destroy","t","check","enable","checkable","chkboxType","checkStrictly","Y","N","view","selectedMulti","multiple","showIcon","expandSpeed","showTitle","fontCss","treeNode","selectable","color","callback","beforeClick","beforeCheck","onClick","e","selectedNodes","getSelectedNodes","key","event","selectedKeys","map","item","selectedNames","name","onCheck","checkedNodes","getCheckedNodes","isChecked","checked","getChangeCheckedNodes","checkedKeys","checkedNames","onExpand","isExpand","expandedKeys","getNodesByParam","onCollapse","onRightClick","onDblClick","customCfg","merge","Array","isArray","chkDisabled","disableCheckboxAll","genNodes","nodes","indexOf","open","children","length","newNode","every","autoExpandParent","some","newProps","initTreeSetting","initTreeNodes","init","selectNodes","defaultExpandAll","expandAll","expandFlag","i","len","node","pop","expandNode","checkedFlag","updateNode","selectNode","cancelSelectedNode","keyworld","isHighLight","nameKey","setting","nameIsHTML","metaChar","rexMeta","RegExp","ztreeFilter","_keywords","filterFunc","oldname","showNode","toLowerCase","newKeywords","replace","matchStr","rexGlobal","originalText","highLightText","hideNode","nodesShow","getNodesByFilter","processShowNodes","each","n","obj","pathOfOne","getPath","rootNodes","trim","setState","check_Child_State","prefixCls","showSearch","searchPlaceholder","classnames","target","value","clearTimeout","setTimeout","arr","emptyNode","React","Component","propTypes","PropTypes","bool","string","array","number","object"],"sources":["vtx-ztree/index.jsx"],"sourcesContent":["/*\r\n * @Author: yemu\r\n * @Date: 2021-04-08 22:03:07\r\n * @LastEditTime: 2021-04-09 10:36:45\r\n * @LastEditors: yemu\r\n * @Description: 树形控件\r\n */\r\nimport React from 'react';\r\nimport Input from 'antd/lib/input';\r\nimport isEqual from 'lodash.isequal';\r\nimport merge from 'lodash.merge';\r\nimport debounce from 'lodash.debounce';\r\nimport PropTypes from 'prop-types';\r\nimport classnames from 'classnames';\r\nimport CONFIG from '../config';\r\nimport { Empty } from 'antd';\r\n\r\nexport default class VtxZtree extends React.Component {\r\n static defaultProps = {\r\n showSearch: true,\r\n prefixCls: 'vtx-ztree',\r\n };\r\n\r\n constructor(props) {\r\n super(props);\r\n this.treeId = `tree-${new Date().getTime()}-${parseInt(Math.random() * 10000)}`;\r\n this.zTreeObj = null;\r\n this.treeSetting = {};\r\n this.treeNodes = [];\r\n this.keyNameMapping = {};\r\n this.searchTimeOutId = null;\r\n this.loadPromise = this.loadTreeResource();\r\n this.loadComplete = false;\r\n this.fuzzySearch = debounce(this.fuzzySearch.bind(this), 300);\r\n this.state = {\r\n searchVal: '',\r\n isEmpty: false\r\n };\r\n this.timer = null;\r\n }\r\n\r\n loadTreeResource() {\r\n if (!$.fn.zTree) {\r\n const treeAll = new Promise(resolve => {\r\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.all.min.js`, function() {\r\n $.getScript(`${CONFIG.ztreeServer}/js/jquery.ztree.exhide.min.js`, function() {\r\n resolve();\r\n });\r\n });\r\n });\r\n $('<link>')\r\n .attr({\r\n rel: 'stylesheet',\r\n type: 'text/css',\r\n href: `${CONFIG.ztreeServer}/css/zTreeStyle/zTreeStyle.css`,\r\n })\r\n .appendTo('head');\r\n return treeAll;\r\n } else {\r\n return new Promise(resolve => {\r\n resolve();\r\n });\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.loadPromise.then(() => {\r\n this.loadComplete = true;\r\n this.refreshTree(this.props);\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (!this.loadComplete) return;\r\n if (\r\n !isEqual(prevProps.refreshFlag, this.props.refreshFlag) ||\r\n !isEqual(prevProps.data, this.props.data)\r\n ) {\r\n this.refreshTree(this.props);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.zTreeObj && this.zTreeObj.destroy();\r\n }\r\n\r\n // 初始化树的配置\r\n initTreeSetting(props) {\r\n const t = this;\r\n // 初始化树的配置\r\n this.treeSetting = {\r\n check: {\r\n enable: !!props.checkable,\r\n chkboxType: props.checkStrictly ? { Y: '', N: '' } : { Y: 'ps', N: 'ps' },\r\n },\r\n view: {\r\n selectedMulti: !!props.multiple,\r\n showIcon: true,\r\n expandSpeed: 'normal',\r\n showTitle: false,\r\n fontCss: (treeId, treeNode) => {\r\n return treeNode.selectable ? {} : { color: '#B9B9B9' };\r\n },\r\n },\r\n callback: {\r\n beforeClick(treeId, treeNode) {\r\n return treeNode.selectable;\r\n },\r\n beforeCheck(treeId, treeNode) {\r\n return props.beforeCheck ? props.beforeCheck(treeNode) : true;\r\n },\r\n onClick(e, treeId, treeNode) {\r\n // console.log('点击节点信息',treeNode)\r\n if (typeof props.onClick == 'function') {\r\n const selectedNodes = t.getSelectedNodes();\r\n props.onClick({\r\n key: treeNode.key,\r\n event: e,\r\n treeNode,\r\n selectedNodes,\r\n selectedKeys: selectedNodes.map(item => item.key),\r\n selectedNames: selectedNodes.map(item => item.name),\r\n });\r\n }\r\n },\r\n onCheck(e, treeId, treeNode) {\r\n // console.log('勾选节点信息',treeNode)\r\n if (typeof props.onCheck == 'function') {\r\n const checkedNodes = t.getCheckedNodes();\r\n props.onCheck({\r\n key: treeNode.key,\r\n isChecked: treeNode.checked,\r\n treeNode: t.zTreeObj.getChangeCheckedNodes(),\r\n checkedNodes,\r\n checkedKeys: checkedNodes.map(item => item.key),\r\n checkedNames: checkedNodes.map(item => item.name),\r\n });\r\n }\r\n },\r\n onExpand(e, treeId, treeNode) {\r\n // console.log('展开节点信息',treeNode)\r\n if (typeof props.onExpand == 'function') {\r\n props.onExpand({\r\n key: treeNode.key,\r\n isExpand: true,\r\n treeNode,\r\n expandedKeys: t.zTreeObj\r\n .getNodesByParam('open', true)\r\n .map(item => item.key),\r\n });\r\n }\r\n },\r\n onCollapse(e, treeId, treeNode) {\r\n // console.log('收起节点信息',treeNode)\r\n if (typeof props.onExpand == 'function') {\r\n props.onExpand({\r\n key: treeNode.key,\r\n isExpand: false,\r\n treeNode,\r\n expandedKeys: t.zTreeObj\r\n .getNodesByParam('open', true)\r\n .map(item => item.key),\r\n });\r\n }\r\n },\r\n onRightClick(e, treeId, treeNode) {\r\n // console.log('右击节点信息',treeNode);\r\n if (typeof props.onRightClick == 'function') {\r\n props.onRightClick({\r\n event: e,\r\n key: treeNode.key,\r\n treeNode,\r\n });\r\n }\r\n },\r\n onDblClick(e, treeId, treeNode) {\r\n // console.log('双击节点信息',treeNode);\r\n if (typeof props.onDblClick == 'function') {\r\n props.onDblClick({\r\n event: e,\r\n key: treeNode.key,\r\n treeNode,\r\n });\r\n }\r\n },\r\n },\r\n };\r\n // 继承外部配置\r\n if (typeof this.props.customCfg == 'object') {\r\n merge(this.treeSetting, this.props.customCfg);\r\n }\r\n }\r\n\r\n // 初始化树的数据,对expandedKeys,checkedKeys做处理\r\n initTreeNodes(props) {\r\n const t = this;\r\n this.keyNameMapping = {};\r\n if (!Array.isArray(props.data)) {\r\n this.treeNodes = [];\r\n } else {\r\n const checkedKeys = props.checkedKeys || [];\r\n const expandedKeys = props.expandedKeys || [];\r\n const chkDisabled = !!props.disableCheckboxAll;\r\n this.treeNodes = (function genNodes(nodes) {\r\n return nodes\r\n .map(item => {\r\n const checked = checkedKeys.indexOf(item.key) != -1;\r\n const open = expandedKeys.indexOf(item.key) != -1;\r\n t.keyNameMapping[item.key] = item.name;\r\n if (Array.isArray(item.children) && item.children.length > 0) {\r\n return {\r\n chkDisabled,\r\n selectable: true,\r\n ...item,\r\n checked,\r\n open,\r\n children: genNodes(item.children),\r\n };\r\n } else {\r\n return {\r\n chkDisabled,\r\n selectable: true,\r\n ...item,\r\n checked,\r\n open,\r\n };\r\n }\r\n })\r\n .map(item => {\r\n if (Array.isArray(item.children) && item.children.length > 0) {\r\n const newNode = { ...item };\r\n // 如果子节点全部被勾选,父节点自动勾选\r\n if (item.children.every(item => item.checked)) {\r\n newNode.checked = true;\r\n }\r\n // 如果配置了自动展开父节点,父节点自动展开\r\n if (props.autoExpandParent && item.children.some(item => item.open)) {\r\n newNode.open = true;\r\n }\r\n return newNode;\r\n } else {\r\n return item;\r\n }\r\n });\r\n })(props.data);\r\n }\r\n }\r\n\r\n // 重新生成树\r\n refreshTree(newProps) {\r\n this.zTreeObj && this.zTreeObj.destroy();\r\n this.initTreeSetting(newProps);\r\n this.initTreeNodes(newProps);\r\n this.zTreeObj = $.fn.zTree.init($(`#${this.treeId}`), this.treeSetting, this.treeNodes);\r\n if (Array.isArray(newProps.selectedKeys)) {\r\n this.selectNodes(newProps.selectedKeys, newProps.multiple);\r\n }\r\n // 初始化全展开判断\r\n if (newProps.defaultExpandAll && !newProps.expandedKeys) {\r\n this.zTreeObj.expandAll(true);\r\n }\r\n }\r\n\r\n // 展开或折叠相关节点,expandFlag为true表示展开,false表示折叠\r\n expandNodes(expandedKeys, expandFlag = true) {\r\n for (let i = 0, len = expandedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', expandedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.expandNode(node, expandFlag, false, false);\r\n }\r\n }\r\n }\r\n\r\n // 勾选节点, checkedFlag为true表示勾选,false表示取消勾选\r\n checkNodes(checkedKeys, checkedFlag = true) {\r\n for (let i = 0, len = checkedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', checkedKeys[i]).pop();\r\n if (node) {\r\n // 隐藏节点的勾选状态也要改变\r\n node.checked = checkedFlag;\r\n this.zTreeObj.updateNode(node, true);\r\n // this.zTreeObj.checkNode(node,checkedFlag,false);\r\n }\r\n }\r\n }\r\n\r\n // 点击选择节点\r\n selectNodes(selectedKeys, multiple) {\r\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.selectNode(node, multiple, true);\r\n }\r\n }\r\n }\r\n\r\n // 取消选择节点\r\n cancelSelectedNodes(selectedKeys) {\r\n for (let i = 0, len = selectedKeys.length; i < len; i++) {\r\n const node = this.zTreeObj.getNodesByParam('key', selectedKeys[i]).pop();\r\n if (node) {\r\n this.zTreeObj.cancelSelectedNode(node);\r\n }\r\n }\r\n }\r\n\r\n fuzzySearch(keyworld, isHighLight = true, callback) {\r\n const t = this;\r\n const nameKey = this.zTreeObj.setting.data.key.name; // get the key of the node name\r\n // isHighLight = isHighLight===false?false:true;//default true, only use false to disable highlight\r\n // isExpand = isExpand?true:false; // not to expand in default\r\n this.zTreeObj.setting.view.nameIsHTML = isHighLight; // allow use html in node name for highlight use\r\n\r\n const metaChar = '[\\\\[\\\\]\\\\\\\\^\\\\$\\\\.\\\\|\\\\?\\\\*\\\\+\\\\(\\\\)]'; // js meta characters\r\n const rexMeta = new RegExp(metaChar, 'gi'); // regular expression to match meta characters\r\n\r\n // searchNodeLazy(keyworld);\r\n ztreeFilter(t.zTreeObj, keyworld);\r\n\r\n // -----------------------------内部函数----------------------------------\r\n // keywords filter function\r\n function ztreeFilter(zTreeObj, _keywords) {\r\n if (!_keywords) {\r\n _keywords = ''; // default blank for _keywords\r\n }\r\n\r\n // function to find the matching node\r\n function filterFunc(node) {\r\n if (node && node.oldname && node.oldname.length > 0) {\r\n node[nameKey] = node.oldname; // recover oldname of the node if exist\r\n }\r\n zTreeObj.updateNode(node); // update node to for modifications take effect\r\n if (_keywords.length == 0) {\r\n // return true to show all nodes if the keyword is blank\r\n zTreeObj.showNode(node);\r\n // zTreeObj.expandNode(node,isExpand);\r\n return true;\r\n }\r\n // transform node name and keywords to lowercase\r\n if (\r\n node[nameKey] &&\r\n node[nameKey].toLowerCase().indexOf(_keywords.toLowerCase()) != -1\r\n ) {\r\n if (isHighLight) {\r\n // highlight process\r\n // a new variable 'newKeywords' created to store the keywords information\r\n // keep the parameter '_keywords' as initial and it will be used in next node\r\n // process the meta characters in _keywords thus the RegExp can be correctly used in str.replace\r\n const newKeywords = _keywords.replace(rexMeta, function(matchStr) {\r\n // add escape character before meta characters\r\n return '\\\\' + matchStr;\r\n });\r\n node.oldname = node[nameKey]; // store the old name\r\n const rexGlobal = new RegExp(newKeywords, 'gi'); // 'g' for global,'i' for ignore case\r\n // use replace(RegExp,replacement) since replace(/substr/g,replacement) cannot be used here\r\n node[nameKey] = node.oldname.replace(rexGlobal, function(originalText) {\r\n // highlight the matching words in node name\r\n const highLightText =\r\n '<span style=\"color: whitesmoke;background-color:#f50;\">' +\r\n originalText +\r\n '</span>';\r\n return highLightText;\r\n });\r\n zTreeObj.updateNode(node); // update node for modifications take effect\r\n }\r\n zTreeObj.showNode(node); // show node with matching keywords\r\n return true; // return true and show this node\r\n }\r\n\r\n zTreeObj.hideNode(node); // hide node that not matched\r\n return false; // return false for node not matched\r\n }\r\n\r\n const nodesShow = zTreeObj.getNodesByFilter(filterFunc); // get all nodes that would be shown\r\n processShowNodes(zTreeObj, nodesShow, _keywords); // nodes should be reprocessed to show correctly\r\n }\r\n\r\n /**\r\n * reprocess of nodes before showing\r\n */\r\n function processShowNodes(zTreeObj, nodesShow, _keywords) {\r\n if (nodesShow && nodesShow.length > 0) {\r\n // process the ancient nodes if _keywords is not blank\r\n if (_keywords.length > 0) {\r\n $.each(nodesShow, function(n, obj) {\r\n const pathOfOne = obj.getPath(); // get all the ancient nodes including current node\r\n if (pathOfOne && pathOfOne.length > 0) {\r\n // i < pathOfOne.length-1 process every node in path except self\r\n for (let i = 0; i < pathOfOne.length - 1; i++) {\r\n zTreeObj.showNode(pathOfOne[i]); // show node\r\n zTreeObj.expandNode(pathOfOne[i], true); // expand node\r\n }\r\n }\r\n });\r\n } else {\r\n // show all nodes when _keywords is blank and expand the root nodes\r\n const rootNodes = zTreeObj.getNodesByParam('level', '0'); // get all root nodes\r\n $.each(rootNodes, function(n, obj) {\r\n zTreeObj.expandNode(obj, true); // expand all root nodes\r\n });\r\n }\r\n }\r\n callback && callback(nodesShow);\r\n }\r\n }\r\n\r\n // 清空搜索框数据(供外部调用)\r\n clearSearch() {\r\n if (this.state.searchVal.trim() == '') return;\r\n this.setState({\r\n searchVal: '',\r\n });\r\n this.refreshTree(this.props);\r\n }\r\n\r\n // 获取所有已被勾选的节点\r\n getCheckedNodes() {\r\n return this.zTreeObj\r\n .getNodesByFilter(node => {\r\n // 节点被勾选(非半勾状态)\r\n if (this.props.checkStrictly) return node.checked;\r\n return node.checked && node.check_Child_State != 1;\r\n })\r\n .map(item => {\r\n return {\r\n ...item,\r\n name: item.oldname || item.name, // 搜索树会改变节点的name\r\n };\r\n });\r\n }\r\n\r\n // 获取所有已被点击选中的节点\r\n getSelectedNodes() {\r\n return this.zTreeObj.getSelectedNodes().map(item => {\r\n return {\r\n ...item,\r\n name: item.oldname || item.name,\r\n };\r\n });\r\n }\r\n\r\n // 展开所有节点(供外部调用)\r\n expandAll() {\r\n this.zTreeObj.expandAll(true);\r\n }\r\n\r\n // 收起所有节点(供外部调用)\r\n collapseAll() {\r\n this.zTreeObj.expandAll(false);\r\n }\r\n\r\n render() {\r\n const t = this;\r\n const { prefixCls, showSearch, searchPlaceholder } = t.props;\r\n return (\r\n <div\r\n className={classnames(`${prefixCls}-wraaper`, {\r\n [`${prefixCls}-has-search`]: showSearch,\r\n })}\r\n >\r\n {showSearch && (\r\n <div className={`${prefixCls}-search`}>\r\n <Input\r\n value={t.state.searchVal}\r\n placeholder={searchPlaceholder || '请输入要查询的关键字'}\r\n onChange={e => {\r\n let obj = {\r\n searchVal: e.target.value\r\n }\r\n t.setState(obj);\r\n if(t.timer){\r\n clearTimeout(t.timer);\r\n t.timer = null;\r\n }\r\n t.timer = setTimeout(()=>{\r\n t.fuzzySearch(obj.searchVal?.trim(), true, (arr)=>{\r\n t.setState({isEmpty: arr.length==0});\r\n });\r\n clearTimeout(t.timer);\r\n t.timer = null;\r\n },100)\r\n }}\r\n />\r\n </div>\r\n )}\r\n {\r\n t.state.isEmpty&&\r\n <div className={`${prefixCls}-empty`}>\r\n {\r\n t.props.emptyNode?\r\n t.props.emptyNode:\r\n <Empty description=\"暂无数据\"/>\r\n }\r\n </div>\r\n }\r\n <div id={this.treeId} className={classnames('ztree', prefixCls)} />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nVtxZtree.propTypes = {\r\n showSearch: PropTypes.bool,\r\n searchPlaceholder: PropTypes.string,\r\n data: PropTypes.array,\r\n refreshFlag: PropTypes.number,\r\n customCfg: PropTypes.object,\r\n checkStrictly: PropTypes.bool,\r\n emptyNode: PropTypes.node,\r\n};\r\n"],"mappings":"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"}
|