vxe-pc-ui 4.16.7 → 4.16.8

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 (53) hide show
  1. package/dist/all.esm.js +97 -40
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/cascader/src/cascader.js +66 -26
  5. package/es/cascader/style.css +9 -9
  6. package/es/cascader/style.min.css +1 -1
  7. package/es/date-range-picker/src/date-range-picker.js +25 -9
  8. package/es/icon/style.css +1 -1
  9. package/es/menu/src/menu.js +4 -3
  10. package/es/style.css +1 -1
  11. package/es/style.min.css +1 -1
  12. package/es/ui/index.js +1 -1
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-cascader/style.css +9 -9
  15. package/es/vxe-cascader/style.min.css +1 -1
  16. package/lib/cascader/src/cascader.js +73 -27
  17. package/lib/cascader/src/cascader.min.js +1 -1
  18. package/lib/cascader/style/style.css +9 -9
  19. package/lib/cascader/style/style.min.css +1 -1
  20. package/lib/date-range-picker/src/date-range-picker.js +27 -9
  21. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  22. package/lib/icon/style/style.css +1 -1
  23. package/lib/icon/style/style.min.css +1 -1
  24. package/lib/index.umd.js +107 -41
  25. package/lib/index.umd.min.js +1 -1
  26. package/lib/menu/src/menu.js +4 -3
  27. package/lib/menu/src/menu.min.js +1 -1
  28. package/lib/style.css +1 -1
  29. package/lib/style.min.css +1 -1
  30. package/lib/ui/index.js +1 -1
  31. package/lib/ui/index.min.js +1 -1
  32. package/lib/ui/src/log.js +1 -1
  33. package/lib/ui/src/log.min.js +1 -1
  34. package/lib/vxe-cascader/style/style.css +9 -9
  35. package/lib/vxe-cascader/style/style.min.css +1 -1
  36. package/package.json +1 -1
  37. package/packages/cascader/src/cascader.ts +66 -25
  38. package/packages/date-range-picker/src/date-range-picker.ts +23 -9
  39. package/packages/menu/src/menu.ts +4 -3
  40. package/styles/components/cascader.scss +9 -9
  41. package/types/components/cascader.d.ts +1 -0
  42. /package/es/icon/{iconfont.1783873713408.ttf → iconfont.1783923662673.ttf} +0 -0
  43. /package/es/icon/{iconfont.1783873713408.woff → iconfont.1783923662673.woff} +0 -0
  44. /package/es/icon/{iconfont.1783873713408.woff2 → iconfont.1783923662673.woff2} +0 -0
  45. /package/es/{iconfont.1783873713408.ttf → iconfont.1783923662673.ttf} +0 -0
  46. /package/es/{iconfont.1783873713408.woff → iconfont.1783923662673.woff} +0 -0
  47. /package/es/{iconfont.1783873713408.woff2 → iconfont.1783923662673.woff2} +0 -0
  48. /package/lib/icon/style/{iconfont.1783873713408.ttf → iconfont.1783923662673.ttf} +0 -0
  49. /package/lib/icon/style/{iconfont.1783873713408.woff → iconfont.1783923662673.woff} +0 -0
  50. /package/lib/icon/style/{iconfont.1783873713408.woff2 → iconfont.1783923662673.woff2} +0 -0
  51. /package/lib/{iconfont.1783873713408.ttf → iconfont.1783923662673.ttf} +0 -0
  52. /package/lib/{iconfont.1783873713408.woff → iconfont.1783923662673.woff} +0 -0
  53. /package/lib/{iconfont.1783873713408.woff2 → iconfont.1783923662673.woff2} +0 -0
package/dist/all.esm.js CHANGED
@@ -81,7 +81,7 @@ function checkDynamic() {
81
81
  }
82
82
 
83
83
  const { log } = VxeUI;
