hy-app 0.4.13 → 0.5.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 (211) hide show
  1. package/components/hy-action-sheet/hy-action-sheet.vue +155 -238
  2. package/components/hy-action-sheet/props.ts +68 -15
  3. package/components/hy-action-sheet/typing.d.ts +115 -115
  4. package/components/hy-address-picker/hy-address-picker.vue +185 -289
  5. package/components/hy-address-picker/props.ts +97 -21
  6. package/components/hy-address-picker/typing.d.ts +90 -89
  7. package/components/hy-avatar/hy-avatar.vue +121 -204
  8. package/components/hy-avatar/props.ts +76 -18
  9. package/components/hy-avatar/typing.d.ts +63 -62
  10. package/components/hy-back-top/hy-back-top.vue +65 -120
  11. package/components/hy-back-top/props.ts +57 -16
  12. package/components/hy-back-top/typing.d.ts +43 -42
  13. package/components/hy-badge/hy-badge.vue +66 -138
  14. package/components/hy-badge/props.ts +73 -17
  15. package/components/hy-badge/typing.d.ts +59 -58
  16. package/components/hy-button/hy-button.vue +226 -375
  17. package/components/hy-button/props.ts +129 -158
  18. package/components/hy-calendar/header.vue +48 -64
  19. package/components/hy-calendar/hy-calendar.vue +274 -438
  20. package/components/hy-calendar/month.vue +508 -516
  21. package/components/hy-calendar/props.ts +157 -35
  22. package/components/hy-calendar/typing.d.ts +129 -128
  23. package/components/hy-card/hy-card.vue +118 -240
  24. package/components/hy-card/index.scss +1 -2
  25. package/components/hy-card/props.ts +122 -27
  26. package/components/hy-card/typing.d.ts +119 -118
  27. package/components/hy-cell/hy-cell.vue +176 -258
  28. package/components/hy-cell/props.ts +71 -17
  29. package/components/hy-cell/typing.d.ts +87 -86
  30. package/components/hy-check-button/hy-check-button.vue +69 -139
  31. package/components/hy-check-button/props.ts +72 -18
  32. package/components/hy-check-button/typing.d.ts +74 -73
  33. package/components/hy-checkbox/hy-checkbox.vue +170 -263
  34. package/components/hy-checkbox/props.ts +94 -24
  35. package/components/hy-checkbox/typing.d.ts +72 -72
  36. package/components/hy-checkbox-group/hy-checkbox-group.vue +25 -100
  37. package/components/hy-checkbox-group/props.ts +80 -0
  38. package/components/hy-checkbox-group/typing.d.ts +65 -65
  39. package/components/hy-checkbox-item/hy-checkbox-item.vue +140 -177
  40. package/components/hy-checkbox-item/props.ts +24 -0
  41. package/components/hy-checkbox-item/typing.d.ts +4 -3
  42. package/components/hy-code-input/hy-code-input.vue +179 -262
  43. package/components/hy-code-input/props.ts +84 -18
  44. package/components/hy-code-input/typing.d.ts +71 -71
  45. package/components/hy-config-provider/hy-config-provider.vue +28 -50
  46. package/components/hy-config-provider/props.ts +26 -11
  47. package/components/hy-config-provider/typing.d.ts +20 -20
  48. package/components/hy-count-down/hy-count-down.vue +103 -131
  49. package/components/hy-count-down/props.ts +30 -8
  50. package/components/hy-count-down/typing.d.ts +25 -25
  51. package/components/hy-count-to/hy-count-to.vue +148 -213
  52. package/components/hy-count-to/props.ts +60 -15
  53. package/components/hy-count-to/typing.d.ts +46 -46
  54. package/components/hy-coupon/README.md +133 -0
  55. package/components/hy-coupon/hy-coupon.vue +180 -0
  56. package/components/hy-coupon/index.scss +553 -0
  57. package/components/hy-coupon/props.ts +129 -0
  58. package/components/hy-coupon/typing.d.ts +146 -0
  59. package/components/hy-datetime-picker/hy-datetime-picker.vue +415 -580
  60. package/components/hy-datetime-picker/props.ts +142 -32
  61. package/components/hy-datetime-picker/typing.d.ts +132 -132
  62. package/components/hy-divider/hy-divider.vue +90 -169
  63. package/components/hy-divider/props.ts +78 -19
  64. package/components/hy-divider/typing.d.ts +60 -60
  65. package/components/hy-dropdown/hy-dropdown.vue +37 -71
  66. package/components/hy-dropdown/props.ts +38 -15
  67. package/components/hy-dropdown/typing.d.ts +44 -44
  68. package/components/hy-dropdown-item/hy-dropdown-item.vue +141 -173
  69. package/components/hy-dropdown-item/props.ts +19 -8
  70. package/components/hy-empty/hy-empty.vue +75 -129
  71. package/components/hy-empty/props.ts +57 -15
  72. package/components/hy-empty/typing.d.ts +84 -84
  73. package/components/hy-flex/hy-flex.vue +33 -88
  74. package/components/hy-flex/props.ts +58 -0
  75. package/components/hy-flex/typing.d.ts +14 -16
  76. package/components/hy-float-button/hy-float-button.vue +289 -406
  77. package/components/hy-float-button/props.ts +109 -25
  78. package/components/hy-folding-panel/hy-folding-panel.vue +86 -374
  79. package/components/hy-folding-panel/props.ts +40 -15
  80. package/components/hy-folding-panel/typing.d.ts +52 -63
  81. package/components/hy-folding-panel-item/hy-folding-panel-item.vue +186 -228
  82. package/components/hy-folding-panel-item/index.scss +87 -0
  83. package/components/hy-folding-panel-item/props.ts +81 -0
  84. package/components/hy-folding-panel-item/typing.d.ts +23 -0
  85. package/components/hy-form/hy-form.vue +172 -212
  86. package/components/hy-form/props.ts +37 -0
  87. package/components/hy-form/typing.d.ts +68 -61
  88. package/components/hy-form-group/typing.d.ts +74 -74
  89. package/components/hy-form-item/hy-form-item.vue +100 -129
  90. package/components/hy-form-item/props.ts +25 -0
  91. package/components/hy-form-item/typing.d.ts +40 -37
  92. package/components/hy-grid/hy-grid.vue +76 -132
  93. package/components/hy-grid/props.ts +58 -16
  94. package/components/hy-grid/typing.d.ts +66 -66
  95. package/components/hy-icon/hy-icon.vue +84 -161
  96. package/components/hy-icon/props.ts +76 -22
  97. package/components/hy-icon/typing.d.ts +83 -82
  98. package/components/hy-image/hy-image.vue +142 -272
  99. package/components/hy-image/props.ts +105 -23
  100. package/components/hy-image/typing.d.ts +84 -87
  101. package/components/hy-input/hy-input.vue +230 -421
  102. package/components/hy-input/props.ts +183 -35
  103. package/components/hy-input/typing.d.ts +169 -169
  104. package/components/hy-line/hy-line.vue +34 -72
  105. package/components/hy-line/props.ts +41 -10
  106. package/components/hy-line/typing.d.ts +29 -29
  107. package/components/hy-line-progress/hy-line-progress.vue +66 -101
  108. package/components/hy-line-progress/props.ts +31 -10
  109. package/components/hy-line-progress/typing.d.ts +29 -29
  110. package/components/hy-list/hy-list.vue +151 -220
  111. package/components/hy-list/props.ts +67 -16
  112. package/components/hy-list/typing.d.ts +52 -52
  113. package/components/hy-loading/hy-loading.vue +63 -119
  114. package/components/hy-loading/props.ts +63 -15
  115. package/components/hy-loading/typing.d.ts +49 -49
  116. package/components/hy-menu/hy-menu.vue +124 -166
  117. package/components/hy-menu/props.ts +42 -10
  118. package/components/hy-menu/typing.d.ts +60 -60
  119. package/components/hy-modal/hy-modal.vue +127 -218
  120. package/components/hy-modal/props.ts +89 -24
  121. package/components/hy-navbar/hy-navbar.vue +104 -177
  122. package/components/hy-navbar/props.ts +76 -22
  123. package/components/hy-navbar/typing.d.ts +81 -81
  124. package/components/hy-notice-bar/hy-notice-bar.vue +67 -144
  125. package/components/hy-notice-bar/props.ts +80 -19
  126. package/components/hy-notice-bar/typing.d.ts +62 -62
  127. package/components/hy-notify/hy-notify.vue +128 -177
  128. package/components/hy-notify/props.ts +49 -12
  129. package/components/hy-notify/typing.d.ts +45 -41
  130. package/components/hy-number-step/hy-number-step.vue +281 -394
  131. package/components/hy-number-step/props.ts +110 -27
  132. package/components/hy-number-step/typing.d.ts +120 -120
  133. package/components/hy-overlay/hy-overlay.vue +39 -66
  134. package/components/hy-overlay/props.ts +31 -8
  135. package/components/hy-pagination/hy-pagination.vue +100 -155
  136. package/components/hy-pagination/props.ts +53 -13
  137. package/components/hy-picker/hy-picker.vue +309 -430
  138. package/components/hy-picker/index.scss +8 -12
  139. package/components/hy-picker/props.ts +110 -26
  140. package/components/hy-popover/hy-popover.vue +190 -252
  141. package/components/hy-popover/props.ts +48 -10
  142. package/components/hy-popup/hy-popup.vue +162 -248
  143. package/components/hy-popup/props.ts +82 -18
  144. package/components/hy-price/hy-price.vue +45 -104
  145. package/components/hy-price/props.ts +52 -12
  146. package/components/hy-price/typing.d.ts +41 -36
  147. package/components/hy-qrcode/hy-qrcode.vue +115 -185
  148. package/components/hy-qrcode/props.ts +68 -18
  149. package/components/hy-qrcode/typing.d.ts +67 -66
  150. package/components/hy-radio/hy-radio.vue +161 -259
  151. package/components/hy-radio/props.ts +95 -25
  152. package/components/hy-radio/typing.d.ts +85 -84
  153. package/components/hy-rate/hy-rate.vue +185 -270
  154. package/components/hy-rate/props.ts +76 -18
  155. package/components/hy-rate/typing.d.ts +61 -60
  156. package/components/hy-read-more/hy-read-more.vue +93 -136
  157. package/components/hy-read-more/props.ts +43 -13
  158. package/components/hy-scroll-list/hy-scroll-list.vue +81 -102
  159. package/components/hy-scroll-list/props.ts +22 -11
  160. package/components/hy-search/hy-search.vue +155 -284
  161. package/components/hy-search/props.ts +130 -25
  162. package/components/hy-signature/hy-signature.vue +491 -635
  163. package/components/hy-signature/props.ts +115 -26
  164. package/components/hy-signature/typing.d.ts +138 -138
  165. package/components/hy-slider/hy-slider.vue +388 -477
  166. package/components/hy-slider/props.ts +75 -19
  167. package/components/hy-steps/hy-steps.vue +212 -279
  168. package/components/hy-steps/props.ts +47 -13
  169. package/components/hy-submit-bar/hy-submit-bar.vue +137 -222
  170. package/components/hy-submit-bar/props.ts +89 -20
  171. package/components/hy-submit-bar/typing.d.ts +86 -85
  172. package/components/hy-subsection/hy-subsection.vue +132 -185
  173. package/components/hy-subsection/props.ts +50 -17
  174. package/components/hy-subsection/typing.d.ts +52 -52
  175. package/components/hy-swipe-action/hy-swipe-action.vue +228 -283
  176. package/components/hy-swipe-action/props.ts +43 -18
  177. package/components/hy-swipe-action/typing.d.ts +46 -46
  178. package/components/hy-swiper/hy-swiper.vue +159 -286
  179. package/components/hy-swiper/props.ts +126 -28
  180. package/components/hy-swiper/typing.d.ts +115 -115
  181. package/components/hy-switch/hy-switch.vue +112 -176
  182. package/components/hy-switch/props.ts +60 -15
  183. package/components/hy-switch/typing.d.ts +63 -63
  184. package/components/hy-tabBar/hy-tabBar.vue +64 -60
  185. package/components/hy-tabs/hy-tabs.vue +277 -380
  186. package/components/hy-tabs/props.ts +75 -18
  187. package/components/hy-tag/hy-tag.vue +111 -204
  188. package/components/hy-tag/props.ts +81 -19
  189. package/components/hy-text/hy-text.vue +200 -322
  190. package/components/hy-text/props.ts +107 -28
  191. package/components/hy-textarea/hy-textarea.vue +147 -256
  192. package/components/hy-textarea/props.ts +112 -25
  193. package/components/hy-textarea/typing.d.ts +42 -42
  194. package/components/hy-toast/hy-toast.vue +135 -143
  195. package/components/hy-tooltip/hy-tooltip.vue +220 -306
  196. package/components/hy-tooltip/props.ts +79 -15
  197. package/components/hy-transition/hy-transition.vue +111 -138
  198. package/components/hy-transition/props.ts +30 -8
  199. package/components/hy-upload/hy-upload.vue +320 -469
  200. package/components/hy-upload/props.ts +130 -27
  201. package/components/hy-warn/hy-warn.vue +80 -129
  202. package/components/hy-warn/props.ts +47 -12
  203. package/components/hy-waterfall/hy-waterfall.vue +139 -163
  204. package/components/hy-waterfall/props.ts +19 -7
  205. package/components/hy-watermark/hy-watermark.vue +762 -870
  206. package/components/hy-watermark/props.ts +103 -22
  207. package/global.d.ts +2 -0
  208. package/libs/css/theme.scss +3 -3
  209. package/package.json +2 -2
  210. package/web-types.json +1 -1
  211. package/components/hy-folding-panel/index.scss +0 -9
