@tdesign/uniapp 0.7.2 → 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 (199) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +32 -2
  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/README.en-US.md +6 -6
  26. package/dist/checkbox/README.md +5 -5
  27. package/dist/checkbox/checkbox.vue +127 -127
  28. package/dist/checkbox/props.ts +6 -6
  29. package/dist/checkbox/type.ts +6 -4
  30. package/dist/checkbox-group/checkbox-group.vue +175 -173
  31. package/dist/checkbox-group/props.ts +6 -6
  32. package/dist/checkbox-group/type.ts +6 -4
  33. package/dist/col/col.vue +26 -24
  34. package/dist/collapse/collapse.vue +83 -81
  35. package/dist/collapse-panel/collapse-panel.vue +121 -119
  36. package/dist/collapse-panel/props.ts +4 -4
  37. package/dist/collapse-panel/type.ts +2 -2
  38. package/dist/color-picker/README.md +1 -1
  39. package/dist/color-picker/color-picker.vue +324 -322
  40. package/dist/color-picker/props.ts +2 -2
  41. package/dist/color-picker/template.vue +14 -10
  42. package/dist/common/common.ts +1 -0
  43. package/dist/common/style/theme/index.css +57 -61
  44. package/dist/common/utils.js +7 -2
  45. package/dist/common/validator.js +172 -0
  46. package/dist/config-provider/README.en-US.md +184 -0
  47. package/dist/config-provider/README.md +234 -0
  48. package/dist/config-provider/config-provider.vue +105 -0
  49. package/dist/config-provider/config-store.js +70 -0
  50. package/dist/config-provider/props.ts +16 -0
  51. package/dist/config-provider/reactive-state.js +39 -0
  52. package/dist/config-provider/type.ts +401 -0
  53. package/dist/config-provider/use-config.js +29 -0
  54. package/dist/config-provider/utils.js +29 -0
  55. package/dist/count-down/count-down.vue +98 -97
  56. package/dist/date-time-picker/date-time-picker.vue +410 -395
  57. package/dist/demo/demo.vue +1 -0
  58. package/dist/dialog/dialog.vue +176 -173
  59. package/dist/divider/divider.vue +38 -36
  60. package/dist/draggable/draggable.vue +60 -58
  61. package/dist/drawer/README.md +1 -1
  62. package/dist/drawer/drawer.vue +48 -46
  63. package/dist/dropdown-item/dropdown-item.vue +209 -207
  64. package/dist/dropdown-item/props.ts +4 -4
  65. package/dist/dropdown-item/type.ts +3 -3
  66. package/dist/dropdown-menu/dropdown-menu.vue +93 -99
  67. package/dist/empty/empty.vue +43 -42
  68. package/dist/fab/fab.vue +88 -86
  69. package/dist/footer/footer.vue +36 -34
  70. package/dist/form/README.en-US.md +17 -24
  71. package/dist/form/README.md +18 -25
  72. package/dist/form/form.css +1 -166
  73. package/dist/form/form.vue +251 -236
  74. package/dist/form/props.ts +2 -21
  75. package/dist/form/type.ts +7 -70
  76. package/dist/form-item/README.en-US.md +4 -5
  77. package/dist/form-item/README.md +4 -5
  78. package/dist/form-item/form-item.css +69 -96
  79. package/dist/form-item/form-item.vue +315 -336
  80. package/dist/form-item/form-model.ts +125 -173
  81. package/dist/form-item/props.ts +4 -17
  82. package/dist/form-item/type.ts +43 -1
  83. package/dist/grid/grid.vue +53 -51
  84. package/dist/grid-item/grid-item.vue +121 -119
  85. package/dist/guide/README.md +1 -1
  86. package/dist/guide/guide.vue +281 -277
  87. package/dist/icon/README.md +2 -4
  88. package/dist/icon/icon.vue +78 -76
  89. package/dist/image/README.md +1 -1
  90. package/dist/image/image.vue +103 -101
  91. package/dist/image-viewer/image-viewer.vue +160 -158
  92. package/dist/image-viewer/props.ts +2 -2
  93. package/dist/image-viewer/type.ts +1 -1
  94. package/dist/index.js +3 -0
  95. package/dist/indexes/indexes.vue +264 -267
  96. package/dist/indexes-anchor/indexes-anchor.vue +41 -41
  97. package/dist/input/input.vue +192 -192
  98. package/dist/input/props.ts +6 -6
  99. package/dist/input/type.ts +3 -3
  100. package/dist/link/link.vue +73 -71
  101. package/dist/loading/loading.vue +59 -59
  102. package/dist/locale/ar_KW.ts +157 -0
  103. package/dist/locale/en_US.ts +146 -0
  104. package/dist/locale/it_IT.ts +145 -0
  105. package/dist/locale/ja_JP.ts +132 -0
  106. package/dist/locale/ko_KR.ts +132 -0
  107. package/dist/locale/ru_RU.ts +157 -0
  108. package/dist/locale/zh_CN.ts +133 -0
  109. package/dist/locale/zh_TW.ts +132 -0
  110. package/dist/message/message.vue +181 -173
  111. package/dist/message/props.ts +2 -2
  112. package/dist/message/type.ts +1 -1
  113. package/dist/message-item/message-item.vue +192 -184
  114. package/dist/mixins/using-config.js +39 -0
  115. package/dist/navbar/navbar.vue +201 -199
  116. package/dist/notice-bar/notice-bar.vue +175 -171
  117. package/dist/notice-bar/props.ts +2 -2
  118. package/dist/notice-bar/type.ts +1 -1
  119. package/dist/npm/dayjs/esm/locale/ar.js +81 -0
  120. package/dist/npm/dayjs/esm/locale/it.js +39 -0
  121. package/dist/overlay/overlay.vue +50 -48
  122. package/dist/picker/picker.vue +168 -161
  123. package/dist/picker-item/picker-item.vue +269 -269
  124. package/dist/popover/README.md +1 -1
  125. package/dist/popover/popover.vue +262 -261
  126. package/dist/popover/props.ts +4 -4
  127. package/dist/popover/type.ts +2 -2
  128. package/dist/popup/popup.vue +46 -45
  129. package/dist/progress/README.md +1 -1
  130. package/dist/progress/progress.vue +76 -76
  131. package/dist/pull-down-refresh/props.ts +2 -2
  132. package/dist/pull-down-refresh/pull-down-refresh.vue +240 -234
  133. package/dist/pull-down-refresh/type.ts +1 -1
  134. package/dist/qrcode/README.md +1 -1
  135. package/dist/qrcode/components/qrcode-canvas/qrcode-canvas.vue +340 -338
  136. package/dist/qrcode/components/qrcode-status/qrcode-status.vue +6 -6
  137. package/dist/qrcode/qrcode.vue +93 -87
  138. package/dist/radio/props.ts +6 -6
  139. package/dist/radio/radio.vue +118 -120
  140. package/dist/radio/type.ts +3 -3
  141. package/dist/radio-group/props.ts +4 -4
  142. package/dist/radio-group/radio-group.vue +136 -134
  143. package/dist/radio-group/type.ts +4 -4
  144. package/dist/rate/computed.js +2 -2
  145. package/dist/rate/props.ts +4 -4
  146. package/dist/rate/rate.vue +155 -154
  147. package/dist/rate/type.ts +2 -2
  148. package/dist/result/result.vue +41 -39
  149. package/dist/row/row.vue +38 -36
  150. package/dist/scroll-view/scroll-view.vue +24 -22
  151. package/dist/search/props.ts +2 -2
  152. package/dist/search/search.vue +127 -125
  153. package/dist/search/type.ts +1 -1
  154. package/dist/side-bar/side-bar.vue +57 -55
  155. package/dist/side-bar-item/side-bar-item.vue +86 -86
  156. package/dist/skeleton/skeleton.vue +126 -124
  157. package/dist/slider/README.md +1 -1
  158. package/dist/slider/props.ts +2 -2
  159. package/dist/slider/slider.vue +457 -457
  160. package/dist/slider/type.ts +1 -1
  161. package/dist/step-item/step-item.vue +77 -75
  162. package/dist/stepper/props.ts +2 -2
  163. package/dist/stepper/stepper.vue +168 -149
  164. package/dist/stepper/type.ts +1 -1
  165. package/dist/steps/props.ts +2 -2
  166. package/dist/steps/steps.vue +83 -81
  167. package/dist/steps/type.ts +1 -1
  168. package/dist/sticky/sticky.vue +104 -102
  169. package/dist/swipe-cell/swipe-cell.vue +91 -89
  170. package/dist/swiper/README.md +1 -1
  171. package/dist/swiper/swiper.vue +91 -89
  172. package/dist/swiper-nav/swiper-nav.vue +38 -36
  173. package/dist/switch/props.ts +2 -2
  174. package/dist/switch/switch.vue +62 -62
  175. package/dist/switch/type.ts +1 -1
  176. package/dist/tab-bar/tab-bar.vue +88 -86
  177. package/dist/tab-bar-item/tab-bar-item.vue +85 -82
  178. package/dist/tab-panel/tab-panel.vue +66 -64
  179. package/dist/tabs/tabs.vue +294 -287
  180. package/dist/tag/tag.vue +79 -77
  181. package/dist/textarea/props.ts +6 -6
  182. package/dist/textarea/textarea.vue +127 -126
  183. package/dist/textarea/type.ts +3 -3
  184. package/dist/toast/toast.vue +107 -106
  185. package/dist/transition/transition.vue +30 -28
  186. package/dist/tree-select/tree-select.vue +151 -151
  187. package/dist/types/config-provider.d.ts +7 -0
  188. package/dist/types/index.d.ts +2 -0
  189. package/dist/types/popover.d.ts +7 -0
  190. package/dist/upload/README.en-US.md +13 -14
  191. package/dist/upload/README.md +11 -12
  192. package/dist/upload/props.ts +2 -4
  193. package/dist/upload/type.ts +12 -11
  194. package/dist/upload/upload.css +1 -1
  195. package/dist/upload/upload.vue +672 -512
  196. package/dist/watermark/watermark.vue +151 -149
  197. package/global.d.ts +2 -0
  198. package/package.json +16 -2
  199. package/dist/form/form-item-props.ts +0 -56
