@tdesign/uniapp 0.7.3 → 0.8.0

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 (197) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +1 -1
  3. package/dist/action-sheet/README.md +1 -1
  4. package/dist/action-sheet/action-sheet.vue +158 -150
  5. package/dist/action-sheet/props.ts +2 -2
  6. package/dist/action-sheet/type.ts +1 -1
  7. package/dist/avatar/avatar.vue +89 -87
  8. package/dist/avatar-group/avatar-group.vue +69 -67
  9. package/dist/back-top/back-top.vue +60 -58
  10. package/dist/badge/badge.vue +69 -59
  11. package/dist/button/button.vue +121 -116
  12. package/dist/button/props.ts +2 -2
  13. package/dist/button/type.ts +1 -1
  14. package/dist/calendar/calendar-header.vue +4 -4
  15. package/dist/calendar/calendar.vue +308 -297
  16. package/dist/calendar/template.vue +1 -1
  17. package/dist/cascader/README.en-US.md +2 -1
  18. package/dist/cascader/README.md +2 -1
  19. package/dist/cascader/cascader.vue +340 -328
  20. package/dist/cascader/props.ts +6 -1
  21. package/dist/cascader/type.ts +6 -0
  22. package/dist/cell/cell.vue +127 -121
  23. package/dist/cell-group/cell-group.vue +32 -30
  24. package/dist/check-tag/check-tag.vue +73 -71
  25. package/dist/checkbox/checkbox.vue +127 -127
  26. package/dist/checkbox/props.ts +6 -6
  27. package/dist/checkbox/type.ts +3 -3
  28. package/dist/checkbox-group/checkbox-group.vue +175 -173
  29. package/dist/checkbox-group/props.ts +6 -6
  30. package/dist/checkbox-group/type.ts +4 -4
  31. package/dist/col/col.vue +26 -24
  32. package/dist/collapse/collapse.vue +83 -81
  33. package/dist/collapse-panel/collapse-panel.vue +121 -119
  34. package/dist/collapse-panel/props.ts +4 -4
  35. package/dist/collapse-panel/type.ts +2 -2
  36. package/dist/color-picker/README.md +1 -1
  37. package/dist/color-picker/color-picker.vue +324 -322
  38. package/dist/color-picker/props.ts +2 -2
  39. package/dist/color-picker/template.vue +14 -10
  40. package/dist/common/common.ts +1 -0
  41. package/dist/common/style/theme/index.css +5 -5
  42. package/dist/common/utils.js +7 -2
  43. package/dist/common/validator.js +172 -0
  44. package/dist/config-provider/README.en-US.md +184 -0
  45. package/dist/config-provider/README.md +234 -0
  46. package/dist/config-provider/config-provider.vue +105 -0
  47. package/dist/config-provider/config-store.js +70 -0
  48. package/dist/config-provider/props.ts +16 -0
  49. package/dist/config-provider/reactive-state.js +39 -0
  50. package/dist/config-provider/type.ts +401 -0
  51. package/dist/config-provider/use-config.js +29 -0
  52. package/dist/config-provider/utils.js +29 -0
  53. package/dist/count-down/count-down.vue +98 -97
  54. package/dist/date-time-picker/date-time-picker.vue +410 -395
  55. package/dist/demo/demo.vue +1 -0
  56. package/dist/dialog/dialog.vue +175 -173
  57. package/dist/divider/divider.vue +38 -36
  58. package/dist/draggable/draggable.vue +60 -58
  59. package/dist/drawer/README.md +1 -1
  60. package/dist/drawer/drawer.vue +48 -46
  61. package/dist/dropdown-item/dropdown-item.vue +209 -207
  62. package/dist/dropdown-item/props.ts +4 -4
  63. package/dist/dropdown-item/type.ts +3 -3
  64. package/dist/dropdown-menu/dropdown-menu.vue +93 -99
  65. package/dist/empty/empty.vue +43 -42
  66. package/dist/fab/fab.vue +88 -86
  67. package/dist/footer/footer.vue +36 -34
  68. package/dist/form/README.en-US.md +17 -24
  69. package/dist/form/README.md +18 -25
  70. package/dist/form/form.css +1 -166
  71. package/dist/form/form.vue +251 -236
  72. package/dist/form/props.ts +2 -21
  73. package/dist/form/type.ts +7 -70
  74. package/dist/form-item/README.en-US.md +4 -5
  75. package/dist/form-item/README.md +4 -5
  76. package/dist/form-item/form-item.css +69 -96
  77. package/dist/form-item/form-item.vue +315 -336
  78. package/dist/form-item/form-model.ts +125 -173
  79. package/dist/form-item/props.ts +4 -17
  80. package/dist/form-item/type.ts +43 -1
  81. package/dist/grid/grid.vue +53 -51
  82. package/dist/grid-item/grid-item.vue +121 -119
  83. package/dist/guide/README.md +1 -1
  84. package/dist/guide/guide.vue +281 -277
  85. package/dist/icon/README.md +2 -4
  86. package/dist/icon/icon.vue +78 -76
  87. package/dist/image/README.md +1 -1
  88. package/dist/image/image.vue +103 -101
  89. package/dist/image-viewer/image-viewer.vue +160 -158
  90. package/dist/image-viewer/props.ts +2 -2
  91. package/dist/image-viewer/type.ts +1 -1
  92. package/dist/index.js +3 -0
  93. package/dist/indexes/indexes.vue +264 -267
  94. package/dist/indexes-anchor/indexes-anchor.vue +41 -41
  95. package/dist/input/input.vue +192 -192
  96. package/dist/input/props.ts +6 -6
  97. package/dist/input/type.ts +3 -3
  98. package/dist/link/link.vue +73 -71
  99. package/dist/loading/loading.vue +59 -59
  100. package/dist/locale/ar_KW.ts +157 -0
  101. package/dist/locale/en_US.ts +146 -0
  102. package/dist/locale/it_IT.ts +145 -0
  103. package/dist/locale/ja_JP.ts +132 -0
  104. package/dist/locale/ko_KR.ts +132 -0
  105. package/dist/locale/ru_RU.ts +157 -0
  106. package/dist/locale/zh_CN.ts +133 -0
  107. package/dist/locale/zh_TW.ts +132 -0
  108. package/dist/message/message.vue +181 -173
  109. package/dist/message/props.ts +2 -2
  110. package/dist/message/type.ts +1 -1
  111. package/dist/message-item/message-item.vue +192 -184
  112. package/dist/mixins/using-config.js +39 -0
  113. package/dist/navbar/navbar.vue +201 -199
  114. package/dist/notice-bar/notice-bar.vue +175 -171
  115. package/dist/notice-bar/props.ts +2 -2
  116. package/dist/notice-bar/type.ts +1 -1
  117. package/dist/npm/dayjs/esm/locale/ar.js +81 -0
  118. package/dist/npm/dayjs/esm/locale/it.js +39 -0
  119. package/dist/overlay/overlay.vue +50 -48
  120. package/dist/picker/picker.vue +168 -161
  121. package/dist/picker-item/picker-item.vue +269 -269
  122. package/dist/popover/README.md +1 -1
  123. package/dist/popover/popover.vue +262 -261
  124. package/dist/popover/props.ts +4 -4
  125. package/dist/popover/type.ts +2 -2
  126. package/dist/popup/popup.vue +46 -45
  127. package/dist/progress/README.md +1 -1
  128. package/dist/progress/progress.vue +76 -76
  129. package/dist/pull-down-refresh/props.ts +2 -2
  130. package/dist/pull-down-refresh/pull-down-refresh.vue +240 -234
  131. package/dist/pull-down-refresh/type.ts +1 -1
  132. package/dist/qrcode/README.md +1 -1
  133. package/dist/qrcode/components/qrcode-canvas/qrcode-canvas.vue +340 -338
  134. package/dist/qrcode/components/qrcode-status/qrcode-status.vue +6 -6
  135. package/dist/qrcode/qrcode.vue +93 -87
  136. package/dist/radio/props.ts +6 -6
  137. package/dist/radio/radio.vue +118 -120
  138. package/dist/radio/type.ts +3 -3
  139. package/dist/radio-group/props.ts +4 -4
  140. package/dist/radio-group/radio-group.vue +136 -134
  141. package/dist/radio-group/type.ts +4 -4
  142. package/dist/rate/computed.js +2 -2
  143. package/dist/rate/props.ts +4 -4
  144. package/dist/rate/rate.vue +155 -154
  145. package/dist/rate/type.ts +2 -2
  146. package/dist/result/result.vue +41 -39
  147. package/dist/row/row.vue +38 -36
  148. package/dist/scroll-view/scroll-view.vue +24 -22
  149. package/dist/search/props.ts +2 -2
  150. package/dist/search/search.vue +127 -125
  151. package/dist/search/type.ts +1 -1
  152. package/dist/side-bar/side-bar.vue +57 -55
  153. package/dist/side-bar-item/side-bar-item.vue +86 -86
  154. package/dist/skeleton/skeleton.vue +126 -124
  155. package/dist/slider/README.md +1 -1
  156. package/dist/slider/props.ts +2 -2
  157. package/dist/slider/slider.vue +457 -457
  158. package/dist/slider/type.ts +1 -1
  159. package/dist/step-item/step-item.vue +77 -75
  160. package/dist/stepper/props.ts +2 -2
  161. package/dist/stepper/stepper.vue +168 -149
  162. package/dist/stepper/type.ts +1 -1
  163. package/dist/steps/props.ts +2 -2
  164. package/dist/steps/steps.vue +83 -81
  165. package/dist/steps/type.ts +1 -1
  166. package/dist/sticky/sticky.vue +104 -102
  167. package/dist/swipe-cell/swipe-cell.vue +91 -89
  168. package/dist/swiper/README.md +1 -1
  169. package/dist/swiper/swiper.vue +91 -89
  170. package/dist/swiper-nav/swiper-nav.vue +38 -36
  171. package/dist/switch/props.ts +2 -2
  172. package/dist/switch/switch.vue +62 -62
  173. package/dist/switch/type.ts +1 -1
  174. package/dist/tab-bar/tab-bar.vue +88 -86
  175. package/dist/tab-bar-item/tab-bar-item.vue +85 -82
  176. package/dist/tab-panel/tab-panel.vue +66 -64
  177. package/dist/tabs/tabs.vue +294 -287
  178. package/dist/tag/tag.vue +79 -77
  179. package/dist/textarea/props.ts +6 -6
  180. package/dist/textarea/textarea.vue +127 -126
  181. package/dist/textarea/type.ts +3 -3
  182. package/dist/toast/toast.vue +107 -106
  183. package/dist/transition/transition.vue +30 -28
  184. package/dist/tree-select/tree-select.vue +151 -151
  185. package/dist/types/config-provider.d.ts +7 -0
  186. package/dist/types/index.d.ts +2 -0
  187. package/dist/types/popover.d.ts +7 -0
  188. package/dist/upload/README.en-US.md +13 -14
  189. package/dist/upload/README.md +11 -12
  190. package/dist/upload/props.ts +2 -4
  191. package/dist/upload/type.ts +12 -11
  192. package/dist/upload/upload.css +1 -1
  193. package/dist/upload/upload.vue +672 -512
  194. package/dist/watermark/watermark.vue +151 -149
  195. package/global.d.ts +2 -0
  196. package/package.json +15 -3
  197. package/dist/form/form-item-props.ts +0 -56
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <view
3
3
  :class="classPrefix"