@@ -1,69 +1,70 @@
1
1
  import type { CSSProperties } from 'vue'
2
2
 
3
3
  export default interface HyAvatarProps {
4
- /**
5
- * @description 头像路径,如加载失败,将会显示默认头像(不能为相对路径)
6
- * */
7
- src?: string
8
- /**
9
- * @description 头像形状 ( circle (默认) | square)
10
- * */
11
- shape?: HyApp.ShapeType
12
- /**
13
- * @description 头像尺寸,可以为指定字符串(large, default, mini),或者数值 (默认 40 )
14
- * */
15
- size?: number | HyApp.SizeType
16
- /**
17
- * @description 头像图片的裁剪类型,与uni的image组件的mode参数一致,如效果达不到需求,可尝试传widthFix值 (默认 'scaleToFill' )
18
- * */
19
- mode?: string
20
- /**
21
- * @description 用文字替代图片,级别优先于src
22
- * */
23
- text?: string
24
- /**
25
- * @description 背景颜色,一般显示文字时用 (默认 '#c0c4cc' )
26
- * */
27
- bgColor?: string
28
- /**
29
- * @description 文字颜色 (默认 '#ffffff' )
30
- * */
31
- color?: string
32
- /**
33
- * @description 文字大小 (默认 18 )
34
- * */
35
- fontSize?: number | string
36
- /**
37
- * @description 显示的图标
38
- * */
39
- icon?: string
40
- /**
41
- * @description 显示小程序头像,只对百度,微信,QQ小程序有效 (默认 false )
42
- * */
43
- mpAvatar?: boolean
44
- /**
45
- * @description 是否使用随机背景色 (默认 false )
46
- * */
47
- randomBgColor?: boolean
48
- /**
49
- * @description 加载失败的默认头像(组件有内置默认图片)
50
- * */
51
- defaultUrl?: string
52
- /**
53
- * @description 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间
54
- * */
55
- colorIndex?: number
56
- /**
57
- * @description 组件标识符 (默认 'level' )
58
- * */
59
- name?: string
60
- /**
61
- * @description 定义需要用到的外部样式
62
- * */
63
- customStyle?: CSSProperties
4
+ /**
5
+ * @description 头像路径,如加载失败,将会显示默认头像(不能为相对路径)
6
+ * */
7
+ src?: string
8
+
9
+ /**
10
+ * @description 头像形状 ( circle (默认) | square)
11
+ * */
12
+ shape?: HyApp.ShapeType
13
+ /**
14
+ * @description 头像尺寸,可以为指定字符串(large, default, mini),或者数值 (默认 40 )
15
+ * */
16
+ size?: number | HyApp.SizeType
17
+ /**
18
+ * @description 头像图片的裁剪类型,与uni的image组件的mode参数一致,如效果达不到需求,可尝试传widthFix值 (默认 'scaleToFill' )
19
+ * */
20
+ mode?: string
21
+ /**
22
+ * @description 用文字替代图片,级别优先于src
23
+ * */
24
+ text?: string
25
+ /**
26
+ * @description 背景颜色,一般显示文字时用 (默认 '#c0c4cc' )
27
+ * */
28
+ bgColor?: string
29
+ /**
30
+ * @description 文字颜色 (默认 '#ffffff' )
31
+ * */
32
+ color?: string
33
+ /**
34
+ * @description 文字大小 (默认 18 )
35
+ * */
36
+ fontSize?: number | string
37
+ /**
38
+ * @description 显示的图标
39
+ * */
40
+ icon?: string
41
+ /**
42
+ * @description 显示小程序头像,只对百度,微信,QQ小程序有效 (默认 false )
43
+ * */
44
+ mpAvatar?: boolean
45
+ /**
46
+ * @description 是否使用随机背景色 (默认 false )
47
+ * */
48
+ randomBgColor?: boolean
49
+ /**
50
+ * @description 加载失败的默认头像(组件有内置默认图片)
51
+ * */
52
+ defaultUrl?: string
53
+ /**
54
+ * @description 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间
55
+ * */
56
+ colorIndex?: number
57
+ /**
58
+ * @description 组件标识符 (默认 'level' )
59
+ * */
60
+ name?: string
61
+ /**
62
+ * @description 定义需要用到的外部样式
63
+ * */
64
+ customStyle?: CSSProperties
64
65
  }
