vxe-pc-ui 3.15.3 → 3.15.4
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/es/cascader/src/cascader.js +72 -30
- package/es/tree-select/src/tree-select.js +22 -26
- package/es/ui/index.js +4 -1
- package/es/ui/src/log.js +10 -6
- package/lib/cascader/src/cascader.js +83 -31
- package/lib/cascader/src/cascader.min.js +1 -1
- package/lib/index.umd.js +158 -43
- package/lib/index.umd.min.js +1 -1
- package/lib/tree-select/src/tree-select.js +7 -7
- package/lib/tree-select/src/tree-select.min.js +1 -1
- package/lib/ui/index.js +4 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +9 -5
- package/lib/ui/src/log.min.js +1 -1
- package/package.json +1 -1
- package/packages/cascader/src/cascader.ts +71 -31
- package/packages/tree-select/src/tree-select.ts +22 -26
- package/packages/ui/index.ts +3 -0
- package/packages/ui/src/log.ts +11 -6
- package/types/components/cascader.d.ts +4 -0
- /package/es/icon/{iconfont.1781852732213.ttf → iconfont.1781876590487.ttf} +0 -0
- /package/es/icon/{iconfont.1781852732213.woff → iconfont.1781876590487.woff} +0 -0
- /package/es/icon/{iconfont.1781852732213.woff2 → iconfont.1781876590487.woff2} +0 -0
- /package/es/{iconfont.1781852732213.ttf → iconfont.1781876590487.ttf} +0 -0
- /package/es/{iconfont.1781852732213.woff → iconfont.1781876590487.woff} +0 -0
- /package/es/{iconfont.1781852732213.woff2 → iconfont.1781876590487.woff2} +0 -0
- /package/lib/icon/style/{iconfont.1781852732213.ttf → iconfont.1781876590487.ttf} +0 -0
- /package/lib/icon/style/{iconfont.1781852732213.woff → iconfont.1781876590487.woff} +0 -0
- /package/lib/icon/style/{iconfont.1781852732213.woff2 → iconfont.1781876590487.woff2} +0 -0
- /package/lib/{iconfont.1781852732213.ttf → iconfont.1781876590487.ttf} +0 -0
- /package/lib/{iconfont.1781852732213.woff → iconfont.1781876590487.woff} +0 -0
- /package/lib/{iconfont.1781852732213.woff2 → iconfont.1781876590487.woff2} +0 -0
|
@@ -3,12 +3,10 @@ import { getConfig, getI18n, getIcon, globalEvents, createEvent, renderEmptyElem
|
|
|
3
3
|
import { getEventTargetNode, updatePanelPlacement, toCssUnit } from '../../ui/src/dom';
|
|
4
4
|
import { getLastZIndex, nextZIndex } from '../../ui/src/utils';
|
|
5
5
|
import { enNodeValue, deNodeValue } from './util';
|
|
6
|
-
import { createComponentLog } from '../../ui/src/log';
|
|
7
6
|
import XEUtils from 'xe-utils';
|
|
8
7
|
import VxeListComponent from '../../list/src/list';
|
|
9
8
|
import VxeInputComponent from '../../input/src/input';
|
|
10
9
|
import VxeButtonComponent from '../../button/src/button';
|
|
11
|
-
const { errLog } = createComponentLog('cascader');
|
|
12
10
|
/**
|
|
13
11
|
* 生成节点的唯一主键
|
|
14
12
|
*/
|
|
@@ -666,7 +664,6 @@ export default {
|
|
|
666
664
|
const $xeCascader = this;
|
|
667
665
|
const reactData = $xeCascader.reactData;
|
|
668
666
|
const internalData = $xeCascader.internalData;
|
|
669
|
-
const { nodeMaps } = internalData;
|
|
670
667
|
let fullList = internalData.afterVisibleList;
|
|
671
668
|
if (force) {
|
|
672
669
|
// 更新数据,处理筛选和排序
|
|
@@ -675,18 +672,59 @@ export default {
|
|
|
675
672
|
fullList = $xeCascader.handleTreeToList();
|
|
676
673
|
}
|
|
677
674
|
const treeList = fullList.slice(0);
|
|
678
|
-
treeList.forEach((item, $index) => {
|
|
679
|
-
const nodeid = $xeCascader.getNodeId(item);
|
|
680
|
-
const itemRest = nodeMaps[nodeid];
|
|
681
|
-
if (itemRest) {
|
|
682
|
-
itemRest.$index = $index;
|
|
683
|
-
}
|
|
684
|
-
});
|
|
685
675
|
reactData.treeList = treeList;
|
|
686
676
|
},
|
|
677
|
+
/**
|
|
678
|
+
* 获取第一个拥有子节点的节点
|
|
679
|
+
*/
|
|
680
|
+
handleHasChildNodeIds(treeList, type) {
|
|
681
|
+
const $xeCascader = this;
|
|
682
|
+
const childrenField = $xeCascader.computeChildrenField;
|
|
683
|
+
const mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
684
|
+
const treeOpts = $xeCascader.computeTreeOpts;
|
|
685
|
+
const { transform } = treeOpts;
|
|
686
|
+
const childField = transform ? mapChildrenField : childrenField;
|
|
687
|
+
const nodeIds = [];
|
|
688
|
+
let currList = treeList;
|
|
689
|
+
while (currList.length) {
|
|
690
|
+
let targetNode = null;
|
|
691
|
+
for (const item of currList) {
|
|
692
|
+
const kids = item[childField];
|
|
693
|
+
if (XEUtils.isArray(kids) && kids.length > 0) {
|
|
694
|
+
targetNode = item;
|
|
695
|
+
break;
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
if (targetNode) {
|
|
699
|
+
nodeIds.push($xeCascader.getNodeId(targetNode));
|
|
700
|
+
currList = targetNode[childField];
|
|
701
|
+
}
|
|
702
|
+
else {
|
|
703
|
+
const endNode = XEUtils[type](currList);
|
|
704
|
+
nodeIds.push($xeCascader.getNodeId(endNode));
|
|
705
|
+
break;
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
return nodeIds;
|
|
709
|
+
},
|
|
687
710
|
triggerSearchEvent: XEUtils.debounce(function () {
|
|
688
711
|
const $xeCascader = this;
|
|
712
|
+
const reactData = $xeCascader.reactData;
|
|
713
|
+
const internalData = $xeCascader.internalData;
|
|
689
714
|
$xeCascader.handleData(true);
|
|
715
|
+
$xeCascader.updateModelChecked();
|
|
716
|
+
const filterOpts = $xeCascader.computeFilterOpts;
|
|
717
|
+
const { autoExpandMode } = filterOpts;
|
|
718
|
+
const { afterTreeList } = internalData;
|
|
719
|
+
// 默认展开第
|
|
720
|
+
if (autoExpandMode === 'first' || autoExpandMode === 'last') {
|
|
721
|
+
const stItems = $xeCascader.handleHasChildNodeIds(afterTreeList, autoExpandMode);
|
|
722
|
+
reactData.currentItems = stItems;
|
|
723
|
+
}
|
|
724
|
+
else {
|
|
725
|
+
$xeCascader.handleCurrentItems();
|
|
726
|
+
}
|
|
727
|
+
$xeCascader.updateCurrentChunk();
|
|
690
728
|
}, 350, { trailing: true }),
|
|
691
729
|
loadData(list) {
|
|
692
730
|
const $xeCascader = this;
|
|
@@ -719,17 +757,20 @@ export default {
|
|
|
719
757
|
const reactData = $xeCascader.reactData;
|
|
720
758
|
const internalData = $xeCascader.internalData;
|
|
721
759
|
const { currentItems } = reactData;
|
|
722
|
-
const {
|
|
760
|
+
const { afterTreeList } = internalData;
|
|
723
761
|
const childrenField = $xeCascader.computeChildrenField;
|
|
724
|
-
const
|
|
762
|
+
const mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
763
|
+
const treeOpts = $xeCascader.computeTreeOpts;
|
|
764
|
+
const { transform } = treeOpts;
|
|
765
|
+
const currentCunkList = [afterTreeList];
|
|
725
766
|
if (currentItems.length) {
|
|
726
767
|
let chunkIndex = 0;
|
|
727
768
|
let stNodeid = currentItems[chunkIndex];
|
|
728
|
-
let optList =
|
|
769
|
+
let optList = afterTreeList;
|
|
729
770
|
while (stNodeid && optList && optList.length) {
|
|
730
771
|
stNodeid = currentItems[chunkIndex++];
|
|
731
772
|
const currOption = optList.find(item => stNodeid === $xeCascader.getNodeId(item));
|
|
732
|
-
optList = currOption ? currOption[childrenField] : [];
|
|
773
|
+
optList = currOption ? currOption[transform ? mapChildrenField : childrenField] : [];
|
|
733
774
|
if (!optList || !optList.length) {
|
|
734
775
|
break;
|
|
735
776
|
}
|
|
@@ -742,7 +783,7 @@ export default {
|
|
|
742
783
|
const $xeCascader = this;
|
|
743
784
|
const reactData = $xeCascader.reactData;
|
|
744
785
|
const internalData = $xeCascader.internalData;
|
|
745
|
-
const {
|
|
786
|
+
const { afterTreeList } = internalData;
|
|
746
787
|
const selectVals = $xeCascader.computeSelectVals;
|
|
747
788
|
const childrenField = $xeCascader.computeChildrenField;
|
|
748
789
|
const mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
@@ -752,7 +793,7 @@ export default {
|
|
|
752
793
|
const expandedMaps = {};
|
|
753
794
|
if (selectVals.length) {
|
|
754
795
|
const lastVal = enNodeValue(XEUtils.last(selectVals));
|
|
755
|
-
const stRest = XEUtils.findTree(
|
|
796
|
+
const stRest = XEUtils.findTree(afterTreeList, (item) => lastVal === $xeCascader.getNodeId(item), { children: transform ? mapChildrenField : childrenField });
|
|
756
797
|
if (stRest) {
|
|
757
798
|
const { nodes } = stRest;
|
|
758
799
|
nodes.forEach(item => {
|
|
@@ -881,13 +922,14 @@ export default {
|
|
|
881
922
|
return { checkNodeKeys: checkKeys, checkNodes };
|
|
882
923
|
});
|
|
883
924
|
},
|
|
884
|
-
|
|
925
|
+
clearSelectedNode() {
|
|
885
926
|
const $xeCascader = this;
|
|
886
927
|
const reactData = $xeCascader.reactData;
|
|
887
928
|
const internalData = $xeCascader.internalData;
|
|
888
929
|
internalData.indeterminateRowMaps = {};
|
|
889
930
|
internalData.selectCheckboxMaps = {};
|
|
890
931
|
reactData.updateCheckboxFlag++;
|
|
932
|
+
reactData.selectRadioKey = null;
|
|
891
933
|
$xeCascader.updateCheckboxStatus();
|
|
892
934
|
return $xeCascader.$nextTick().then(() => {
|
|
893
935
|
return { checkNodeKeys: [], checkNodes: [] };
|
|
@@ -939,7 +981,7 @@ export default {
|
|
|
939
981
|
const { $event } = params;
|
|
940
982
|
const { multiple, checkedClosable } = props;
|
|
941
983
|
const value = multiple ? [] : null;
|
|
942
|
-
$xeCascader.
|
|
984
|
+
$xeCascader.clearSelectedNode().then(() => {
|
|
943
985
|
if (checkedClosable) {
|
|
944
986
|
$xeCascader.hideOptionPanel($event);
|
|
945
987
|
}
|
|
@@ -1037,9 +1079,12 @@ export default {
|
|
|
1037
1079
|
const { nodeMaps } = internalData;
|
|
1038
1080
|
const radioOpts = $xeCascader.computeRadioOpts;
|
|
1039
1081
|
const childrenField = $xeCascader.computeChildrenField;
|
|
1082
|
+
const mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
1083
|
+
const treeOpts = $xeCascader.computeTreeOpts;
|
|
1084
|
+
const { transform } = treeOpts;
|
|
1040
1085
|
const { checkMode, checkMethod } = radioOpts;
|
|
1041
1086
|
const nodeid = $xeCascader.getNodeId(node);
|
|
1042
|
-
const childList = node[childrenField];
|
|
1087
|
+
const childList = node[transform ? mapChildrenField : childrenField];
|
|
1043
1088
|
const isExistChild = childList && childList.length > 0;
|
|
1044
1089
|
const nodeItem = nodeMaps[nodeid] || {};
|
|
1045
1090
|
const nLevel = nodeItem.level;
|
|
@@ -1211,7 +1256,7 @@ export default {
|
|
|
1211
1256
|
const childRowList = [];
|
|
1212
1257
|
XEUtils.eachTree(afterTreeList, (node) => {
|
|
1213
1258
|
const nodeid = $xeCascader.getNodeId(node);
|
|
1214
|
-
const childList = node[childrenField];
|
|
1259
|
+
const childList = node[transform ? mapChildrenField : childrenField];
|
|
1215
1260
|
if (childList && childList.length && !childRowMaps[nodeid]) {
|
|
1216
1261
|
childRowMaps[nodeid] = 1;
|
|
1217
1262
|
childRowList.unshift([node, nodeid, childList]);
|
|
@@ -1318,7 +1363,7 @@ export default {
|
|
|
1318
1363
|
const treeOpts = $xeCascader.computeTreeOpts;
|
|
1319
1364
|
const { transform } = treeOpts;
|
|
1320
1365
|
const nodeid = $xeCascader.getNodeId(node);
|
|
1321
|
-
const childList = node[childrenField];
|
|
1366
|
+
const childList = node[transform ? mapChildrenField : childrenField];
|
|
1322
1367
|
const isExistChild = childList && childList.length > 0;
|
|
1323
1368
|
const nodeItem = nodeMaps[nodeid] || {};
|
|
1324
1369
|
const nLevel = nodeItem.level;
|
|
@@ -1583,11 +1628,12 @@ export default {
|
|
|
1583
1628
|
const { currentNode, selectRadioKey, updateCheckboxFlag, updateExpandedFlag } = reactData;
|
|
1584
1629
|
const { nodeMaps, selectCheckboxMaps, indeterminateRowMaps, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData;
|
|
1585
1630
|
const treeOpts = $xeCascader.computeTreeOpts;
|
|
1586
|
-
const { lazy, iconLoaded, iconOpen, iconClose } = treeOpts;
|
|
1631
|
+
const { lazy, transform, iconLoaded, iconOpen, iconClose } = treeOpts;
|
|
1587
1632
|
const childrenField = $xeCascader.computeChildrenField;
|
|
1633
|
+
const mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
1588
1634
|
const labelField = $xeCascader.computeLabelField;
|
|
1589
1635
|
const hasChildField = $xeCascader.computeHasChildField;
|
|
1590
|
-
const childList = node[childrenField];
|
|
1636
|
+
const childList = node[transform ? mapChildrenField : childrenField];
|
|
1591
1637
|
const isExistChild = childList && childList.length > 0;
|
|
1592
1638
|
const iconSlot = slots.icon;
|
|
1593
1639
|
const titleSlot = slots.title;
|
|
@@ -1787,7 +1833,7 @@ export default {
|
|
|
1787
1833
|
h('div', {
|
|
1788
1834
|
class: 'vxe-tree-select--header-button'
|
|
1789
1835
|
}, [
|
|
1790
|
-
showCheckedButton && showClearButton
|
|
1836
|
+
(showCheckedButton && multiple) || showClearButton
|
|
1791
1837
|
? h('div', {
|
|
1792
1838
|
class: 'vxe-tree-select--selected-btns'
|
|
1793
1839
|
}, [
|
|
@@ -1849,7 +1895,7 @@ export default {
|
|
|
1849
1895
|
})
|
|
1850
1896
|
])
|
|
1851
1897
|
]),
|
|
1852
|
-
footerSlot || showTotalButton ||
|
|
1898
|
+
footerSlot || showTotalButton || showCloseButton
|
|
1853
1899
|
? h('div', {
|
|
1854
1900
|
class: 'vxe-cascader--panel-footer'
|
|
1855
1901
|
}, footerSlot
|
|
@@ -1863,7 +1909,7 @@ export default {
|
|
|
1863
1909
|
class: 'vxe-cascader--total-btns'
|
|
1864
1910
|
}, getI18n('vxe.treeSelect.total', [selectVals.length]))
|
|
1865
1911
|
: renderEmptyElement($xeCascader),
|
|
1866
|
-
showCloseButton
|
|
1912
|
+
showCloseButton
|
|
1867
1913
|
? h('div', {
|
|
1868
1914
|
class: 'vxe-cascader--oper-btns'
|
|
1869
1915
|
}, [
|
|
@@ -1915,10 +1961,6 @@ export default {
|
|
|
1915
1961
|
},
|
|
1916
1962
|
mounted() {
|
|
1917
1963
|
const $xeCascader = this;
|
|
1918
|
-
const props = $xeCascader;
|
|
1919
|
-
if (props.filterable) {
|
|
1920
|
-
errLog('vxe.error.notProp', ['filterable']);
|
|
1921
|
-
}
|
|
1922
1964
|
globalEvents.on($xeCascader, 'mousewheel', $xeCascader.handleGlobalMousewheelEvent);
|
|
1923
1965
|
globalEvents.on($xeCascader, 'mousedown', $xeCascader.handleGlobalMousedownEvent);
|
|
1924
1966
|
globalEvents.on($xeCascader, 'blur', $xeCascader.handleGlobalBlurEvent);
|
|
@@ -956,7 +956,7 @@ export default {
|
|
|
956
956
|
h('div', {
|
|
957
957
|
class: 'vxe-tree-select--header-button'
|
|
958
958
|
}, [
|
|
959
|
-
showCheckedButton && showClearButton
|
|
959
|
+
(showCheckedButton && multiple) || showClearButton
|
|
960
960
|
? h('div', {
|
|
961
961
|
class: 'vxe-tree-select--selected-btns'
|
|
962
962
|
}, [
|
|
@@ -984,32 +984,28 @@ export default {
|
|
|
984
984
|
: renderEmptyElement($xeTreeSelect)
|
|
985
985
|
])
|
|
986
986
|
: renderEmptyElement($xeTreeSelect),
|
|
987
|
-
showExpandButton
|
|
987
|
+
showExpandButton
|
|
988
988
|
? h('div', {
|
|
989
989
|
class: 'vxe-tree-select--expand-btns'
|
|
990
990
|
}, [
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
:
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
click: $xeTreeSelect.clearExpandPanelEvent
|
|
1010
|
-
}
|
|
1011
|
-
})
|
|
1012
|
-
: renderEmptyElement($xeTreeSelect)
|
|
991
|
+
h(VxeButtonComponent, {
|
|
992
|
+
props: {
|
|
993
|
+
content: getI18n('vxe.treeSelect.allExpand'),
|
|
994
|
+
mode: 'text'
|
|
995
|
+
},
|
|
996
|
+
on: {
|
|
997
|
+
click: $xeTreeSelect.allExpandPanelEvent
|
|
998
|
+
}
|
|
999
|
+
}),
|
|
1000
|
+
h(VxeButtonComponent, {
|
|
1001
|
+
props: {
|
|
1002
|
+
content: getI18n('vxe.treeSelect.clearExpand'),
|
|
1003
|
+
mode: 'text'
|
|
1004
|
+
},
|
|
1005
|
+
on: {
|
|
1006
|
+
click: $xeTreeSelect.clearExpandPanelEvent
|
|
1007
|
+
}
|
|
1008
|
+
})
|
|
1013
1009
|
])
|
|
1014
1010
|
: renderEmptyElement($xeTreeSelect)
|
|
1015
1011
|
])
|
|
@@ -1077,7 +1073,7 @@ export default {
|
|
|
1077
1073
|
})
|
|
1078
1074
|
])
|
|
1079
1075
|
]),
|
|
1080
|
-
footerSlot || showTotalButton ||
|
|
1076
|
+
footerSlot || showTotalButton || showCloseButton
|
|
1081
1077
|
? h('div', {
|
|
1082
1078
|
class: 'vxe-tree-select--panel-footer'
|
|
1083
1079
|
}, footerSlot
|
|
@@ -1091,7 +1087,7 @@ export default {
|
|
|
1091
1087
|
class: 'vxe-tree-select--total-btns'
|
|
1092
1088
|
}, getI18n('vxe.treeSelect.total', [selectVals.length]))
|
|
1093
1089
|
: renderEmptyElement($xeTreeSelect),
|
|
1094
|
-
showCloseButton
|
|
1090
|
+
showCloseButton
|
|
1095
1091
|
? h('div', {
|
|
1096
1092
|
class: 'vxe-tree-select--oper-btns'
|
|
1097
1093
|
}, [
|
package/es/ui/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VxeUI, setConfig, setIcon } from '@vxe-ui/core';
|
|
2
2
|
import { dynamicApp } from '../dynamics';
|
|
3
3
|
import { warnLog } from './src/log';
|
|
4
|
-
export const version = "3.15.
|
|
4
|
+
export const version = "3.15.4";
|
|
5
5
|
VxeUI.uiVersion = version;
|
|
6
6
|
VxeUI.dynamicApp = dynamicApp;
|
|
7
7
|
export function config(options) {
|
|
@@ -64,6 +64,9 @@ setConfig({
|
|
|
64
64
|
showFullLabel: true,
|
|
65
65
|
treeConfig: {
|
|
66
66
|
showIcon: true
|
|
67
|
+
},
|
|
68
|
+
filterConfig: {
|
|
69
|
+
autoExpandMode: 'first'
|
|
67
70
|
}
|
|
68
71
|
},
|
|
69
72
|
checkbox: {},
|
package/es/ui/src/log.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const
|
|
1
|
+
import { VxeUI } from '@vxe-ui/core';
|
|
2
|
+
const { log } = VxeUI;
|
|
3
|
+
const uiVersion = `ui v${"3.15.4"}`;
|
|
3
4
|
export function createComponentLog(name) {
|
|
5
|
+
const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
|
|
6
|
+
const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
|
|
7
|
+
const designVersion = VxeUI.designVersion ? `design v${VxeUI.designVersion}` : '';
|
|
4
8
|
return {
|
|
5
|
-
warnLog: log.create('warn',
|
|
6
|
-
errLog: log.create('error',
|
|
9
|
+
warnLog: log.create('warn', uiVersion + tableVersion + ganttVersion + designVersion + '] [' + name),
|
|
10
|
+
errLog: log.create('error', uiVersion + tableVersion + ganttVersion + designVersion + '] [' + name)
|
|
7
11
|
};
|
|
8
12
|
}
|
|
9
|
-
export const warnLog = log.create('warn',
|
|
10
|
-
export const errLog = log.create('error',
|
|
13
|
+
export const warnLog = log.create('warn', uiVersion);
|
|
14
|
+
export const errLog = log.create('error', uiVersion);
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -9,18 +10,17 @@ var _ui = require("../../ui");
|
|
|
9
10
|
var _dom = require("../../ui/src/dom");
|
|
10
11
|
var _utils = require("../../ui/src/utils");
|
|
11
12
|
var _util = require("./util");
|
|
12
|
-
var _log = require("../../ui/src/log");
|
|
13
13
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
14
14
|
var _list = _interopRequireDefault(require("../../list/src/list"));
|
|
15
15
|
var _input = _interopRequireDefault(require("../../input/src/input"));
|
|
16
16
|
var _button = _interopRequireDefault(require("../../button/src/button"));
|
|
17
17
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
19
18
|
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
20
19
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
21
20
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
22
|
-
var
|
|
23
|
-
|
|
21
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
|
|
22
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
23
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
24
24
|
/**
|
|
25
25
|
* 生成节点的唯一主键
|
|
26
26
|
*/
|
|
@@ -725,7 +725,6 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
725
725
|
var $xeCascader = this;
|
|
726
726
|
var reactData = $xeCascader.reactData;
|
|
727
727
|
var internalData = $xeCascader.internalData;
|
|
728
|
-
var nodeMaps = internalData.nodeMaps;
|
|
729
728
|
var fullList = internalData.afterVisibleList;
|
|
730
729
|
if (force) {
|
|
731
730
|
// 更新数据,处理筛选和排序
|
|
@@ -734,18 +733,66 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
734
733
|
fullList = $xeCascader.handleTreeToList();
|
|
735
734
|
}
|
|
736
735
|
var treeList = fullList.slice(0);
|
|
737
|
-
treeList.forEach(function (item, $index) {
|
|
738
|
-
var nodeid = $xeCascader.getNodeId(item);
|
|
739
|
-
var itemRest = nodeMaps[nodeid];
|
|
740
|
-
if (itemRest) {
|
|
741
|
-
itemRest.$index = $index;
|
|
742
|
-
}
|
|
743
|
-
});
|
|
744
736
|
reactData.treeList = treeList;
|
|
745
737
|
},
|
|
738
|
+
/**
|
|
739
|
+
* 获取第一个拥有子节点的节点
|
|
740
|
+
*/
|
|
741
|
+
handleHasChildNodeIds: function handleHasChildNodeIds(treeList, type) {
|
|
742
|
+
var $xeCascader = this;
|
|
743
|
+
var childrenField = $xeCascader.computeChildrenField;
|
|
744
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
745
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
746
|
+
var transform = treeOpts.transform;
|
|
747
|
+
var childField = transform ? mapChildrenField : childrenField;
|
|
748
|
+
var nodeIds = [];
|
|
749
|
+
var currList = treeList;
|
|
750
|
+
while (currList.length) {
|
|
751
|
+
var targetNode = null;
|
|
752
|
+
var _iterator = _createForOfIteratorHelper(currList),
|
|
753
|
+
_step;
|
|
754
|
+
try {
|
|
755
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
756
|
+
var item = _step.value;
|
|
757
|
+
var kids = item[childField];
|
|
758
|
+
if (_xeUtils.default.isArray(kids) && kids.length > 0) {
|
|
759
|
+
targetNode = item;
|
|
760
|
+
break;
|
|
761
|
+
}
|
|
762
|
+
}
|
|
763
|
+
} catch (err) {
|
|
764
|
+
_iterator.e(err);
|
|
765
|
+
} finally {
|
|
766
|
+
_iterator.f();
|
|
767
|
+
}
|
|
768
|
+
if (targetNode) {
|
|
769
|
+
nodeIds.push($xeCascader.getNodeId(targetNode));
|
|
770
|
+
currList = targetNode[childField];
|
|
771
|
+
} else {
|
|
772
|
+
var endNode = _xeUtils.default[type](currList);
|
|
773
|
+
nodeIds.push($xeCascader.getNodeId(endNode));
|
|
774
|
+
break;
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
return nodeIds;
|
|
778
|
+
},
|
|
746
779
|
triggerSearchEvent: _xeUtils.default.debounce(function () {
|
|
747
780
|
var $xeCascader = this;
|
|
781
|
+
var reactData = $xeCascader.reactData;
|
|
782
|
+
var internalData = $xeCascader.internalData;
|
|
748
783
|
$xeCascader.handleData(true);
|
|
784
|
+
$xeCascader.updateModelChecked();
|
|
785
|
+
var filterOpts = $xeCascader.computeFilterOpts;
|
|
786
|
+
var autoExpandMode = filterOpts.autoExpandMode;
|
|
787
|
+
var afterTreeList = internalData.afterTreeList;
|
|
788
|
+
// 默认展开第
|
|
789
|
+
if (autoExpandMode === 'first' || autoExpandMode === 'last') {
|
|
790
|
+
var stItems = $xeCascader.handleHasChildNodeIds(afterTreeList, autoExpandMode);
|
|
791
|
+
reactData.currentItems = stItems;
|
|
792
|
+
} else {
|
|
793
|
+
$xeCascader.handleCurrentItems();
|
|
794
|
+
}
|
|
795
|
+
$xeCascader.updateCurrentChunk();
|
|
749
796
|
}, 350, {
|
|
750
797
|
trailing: true
|
|
751
798
|
}),
|
|
@@ -779,19 +826,22 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
779
826
|
var reactData = $xeCascader.reactData;
|
|
780
827
|
var internalData = $xeCascader.internalData;
|
|
781
828
|
var currentItems = reactData.currentItems;
|
|
782
|
-
var
|
|
829
|
+
var afterTreeList = internalData.afterTreeList;
|
|
783
830
|
var childrenField = $xeCascader.computeChildrenField;
|
|
784
|
-
var
|
|
831
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
832
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
833
|
+
var transform = treeOpts.transform;
|
|
834
|
+
var currentCunkList = [afterTreeList];
|
|
785
835
|
if (currentItems.length) {
|
|
786
836
|
var chunkIndex = 0;
|
|
787
837
|
var stNodeid = currentItems[chunkIndex];
|
|
788
|
-
var optList =
|
|
838
|
+
var optList = afterTreeList;
|
|
789
839
|
while (stNodeid && optList && optList.length) {
|
|
790
840
|
stNodeid = currentItems[chunkIndex++];
|
|
791
841
|
var currOption = optList.find(function (item) {
|
|
792
842
|
return stNodeid === $xeCascader.getNodeId(item);
|
|
793
843
|
});
|
|
794
|
-
optList = currOption ? currOption[childrenField] : [];
|
|
844
|
+
optList = currOption ? currOption[transform ? mapChildrenField : childrenField] : [];
|
|
795
845
|
if (!optList || !optList.length) {
|
|
796
846
|
break;
|
|
797
847
|
}
|
|
@@ -804,7 +854,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
804
854
|
var $xeCascader = this;
|
|
805
855
|
var reactData = $xeCascader.reactData;
|
|
806
856
|
var internalData = $xeCascader.internalData;
|
|
807
|
-
var
|
|
857
|
+
var afterTreeList = internalData.afterTreeList;
|
|
808
858
|
var selectVals = $xeCascader.computeSelectVals;
|
|
809
859
|
var childrenField = $xeCascader.computeChildrenField;
|
|
810
860
|
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
@@ -814,7 +864,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
814
864
|
var expandedMaps = {};
|
|
815
865
|
if (selectVals.length) {
|
|
816
866
|
var lastVal = (0, _util.enNodeValue)(_xeUtils.default.last(selectVals));
|
|
817
|
-
var stRest = _xeUtils.default.findTree(
|
|
867
|
+
var stRest = _xeUtils.default.findTree(afterTreeList, function (item) {
|
|
818
868
|
return lastVal === $xeCascader.getNodeId(item);
|
|
819
869
|
}, {
|
|
820
870
|
children: transform ? mapChildrenField : childrenField
|
|
@@ -957,13 +1007,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
957
1007
|
};
|
|
958
1008
|
});
|
|
959
1009
|
},
|
|
960
|
-
|
|
1010
|
+
clearSelectedNode: function clearSelectedNode() {
|
|
961
1011
|
var $xeCascader = this;
|
|
962
1012
|
var reactData = $xeCascader.reactData;
|
|
963
1013
|
var internalData = $xeCascader.internalData;
|
|
964
1014
|
internalData.indeterminateRowMaps = {};
|
|
965
1015
|
internalData.selectCheckboxMaps = {};
|
|
966
1016
|
reactData.updateCheckboxFlag++;
|
|
1017
|
+
reactData.selectRadioKey = null;
|
|
967
1018
|
$xeCascader.updateCheckboxStatus();
|
|
968
1019
|
return $xeCascader.$nextTick().then(function () {
|
|
969
1020
|
return {
|
|
@@ -1030,7 +1081,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1030
1081
|
var multiple = props.multiple,
|
|
1031
1082
|
checkedClosable = props.checkedClosable;
|
|
1032
1083
|
var value = multiple ? [] : null;
|
|
1033
|
-
$xeCascader.
|
|
1084
|
+
$xeCascader.clearSelectedNode().then(function () {
|
|
1034
1085
|
if (checkedClosable) {
|
|
1035
1086
|
$xeCascader.hideOptionPanel($event);
|
|
1036
1087
|
}
|
|
@@ -1133,10 +1184,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1133
1184
|
var nodeMaps = internalData.nodeMaps;
|
|
1134
1185
|
var radioOpts = $xeCascader.computeRadioOpts;
|
|
1135
1186
|
var childrenField = $xeCascader.computeChildrenField;
|
|
1187
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
1188
|
+
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1189
|
+
var transform = treeOpts.transform;
|
|
1136
1190
|
var checkMode = radioOpts.checkMode,
|
|
1137
1191
|
checkMethod = radioOpts.checkMethod;
|
|
1138
1192
|
var nodeid = $xeCascader.getNodeId(node);
|
|
1139
|
-
var childList = node[childrenField];
|
|
1193
|
+
var childList = node[transform ? mapChildrenField : childrenField];
|
|
1140
1194
|
var isExistChild = childList && childList.length > 0;
|
|
1141
1195
|
var nodeItem = nodeMaps[nodeid] || {};
|
|
1142
1196
|
var nLevel = nodeItem.level;
|
|
@@ -1333,7 +1387,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1333
1387
|
var childRowList = [];
|
|
1334
1388
|
_xeUtils.default.eachTree(afterTreeList, function (node) {
|
|
1335
1389
|
var nodeid = $xeCascader.getNodeId(node);
|
|
1336
|
-
var childList = node[childrenField];
|
|
1390
|
+
var childList = node[transform ? mapChildrenField : childrenField];
|
|
1337
1391
|
if (childList && childList.length && !childRowMaps[nodeid]) {
|
|
1338
1392
|
childRowMaps[nodeid] = 1;
|
|
1339
1393
|
childRowList.unshift([node, nodeid, childList]);
|
|
@@ -1436,7 +1490,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1436
1490
|
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1437
1491
|
var transform = treeOpts.transform;
|
|
1438
1492
|
var nodeid = $xeCascader.getNodeId(node);
|
|
1439
|
-
var childList = node[childrenField];
|
|
1493
|
+
var childList = node[transform ? mapChildrenField : childrenField];
|
|
1440
1494
|
var isExistChild = childList && childList.length > 0;
|
|
1441
1495
|
var nodeItem = nodeMaps[nodeid] || {};
|
|
1442
1496
|
var nLevel = nodeItem.level;
|
|
@@ -1743,13 +1797,15 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1743
1797
|
treeExpandLazyLoadedMaps = internalData.treeExpandLazyLoadedMaps;
|
|
1744
1798
|
var treeOpts = $xeCascader.computeTreeOpts;
|
|
1745
1799
|
var lazy = treeOpts.lazy,
|
|
1800
|
+
transform = treeOpts.transform,
|
|
1746
1801
|
iconLoaded = treeOpts.iconLoaded,
|
|
1747
1802
|
iconOpen = treeOpts.iconOpen,
|
|
1748
1803
|
iconClose = treeOpts.iconClose;
|
|
1749
1804
|
var childrenField = $xeCascader.computeChildrenField;
|
|
1805
|
+
var mapChildrenField = $xeCascader.computeMapChildrenField;
|
|
1750
1806
|
var labelField = $xeCascader.computeLabelField;
|
|
1751
1807
|
var hasChildField = $xeCascader.computeHasChildField;
|
|
1752
|
-
var childList = node[childrenField];
|
|
1808
|
+
var childList = node[transform ? mapChildrenField : childrenField];
|
|
1753
1809
|
var isExistChild = childList && childList.length > 0;
|
|
1754
1810
|
var iconSlot = slots.icon;
|
|
1755
1811
|
var titleSlot = slots.title;
|
|
@@ -1923,7 +1979,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1923
1979
|
class: 'vxe-tree-select--panel-header'
|
|
1924
1980
|
}, headerSlot ? headerSlot({}) : [h('div', {
|
|
1925
1981
|
class: 'vxe-tree-select--header-button'
|
|
1926
|
-
}, [showCheckedButton && showClearButton ? h('div', {
|
|
1982
|
+
}, [showCheckedButton && multiple || showClearButton ? h('div', {
|
|
1927
1983
|
class: 'vxe-tree-select--selected-btns'
|
|
1928
1984
|
}, [showCheckedButton && multiple ? h(_button.default, {
|
|
1929
1985
|
props: {
|
|
@@ -1965,13 +2021,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
1965
2021
|
}
|
|
1966
2022
|
}
|
|
1967
2023
|
})]);
|
|
1968
|
-
})])]), footerSlot || showTotalButton || showCloseButton
|
|
2024
|
+
})])]), footerSlot || showTotalButton || showCloseButton ? h('div', {
|
|
1969
2025
|
class: 'vxe-cascader--panel-footer'
|
|
1970
2026
|
}, footerSlot ? footerSlot({}) : [h('div', {
|
|
1971
2027
|
class: 'vxe-cascader--footer-button'
|
|
1972
2028
|
}, [showTotalButton ? h('div', {
|
|
1973
2029
|
class: 'vxe-cascader--total-btns'
|
|
1974
|
-
}, (0, _ui.getI18n)('vxe.treeSelect.total', [selectVals.length])) : (0, _ui.renderEmptyElement)($xeCascader), showCloseButton
|
|
2030
|
+
}, (0, _ui.getI18n)('vxe.treeSelect.total', [selectVals.length])) : (0, _ui.renderEmptyElement)($xeCascader), showCloseButton ? h('div', {
|
|
1975
2031
|
class: 'vxe-cascader--oper-btns'
|
|
1976
2032
|
}, [h(_button.default, {
|
|
1977
2033
|
props: {
|
|
@@ -2012,10 +2068,6 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
|
|
|
2012
2068
|
},
|
|
2013
2069
|
mounted: function mounted() {
|
|
2014
2070
|
var $xeCascader = this;
|
|
2015
|
-
var props = $xeCascader;
|
|
2016
|
-
if (props.filterable) {
|
|
2017
|
-
errLog('vxe.error.notProp', ['filterable']);
|
|
2018
|
-
}
|
|
2019
2071
|
_ui.globalEvents.on($xeCascader, 'mousewheel', $xeCascader.handleGlobalMousewheelEvent);
|
|
2020
2072
|
_ui.globalEvents.on($xeCascader, 'mousedown', $xeCascader.handleGlobalMousedownEvent);
|
|
2021
2073
|
_ui.globalEvents.on($xeCascader, 'blur', $xeCascader.handleGlobalBlurEvent);
|