4
- :style="tools._style([customStyle])"
4
+ :style="'' + tools._style([customStyle])"
5
5
  >
6
6
  <view
7
7
  :class="classPrefix + '__wrapper ' + tClass"
@@ -10,62 +10,60 @@
10
10
  :aria-valuemax="count"
11
11
  :aria-valuemin="0"
12
12
  :aria-valuenow="dataValue"
13
- :aria-valuetext="utils.getText(texts, dataValue, defaultTexts)"
13
+ :aria-valuetext="utils.getText(texts, dataValue, globalConfig)"
14
14
  @touchstart="parseEventDynamicCode($event, !disabled ? 'onTouchStart' : '')"
15
15
  @touchmove="parseEventDynamicCode($event, !disabled ? 'onTouchMove' : '')"
16
16
  @click="onTap"
17
- @touchend="parseEventDynamicCode($event, !disabled ? 'onTouchEnd' : '')"
18
- @touchcancel="parseEventDynamicCode($event, !disabled ? 'onTouchEnd' : '')"
17
+ @touchend="(e) => parseEventDynamicCode(e, !disabled ? 'onTouchEnd' : '')"
18
+ @touchcancel="(e) => parseEventDynamicCode(e, !disabled ? 'onTouchEnd' : '')"
19
19
  >