65
66
 
66
67
  export interface IAvatarEmit {
67
- /** 点击头像触发 */
68
- (e: 'click', name: string, e: Event): void
68
+ /** 点击头像触发 */
69
+ (e: 'click', name: string, e: Event): void
69
70
  }
@@ -1,144 +1,89 @@
1
1
  <template>
2
- <HyTransition mode="fade" :customStyle="backTopStyle" :show="show">
3
- <!-- @slot 默认插槽 -->
4
- <slot>
5
- <view class="hy-back-top" :style="contentStyle" @click="backToTop">
6
- <HyIcon
7
- :name="icon?.name || IconConfig.DOWNLOAD"
8
- :color="icon?.color"
9
- :size="icon?.size"
10
- :bold="icon?.bold"
11
- :customPrefix="icon?.customPrefix"
12
- :imgMode="icon?.imgMode"
13
- :width="icon?.width"
14
- :height="icon?.height"
15
- :top="icon?.top"
16
- :stop="icon?.stop"
17
- :round="icon?.round"
18
- :customStyle="icon?.customStyle"
19
- ></HyIcon>
20
- <text v-if="text" class="hy-back-top__text">{{ text }}</text>
21
- </view>
22
- </slot>
23
- </HyTransition>
2
+ <HyTransition mode="fade" :customStyle="backTopStyle" :show="show">
3
+ <!-- @slot 默认插槽 -->
4
+ <slot>
5
+ <view class="hy-back-top" :style="contentStyle" @click="backToTop">
6
+ <HyIcon
7
+ :name="icon?.name || IconConfig.DOWNLOAD"
8
+ :color="icon?.color"
9
+ :size="icon?.size"
10
+ :bold="icon?.bold"
11
+ :customPrefix="icon?.customPrefix"
12
+ :imgMode="icon?.imgMode"
13
+ :width="icon?.width"
14
+ :height="icon?.height"
15
+ :top="icon?.top"
16
+ :stop="icon?.stop"
17
+ :round="icon?.round"
18
+ :customStyle="icon?.customStyle"
19
+ ></HyIcon>
20
+ <text v-if="text" class="hy-back-top__text">{{ text }}</text>
21
+ </view>
22
+ </slot>
23
+ </HyTransition>
24
24
  </template>
