sard-uniapp 1.25.4 → 1.25.5

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 (198) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/components/accordion/accordion.vue +1 -1
  3. package/components/accordion-item/accordion-item.vue +1 -1
  4. package/components/action-sheet/action-sheet.vue +1 -1
  5. package/components/alert/alert.vue +1 -1
  6. package/components/avatar/avatar.vue +1 -1
  7. package/components/avatar-group/avatar-group.vue +1 -1
  8. package/components/back-top/back-top.vue +1 -1
  9. package/components/badge/badge.vue +1 -1
  10. package/components/button/button.vue +1 -1
  11. package/components/calendar/calendar.vue +1 -1
  12. package/components/calendar-input/calendar-input.vue +2 -2
  13. package/components/calendar-popout/calendar-popout.vue +2 -2
  14. package/components/card/card.vue +1 -1
  15. package/components/cascader/README.md +89 -18
  16. package/components/cascader/cascader.d.ts +6 -6
  17. package/components/cascader/cascader.vue +201 -182
  18. package/components/cascader/common.d.ts +32 -7
  19. package/components/cascader/common.js +39 -23
  20. package/components/cascader/index.d.ts +1 -1
  21. package/components/cascader/index.scss +40 -4
  22. package/components/cascader/useCascaderTabs.d.ts +12 -0
  23. package/components/cascader/useCascaderTabs.js +59 -0
  24. package/components/cascader/useCascaderTree.d.ts +66 -0
  25. package/components/cascader/useCascaderTree.js +194 -0
  26. package/components/cascader/variables.scss +9 -2
  27. package/components/cascader-input/README.md +26 -13
  28. package/components/cascader-input/cascader-input.d.ts +7 -2
  29. package/components/cascader-input/cascader-input.vue +70 -16
  30. package/components/cascader-input/common.d.ts +356 -30
  31. package/components/cascader-popout/README.md +6 -0
  32. package/components/cascader-popout/cascader-popout.d.ts +5 -1
  33. package/components/cascader-popout/cascader-popout.vue +16 -4
  34. package/components/cascader-popout/common.d.ts +169 -17
  35. package/components/check-icon/check-icon.vue +1 -1
  36. package/components/checkbox/checkbox.d.ts +2 -2
  37. package/components/checkbox/checkbox.vue +1 -1
  38. package/components/checkbox-group/checkbox-group.vue +1 -1
  39. package/components/checkbox-input/checkbox-input.vue +2 -2
  40. package/components/checkbox-popout/checkbox-popout.vue +2 -2
  41. package/components/col/col.vue +1 -1
  42. package/components/collapse/collapse.vue +1 -1
  43. package/components/config/index.js +4 -1
  44. package/components/cool-icon/cool-icon.vue +1 -1
  45. package/components/count-down/count-down.vue +1 -1
  46. package/components/crop-image/crop-image.vue +1 -1
  47. package/components/crop-image-agent/crop-image-agent.vue +1 -1
  48. package/components/datetime-picker/datetime-picker.vue +1 -1
  49. package/components/datetime-picker-input/datetime-picker-input.vue +2 -2
  50. package/components/datetime-picker-popout/datetime-picker-popout.vue +2 -2
  51. package/components/datetime-range-picker/datetime-range-picker.vue +1 -1
  52. package/components/datetime-range-picker-input/datetime-range-picker-input.vue +2 -2
  53. package/components/datetime-range-picker-popout/datetime-range-picker-popout.vue +2 -2
  54. package/components/dialog/dialog.vue +2 -2
  55. package/components/dialog-agent/dialog-agent.vue +2 -2
  56. package/components/divider/divider.vue +1 -1
  57. package/components/dnd/dnd.vue +1 -1
  58. package/components/dnd-handle/dnd-handle.vue +1 -1
  59. package/components/dnd-item/dnd-item.vue +1 -1
  60. package/components/dropdown/dropdown.vue +1 -1
  61. package/components/dropdown-item/dropdown-item.vue +7 -2
  62. package/components/empty/empty.vue +1 -1
  63. package/components/fab/fab.vue +1 -1
  64. package/components/fab-item/fab-item.vue +1 -1
  65. package/components/floating-bubble/floating-bubble.vue +1 -1
  66. package/components/floating-panel/floating-panel.vue +1 -1
  67. package/components/form/form.vue +1 -1
  68. package/components/form-item/form-item.vue +1 -1
  69. package/components/form-item-plain/form-item-plain.vue +1 -1
  70. package/components/form-plain/form-plain.vue +1 -1
  71. package/components/grid/grid.vue +1 -1
  72. package/components/grid-item/grid-item.vue +2 -2
  73. package/components/icon/icon.vue +1 -1
  74. package/components/icon/sari.scss +17 -17
  75. package/components/image/image.vue +10 -4
  76. package/components/indexes/indexes.vue +1 -1
  77. package/components/indexes-anchor/indexes-anchor.vue +1 -1
  78. package/components/input/input.vue +1 -1
  79. package/components/keyboard/keyboard.vue +1 -1
  80. package/components/list/list.vue +1 -1
  81. package/components/list-item/list-item.vue +1 -1
  82. package/components/load-more/load-more.vue +1 -1
  83. package/components/loading/loading.vue +1 -1
  84. package/components/locale/lang/ar-SA.d.ts +2 -0
  85. package/components/locale/lang/ar-SA.js +2 -0
  86. package/components/locale/lang/en-US.d.ts +2 -0
  87. package/components/locale/lang/en-US.js +2 -0
  88. package/components/locale/lang/vi-VN.d.ts +2 -0
  89. package/components/locale/lang/vi-VN.js +2 -0
  90. package/components/locale/lang/zh-CN.d.ts +2 -0
  91. package/components/locale/lang/zh-CN.js +2 -0
  92. package/components/marquee/marquee.vue +1 -1
  93. package/components/menu/menu.vue +1 -1
  94. package/components/navbar/navbar.vue +2 -2
  95. package/components/navbar-item/navbar-item.vue +1 -1
  96. package/components/navbar-pit/navbar-pit.vue +1 -1
  97. package/components/notice-bar/notice-bar.vue +1 -1
  98. package/components/notify/notify.vue +2 -1
  99. package/components/notify-agent/notify-agent.vue +1 -1
  100. package/components/overlay/overlay.vue +1 -1
  101. package/components/pagination/pagination.vue +1 -1
  102. package/components/password-input/password-input.vue +1 -1
  103. package/components/picker/picker.vue +1 -1
  104. package/components/picker-input/picker-input.vue +2 -2
  105. package/components/picker-item/picker-item.vue +1 -1
  106. package/components/picker-popout/picker-popout.vue +2 -2
  107. package/components/popout/popout.vue +1 -1
  108. package/components/popout-input/popout-input.vue +1 -1
  109. package/components/popover/popover.vue +3 -2
  110. package/components/popover-reference/popover-reference.vue +1 -1
  111. package/components/popup/README.md +1 -0
  112. package/components/popup/common.d.ts +28 -0
  113. package/components/popup/index.scss +4 -2
  114. package/components/popup/popup.d.ts +1 -0
  115. package/components/popup/popup.vue +82 -16
  116. package/components/popup/variables.scss +6 -0
  117. package/components/progress-bar/progress-bar.vue +1 -1
  118. package/components/progress-circle/progress-circle.vue +1 -1
  119. package/components/pull-down-refresh/pull-down-refresh.vue +1 -1
  120. package/components/qrcode/qrcode.vue +6 -5
  121. package/components/radio/radio.vue +1 -1
  122. package/components/radio-group/radio-group.vue +1 -1
  123. package/components/radio-input/radio-input.vue +2 -2
  124. package/components/radio-popout/radio-popout.vue +2 -2
  125. package/components/rate/rate.vue +1 -1
  126. package/components/read-more/read-more.vue +1 -1
  127. package/components/resize-sensor/index.scss +7 -0
  128. package/components/resize-sensor/resize-sensor.vue +10 -3
  129. package/components/result/result.vue +1 -1
  130. package/components/row/row.vue +1 -1
  131. package/components/scroll-list/scroll-list.vue +1 -1
  132. package/components/scroll-spy/scroll-spy.vue +1 -1
  133. package/components/scroll-spy-anchor/scroll-spy-anchor.vue +1 -1
  134. package/components/search/search.vue +1 -1
  135. package/components/segmented/segmented.vue +1 -1
  136. package/components/segmented-item/segmented-item.vue +1 -1
  137. package/components/share-sheet/share-sheet.vue +2 -1
  138. package/components/sidebar/sidebar.vue +1 -1
  139. package/components/sidebar-item/sidebar-item.vue +1 -1
  140. package/components/signature/signature.vue +1 -1
  141. package/components/skeleton/skeleton.vue +1 -1
  142. package/components/skeleton-avatar/skeleton-avatar.vue +1 -1
  143. package/components/skeleton-block/skeleton-block.vue +1 -1
  144. package/components/skeleton-paragraph/skeleton-paragraph.vue +1 -1
  145. package/components/skeleton-title/skeleton-title.vue +1 -1
  146. package/components/slider/slider.vue +1 -1
  147. package/components/space/space.vue +1 -1
  148. package/components/status-bar/status-bar.vue +1 -1
  149. package/components/step/step.vue +1 -1
  150. package/components/stepper/stepper.vue +1 -1
  151. package/components/steps/steps.vue +1 -1
  152. package/components/sticky/sticky.vue +1 -1
  153. package/components/sticky-box/sticky-box.vue +1 -1
  154. package/components/swipe-action/swipe-action.vue +1 -1
  155. package/components/swiper-dot/swiper-dot.vue +1 -1
  156. package/components/switch/switch.vue +1 -1
  157. package/components/tab/tab.vue +1 -1
  158. package/components/tabbar/tabbar.vue +1 -1
  159. package/components/tabbar-item/tabbar-item.vue +1 -1
  160. package/components/tabbar-pit/tabbar-pit.vue +1 -1
  161. package/components/table/table.vue +1 -1
  162. package/components/table-cell/table-cell.vue +1 -1
  163. package/components/table-fixation/table-fixation.vue +1 -1
  164. package/components/table-row/table-row.vue +1 -1
  165. package/components/tabs/tabs.vue +1 -1
  166. package/components/tag/tag.vue +1 -1
  167. package/components/timeline/timeline.vue +1 -1
  168. package/components/timeline-item/timeline-item.vue +1 -1
  169. package/components/toast/toast.vue +2 -1
  170. package/components/toast-agent/toast-agent.vue +1 -1
  171. package/components/tree/README.md +0 -2
  172. package/components/tree/tree.d.ts +1 -1
  173. package/components/tree/tree.vue +36 -81
  174. package/components/tree-node/tree-node.vue +8 -4
  175. package/components/upload/upload.vue +1 -1
  176. package/components/upload-preview/upload-preview.vue +1 -1
  177. package/components/waterfall/waterfall.vue +1 -1
  178. package/components/waterfall-item/waterfall-item.vue +1 -1
  179. package/components/waterfall-load/waterfall-load.vue +1 -1
  180. package/components/watermark/watermark.vue +6 -8
  181. package/package.json +2 -1
  182. package/use/index.d.ts +1 -0
  183. package/use/index.js +1 -0
  184. package/use/useLockScroll.d.ts +8 -0
  185. package/use/useLockScroll.js +88 -0
  186. package/utils/file.d.ts +6 -0
  187. package/utils/file.js +33 -11
  188. package/utils/index.d.ts +2 -0
  189. package/utils/index.js +2 -0
  190. package/utils/log.d.ts +1 -0
  191. package/utils/log.js +4 -0
  192. package/utils/router.js +2 -1
  193. package/utils/system.d.ts +2 -0
  194. package/utils/system.js +6 -1
  195. package/utils/tree.d.ts +18 -0
  196. package/utils/tree.js +94 -0
  197. package/components/tree/utils.d.ts +0 -5
  198. package/components/tree/utils.js +0 -29
