vxe-pc-ui 3.15.2 → 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 (144) hide show
  1. package/es/backtop/src/backtop.js +8 -7
  2. package/es/button/src/button.js +3 -2
  3. package/es/calendar/src/calendar.js +2 -1
  4. package/es/cascader/src/cascader.js +75 -35
  5. package/es/checkbox/src/group.js +16 -7
  6. package/es/context-menu/src/context-menu.js +2 -6
  7. package/es/date-panel/src/util.js +27 -16
  8. package/es/date-picker/src/date-picker.js +616 -88
  9. package/es/date-range-picker/src/date-range-picker.js +7 -4
  10. package/es/drawer/src/drawer.js +3 -0
  11. package/es/form/render/index.js +3 -2
  12. package/es/form/src/form.js +11 -12
  13. package/es/form/src/itemInfo.js +6 -5
  14. package/es/image/src/image.js +5 -6
  15. package/es/input/src/input.js +2 -1
  16. package/es/layout-body/src/layout-body.js +13 -6
  17. package/es/list/src/list.js +3 -6
  18. package/es/menu/src/menu.js +2 -1
  19. package/es/modal/src/modal.js +5 -1
  20. package/es/pager/src/pager.js +4 -3
  21. package/es/radio/src/group.js +11 -8
  22. package/es/select/src/select.js +34 -30
  23. package/es/splitter/src/splitter.js +6 -5
  24. package/es/table-select/src/table-select.js +27 -22
  25. package/es/tabs/src/tabs.js +4 -3
  26. package/es/textarea/src/textarea.js +2 -1
  27. package/es/tree/src/tree.js +6 -11
  28. package/es/tree-select/src/tree-select.js +27 -33
  29. package/es/ui/index.js +4 -1
  30. package/es/ui/src/log.js +14 -4
  31. package/es/upload/src/upload.js +11 -9
  32. package/lib/backtop/src/backtop.js +10 -6
  33. package/lib/backtop/src/backtop.min.js +1 -1
  34. package/lib/button/src/button.js +3 -1
  35. package/lib/button/src/button.min.js +1 -1
  36. package/lib/calendar/src/calendar.js +3 -1
  37. package/lib/calendar/src/calendar.min.js +1 -1
  38. package/lib/cascader/src/cascader.js +87 -34
  39. package/lib/cascader/src/cascader.min.js +1 -1
  40. package/lib/checkbox/src/group.js +18 -6
  41. package/lib/checkbox/src/group.min.js +1 -1
  42. package/lib/context-menu/src/context-menu.js +3 -4
  43. package/lib/context-menu/src/context-menu.min.js +1 -1
  44. package/lib/date-panel/src/util.js +37 -18
  45. package/lib/date-panel/src/util.min.js +1 -1
  46. package/lib/date-picker/src/date-picker.js +659 -86
  47. package/lib/date-picker/src/date-picker.min.js +1 -1
  48. package/lib/date-range-picker/src/date-range-picker.js +7 -3
  49. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  50. package/lib/drawer/src/drawer.js +3 -0
  51. package/lib/drawer/src/drawer.min.js +1 -1
  52. package/lib/form/render/index.js +3 -1
  53. package/lib/form/render/index.min.js +1 -1
  54. package/lib/form/src/form.js +12 -8
  55. package/lib/form/src/form.min.js +1 -1
  56. package/lib/form/src/itemInfo.js +6 -4
  57. package/lib/form/src/itemInfo.min.js +1 -1
  58. package/lib/image/src/image.js +7 -5
  59. package/lib/image/src/image.min.js +1 -1
  60. package/lib/index.umd.js +1140 -287
  61. package/lib/index.umd.min.js +1 -1
  62. package/lib/input/src/input.js +5 -3
  63. package/lib/input/src/input.min.js +1 -1
  64. package/lib/layout-body/src/layout-body.js +13 -4
  65. package/lib/layout-body/src/layout-body.min.js +1 -1
  66. package/lib/list/src/list.js +4 -5
  67. package/lib/list/src/list.min.js +1 -1
  68. package/lib/menu/src/menu.js +3 -1
  69. package/lib/menu/src/menu.min.js +1 -1
  70. package/lib/modal/src/modal.js +8 -2
  71. package/lib/modal/src/modal.min.js +1 -1
  72. package/lib/pager/src/pager.js +5 -2
  73. package/lib/pager/src/pager.min.js +1 -1
  74. package/lib/radio/src/group.js +13 -6
  75. package/lib/radio/src/group.min.js +1 -1
  76. package/lib/select/src/select.js +36 -29
  77. package/lib/select/src/select.min.js +1 -1
  78. package/lib/splitter/src/splitter.js +9 -6
  79. package/lib/splitter/src/splitter.min.js +1 -1
  80. package/lib/table-select/src/table-select.js +27 -19
  81. package/lib/table-select/src/table-select.min.js +1 -1
  82. package/lib/tabs/src/tabs.js +6 -3
  83. package/lib/tabs/src/tabs.min.js +1 -1
  84. package/lib/textarea/src/textarea.js +3 -1
  85. package/lib/textarea/src/textarea.min.js +1 -1
  86. package/lib/tree/src/tree.js +9 -8
  87. package/lib/tree/src/tree.min.js +1 -1
  88. package/lib/tree-select/src/tree-select.js +17 -15
  89. package/lib/tree-select/src/tree-select.min.js +1 -1
  90. package/lib/ui/index.js +4 -1
  91. package/lib/ui/index.min.js +1 -1
  92. package/lib/ui/src/log.js +14 -3
  93. package/lib/ui/src/log.min.js +1 -1
  94. package/lib/upload/src/upload.js +22 -7
  95. package/lib/upload/src/upload.min.js +1 -1
  96. package/package.json +1 -1
  97. package/packages/backtop/src/backtop.ts +11 -3
  98. package/packages/button/src/button.ts +4 -2
  99. package/packages/calendar/src/calendar.ts +3 -1
  100. package/packages/cascader/src/cascader.ts +77 -32
  101. package/packages/checkbox/src/group.ts +22 -5
  102. package/packages/context-menu/src/context-menu.ts +5 -2
  103. package/packages/date-panel/src/util.ts +28 -16
  104. package/packages/date-picker/src/date-picker.ts +630 -89
  105. package/packages/date-range-picker/src/date-range-picker.ts +8 -4
  106. package/packages/drawer/src/drawer.ts +3 -0
  107. package/packages/form/render/index.ts +4 -2
  108. package/packages/form/src/form.ts +14 -7
  109. package/packages/form/src/itemInfo.ts +7 -5
  110. package/packages/image/src/image.ts +9 -3
  111. package/packages/input/src/input.ts +3 -1
  112. package/packages/layout-body/src/layout-body.ts +16 -2
  113. package/packages/list/src/list.ts +6 -3
  114. package/packages/menu/src/menu.ts +3 -1
  115. package/packages/modal/src/modal.ts +6 -1
  116. package/packages/pager/src/pager.ts +5 -3
  117. package/packages/radio/src/group.ts +16 -5
  118. package/packages/select/src/select.ts +41 -29
  119. package/packages/splitter/src/splitter.ts +7 -5
  120. package/packages/table-select/src/table-select.ts +31 -20
  121. package/packages/tabs/src/tabs.ts +5 -3
  122. package/packages/textarea/src/textarea.ts +3 -1
  123. package/packages/tree/src/tree.ts +9 -4
  124. package/packages/tree-select/src/tree-select.ts +31 -30
  125. package/packages/ui/index.ts +3 -0
  126. package/packages/ui/src/log.ts +16 -4
  127. package/packages/upload/src/upload.ts +16 -6
  128. package/types/components/cascader.d.ts +4 -0
  129. package/types/components/date-picker.d.ts +14 -6
  130. package/types/components/drawer.d.ts +2 -0
  131. package/types/components/modal.d.ts +2 -0
  132. package/types/components/upload.d.ts +28 -1
  133. /package/es/icon/{iconfont.1781753586592.ttf → iconfont.1781876590487.ttf} +0 -0
  134. /package/es/icon/{iconfont.1781753586592.woff → iconfont.1781876590487.woff} +0 -0
  135. /package/es/icon/{iconfont.1781753586592.woff2 → iconfont.1781876590487.woff2} +0 -0
  136. /package/es/{iconfont.1781753586592.ttf → iconfont.1781876590487.ttf} +0 -0
  137. /package/es/{iconfont.1781753586592.woff → iconfont.1781876590487.woff} +0 -0
  138. /package/es/{iconfont.1781753586592.woff2 → iconfont.1781876590487.woff2} +0 -0
  139. /package/lib/icon/style/{iconfont.1781753586592.ttf → iconfont.1781876590487.ttf} +0 -0
  140. /package/lib/icon/style/{iconfont.1781753586592.woff → iconfont.1781876590487.woff} +0 -0
  141. /package/lib/icon/style/{iconfont.1781753586592.woff2 → iconfont.1781876590487.woff2} +0 -0
  142. /package/lib/{iconfont.1781753586592.ttf → iconfont.1781876590487.ttf} +0 -0
  143. /package/lib/{iconfont.1781753586592.woff → iconfont.1781876590487.woff} +0 -0
  144. /package/lib/{iconfont.1781753586592.woff2 → iconfont.1781876590487.woff2} +0 -0