25
25
 
26
26
  <script lang="ts">
27
27
  export default {
28
- name: "hy-back-top",
29
- options: {
30
- addGlobalClass: true,
31
- virtualHost: true,
32
- styleIsolation: "shared",
33
- },
34
- };
28
+ name: 'hy-back-top',
29
+ options: {
30
+ addGlobalClass: true,
31
+ virtualHost: true,
32
+ styleIsolation: 'shared'
33
+ }
34
+ }
35
35
  </script>
36
36
 
37
37
  <script setup lang="ts">
38
- import { computed, toRefs } from "vue";
39
- import type { CSSProperties, PropType } from "vue";
40
- import { IconConfig, addUnit, getPx } from "../../libs";
41
- import type { IBackTopEmit } from "./typing";
42
- import type HyIconProps from "../hy-icon/typing";
38
+ import { computed } from 'vue'
39
+ import type { CSSProperties } from 'vue'
40
+ import { IconConfig, addUnit, getPx } from '../../libs'
41
+ import type { IBackTopEmit } from './typing'
42
+ import backTopProps from './props'
43
43
  // 组件
44
- import HyTransition from "../hy-transition/hy-transition.vue";
45
- import HyIcon from "../hy-icon/hy-icon.vue";
44
+ import HyTransition from '../hy-transition/hy-transition.vue'
45
+ import HyIcon from '../hy-icon/hy-icon.vue'
46
46
 
