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.
- package/CHANGELOG.md +16 -0
- package/components/accordion/accordion.vue +1 -1
- package/components/accordion-item/accordion-item.vue +1 -1
- package/components/action-sheet/action-sheet.vue +1 -1
- package/components/alert/alert.vue +1 -1
- package/components/avatar/avatar.vue +1 -1
- package/components/avatar-group/avatar-group.vue +1 -1
- package/components/back-top/back-top.vue +1 -1
- package/components/badge/badge.vue +1 -1
- package/components/button/button.vue +1 -1
- package/components/calendar/calendar.vue +1 -1
- package/components/calendar-input/calendar-input.vue +2 -2
- package/components/calendar-popout/calendar-popout.vue +2 -2
- package/components/card/card.vue +1 -1
- package/components/cascader/README.md +89 -18
- package/components/cascader/cascader.d.ts +6 -6
- package/components/cascader/cascader.vue +201 -182
- package/components/cascader/common.d.ts +32 -7
- package/components/cascader/common.js +39 -23
- package/components/cascader/index.d.ts +1 -1
- package/components/cascader/index.scss +40 -4
- package/components/cascader/useCascaderTabs.d.ts +12 -0
- package/components/cascader/useCascaderTabs.js +59 -0
- package/components/cascader/useCascaderTree.d.ts +66 -0
- package/components/cascader/useCascaderTree.js +194 -0
- package/components/cascader/variables.scss +9 -2
- package/components/cascader-input/README.md +26 -13
- package/components/cascader-input/cascader-input.d.ts +7 -2
- package/components/cascader-input/cascader-input.vue +70 -16
- package/components/cascader-input/common.d.ts +356 -30
- package/components/cascader-popout/README.md +6 -0
- package/components/cascader-popout/cascader-popout.d.ts +5 -1
- package/components/cascader-popout/cascader-popout.vue +16 -4
- package/components/cascader-popout/common.d.ts +169 -17
- package/components/check-icon/check-icon.vue +1 -1
- package/components/checkbox/checkbox.d.ts +2 -2
- package/components/checkbox/checkbox.vue +1 -1
- package/components/checkbox-group/checkbox-group.vue +1 -1
- package/components/checkbox-input/checkbox-input.vue +2 -2
- package/components/checkbox-popout/checkbox-popout.vue +2 -2
- package/components/col/col.vue +1 -1
- package/components/collapse/collapse.vue +1 -1
- package/components/config/index.js +4 -1
- package/components/cool-icon/cool-icon.vue +1 -1
- package/components/count-down/count-down.vue +1 -1
- package/components/crop-image/crop-image.vue +1 -1
- package/components/crop-image-agent/crop-image-agent.vue +1 -1
- package/components/datetime-picker/datetime-picker.vue +1 -1
- package/components/datetime-picker-input/datetime-picker-input.vue +2 -2
- package/components/datetime-picker-popout/datetime-picker-popout.vue +2 -2
- package/components/datetime-range-picker/datetime-range-picker.vue +1 -1
- package/components/datetime-range-picker-input/datetime-range-picker-input.vue +2 -2
- package/components/datetime-range-picker-popout/datetime-range-picker-popout.vue +2 -2
- package/components/dialog/dialog.vue +2 -2
- package/components/dialog-agent/dialog-agent.vue +2 -2
- package/components/divider/divider.vue +1 -1
- package/components/dnd/dnd.vue +1 -1
- package/components/dnd-handle/dnd-handle.vue +1 -1
- package/components/dnd-item/dnd-item.vue +1 -1
- package/components/dropdown/dropdown.vue +1 -1
- package/components/dropdown-item/dropdown-item.vue +7 -2
- package/components/empty/empty.vue +1 -1
- package/components/fab/fab.vue +1 -1
- package/components/fab-item/fab-item.vue +1 -1
- package/components/floating-bubble/floating-bubble.vue +1 -1
- package/components/floating-panel/floating-panel.vue +1 -1
- package/components/form/form.vue +1 -1
- package/components/form-item/form-item.vue +1 -1
- package/components/form-item-plain/form-item-plain.vue +1 -1
- package/components/form-plain/form-plain.vue +1 -1
- package/components/grid/grid.vue +1 -1
- package/components/grid-item/grid-item.vue +2 -2
- package/components/icon/icon.vue +1 -1
- package/components/icon/sari.scss +17 -17
- package/components/image/image.vue +10 -4
- package/components/indexes/indexes.vue +1 -1
- package/components/indexes-anchor/indexes-anchor.vue +1 -1
- package/components/input/input.vue +1 -1
- package/components/keyboard/keyboard.vue +1 -1
- package/components/list/list.vue +1 -1
- package/components/list-item/list-item.vue +1 -1
- package/components/load-more/load-more.vue +1 -1
- package/components/loading/loading.vue +1 -1
- package/components/locale/lang/ar-SA.d.ts +2 -0
- package/components/locale/lang/ar-SA.js +2 -0
- package/components/locale/lang/en-US.d.ts +2 -0
- package/components/locale/lang/en-US.js +2 -0
- package/components/locale/lang/vi-VN.d.ts +2 -0
- package/components/locale/lang/vi-VN.js +2 -0
- package/components/locale/lang/zh-CN.d.ts +2 -0
- package/components/locale/lang/zh-CN.js +2 -0
- package/components/marquee/marquee.vue +1 -1
- package/components/menu/menu.vue +1 -1
- package/components/navbar/navbar.vue +2 -2
- package/components/navbar-item/navbar-item.vue +1 -1
- package/components/navbar-pit/navbar-pit.vue +1 -1
- package/components/notice-bar/notice-bar.vue +1 -1
- package/components/notify/notify.vue +2 -1
- package/components/notify-agent/notify-agent.vue +1 -1
- package/components/overlay/overlay.vue +1 -1
- package/components/pagination/pagination.vue +1 -1
- package/components/password-input/password-input.vue +1 -1
- package/components/picker/picker.vue +1 -1
- package/components/picker-input/picker-input.vue +2 -2
- package/components/picker-item/picker-item.vue +1 -1
- package/components/picker-popout/picker-popout.vue +2 -2
- package/components/popout/popout.vue +1 -1
- package/components/popout-input/popout-input.vue +1 -1
- package/components/popover/popover.vue +3 -2
- package/components/popover-reference/popover-reference.vue +1 -1
- package/components/popup/README.md +1 -0
- package/components/popup/common.d.ts +28 -0
- package/components/popup/index.scss +4 -2
- package/components/popup/popup.d.ts +1 -0
- package/components/popup/popup.vue +82 -16
- package/components/popup/variables.scss +6 -0
- package/components/progress-bar/progress-bar.vue +1 -1
- package/components/progress-circle/progress-circle.vue +1 -1
- package/components/pull-down-refresh/pull-down-refresh.vue +1 -1
- package/components/qrcode/qrcode.vue +6 -5
- package/components/radio/radio.vue +1 -1
- package/components/radio-group/radio-group.vue +1 -1
- package/components/radio-input/radio-input.vue +2 -2
- package/components/radio-popout/radio-popout.vue +2 -2
- package/components/rate/rate.vue +1 -1
- package/components/read-more/read-more.vue +1 -1
- package/components/resize-sensor/index.scss +7 -0
- package/components/resize-sensor/resize-sensor.vue +10 -3
- package/components/result/result.vue +1 -1
- package/components/row/row.vue +1 -1
- package/components/scroll-list/scroll-list.vue +1 -1
- package/components/scroll-spy/scroll-spy.vue +1 -1
- package/components/scroll-spy-anchor/scroll-spy-anchor.vue +1 -1
- package/components/search/search.vue +1 -1
- package/components/segmented/segmented.vue +1 -1
- package/components/segmented-item/segmented-item.vue +1 -1
- package/components/share-sheet/share-sheet.vue +2 -1
- package/components/sidebar/sidebar.vue +1 -1
- package/components/sidebar-item/sidebar-item.vue +1 -1
- package/components/signature/signature.vue +1 -1
- package/components/skeleton/skeleton.vue +1 -1
- package/components/skeleton-avatar/skeleton-avatar.vue +1 -1
- package/components/skeleton-block/skeleton-block.vue +1 -1
- package/components/skeleton-paragraph/skeleton-paragraph.vue +1 -1
- package/components/skeleton-title/skeleton-title.vue +1 -1
- package/components/slider/slider.vue +1 -1
- package/components/space/space.vue +1 -1
- package/components/status-bar/status-bar.vue +1 -1
- package/components/step/step.vue +1 -1
- package/components/stepper/stepper.vue +1 -1
- package/components/steps/steps.vue +1 -1
- package/components/sticky/sticky.vue +1 -1
- package/components/sticky-box/sticky-box.vue +1 -1
- package/components/swipe-action/swipe-action.vue +1 -1
- package/components/swiper-dot/swiper-dot.vue +1 -1
- package/components/switch/switch.vue +1 -1
- package/components/tab/tab.vue +1 -1
- package/components/tabbar/tabbar.vue +1 -1
- package/components/tabbar-item/tabbar-item.vue +1 -1
- package/components/tabbar-pit/tabbar-pit.vue +1 -1
- package/components/table/table.vue +1 -1
- package/components/table-cell/table-cell.vue +1 -1
- package/components/table-fixation/table-fixation.vue +1 -1
- package/components/table-row/table-row.vue +1 -1
- package/components/tabs/tabs.vue +1 -1
- package/components/tag/tag.vue +1 -1
- package/components/timeline/timeline.vue +1 -1
- package/components/timeline-item/timeline-item.vue +1 -1
- package/components/toast/toast.vue +2 -1
- package/components/toast-agent/toast-agent.vue +1 -1
- package/components/tree/README.md +0 -2
- package/components/tree/tree.d.ts +1 -1
- package/components/tree/tree.vue +36 -81
- package/components/tree-node/tree-node.vue +8 -4
- package/components/upload/upload.vue +1 -1
- package/components/upload-preview/upload-preview.vue +1 -1
- package/components/waterfall/waterfall.vue +1 -1
- package/components/waterfall-item/waterfall-item.vue +1 -1
- package/components/waterfall-load/waterfall-load.vue +1 -1
- package/components/watermark/watermark.vue +6 -8
- package/package.json +2 -1
- package/use/index.d.ts +1 -0
- package/use/index.js +1 -0
- package/use/useLockScroll.d.ts +8 -0
- package/use/useLockScroll.js +88 -0
- package/utils/file.d.ts +6 -0
- package/utils/file.js +33 -11
- package/utils/index.d.ts +2 -0
- package/utils/index.js +2 -0
- package/utils/log.d.ts +1 -0
- package/utils/log.js +4 -0
- package/utils/router.js +2 -1
- package/utils/system.d.ts +2 -0
- package/utils/system.js +6 -1
- package/utils/tree.d.ts +18 -0
- package/utils/tree.js +94 -0
- package/components/tree/utils.d.ts +0 -5
- 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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
137
|
+
popoutStyle: { type: null, required: false },
|
|
138
138
|
resettable: { type: Boolean, required: false },
|
|
139
|
-
rootStyle: { type:
|
|
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:
|
|
109
|
+
popoutStyle: { type: null, required: false },
|
|
110
110
|
resettable: { type: Boolean, required: false },
|
|
111
|
-
rootStyle: { type:
|
|
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 },
|
package/components/card/card.vue
CHANGED
|
@@ -53,7 +53,7 @@ export default _defineComponent({
|
|
|
53
53
|
},
|
|
54
54
|
__name: "card",
|
|
55
55
|
props: {
|
|
56
|
-
rootStyle: { type:
|
|
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 | 组件根元素类名
|
|
63
|
-
| root-style | 组件根元素样式
|
|
64
|
-
| model-value (v-model) | 选中项的值
|
|
65
|
-
| options | 可选项数据源
|
|
66
|
-
| field-keys | 自定义 `options` 中的字段
|
|
67
|
-
| hint-text | 未选中时的提示文案
|
|
68
|
-
| label-render | 自定义可选项渲染
|
|
69
|
-
| change-on-select <sup>1.14+</sup> | 点击每级选项都会触发变化
|
|
70
|
-
| all-levels <sup>1.23+</sup> | 是否绑定所有级别的值,而不单单是最后一级
|
|
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:
|
|
83
|
-
| change <sup>1.9.2+</sup> | 全部选项选择完成后触发 | (value:
|
|
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
|
|
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:
|
|
5
|
-
change: (value:
|
|
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:
|
|
9
|
-
onChange?: ((value:
|
|
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;
|