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.
Files changed (32) hide show
  1. package/es/cascader/src/cascader.js +72 -30
  2. package/es/tree-select/src/tree-select.js +22 -26
  3. package/es/ui/index.js +4 -1
  4. package/es/ui/src/log.js +10 -6
  5. package/lib/cascader/src/cascader.js +83 -31
  6. package/lib/cascader/src/cascader.min.js +1 -1
  7. package/lib/index.umd.js +158 -43
  8. package/lib/index.umd.min.js +1 -1
  9. package/lib/tree-select/src/tree-select.js +7 -7
  10. package/lib/tree-select/src/tree-select.min.js +1 -1
  11. package/lib/ui/index.js +4 -1
  12. package/lib/ui/index.min.js +1 -1
  13. package/lib/ui/src/log.js +9 -5
  14. package/lib/ui/src/log.min.js +1 -1
  15. package/package.json +1 -1
  16. package/packages/cascader/src/cascader.ts +71 -31
  17. package/packages/tree-select/src/tree-select.ts +22 -26
  18. package/packages/ui/index.ts +3 -0
  19. package/packages/ui/src/log.ts +11 -6
  20. package/types/components/cascader.d.ts +4 -0
  21. /package/es/icon/{iconfont.1781852732213.ttf → iconfont.1781876590487.ttf} +0 -0
  22. /package/es/icon/{iconfont.1781852732213.woff → iconfont.1781876590487.woff} +0 -0
  23. /package/es/icon/{iconfont.1781852732213.woff2 → iconfont.1781876590487.woff2} +0 -0
  24. /package/es/{iconfont.1781852732213.ttf → iconfont.1781876590487.ttf} +0 -0
  25. /package/es/{iconfont.1781852732213.woff → iconfont.1781876590487.woff} +0 -0
  26. /package/es/{iconfont.1781852732213.woff2 → iconfont.1781876590487.woff2} +0 -0
  27. /package/lib/icon/style/{iconfont.1781852732213.ttf → iconfont.1781876590487.ttf} +0 -0
  28. /package/lib/icon/style/{iconfont.1781852732213.woff → iconfont.1781876590487.woff} +0 -0
  29. /package/lib/icon/style/{iconfont.1781852732213.woff2 → iconfont.1781876590487.woff2} +0 -0
  30. /package/lib/{iconfont.1781852732213.ttf → iconfont.1781876590487.ttf} +0 -0
  31. /package/lib/{iconfont.1781852732213.woff → iconfont.1781876590487.woff} +0 -0
  32. /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 { treeFullData } = internalData;
760
+ const { afterTreeList } = internalData;
723
761
  const childrenField = $xeCascader.computeChildrenField;
724
- const currentCunkList = [treeFullData];
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 = treeFullData;
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 { treeFullData } = internalData;
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(treeFullData, (item) => lastVal === $xeCascader.getNodeId(item), { children: transform ? mapChildrenField : childrenField });
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
- clearCheckboxNode() {
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.clearCheckboxNode().then(() => {
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 || (showCloseButton && multiple)
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 && multiple
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 && showExpandButton
987
+ showExpandButton
988
988
  ? h('div', {
989
989
  class: 'vxe-tree-select--expand-btns'
990
990
  }, [
991
- showExpandButton
992
- ? h(VxeButtonComponent, {
993
- props: {
994
- content: getI18n('vxe.treeSelect.allExpand'),
995
- mode: 'text'
996
- },
997
- on: {
998
- click: $xeTreeSelect.allExpandPanelEvent
999
- }
1000
- })
1001
- : renderEmptyElement($xeTreeSelect),
1002
- showExpandButton
1003
- ? h(VxeButtonComponent, {
1004
- props: {
1005
- content: getI18n('vxe.treeSelect.clearExpand'),
1006
- mode: 'text'
1007
- },
1008
- on: {
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 || (showCloseButton && multiple)
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 && multiple
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.3";
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 { log } from '@vxe-ui/core';
2
- const version = `ui v${"3.15.3"}`;
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', `${version} ${name}`),
6
- errLog: log.create('error', `${version} ${name}`)
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', version);
10
- export const errLog = log.create('error', version);
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 _createComponentLog = (0, _log.createComponentLog)('cascader'),
23
- errLog = _createComponentLog.errLog;
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 treeFullData = internalData.treeFullData;
829
+ var afterTreeList = internalData.afterTreeList;
783
830
  var childrenField = $xeCascader.computeChildrenField;
784
- var currentCunkList = [treeFullData];
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 = treeFullData;
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 treeFullData = internalData.treeFullData;
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(treeFullData, function (item) {
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
- clearCheckboxNode: function clearCheckboxNode() {
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.clearCheckboxNode().then(function () {
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 && multiple ? h('div', {
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 && multiple ? h('div', {
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);