47
47
  /**
48
48
  * 该组件一个用于长页面,滑动一定距离后,出现返回顶部按钮,方便快速返回顶部的场景。
49
49
  * @displayName hy-back-top
50
50
  */
51
- defineOptions({});
51
+ defineOptions({})
52
52
 
53
- // const props = withDefaults(defineProps<IProps>(), defaultProps)
54
- const props = defineProps({
55
- /**
56
- * 返回顶部的形状
57
- * @values circle,square
58
- * */
59
- mode: {
60
- type: String,
61
- default: "circle",
62
- },
63
- /** 自定义图标属性集合 */
64
- icon: {
65
- type: Object as PropType<HyIconProps>,
66
- },
67
- /** 提示文字 */
68
- text: String,
69
- /** 返回顶部滚动时间 */
70
- duration: {
71
- type: Number,
72
- default: 500,
73
- },
74
- /** 滚动距离 */
75
- scrollTop: {
76
- type: Number,
77
- default: 0,
78
- },
79
- /** 距离顶部多少距离显示,单位px */
80
- top: {
81
- type: Number,
82
- default: 400,
83
- },
84
- /** 返回顶部按钮到底部的距离,单位px */
85
- bottom: {
86
- type: Number,
87
- default: 100,
88
- },
89
- /** 返回顶部按钮到右边的距离,单位px */
90
- right: {
91
- type: Number,
92
- default: 20,
93
- },
94
- /** 层级 */
95
- zIndex: {
96
- type: Number,
97
- default: 888,
98
- },
99
- /** 定义需要用到的外部样式 */
100
- customStyle: {
101
- type: Object as PropType<CSSProperties>,
102
- default: {
103
- transform: "rotate(180deg)",
104
- },
105
- },
106
- });
107
- const { customStyle, duration, mode, bottom, right, top, scrollTop } =
108
- toRefs(props);
109
- const emit = defineEmits<IBackTopEmit>();
53
+ const props = defineProps(backTopProps)
54
+ const emit = defineEmits<IBackTopEmit>()
110
55
 
