@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
  <view
4
- :style="tools._style([customStyle])"
4
+ :style="'' + tools._style([customStyle])"
5
5
  :class="classPrefix + ' ' + tClass"
6
6
  >
7
7
  <view
@@ -88,7 +88,7 @@
88
88
  :t-class="classPrefix + '__result-item'"
89
89
  hover
90
90
  aria-role="option"
91
- @click="onSelectOption($event, { index })"
91
+ @click="(e) => onSelectOption(e, { index })"
92
92
  >
93
93
  <template
94
94
  #title
@@ -115,160 +115,161 @@ import { highLight } from './computed.js';
115
115
  const name = `${prefix}-search`;
116
116
 
117
117
 
118
- export default uniComponent({
119
- name,
120
- options: {
121
- styleIsolation: 'shared',
122
- },
123
- externalClasses: [
124
- `${prefix}-class`,
125
- `${prefix}-class-input-container`,
126
- `${prefix}-class-input`,
127
- `${prefix}-class-action`,
128
- `${prefix}-class-left`,
129
- `${prefix}-class-clear`,
130
- ],
118
+ export default {
131
119
  components: {
132
120
  TIcon,
133
121
  TCell,
134
122
  },
135
- props: {
136
- ...props,
137
- },
138
- emits: [
139
- ],
140
- data() {
141
- return {
142
- classPrefix: name,
143
- prefix,
144
- isShowResultList: false,
145
- isSelected: false,
146
- showClearIcon: false,
147
- tools,
123
+ ...uniComponent({
124
+ name,
125
+ options: {
126
+ styleIsolation: 'shared',
127
+ },
128
+ externalClasses: [
129
+ `${prefix}-class`,
130
+ `${prefix}-class-input-container`,
131
+ `${prefix}-class-input`,
132
+ `${prefix}-class-action`,
133
+ `${prefix}-class-left`,
134
+ `${prefix}-class-clear`,
135
+ ],
136
+ props: {
137
+ ...props,
138
+ },
139
+ emits: [
140
+ ],
141
+ data() {
142
+ return {
143
+ classPrefix: name,
144
+ prefix,
145
+ isShowResultList: false,
146
+ isSelected: false,
147
+ showClearIcon: false,
148
+ tools,
148
149
 
149
- dataValue: this.value,
150
+ dataValue: this.value,
150
151
  // innerMaxLen: -1,
151
152
  // rawValue: '',
152
- };
153
- },
154
- watch: {
155
- resultList: {
156
- handler(val) {
157
- const { isSelected } = this;
158
- if (val.length) {
159
- if (isSelected) {
160
- // 已选择
161
- this.isShowResultList = false;
162
- this.isSelected = false;
153
+ };
154
+ },
155
+ watch: {
156
+ resultList: {
157
+ handler(val) {
158
+ const { isSelected } = this;
159
+ if (val.length) {
160
+ if (isSelected) {
161
+ // 已选择
162
+ this.isShowResultList = false;
163
+ this.isSelected = false;
164
+ } else {
165
+ this.isShowResultList = true;
166
+ }
163
167
  } else {
164
- this.isShowResultList = true;
168
+ this.isShowResultList = false;
165
169
  }
166
- } else {
167
- this.isShowResultList = false;
168
- }
170
+ },
171
+ immediate: true,
169
172
  },
170
- immediate: true,
171
- },
172
173
 
173
- value: {
174
- handler(val) {
175
- this.dataValue = val;
174
+ value: {
175
+ handler(val) {
176
+ this.dataValue = val;
177
+ },
178
+ immediate: true,
176
179
  },
177
- immediate: true,
178
- },
179
180
 
180
- dataValue: {
181
- handler() {
181
+ dataValue: {
182
+ handler() {
182
183
  // this.updateInnerMaxLen();
183
- this.updateClearIconVisible();
184
+ this.updateClearIconVisible();
185
+ },
184
186
  },
185
- },
186
- clearTrigger: 'updateClearIconVisible',
187
- clearable: 'updateClearIconVisible',
188
- disabled: 'updateClearIconVisible',
189
- readonly: 'updateClearIconVisible',
187
+ clearTrigger: 'updateClearIconVisible',
188
+ clearable: 'updateClearIconVisible',
189
+ disabled: 'updateClearIconVisible',
190
+ readonly: 'updateClearIconVisible',
190
191
 
191
192
  // maxcharacter: 'updateInnerMaxLen',
192
193
  // maxlength: 'updateInnerMaxLen',
193
- },
194
- mounted() {
195
- this.updateClearIconVisible();
196
- },
197
- methods: {
198
- updateClearIconVisible(value = false) {
199
- const { clearTrigger, disabled, readonly, dataValue } = this;
200
- if (disabled || readonly || !dataValue) {
201
- this.showClearIcon = false;
202
- return;
203
- }
204
-
205
- this.showClearIcon = value || String(clearTrigger) === 'always';
206
194
  },
195
+ mounted() {
196
+ this.updateClearIconVisible();
197
+ },
198
+ methods: {
199
+ updateClearIconVisible(value = false) {
200
+ const { clearTrigger, disabled, readonly, dataValue } = this;
201
+ if (disabled || readonly || !dataValue) {
202
+ this.showClearIcon = false;
203
+ return;
204
+ }
207
205
 
208
- onInput(e) {
209
- let { value } = e.detail;
210
- // this.rawValue = value;
211
- this.dataValue = value;
206
+ this.showClearIcon = value || String(clearTrigger) === 'always';
207
+ },
212
208
 
213
- const { maxcharacter } = this;
214
- if (maxcharacter && typeof maxcharacter === 'number' && maxcharacter > 0) {
215
- const { characters } = getCharacterLength('maxcharacter', value, maxcharacter);
209
+ onInput(e) {
210
+ let { value } = e.detail;
211
+ // this.rawValue = value;
212
+ this.dataValue = value;
216
213
 
217
- value = characters;
218
- }
214
+ const { maxcharacter } = this;
215
+ if (maxcharacter && typeof maxcharacter === 'number' && maxcharacter > 0) {
216
+ const { characters } = getCharacterLength('maxcharacter', value, maxcharacter);
219
217
 
218
+ value = characters;
219
+ }
220
220
 
221
- nextTick().then(() => {
222
- this.dataValue = value;
223
- this.$emit('change', {
224
- value,
225
- trigger: 'input-change',
221
+
222
+ nextTick().then(() => {
223
+ this.dataValue = value;
224
+ this.$emit('change', {
225
+ value,
226
+ trigger: 'input-change',
227
+ });
226
228
  });
227
- });
228
229
  // this.updateInnerMaxLen();
229
- },
230
+ },
230
231
 
231
- onFocus(e) {
232
- const { value } = e.detail;
233
- this.updateClearIconVisible(true);
234
- this.$emit('focus', { value });
235
- },
232
+ onFocus(e) {
233
+ const { value } = e.detail;
234
+ this.updateClearIconVisible(true);
235
+ this.$emit('focus', { value });
236
+ },
236
237
 
237
- onBlur(e) {
238
- const { value } = e.detail;
239
- this.updateClearIconVisible();
240
- this.$emit('blur', { value });
241
- },
238
+ onBlur(e) {
239
+ const { value } = e.detail;
240
+ this.updateClearIconVisible();
241
+ this.$emit('blur', { value });
242
+ },
242
243
 
243
- handleClear() {
244
- this.dataValue = '';
245
- this.$emit('clear', { value: '' });
246
- this.$emit('change', {
247
- value: '',
248
- trigger: 'clear',
249
- });
250
- },
244
+ handleClear() {
245
+ this.dataValue = '';
246
+ this.$emit('clear', { value: '' });
247
+ this.$emit('change', {
248
+ value: '',
249
+ trigger: 'clear',
250
+ });
251
+ },
251
252
 
252
- onConfirm(e) {
253
- const { value } = e.detail;
254
- this.$emit('submit', { value });
255
- },
253
+ onConfirm(e) {
254
+ const { value } = e.detail;
255
+ this.$emit('submit', { value });
256
+ },
256
257
 
257
- onActionClick() {
258
- this.$emit('action-click');
259
- },
258
+ onActionClick() {
259
+ this.$emit('action-click');
260
+ },
260
261
 
261
- onSelectOption(tools, { index }) {
262
- const item = this.resultList[index];
263
- this.dataValue = item;
264
- this.isSelected = true;
262
+ onSelectOption(tools, { index }) {
263
+ const item = this.resultList[index];
264
+ this.dataValue = item;
265
+ this.isSelected = true;
265
266
 
266
- this.$emit('change', {
267
- value: item,
268
- trigger: 'option-click',
269
- });
270
- },
271
- highLight,
267
+ this.$emit('change', {
268
+ value: item,
269
+ trigger: 'option-click',
270
+ });
271
+ },
272
+ highLight,
272
273
  // updateInnerMaxLen() {
273
274
  // // this.innerMaxLen = this.getInnerMaxLen();
274
275
  // },
@@ -289,8 +290,9 @@ export default uniComponent({
289
290
  // count,
290
291
  // });
291
292
  // },
292
- },
293
- });
293
+ },
294
+ }),
295
+ };
294
296
 
295
297
 
296
298
  </script>
@@ -107,7 +107,7 @@ export interface TdSearchProps {
107
107
  /**
108
108
  * 只读状态
109
109
  */
110
- readonly?: boolean;
110
+ readonly?: boolean | null;
111
111
  /**
112
112
  * 预览结果列表
113
113
  * @default []
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <view
3
3
  :class="classPrefix + ' ' + tClass"
4
- :style="tools._style([customStyle])"
4
+ :style="'' + tools._style([customStyle])"
5
5
  >
6
6
  <slot />
7
7
  <view :class="classPrefix + '__padding'" />
@@ -18,65 +18,67 @@ import { ParentMixin, RELATION_MAP } from '../common/relation';
18
18
 
19
19
  const name = `${prefix}-side-bar`;
20
20
 
21
- export default uniComponent({
22
- name,
23
- options: {
24
- styleIsolation: 'shared',
25
- },
26
- controlledProps: [
27
- {
28
- key: 'value',
29
- event: 'change',
21
+ export default {
22
+ ...uniComponent({
23
+ name,
24
+ options: {
25
+ styleIsolation: 'shared',
30
26
  },
31
- ],
32
- externalClasses: [
33
- `${prefix}-class`,
34
- ],
35
- mixins: [ParentMixin(RELATION_MAP.SideBarItem)],
36
- props: {
37
- ...props,
38
- },
39
- emits: [
40
- 'click',
41
- 'change',
42
- ],
43
- data() {
44
- return {
45
- classPrefix: name,
46
- prefix,
47
- tools,
48
-
49
- dataValue: coalesce(this.value, this.defaultValue),
50
- };
51
- },
52
- watch: {
53
- value: {
54
- handler(e) {
55
- this.dataValue = e;
27
+ controlledProps: [
28
+ {
29
+ key: 'value',
30
+ event: 'change',
56
31
  },
57
- immediate: true,
32
+ ],
33
+ externalClasses: [
34
+ `${prefix}-class`,
35
+ ],
36
+ mixins: [ParentMixin(RELATION_MAP.SideBarItem)],
37
+ props: {
38
+ ...props,
58
39
  },
59
- dataValue: {
60
- handler(v) {
61
- const sideBarItems = this.children || [];
62
- sideBarItems.forEach((item, index) => {
63
- item.updateActive(v);
64
- item.isFirstChild = index === 0;
65
- item.isLastChild = index === sideBarItems.length - 1;
66
- });
67
- },
68
- immediate: true,
40
+ emits: [
41
+ 'click',
42
+ 'change',
43
+ ],
44
+ data() {
45
+ return {
46
+ classPrefix: name,
47
+ prefix,
48
+ tools,
49
+
50
+ dataValue: coalesce(this.value, this.defaultValue),
51
+ };
69
52
  },
70
- },
71
- methods: {
72
- innerAfterUnLinked(child) {
73
- const index = this.children.findIndex(item => item === child);
74
- this.children.splice(index, 1);
53
+ watch: {
54
+ value: {
55
+ handler(e) {
56
+ this.dataValue = e;
57
+ },
58
+ immediate: true,
59
+ },
60
+ dataValue: {
61
+ handler(v) {
62
+ const sideBarItems = this.children || [];
63
+ sideBarItems.forEach((item, index) => {
64
+ item.updateActive(v);
65
+ item.isFirstChild = index === 0;
66
+ item.isLastChild = index === sideBarItems.length - 1;
67
+ });
68
+ },
69
+ immediate: true,
70
+ },
75
71
  },
76
- doChange({ value, label }) {
77
- this._trigger('change', { value, label });
72
+ methods: {
73
+ innerAfterUnLinked(child) {
74
+ const index = this.children.findIndex(item => item === child);
75
+ this.children.splice(index, 1);
76
+ },
77
+ doChange({ value, label }) {
78
+ this._trigger('change', { value, label });
79
+ },
78
80
  },
79
- },
80
- });
81
+ }),
82
+ };
81
83
  </script>
82
84
  <style scoped src="./side-bar.css"></style>
@@ -1,22 +1,18 @@
1
1
  <template>
2
2
  <view
3
3
  :id="tId"
4
- :class="
5
- tools.cls(classPrefix, [
6
- ['active', active],
7
- ['disabled', disabled]
8
- ]) +
9
- ' ' +
10
- tClass
11
- "
12
- :style="tools._style([customStyle])"
4
+ :class="'' + tools.cls(classPrefix, [
5
+ ['active', active],
6
+ ['disabled', disabled]
7
+ ]) +
8
+ ' ' +
9
+ tClass"
10
+ :style="'' + tools._style([customStyle])"
13
11
  aria-role="button"
14
- :aria-label="
15
- ariaLabel ||
16
- (badgeProps && (badgeProps.dot || badgeProps.count)
17
- ? (active ? '已选中,' + label + tools.getBadgeAriaLabel({ ...badgeProps })
18
- : label + tools.getBadgeAriaLabel({ ...badgeProps })) : '')
19
- "
12
+ :aria-label="ariaLabel ||
13
+ (badgeProps && (badgeProps.dot || badgeProps.count)
14
+ ? (active ? '已选中,' + label + tools.getBadgeAriaLabel({ ...badgeProps })
15
+ : label + tools.getBadgeAriaLabel({ ...badgeProps })) : '')"
20
16
  :aria-disabled="disabled"
21
17
  @click="handleClick"
22
18
  >
@@ -50,15 +46,15 @@
50
46
  </block>
51
47
  <block v-if="badgeProps">
52
48
  <t-badge
53
- :color="badgeProps.color"
49
+ :color="badgeProps.color || ''"
54
50
  :content="label"
55
- :count="badgeProps.count"
56
- :dot="badgeProps.dot"
57
- :max-count="badgeProps.maxCount"
58
- :offset="badgeProps.offset"
59
- :shape="badgeProps.shape"
60
- :show-zero="badgeProps.showZero"
61
- :size="badgeProps.size"
51
+ :count="badgeProps.count || 0"
52
+ :dot="badgeProps.dot || false"
53
+ :max-count="badgeProps.maxCount || 99"
54
+ :offset="badgeProps.offset || []"
55
+ :shape="badgeProps.shape || 'circle'"
56
+ :show-zero="badgeProps.showZero || false"
57
+ :size="badgeProps.size || 'medium'"
62
58
  :t-class="badgeProps.tClass"
63
59
  :t-class-content="badgeProps.tClassContent"
64
60
  :t-class-count="badgeProps.tClassCount"
@@ -83,83 +79,87 @@ import { ChildrenMixin, RELATION_MAP } from '../common/relation';
83
79
  const name = `${prefix}-side-bar-item`;
84
80
 
85
81
 
86
- export default uniComponent({
87
- name,
88
- options: {
89
- styleIsolation: 'shared',
90
- },
91
- externalClasses: [
92
- `${prefix}-class`,
93
- ],
94
- mixins: [ChildrenMixin(RELATION_MAP.SideBarItem)],
82
+ export default {
95
83
  components: {
96
84
  TBadge,
97
85
  TIcon,
98
86
  },
99
- props: {
100
- ...props,
101
- tId: {
102
- type: String,
103
- default: '',
87
+ ...uniComponent({
88
+ name,
89
+ options: {
90
+ styleIsolation: 'shared',
104
91
  },
105
- },
106
- data() {
107
- return {
108
- classPrefix: name,
109
- prefix,
110
- active: false,
111
- isPre: false,
112
- isNext: false,
113
- tools,
114
- isFirstChild: false,
115
- isLastChild: false,
116
- };
117
- },
118
- computed: {
119
- iconCustomStyle() {
120
- return tools._style([
121
- {
122
- fontSize: 'var(--td-side-bar-icon-size, 20px)',
123
- marginRight: '2px',
124
- },
125
- this.innerIcon.style || '',
126
- ]);
92
+ externalClasses: [
93
+ `${prefix}-class`,
94
+ ],
95
+ mixins: [ChildrenMixin(RELATION_MAP.SideBarItem)],
96
+ props: {
97
+ ...props,
98
+ tId: {
99
+ type: String,
100
+ default: '',
101
+ },
127
102
  },
128
- },
129
- watch: {
130
- icon: {
131
- handler(v) {
132
- this.innerIcon = typeof v === 'string' ? { name: v } : v;
103
+ data() {
104
+ return {
105
+ classPrefix: name,
106
+ prefix,
107
+ active: false,
108
+ isPre: false,
109
+ isNext: false,
110
+ tools,
111
+ isFirstChild: false,
112
+ isLastChild: false,
113
+ };
114
+ },
115
+ computed: {
116
+ iconCustomStyle() {
117
+ if (!this.innerIcon) return '';
118
+
119
+ return tools._style([
120
+ {
121
+ fontSize: 'var(--td-side-bar-icon-size, 20px)',
122
+ marginRight: '2px',
123
+ },
124
+ this.innerIcon.style || '',
125
+ ]);
133
126
  },
134
- immediate: true,
135
127
  },
136
- disabled: {
137
- handler() {
138
- this.updateActive(this.value);
128
+ watch: {
129
+ icon: {
130
+ handler(v) {
131
+ this.innerIcon = typeof v === 'string' ? { name: v } : v;
132
+ },
133
+ immediate: true,
134
+ },
135
+ disabled: {
136
+ handler() {
137
+ this.updateActive(this.value);
138
+ },
139
+ immediate: true,
139
140
  },
140
- immediate: true,
141
141
  },
142
- },
143
- mounted() {
142
+ mounted() {
144
143
 
145
- },
146
- methods: {
147
- innerAfterLinked() {
148
- const parent = this[RELATION_MAP.SideBarItem];
149
- this.updateActive(parent.dataValue);
150
- },
151
- updateActive(value) {
152
- const active = value === this.value && !this.disabled;
153
- this.active = active;
154
144
  },
155
- handleClick() {
156
- if (this.disabled) return;
157
- const { value, label } = this;
145
+ methods: {
146
+ innerAfterLinked() {
147
+ const parent = this[RELATION_MAP.SideBarItem];
148
+ this.updateActive(parent.dataValue);
149
+ },
150
+ updateActive(value) {
151
+ const active = value === this.value && !this.disabled;
152
+ this.active = active;
153
+ },
154
+ handleClick() {
155
+ if (this.disabled) return;
156
+ const { value, label } = this;
158
157
 
159
- this[RELATION_MAP.SideBarItem]?.doChange({ value, label });
158
+ this[RELATION_MAP.SideBarItem]?.doChange({ value, label });
159
+ },
160
160
  },
161
- },
162
- });
161
+ }),
162
+ };
163
163
 
164
164
  </script>
165
165
  <style scoped src="./side-bar-item.css"></style>