package/CHANGELOG.md CHANGED
@@ -1,3 +1,19 @@
1
+ ## [1.25.5](https://github.com/sutras/sard-uniapp/compare/v1.25.4...v1.25.5) (2025-11-30)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **image:** 修复image动态展示时无法获取正确尺寸的问题 ([432d8b3](https://github.com/sutras/sard-uniapp/commit/432d8b368a3b49e70f79d8c0b3a7ce65969171e5))
7
+
8
+
9
+ ### Features
10
+
11
+ * **cascader:** 级联组件新增多选功能 ([7f104c1](https://github.com/sutras/sard-uniapp/commit/7f104c1a393509a6b1c97b2565520f9f8e6f8361))
12
+ * 兼容鸿蒙 ([53924d7](https://github.com/sutras/sard-uniapp/commit/53924d7f9562bb4cbe162083998f1485590c629f))
13
+ * 阻止页面滚动(弹窗中的滚动穿透) ([21b43c0](https://github.com/sutras/sard-uniapp/commit/21b43c0924ba1197b217b6fd1020fbd07d5b04fe))
14
+
15
+
16
+
1
17
  ## [1.25.4](https://github.com/sutras/sard-uniapp/compare/v1.25.3...v1.25.4) (2025-11-22)
2
18
 
3
19
 
@@ -28,7 +28,7 @@ export default _defineComponent({
28
28
  },
29
29
  __name: "accordion",
30
30
  props: {
31
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
31
+ rootStyle: { type: null, required: false },
32
32
  rootClass: { type: String, required: false },
33
33
  modelValue: { type: [Array, String, Number], required: false },
34
34
  multiple: { type: Boolean, required: false },
@@ -46,7 +46,7 @@ export default _defineComponent({
46
46
  },
47
47
  __name: "accordion-item",
48
48
  props: {
49
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
49
+ rootStyle: { type: null, required: false },
50
50
  rootClass: { type: String, required: false },
51
51
  title: { type: String, required: false },
52
52
  value: { type: String, required: false },
@@ -100,7 +100,7 @@ export default _defineComponent({
100
100
  },
101
101
  __name: "action-sheet",
102
102
  props: _mergeDefaults({
103
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
103
+ rootStyle: { type: null, required: false },
104
104
  rootClass: { type: String, required: false },
105
105
  description: { type: String, required: false },
106
106
  itemList: { type: Array, required: false },
@@ -43,7 +43,7 @@ export default _defineComponent({
43
43
  },
44
44
  __name: "alert",
45
45
  props: _mergeDefaults({
46
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
46
+ rootStyle: { type: null, required: false },
47
47
  rootClass: { type: String, required: false },
48
48
  showIcon: { type: Boolean, required: false },
49
49
  closable: { type: Boolean, required: false },
@@ -62,7 +62,7 @@ export default _defineComponent({
62
62
  },
63
63
  __name: "avatar",
64
64
  props: _mergeDefaults({
65
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
65
+ rootStyle: { type: null, required: false },
66
66
  rootClass: { type: String, required: false },
67
67
  shape: { type: String, required: false },
68
68
  size: { type: String, required: false },
@@ -31,7 +31,7 @@ export default _defineComponent({
31
31
  },
32
32
  __name: "avatar-group",
33
33
  props: _mergeDefaults({
34
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
34
+ rootStyle: { type: null, required: false },
35
35
  rootClass: { type: String, required: false },
36
36
  max: { type: Number, required: true },
37
37
  total: { type: Number, required: true },
@@ -35,7 +35,7 @@ export default _defineComponent({
35
35
  },
36
36
  __name: "back-top",
37
37
  props: _mergeDefaults({
38
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
38
+ rootStyle: { type: null, required: false },
39
39
  rootClass: { type: String, required: false },
40
40
  scrollTop: { type: Number, required: false },
41
41
  visibleHeight: { type: Number, required: false },
@@ -39,7 +39,7 @@ export default _defineComponent({
39
39
  },
40
40
  __name: "badge",
41
41
  props: _mergeDefaults({
42
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
42
+ rootStyle: { type: null, required: false },
43
43
  rootClass: { type: String, required: false },
44
44
  value: { type: [Number, String], required: false },
45
45
  max: { type: Number, required: false },
@@ -119,7 +119,7 @@ export default _defineComponent({
119
119
  },
120
120
  __name: "button",
121
121
  props: _mergeDefaults({
122
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
122
+ rootStyle: { type: null, required: false },
123
123
  rootClass: { type: String, required: false },
124
124
  type: { type: String, required: false },
125
125
  theme: { type: String, required: false },
@@ -169,7 +169,7 @@ export default _defineComponent({
169
169
  },
170
170
  __name: "calendar",
171
171
  props: _mergeDefaults({
172
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
172
+ rootStyle: { type: null, required: false },
173
173
  rootClass: { type: String, required: false },
174
174
  type: { type: String, required: false },
175
175
  modelValue: { type: [Date, Array, String], required: false },
@@ -134,9 +134,9 @@ export default _defineComponent({
134
134
  showConfirm: { type: Boolean, required: false },
135
135
  validateEvent: { type: Boolean, required: false },
136
136
  popoutClass: { type: String, required: false },
137
- popoutStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
137
+ popoutStyle: { type: null, required: false },
138
138
  resettable: { type: Boolean, required: false },
139
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
139
+ rootStyle: { type: null, required: false },
140
140
  rootClass: { type: String, required: false },
141
141
  type: { type: String, required: false },
142
142
  modelValue: { type: [Date, Array, String], required: false },
@@ -106,9 +106,9 @@ export default _defineComponent({
106
106
  showConfirm: { type: Boolean, required: false },
107
107
  validateEvent: { type: Boolean, required: false },
108
108
  popoutClass: { type: String, required: false },
109
- popoutStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
109
+ popoutStyle: { type: null, required: false },
110
110
  resettable: { type: Boolean, required: false },
111
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
111
+ rootStyle: { type: null, required: false },
112
112
  rootClass: { type: String, required: false },
113
113
  type: { type: String, required: false },
114
114
  modelValue: { type: [Date, Array, String], required: false },
@@ -53,7 +53,7 @@ export default _defineComponent({
53
53
  },
54
54
  __name: "card",
55
55
  props: {
56
- rootStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true },
56
+ rootStyle: { type: null, required: false },
57
57
  rootClass: { type: String, required: false },
58
58
  title: { type: String, required: false },
59
59
  extra: { type: String, required: false },
@@ -29,12 +29,20 @@ import Cascader from 'sard-uniapp/components/cascader/cascader.vue'
29
29
 
30
30
  @code('${DEMO_PATH}/cascader/demo/ChangeOnSelect.vue')
31
31
 
32
- ### 异步加载
32
+ ### 异步加载(已废弃,建议使用“懒加载”)
33
33
 
34
- 通过监听 `@select` 事件,获取当前选中的选项,将异步获取的数据作为 `children` 属性值, 再把组件的 `options` 更新一下,使组件重新渲染。如果选项的 `children` 是需要用户点击时再通过接口获取的, 此选项的 `children` 需初始化为空数组。
34
+ 通过监听 `@select` 事件,获取当前选中的选项,将异步获取的数据作为 `children` 属性值, 再把组件的 `options` 更新一下,使组件重新渲染。如果选项的 `children` 是需要用户点击时再通过接口获取的, 此选项的 `children` 需初始化为**空数组**。
35
35
 
36
36
  @code('${DEMO_PATH}/cascader/demo/Async.vue')
37
37
 
38
+ ### 懒加载 <sup>1.25.5+</sup>
39
+
40
+ 设置 `lazy` 属性标识为懒加载,设置 `load` 属性用于获取数据,会在点击节点时调用,当获取的数据为空时,会将点击的节点标识为叶子节点。当然,你也可以提前设置节点是否为叶子节点,以避免为叶子节点时还要请求一次接口。
41
+
42
+ 首次加载失败可点击提示重新加载,“无数据”状态也可点击重新加载;点击节点加载失败回退到 `idle` 状态,可再次点击进行加载。
43
+
44
+ @code('${DEMO_PATH}/cascader/demo/Lazy.vue')
45
+
38
46
  ### 自定义面板上方内容
39
47
 
40
48
  使用 `top` 插槽可以在面板顶部展示当前面板的一些信息。
@@ -53,21 +61,51 @@ import Cascader from 'sard-uniapp/components/cascader/cascader.vue'
53
61
 
54
62
  @code('${DEMO_PATH}/cascader/demo/AllLevels.vue')
55
63
 
64
+ ### 多选 <sup>1.25.5+</sup>
65
+
66
+ 设置 `multiple` 属性可在每个选项前面显示复选框,点击复选框可选择多个;如果是最后一级,点击选项也可以选中复选框。
67
+
68
+ @code('${DEMO_PATH}/cascader/demo/Multiple.vue')
69
+
70
+ ### 多选-绑定所有级别的值 <sup>1.25.5+</sup>
71
+
72
+ `all-levels` 属性也可以作用于多选,当设置此属性,绑定的值会是一个二维数组。
73
+
74
+ @code('${DEMO_PATH}/cascader/demo/MultipleAllLevels.vue')
75
+
76
+ ### 多选-选择任意级别 <sup>1.25.5+</sup>
77
+
78
+ 在单选模式下,你只能选择叶子节点;而在多选模式下,勾选父节点真正选中的都是叶子节点。 启用该功能后,可让父子节点取消关联,选择任意一级选项。
79
+
80
+ 可通过设置 `check-strictly` 来取消父子节点选中关联,从而达到选择任意一级选项的目的。
81
+
82
+ @code('${DEMO_PATH}/cascader/demo/CheckStrictly.vue')
83
+
84
+ ### 多选-选择任意级别-绑定所有级别 <sup>1.25.5+</sup>
85
+
86
+ 下面综合演示多选的使用。
87
+
88
+ @code('${DEMO_PATH}/cascader/demo/CheckStrictlyAllLevels.vue')
89
+
56
90
  ## API
57
91
 
58
92
  ### CascaderProps
59
93
 
60
- | 属性 | 描述 | 类型 | 默认值 |
61
- | --------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------- |
62
- | root-class | 组件根元素类名 | string | - |
63
- | root-style | 组件根元素样式 | StyleValue | - |
64
- | model-value (v-model) | 选中项的值 | string \| number \| (string \| number)[] | - |
65
- | options | 可选项数据源 | CascaderOption[] | [] |
66
- | field-keys | 自定义 `options` 中的字段 | CascaderFieldKeys | defaultFieldKeys |
67
- | hint-text | 未选中时的提示文案 | string | '请选择' |
68
- | label-render | 自定义可选项渲染 | (option: CascaderOption) => string | - |
69
- | change-on-select <sup>1.14+</sup> | 点击每级选项都会触发变化 | boolean | false |
70
- | all-levels <sup>1.23+</sup> | 是否绑定所有级别的值,而不单单是最后一级 | boolean | false |
94
+ | 属性 | 描述 | 类型 | 默认值 |
95
+ | --------------------------------- | --------------------------------------------- | --------------------------------------------------------------------------- | ---------------- |
96
+ | root-class | 组件根元素类名 | string | - |
97
+ | root-style | 组件根元素样式 | StyleValue | - |
98
+ | model-value (v-model) | 选中项的值 | CascaderValue | - |
99
+ | options | 可选项数据源 | CascaderOption[] | [] |
100
+ | field-keys | 自定义 `options` 中的字段 | CascaderFieldKeys | defaultFieldKeys |
101
+ | hint-text | 未选中时的提示文案 | string | '请选择' |
102
+ | label-render | 自定义可选项渲染 | (option: CascaderOption) => string | - |
103
+ | change-on-select <sup>1.14+</sup> | 点击每级选项都会触发变化 | boolean | false |
104
+ | all-levels <sup>1.23+</sup> | 是否绑定所有级别的值,而不单单是最后一级 | boolean | false |
105
+ | multiple <sup>1.25.5+</sup> | 是否多选 | boolean | false |
106
+ | check-strictly <sup>1.25.5+</sup> | 是否严格的遵守父子节点不互相关联(用于多选) | boolean | false |
107
+ | lazy <sup>1.25.5+</sup> | 是否懒加载子节点,需与 load 方法结合使用 | boolean | false |
108
+ | load <sup>1.25.5+</sup> | 加载子节点的方法,仅当 lazy 属性为true 时生效 | (node?: CascaderStateNode) => Promise<CascaderOption[]> \| CascaderOption[] | - |
71
109
 
72
110
  ### CascaderSlots
73
111
 
@@ -77,11 +115,21 @@ import Cascader from 'sard-uniapp/components/cascader/cascader.vue'
77
115
 
78
116
  ### CascaderEmits
79
117
 
80
- | 事件 | 描述 | 类型 |
81
- | ------------------------ | ---------------------- | -------------------------------------------------------------------------------------------- |
82
- | update:model-value | 全部选项选择完成后触发 | (value: string \| number \| (string \| number)[], selectedOptions: CascaderOption[]) => void |
83
- | change <sup>1.9.2+</sup> | 全部选项选择完成后触发 | (value: string \| number \| (string \| number)[], selectedOptions: CascaderOption[]) => void |
84
- | select | 选中某一项时触发 | (option: CascaderOption, tabIndex: number) => void |
118
+ | 事件 | 描述 | 类型 |
119
+ | ------------------------ | ---------------------- | ----------------------------------------------------------------- |
120
+ | update:model-value | 全部选项选择完成后触发 | (value: CascaderValue, selectedOptions: CascaderOption[]) => void |
121
+ | change <sup>1.9.2+</sup> | 全部选项选择完成后触发 | (value: CascaderValue, selectedOptions: CascaderOption[]) => void |
122
+ | select | 选中某一项时触发 | (option: CascaderOption, tabIndex: number) => void |
123
+
124
+ ### CascaderValue
125
+
126
+ ```ts
127
+ type CascaderValue =
128
+ | string
129
+ | number
130
+ | (string | number)[]
131
+ | (string | number)[][]
132
+ ```
85
133
 
86
134
  ### CascaderOption
87
135
 
@@ -91,6 +139,7 @@ interface CascaderOption {
91
139
  value?: string | number
92
140
  disabled?: boolean
93
141
  children?: CascaderOption[]
142
+ isLeaf?: boolean
94
143
  [key: PropertyKey]: any
95
144
  }
96
145
  ```
@@ -103,6 +152,7 @@ interface CascaderFieldKeys {
103
152
  value?: string
104
153
  disabled?: string
105
154
  children?: string
155
+ isLeaf?: string
106
156
  }
107
157
  ```
108
158
 
@@ -114,6 +164,27 @@ const defaultFieldKeys: CascaderFieldKeys = {
114
164
  value: 'value',
115
165
  disabled: 'disabled',
116
166
  children: 'children',
167
+ isLeaf: 'isLeaf',
168
+ }
169
+ ```
170
+
171
+ ### CascaderStateNode
172
+
173
+ ```ts
174
+ interface CascaderStateNode {
175
+ label: string
176
+ value: string | number
177
+ key: string | number
178
+ disabled: boolean
179
+ children?: CascaderStateNode[]
180
+ parent: CascaderStateNode | null
181
+ isLeaf: boolean
182
+ loadStatus: 'idle' | 'loading' | 'loaded'
183
+ depth: number
184
+ indeterminate: boolean
185
+ checked: boolean
186
+ selected: boolean
187
+ option: CascaderOption
117
188
  }
118
189
  ```
119
190
 
@@ -1,15 +1,15 @@
1
- import { type CascaderProps, type CascaderSlots, type CascaderOption } from './common';
1
+ import { type CascaderProps, type CascaderSlots } from './common';
2
2
  declare function __VLS_template(): Readonly<CascaderSlots> & CascaderSlots;
3
3
  declare const __VLS_component: import("vue").DefineComponent<CascaderProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
4
- "update:model-value": (value: string | number | (string | number)[], selectedOptions: any[]) => any;
5
- change: (value: string | number | (string | number)[], selectedOptions: any[]) => any;
4
+ "update:model-value": (value: import("./common").CascaderValue, selectedOptions: any[]) => any;
5
+ change: (value: import("./common").CascaderValue, selectedOptions: any[]) => any;
6
6
  select: (option: any, tabIndex: number) => any;
7
7
  }, string, import("vue").PublicProps, Readonly<CascaderProps> & Readonly<{
8
- "onUpdate:model-value"?: ((value: string | number | (string | number)[], selectedOptions: any[]) => any) | undefined;
9
- onChange?: ((value: string | number | (string | number)[], selectedOptions: any[]) => any) | undefined;
8
+ "onUpdate:model-value"?: ((value: import("./common").CascaderValue, selectedOptions: any[]) => any) | undefined;
9
+ onChange?: ((value: import("./common").CascaderValue, selectedOptions: any[]) => any) | undefined;
10
10
  onSelect?: ((option: any, tabIndex: number) => any) | undefined;
11
11
  }>, {
12
- options: CascaderOption[];
12
+ options: import("./common").CascaderOption[];
13
13
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
14
14
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
15
15
  export default _default;