111
56
  const backTopStyle = computed<CSSProperties>(() => {
112
- return {
113
- bottom: addUnit(bottom.value),
114
- right: addUnit(right.value),
115
- width: "40px",
116
- height: "40px",
117
- position: "fixed",
118
- zIndex: 10,
119
- };
120
- });
57
+ return {
58
+ bottom: addUnit(props.bottom),
59
+ right: addUnit(props.right),
60
+ width: '40px',
61
+ height: '40px',
62
+ position: 'fixed',
63
+ zIndex: 10
64
+ }
65
+ })
121
66
  const contentStyle = computed<CSSProperties>(() => {
122
- const style: CSSProperties = {
123
- borderRadius: mode.value === "circle" ? "50%" : "4px",
124
- };
125
- return Object.assign(style, customStyle.value);
126
- });
67
+ const style: CSSProperties = {
68
+ borderRadius: props.mode === 'circle' ? '50%' : '4px'
69
+ }
70
+ return Object.assign(style, props.customStyle)
71
+ })
127
72
  const show = computed<boolean>(() => {
128
- return getPx(scrollTop.value) > getPx(top.value);
129
- });
73
+ return getPx(props.scrollTop) > getPx(props.top)
74
+ })
130
75
  const backToTop = () => {
131
- uni.pageScrollTo({
132
- scrollTop: 0,
133
- // #ifndef MP-ALIPAY
134
- // 支付宝不支持duration属性
135
- duration: duration.value,
136
- // #endif
137
- });
138
- emit("click");
139
- };
76
+ uni.pageScrollTo({
77
+ scrollTop: 0,
78
+ // #ifndef MP-ALIPAY
79
+ // 支付宝不支持duration属性
80
+ duration: props.duration
81
+ // #endif
82
+ })
83
+ emit('click')
84
+ }
140
85
  </script>