20
20
  <t-icon
21
21
  v-for="(item, index) in count"
22
22
  :key="index"
23
23
  :t-class="classPrefix + '__icon ' + utils.getIconClass(classPrefix + '__icon', defaultValue, dataValue, index, allowHalf, disabled, scaleIndex) + ' ' + tClassIcon"
24
24
  :custom-style="'margin-right: ' + (count - index > 1 ? tools.addUnit(gap) : 0) + '; ' + utils.getColor(color)"
25
- :name="utils.getIconName(defaultValue, dataValue, index, icon)"
25
+ :name="'' + utils.getIconName(defaultValue, dataValue, index, icon)"
26
26
  :size="size"
27
27
  :prefix="iconPrefix"
28
28
  />
29
29
  </view>
30
30
  <text
31
31
  v-if="showText"
32
- :class="tools.cls(classPrefix + '__text', [['active', dataValue > 0]]) + ' ' + tClassText"
32
+ :class="'' + tools.cls(classPrefix + '__text', [['active', dataValue > 0]]) + ' ' + tClassText"
33
33
  :aria-hidden="true"
34
34
  >
35
- {{ utils.getText(texts, dataValue, defaultTexts) }}
35
+ {{ utils.getText(texts, dataValue, globalConfig) }}
36
36
  </text>
