@tuya-miniapp/smart-ui 2.13.1 → 2.13.2-beta-1

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 (111) hide show
  1. package/dist/action-sheet/README.md +631 -0
  2. package/dist/battery/README.md +102 -0
  3. package/dist/bottom-sheet/README.md +397 -0
  4. package/dist/button/README.md +205 -0
  5. package/dist/button/index.css +1 -1
  6. package/dist/button/index.wxss +1 -1
  7. package/dist/calendar/README.md +466 -0
  8. package/dist/cascader/README.md +235 -0
  9. package/dist/cell/README.md +240 -0
  10. package/dist/checkbox/README.md +359 -0
  11. package/dist/circle/README.md +116 -0
  12. package/dist/col/README.md +134 -0
  13. package/dist/collapse/README.md +223 -0
  14. package/dist/common/README.md +71 -0
  15. package/dist/config-provider/README.md +143 -0
  16. package/dist/count-down/README.md +194 -0
  17. package/dist/custom-keyboard/README.md +119 -0
  18. package/dist/datetime-picker/README.md +384 -0
  19. package/dist/dialog/README.md +412 -0
  20. package/dist/divider/README.md +100 -0
  21. package/dist/dropdown-menu/README.md +278 -0
  22. package/dist/empty/README.md +101 -0
  23. package/dist/field/README.md +439 -0
  24. package/dist/grid/README.md +197 -0
  25. package/dist/icon/README.md +143 -0
  26. package/dist/image/README.md +171 -0
  27. package/dist/index-bar/README.md +189 -0
  28. package/dist/loading/README.md +86 -0
  29. package/dist/nav-bar/README.md +378 -0
  30. package/dist/normal-slider/README.md +325 -0
  31. package/dist/notice-bar/README.md +216 -0
  32. package/dist/notify/README.md +120 -0
  33. package/dist/overlay/README.md +132 -0
  34. package/dist/picker/README.md +396 -0
  35. package/dist/popover/README.md +249 -0
  36. package/dist/popup/README.md +162 -0
  37. package/dist/progress/README.md +99 -0
  38. package/dist/radio/README.md +303 -0
  39. package/dist/rate/README.md +176 -0
  40. package/dist/search/README.md +235 -0
  41. package/dist/sidebar/README.md +160 -0
  42. package/dist/skeleton/README.md +98 -0
  43. package/dist/slider/README.md +366 -0
  44. package/dist/stepper/README.md +208 -0
  45. package/dist/stepper/index.js +16 -1
  46. package/dist/stepper/index.wxml +1 -1
  47. package/dist/sticky/README.md +124 -0
  48. package/dist/swipe-cell/README.md +172 -0
  49. package/dist/switch/README.md +204 -0
  50. package/dist/tab/README.md +414 -0
  51. package/dist/tabbar/README.md +333 -0
  52. package/dist/tag/README.md +184 -0
  53. package/dist/toast/README.md +220 -0
  54. package/dist/transition/README.md +114 -0
  55. package/dist/tree-select/README.md +199 -0
  56. package/lib/action-sheet/README.md +631 -0
  57. package/lib/battery/README.md +102 -0
  58. package/lib/bottom-sheet/README.md +397 -0
  59. package/lib/button/README.md +205 -0
  60. package/lib/button/index.css +1 -1
  61. package/lib/button/index.wxss +1 -1
  62. package/lib/calendar/README.md +466 -0
  63. package/lib/cascader/README.md +235 -0
  64. package/lib/cell/README.md +240 -0
  65. package/lib/checkbox/README.md +359 -0
  66. package/lib/circle/README.md +116 -0
  67. package/lib/col/README.md +134 -0
  68. package/lib/collapse/README.md +223 -0
  69. package/lib/common/README.md +71 -0
  70. package/lib/config-provider/README.md +143 -0
  71. package/lib/count-down/README.md +194 -0
  72. package/lib/custom-keyboard/README.md +119 -0
  73. package/lib/datetime-picker/README.md +384 -0
  74. package/lib/dialog/README.md +412 -0
  75. package/lib/divider/README.md +100 -0
  76. package/lib/dropdown-menu/README.md +278 -0
  77. package/lib/empty/README.md +101 -0
  78. package/lib/field/README.md +439 -0
  79. package/lib/grid/README.md +197 -0
  80. package/lib/icon/README.md +143 -0
  81. package/lib/image/README.md +171 -0
  82. package/lib/index-bar/README.md +189 -0
  83. package/lib/loading/README.md +86 -0
  84. package/lib/nav-bar/README.md +378 -0
  85. package/lib/normal-slider/README.md +325 -0
  86. package/lib/notice-bar/README.md +216 -0
  87. package/lib/notify/README.md +120 -0
  88. package/lib/overlay/README.md +132 -0
  89. package/lib/picker/README.md +396 -0
  90. package/lib/popover/README.md +249 -0
  91. package/lib/popup/README.md +162 -0
  92. package/lib/progress/README.md +99 -0
  93. package/lib/radio/README.md +303 -0
  94. package/lib/rate/README.md +176 -0
  95. package/lib/search/README.md +235 -0
  96. package/lib/sidebar/README.md +160 -0
  97. package/lib/skeleton/README.md +98 -0
  98. package/lib/slider/README.md +366 -0
  99. package/lib/stepper/README.md +208 -0
  100. package/lib/stepper/index.js +16 -1
  101. package/lib/stepper/index.wxml +1 -1
  102. package/lib/sticky/README.md +124 -0
  103. package/lib/swipe-cell/README.md +172 -0
  104. package/lib/switch/README.md +204 -0
  105. package/lib/tab/README.md +414 -0
  106. package/lib/tabbar/README.md +333 -0
  107. package/lib/tag/README.md +184 -0
  108. package/lib/toast/README.md +220 -0
  109. package/lib/transition/README.md +114 -0
  110. package/lib/tree-select/README.md +199 -0
  111. package/package.json +5 -4
@@ -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_ | 行高 |