141
86
 
142
87
  <style lang="scss" scoped>
143
- @import "./index.scss";
88
+ @import './index.scss';
144
89
  </style>
@@ -1,18 +1,59 @@
1
- import type IProps from "./typing";
1
+ import type IProps from './typing'
2
+ import type { CSSProperties, PropType } from 'vue'
3
+ import type HyIconProps from '../hy-icon/typing'
2
4
 
3
- const defaultProps: IProps = {
4
- mode: "circle",
5
- icon: {},
6
- text: "",
7
- duration: 500,
8
- scrollTop: 0,
9
- top: 400,
10
- bottom: 100,
11
- right: 20,
12
- zIndex: 888,
13
- customStyle: {
14
- transform: "rotate(180deg)",
15
- },
16
- };
5
+ const backTopProps = {
6
+ /**
7
+ * 返回顶部的形状
8
+ * @values circle,square
9
+ * */
10
+ mode: {
11
+ type: String,
12
+ default: 'circle'
13
+ },
14
+ /** 自定义图标属性集合 */
15
+ icon: {
16
+ type: Object as PropType<HyIconProps>
17
+ },
18
+ /** 提示文字 */
19
+ text: String,
20
+ /** 返回顶部滚动时间 */
21
+ duration: {
22
+ type: Number,
23
+ default: 500
24
+ },
25
+ /** 滚动距离 */
26
+ scrollTop: {
27
+ type: Number,
28
+ default: 0
29
+ },
30
+ /** 距离顶部多少距离显示,单位px */
31
+ top: {
32
+ type: Number,
33
+ default: 400
34
+ },
35
+ /** 返回顶部按钮到底部的距离,单位px */
36
+ bottom: {
37
+ type: Number,
38
+ default: 100
39
+ },
40
+ /** 返回顶部按钮到右边的距离,单位px */
41
+ right: {
42
+ type: Number,
43
+ default: 20
44
+ },
45
+ /** 层级 */
46
+ zIndex: {
47
+ type: Number,
48
+ default: 888
49
+ },
50
+ /** 定义需要用到的外部样式 */
51
+ customStyle: {
52
+ type: Object as PropType<CSSProperties>,
53
+ default: {
54
+ transform: 'rotate(180deg)'
55
+ }
56
+ }
57
+ }
17
58
 