37
37
  <text
38
38
  v-if="isVisibleToScreenReader"
39
- :class="
40
- tools.cls(classPrefix + '__text', [
41
- ['active', dataValue > 0],
42
- ['sr-only', isVisibleToScreenReader]
43
- ]) +
44
- ' ' +
45
- tClassText
46
- "
39
+ :class="'' + tools.cls(classPrefix + '__text', [
40
+ ['active', dataValue > 0],
41
+ ['sr-only', isVisibleToScreenReader]
42
+ ]) +
43
+ ' ' +
44
+ tClassText"
47
45
  aria-role="alert"
48
46
  aria-live="assertive"
49
47
  >
50
- {{ dataValue + '星' }} {{ utils.getText(texts, dataValue, defaultTexts) }}
48
+ {{ dataValue + '星' }} {{ utils.getText(texts, dataValue, globalConfig) }}
51
49
  </text>
52
50
  <!-- TODO -->
53
51
  <view
54
52
  v-if="tipsVisible && placement"
55
- :class="tools.cls(classPrefix + '__tips', [placement])"
53
+ :class="'' + tools.cls(classPrefix + '__tips', [placement])"
56
54
  :style="'left: ' + tipsLeft + 'px'"
57
55
  :aria-hidden="true"
58
56
  >
59
57
  <block v-if="actionType == 'tap'">
60
58
  <view
61
59
  v-if="allowHalf"
62
- :class="tools.cls(classPrefix + '__tips-item', [['active', utils.ceil(dataValue) - 0.5 == dataValue]])"
63
- :data-value="utils.ceil(dataValue) - 0.5"
60
+ :class="[classPrefix + '__tips-item', utils.ceil(dataValue) - 0.5 == dataValue ? classPrefix + '__tips-item' + '--active' : '']"
61
+ :data-value="'' + utils.ceil(dataValue) - 0.5"
64
62
  @click="onSelect"
65
63
  >
66
64
  <t-icon
67
65
  :t-class="classPrefix + '__icon ' + classPrefix + '__icon--selected-half'"
68
- :name="utils.getIconName(defaultValue, dataValue, 0, icon)"
66
+ :name="'' + utils.getIconName(defaultValue, dataValue, 0, icon)"
69
67
  :size="size"
70
68
  :custom-style="utils.getColor(color)"
71
69
  />
@@ -74,7 +72,7 @@
74
72
  </view>
75
73
  </view>
76
74
  <view
77
- :class="tools.cls(classPrefix + '__tips-item', [['active', utils.ceil(dataValue) == dataValue]])"
75
+ :class="[classPrefix + '__tips-item', utils.ceil(dataValue) == dataValue ? classPrefix + '__tips-item' + '--active' : '']"
78
76
  :data-value="utils.ceil(dataValue)"
79
77
  @click="onSelect"
80
78
  >
@@ -91,17 +89,15 @@
91
89
  </block>
92
90
  <view
93
91
  v-else
94
- :class="tools.cls(classPrefix + '__tips-item', [['active', utils.ceil(dataValue) == dataValue && actionType == 'tap']])"
92
+ :class="[classPrefix + '__tips-item', utils.ceil(dataValue) == dataValue && actionType == 'tap' ? classPrefix + '__tips-item' + '--active' : '']"
95
93
  :data-value="utils.ceil(dataValue)"
