@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,223 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 展示
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Collapse 折叠面板
|
|
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-collapse": "@tuya-miniapp/smart-ui/lib/collapse/index",
|
|
18
|
+
"smart-collapse-item": "@tuya-miniapp/smart-ui/lib/collapse-item/index"
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 代码演示
|
|
23
|
+
|
|
24
|
+
### 基础用法
|
|
25
|
+
|
|
26
|
+
通过`value`控制展开的面板列表,`activeNames`为数组格式。
|
|
27
|
+
|
|
28
|
+
```html
|
|
29
|
+
<smart-collapse value="{{ activeNames }}" bind:change="onChange">
|
|
30
|
+
<smart-collapse-item title="标题1" name="1">
|
|
31
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
32
|
+
</smart-collapse-item>
|
|
33
|
+
<smart-collapse-item title="标题2" name="2">
|
|
34
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
35
|
+
</smart-collapse-item>
|
|
36
|
+
<smart-collapse-item title="标题3" name="3" disabled>
|
|
37
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
38
|
+
</smart-collapse-item>
|
|
39
|
+
</smart-collapse>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
Page({
|
|
44
|
+
data: {
|
|
45
|
+
activeNames: ['1'],
|
|
46
|
+
},
|
|
47
|
+
onChange(event) {
|
|
48
|
+
this.setData({
|
|
49
|
+
activeNames: event.detail,
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 手风琴
|
|
56
|
+
|
|
57
|
+
通过`accordion`可以设置为手风琴模式,最多展开一个面板,此时`activeName`为字符串格式。
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<smart-collapse accordion value="{{ activeName }}" bind:change="onChange">
|
|
61
|
+
<smart-collapse-item title="标题1" name="1">
|
|
62
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
63
|
+
</smart-collapse-item>
|
|
64
|
+
<smart-collapse-item title="标题2" name="2">
|
|
65
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
66
|
+
</smart-collapse-item>
|
|
67
|
+
<smart-collapse-item title="标题3" name="3">
|
|
68
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
69
|
+
</smart-collapse-item>
|
|
70
|
+
</smart-collapse>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
```javascript
|
|
74
|
+
Page({
|
|
75
|
+
data: {
|
|
76
|
+
activeName: '1',
|
|
77
|
+
},
|
|
78
|
+
onChange(event) {
|
|
79
|
+
this.setData({
|
|
80
|
+
activeName: event.detail,
|
|
81
|
+
});
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 事件监听
|
|
87
|
+
|
|
88
|
+
`smart-collapse` 提供了 `change`, `open` 和 `close` 事件。`change` 事件在面板切换时触发,`open` 事件在面板展开时触发,`close` 事件在面板关闭时触发。
|
|
89
|
+
|
|
90
|
+
```html
|
|
91
|
+
<smart-collapse
|
|
92
|
+
value="{{ activeNames }}"
|
|
93
|
+
bind:change="onChange"
|
|
94
|
+
bind:open="onOpen"
|
|
95
|
+
bind:close="onClose"
|
|
96
|
+
>
|
|
97
|
+
<smart-collapse-item title="标题1" name="1">
|
|
98
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
99
|
+
</smart-collapse-item>
|
|
100
|
+
<smart-collapse-item title="标题2" name="2">
|
|
101
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
102
|
+
</smart-collapse-item>
|
|
103
|
+
<smart-collapse-item title="标题3" name="3">
|
|
104
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
105
|
+
</smart-collapse-item>
|
|
106
|
+
</smart-collapse>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
```javascript
|
|
110
|
+
Page({
|
|
111
|
+
data: {
|
|
112
|
+
activeNames: ['1'],
|
|
113
|
+
},
|
|
114
|
+
onChange(event) {
|
|
115
|
+
this.setData({
|
|
116
|
+
activeNames: event.detail,
|
|
117
|
+
});
|
|
118
|
+
},
|
|
119
|
+
onOpen(event) {
|
|
120
|
+
Toast(`展开: ${event.detail}`);
|
|
121
|
+
},
|
|
122
|
+
onClose(event) {
|
|
123
|
+
Toast(`关闭: ${event.detail}`);
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 自定义标题内容
|
|
129
|
+
|
|
130
|
+
```html
|
|
131
|
+
<smart-collapse value="{{ activeNames }}" bind:change="onChange">
|
|
132
|
+
<smart-collapse-item name="1">
|
|
133
|
+
<view slot="title">标题1<smart-icon name="question-o" /></view>
|
|
134
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
135
|
+
</smart-collapse-item>
|
|
136
|
+
<smart-collapse-item title="标题2" name="2" icon="shop-o">
|
|
137
|
+
代码是写出来给人看的,附带能在机器上运行
|
|
138
|
+
</smart-collapse-item>
|
|
139
|
+
</smart-collapse>
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
```javascript
|
|
143
|
+
Page({
|
|
144
|
+
data: {
|
|
145
|
+
activeNames: ['1'],
|
|
146
|
+
},
|
|
147
|
+
onChange(event) {
|
|
148
|
+
this.setData({
|
|
149
|
+
activeNames: event.detail,
|
|
150
|
+
});
|
|
151
|
+
},
|
|
152
|
+
});
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## API
|
|
156
|
+
|
|
157
|
+
### Collapse Props
|
|
158
|
+
|
|
159
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
160
|
+
| --------- | ------------------- | ---------------------------------------------------------------------- | ------- |
|
|
161
|
+
| accordion | 是否开启手风琴模式 | _boolean_ | `false` |
|
|
162
|
+
| border | 是否显示外边框 | _boolean_ | `true` |
|
|
163
|
+
| value | 当前展开面板的 name | 非手风琴模式:_(string \| number)[]_<br>手风琴模式:_string \| number_ | - |
|
|
164
|
+
|
|
165
|
+
### Collapse Event
|
|
166
|
+
|
|
167
|
+
| 事件名 | 说明 | 参数 |
|
|
168
|
+
| ------ | -------------- | ------------------------------- |
|
|
169
|
+
| change | 切换面板时触发 | activeNames: _string \| Array_ |
|
|
170
|
+
| close | 关闭面板时触发 | currentName: _string \| number_ |
|
|
171
|
+
| open | 展开面板时触发 | currentName: _string \| number_ |
|
|
172
|
+
|
|
173
|
+
### CollapseItem Props
|
|
174
|
+
|
|
175
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
176
|
+
| --------- | ---------------------------------------------------------- | ------------------ | ------- |
|
|
177
|
+
| border | 是否显示内边框 | _boolean_ | `true` |
|
|
178
|
+
| clickable | 是否开启点击反馈 | _boolean_ | `false` |
|
|
179
|
+
| disabled | 是否禁用面板 | _boolean_ | `false` |
|
|
180
|
+
| icon | 标题栏左侧图标svg值或图片链接,可选值见 [Icon 组件](/material/smartui?comId=icon&appType=miniapp) | _string_ | - |
|
|
181
|
+
| is-link | 是否展示标题栏右侧箭头并开启点击反馈 | _boolean_ | `true` |
|
|
182
|
+
| label | 标题栏描述信息 | _string_ | - |
|
|
183
|
+
| name | 唯一标识符,默认为索引值 | _string \| number_ | `index` |
|
|
184
|
+
| size | 标题栏大小,可选值为`large` | _string_ | - |
|
|
185
|
+
| title | 标题栏左侧内容 | _string \| number_ | - |
|
|
186
|
+
| value | 标题栏右侧内容 | _string \| number_ | - |
|
|
187
|
+
|
|
188
|
+
### CollapseItem Slot
|
|
189
|
+
|
|
190
|
+
| 名称 | 说明 |
|
|
191
|
+
| ---------- | ------------------------------------------------------------------------ |
|
|
192
|
+
| - | 面板内容 |
|
|
193
|
+
| icon | 自定义`icon` |
|
|
194
|
+
| right-icon | 自定义右侧按钮,默认是`arrow`, 需要将 `is-link` 设置为 `false`, 才会生效 |
|
|
195
|
+
| title | 自定义`title` |
|
|
196
|
+
| value | 自定义显示内容 |
|
|
197
|
+
|
|
198
|
+
### Collapse 外部样式类
|
|
199
|
+
|
|
200
|
+
| 类名 | 说明 |
|
|
201
|
+
| ------------ | ------------ |
|
|
202
|
+
| custom-class | 根节点样式类 |
|
|
203
|
+
|
|
204
|
+
### CollapseItem 外部样式类
|
|
205
|
+
|
|
206
|
+
| 类名 | 说明 |
|
|
207
|
+
| ------------- | ------------ |
|
|
208
|
+
| content-class | 内容样式类 |
|
|
209
|
+
| custom-class | 根节点样式类 |
|
|
210
|
+
|
|
211
|
+
### 样式变量
|
|
212
|
+
|
|
213
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider&appType=miniapp)。
|
|
214
|
+
|
|
215
|
+
| 名称 | 默认值 | 描述 |
|
|
216
|
+
| --------------------------------------------- | -------------------------------------------- | ------------------------------------------ |
|
|
217
|
+
| --collapse-item-transition-duration | _0.3s_ | 折叠项过渡持续时间 |
|
|
218
|
+
| --collapse-item-content-padding | _15px_ | 折叠项内容内边距 |
|
|
219
|
+
| --collapse-item-content-font-size | _13px_ | 折叠项内容字体大小 |
|
|
220
|
+
| --collapse-item-content-line-height | _1.5_ | 折叠项内容行高 |
|
|
221
|
+
| --collapse-item-content-text-color | _#969799_ | 折叠项内容文本颜色 |
|
|
222
|
+
| --collapse-item-content-background-color | _var(--app-B6, #fff)_ | 折叠项内容背景颜色 |
|
|
223
|
+
| --collapse-item-title-disabled-color | _#c8c9cc_ | 折叠项标题禁用状态颜色 |
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# 内置样式
|
|
2
|
+
|
|
3
|
+
### 介绍
|
|
4
|
+
|
|
5
|
+
Smart UI 中默认包含了一些常用样式,可以直接通过 className 的方式使用。
|
|
6
|
+
|
|
7
|
+
### 引入
|
|
8
|
+
|
|
9
|
+
在 app.wxss 中引入内置样式。
|
|
10
|
+
|
|
11
|
+
```css
|
|
12
|
+
@import '@tuya-miniapp/smart-ui/common/index.wxss';
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 代码演示
|
|
16
|
+
|
|
17
|
+
### 文字省略
|
|
18
|
+
|
|
19
|
+
当文本内容长度超过容器最大宽度时,自动省略多余的文本。
|
|
20
|
+
|
|
21
|
+
```xml
|
|
22
|
+
<view class="smart-ellipsis">
|
|
23
|
+
这是一段宽度限制 250px 的文字,后面的内容会省略。
|
|
24
|
+
</view>
|
|
25
|
+
|
|
26
|
+
<!-- 最多显示两行 -->
|
|
27
|
+
<view class="smart-multi-ellipsis--l2">
|
|
28
|
+
这是一段最多显示两行的文字,后面的内容会省略。
|
|
29
|
+
</view>
|
|
30
|
+
|
|
31
|
+
<!-- 最多显示三行 -->
|
|
32
|
+
<view class="smart-multi-ellipsis--l3">
|
|
33
|
+
这是一段最多显示三行的文字,后面的内容会省略。
|
|
34
|
+
</view>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 1px 边框
|
|
38
|
+
|
|
39
|
+
为元素添加 Retina 屏幕下的 1px 边框(即 hairline),基于伪类 transform 实现。
|
|
40
|
+
|
|
41
|
+
```xml
|
|
42
|
+
<!-- 上边框 -->
|
|
43
|
+
<view class="smart-hairline--top"></view>
|
|
44
|
+
|
|
45
|
+
<!-- 下边框 -->
|
|
46
|
+
<view class="smart-hairline--bottom"></view>
|
|
47
|
+
|
|
48
|
+
<!-- 左边框 -->
|
|
49
|
+
<view class="smart-hairline--left"></view>
|
|
50
|
+
|
|
51
|
+
<!-- 右边框 -->
|
|
52
|
+
<view class="smart-hairline--right"></view>
|
|
53
|
+
|
|
54
|
+
<!-- 上下边框 -->
|
|
55
|
+
<view class="smart-hairline--top-bottom"></view>
|
|
56
|
+
|
|
57
|
+
<!-- 全边框 -->
|
|
58
|
+
<view class="smart-hairline--surround"></view>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 全局字体
|
|
62
|
+
|
|
63
|
+
推荐在 app.wxss 中设置以下全局字体,以保证在不同设备上提供最佳的视觉体验。
|
|
64
|
+
|
|
65
|
+
```css
|
|
66
|
+
page {
|
|
67
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica,
|
|
68
|
+
Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei',
|
|
69
|
+
sans-serif;
|
|
70
|
+
}
|
|
71
|
+
```
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 通用
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# ConfigProvider 全局配置
|
|
6
|
+
|
|
7
|
+
### 介绍
|
|
8
|
+
|
|
9
|
+
用于配置 Smart UI 组件的主题样式。
|
|
10
|
+
* [ConfigProvider 组件最佳实践](https://github.com/Tuya-Community/miniapp-smart-ui/wiki/ConfigProvider-%E7%BB%84%E4%BB%B6%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5)
|
|
11
|
+
|
|
12
|
+
### 引入
|
|
13
|
+
|
|
14
|
+
在`app.json`或`index.json`中引入组件,详细介绍见[快速上手](/material/smartui?comId=help-getting-started&appType=miniapp)。
|
|
15
|
+
|
|
16
|
+
```json
|
|
17
|
+
"usingComponents": {
|
|
18
|
+
"smart-config-provider": "@tuya-miniapp/smart-ui/lib/config-provider/index"
|
|
19
|
+
}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 定制主题
|
|
23
|
+
|
|
24
|
+
### 介绍
|
|
25
|
+
|
|
26
|
+
Smart UI 组件通过丰富的 [CSS 变量](https://developer.mozilla.org/zh-CN/docs/Web/CSS/Using_CSS_custom_properties) 来组织样式,通过覆盖这些 CSS 变量,可以实现**定制主题、动态切换主题**等效果。
|
|
27
|
+
|
|
28
|
+
#### 示例
|
|
29
|
+
|
|
30
|
+
以 Button 组件为例,查看组件的样式,可以看到 `.smart-button--primary` 类名上存在以下变量:
|
|
31
|
+
|
|
32
|
+
```css
|
|
33
|
+
.smart-button--primary {
|
|
34
|
+
color: var(--button-primary-color, #fff);
|
|
35
|
+
background: var(--button-primary-background-color, #07c160);
|
|
36
|
+
border: var(--button-border-width, 1px) solid var(
|
|
37
|
+
--button-primary-border-color,
|
|
38
|
+
#07c160
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 自定义 CSS 变量
|
|
44
|
+
|
|
45
|
+
#### 通过 CSS 覆盖
|
|
46
|
+
|
|
47
|
+
你可以直接在代码中覆盖这些 CSS 变量,Button 组件的样式会随之发生改变:
|
|
48
|
+
|
|
49
|
+
```css
|
|
50
|
+
/* 添加这段样式后,Primary Button 会变成红色 */
|
|
51
|
+
page {
|
|
52
|
+
--button-primary-background-color: red;
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### 通过 ConfigProvider 覆盖
|
|
57
|
+
|
|
58
|
+
`ConfigProvider` 组件提供了覆盖 CSS 变量的能力,你需要在组件节点外包裹一个 `ConfigProvider` 组件,并通过 `theme-vars` 属性来配置一些主题变量,其入参就是组件的CSS 变量变成驼峰形式。
|
|
59
|
+
|
|
60
|
+
```html
|
|
61
|
+
<view class="demo-buttons">
|
|
62
|
+
<smart-button type="primary" data-color="red" color="red" bind:click="onChange">
|
|
63
|
+
设置为红色
|
|
64
|
+
</smart-button>
|
|
65
|
+
<smart-button type="primary" data-color="green" color="green" bind:click="onChange">
|
|
66
|
+
设置为绿色
|
|
67
|
+
</smart-button>
|
|
68
|
+
<smart-button type="primary" data-color="blue" color="blue" bind:click="onChange">
|
|
69
|
+
设置为蓝色
|
|
70
|
+
</smart-button>
|
|
71
|
+
</view>
|
|
72
|
+
<smart-config-provider theme-vars="{{ themeVars }}">
|
|
73
|
+
<smart-button type="primary">主按钮</smart-button>
|
|
74
|
+
</smart-config-provider>
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```js
|
|
78
|
+
Page({
|
|
79
|
+
data: {
|
|
80
|
+
themeVars: {
|
|
81
|
+
buttonPrimaryBorderColor: 'red',
|
|
82
|
+
buttonPrimaryBackgroundColor: 'red',
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
onChange(event) {
|
|
87
|
+
const { color } = event.currentTarget.dataset;
|
|
88
|
+
this.setData({
|
|
89
|
+
themeVars: {
|
|
90
|
+
buttonPrimaryBorderColor: color,
|
|
91
|
+
buttonPrimaryBackgroundColor: color,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 主题切换 `v2.8.0`
|
|
99
|
+
|
|
100
|
+
`ConfigProvider` 组件支持通过 `theme` 属性来切换明暗主题,可选值为 `light` 和 `dark`。
|
|
101
|
+
|
|
102
|
+
```html
|
|
103
|
+
<view class="demo-buttons">
|
|
104
|
+
<smart-button type="primary" data-theme="light" bind:click="onThemeChange">
|
|
105
|
+
浅色主题
|
|
106
|
+
</smart-button>
|
|
107
|
+
<text>当前主题:{{ currentTheme }}</text>
|
|
108
|
+
<smart-button type="primary" data-theme="dark" bind:click="onThemeChange">
|
|
109
|
+
深色主题
|
|
110
|
+
</smart-button>
|
|
111
|
+
</view>
|
|
112
|
+
<smart-config-provider theme="{{ currentTheme }}">
|
|
113
|
+
<smart-cell-group>
|
|
114
|
+
<smart-cell title="标题" value="内容" />
|
|
115
|
+
<smart-cell title="标题" value="内容" label="详细信息" is-link />
|
|
116
|
+
</smart-cell-group>
|
|
117
|
+
</smart-config-provider>
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
```js
|
|
121
|
+
Page({
|
|
122
|
+
data: {
|
|
123
|
+
currentTheme: 'light',
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
onThemeChange(event) {
|
|
127
|
+
const { theme } = event.currentTarget.dataset;
|
|
128
|
+
this.setData({
|
|
129
|
+
currentTheme: theme,
|
|
130
|
+
});
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## API
|
|
136
|
+
|
|
137
|
+
### Props
|
|
138
|
+
|
|
139
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
140
|
+
| ---------- | -------------- | -------- | ------ |
|
|
141
|
+
| theme-vars | 自定义主题变量 | _object_ | - |
|
|
142
|
+
| theme `v2.8.0` | 主题模式 | _'light'\/'dark'_ | - |
|
|
143
|
+
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
---
|
|
2
|
+
category: 反馈
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# CountDown 倒计时
|
|
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-count-down": "@tuya-miniapp/smart-ui/lib/count-down/index"
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 代码演示
|
|
22
|
+
|
|
23
|
+
### 基本用法
|
|
24
|
+
|
|
25
|
+
`time`属性表示倒计时总时长,单位为毫秒。
|
|
26
|
+
|
|
27
|
+
```html
|
|
28
|
+
<smart-count-down time="{{ time }}" />
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```js
|
|
32
|
+
Page({
|
|
33
|
+
data: {
|
|
34
|
+
time: 30 * 60 * 60 * 1000,
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### 自定义格式
|
|
40
|
+
|
|
41
|
+
通过`format`属性设置倒计时文本的内容。
|
|
42
|
+
|
|
43
|
+
```html
|
|
44
|
+
<smart-count-down time="{{ time }}" format="DD 天 HH 时 mm 分 ss 秒" />
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### 毫秒级渲染
|
|
48
|
+
|
|
49
|
+
倒计时默认每秒渲染一次,设置`millisecond`属性可以开启毫秒级渲染。
|
|
50
|
+
|
|
51
|
+
```html
|
|
52
|
+
<smart-count-down millisecond time="{{ time }}" format="HH:mm:ss:SSS" />
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 自定义样式
|
|
56
|
+
|
|
57
|
+
设置`use-slot`属性后可以自定义倒计时样式,需要通过`bind:change`事件获取`timeData`对象并自行渲染,格式见下方表格。
|
|
58
|
+
|
|
59
|
+
```html
|
|
60
|
+
<smart-count-down use-slot time="{{ time }}" bind:change="onChange">
|
|
61
|
+
<text class="item">{{ timeData.hours }}</text>
|
|
62
|
+
<text class="item">{{ timeData.minutes }}</text>
|
|
63
|
+
<text class="item">{{ timeData.seconds }}</text>
|
|
64
|
+
</smart-count-down>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
Page({
|
|
69
|
+
data: {
|
|
70
|
+
time: 30 * 60 * 60 * 1000,
|
|
71
|
+
timeData: {},
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
onChange(e) {
|
|
75
|
+
this.setData({
|
|
76
|
+
timeData: e.detail,
|
|
77
|
+
});
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
```css
|
|
83
|
+
.item {
|
|
84
|
+
display: inline-block;
|
|
85
|
+
width: 22px;
|
|
86
|
+
margin-right: 5px;
|
|
87
|
+
color: #fff;
|
|
88
|
+
font-size: 12px;
|
|
89
|
+
text-align: center;
|
|
90
|
+
background-color: #1989fa;
|
|
91
|
+
border-radius: 2px;
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 手动控制
|
|
96
|
+
|
|
97
|
+
通过 `selectComponent` 选择器获取到组件实例后,可以调用`start`、`pause`、`reset`方法。
|
|
98
|
+
|
|
99
|
+
```html
|
|
100
|
+
<smart-count-down
|
|
101
|
+
class="control-count-down"
|
|
102
|
+
millisecond
|
|
103
|
+
time="{{ 3000 }}"
|
|
104
|
+
auto-start="{{ false }}"
|
|
105
|
+
format="ss:SSS"
|
|
106
|
+
bind:finish="finished"
|
|
107
|
+
/>
|
|
108
|
+
|
|
109
|
+
<smart-grid clickable column-num="3">
|
|
110
|
+
<smart-grid-item text="开始" icon="{{PlayIcon}}" bindclick="start" />
|
|
111
|
+
<smart-grid-item text="暂停" icon="{{PauseIcon}}" bindclick="pause" />
|
|
112
|
+
<smart-grid-item text="重置" icon="{{ReplayIcon}}" bindclick="reset" />
|
|
113
|
+
</smart-grid>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
```js
|
|
117
|
+
import PlayIcon from '@tuya-miniapp/icons/dist/svg/Play';
|
|
118
|
+
import PauseIcon from '@tuya-miniapp/icons/dist/svg/Pause';
|
|
119
|
+
import ReplayIcon from '@tuya-miniapp/icons/dist/svg/Refresh';
|
|
120
|
+
Page({
|
|
121
|
+
data:{
|
|
122
|
+
PlayIcon,
|
|
123
|
+
PauseIcon,
|
|
124
|
+
ReplayIcon,
|
|
125
|
+
},
|
|
126
|
+
start() {
|
|
127
|
+
const countDown = this.selectComponent('.control-count-down');
|
|
128
|
+
countDown.start();
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
pause() {
|
|
132
|
+
const countDown = this.selectComponent('.control-count-down');
|
|
133
|
+
countDown.pause();
|
|
134
|
+
},
|
|
135
|
+
|
|
136
|
+
reset() {
|
|
137
|
+
const countDown = this.selectComponent('.control-count-down');
|
|
138
|
+
countDown.reset();
|
|
139
|
+
},
|
|
140
|
+
|
|
141
|
+
finished() {
|
|
142
|
+
Toast('倒计时结束');
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## API
|
|
148
|
+
|
|
149
|
+
### Props
|
|
150
|
+
|
|
151
|
+
| 参数 | 说明 | 类型 | 默认值 |
|
|
152
|
+
| ----------- | ---------------------------------------------- | --------- | ---------- |
|
|
153
|
+
| auto-start | 是否自动开始倒计时 | _boolean_ | `true` |
|
|
154
|
+
| format | 时间格式,DD-日,HH-时,mm-分,ss-秒,SSS-毫秒 | _string_ | `HH:mm:ss` |
|
|
155
|
+
| millisecond | 是否开启毫秒级渲染 | _boolean_ | `false` |
|
|
156
|
+
| time | 倒计时时长,单位毫秒 | _number_ | - |
|
|
157
|
+
| use-slot | 是否使用自定义样式插槽 | _boolean_ | `false` |
|
|
158
|
+
|
|
159
|
+
### Events
|
|
160
|
+
|
|
161
|
+
| 事件名 | 说明 | 回调参数 |
|
|
162
|
+
| ----------- | -------------------------------------------- | -------- |
|
|
163
|
+
| bind:change | 时间变化时触发,仅在开启`use-slot`后才会触发 | timeData |
|
|
164
|
+
| bind:finish | 倒计时结束时触发 | - |
|
|
165
|
+
|
|
166
|
+
### timeData 格式
|
|
167
|
+
|
|
168
|
+
| 名称 | 说明 | 类型 |
|
|
169
|
+
| ------------ | -------- | -------- |
|
|
170
|
+
| days | 剩余天数 | _number_ |
|
|
171
|
+
| hours | 剩余小时 | _number_ |
|
|
172
|
+
| milliseconds | 剩余毫秒 | _number_ |
|
|
173
|
+
| minutes | 剩余分钟 | _number_ |
|
|
174
|
+
| seconds | 剩余秒数 | _number_ |
|
|
175
|
+
|
|
176
|
+
### 方法
|
|
177
|
+
|
|
178
|
+
通过 [selectComponent](/material/smartui?comId=faq&appType=miniapp) 可以获取到 CountDown 实例并调用实例方法。
|
|
179
|
+
|
|
180
|
+
| 方法名 | 参数 | 返回值 | 介绍 |
|
|
181
|
+
| ------ | ---- | ------ | ---------------------------------------------------------- |
|
|
182
|
+
| pause | - | - | 暂停倒计时 |
|
|
183
|
+
| reset | - | - | 重设倒计时,若`auto-start`为`true`,重设后会自动开始倒计时 |
|
|
184
|
+
| start | - | - | 开始倒计时 |
|
|
185
|
+
|
|
186
|
+
### 样式变量
|
|
187
|
+
|
|
188
|
+
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 [ConfigProvider 组件](/material/smartui?comId=config-provider&appType=miniapp)。
|
|
189
|
+
|
|
190
|
+
| 名称 | 默认值 | 描述 |
|
|
191
|
+
| ----------------------------- | -------------------------------------- | ---- |
|
|
192
|
+
| --count-down-text-color | _var(--app-B6-N2, rgba(0, 0, 0, 0.7))_ | 文本颜色 |
|
|
193
|
+
| --count-down-font-size | _14px_ | 字体大小 |
|
|
194
|
+
| --count-down-line-height | _20px_ | 行高 |
|