@tuya-miniapp/smart-ui 2.13.2-beta-0 → 2.13.2-beta-2
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/dist/action-sheet/README.md +631 -0
- package/dist/battery/README.md +102 -0
- package/dist/bottom-sheet/README.md +397 -0
- package/dist/button/README.md +205 -0
- package/dist/button/index.css +1 -1
- package/dist/button/index.wxss +1 -1
- package/dist/calendar/README.md +466 -0
- package/dist/cascader/README.md +235 -0
- package/dist/cell/README.md +240 -0
- package/dist/checkbox/README.md +359 -0
- package/dist/circle/README.md +116 -0
- package/dist/col/README.md +134 -0
- package/dist/collapse/README.md +223 -0
- package/dist/common/README.md +71 -0
- package/dist/config-provider/README.md +143 -0
- package/dist/count-down/README.md +194 -0
- package/dist/custom-keyboard/README.md +119 -0
- package/dist/datetime-picker/README.md +384 -0
- package/dist/dialog/README.md +412 -0
- package/dist/divider/README.md +100 -0
- package/dist/dropdown-menu/README.md +278 -0
- package/dist/empty/README.md +101 -0
- package/dist/field/README.md +439 -0
- package/dist/grid/README.md +197 -0
- package/dist/icon/README.md +143 -0
- package/dist/image/README.md +171 -0
- package/dist/index-bar/README.md +189 -0
- package/dist/loading/README.md +86 -0
- package/dist/nav-bar/README.md +378 -0
- package/dist/normal-slider/README.md +325 -0
- package/dist/notice-bar/README.md +216 -0
- package/dist/notify/README.md +120 -0
- package/dist/overlay/README.md +132 -0
- package/dist/picker/README.md +396 -0
- package/dist/popover/README.md +249 -0
- package/dist/popup/README.md +162 -0
- package/dist/progress/README.md +99 -0
- package/dist/radio/README.md +303 -0
- package/dist/rate/README.md +176 -0
- package/dist/search/README.md +235 -0
- package/dist/sidebar/README.md +160 -0
- package/dist/skeleton/README.md +98 -0
- package/dist/slider/README.md +366 -0
- package/dist/stepper/README.md +208 -0
- package/dist/sticky/README.md +124 -0
- package/dist/swipe-cell/README.md +172 -0
- package/dist/switch/README.md +204 -0
- package/dist/tab/README.md +414 -0
- package/dist/tabbar/README.md +333 -0
- package/dist/tag/README.md +184 -0
- package/dist/toast/README.md +220 -0
- package/dist/transition/README.md +114 -0
- package/dist/tree-select/README.md +199 -0
- package/lib/action-sheet/README.md +631 -0
- package/lib/battery/README.md +102 -0
- package/lib/bottom-sheet/README.md +397 -0
- package/lib/button/README.md +205 -0
- package/lib/button/index.css +1 -1
- package/lib/button/index.wxss +1 -1
- package/lib/calendar/README.md +466 -0
- package/lib/cascader/README.md +235 -0
- package/lib/cell/README.md +240 -0
- package/lib/checkbox/README.md +359 -0
- package/lib/circle/README.md +116 -0
- package/lib/col/README.md +134 -0
- package/lib/collapse/README.md +223 -0
- package/lib/common/README.md +71 -0
- package/lib/config-provider/README.md +143 -0
- package/lib/count-down/README.md +194 -0
- package/lib/custom-keyboard/README.md +119 -0
- package/lib/datetime-picker/README.md +384 -0
- package/lib/dialog/README.md +412 -0
- package/lib/divider/README.md +100 -0
- package/lib/dropdown-menu/README.md +278 -0
- package/lib/empty/README.md +101 -0
- package/lib/field/README.md +439 -0
- package/lib/grid/README.md +197 -0
- package/lib/icon/README.md +143 -0
- package/lib/image/README.md +171 -0
- package/lib/index-bar/README.md +189 -0
- package/lib/loading/README.md +86 -0
- package/lib/nav-bar/README.md +378 -0
- package/lib/normal-slider/README.md +325 -0
- package/lib/notice-bar/README.md +216 -0
- package/lib/notify/README.md +120 -0
- package/lib/overlay/README.md +132 -0
- package/lib/picker/README.md +396 -0
- package/lib/popover/README.md +249 -0
- package/lib/popup/README.md +162 -0
- package/lib/progress/README.md +99 -0
- package/lib/radio/README.md +303 -0
- package/lib/rate/README.md +176 -0
- package/lib/search/README.md +235 -0
- package/lib/sidebar/README.md +160 -0
- package/lib/skeleton/README.md +98 -0
- package/lib/slider/README.md +366 -0
- package/lib/stepper/README.md +208 -0
- package/lib/sticky/README.md +124 -0
- package/lib/swipe-cell/README.md +172 -0
- package/lib/switch/README.md +204 -0
- package/lib/tab/README.md +414 -0
- package/lib/tabbar/README.md +333 -0
- package/lib/tag/README.md +184 -0
- package/lib/toast/README.md +220 -0
- package/lib/transition/README.md +114 -0
- package/lib/tree-select/README.md +199 -0
- package/package.json +1 -1
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 反馈
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Toast 轻提示
|
|
6
|
+
|
|
7
|
+
### 介绍
|
|
8
|
+
|
|
9
|
+
在页面中间弹出黑色半透明提示,用于消息通知、加载提示、操作结果提示等场景。
|
|
10
|
+
|
|
11
|
+
### 引入
|
|
12
|
+
|
|
13
|
+
在`app.json`或`index.json`中引入组件,详细介绍见[快速上手](/material/smartui?comId=help-getting-started&appType=miniapp)。
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
"usingComponents": {
|
|
17
|
+
"smart-toast": "@tuya-miniapp/smart-ui/lib/toast/index"
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 代码演示
|
|
22
|
+
|
|
23
|
+
### 文字提示
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
import ToastInstance from '@tuya-miniapp/smart-ui/toast/toast';
|
|
27
|
+
|
|
28
|
+
ToastInstance('我是提示文案,建议不超过十五字~');
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```html
|
|
32
|
+
<smart-toast id="smart-toast" />
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 加载提示
|
|
36
|
+
|
|
37
|
+
使用 `ToastInstance.loading` 方法展示加载提示,通过 `forbidClick` 属性可以禁用背景点击,通过 `loadingType` 属性可以自定义加载图标类型。
|
|
38
|
+
|
|
39
|
+
```javascript
|
|
40
|
+
ToastInstance.loading({
|
|
41
|
+
message: '加载中...',
|
|
42
|
+
forbidClick: true,
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// 自定义加载图标
|
|
46
|
+
ToastInstance.loading({
|
|
47
|
+
message: '加载中...',
|
|
48
|
+
forbidClick: true,
|
|
49
|
+
loadingType: 'spinner',
|
|
50
|
+
});
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 成功/失败提示
|
|
54
|
+
|
|
55
|
+
```javascript
|
|
56
|
+
ToastInstance.success('成功文案');
|
|
57
|
+
ToastInstance.fail('失败文案');
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
### 警告提示
|
|
62
|
+
|
|
63
|
+
```js
|
|
64
|
+
ToastInstance.warn('警告文案');
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 动态更新提示
|
|
68
|
+
|
|
69
|
+
```javascript
|
|
70
|
+
const toast = ToastInstance.loading({
|
|
71
|
+
duration: 0, // 持续展示 toast
|
|
72
|
+
forbidClick: true,
|
|
73
|
+
message: '倒计时 3 秒',
|
|
74
|
+
selector: '#custom-selector',
|
|
75
|
+
width: 120,
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
let second = 3;
|
|
79
|
+
const timer = setInterval(() => {
|
|
80
|
+
second--;
|
|
81
|
+
if (second) {
|
|
82
|
+
toast.setData({
|
|
83
|
+
message: `倒计时 ${second} 秒`,
|
|
84
|
+
});
|
|
85
|
+
} else {
|
|
86
|
+
clearInterval(timer);
|
|
87
|
+
ToastInstance.clear();
|
|
88
|
+
}
|
|
89
|
+
}, 1000);
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
```html
|
|
93
|
+
<smart-toast id="custom-selector" />
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### OnClose 回调函数
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
ToastInstance({
|
|
100
|
+
type: 'success',
|
|
101
|
+
message: '提交成功',
|
|
102
|
+
onClose: () => {
|
|
103
|
+
console.log('执行OnClose函数');
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 自定义宽度
|
|
109
|
+
|
|
110
|
+
通过 `width` 属性可以自定义弹窗宽度。
|
|
111
|
+
|
|
112
|
+
```javascript
|
|
113
|
+
ToastInstance.loading({
|
|
114
|
+
message: '加载中...',
|
|
115
|
+
forbidClick: true,
|
|
116
|
+
width: 200,
|
|
117
|
+
});
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 位置设置
|
|
121
|
+
|
|
122
|
+
通过 `position` 属性可以设置提示的位置,可选值为 `top`、`middle`、`bottom`。
|
|
123
|
+
|
|
124
|
+
```javascript
|
|
125
|
+
// 底部位置
|
|
126
|
+
ToastInstance({
|
|
127
|
+
position: 'bottom',
|
|
128
|
+
message: '我是提示文案,建议不超过十五字~',
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
// 顶部位置
|
|
132
|
+
ToastInstance({
|
|
133
|
+
position: 'top',
|
|
134
|
+
message: '我是提示文案,建议不超过十五字~',
|
|
135
|
+
});
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
### 自定义颜色 `v2.8.0`
|
|
140
|
+
|
|
141
|
+
通过 `textColor` 属性可以自定义文字颜色,通过 `iconColor` 属性可以自定义图标颜色。
|
|
142
|
+
|
|
143
|
+
```javascript
|
|
144
|
+
// 自定义文字颜色
|
|
145
|
+
ToastInstance({
|
|
146
|
+
message: '我是提示文案,建议不超过十五字~',
|
|
147
|
+
textColor: '#1989FA',
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
// 自定义成功提示的颜色
|
|
151
|
+
ToastInstance.success({
|
|
152
|
+
message: '成功文案',
|
|
153
|
+
textColor: '#1989FA',
|
|
154
|
+
iconColor: '#1989FA',
|
|
155
|
+
});
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## API
|
|
159
|
+
|
|
160
|
+
### 方法
|
|
161
|
+
|
|
162
|
+
| 方法名 | 参数 | 返回值 | 介绍 |
|
|
163
|
+
| ---------- | ------------ | ---------- | --------- |
|
|
164
|
+
| ToastInstance | `options \| message` | toast 实例 | 展示提示 |
|
|
165
|
+
| ToastInstance.clear | `clearAll` | `void` | 关闭提示 |
|
|
166
|
+
| ToastInstance.fail | `options \| message` | toast 实例 | 展示失败提示 |
|
|
167
|
+
| ToastInstance.loading | `options \| message` | toast 实例 | 展示加载提示 |
|
|
168
|
+
| ToastInstance.resetDefaultOptions | - | `void` | 重置默认配置,对所有 Toast 生效 |
|
|
169
|
+
| ToastInstance.setDefaultOptions | `options` | `void` | 修改默认配置,对所有 Toast 生效 |
|
|
170
|
+
| ToastInstance.success | `options \| message` | toast 实例 | 展示成功提示 |
|
|
171
|
+
|
|
172
|
+
### Options
|
|
173
|
+
|
|
174
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
175
|
+
| ----------- | ------------------------ | ---------- | ------------- |
|
|
176
|
+
| context | 选择器的选择范围,可以传入自定义组件的 this 作为上下文 | _object_ | 当前页面 |
|
|
177
|
+
| duration | 展示时长(ms),值为 0 时,toast 不会消失 | _number_ | `2000` |
|
|
178
|
+
| forbidClick | 是否禁止背景点击 | _boolean_ | `false` |
|
|
179
|
+
| loadingType | 加载图标类型, 可选值为 `spinner` | _string_ | `circular` |
|
|
180
|
+
| mask | 是否显示遮罩层 | _boolean_ | `false` |
|
|
181
|
+
| message | 内容 | _string_ | `''` |
|
|
182
|
+
| textColor `v2.8.0` | 文字颜色 | _string_ | - |
|
|
183
|
+
| iconColor `v2.8.0` | 图标颜色 | _string_ | `white` |
|
|
184
|
+
| onClose | 关闭时的回调函数 | _Function_ | - |
|
|
185
|
+
| position | 位置,可选值为 `top` `middle` `bottom` | _string_ | `middle` |
|
|
186
|
+
| selector | 自定义选择器 | _string_ | `#smart-toast` |
|
|
187
|
+
| type | 提示类型,可选值为 `loading` `success` `fail` `warn` `html` (`^v2.0.0`支持`warn`) | _string_ | `text` |
|
|
188
|
+
| zIndex | z-index 层级 | _number_ | `1000` |
|
|
189
|
+
| width `v2.1.7` | 自定义弹窗宽度 | _number_ | `''` |
|
|
190
|
+
| nativeDisabled `v2.5.0` | 开启弹框期间是否禁用本地手势 | _boolean_ | `false` |
|
|
191
|
+
|
|
192
|
+
### Slot
|
|
193
|
+
|
|
194
|
+
| 名称 | 说明 |
|
|
195
|
+
| ---- | ---------- |
|
|
196
|
+
| - | 自定义内容 |
|
|
197
|
+
|
|
198
|
+
### 样式变量
|
|
199
|
+
|
|
200
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider&appType=miniapp)。
|
|
201
|
+
|
|
202
|
+
| 名称 | 默认值 | 描述 |
|
|
203
|
+
| ----------------------------- | -------------------------------------- | ---- |
|
|
204
|
+
| --toast-text-min-width `v2.12.0` | _96px_ | 文字提示最小宽度 |
|
|
205
|
+
| --toast-text-max-width `v2.12.0` | _280px_ | 文字提示最大宽度 |
|
|
206
|
+
| --toast-min-width `v2.6.0` | _56px_ `v2.6.0` _82px_ `v2.12.0` | 图标提示最小宽度 |
|
|
207
|
+
| --toast-max-width | _calc(100vw - 48px)_ `v2.0.0` _280px_ `v2.12.0` | 图标提示最大宽度 |
|
|
208
|
+
| --toast-font-size | _14px_ | 提示字体大小 |
|
|
209
|
+
| --toast-text-color | _#fff_ | 提示文本颜色 |
|
|
210
|
+
| --toast-line-height | _20px_ `v2.0.0` _16px_ `v2.12.0` | 提示行高 |
|
|
211
|
+
| --toast-background-color | _rgba(0,0,0,.7)_ `v2.0.0` _#5C5C5C_ `v2.12.0` | 提示背景颜色 |
|
|
212
|
+
| --toast-border-radius | _12px_ | 提示圆角半径 |
|
|
213
|
+
| --toast-border `v2.12.0` | _1px solid rgba(255, 255, 255, 0.05)_ | 提示边框 |
|
|
214
|
+
| --toast-box-shadow `v2.12.0` | _0 4px 12px rgba(0, 0, 0, 0.1), 0 16px 32px rgba(0, 0, 0, 0.12)_ | 提示阴影 |
|
|
215
|
+
| --toast-icon-size | _36px_ | 图标提示图标大小 |
|
|
216
|
+
| --toast-text-padding | _14px 16px_ | 文字提示内边距 |
|
|
217
|
+
| --toast-default-padding | _22px 14px 14px_ `v2.0.0` _19px 15px_ `v2.12.0` | 图标提示内边距 |
|
|
218
|
+
| --toast-default-width `@deprecated v2.12.0` | _56px_ | 提示默认宽度(已废弃,请使用 --toast-min-width) |
|
|
219
|
+
| --toast-default-min-height | _56px_ | 图标提示默认最小高度 |
|
|
220
|
+
| --toast-icon-text-padding-top `v2.12.0` | _8px_ | 图标提示文字上间距 |
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 展示
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Transition 动画
|
|
6
|
+
|
|
7
|
+
### 介绍
|
|
8
|
+
|
|
9
|
+
使元素从一种样式逐渐变化为另一种样式的效果。
|
|
10
|
+
|
|
11
|
+
### 引入
|
|
12
|
+
|
|
13
|
+
在`app.json`或`index.json`中引入组件,详细介绍见[快速上手](/material/smartui?comId=help-getting-started&appType=miniapp)。
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
"usingComponents": {
|
|
17
|
+
"smart-transition": "@tuya-miniapp/smart-ui/lib/transition/index"
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 代码演示
|
|
22
|
+
|
|
23
|
+
### 基础用法
|
|
24
|
+
|
|
25
|
+
将元素包裹在 transition 组件内,在元素展示/隐藏时,会有相应的过渡动画。
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<smart-transition show="{{ show }}" custom-class="block">内容</smart-transition>
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 动画类型
|
|
32
|
+
|
|
33
|
+
transition 组件内置了多种动画,可以通过`name`字段指定动画类型。
|
|
34
|
+
|
|
35
|
+
```html
|
|
36
|
+
<smart-transition name="fade-up" />
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 高级用法
|
|
40
|
+
|
|
41
|
+
可以通过外部样式类自定义过渡效果,还可以定制进入和移出的持续时间。
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<smart-transition
|
|
45
|
+
show="{{ show }}"
|
|
46
|
+
name=""
|
|
47
|
+
duration="{{ { enter: 300, leave: 1000 } }}"
|
|
48
|
+
enter-class="smart-enter-class"
|
|
49
|
+
enter-active-class="smart-enter-active-class"
|
|
50
|
+
leave-active-class="smart-leave-active-class"
|
|
51
|
+
leave-to-class="smart-leave-to-class"
|
|
52
|
+
/>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
```css
|
|
56
|
+
.smart-enter-active-class,
|
|
57
|
+
.smart-leave-active-class {
|
|
58
|
+
transition-property: background-color, transform;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.smart-enter-class,
|
|
62
|
+
.smart-leave-to-class {
|
|
63
|
+
background-color: red;
|
|
64
|
+
transform: rotate(-360deg) translate3d(-100%, -100%, 0);
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## API
|
|
69
|
+
|
|
70
|
+
### Props
|
|
71
|
+
|
|
72
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
73
|
+
| ------------ | -------------------- | ------------------ | ------ |
|
|
74
|
+
| custom-style | 自定义样式 | _string_ | - |
|
|
75
|
+
| duration | 动画时长,单位为毫秒 | _number \| object_ | `300` |
|
|
76
|
+
| name | 动画类型 | _string_ | `fade` |
|
|
77
|
+
| show | 是否展示组件 | _boolean_ | `true` |
|
|
78
|
+
|
|
79
|
+
### Events
|
|
80
|
+
|
|
81
|
+
| 事件名 | 说明 | 参数 |
|
|
82
|
+
| ----------------- | ---------- | ---- |
|
|
83
|
+
| bind:after-enter | 进入后触发 | - |
|
|
84
|
+
| bind:after-leave | 离开后触发 | - |
|
|
85
|
+
| bind:before-enter | 进入前触发 | - |
|
|
86
|
+
| bind:before-leave | 离开前触发 | - |
|
|
87
|
+
| bind:enter | 进入中触发 | - |
|
|
88
|
+
| bind:leave | 离开中触发 | - |
|
|
89
|
+
|
|
90
|
+
### 外部样式类
|
|
91
|
+
|
|
92
|
+
| 类名 | 说明 |
|
|
93
|
+
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
94
|
+
| custom-class | 根节点样式类 |
|
|
95
|
+
| enter-active-class | 定义进入过渡生效时的状态。在整个进入过渡的阶段中应用,在元素被插入之前生效,在过渡/动画完成之后移除。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。 |
|
|
96
|
+
| enter-class | 定义进入过渡的开始状态。在元素被插入之前生效,在元素被插入之后的下一帧移除。 |
|
|
97
|
+
| enter-to-class | 定义进入过渡的结束状态。在元素被插入之后下一帧生效 (与此同时 enter-class 被移除),在过渡/动画完成之后移除。 |
|
|
98
|
+
| leave-active-class | 定义离开过渡生效时的状态。在整个离开过渡的阶段中应用,在离开过渡被触发时立刻生效,在过渡/动画完成之后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。 |
|
|
99
|
+
| leave-class | 定义离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。 |
|
|
100
|
+
| leave-to-class | 定义离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 leave-class 被删除),在过渡/动画完成之后移除。 |
|
|
101
|
+
|
|
102
|
+
### 动画类型
|
|
103
|
+
|
|
104
|
+
| 名称 | 说明 |
|
|
105
|
+
| ----------- | -------- |
|
|
106
|
+
| fade | 淡入 |
|
|
107
|
+
| fade-down | 下滑淡入 |
|
|
108
|
+
| fade-left | 左滑淡入 |
|
|
109
|
+
| fade-right | 右滑淡入 |
|
|
110
|
+
| fade-up | 上滑淡入 |
|
|
111
|
+
| slide-down | 下滑进入 |
|
|
112
|
+
| slide-left | 左滑进入 |
|
|
113
|
+
| slide-right | 右滑进入 |
|
|
114
|
+
| slide-up | 上滑进入 |
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 数据录入
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# TreeSelect 分类选择
|
|
6
|
+
|
|
7
|
+
### 介绍
|
|
8
|
+
|
|
9
|
+
用于从一组相关联的数据集合中进行选择。
|
|
10
|
+
|
|
11
|
+
### 引入
|
|
12
|
+
|
|
13
|
+
在`app.json`或`index.json`中引入组件,详细介绍见[快速上手](/material/smartui?comId=help-getting-started&appType=miniapp)。
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
"usingComponents": {
|
|
17
|
+
"smart-tree-select": "@tuya-miniapp/smart-ui/lib/tree-select/index"
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 代码演示
|
|
22
|
+
|
|
23
|
+
### 单选模式
|
|
24
|
+
|
|
25
|
+
可以在任意位置上使用 smart-tree-select 标签。传入对应的数据即可。此组件支持单选或多选,具体行为完全基于事件 click-item 的实现逻辑如何为属性 active-id 赋值,当 active-id 为数组时即为多选状态。
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<smart-tree-select
|
|
29
|
+
items="{{ items }}"
|
|
30
|
+
main-active-index="{{ mainActiveIndex }}"
|
|
31
|
+
active-id="{{ activeId }}"
|
|
32
|
+
bind:click-nav="onClickNav"
|
|
33
|
+
bind:click-item="onClickItem"
|
|
34
|
+
/>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
Page({
|
|
39
|
+
data: {
|
|
40
|
+
mainActiveIndex: 0,
|
|
41
|
+
activeId: null,
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
onClickNav({ detail = {} }) {
|
|
45
|
+
this.setData({
|
|
46
|
+
mainActiveIndex: detail.index || 0,
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
onClickItem({ detail = {} }) {
|
|
51
|
+
const activeId = this.data.activeId === detail.id ? null : detail.id;
|
|
52
|
+
|
|
53
|
+
this.setData({ activeId });
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### 多选模式
|
|
59
|
+
|
|
60
|
+
```html
|
|
61
|
+
<smart-tree-select
|
|
62
|
+
items="{{ items }}"
|
|
63
|
+
main-active-index="{{ mainActiveIndex }}"
|
|
64
|
+
active-id="{{ activeId }}"
|
|
65
|
+
max="{{ max }}"
|
|
66
|
+
bind:click-nav="onClickNav"
|
|
67
|
+
bind:click-item="onClickItem"
|
|
68
|
+
/>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
72
|
+
Page({
|
|
73
|
+
data: {
|
|
74
|
+
mainActiveIndex: 0,
|
|
75
|
+
activeId: [],
|
|
76
|
+
max: 2,
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
onClickNav({ detail = {} }) {
|
|
80
|
+
this.setData({
|
|
81
|
+
mainActiveIndex: detail.index || 0,
|
|
82
|
+
});
|
|
83
|
+
},
|
|
84
|
+
|
|
85
|
+
onClickItem({ detail = {} }) {
|
|
86
|
+
const { activeId } = this.data;
|
|
87
|
+
|
|
88
|
+
const index = activeId.indexOf(detail.id);
|
|
89
|
+
if (index > -1) {
|
|
90
|
+
activeId.splice(index, 1);
|
|
91
|
+
} else {
|
|
92
|
+
activeId.push(detail.id);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
this.setData({ activeId });
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 自定义内容
|
|
101
|
+
|
|
102
|
+
```html
|
|
103
|
+
<smart-tree-select
|
|
104
|
+
items="{{ items }}"
|
|
105
|
+
height="55vw"
|
|
106
|
+
main-active-index="{{ mainActiveIndex }}"
|
|
107
|
+
active-id="{{ activeId }}"
|
|
108
|
+
bind:click-nav="onClickNav"
|
|
109
|
+
bind:click-item="onClickItem"
|
|
110
|
+
>
|
|
111
|
+
<image src="https://static1.tuyacn.com/static/tuya-miniapp-doc/_next/static/images/logo-small.png" slot="content" />
|
|
112
|
+
</smart-tree-select>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## API
|
|
116
|
+
|
|
117
|
+
### Props
|
|
118
|
+
|
|
119
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
120
|
+
| ----------------- | ----------------------------- | --------------------------- | ----------- |
|
|
121
|
+
| active-id | 右侧选中项的 id,支持传入数组 | _string \| number \| Array_ | `0` |
|
|
122
|
+
| height | 高度,默认单位为`px` | _number \| string_ | `300` |
|
|
123
|
+
| items | 分类显示所需的数据 | _Array_ | `[]` |
|
|
124
|
+
| main-active-index | 左侧选中项的索引 | _number_ | `0` |
|
|
125
|
+
| max | 右侧项最大选中个数 | _number_ | _Infinity_ |
|
|
126
|
+
| selected-icon | 自定义右侧栏选中状态的图标 | _string_ | `Checkmark` |
|
|
127
|
+
|
|
128
|
+
### Events
|
|
129
|
+
|
|
130
|
+
| 事件名 | 说明 | 回调参数 |
|
|
131
|
+
| --------------- | -------------------------------- | -------------------------------------- |
|
|
132
|
+
| bind:click-item | 右侧选择项被点击时,会触发的事件 | event.detail: 该点击项的数据 |
|
|
133
|
+
| bind:click-nav | 左侧导航点击时,触发的事件 | event.detail.index:被点击的导航的索引 |
|
|
134
|
+
|
|
135
|
+
### Slots
|
|
136
|
+
|
|
137
|
+
| 名称 | 说明 |
|
|
138
|
+
| ------- | ------------------------------------------------ |
|
|
139
|
+
| content | 自定义右侧区域内容,如果存在 items,则插入在顶部 |
|
|
140
|
+
|
|
141
|
+
### items 数据结构
|
|
142
|
+
|
|
143
|
+
`items` 整体为一个数组,数组内包含一系列描述分类的对象。每个分类里,text 表示当前分类的名称。options 表示分类里的可选项,为数组结构,id 被用来唯一标识每个选项。
|
|
144
|
+
|
|
145
|
+
```javascript
|
|
146
|
+
[
|
|
147
|
+
{
|
|
148
|
+
// 导航名称
|
|
149
|
+
text: '所有城市',
|
|
150
|
+
// 导航名称右上角徽标
|
|
151
|
+
badge: 3,
|
|
152
|
+
// 是否在导航名称右上角显示小红点
|
|
153
|
+
dot: true,
|
|
154
|
+
// 禁用选项
|
|
155
|
+
disabled: false,
|
|
156
|
+
// 该导航下所有的可选项
|
|
157
|
+
options: [
|
|
158
|
+
{
|
|
159
|
+
// 名称
|
|
160
|
+
text: '温州',
|
|
161
|
+
// id,作为匹配选中状态的标识
|
|
162
|
+
id: 1,
|
|
163
|
+
// 禁用选项
|
|
164
|
+
disabled: true,
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
text: '杭州',
|
|
168
|
+
id: 2,
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
];
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### 外部样式类
|
|
176
|
+
|
|
177
|
+
| 类名 | 说明 |
|
|
178
|
+
| ---------------------- | ------------------ |
|
|
179
|
+
| content-active-class | 右侧选项选中样式类 |
|
|
180
|
+
| content-disabled-class | 右侧选项禁用样式类 |
|
|
181
|
+
| content-item-class | 右侧选项样式类 |
|
|
182
|
+
| main-active-class | 左侧选项选中样式类 |
|
|
183
|
+
| main-disabled-class | 左侧选项禁用样式类 |
|
|
184
|
+
| main-item-class | 左侧选项样式类 |
|
|
185
|
+
|
|
186
|
+
### 样式变量
|
|
187
|
+
|
|
188
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider&appType=miniapp)。
|
|
189
|
+
|
|
190
|
+
| 名称 | 默认值 | 描述 |
|
|
191
|
+
| ----------------------------- | -------------------------------------- | ---- |
|
|
192
|
+
| --tree-select-font-color | _var(--app-B6-N1, rgba(0, 0, 0, 1))_ | 树形选择字体颜色 |
|
|
193
|
+
| --tree-select-font-size | _14px_ | 树形选择字体大小 |
|
|
194
|
+
| --tree-select-nav-background-color | _var(--app-B3, #ffffff)_ | 树形选择导航背景颜色 |
|
|
195
|
+
| --tree-select-content-background-color | _var(--app-B3, #ffffff)_ | 树形选择内容背景颜色 |
|
|
196
|
+
| --tree-select-nav-item-padding | _@padding-sm @padding-xs @padding-sm @padding-sm_ | 树形选择导航项内边距 |
|
|
197
|
+
| --tree-select-item-height | _44px_ | 树形选择项高度 |
|
|
198
|
+
| --tree-select-item-active-color | _#ee0a24_ | 活动状态选择项颜色 |
|
|
199
|
+
| --tree-select-item-disabled-color | _var(--app-B6-N4, rgba(0, 0, 0, 0.4))_ | 禁用状态选择项颜色 |
|