@@ -4,7 +4,7 @@
4
4
  classPrefix + '__wrapper',
5
5
  tClass
6
6
  ]"
7
- :style="tools._style([utils.getStyles(isShow), customStyle, innerStyle])"
7
+ :style="'' + tools._style([utils.getStyles(isShow), customStyle, innerStyle])"
8
8
  >
9
9
  <t-badge
10
10
  v-if="badgeProps"
@@ -26,7 +26,7 @@
26
26
  utils.getClass(classPrefix, dataSize || 'medium', dataShape, dataBordered),
27
27
  tClassImage
28
28
  ]"
29
- :style="utils.getSize(dataSize, windowWidth)"
29
+ :style="'' + utils.getSize(dataSize, windowWidth)"
30
30
  :aria-label="ariaLabel || alt || '头像'"
31
31
  :aria-role="ariaRole || 'img'"
32
32
  :aria-hidden="ariaHidden"
@@ -92,109 +92,111 @@ import { ChildrenMixin, RELATION_MAP } from '../common/relation';
92
92
  const name = `${prefix}-avatar`;
93
93
 
94
94
 
95
- export default uniComponent({
96
- name,
97
- options: {
98
- styleIsolation: 'shared',
99
- },
100
- externalClasses: [
101
- `${prefix}-class`,
102
- `${prefix}-class-image`,
103
- `${prefix}-class-icon`,
104
- `${prefix}-class-alt`,
105
- `${prefix}-class-content`,
106
- ],
107
- mixins: [ChildrenMixin(RELATION_MAP.Avatar)],
95
+ export default {
108
96
  components: {
109
97
  TIcon,
110
98
  TBadge,
111
99
  TImage,
112
100
  },
113
- props: {
114
- ...avatarProps,
115
- },
116
- data() {
117
- return {
118
- prefix,
119
- classPrefix: name,
120
- isShow: true,
121
- zIndex: 0,
122
- windowWidth: systemInfo.windowWidth,
123
- utils,
124
- tools,
101
+ ...uniComponent({
102
+ name,
103
+ options: {
104
+ styleIsolation: 'shared',
105
+ },
106
+ externalClasses: [
107
+ `${prefix}-class`,
108
+ `${prefix}-class-image`,
109
+ `${prefix}-class-icon`,
110
+ `${prefix}-class-alt`,
111
+ `${prefix}-class-content`,
112
+ ],
113
+ mixins: [ChildrenMixin(RELATION_MAP.Avatar)],
114
+ props: {
115
+ ...avatarProps,
116
+ },
117
+ data() {
118
+ return {
119
+ prefix,
120
+ classPrefix: name,
121
+ isShow: true,
122
+ zIndex: 0,
123
+ windowWidth: systemInfo.windowWidth,
124
+ utils,
125
+ tools,
125
126
 
126
- iconName: '',
127
- iconData: {},
127
+ iconName: '',
128
+ iconData: {},
128
129
 
129
- dataShape: this.shape,
130
- dataSize: this.size,
131
- dataBordered: this.bordered,
132
- innerStyle: '',
133
- };
134
- },
135
- computed: {
136
- iconCustomStyle() {
137
- const fontSize = {
138
- small: 'var(--td-avatar-icon-small-font-size, 20px)',
139
- medium: 'var(--td-avatar-icon-medium-font-size, 24px)',
140
- large: 'var(--td-avatar-icon-large-font-size, 32px)',
130
+ dataShape: this.shape,
131
+ dataSize: this.size,
132
+ dataBordered: this.bordered,
133
+ innerStyle: '',
141
134
  };
142
-
143
- return tools._style([
144
- {
145
- fontSize: this.iconData.size
146
- ? addUnit(this.iconData.size)
147
- : fontSize[this.dataSize],
148
- },
149
- this.iconData.style || '',
150
- ]);
151
- },
152
- imageCustomStyle() {
153
- return tools._style([
154
- {
155
- width: '100%',
156
- height: '100%',
157
- },
158
- this.imageProps?.style || '',
159
- ]);
160
135
  },
161
- },
162
- watch: {
163
- icon: {
164
- handler(t) {
165
- const obj = setIcon('icon', t, '');
136
+ computed: {
137
+ iconCustomStyle() {
138
+ const fontSize = {
139
+ small: 'var(--td-avatar-icon-small-font-size, 20px)',
140
+ medium: 'var(--td-avatar-icon-medium-font-size, 24px)',
141
+ large: 'var(--td-avatar-icon-large-font-size, 32px)',
142
+ };
166
143
 
167
- Object.keys(obj).forEach((key) => {
168
- this[key] = obj[key];
169
- });
144
+ return tools._style([
145
+ {
146
+ fontSize: this.iconData.size
147
+ ? addUnit(this.iconData.size)
148
+ : fontSize[this.dataSize],
149
+ },
150
+ this.iconData.style || '',
151
+ ]);
152
+ },
153
+ imageCustomStyle() {
154
+ return tools._style([
155
+ {
156
+ width: '100%',
157
+ height: '100%',
158
+ },
159
+ this.imageProps?.style || '',
160
+ ]);
170
161
  },
171
- immediate: true,
172
162
  },
163
+ watch: {
164
+ icon: {
165
+ handler(t) {
166
+ const obj = setIcon('icon', t, '');
173
167
 
174
- },
175
- mounted() {
168
+ Object.keys(obj).forEach((key) => {
169
+ this[key] = obj[key];
170
+ });
171
+ },
172
+ immediate: true,
173
+ },
176
174
 
177
- },
178
- methods: {
179
- innerAfterLinked() {
180
- this.dataShape = this.shape || this[RELATION_MAP.Avatar]?.shape || 'circle';
181
- this.dataSize = this.size || this[RELATION_MAP.Avatar]?.size;
182
- this.dataBordered = true;
183
175
  },
184
- hide() {
185
- this.isShow = false;
176
+ mounted() {
177
+
186
178
  },
187
- onLoadError(e) {
188
- if (this.hideOnLoadFailed) {
179
+ methods: {
180
+ innerAfterLinked() {
181
+ this.dataShape = this.shape || this[RELATION_MAP.Avatar]?.shape || 'circle';
182
+ this.dataSize = this.size || this[RELATION_MAP.Avatar]?.size;
183
+ this.dataBordered = true;
184
+ },
185
+ hide() {
189
186
  this.isShow = false;
190
- }
191
- this.$emit('error', e && e.e);
192
- },
193
- setStyle(val = '') {
194
- this.innerStyle = val;
187
+ },
188
+ onLoadError(e) {
189
+ if (this.hideOnLoadFailed) {
190
+ this.isShow = false;
191
+ }
192
+ this.$emit('error', e && e.e);
193
+ },
194
+ setStyle(val = '') {
195
+ this.innerStyle = val;
196
+ },
195
197
  },
196
- },
197
- });
198
+ }),
199
+ };
198
200
 
199
201
  </script>
200
202
  <style scoped src="./avatar.css"></style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <view
3
- :style="tools._style([customStyle])"
3
+ :style="'' + tools._style([customStyle])"
4
4
  :class="className"
5
5
  >
6
6
  <slot />
@@ -39,81 +39,83 @@ const name = `${prefix}-avatar-group`;
39
39
  const AVATAR_GROUP_INIT_Z_INDEX = 50;
40
40
 
41
41
 
42
- export default uniComponent({
43
- name,
44
- options: {
45
- styleIsolation: 'shared',
46
- },
47
- externalClasses: [
48
- `${prefix}-class`,
49
- `${prefix}-class-content`,
50
- `${prefix}-class-image`,
51
- ],
52
- mixins: [ParentMixin(RELATION_MAP.Avatar)],
42
+ export default {
53
43
  components: {
54
44
  TAvatar,
55
45
  },
56
- props: {
57
- ...avatarGroupProps,
58
- },
59
- data() {
60
- return {
61
- prefix,
62
- classPrefix: name,
63
- hasChild: true,
64
- length: 0,
65
- className: '',
66
- tools,
67
- };
68
- },
69
- watch: {
70
- cascading: 'setClass',
71
- size: 'setClass',
72
- },
73
- mounted() {
74
- this.setClass();
75
- this.length = this.children?.length || 0;
76
- if (this.length) {
77
- this.handleMax();
78
- }
79
- },
80
- methods: {
81
- setClass() {
82
- const { cascading, size } = this;
83
- const direction = cascading.split('-')[0];
84
- const classList = [
85
- name,
86
- this.tClass,
87
- `${name}-offset-${direction}`,
88
- `${name}-offset-${direction}-${size.indexOf('px') > -1 ? 'medium' : size || 'medium'}`,
89
- ];
90
-
91
- this.className = classList.join(' ');
46
+ ...uniComponent({
47
+ name,
48
+ options: {
49
+ styleIsolation: 'shared',
50
+ },
51
+ externalClasses: [
52
+ `${prefix}-class`,
53
+ `${prefix}-class-content`,
54
+ `${prefix}-class-image`,
55
+ ],
56
+ mixins: [ParentMixin(RELATION_MAP.Avatar)],
57
+ props: {
58
+ ...avatarGroupProps,
92
59
  },
60
+ data() {
61
+ return {
62
+ prefix,
63
+ classPrefix: name,
64
+ hasChild: true,
65
+ length: 0,
66
+ className: '',
67
+ tools,
68
+ };
69
+ },
70
+ watch: {
71
+ cascading: 'setClass',
72
+ size: 'setClass',
73
+ },
74
+ mounted() {
75
+ this.setClass();
76
+ this.length = this.children?.length || 0;
77
+ if (this.length) {
78
+ this.handleMax();
79
+ }
80
+ },
81
+ methods: {
82
+ setClass() {
83
+ const { cascading, size } = this;
84
+ const direction = cascading.split('-')[0];
85
+ const classList = [
86
+ name,
87
+ this.tClass,
88
+ `${name}-offset-${direction}`,
89
+ `${name}-offset-${direction}-${size.indexOf('px') > -1 ? 'medium' : size || 'medium'}`,
90
+ ];
91
+
92
+ this.className = classList.join(' ');
93
+ },
93
94
 
94
- handleMax() {
95
- const { max, cascading } = this;
96
- const len = this.children.length;
97
- if (!max || max > len) return;
95
+ handleMax() {
96
+ const { max, cascading } = this;
97
+ const len = this.children.length;
98
+ if (!max || max > len) return;
98
99
 
99
- const restAvatars = this.children.splice(max, len - max);
100
+ const restAvatars = this.children.splice(max, len - max);
100
101
 
101
- const isLeft = cascading === 'left-up';
102
- this.children.forEach((child, index) => {
103
- child.setStyle({
104
- zIndex: isLeft && `calc(var(--td-avatar-group-init-z-index, ${AVATAR_GROUP_INIT_Z_INDEX}) - ${index})`,
105
- padding: 'var(--td-avatar-group-line-spacing, 2px) 0',
102
+ const isLeft = cascading === 'left-up';
103
+ this.children.forEach((child, index) => {
104
+ child.setStyle({
105
+ zIndex: isLeft && `calc(var(--td-avatar-group-init-z-index, ${AVATAR_GROUP_INIT_Z_INDEX}) - ${index})`,
106
+ padding: 'var(--td-avatar-group-line-spacing, 2px) 0',
107
+ });
106
108
  });
107
- });
108
109
 
109
- restAvatars.forEach((child) => {
110
- child.hide();
111
- });
112
- },
113
- onCollapsedItemClick(e) {
114
- this.$emit('collapsed-item-click', e);
110
+ restAvatars.forEach((child) => {
111
+ child.hide();
112
+ });
113
+ },
114
+ onCollapsedItemClick(e) {
115
+ this.$emit('collapsed-item-click', e);
116
+ },
115
117
  },
116
- },
117
- });
118
+ }),
119
+ };
118
120
  </script>
119
121
  <style scoped src="./avatar-group.css"></style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <view
3
3
  v-if="!hidden"
4
- :style="tools._style([customStyle])"
4
+ :style="'' + tools._style([customStyle])"
5
5
  :class="tClass + ' ' + tools.cls(classPrefix, [['fixed', fixed], theme])"
6
6
  aria-role="button"
7
7
  @click="toTop"
@@ -50,71 +50,73 @@ import { ChildrenMixin, RELATION_MAP } from '../common/relation';
50
50
 
51
51
  const name = `${prefix}-back-top`;
52
52
 
53
- export default uniComponent({
54
- name,
55
- options: {
56
- styleIsolation: 'shared',
57
- },
58
- externalClasses: [
59
- `${prefix}-class`,
60
- `${prefix}-class-icon`,
61
- `${prefix}-class-text`,
62
- ],
63
- mixins: [
64
- ChildrenMixin(RELATION_MAP.BackTop),
65
- ],
53
+ export default {
66
54
  components: {
67
55
  TIcon,
68
56
  },
69
- props: {
70
- ...props,
71
- },
72
- emits: [
73
- 'to-top',
74
- ],
75
- watch: {
76
- icon() {
77
- this.setIcon();
57
+ ...uniComponent({
58
+ name,
59
+ options: {
60
+ styleIsolation: 'shared',
61
+ },
62
+ externalClasses: [
63
+ `${prefix}-class`,
64
+ `${prefix}-class-icon`,
65
+ `${prefix}-class-text`,
66
+ ],
67
+ mixins: [
68
+ ChildrenMixin(RELATION_MAP.BackTop),
69
+ ],
70
+ props: {
71
+ ...props,
78
72
  },
79
- scrollTop: {
80
- handler(value) {
81
- const { visibilityHeight } = this;
82
- this.hidden = value < visibilityHeight;
73
+ emits: [
74
+ 'to-top',
75
+ ],
76
+ watch: {
77
+ icon() {
78
+ this.setIcon();
79
+ },
80
+ scrollTop: {
81
+ handler(value) {
82
+ const { visibilityHeight } = this;
83
+ this.hidden = value < visibilityHeight;
84
+ },
85
+ immediate: true,
83
86
  },
84
- immediate: true,
85
87
  },
86
- },
87
- mounted() {
88
- const { icon } = this;
89
- this.setIcon(icon);
90
- },
91
- methods: {
92
- setIcon(v) {
93
- this.innerIcon = calcIcon(v, 'backtop');
88
+ mounted() {
89
+ const { icon } = this;
90
+ this.setIcon(icon);
94
91
  },
92
+ methods: {
93
+ setIcon(v) {
94
+ this.innerIcon = calcIcon(v, 'backtop');
95
+ },
95
96
 
96
- toTop() {
97
- this.$emit('to-top');
98
- if (this[RELATION_MAP.BackTop]) {
99
- this[RELATION_MAP.BackTop]?.scrollToTop();
100
- this.hidden = true;
101
- } else {
102
- uni.pageScrollTo({
103
- scrollTop: 0,
104
- duration: 300,
105
- });
106
- }
97
+ toTop() {
98
+ this.$emit('to-top');
99
+ if (this[RELATION_MAP.BackTop]) {
100
+ this[RELATION_MAP.BackTop]?.scrollToTop();
101
+ this.hidden = true;
102
+ } else {
103
+ uni.pageScrollTo({
104
+ scrollTop: 0,
105
+ duration: 300,
106
+ });
107
+ }
108
+ },
107
109
  },
108
- },
109
- data() {
110
- return {
111
- prefix,
112
- classPrefix: name,
113
- innerIcon: null,
114
- hidden: true,
115
- tools,
116
- };
117
- },
118
- });
110
+ data() {
111
+ return {
112
+ prefix,
113
+ classPrefix: name,
114
+ innerIcon: null,
115
+ hidden: true,
116
+ tools,
117
+ };
118
+ },
119
+ }),
120
+ };
119
121
  </script>
120
122
  <style scoped src="./back-top.css"></style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <view
3
- :style="tools._style([customStyle])"
3
+ :style="'' + tools._style([customStyle])"
4
4
  :class="classPrefix + ' ' + (useOuterClass ? classPrefix + '__' + shape + '-outer' : '') + tClass"
5
5
  :aria-labelledby="labelID"
6
6
  :aria-describedby="descriptionID"
@@ -8,7 +8,7 @@
8
8
  >
9
9
  <view
10
10
  :id="labelID"
11
- :class="tools.cls(classPrefix + '__content', [['empty', !content && !hasChild]]) + ' ' + tClassContent"
11
+ :class="'' + tools.cls(classPrefix + '__content', [['empty', !content && !hasChild]]) + ' ' + tClassContent"
12
12
  :aria-hidden="true"
13
13
  >
14
14
  <!-- #ifdef H5 -->
@@ -34,19 +34,19 @@
34
34
  </text>
35
35
  </view>
36
36
  <view
37
- v-if="isShowBadge({ dot, count, showZero }) || count === null"
37
+ v-if="isShowBadge || count === null"
38
38
  :id="descriptionID"
39
39
  :aria-hidden="true"
40
- :aria-label="ariaLabel || tools.getBadgeAriaLabel({ dot, count, maxCount })"
40
+ :aria-label="ariaLabel || tools.getBadgeAriaLabel({ dot: dot, count: count, maxCount: maxCount })"
41
41
  :class="[
42
- getBadgeInnerClass({ classPrefix, dot, size, shape, count }) + ' ' + prefix + '-has-count ',
42
+ getBadgeInnerClass + ' ' + prefix + '-has-count ',
43
43
  tClassCount
44
44
  ]"
45
- :style="tools._style([getBadgeStyles({ color, offset })])"
45
+ :style="'' + tools._style([getBadgeStyles])"
46
46
  >
47
47
  <view :class="classPrefix + '__count'">
48
- <template v-if="isShowBadge({ dot, count, showZero })">
49
- {{ getBadgeValue({ dot, count, maxCount }) }}
48
+ <template v-if="isShowBadge">
49
+ {{ getBadgeValue }}
50
50
  </template>
51
51
  <slot
52
52
  else
@@ -75,58 +75,68 @@ const name = `${prefix}-badge`;
75
75
  const getUniqueID = uniqueFactory('badge');
76
76
 
77
77
 
78
- export default uniComponent({
79
- name,
80
- options: {
81
- styleIsolation: 'shared',
82
- },
83
- externalClasses: [
84
- `${prefix}-class`,
85
- `${prefix}-class-count`,
86
- `${prefix}-class-content`,
87
- ],
88
- props: {
89
- ...props,
90
- },
91
- data() {
92
- return {
93
- prefix,
94
- classPrefix: name,
95
- value: '',
96
- labelID: '',
97
- descriptionID: '',
98
- tools,
99
- useOuterClass: false,
100
- };
101
- },
102
- computed: {
103
- hasChild() {
104
- return !!this.$slots?.default;
78
+ export default {
79
+ ...uniComponent({
80
+ name,
81
+ options: {
82
+ styleIsolation: 'shared',
105
83
  },
106
- },
107
- mounted() {
108
- const e = getUniqueID();
109
- this.labelID = `${e}_label`;
110
- this.descriptionID = `${e}_description`;
111
- this.checkForActualContent();
112
- },
113
- methods: {
114
- getBadgeValue,
115
- getBadgeStyles,
116
- getBadgeInnerClass,
117
- isShowBadge,
118
- checkForActualContent() {
119
- const target = ['ribbon', 'ribbon-right', 'ribbon-left', 'triangle-right', 'triangle-left'];
120
- if (this.content || !target.includes(this.shape)) {
121
- this.useOuterClass = false;
122
- return;
123
- }
124
- return getRect(this, `.${name}__content`).then((rect) => {
125
- const hasSlotContent = rect.width > 0 || rect.height > 0;
126
- this.useOuterClass = !hasSlotContent;
127
- });
84
+ externalClasses: [
85
+ `${prefix}-class`,
86
+ `${prefix}-class-count`,
87
+ `${prefix}-class-content`,
88
+ ],
89
+ props: {
90
+ ...props,
128
91
  },
129
- },
130
- });
92
+ data() {
93
+ return {
94
+ prefix,
95
+ classPrefix: name,
96
+ value: '',
97
+ labelID: '',
98
+ descriptionID: '',
99
+ tools,
100
+ useOuterClass: false,
101
+ };
102
+ },
103
+ computed: {
104
+ hasChild() {
105
+ return !!this.$slots?.default;
106
+ },
107
+ getBadgeValue() {
108
+ return getBadgeValue(this);
109
+ },
110
+ getBadgeStyles() {
111
+ return getBadgeStyles(this);
112
+ },
113
+ getBadgeInnerClass() {
114
+ return getBadgeInnerClass(this);
115
+ },
116
+ isShowBadge() {
117
+ return isShowBadge(this);
118
+ },
119
+ },
120
+ mounted() {
121
+ const e = getUniqueID();
122
+ this.labelID = `${e}_label`;
123
+ this.descriptionID = `${e}_description`;
124
+ this.checkForActualContent();
125
+ },
126
+ methods: {
127
+ checkForActualContent() {
128
+ const target = ['ribbon', 'ribbon-right', 'ribbon-left', 'triangle-right', 'triangle-left'];
129
+ if (this.content || !target.includes(this.shape)) {
130
+ this.useOuterClass = false;
131
+ return;
132
+ }
133
+ return getRect(this, `.${name}__content`).then((rect) => {
134
+ const hasSlotContent = rect.width > 0 || rect.height > 0;
135
+ this.useOuterClass = !hasSlotContent;
136
+ });
137
+ },
138
+ },
139
+ }),
140
+ };
131
141
  </script>
132
142
  <style scoped src="./badge.css"></style>