96
94
  @click="onSelect"
97
95
  >
98
96
  <t-icon
99
- :t-class="
100
- tools.cls(classPrefix + '__icon', [
101
- ['selected', utils.ceil(dataValue) == dataValue],
102
- ['selected-half', utils.ceil(dataValue) != dataValue]
103
- ])
104
- "
97
+ :t-class="tools.cls(classPrefix + '__icon', [
98
+ ['selected', utils.ceil(dataValue) == dataValue],
99
+ ['selected-half', utils.ceil(dataValue) != dataValue]
100
+ ])"
105
101
  :name="utils.getIconName(defaultValue, 0, 0, icon)"
106
102
  :size="size"
107
103
  :custom-style="utils.getColor(color)"
@@ -124,151 +120,156 @@ import utils from './computed.js';
124
120
  import { parseEventDynamicCode } from '../common/event/dynamic';
125
121
 
126
122
 
127
- const name = `${prefix}-rate`;
123
+ import usingConfig from '../mixins/using-config';
124
+ const componentName = 'rate';
125
+ const name = `${prefix}-${componentName}`;
128
126
 
129
127
 
130
- export default uniComponent({
131
- name,
132
- options: {
133
- styleIsolation: 'shared',
134
- },
135
- controlledProps: [
136
- {
137
- key: 'value',
138
- event: 'change',
139
- },
140
- ],
141
- externalClasses: [
142
- `${prefix}-class`,
143
- `${prefix}-class-icon`,
144
- `${prefix}-class-text`,
145
- ],
128
+ export default {
146
129
  components: {
147
130
  TIcon,
148
131
  },
149
- props: {
150
- ...props,
151
- },
152
- data() {
153
- return {
154
- prefix,
155
- classPrefix: name,
156
- defaultTexts: ['极差', '失望', '一般', '满意', '惊喜'],
157
- tipsVisible: false,
158
- tipsLeft: 0,
159
- actionType: '',
160
- scaleIndex: -1,
161
- isVisibleToScreenReader: false,
162
-
163
- tools,
164
- utils,
165
- dataValue: coalesce(this.value, this.defaultValue),
166
- };
167
- },
168
- watch: {
169
- value: {
170
- handler(v) {
171
- this.dataValue = v;
132
+ ...uniComponent({
133
+ name,
134
+ mixins: [usingConfig({ componentName })],
135
+ options: {
136
+ styleIsolation: 'shared',
137
+ },
138
+ controlledProps: [
139
+ {
140
+ key: 'value',
141
+ event: 'change',
172
142
  },
173
- immediate: true,
143
+ ],
144
+ externalClasses: [
145
+ `${prefix}-class`,
146
+ `${prefix}-class-icon`,
147
+ `${prefix}-class-text`,
148
+ ],
149
+ props: {
150
+ ...props,
174
151
  },
175
- },
176
- mounted() {
152
+ data() {
153
+ return {
154
+ prefix,
155
+ classPrefix: name,
156
+ defaultTexts: ['极差', '失望', '一般', '满意', '惊喜'],
157
+ tipsVisible: false,
158
+ tipsLeft: 0,
159
+ actionType: '',
160
+ scaleIndex: -1,
161
+ isVisibleToScreenReader: false,
177
162
 
178
- },
179
- methods: {
180
- parseEventDynamicCode,
181
- onTouch(e, eventType) {
182
- const { count, allowHalf, gap, dataValue: currentValue, size } = this;
183
- let touch = e.changedTouches?.[0];
184
- // #ifdef MP-ALIPAY
185
- if (eventType === 'tap') {
186
- touch = e.target;
187
- }
188
- // #endif
189
- const margin = unitConvert(gap);
190
- getRect(this, `.${name}__wrapper`).then((rect) => {
191
- const { width, left } = rect;
192
- const starWidth = (width - (count - 1) * margin) / count;
193
- const offsetX = touch.pageX - left;
194
- const num = (offsetX + margin) / (starWidth + margin);
195
- const remainder = num % 1;
196
- const integral = num - remainder;
197
- let value = remainder <= 0.5 && allowHalf ? integral + 0.5 : integral + 1;
163
+ tools,
164
+ utils,
165
+ dataValue: coalesce(this.value, this.defaultValue),
166
+ };
167
+ },
168
+ watch: {
169
+ value: {
170
+ handler(v) {
171
+ this.dataValue = v;
172
+ },
173
+ immediate: true,
174
+ },
175
+ },
176
+ mounted() {
198
177
 
199
- if (value > count) {
200
- value = count;
201
- } else if (value < 0) {
202
- value = 0;
178
+ },
179
+ methods: {
180
+ parseEventDynamicCode,
181
+ onTouch(e, eventType) {
182
+ const { count, allowHalf, gap, dataValue: currentValue, size } = this;
183
+ let touch = e.changedTouches?.[0];
184
+ // #ifdef MP-ALIPAY
185
+ if (eventType === 'tap') {
186
+ touch = e.target;
203
187
  }
188
+ // #endif
189
+ const margin = unitConvert(gap);
190
+ getRect(this, `.${name}__wrapper`).then((rect) => {
191
+ const { width, left } = rect;
192
+ const starWidth = (width - (count - 1) * margin) / count;
193
+ const offsetX = touch.pageX - left;
194
+ const num = (offsetX + margin) / (starWidth + margin);
195
+ const remainder = num % 1;
196
+ const integral = num - remainder;
197
+ let value = remainder <= 0.5 && allowHalf ? integral + 0.5 : integral + 1;
204
198
 
205
- const tipsLeft = Math.ceil(value - 1) * (unitConvert(gap) + unitConvert(size)) + unitConvert(size) * 0.5;
206
- this.tipsVisible = true;
207
- this.actionType = eventType;
208
- this.scaleIndex = Math.ceil(value);
209
- this.tipsLeft = Math.max(tipsLeft, 0);
199
+ if (value > count) {
200
+ value = count;
201
+ } else if (value < 0) {
202
+ value = 0;
203
+ }
210
204
 
211
- if (value !== currentValue) {
212
- this.innerTrigger(value);
213
- }
205
+ const tipsLeft = Math.ceil(value - 1) * (unitConvert(gap) + unitConvert(size)) + unitConvert(size) * 0.5;
206
+ this.tipsVisible = true;
207
+ this.actionType = eventType;
208
+ this.scaleIndex = Math.ceil(value);
209
+ this.tipsLeft = Math.max(tipsLeft, 0);
214
210
 
215
- if (this.touchEnd) {
216
- this.hideTips();
211
+ if (value !== currentValue) {
212
+ this.innerTrigger(value);
213
+ }
214
+
215
+ if (this.touchEnd) {
216
+ this.hideTips();
217
+ }
218
+ });
219
+ },
220
+ innerTrigger(value) {
221
+ this._trigger('change', { value });
222
+ if (this._selfControlled) {
223
+ this.currentValue = value;
217
224
  }
218
- });
219
- },
220
- innerTrigger(value) {
221
- this._trigger('change', { value });
222
- if (this._selfControlled) {
223
- this.currentValue = value;
224
- }
225
- },
226
- onTap(e) {
227
- const { disabled } = this;
228
- if (disabled) return;
229
- this.onTouch(e, 'tap');
230
- },
231
- onTouchStart() {
232
- this.touchEnd = false;
233
- },
234
- onTouchMove(e) {
235
- this.onTouch(e, 'move');
236
- this.showAlertText();
237
- },
238
- onTouchEnd() {
239
- this.touchEnd = true;
240
- this.hideTips();
241
- },
242
- hideTips() {
243
- if (this.actionType === 'move') {
244
- this.tipsVisible = false;
245
- this.scaleIndex = -1;
246
- }
247
- },
248
- onSelect(e) {
249
- const { value } = e.currentTarget.dataset;
250
- const { actionType } = this;
225
+ },
226
+ onTap(e) {
227
+ const { disabled } = this;
228
+ if (disabled) return;
229
+ this.onTouch(e, 'tap');
230
+ },
231
+ onTouchStart() {
232
+ this.touchEnd = false;
233
+ },
234
+ onTouchMove(e) {
235
+ this.onTouch(e, 'move');
236
+ this.showAlertText();
237
+ },
238
+ onTouchEnd() {
239
+ this.touchEnd = true;
240
+ this.hideTips();
241
+ },
242
+ hideTips() {
243
+ if (this.actionType === 'move') {
244
+ this.tipsVisible = false;
245
+ this.scaleIndex = -1;
246
+ }
247
+ },
248
+ onSelect(e) {
249
+ const { value } = e.currentTarget.dataset;
250
+ const { actionType } = this;
251
251
 
252
- if (actionType === 'move') return;
252
+ if (actionType === 'move') return;
253
253
 
254
- this.innerTrigger(value);
254
+ this.innerTrigger(value);
255
255
 
256
- setTimeout(() => {
257
- this.tipsVisible = false;
258
- this.scaleIndex = -1;
259
- }, 300);
260
- },
261
- // 旁白模式: 变更数值时显示告警文案
262
- showAlertText() {
263
- if (this.isVisibleToScreenReader === true) return;
264
- this.isVisibleToScreenReader = true;
256
+ setTimeout(() => {
257
+ this.tipsVisible = false;
258
+ this.scaleIndex = -1;
259
+ }, 300);
260
+ },
261
+ // 旁白模式: 变更数值时显示告警文案
262
+ showAlertText() {
263
+ if (this.isVisibleToScreenReader === true) return;
264
+ this.isVisibleToScreenReader = true;
265
265
 
266
- setTimeout(() => {
267
- this.isVisibleToScreenReader = false;
268
- }, 2e3);
266
+ setTimeout(() => {
267
+ this.isVisibleToScreenReader = false;
268
+ }, 2e3);
269
+ },
269
270
  },
270
- },
271
- });
271
+ }),
272
+ };
272
273
 
273
274
  </script>
274
275
  <style scoped src="./rate.css"></style>
package/dist/rate/type.ts CHANGED
@@ -23,7 +23,7 @@ export interface TdRateProps {
23
23
  /**
24
24
  * 是否禁用评分
25
25
  */
26
- disabled?: boolean;
26
+ disabled?: boolean | null;
27
27
  /**
28
28
  * 评分图标的间距
29
29
  * @default 8
@@ -36,7 +36,7 @@ export interface TdRateProps {
36
36
  /**
37
37
  * 定义图标前缀
38
38
  */
39
- iconPrefix?: string;
39
+ iconPrefix?: string | null;
40
40
  /**
41
41
  * 选择评分弹框的位置,值为空字符表示不显示评分弹框
42
42
  * @default top
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <view
3
- :style="tools._style([customStyle])"
3
+ :style="'' + tools._style([customStyle])"
4
4
  :class="[
5
5
  classPrefix + ' ' + classPrefix + '--theme-' + theme,
6
6
  tClass
@@ -78,49 +78,51 @@ const THEME_ICON = {
78
78
  };
79
79
 
80
80
 
81
- export default uniComponent({
82
- name,
83
- options: {
84
- styleIsolation: 'shared',
85
- },
86
- externalClasses: [
87
- `${prefix}-class`,
88
- `${prefix}-class-image`,
89
- `${prefix}-class-title`,
90
- `${prefix}-class-description`,
91
- ],
81
+ export default {
92
82
  components: {
93
83
  TIcon,
94
84
  TImage,
95
85
  },
96
- props: {
97
- ...props,
98
- },
99
- data() {
100
- return {
101
- prefix,
102
- classPrefix: name,
103
- tools,
86
+ ...uniComponent({
87
+ name,
88
+ options: {
89
+ styleIsolation: 'shared',
90
+ },
91
+ externalClasses: [
92
+ `${prefix}-class`,
93
+ `${prefix}-class-image`,
94
+ `${prefix}-class-title`,
95
+ `${prefix}-class-description`,
96
+ ],
97
+ props: {
98
+ ...props,
99
+ },
100
+ data() {
101
+ return {
102
+ prefix,
103
+ classPrefix: name,
104
+ tools,
104
105
 
105
- innerIcon: null,
106
- };
107
- },
108
- watch: {
109
- icon: 'initIcon',
110
- theme: 'initIcon',
111
- },
112
- mounted() {
113
- this.initIcon();
114
- },
115
- methods: {
116
- initIcon() {
117
- const {
118
- icon,
119
- theme,
120
- } = this;
121
- this.innerIcon = calcIcon(icon, THEME_ICON[theme]);
106
+ innerIcon: null,
107
+ };
122
108
  },
123
- },
124
- });
109
+ watch: {
110
+ icon: 'initIcon',
111
+ theme: 'initIcon',
112
+ },
113
+ mounted() {
114
+ this.initIcon();
115
+ },
116
+ methods: {
117
+ initIcon() {
118
+ const {
119
+ icon,
120
+ theme,
121
+ } = this;
122
+ this.innerIcon = calcIcon(icon, THEME_ICON[theme]);
123
+ },
124
+ },
125
+ }),
126
+ };
125
127
  </script>
126
128
  <style scoped src="./result.css"></style>
package/dist/row/row.vue CHANGED
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <view
3
3
  :class="prefix + '-row'"
4
- :style="getRowStyles(gutter, customStyle)"
4
+ :style="''+getRowStyles(gutter, customStyle)"
5
5
  >
6
6
  <slot />
7
7
  </view>
@@ -17,45 +17,47 @@ import { ParentMixin, RELATION_MAP } from '../common/relation';
17
17
  const name = `${prefix}-row`;
18
18
 
19
19
 
20
- export default uniComponent({
21
- name,
22
- options: {
23
- styleIsolation: 'shared',
24
- },
25
- mixins: [ParentMixin(RELATION_MAP.Col)],
26
- props: {
27
- ...props,
28
- },
29
- data() {
30
- return {
31
- prefix,
32
- tools,
33
- };
34
- },
35
- watch: {
36
- gutter: {
37
- handler() {
38
- this.setGutter();
39
- },
40
- immediate: true,
20
+ export default {
21
+ ...uniComponent({
22
+ name,
23
+ options: {
24
+ styleIsolation: 'shared',
25
+ },
26
+ mixins: [ParentMixin(RELATION_MAP.Col)],
27
+ props: {
28
+ ...props,
29
+ },
30
+ data() {
31
+ return {
32
+ prefix,
33
+ tools,
34
+ };
41
35
  },
42
- },
43
- methods: {
44
- getRowStyles,
45
- innerAfterLinked() {
46
- this.setGutter();
36
+ watch: {
37
+ gutter: {
38
+ handler() {
39
+ this.setGutter();
40
+ },
41
+ immediate: true,
42
+ },
47
43
  },
48
- setGutter() {
49
- const {
50
- gutter,
51
- } = this;
44
+ methods: {
45
+ getRowStyles,
46
+ innerAfterLinked() {
47
+ this.setGutter();
48
+ },
49
+ setGutter() {
50
+ const {
51
+ gutter,
52
+ } = this;
52
53
 
53
- this.children?.forEach((o) => {
54
- o.gutter = gutter;
55
- });
54
+ this.children?.forEach((o) => {
55
+ o.gutter = gutter;
56
+ });
57
+ },
56
58
  },
57
- },
58
- });
59
+ }),
60
+ };
59
61
 
60
62
  </script>
61
63
  <style scoped src="./row.css"></style>
@@ -20,33 +20,35 @@ import { prefix } from '../common/config';
20
20
  const name = `${prefix}-scroll-view`;
21
21
 
22
22
 
23
- export default uniComponent({
24
- name,
25
- options: {
26
- styleIsolation: 'shared',
27
- },
28
- externalClasses: [`${prefix}-class`],
29
- props: {
30
- scrollIntoView: {
31
- type: [String, Number, null],
32
- default: null,
23
+ export default {
24
+ ...uniComponent({
25
+ name,
26
+ options: {
27
+ styleIsolation: 'shared',
33
28
  },
34
- },
35
- data() {
36
- return {
29
+ externalClasses: [`${prefix}-class`],
30
+ props: {
31
+ scrollIntoView: {
32
+ type: [String, Number, null],
33
+ default: null,
34
+ },
35
+ },
36
+ data() {
37
+ return {
37
38
 
38
- };
39
- },
40
- watch: {
39
+ };
40
+ },
41
+ watch: {
41
42
 
42
- },
43
- mounted() {
43
+ },
44
+ mounted() {
44
45
 
45
- },
46
- methods: {
46
+ },
47
+ methods: {
47
48
 
48
- },
49
- });
49
+ },
50
+ }),
51
+ };
50
52
  </script>
51
53
  <style scoped>
52
54
  </style>
@@ -97,8 +97,8 @@ export default {
97
97
  },
98
98
  /** 只读状态 */
99
99
  readonly: {
100
- type: Boolean,
101
- default: undefined,
100
+ type: [Boolean, null],
101
+ default: null as TdSearchProps['readonly'],
102
102
  },
103
103
  /** 预览结果列表 */
104
104
  resultList: {