18
- export default defaultProps;
59
+ export default backTopProps
@@ -2,49 +2,50 @@ import type { CSSProperties } from 'vue'
2
2
  import type HyIconProps from '../hy-icon/typing'
3
3
 
4
4
  export default interface HyBackTopProps {
5
- /**
6
- * @description 返回顶部的形状,circle-圆形,square-方形 (默认 'circle' )
7
- * */
8
- mode?: HyApp.ShapeType
9
- /**
10
- * @description 自定义图标属性集合
11
- * */
12
- icon?: Partial<HyIconProps>
13
- /**
14
- * @description 提示文字
15
- * */
16
- text?: string
17
- /**
18
- * @description 返回顶部滚动时间 (默认 500)
19
- * */
20
- duration?: number
21
- /**
22
- * @description 滚动距离 (默认 0 )
23
- * */
24
- scrollTop: number
25
- /**
26
- * @description 距离顶部多少距离显示,单位px (默认 400 )
27
- * */
28
- top?: number | string
29
- /**
30
- * @description 返回顶部按钮到底部的距离,单位px (默认 100 )
31
- * */
32
- bottom?: number | string
33
- /**
34
- * @description 返回顶部按钮到右边的距离,单位px (默认 20 )
35
- * */
36
- right?: number | string
37
- /**
38
- * @description 层级 (默认 888 )
39
- * */
40
- zIndex?: number
41
- /**
42
- * @description 定义需要用到的外部样式(默认{transform: "rotate(180deg)"})
43
- * */
44
- customStyle?: CSSProperties
5
+ /**
6
+ * @description 返回顶部的形状,circle-圆形,square-方形 (默认 'circle' )
7
+ * */
8
+ mode?: HyApp.ShapeType
9
+ /**
10
+ * @description 自定义图标属性集合
11
+ * */
12
+ icon?: Partial<HyIconProps>
13
+
14
+ /**
15
+ * @description 提示文字
16
+ * */
17
+ text?: string
18
+ /**
19
+ * @description 返回顶部滚动时间 (默认 500)
20
+ * */
21
+ duration?: number
22
+ /**
23
+ * @description 滚动距离 (默认 0 )
24
+ * */
25
+ scrollTop: number
26
+ /**
27
+ * @description 距离顶部多少距离显示,单位px (默认 400 )
28
+ * */
29
+ top?: number | string
30
+ /**
31
+ * @description 返回顶部按钮到底部的距离,单位px (默认 100 )
32
+ * */
33
+ bottom?: number | string
34
+ /**
35
+ * @description 返回顶部按钮到右边的距离,单位px (默认 20 )
36
+ * */
37
+ right?: number | string
38
+ /**
39
+ * @description 层级 (默认 888 )
40
+ * */
41
+ zIndex?: number
42
+ /**
43
+ * @description 定义需要用到的外部样式(默认{transform: "rotate(180deg)"})
44
+ * */
45
+ customStyle?: CSSProperties
45
46
  }
46
47
 
47
48
  export interface IBackTopEmit {
48
- /** 点击触发 */
49
- (e: 'click'): void
49
+ /** 点击触发 */
50
+ (e: 'click'): void
50
51
  }