84
- const uiVersion = `ui v${"4.16.7"}`;
84
+ const uiVersion = `ui v${"4.16.8"}`;
85
85
  function createComponentLog(name) {
86
86
  const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : '';
87
87
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
@@ -95,7 +95,7 @@ function createComponentLog(name) {
95
95
  const warnLog$h = log.create('warn', uiVersion);
96
96
  log.create('error', uiVersion);
97
97
 
98
- const version = "4.16.7";
98
+ const version = "4.16.8";
99
99
  VxeUI.uiVersion = version;
100
100
  VxeUI.dynamicApp = dynamicApp;
101
101
  function config(options) {
@@ -11732,6 +11732,7 @@ function createInternalData$i() {
11732
11732
  selectCheckboxMaps: {},
11733
11733
  treeExpandedMaps: {},
11734
11734
  treeExpandLazyLoadedMaps: {}
11735
+ // isUpdateMode: false
11735
11736
  };
11736
11737
  }
11737
11738
  var VxeCascaderComponent = defineVxeComponent({
@@ -11994,6 +11995,20 @@ var VxeCascaderComponent = defineVxeComponent({
11994
11995
  const nodeKey = node[valueField];
11995
11996
  return enNodeValue(nodeKey);
11996
11997
  };
11998
+ const isPathInTree = (treeData, pathIds) => {
11999
+ if (!pathIds || !pathIds.length) {
12000
+ return false;
12001
+ }
12002
+ let currentNodes = treeData;
12003
+ for (const nodeid of pathIds) {
12004
+ const found = currentNodes.find(node => getNodeId(node) === nodeid);
12005
+ if (!found) {
12006
+ return false;
12007
+ }
12008
+ currentNodes = found.children || [];
12009
+ }
12010
+ return true;
12011
+ };
11997
12012
  const isCheckedByCheckboxNodeId = (nodeid) => {
11998
12013
  const { updateCheckboxFlag } = reactData;
11999
12014
  const { selectCheckboxMaps } = internalData;
@@ -12187,7 +12202,7 @@ var VxeCascaderComponent = defineVxeComponent({
12187
12202
  if (transform) {
12188
12203
  treeList = XEUtils.searchTree(treeFullData, handleSearch, {
12189
12204
  original: true,
12190
- isEvery: true,
12205
+ isEvery: false,
12191
12206
  children: childrenField,
12192
12207
  mapChildren: mapChildrenField
12193
12208
  });
@@ -12207,7 +12222,7 @@ var VxeCascaderComponent = defineVxeComponent({
12207
12222
  if (transform) {
12208
12223
  treeList = XEUtils.searchTree(treeFullData, () => true, {
12209
12224
  original: true,
12210
- isEvery: true,
12225
+ isEvery: false,
12211
12226
  children: childrenField,
12212
12227
  mapChildren: mapChildrenField
12213
12228
  });
@@ -12300,17 +12315,26 @@ var VxeCascaderComponent = defineVxeComponent({
12300
12315
  }
12301
12316
  const triggerSearchEvent = XEUtils.debounce(() => {
12302
12317
  handleData(true);
12303
- updateModelChecked();
12318
+ updateCheckboxStatus();
12319
+ const { currentItems } = reactData;
12320
+ const { afterTreeList } = internalData;
12304
12321
  const filterOpts = computeFilterOpts.value;
12305
12322
  const { autoExpandMode } = filterOpts;
12306
- const { afterTreeList } = internalData;
12307
- // 默认展开第
12308
- if (autoExpandMode === 'first' || autoExpandMode === 'last') {
12309
- const stItems = handleHasChildNodeIds(afterTreeList, autoExpandMode);
12310
- reactData.currentItems = stItems;
12311
- }
12312
- else {
12313
- handleCurrentItems();
12323
+ // 如果当前不在列表情况下,触发默认行为
12324
+ if (!isPathInTree(afterTreeList, currentItems)) {
12325
+ // 默认展开
12326
+ if (autoExpandMode === 'first' || autoExpandMode === 'last') {
12327
+ const stItems = handleHasChildNodeIds(afterTreeList, autoExpandMode);
12328
+ const expandedMaps = {};
12329
+ stItems.forEach(nodeid => {
12330
+ expandedMaps[nodeid] = true;
12331
+ });
12332
+ internalData.treeExpandedMaps = expandedMaps;
12333
+ reactData.currentItems = stItems;
12334
+ }
12335
+ else {
12336
+ handleCurrentItems();
12337
+ }
12314
12338
  }
12315
12339
  updateCurrentChunk();
12316
12340
  }, 350, { trailing: true });
@@ -12454,6 +12478,7 @@ var VxeCascaderComponent = defineVxeComponent({
12454
12478
  };
12455
12479
  const setCurrentNode = (node) => {
12456
12480
  reactData.currentNode = node;
12481
+ updateCurrentChunk();
12457
12482
  return nextTick();
12458
12483
  };
12459
12484
  const setAllCheckboxNode = (checked) => {
@@ -12492,6 +12517,7 @@ var VxeCascaderComponent = defineVxeComponent({
12492
12517
  };
12493
12518
  const changeEvent = (evnt, selectValue, node) => {
12494
12519
  const value = XEUtils.isArray(selectValue) ? selectValue.map(deNodeValue) : deNodeValue(selectValue);
12520
+ internalData.isUpdateMode = true;
12495
12521
  emitModel(value);
12496
12522
  if (value !== props.modelValue) {
12497
12523
  dispatchEvent('change', { value, node, option: node }, evnt);
@@ -12602,9 +12628,10 @@ var VxeCascaderComponent = defineVxeComponent({
12602
12628
  reactData.currentNode = node;
12603
12629
  dispatchEvent('current-change', { node, checked: isChecked }, evnt);
12604
12630
  };
12605
- const changeRadioEvent = (evnt, node) => {
12631
+ const changeRadioEvent = (evnt, node, chunks, chunkIndex) => {
12606
12632
  evnt.preventDefault();
12607
12633
  evnt.stopPropagation();
12634
+ const { currentItems } = reactData;
12608
12635
  const { nodeMaps } = internalData;
12609
12636
  const radioOpts = computeRadioOpts.value;
12610
12637
  const childrenField = computeChildrenField.value;
@@ -12624,6 +12651,10 @@ var VxeCascaderComponent = defineVxeComponent({
12624
12651
  const value = nodeid;
12625
12652
  reactData.selectRadioKey = value;
12626
12653
  changeEvent(evnt, value, node);
12654
+ if (!currentItems.includes(nodeid)) {
12655
+ changeCurrentEvent(evnt, node);
12656
+ toggleExpandEvent(evnt, node, chunks, chunkIndex);
12657
+ }
12627
12658
  hideOptionPanel(evnt);
12628
12659
  };
12629
12660
  const handleAsyncTreeExpandChilds = (node) => {
@@ -12746,7 +12777,6 @@ var VxeCascaderComponent = defineVxeComponent({
12746
12777
  handleBaseTreeExpand([node], expanded);
12747
12778
  }
12748
12779
  setCurrentNode(node);
12749
- updateCurrentChunk();
12750
12780
  dispatchEvent('node-expand', { node, expanded }, evnt);
12751
12781
  };
12752
12782
  const updateCheckboxStatus = () => {
@@ -12855,9 +12885,11 @@ var VxeCascaderComponent = defineVxeComponent({
12855
12885
  reactData.updateCheckboxFlag++;
12856
12886
  }
12857
12887
  };
12858
- const changeCheckboxEvent = (evnt, node) => {
12888
+ const changeCheckboxEvent = (evnt, node, chunks, chunkIndex) => {
12859
12889
  evnt.preventDefault();
12860
12890
  evnt.stopPropagation();
12891
+ // const { filterable } = props
12892
+ const { currentItems } = reactData;
12861
12893
  const { selectCheckboxMaps, nodeMaps } = internalData;
12862
12894
  const childrenField = computeChildrenField.value;
12863
12895
  const mapChildrenField = computeMapChildrenField.value;
@@ -12883,11 +12915,11 @@ var VxeCascaderComponent = defineVxeComponent({
12883
12915
  selectCheckboxMaps[nodeid] = node;
12884
12916
  }
12885
12917
  if (!checkStrictly) {
12886
- XEUtils.eachTree(XEUtils.get(node, transform ? mapChildrenField : childrenField), (childNode) => {
12918
+ XEUtils.eachTree(childList, (childNode) => {
12887
12919
  const childNodeid = getNodeId(childNode);
12888
12920
  if (isChecked) {
12889
12921
  if (!selectCheckboxMaps[childNodeid]) {
12890
- selectCheckboxMaps[childNodeid] = true;
12922
+ selectCheckboxMaps[childNodeid] = childNode;
12891
12923
  }
12892
12924
  }
12893
12925
  else {
@@ -12897,11 +12929,16 @@ var VxeCascaderComponent = defineVxeComponent({
12897
12929
  }
12898
12930
  }, { children: transform ? mapChildrenField : childrenField });
12899
12931
  }
12932
+ selectCheckboxMaps[nodeid] = node;
12900
12933
  reactData.updateCheckboxFlag++;
12901
12934
  updateCheckboxStatus();
12902
12935
  const nodeids = XEUtils.keys(selectCheckboxMaps);
12903
12936
  const value = nodeids;
12904
12937
  changeEvent(evnt, value, node);
12938
+ if (!currentItems.includes(nodeid)) {
12939
+ changeCurrentEvent(evnt, node);
12940
+ toggleExpandEvent(evnt, node, chunks, chunkIndex);
12941
+ }
12905
12942
  };
12906
12943
  const handleNodeClickEvent = (evnt, node, chunks, chunkIndex) => {
12907
12944
  const { multiple, showCheckbox, showRadio } = props;
@@ -12925,13 +12962,13 @@ var VxeCascaderComponent = defineVxeComponent({
12925
12962
  if (multiple) {
12926
12963
  if (checkboxOpts.trigger === 'node' || (!showCheckbox && (!childList || !childList.length))) {
12927
12964
  triggerCheckbox = true;
12928
- changeCheckboxEvent(evnt, node);
12965
+ changeCheckboxEvent(evnt, node, chunks, chunkIndex);
12929
12966
  }
12930
12967
  }
12931
12968
  else {
12932
12969
  if (radioOpts.trigger === 'node' || (!showRadio && (!childList || !childList.length))) {
12933
12970
  triggerRadio = true;
12934
- changeRadioEvent(evnt, node);
12971
+ changeRadioEvent(evnt, node, chunks, chunkIndex);
12935
12972
  }
12936
12973
  }
12937
12974
  dispatchEvent('node-click', { node, triggerCurrent, triggerRadio, triggerCheckbox, triggerExpand }, evnt);
@@ -13056,7 +13093,7 @@ var VxeCascaderComponent = defineVxeComponent({
13056
13093
  }
13057
13094
  return true;
13058
13095
  };
13059
- const renderRadio = (node, isExistChild, nLevel, isChecked) => {
13096
+ const renderRadio = (node, isExistChild, nLevel, isChecked, chunks, chunkIndex) => {
13060
13097
  const { showRadio } = props;
13061
13098
  const radioOpts = computeRadioOpts.value;
13062
13099
  const { checkMode, checkMethod, visibleMode, visibleMethod } = radioOpts;
@@ -13070,7 +13107,7 @@ var VxeCascaderComponent = defineVxeComponent({
13070
13107
  }],
13071
13108
  onClick: (evnt) => {
13072
13109
  if (!isDisabled) {
13073
- changeRadioEvent(evnt, node);
13110
+ changeRadioEvent(evnt, node, chunks, chunkIndex);
13074
13111
  }
13075
13112
  }
13076
13113
  }, [
@@ -13081,7 +13118,7 @@ var VxeCascaderComponent = defineVxeComponent({
13081
13118
  }
13082
13119
  return renderEmptyElement($xeCascader);
13083
13120
  };
13084
- const renderCheckbox = (node, isExistChild, nLevel, isChecked, isIndeterminate) => {
13121
+ const renderCheckbox = (node, isExistChild, nLevel, isChecked, isIndeterminate, chunks, chunkIndex) => {
13085
13122
  const { showCheckbox } = props;
13086
13123
  const checkboxOpts = computeCheckboxOpts.value;
13087
13124
  const { checkMode, checkMethod, visibleMode, visibleMethod } = checkboxOpts;
@@ -13096,7 +13133,7 @@ var VxeCascaderComponent = defineVxeComponent({
13096
13133
  }],
13097
13134
  onClick: (evnt) => {
13098
13135
  if (!isDisabled) {
13099
- changeCheckboxEvent(evnt, node);
13136
+ changeCheckboxEvent(evnt, node, chunks, chunkIndex);
13100
13137
  }
13101
13138
  }
13102
13139
  }, [
@@ -13164,7 +13201,7 @@ var VxeCascaderComponent = defineVxeComponent({
13164
13201
  handleNodeClickEvent(evnt, node, chunks, chunkIndex);
13165
13202
  }
13166
13203
  }, [
13167
- multiple ? renderCheckbox(node, isExistChild, nLevel, isCheckboxChecked, isIndeterminate) : renderRadio(node, isExistChild, nLevel, isRadioChecked),
13204
+ multiple ? renderCheckbox(node, isExistChild, nLevel, isCheckboxChecked, isIndeterminate, chunks, chunkIndex) : renderRadio(node, isExistChild, nLevel, isRadioChecked, chunks, chunkIndex),
13168
13205
  h('div', {
13169
13206
  class: 'vxe-cascader-chunk--node-item-inner'
13170
13207
  }, [
@@ -13385,9 +13422,12 @@ var VxeCascaderComponent = defineVxeComponent({
13385
13422
  ]);
13386
13423
  };
13387
13424
  watch(() => props.modelValue, () => {
13388
- updateModelChecked();
13389
- handleCurrentItems();
13390
- updateCurrentChunk();
13425
+ if (!internalData.isUpdateMode) {
13426
+ updateModelChecked();
13427
+ handleCurrentItems();
13428
+ updateCurrentChunk();
13429
+ }
13430
+ internalData.isUpdateMode = false;
13391
13431
  });
13392
13432
  watch(() => props.options, () => {
13393
13433
  cacheNodeMap();
@@ -22055,18 +22095,26 @@ var VxeDateRangePickerComponent = defineVxeComponent({
22055
22095
  hidePanel();
22056
22096
  };
22057
22097
  const startPanelChangeEvent = (params) => {
22098
+ const { paneStartVal } = reactData;
22058
22099
  const { selectStatus } = internalData;
22059
22100
  const { value, currValue, $event } = params;
22060
22101
  const paneVals = value ? (XEUtils.isString(value) ? value.split(',') : [value]) : [];
22061
22102
  let startValue = '';
22062
22103
  let endValue = '';
22063
22104
  if (selectStatus) {
22064
- startValue = paneVals[0];
22065
- if (paneVals[1]) {
22066
- endValue = paneVals[1];
22105
+ // 如果选择同一天
22106
+ if (!value && currValue === paneStartVal[0]) {
22107
+ startValue = currValue;
22108
+ endValue = currValue;
22067
22109
  }
22068
22110
  else {
22069
- endValue = reactData.selectEdValue;
22111
+ startValue = paneVals[0];
22112
+ if (paneVals[1]) {
22113
+ endValue = paneVals[1];
22114
+ }
22115
+ else {
22116
+ endValue = reactData.selectEdValue;
22117
+ }
22070
22118
  }
22071
22119
  }
22072
22120
  else {
@@ -22089,19 +22137,27 @@ var VxeDateRangePickerComponent = defineVxeComponent({
22089
22137
  });
22090
22138
  };
22091
22139
  const endPanelChangeEvent = (params) => {
22140
+ const { paneEndVal } = reactData;
22092
22141
  const { selectStatus } = internalData;
22093
22142
  const { value, currValue, $event } = params;
22094
22143
  const paneVals = value ? (XEUtils.isString(value) ? value.split(',') : [value]) : [];
22095
22144
  let startValue = '';
22096
22145
  let endValue = '';
22097
22146
  if (selectStatus) {
22098
- endValue = paneVals[0];
22099
- if (paneVals[1]) {
22100
- startValue = paneVals[0];
22101
- endValue = paneVals[1];
22147
+ // 如果选择同一天
22148
+ if (!value && currValue === paneEndVal[1]) {
22149
+ startValue = currValue;
22150
+ endValue = currValue;
22102
22151
  }
22103
22152
  else {
22104
- startValue = reactData.selectStValue;
22153
+ endValue = paneVals[0];
22154
+ if (paneVals[1]) {
22155
+ startValue = paneVals[0];
22156
+ endValue = paneVals[1];
22157
+ }
22158
+ else {
22159
+ startValue = reactData.selectStValue;
22160
+ }
22105
22161
  }
22106
22162
  }
22107
22163
  else {
@@ -28572,6 +28628,7 @@ var VxeMenuComponent = defineVxeComponent({
28572
28628
  const { accordion } = props;
28573
28629
  const { menuEffectMaps } = internalData;
28574
28630
  const { itemId, hasChild, isExpand } = item;
28631
+ const isCollapsed = computeIsCollapsed.value;
28575
28632
  const expanded = !isExpand;
28576
28633
  if (hasChild) {
28577
28634
  evnt.stopPropagation();
@@ -28587,9 +28644,9 @@ var VxeMenuComponent = defineVxeComponent({
28587
28644
  });
28588
28645
  }
28589
28646
  item.isExpand = expanded;
28590
- const el = refElem.value;
28591
- if (el) {
28592
- const nemuEl = el.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${itemId}"]`);
28647
+ const wrapperEl = isCollapsed ? refCollapseElem.value : refElem.value;
28648
+ if (wrapperEl) {
28649
+ const nemuEl = wrapperEl.querySelector(`.vxe-menu--item-wrapper[data-menu-id="${itemId}"]`);
28593
28650
  const groupEl = nemuEl ? nemuEl.querySelector('.vxe-menu--item-group') : null;
28594
28651
  if (groupEl) {
28595
28652
  if (expanded) {