@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
- :class="tools.cls(classPrefix, [['fixed', fixed]]) + ' ' + visibleClass + ' ' + tClass"
4
- :style="tools._style([boxStyle, customStyle])"
3
+ :class="'' + tools.cls(classPrefix, [['fixed', fixed]]) + ' ' + visibleClass + ' ' + tClass"
4
+ :style="'' + tools._style([boxStyle, customStyle])"
5
5
  >
6
6
  <view
7
7
  v-if="fixed && placeholder"
@@ -65,242 +65,244 @@ const BASE_MENU_RECT = {
65
65
  };
66
66
 
67
67
 
68
- export default uniComponent({
69
- name,
70
- options: {
71
- styleIsolation: 'shared',
72
- },
73
- externalClasses: [
74
- `${prefix}-class`,
75
- `${prefix}-class-placeholder`,
76
- `${prefix}-class-content`,
77
- `${prefix}-class-title`,
78
- `${prefix}-class-left`,
79
- `${prefix}-class-center`,
80
- `${prefix}-class-left-icon`,
81
- `${prefix}-class-home-icon`,
82
- `${prefix}-class-capsule`,
83
- `${prefix}-class-nav-btn`,
84
- ],
68
+ export default {
85
69
  components: {
86
70
  TIcon,
87
71
  },
88
- props: {
89
- ...props,
90
- },
91
- emits: [
92
- 'fail',
93
- 'complete',
94
- 'success',
95
- 'go-back',
96
- 'right-click',
97
- ],
98
- data() {
99
- return {
100
- timer: null,
101
- prefix,
102
- classPrefix: name,
103
- boxStyle: '',
104
- showTitle: '',
105
- hideLeft: false,
106
- hideCenter: false,
107
- iMenuRect: null,
108
- iLeftRect: null,
109
- iBoxStyle: {},
110
- tools,
72
+ ...uniComponent({
73
+ name,
74
+ options: {
75
+ styleIsolation: 'shared',
76
+ },
77
+ externalClasses: [
78
+ `${prefix}-class`,
79
+ `${prefix}-class-placeholder`,
80
+ `${prefix}-class-content`,
81
+ `${prefix}-class-title`,
82
+ `${prefix}-class-left`,
83
+ `${prefix}-class-center`,
84
+ `${prefix}-class-left-icon`,
85
+ `${prefix}-class-home-icon`,
86
+ `${prefix}-class-capsule`,
87
+ `${prefix}-class-nav-btn`,
88
+ ],
89
+ props: {
90
+ ...props,
91
+ },
92
+ emits: [
93
+ 'fail',
94
+ 'complete',
95
+ 'success',
96
+ 'go-back',
97
+ 'right-click',
98
+ ],
99
+ data() {
100
+ return {
101
+ timer: null,
102
+ prefix,
103
+ classPrefix: name,
104
+ boxStyle: '',
105
+ showTitle: '',
106
+ hideLeft: false,
107
+ hideCenter: false,
108
+ iMenuRect: null,
109
+ iLeftRect: null,
110
+ iBoxStyle: {},
111
+ tools,
111
112
 
112
- visibleClass: '',
113
+ visibleClass: '',
113
114
 
114
- };
115
- },
116
- computed: {
117
- leftArrowCustomStyle() {
118
- return 'font-size: var(--td-navbar-left-arrow-size, 24px);';
115
+ };
119
116
  },
120
- },
121
- watch: {
122
- visible(visible) {
123
- const { animation } = this;
124
- const visibleClass = `${name}${visible ? '--visible' : '--hide'}`;
125
- this.visibleClass = `${visibleClass}${animation ? '-animation' : ''}`;
126
-
127
- if (this.timer) {
128
- clearTimeout(this.timer);
129
- }
130
- if (animation) {
131
- this.timer = setTimeout(() => {
132
- this.visibleClass = visibleClass;
133
- }, 300);
134
- }
117
+ computed: {
118
+ leftArrowCustomStyle() {
119
+ return 'font-size: var(--td-navbar-left-arrow-size, 24px);';
120
+ },
135
121
  },
122
+ watch: {
123
+ visible(visible) {
124
+ const { animation } = this;
125
+ const visibleClass = `${name}${visible ? '--visible' : '--hide'}`;
126
+ this.visibleClass = `${visibleClass}${animation ? '-animation' : ''}`;
136
127
 
137
- title: 'onWatchTitle',
138
- titleMaxLength: 'onWatchTitle',
139
- },
128
+ if (this.timer) {
129
+ clearTimeout(this.timer);
130
+ }
131
+ if (animation) {
132
+ this.timer = setTimeout(() => {
133
+ this.visibleClass = visibleClass;
134
+ }, 300);
135
+ }
136
+ },
140
137
 
141
- mounted() {
142
- this.onWatchTitle();
143
- this.initStyle();
144
- this.getLeftRect();
145
- this.onMenuButtonBoundingClientRectWeightChange();
138
+ title: 'onWatchTitle',
139
+ titleMaxLength: 'onWatchTitle',
140
+ },
146
141
 
147
- this.onWindowResizeCallback = () => {
142
+ mounted() {
143
+ this.onWatchTitle();
148
144
  this.initStyle();
149
145
  this.getLeftRect();
150
- };
151
- uni.onWindowResize(this.onWindowResizeCallback);
152
- },
146
+ this.onMenuButtonBoundingClientRectWeightChange();
153
147
 
154
- beforeUnmount() {
155
- this.offMenuButtonBoundingClientRectWeightChange();
156
- if (this.onWindowResizeCallback) {
157
- uni.offWindowResize(this.onWindowResizeCallback);
158
- }
159
- },
160
- methods: {
161
- initStyle() {
148
+ this.onWindowResizeCallback = () => {
149
+ this.initStyle();
150
+ this.getLeftRect();
151
+ };
152
+ uni.onWindowResize(this.onWindowResizeCallback);
153
+ },
154
+
155
+ beforeUnmount() {
156
+ this.offMenuButtonBoundingClientRectWeightChange();
157
+ if (this.onWindowResizeCallback) {
158
+ uni.offWindowResize(this.onWindowResizeCallback);
159
+ }
160
+ },
161
+ methods: {
162
+ initStyle() {
162
163
  // 每次重新获取最新的窗口信息,避免 H5 下窗口大小变化后使用缓存值
163
- const windowInfo = getWindowInfo();
164
- this.getMenuRect(windowInfo);
164
+ const windowInfo = getWindowInfo();
165
+ this.getMenuRect(windowInfo);
165
166
 
166
- const { iMenuRect, iLeftRect } = this;
167
+ const { iMenuRect, iLeftRect } = this;
167
168
 
168
- if (!iMenuRect || !iLeftRect || !windowInfo) return;
169
+ if (!iMenuRect || !iLeftRect || !windowInfo) return;
169
170
 
170
- const iBoxStyle = {
171
- '--td-navbar-padding-top': `${windowInfo.statusBarHeight}px`,
172
- '--td-navbar-right': `${windowInfo.windowWidth - iMenuRect.left}px`, // 导航栏右侧小程序胶囊按钮宽度
173
- '--td-navbar-left-max-width': `${iMenuRect.left}px`, // 左侧内容最大宽度
174
- '--td-navbar-capsule-height': `${iMenuRect.height}px`, // 胶囊高度
175
- '--td-navbar-capsule-width': `${iMenuRect.width}px`, // 胶囊宽度
176
- '--td-navbar-height': `${(iMenuRect.top - windowInfo.statusBarHeight) * 2 + iMenuRect.height}px`,
177
- };
178
- // #ifdef H5 || APP-PLUS
179
- delete iBoxStyle['--td-navbar-height'];
180
- // #endif
171
+ const iBoxStyle = {
172
+ '--td-navbar-padding-top': `${windowInfo.statusBarHeight}px`,
173
+ '--td-navbar-right': `${windowInfo.windowWidth - iMenuRect.left}px`, // 导航栏右侧小程序胶囊按钮宽度
174
+ '--td-navbar-left-max-width': `${iMenuRect.left}px`, // 左侧内容最大宽度
175
+ '--td-navbar-capsule-height': `${iMenuRect.height}px`, // 胶囊高度
176
+ '--td-navbar-capsule-width': `${iMenuRect.width}px`, // 胶囊宽度
177
+ '--td-navbar-height': `${(iMenuRect.top - windowInfo.statusBarHeight) * 2 + iMenuRect.height}px`,
178
+ };
179
+ // #ifdef H5 || APP-PLUS
180
+ delete iBoxStyle['--td-navbar-height'];
181
+ // #endif
181
182
 
182
- this.calcCenterStyle(iLeftRect, iMenuRect, iBoxStyle, windowInfo);
183
- },
184
- onWatchTitle() {
185
- const { title } = this;
186
- const titleMaxLength = this.titleMaxLength || Number.MAX_SAFE_INTEGER;
187
- let temp = title.slice(0, titleMaxLength);
188
- if (titleMaxLength < title.length) temp += '...';
183
+ this.calcCenterStyle(iLeftRect, iMenuRect, iBoxStyle, windowInfo);
184
+ },
185
+ onWatchTitle() {
186
+ const { title } = this;
187
+ const titleMaxLength = this.titleMaxLength || Number.MAX_SAFE_INTEGER;
188
+ let temp = title.slice(0, titleMaxLength);
189
+ if (titleMaxLength < title.length) temp += '...';
189
190
 
190
- this.showTitle = temp;
191
- },
191
+ this.showTitle = temp;
192
+ },
192
193
 
193
- calcCenterStyle(
194
- leftRect,
195
- menuRect,
196
- defaultStyle,
197
- windowInfo,
198
- ) {
199
- const curWindowInfo = windowInfo || getWindowInfo();
200
- const maxSpacing = Math.max(leftRect.right, curWindowInfo.windowWidth - menuRect.left);
201
- const iBoxStyle = {
202
- ...defaultStyle,
203
- 'z-index': this.zIndex,
204
- '--td-navbar-center-left': `${maxSpacing}px`, // 标题左侧距离
205
- '--td-navbar-center-width': `${Math.max(menuRect.left - maxSpacing, 0)}px`, // 标题宽度
206
- };
194
+ calcCenterStyle(
195
+ leftRect,
196
+ menuRect,
197
+ defaultStyle,
198
+ windowInfo,
199
+ ) {
200
+ const curWindowInfo = windowInfo || getWindowInfo();
201
+ const maxSpacing = Math.max(leftRect.right, curWindowInfo.windowWidth - menuRect.left);
202
+ const iBoxStyle = {
203
+ ...defaultStyle,
204
+ 'z-index': this.zIndex,
205
+ '--td-navbar-center-left': `${maxSpacing}px`, // 标题左侧距离
206
+ '--td-navbar-center-width': `${Math.max(menuRect.left - maxSpacing, 0)}px`, // 标题宽度
207
+ };
207
208
 
208
- const boxStyle = Object.entries(iBoxStyle)
209
- .map(([k, v]) => `${k}: ${v}`)
210
- .join('; ');
209
+ const boxStyle = Object.entries(iBoxStyle)
210
+ .map(([k, v]) => `${k}: ${v}`)
211
+ .join('; ');
211
212
 
212
- this.boxStyle = boxStyle;
213
- this.iBoxStyle = iBoxStyle;
214
- },
213
+ this.boxStyle = boxStyle;
214
+ this.iBoxStyle = iBoxStyle;
215
+ },
215
216
 
216
- getLeftRect() {
217
- getRect(this, `.${name}__left`).then((res) => {
218
- if (res.right > this.iLeftRect.right) {
219
- this.calcCenterStyle(res, this.iMenuRect, this.iBoxStyle);
220
- }
221
- });
222
- },
217
+ getLeftRect() {
218
+ getRect(this, `.${name}__left`).then((res) => {
219
+ if (res.right > this.iLeftRect.right) {
220
+ this.calcCenterStyle(res, this.iMenuRect, this.iBoxStyle);
221
+ }
222
+ });
223
+ },
223
224
 
224
- getMenuRect(windowInfo) {
225
- const curWindowInfo = windowInfo || getWindowInfo();
226
- // 场景值为1177(视频号直播间)和1175 (视频号profile页)时,小程序禁用了 uni.getMenuButtonBoundingClientRect
227
- let rect = {
228
- ...BASE_MENU_RECT,
229
- right: curWindowInfo.windowWidth - BASE_MENU_RECT.right, // 动态计算,避免 H5 下缓存
230
- bottom: BASE_MENU_RECT.top + BASE_MENU_RECT.height,
231
- left: curWindowInfo.windowWidth - BASE_MENU_RECT.right - BASE_MENU_RECT.width,
232
- };
233
- if (uni.getMenuButtonBoundingClientRect
225
+ getMenuRect(windowInfo) {
226
+ const curWindowInfo = windowInfo || getWindowInfo();
227
+ // 场景值为1177(视频号直播间)和1175 (视频号profile页)时,小程序禁用了 uni.getMenuButtonBoundingClientRect
228
+ let rect = {
229
+ ...BASE_MENU_RECT,
230
+ right: curWindowInfo.windowWidth - BASE_MENU_RECT.right, // 动态计算,避免 H5 下缓存
231
+ bottom: BASE_MENU_RECT.top + BASE_MENU_RECT.height,
232
+ left: curWindowInfo.windowWidth - BASE_MENU_RECT.right - BASE_MENU_RECT.width,
233
+ };
234
+ if (uni.getMenuButtonBoundingClientRect
234
235
  && typeof uni.getMenuButtonBoundingClientRect === 'function'
235
236
  && typeof uni.getMenuButtonBoundingClientRect() === 'object'
236
- ) {
237
- rect = uni.getMenuButtonBoundingClientRect() || {};
238
- }
237
+ ) {
238
+ rect = uni.getMenuButtonBoundingClientRect() || {};
239
+ }
239
240
 
240
- this.iMenuRect = rect;
241
- this.iLeftRect = {
242
- right: curWindowInfo.windowWidth - rect.left,
243
- };
244
- },
241
+ this.iMenuRect = rect;
242
+ this.iLeftRect = {
243
+ right: curWindowInfo.windowWidth - rect.left,
244
+ };
245
+ },
245
246
 
246
- onMenuButtonBoundingClientRectWeightChange() {
247
- if (uni.onMenuButtonBoundingClientRectWeightChange) {
248
- this.onMenuButtonBoundingClientRectWeightChangeCallback = res => this.queryElements(res);
247
+ onMenuButtonBoundingClientRectWeightChange() {
248
+ if (uni.onMenuButtonBoundingClientRectWeightChange) {
249
+ this.onMenuButtonBoundingClientRectWeightChangeCallback = res => this.queryElements(res);
249
250
 
250
- uni.onMenuButtonBoundingClientRectWeightChange(this.onMenuButtonBoundingClientRectWeightChangeCallback);
251
- }
252
- },
251
+ uni.onMenuButtonBoundingClientRectWeightChange(this.onMenuButtonBoundingClientRectWeightChangeCallback);
252
+ }
253
+ },
253
254
 
254
- offMenuButtonBoundingClientRectWeightChange() {
255
- if (this.onMenuButtonBoundingClientRectWeightChangeCallback) {
256
- uni.offMenuButtonBoundingClientRectWeightChange(this.onMenuButtonBoundingClientRectWeightChangeCallback);
257
- }
258
- },
255
+ offMenuButtonBoundingClientRectWeightChange() {
256
+ if (this.onMenuButtonBoundingClientRectWeightChangeCallback) {
257
+ uni.offMenuButtonBoundingClientRectWeightChange(this.onMenuButtonBoundingClientRectWeightChangeCallback);
258
+ }
259
+ },
259
260
 
260
- /**
261
+ /**
261
262
  * 比较胶囊条和navbar内容,决定是否隐藏
262
263
  * @param capsuleRect API返回值,胶囊条的位置信息
263
264
  */
264
- queryElements(capsuleRect) {
265
- Promise.all([
266
- getRect(this, `.${this.classPrefix}__left`),
267
- getRect(this, `.${this.classPrefix}__center`),
268
- ]).then(([leftRect, centerRect]) => {
265
+ queryElements(capsuleRect) {
266
+ Promise.all([
267
+ getRect(this, `.${this.classPrefix}__left`),
268
+ getRect(this, `.${this.classPrefix}__center`),
269
+ ]).then(([leftRect, centerRect]) => {
269
270
  // 部分安卓机型中(目前仅在Magic6/7中复现),仍存在精度问题,暂使用 Math.round() 取整规避
270
- const leftRight = Math.round(leftRect.right);
271
- const centerRight = Math.round(centerRect.right);
272
- const capsuleLeft = capsuleRect.left;
271
+ const leftRight = Math.round(leftRect.right);
272
+ const centerRight = Math.round(centerRect.right);
273
+ const capsuleLeft = capsuleRect.left;
273
274
 
274
- this.hideLeft = leftRight > capsuleLeft;
275
- this.hideCenter = leftRight > capsuleLeft ? true : centerRight > capsuleLeft;
276
- });
277
- },
275
+ this.hideLeft = leftRight > capsuleLeft;
276
+ this.hideCenter = leftRight > capsuleLeft ? true : centerRight > capsuleLeft;
277
+ });
278
+ },
278
279
 
279
- goBack() {
280
- const { delta } = this;
281
- // eslint-disable-next-line
280
+ goBack() {
281
+ const { delta } = this;
282
+ // eslint-disable-next-line
282
283
  const that = this;
283
- this.$emit('go-back');
284
- if (delta > 0) {
285
- uni.navigateBack({
286
- delta,
287
- fail(e) {
288
- that.$emit('fail', e);
289
- },
290
- complete(e) {
291
- that.$emit('complete', e);
292
- },
293
- success(e) {
294
- that.$emit('success', e);
295
- },
296
- });
297
- }
298
- },
284
+ this.$emit('go-back');
285
+ if (delta > 0) {
286
+ uni.navigateBack({
287
+ delta,
288
+ fail(e) {
289
+ that.$emit('fail', e);
290
+ },
291
+ complete(e) {
292
+ that.$emit('complete', e);
293
+ },
294
+ success(e) {
295
+ that.$emit('success', e);
296
+ },
297
+ });
298
+ }
299
+ },
299
300
 
300
- onClickRight() {
301
- this.$emit('right-click');
301
+ onClickRight() {
302
+ this.$emit('right-click');
303
+ },
302
304
  },
303
- },
304
- });
305
+ }),
306
+ };
305
307
  </script>
306
308
  <style scoped src="./navbar.css"></style>