@@ -1,10 +1,11 @@
1
1
  import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
3
  import { getConfig, getIcon, createEvent, globalMixins, renderEmptyElement } from '../../ui';
4
- import { errLog } from '../../ui/src/log';
4
+ import { createComponentLog } from '../../ui/src/log';
5
5
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils';
6
6
  import { toCssUnit } from '../../ui/src/dom';
7
7
  import VxeButtonComponent from '../../button';
8
+ const { errLog } = createComponentLog('backtop');
8
9
  function createInternalData() {
9
10
  return {
10
11
  targetEl: null
@@ -86,13 +87,9 @@ export default {
86
87
  },
87
88
  data() {
88
89
  const xID = XEUtils.uniqueId();
89
- const internalData = createInternalData();
90
90
  const reactData = createReactData();
91
- return {
92
- xID,
93
- internalData,
94
- reactData
95
- };
91
+ return Object.assign(Object.assign({}, {}), { xID,
92
+ reactData });
96
93
  },
97
94
  computed: Object.assign(Object.assign({}, {}), { computeWrapperStyle() {
98
95
  const $xeBacktop = this;
@@ -281,6 +278,10 @@ export default {
281
278
  ]);
282
279
  }
283
280
  },
281
+ created() {
282
+ const $xeBacktop = this;
283
+ $xeBacktop.internalData = createInternalData();
284
+ },
284
285
  mounted() {
285
286
  const $xeBacktop = this;
286
287
  const props = $xeBacktop;
@@ -4,8 +4,9 @@ import { defineVxeComponent } from '../../ui/src/comp';
4
4
  import { getEventTargetNode, updatePanelPlacement } from '../../ui/src/dom';
5
5
  import { getFuncText, getLastZIndex, nextZIndex } from '../../ui/src/utils';
6
6
  import { getSlotVNs, getEventCaseName } from '../../ui/src/vn';
7
- import { warnLog } from '../../ui/src/log';
7
+ import { createComponentLog } from '../../ui/src/log';
8
8
  import VxeTooltipComponent from '../../tooltip';
9
+ const { warnLog } = createComponentLog('button');
9
10
  export default {
10
11
  name: 'VxeButton',
11
12
  mixins: [
@@ -849,7 +850,7 @@ export default {
849
850
  const $xeButton = this;
850
851
  const props = $xeButton;
851
852
  if (props.type === 'text') {
852
- warnLog('vxe.error.delProp', ['[button] type=text', 'mode=text']);
853
+ warnLog('vxe.error.delProp', ['type=text', 'mode=text']);
853
854
  }
854
855
  globalEvents.on($xeButton, 'mousewheel', $xeButton.handleGlobalMousewheelEvent);
855
856
  globalEvents.on($xeButton, 'mousedown', $xeButton.handleGlobalMousedownEvent);
@@ -4,8 +4,9 @@ import { VxeUI, createEvent, globalMixins, renderEmptyElement } from '../../ui';
4
4
  import { getDateQuarter } from '../../date-panel/src/util';
5
5
  import { toCssUnit } from '../../ui/src/dom';
6
6
  import { isEnableConf } from '../../ui/src/utils';
7
- import { errLog } from '../../ui/src/log';
7
+ import { createComponentLog } from '../../ui/src/log';
8
8
  import VxeButtonComponent from '../../button/src/button';
9
+ const { errLog } = createComponentLog('calendar');
9
10
  const { menus, getConfig, getI18n } = VxeUI;
10
11
  export default {
11
12
  name: 'VxeCalendar',
@@ -3,7 +3,6 @@ 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 { errLog } 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';
@@ -178,12 +177,8 @@ export default {
178
177
  data() {
179
178
  const xID = XEUtils.uniqueId();
180
179
  const reactData = createReactData();
181
- const internalData = createInternalData();
182
- return {
183
- xID,
184
- reactData,
185
- internalData
186
- };
180
+ return Object.assign(Object.assign({}, {}), { xID,
181
+ reactData });
187
182
  },
188
183
  computed: Object.assign(Object.assign({}, {}), { computeFormReadonly() {
189
184
  const $xeCascader = this;
@@ -669,7 +664,6 @@ export default {
669
664
  const $xeCascader = this;
670
665
  const reactData = $xeCascader.reactData;
671
666
  const internalData = $xeCascader.internalData;
672
- const { nodeMaps } = internalData;
673
667
  let fullList = internalData.afterVisibleList;
674
668
  if (force) {
675
669
  // 更新数据,处理筛选和排序
@@ -678,18 +672,59 @@ export default {
678
672
  fullList = $xeCascader.handleTreeToList();
679
673
  }
680
674
  const treeList = fullList.slice(0);
681
- treeList.forEach((item, $index) => {
682
- const nodeid = $xeCascader.getNodeId(item);
683
- const itemRest = nodeMaps[nodeid];
684
- if (itemRest) {
685
- itemRest.$index = $index;
686
- }
687
- });
688
675
  reactData.treeList = treeList;
689
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
+ },
690
710
  triggerSearchEvent: XEUtils.debounce(function () {
691
711
  const $xeCascader = this;
712
+ const reactData = $xeCascader.reactData;
713
+ const internalData = $xeCascader.internalData;
692
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();
693
728
  }, 350, { trailing: true }),
694
729
  loadData(list) {
695
730
  const $xeCascader = this;
@@ -722,17 +757,20 @@ export default {
722
757
  const reactData = $xeCascader.reactData;
723
758
  const internalData = $xeCascader.internalData;
724
759
  const { currentItems } = reactData;
725
- const { treeFullData } = internalData;
760
+ const { afterTreeList } = internalData;
726
761
  const childrenField = $xeCascader.computeChildrenField;
727
- const currentCunkList = [treeFullData];
762
+ const mapChildrenField = $xeCascader.computeMapChildrenField;
763
+ const treeOpts = $xeCascader.computeTreeOpts;
764
+ const { transform } = treeOpts;
765
+ const currentCunkList = [afterTreeList];
728
766
  if (currentItems.length) {
729
767
  let chunkIndex = 0;
730
768
  let stNodeid = currentItems[chunkIndex];
731
- let optList = treeFullData;
769
+ let optList = afterTreeList;
732
770
  while (stNodeid && optList && optList.length) {
733
771
  stNodeid = currentItems[chunkIndex++];
734
772
  const currOption = optList.find(item => stNodeid === $xeCascader.getNodeId(item));
735
- optList = currOption ? currOption[childrenField] : [];
773
+ optList = currOption ? currOption[transform ? mapChildrenField : childrenField] : [];
736
774
  if (!optList || !optList.length) {
737
775
  break;
738
776
  }
@@ -745,7 +783,7 @@ export default {
745
783
  const $xeCascader = this;
746
784
  const reactData = $xeCascader.reactData;
747
785
  const internalData = $xeCascader.internalData;
748
- const { treeFullData } = internalData;
786
+ const { afterTreeList } = internalData;
749
787
  const selectVals = $xeCascader.computeSelectVals;
750
788
  const childrenField = $xeCascader.computeChildrenField;
751
789
  const mapChildrenField = $xeCascader.computeMapChildrenField;
@@ -755,7 +793,7 @@ export default {
755
793
  const expandedMaps = {};
756
794
  if (selectVals.length) {
757
795
  const lastVal = enNodeValue(XEUtils.last(selectVals));
758
- 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 });
759
797
  if (stRest) {
760
798
  const { nodes } = stRest;
761
799
  nodes.forEach(item => {
@@ -884,13 +922,14 @@ export default {
884
922
  return { checkNodeKeys: checkKeys, checkNodes };
885
923
  });
886
924
  },
887
- clearCheckboxNode() {
925
+ clearSelectedNode() {
888
926
  const $xeCascader = this;
889
927
  const reactData = $xeCascader.reactData;
890
928
  const internalData = $xeCascader.internalData;
891
929
  internalData.indeterminateRowMaps = {};
892
930
  internalData.selectCheckboxMaps = {};
893
931
  reactData.updateCheckboxFlag++;
932
+ reactData.selectRadioKey = null;
894
933
  $xeCascader.updateCheckboxStatus();
895
934
  return $xeCascader.$nextTick().then(() => {
896
935
  return { checkNodeKeys: [], checkNodes: [] };
@@ -942,7 +981,7 @@ export default {
942
981
  const { $event } = params;
943
982
  const { multiple, checkedClosable } = props;
944
983
  const value = multiple ? [] : null;
945
- $xeCascader.clearCheckboxNode().then(() => {
984
+ $xeCascader.clearSelectedNode().then(() => {
946
985
  if (checkedClosable) {
947
986
  $xeCascader.hideOptionPanel($event);
948
987
  }
@@ -1040,9 +1079,12 @@ export default {
1040
1079
  const { nodeMaps } = internalData;
1041
1080
  const radioOpts = $xeCascader.computeRadioOpts;
1042
1081
  const childrenField = $xeCascader.computeChildrenField;
1082
+ const mapChildrenField = $xeCascader.computeMapChildrenField;
1083
+ const treeOpts = $xeCascader.computeTreeOpts;
1084
+ const { transform } = treeOpts;
1043
1085
  const { checkMode, checkMethod } = radioOpts;
1044
1086
  const nodeid = $xeCascader.getNodeId(node);
1045
- const childList = node[childrenField];
1087
+ const childList = node[transform ? mapChildrenField : childrenField];
1046
1088
  const isExistChild = childList && childList.length > 0;
1047
1089
  const nodeItem = nodeMaps[nodeid] || {};
1048
1090
  const nLevel = nodeItem.level;
@@ -1214,7 +1256,7 @@ export default {
1214
1256
  const childRowList = [];
1215
1257
  XEUtils.eachTree(afterTreeList, (node) => {
1216
1258
  const nodeid = $xeCascader.getNodeId(node);
1217
- const childList = node[childrenField];
1259
+ const childList = node[transform ? mapChildrenField : childrenField];
1218
1260
  if (childList && childList.length && !childRowMaps[nodeid]) {
1219
1261
  childRowMaps[nodeid] = 1;
1220
1262
  childRowList.unshift([node, nodeid, childList]);
@@ -1321,7 +1363,7 @@ export default {
1321
1363
  const treeOpts = $xeCascader.computeTreeOpts;
1322
1364
  const { transform } = treeOpts;
1323
1365
  const nodeid = $xeCascader.getNodeId(node);
1324
- const childList = node[childrenField];
1366
+ const childList = node[transform ? mapChildrenField : childrenField];
1325
1367
  const isExistChild = childList && childList.length > 0;
1326
1368
  const nodeItem = nodeMaps[nodeid] || {};
1327
1369
  const nLevel = nodeItem.level;
@@ -1586,11 +1628,12 @@ export default {
1586
1628
  const { currentNode, selectRadioKey, updateCheckboxFlag, updateExpandedFlag } = reactData;
1587
1629
  const { nodeMaps, selectCheckboxMaps, indeterminateRowMaps, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData;
1588
1630
  const treeOpts = $xeCascader.computeTreeOpts;
1589
- const { lazy, iconLoaded, iconOpen, iconClose } = treeOpts;
1631
+ const { lazy, transform, iconLoaded, iconOpen, iconClose } = treeOpts;
1590
1632
  const childrenField = $xeCascader.computeChildrenField;
1633
+ const mapChildrenField = $xeCascader.computeMapChildrenField;
1591
1634
  const labelField = $xeCascader.computeLabelField;
1592
1635
  const hasChildField = $xeCascader.computeHasChildField;
1593
- const childList = node[childrenField];
1636
+ const childList = node[transform ? mapChildrenField : childrenField];
1594
1637
  const isExistChild = childList && childList.length > 0;
1595
1638
  const iconSlot = slots.icon;
1596
1639
  const titleSlot = slots.title;
@@ -1790,7 +1833,7 @@ export default {
1790
1833
  h('div', {
1791
1834
  class: 'vxe-tree-select--header-button'
1792
1835
  }, [
1793
- showCheckedButton && showClearButton
1836
+ (showCheckedButton && multiple) || showClearButton
1794
1837
  ? h('div', {
1795
1838
  class: 'vxe-tree-select--selected-btns'
1796
1839
  }, [
@@ -1852,7 +1895,7 @@ export default {
1852
1895
  })
1853
1896
  ])
1854
1897
  ]),
1855
- footerSlot || showTotalButton || (showCloseButton && multiple)
1898
+ footerSlot || showTotalButton || showCloseButton
1856
1899
  ? h('div', {
1857
1900
  class: 'vxe-cascader--panel-footer'
1858
1901
  }, footerSlot
@@ -1866,7 +1909,7 @@ export default {
1866
1909
  class: 'vxe-cascader--total-btns'
1867
1910
  }, getI18n('vxe.treeSelect.total', [selectVals.length]))
1868
1911
  : renderEmptyElement($xeCascader),
1869
- showCloseButton && multiple
1912
+ showCloseButton
1870
1913
  ? h('div', {
1871
1914
  class: 'vxe-cascader--oper-btns'
1872
1915
  }, [
@@ -1910,6 +1953,7 @@ export default {
1910
1953
  const $xeCascader = this;
1911
1954
  const props = $xeCascader;
1912
1955
  const reactData = $xeCascader.reactData;
1956
+ $xeCascader.internalData = createInternalData();
1913
1957
  if (!props.multiple) {
1914
1958
  reactData.selectRadioKey = enNodeValue(props.value);
1915
1959
  }
@@ -1917,10 +1961,6 @@ export default {
1917
1961
  },
1918
1962
  mounted() {
1919
1963
  const $xeCascader = this;
1920
- const props = $xeCascader;
1921
- if (props.filterable) {
1922
- errLog('vxe.error.notProp', ['filterable']);
1923
- }
1924
1964
  globalEvents.on($xeCascader, 'mousewheel', $xeCascader.handleGlobalMousewheelEvent);
1925
1965
  globalEvents.on($xeCascader, 'mousedown', $xeCascader.handleGlobalMousedownEvent);
1926
1966
  globalEvents.on($xeCascader, 'blur', $xeCascader.handleGlobalBlurEvent);
@@ -2,6 +2,9 @@ import { defineVxeComponent } from '../../ui/src/comp';
2
2
  import XEUtils from 'xe-utils';
3
3
  import { getConfig, createEvent, globalMixins } from '../../ui';
4
4
  import VxeCheckboxComponent from './checkbox';
5
+ function createReactData() {
6
+ return {};
7
+ }
5
8
  function createInternalData() {
6
9
  return {
7
10
  // isLoaded: false
@@ -50,13 +53,8 @@ export default {
50
53
  };
51
54
  },
52
55
  data() {
53
- const reactData = {};
54
- const internalData = createInternalData();
55
- return {
56
- xID: XEUtils.uniqueId(),
57
- reactData,
58
- internalData
59
- };
56
+ const reactData = createReactData();
57
+ return Object.assign(Object.assign({}, {}), { xID: XEUtils.uniqueId(), reactData });
60
58
  },
61
59
  computed: Object.assign(Object.assign({}, {}), { computeIsReadonly() {
62
60
  const $xeCheckboxGroup = this;
@@ -236,6 +234,10 @@ export default {
236
234
  $xeCheckboxGroup.loadData(val);
237
235
  }
238
236
  },
237
+ created() {
238
+ const $xeCheckboxGroup = this;
239
+ $xeCheckboxGroup.internalData = createInternalData();
240
+ },
239
241
  mounted() {
240
242
  const $xeCheckboxGroup = this;
241
243
  const props = $xeCheckboxGroup;
@@ -246,6 +248,13 @@ export default {
246
248
  }
247
249
  });
248
250
  },
251
+ beforeDestroy() {
252
+ const $xeCheckboxGroup = this;
253
+ const reactData = $xeCheckboxGroup.reactData;
254
+ const internalData = $xeCheckboxGroup.internalData;
255
+ XEUtils.assign(reactData, createReactData());
256
+ XEUtils.assign(internalData, createInternalData());
257
+ },
249
258
  render(h) {
250
259
  return this.renderVN(h);
251
260
  }
@@ -182,13 +182,8 @@ export default {
182
182
  }
183
183
  },
184
184
  data() {
185
- const internalData = createInternalData();
186
185
  const reactData = createReactData();
187
- return {
188
- xID: XEUtils.uniqueId(),
189
- internalData,
190
- reactData
191
- };
186
+ return Object.assign(Object.assign({}, {}), { xID: XEUtils.uniqueId(), reactData });
192
187
  },
193
188
  computed: Object.assign(Object.assign({}, {}), { computeMenuGroups() {
194
189
  const $xeContextMenu = this;
@@ -661,6 +656,7 @@ export default {
661
656
  },
662
657
  created() {
663
658
  const $xeContextMenu = this;
659
+ $xeContextMenu.internalData = createInternalData();
664
660
  $xeContextMenu.handleVisible();
665
661
  globalEvents.on($xeContextMenu, 'mousewheel', $xeContextMenu.handleGlobalMousewheelEvent);
666
662
  globalEvents.on($xeContextMenu, 'keydown', $xeContextMenu.handleGlobalKeydownEvent);
@@ -1,4 +1,16 @@
1
1
  import XEUtils from 'xe-utils';
2
+ export function getChunkDefaultNum(selectKey) {
3
+ const currDate = new Date();
4
+ switch (selectKey) {
5
+ case 'y': return currDate.getFullYear();
6
+ case 'M': return currDate.getMonth() + 1;
7
+ case 'd': return currDate.getDate();
8
+ case 'H': return currDate.getHours();
9
+ case 'm': return currDate.getMinutes();
10
+ case 's': return currDate.getSeconds();
11
+ }
12
+ return 0;
13
+ }
2
14
  export function hasTimestampValueType(valueFormat) {
3
15
  return valueFormat === 'timestamp';
4
16
  }
@@ -19,18 +31,6 @@ export function handleValueFormat(type, valueFormat) {
19
31
  }
20
32
  return 'yyyy-MM-dd';
21
33
  }
22
- export function handleInputFormat(type, inputFormat) {
23
- if (inputFormat) {
24
- return inputFormat;
25
- }
26
- if (type === 'time') {
27
- return 'HH:mm:ss';
28
- }
29
- if (type === 'datetime') {
30
- return 'yyyy-MM-dd HH:mm:ss';
31
- }
32
- return 'yyyy-MM-dd';
33
- }
34
34
  export function toStringTimeDate(str) {
35
35
  const rest = new Date(2e3, 0, 1);
36
36
  if (str) {
@@ -90,10 +90,10 @@ export const parseDateValue = (val, type, options) => {
90
90
  }
91
91
  return null;
92
92
  };
93
- export const parseDateString = (val, type, options) => {
93
+ export function parseDateString(val, type, options) {
94
94
  const dValue = parseDateValue(val, type, options);
95
95
  return dValue ? XEUtils.toDateString(dValue, options.valueFormat) : '';
96
- };
96
+ }
97
97
  export function parseDateObj(val, type, options) {
98
98
  const { labelFormat, firstDay } = options;
99
99
  let dValue = null;
@@ -226,6 +226,17 @@ export function getRangeDateByCode(code, val, type, options) {
226
226
  /**
227
227
  * 判断周的年份是否跨年
228
228
  */
229
- const checkWeekOfsetYear = (W, M) => {
229
+ function checkWeekOfsetYear(W, M) {
230
230
  return `${W}` === '1' && `${M}` === '12';
231
- };
231
+ }
232
+ export function isAllSameChar(str, char) {
233
+ if (str.length === 0) {
234
+ return false;
235
+ }
236
+ for (let i = 0; i < str.length; i++) {
237
+ if (str[i] !== char) {
238
+ return false;
239
+ }
240
+ }
241
+ return true;
242
+ }