hy-app 0.5.10 → 0.5.11

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 (286) hide show
  1. package/components/hy-action-sheet/hy-action-sheet.vue +200 -200
  2. package/components/hy-action-sheet/props.ts +71 -71
  3. package/components/hy-action-sheet/typing.d.ts +64 -64
  4. package/components/hy-address-picker/hy-address-picker.vue +1 -1
  5. package/components/hy-address-picker/props.ts +100 -100
  6. package/components/hy-address-picker/typing.d.ts +16 -16
  7. package/components/hy-avatar/hy-avatar.vue +163 -163
  8. package/components/hy-avatar/props.ts +78 -78
  9. package/components/hy-avatar/typing.d.ts +4 -4
  10. package/components/hy-back-top/hy-back-top.vue +90 -90
  11. package/components/hy-back-top/props.ts +60 -60
  12. package/components/hy-back-top/typing.d.ts +4 -4
  13. package/components/hy-badge/hy-badge.vue +97 -97
  14. package/components/hy-badge/props.ts +82 -82
  15. package/components/hy-badge/typing.d.ts +9 -9
  16. package/components/hy-button/hy-button.vue +275 -275
  17. package/components/hy-button/props.ts +135 -135
  18. package/components/hy-button/typing.d.ts +30 -30
  19. package/components/hy-calendar/header.vue +60 -60
  20. package/components/hy-calendar/hy-calendar.vue +362 -362
  21. package/components/hy-calendar/month.vue +537 -537
  22. package/components/hy-calendar/props.ts +159 -159
  23. package/components/hy-calendar/typing.d.ts +6 -6
  24. package/components/hy-card/hy-card.vue +161 -161
  25. package/components/hy-card/props.ts +122 -122
  26. package/components/hy-card/typing.d.ts +12 -12
  27. package/components/hy-cell/hy-cell.vue +33 -33
  28. package/components/hy-cell/props.ts +54 -54
  29. package/components/hy-cell/typing.d.ts +4 -4
  30. package/components/hy-cell-item/hy-cell-item.vue +161 -161
  31. package/components/hy-cell-item/props.ts +66 -66
  32. package/components/hy-cell-item/typing.d.ts +7 -7
  33. package/components/hy-check-button/hy-check-button.vue +96 -96
  34. package/components/hy-check-button/props.ts +74 -74
  35. package/components/hy-check-button/typing.d.ts +44 -44
  36. package/components/hy-checkbox/hy-checkbox.vue +227 -227
  37. package/components/hy-checkbox/props.ts +96 -96
  38. package/components/hy-checkbox/typing.d.ts +8 -8
  39. package/components/hy-checkbox-group/hy-checkbox-group.vue +45 -45
  40. package/components/hy-checkbox-group/props.ts +80 -80
  41. package/components/hy-checkbox-group/typing.d.ts +6 -6
  42. package/components/hy-checkbox-item/hy-checkbox-item.vue +199 -199
  43. package/components/hy-checkbox-item/props.ts +24 -24
  44. package/components/hy-checkbox-item/typing.d.ts +7 -7
  45. package/components/hy-code-input/hy-code-input.vue +231 -231
  46. package/components/hy-code-input/props.ts +88 -88
  47. package/components/hy-code-input/typing.d.ts +8 -8
  48. package/components/hy-config-provider/hy-config-provider.vue +53 -53
  49. package/components/hy-config-provider/props.ts +28 -28
  50. package/components/hy-count-down/hy-count-down.vue +170 -170
  51. package/components/hy-count-down/index.ts +52 -52
  52. package/components/hy-count-down/props.ts +32 -32
  53. package/components/hy-count-down/typing.d.ts +14 -14
  54. package/components/hy-count-to/hy-count-to.vue +218 -218
  55. package/components/hy-count-to/props.ts +62 -62
  56. package/components/hy-count-to/typing.d.ts +4 -4
  57. package/components/hy-coupon/hy-coupon.vue +172 -172
  58. package/components/hy-coupon/index.scss +171 -171
  59. package/components/hy-coupon/props.ts +103 -103
  60. package/components/hy-coupon/typing.d.ts +14 -14
  61. package/components/hy-datetime-picker/hy-datetime-picker.vue +521 -521
  62. package/components/hy-datetime-picker/props.ts +142 -142
  63. package/components/hy-datetime-picker/typing.d.ts +20 -20
  64. package/components/hy-divider/hy-divider.vue +132 -132
  65. package/components/hy-divider/props.ts +80 -80
  66. package/components/hy-dropdown/hy-dropdown.vue +60 -60
  67. package/components/hy-dropdown/props.ts +40 -40
  68. package/components/hy-dropdown-item/hy-dropdown-item.vue +206 -206
  69. package/components/hy-dropdown-item/props.ts +21 -21
  70. package/components/hy-dropdown-item/typing.d.ts +17 -17
  71. package/components/hy-empty/hy-empty.vue +116 -116
  72. package/components/hy-empty/icon.ts +72 -72
  73. package/components/hy-empty/props.ts +60 -60
  74. package/components/hy-empty/typing.d.ts +38 -38
  75. package/components/hy-flex/hy-flex.vue +53 -53
  76. package/components/hy-flex/index.scss +8 -8
  77. package/components/hy-flex/props.ts +58 -58
  78. package/components/hy-flex/typing.d.ts +21 -21
  79. package/components/hy-float-button/hy-float-button.vue +378 -378
  80. package/components/hy-float-button/props.ts +111 -111
  81. package/components/hy-float-button/typing.d.ts +35 -35
  82. package/components/hy-folding-panel/hy-folding-panel.vue +109 -109
  83. package/components/hy-folding-panel/props.ts +42 -42
  84. package/components/hy-folding-panel/typing.d.ts +19 -19
  85. package/components/hy-folding-panel-item/hy-folding-panel-item.vue +183 -183
  86. package/components/hy-folding-panel-item/props.ts +81 -81
  87. package/components/hy-folding-panel-item/typing.d.ts +37 -37
  88. package/components/hy-form/hy-form.vue +220 -220
  89. package/components/hy-form/props.ts +37 -37
  90. package/components/hy-form/typing.d.ts +41 -41
  91. package/components/hy-form-group/hy-form-group.vue +333 -333
  92. package/components/hy-form-group/props.ts +105 -105
  93. package/components/hy-form-item/hy-form-item.vue +176 -176
  94. package/components/hy-form-item/index.scss +0 -1
  95. package/components/hy-form-item/props.ts +25 -25
  96. package/components/hy-form-item/typing.d.ts +30 -30
  97. package/components/hy-grid/hy-grid.vue +109 -109
  98. package/components/hy-grid/props.ts +60 -60
  99. package/components/hy-grid/typing.d.ts +35 -35
  100. package/components/hy-icon/hy-icon.vue +112 -112
  101. package/components/hy-icon/index.scss +0 -3
  102. package/components/hy-icon/props.ts +79 -79
  103. package/components/hy-icon/typing.d.ts +9 -9
  104. package/components/hy-image/hy-image.vue +192 -192
  105. package/components/hy-image/props.ts +107 -107
  106. package/components/hy-image/typing.d.ts +10 -10
  107. package/components/hy-input/hy-input.vue +333 -333
  108. package/components/hy-input/props.ts +186 -186
  109. package/components/hy-input/typing.d.ts +31 -31
  110. package/components/hy-line/hy-line.vue +55 -55
  111. package/components/hy-line/props.ts +43 -43
  112. package/components/hy-line-progress/hy-line-progress.vue +102 -102
  113. package/components/hy-line-progress/props.ts +33 -33
  114. package/components/hy-list/hy-list.vue +226 -226
  115. package/components/hy-list/props.ts +69 -69
  116. package/components/hy-list/typing.d.ts +6 -6
  117. package/components/hy-loading/hy-loading.vue +107 -107
  118. package/components/hy-loading/props.ts +65 -65
  119. package/components/hy-menu/hy-menu.vue +159 -159
  120. package/components/hy-menu/props.ts +44 -44
  121. package/components/hy-menu/typing.d.ts +34 -34
  122. package/components/hy-modal/hy-modal.vue +173 -173
  123. package/components/hy-modal/props.ts +90 -90
  124. package/components/hy-modal/typing.d.ts +11 -11
  125. package/components/hy-navbar/hy-navbar.vue +144 -144
  126. package/components/hy-navbar/props.ts +78 -78
  127. package/components/hy-navbar/typing.d.ts +6 -6
  128. package/components/hy-notice-bar/hy-column-notice.vue +94 -94
  129. package/components/hy-notice-bar/hy-notice-bar.vue +96 -96
  130. package/components/hy-notice-bar/hy-row-notice.vue +121 -121
  131. package/components/hy-notice-bar/props.ts +85 -85
  132. package/components/hy-notice-bar/typing.d.ts +8 -8
  133. package/components/hy-notify/hy-notify.vue +174 -174
  134. package/components/hy-notify/props.ts +51 -51
  135. package/components/hy-number-step/hy-number-step.vue +367 -367
  136. package/components/hy-number-step/props.ts +112 -112
  137. package/components/hy-number-step/typing.d.ts +16 -16
  138. package/components/hy-overlay/hy-overlay.vue +60 -60
  139. package/components/hy-overlay/props.ts +33 -33
  140. package/components/hy-overlay/typing.d.ts +4 -4
  141. package/components/hy-pagination/hy-pagination.vue +135 -135
  142. package/components/hy-pagination/props.ts +55 -55
  143. package/components/hy-pagination/typing.d.ts +10 -10
  144. package/components/hy-picker/hy-picker.vue +7 -5
  145. package/components/hy-picker/props.ts +7 -2
  146. package/components/hy-picker/typing.d.ts +9 -5
  147. package/components/hy-popover/hy-popover.vue +251 -251
  148. package/components/hy-popover/props.ts +51 -51
  149. package/components/hy-popover/typing.d.ts +39 -39
  150. package/components/hy-popup/hy-popup.vue +197 -197
  151. package/components/hy-popup/props.ts +85 -85
  152. package/components/hy-popup/typing.d.ts +10 -10
  153. package/components/hy-price/hy-price.vue +79 -79
  154. package/components/hy-price/props.ts +54 -54
  155. package/components/hy-price/typing.d.ts +4 -4
  156. package/components/hy-qrcode/hy-qrcode.vue +216 -216
  157. package/components/hy-qrcode/props.ts +70 -70
  158. package/components/hy-qrcode/qrcode.js +1304 -1304
  159. package/components/hy-qrcode/typing.d.ts +8 -8
  160. package/components/hy-radio/hy-radio.vue +226 -226
  161. package/components/hy-radio/props.ts +1 -1
  162. package/components/hy-radio/typing.d.ts +8 -8
  163. package/components/hy-rate/hy-rate.vue +239 -239
  164. package/components/hy-rate/props.ts +77 -77
  165. package/components/hy-rate/typing.d.ts +6 -6
  166. package/components/hy-read-more/hy-read-more.vue +130 -130
  167. package/components/hy-read-more/props.ts +45 -45
  168. package/components/hy-read-more/typing.d.ts +6 -6
  169. package/components/hy-rolling-num/hy-rolling-num.vue +188 -188
  170. package/components/hy-rolling-num/props.ts +68 -68
  171. package/components/hy-scroll-list/hy-scroll-list.vue +123 -123
  172. package/components/hy-scroll-list/props.ts +22 -22
  173. package/components/hy-scroll-list/typing.d.ts +6 -6
  174. package/components/hy-search/hy-search.vue +221 -221
  175. package/components/hy-search/props.ts +131 -131
  176. package/components/hy-search/typing.d.ts +22 -22
  177. package/components/hy-signature/hy-signature.vue +640 -640
  178. package/components/hy-signature/props.ts +118 -118
  179. package/components/hy-signature/typing.d.ts +93 -93
  180. package/components/hy-slider/hy-slider.vue +444 -444
  181. package/components/hy-slider/props.ts +77 -77
  182. package/components/hy-slider/typing.d.ts +10 -10
  183. package/components/hy-status-bar/hy-status-bar.vue +41 -41
  184. package/components/hy-status-bar/props.ts +8 -8
  185. package/components/hy-status-bar/typing.d.ts +12 -12
  186. package/components/hy-steps/hy-steps.vue +267 -267
  187. package/components/hy-steps/props.ts +49 -49
  188. package/components/hy-steps/typing.d.ts +21 -21
  189. package/components/hy-sticky/hy-sticky.vue +226 -226
  190. package/components/hy-sticky/props.ts +24 -24
  191. package/components/hy-sticky/typing.d.ts +4 -4
  192. package/components/hy-submit-bar/hy-submit-bar.vue +189 -189
  193. package/components/hy-submit-bar/props.ts +91 -91
  194. package/components/hy-submit-bar/typing.d.ts +24 -24
  195. package/components/hy-subsection/hy-subsection.vue +207 -207
  196. package/components/hy-subsection/props.ts +52 -52
  197. package/components/hy-subsection/typing.d.ts +13 -13
  198. package/components/hy-swipe-action/hy-swipe-action.vue +323 -323
  199. package/components/hy-swipe-action/index.ts +25 -25
  200. package/components/hy-swipe-action/props.ts +47 -47
  201. package/components/hy-swipe-action/typing.d.ts +25 -25
  202. package/components/hy-swiper/hy-swiper-indicator.vue +75 -75
  203. package/components/hy-swiper/hy-swiper.vue +224 -224
  204. package/components/hy-swiper/props.ts +128 -128
  205. package/components/hy-swiper/typing.d.ts +26 -26
  206. package/components/hy-switch/hy-switch.vue +173 -173
  207. package/components/hy-switch/props.ts +61 -61
  208. package/components/hy-switch/typing.d.ts +8 -8
  209. package/components/hy-tabbar/hy-tabbar.vue +136 -136
  210. package/components/hy-tabbar/props.ts +59 -59
  211. package/components/hy-tabbar/typing.d.ts +21 -21
  212. package/components/hy-tabbar-group/hy-tabbar-group.vue +87 -87
  213. package/components/hy-tabbar-group/props.ts +78 -78
  214. package/components/hy-tabbar-group/typing.d.ts +16 -16
  215. package/components/hy-tabbar-item/hy-tabbar-item.vue +103 -103
  216. package/components/hy-tabbar-item/typing.d.ts +10 -10
  217. package/components/hy-table/hy-table.vue +358 -358
  218. package/components/hy-table/props.ts +47 -47
  219. package/components/hy-table/typing.d.ts +34 -34
  220. package/components/hy-tabs/hy-tabs.vue +335 -335
  221. package/components/hy-tabs/props.ts +77 -77
  222. package/components/hy-tabs/typing.d.ts +33 -33
  223. package/components/hy-tag/hy-tag.vue +174 -174
  224. package/components/hy-tag/props.ts +89 -89
  225. package/components/hy-tag/typing.d.ts +13 -13
  226. package/components/hy-text/hy-text.vue +237 -237
  227. package/components/hy-text/props.ts +115 -115
  228. package/components/hy-text/typing.d.ts +6 -6
  229. package/components/hy-textarea/hy-textarea.vue +197 -197
  230. package/components/hy-textarea/props.ts +116 -116
  231. package/components/hy-textarea/typing.d.ts +22 -22
  232. package/components/hy-toast/hy-toast.vue +190 -190
  233. package/components/hy-toast/typing.d.ts +38 -38
  234. package/components/hy-tooltip/hy-tooltip.vue +277 -277
  235. package/components/hy-tooltip/props.ts +78 -78
  236. package/components/hy-tooltip/typing.d.ts +4 -4
  237. package/components/hy-transition/hy-transition.vue +157 -157
  238. package/components/hy-transition/props.ts +32 -32
  239. package/components/hy-transition/typing.d.ts +16 -16
  240. package/components/hy-upload/hy-upload.vue +385 -385
  241. package/components/hy-upload/props.ts +132 -132
  242. package/components/hy-upload/typing.d.ts +65 -65
  243. package/components/hy-warn/hy-warn.vue +115 -115
  244. package/components/hy-warn/props.ts +49 -49
  245. package/components/hy-warn/typing.d.ts +6 -6
  246. package/components/hy-waterfall/hy-waterfall.vue +191 -191
  247. package/components/hy-waterfall/props.ts +21 -21
  248. package/components/hy-watermark/hy-watermark.vue +978 -978
  249. package/components/hy-watermark/props.ts +104 -104
  250. package/components/index.ts +183 -183
  251. package/global.d.ts +91 -91
  252. package/index.ts +1 -1
  253. package/libs/api/http.ts +140 -140
  254. package/libs/api/index.ts +1 -1
  255. package/libs/common/index.ts +2 -2
  256. package/libs/common/queue.ts +28 -28
  257. package/libs/composables/index.ts +6 -6
  258. package/libs/composables/usePopover.ts +241 -241
  259. package/libs/composables/useQueue.ts +53 -53
  260. package/libs/composables/useShakeService.ts +64 -64
  261. package/libs/composables/useShare.ts +42 -42
  262. package/libs/composables/useToast.ts +45 -45
  263. package/libs/composables/useTouch.ts +51 -51
  264. package/libs/config/color.ts +7 -7
  265. package/libs/config/icon.ts +430 -430
  266. package/libs/config/index.ts +2 -2
  267. package/libs/css/iconfont.css +443 -443
  268. package/libs/global/index.ts +6 -6
  269. package/libs/global/register-properties.ts +37 -37
  270. package/libs/index.ts +7 -7
  271. package/libs/typing/index.ts +4 -4
  272. package/libs/typing/modules/common.d.ts +139 -139
  273. package/libs/typing/modules/enum.ts +67 -67
  274. package/libs/typing/modules/form.ts +5 -1
  275. package/libs/typing/modules/http.ts +17 -17
  276. package/libs/typing/modules/icon.d.ts +366 -366
  277. package/libs/typing/modules/rect.ts +10 -10
  278. package/libs/utils/base64.ts +119 -119
  279. package/libs/utils/calendar.js +1021 -1021
  280. package/libs/utils/colorGradient.ts +112 -112
  281. package/libs/utils/index.ts +5 -5
  282. package/libs/utils/inside.ts +350 -350
  283. package/libs/utils/inspect.ts +171 -171
  284. package/libs/utils/utils.ts +521 -521
  285. package/package.json +18 -18
  286. package/web-types.json +1 -1
@@ -1,128 +1,128 @@
1
- import type { SwiperList } from './typing'
2
- import type { CSSProperties, PropType } from 'vue'
3
- import type { SwiperEasingFunction } from '@uni-helper/uni-types'
4
-
5
- const swiperProps = {
6
- /** 轮播图数据 */
7
- list: {
8
- type: Array as PropType<string[] | SwiperList[]>,
9
- default: () => []
10
- },
11
- /** list数组中指定对象的目标属性名 */
12
- keyName: {
13
- type: String,
14
- default: 'url'
15
- },
16
- /** 是否显示面板指示器 */
17
- indicator: {
18
- type: Boolean,
19
- default: false
20
- },
21
- /** 指示器非激活颜色 */
22
- indicatorActiveColor: {
23
- type: String,
24
- default: '#FFFFFF'
25
- },
26
- /** 指示器的激活颜色 */
27
- indicatorInactiveColor: {
28
- type: String,
29
- default: 'rgba(255, 255, 255, 0.35)'
30
- },
31
- /** 指示器样式,可通过bottom,left,right进行定位 */
32
- indicatorStyle: Object as PropType<CSSProperties>,
33
- /**
34
- * 指示器模式
35
- * @values line,dot
36
- * */
37
- indicatorMode: {
38
- type: String,
39
- default: 'line'
40
- },
41
- /** 是否自动切换 */
42
- autoplay: {
43
- type: Boolean,
44
- default: true
45
- },
46
- /** 当前所在滑块的 index */
47
- current: {
48
- type: Number,
49
- default: 0
50
- },
51
- /** 当前所在滑块的 item-id ,不能与 current 被同时指定 */
52
- currentItemId: String,
53
- /** 滑块自动切换时间间隔(ms) */
54
- interval: {
55
- type: Number,
56
- default: 3000
57
- },
58
- /** 滑块切换过程所需时间(ms) */
59
- duration: {
60
- type: Number,
61
- default: 300
62
- },
63
- /** 播放到末尾后是否重新回到开头 */
64
- circular: {
65
- type: Boolean,
66
- default: false
67
- },
68
- /** 前边距,可用于露出前一项的一小部分,nvue和支付宝不支持 */
69
- previousMargin: {
70
- type: [String, Number],
71
- default: 0
72
- },
73
- /** 后边距,可用于露出后一项的一小部分,nvue和支付宝不支持 */
74
- nextMargin: {
75
- type: [String, Number],
76
- default: 0
77
- },
78
- /** 当开启时,会根据滑动速度,连续滑动多屏,支付宝不支持 */
79
- acceleration: {
80
- type: Boolean,
81
- default: false
82
- },
83
- /** 同时显示的滑块数量,nvue、支付宝小程序不支持 */
84
- displayMultipleItems: {
85
- type: Number,
86
- default: 1
87
- },
88
- /**
89
- * 指定swiper切换缓动动画类型, 只对微信小程序有效
90
- * @values default,linear,easeInCubic,easeOutCubic,easeInOutCubic
91
- * */
92
- easingFunction: {
93
- type: String,
94
- default: 'default'
95
- },
96
- /** 图片的裁剪模式 */
97
- imgMode: {
98
- type: String,
99
- default: 'aspectFill'
100
- },
101
- /** 组件高度 */
102
- height: {
103
- type: Number,
104
- default: 130
105
- },
106
- /** 背景颜色 */
107
- bgColor: {
108
- type: String,
109
- default: '#f3f4f6'
110
- },
111
- /** 组件圆角,数值或带单位的字符串 */
112
- radius: {
113
- type: [String, Number],
114
- default: 4
115
- },
116
- /** 轮播图是否加载中数据 */
117
- loading: {
118
- type: Boolean,
119
- default: false
120
- },
121
- /** 是否显示标题,要求数组对象中有title属性 */
122
- showTitle: {
123
- type: Boolean,
124
- default: false
125
- }
126
- }
127
-
128
- export default swiperProps
1
+ import type { SwiperList } from './typing'
2
+ import type { CSSProperties, PropType } from 'vue'
3
+ import type { SwiperEasingFunction } from '@uni-helper/uni-types'
4
+
5
+ const swiperProps = {
6
+ /** 轮播图数据 */
7
+ list: {
8
+ type: Array as PropType<string[] | SwiperList[]>,
9
+ default: () => []
10
+ },
11
+ /** list数组中指定对象的目标属性名 */
12
+ keyName: {
13
+ type: String,
14
+ default: 'url'
15
+ },
16
+ /** 是否显示面板指示器 */
17
+ indicator: {
18
+ type: Boolean,
19
+ default: false
20
+ },
21
+ /** 指示器非激活颜色 */
22
+ indicatorActiveColor: {
23
+ type: String,
24
+ default: '#FFFFFF'
25
+ },
26
+ /** 指示器的激活颜色 */
27
+ indicatorInactiveColor: {
28
+ type: String,
29
+ default: 'rgba(255, 255, 255, 0.35)'
30
+ },
31
+ /** 指示器样式,可通过bottom,left,right进行定位 */
32
+ indicatorStyle: Object as PropType<CSSProperties>,
33
+ /**
34
+ * 指示器模式
35
+ * @values line,dot
36
+ * */
37
+ indicatorMode: {
38
+ type: String,
39
+ default: 'line'
40
+ },
41
+ /** 是否自动切换 */
42
+ autoplay: {
43
+ type: Boolean,
44
+ default: true
45
+ },
46
+ /** 当前所在滑块的 index */
47
+ current: {
48
+ type: Number,
49
+ default: 0
50
+ },
51
+ /** 当前所在滑块的 item-id ,不能与 current 被同时指定 */
52
+ currentItemId: String,
53
+ /** 滑块自动切换时间间隔(ms) */
54
+ interval: {
55
+ type: Number,
56
+ default: 3000
57
+ },
58
+ /** 滑块切换过程所需时间(ms) */
59
+ duration: {
60
+ type: Number,
61
+ default: 300
62
+ },
63
+ /** 播放到末尾后是否重新回到开头 */
64
+ circular: {
65
+ type: Boolean,
66
+ default: false
67
+ },
68
+ /** 前边距,可用于露出前一项的一小部分,nvue和支付宝不支持 */
69
+ previousMargin: {
70
+ type: [String, Number],
71
+ default: 0
72
+ },
73
+ /** 后边距,可用于露出后一项的一小部分,nvue和支付宝不支持 */
74
+ nextMargin: {
75
+ type: [String, Number],
76
+ default: 0
77
+ },
78
+ /** 当开启时,会根据滑动速度,连续滑动多屏,支付宝不支持 */
79
+ acceleration: {
80
+ type: Boolean,
81
+ default: false
82
+ },
83
+ /** 同时显示的滑块数量,nvue、支付宝小程序不支持 */
84
+ displayMultipleItems: {
85
+ type: Number,
86
+ default: 1
87
+ },
88
+ /**
89
+ * 指定swiper切换缓动动画类型, 只对微信小程序有效
90
+ * @values default,linear,easeInCubic,easeOutCubic,easeInOutCubic
91
+ * */
92
+ easingFunction: {
93
+ type: String,
94
+ default: 'default'
95
+ },
96
+ /** 图片的裁剪模式 */
97
+ imgMode: {
98
+ type: String,
99
+ default: 'aspectFill'
100
+ },
101
+ /** 组件高度 */
102
+ height: {
103
+ type: Number,
104
+ default: 130
105
+ },
106
+ /** 背景颜色 */
107
+ bgColor: {
108
+ type: String,
109
+ default: '#f3f4f6'
110
+ },
111
+ /** 组件圆角,数值或带单位的字符串 */
112
+ radius: {
113
+ type: [String, Number],
114
+ default: 4
115
+ },
116
+ /** 轮播图是否加载中数据 */
117
+ loading: {
118
+ type: Boolean,
119
+ default: false
120
+ },
121
+ /** 是否显示标题,要求数组对象中有title属性 */
122
+ showTitle: {
123
+ type: Boolean,
124
+ default: false
125
+ }
126
+ }
127
+
128
+ export default swiperProps
@@ -1,26 +1,26 @@
1
- export interface SwiperList {
2
- [key: string]: any
3
- /** 线上地址 */
4
- url?: string
5
- /** 标题 */
6
- title?: string
7
- /** 海报,为视频必填 */
8
- poster?: string
9
- /** 轮播图展示类型 */
10
- type?: 'image' | 'video'
11
- }
12
-
13
- export interface SwiperVo {
14
- detail: {
15
- current: number
16
- }
17
- }
18
-
19
- export interface ISwiperEmits {
20
- /** 点击轮播图触发 */
21
- (e: 'click', index: number): void
22
- /** 滑动轮播图触发 */
23
- (e: 'change', temp: SwiperVo['detail']): void
24
- /** 滑动轮播图触发 */
25
- (e: 'update:current', value: string | number): void
26
- }
1
+ export interface SwiperList {
2
+ [key: string]: any
3
+ /** 线上地址 */
4
+ url?: string
5
+ /** 标题 */
6
+ title?: string
7
+ /** 海报,为视频必填 */
8
+ poster?: string
9
+ /** 轮播图展示类型 */
10
+ type?: 'image' | 'video'
11
+ }
12
+
13
+ export interface SwiperVo {
14
+ detail: {
15
+ current: number
16
+ }
17
+ }
18
+
19
+ export interface ISwiperEmits {
20
+ /** 点击轮播图触发 */
21
+ (e: 'click', index: number): void
22
+ /** 滑动轮播图触发 */
23
+ (e: 'change', temp: SwiperVo['detail']): void
24
+ /** 滑动轮播图触发 */
25
+ (e: 'update:current', value: string | number): void
26
+ }
@@ -1,173 +1,173 @@
1
- <template>
2
- <view
3
- :class="[
4
- 'hy-switch cursor-pointer',
5
- disabled && 'hy-switch__disabled',
6
- isActive ? 'hy-switch__active' : 'hy-switch__container',
7
- customClass
8
- ]"
9
- :style="[switchStyle, customStyle]"
10
- @tap="clickHandler"
11
- >
12
- <view class="hy-switch__bg" :style="[bgStyle]"></view>
13
- <view
14
- :class="['hy-switch__node', modelValue && 'hy-switch__node--on']"
15
- :style="[nodeStyle]"
16
- ref="hy-switch__node"
17
- >
18
- <hy-loading :show="loading" :size="switchSize * 0.6" mode="circle"></hy-loading>
19
- <view class="" v-if="!loading">
20
- <slot>
21
- <hy-icon
22
- :name="modelValue ? activeIcon : inactiveIcon"
23
- :size="icon?.size || switchSize * 0.6"
24
- :color="icon?.color"
25
- :bold="icon?.bold"
26
- :customPrefix="icon?.customPrefix"
27
- :imgMode="icon?.imgMode"
28
- :width="icon?.width"
29
- :height="icon?.height"
30
- :top="icon?.top"
31
- :stop="icon?.stop"
32
- :round="icon?.round"
33
- :customStyle="icon?.customStyle"
34
- ></hy-icon>
35
- </slot>
36
- </view>
37
- </view>
38
- </view>
39
- </template>
40
-
41
- <script lang="ts">
42
- export default {
43
- name: 'hy-switch',
44
- options: {
45
- addGlobalClass: true,
46
- virtualHost: true,
47
- styleIsolation: 'shared'
48
- }
49
- }
50
- </script>
51
-
52
- <script setup lang="ts">
53
- import { watch, nextTick, computed } from 'vue'
54
- import type { CSSProperties } from 'vue'
55
- import { addUnit, error, isNumber } from '../../libs'
56
- import type { ISwitchEmits } from './typing'
57
- import switchProps from './props'
58
- // 组件
59
- import HyLoading from '../hy-loading/hy-loading.vue'
60
- import HyIcon from '../hy-icon/hy-icon.vue'
61
-
62
- /**
63
- * 选择开关用于在打开和关闭状态之间进行切换。
64
- * @displayName hy-switch
65
- */
66
- defineOptions({})
67
-
68
- const props = defineProps(switchProps)
69
- const emit = defineEmits<ISwitchEmits>()
70
-
71
- watch(
72
- () => props.modelValue,
73
- (newValue) => {
74
- if (newValue !== props.inactiveValue && newValue !== props.activeValue) {
75
- error('v-model绑定的值必须为inactiveValue、activeValue二者之一')
76
- }
77
- },
78
- { immediate: true }
79
- )
80
-
81
- /**
82
- * @description 是否打开
83
- * */
84
- const isActive = computed(() => {
85
- return props.modelValue === props.activeValue
86
- })
87
-
88
- /**
89
- * @description 设置开关大小
90
- * */
91
- const switchSize = computed((): number => {
92
- const sz: AnyObject = {
93
- small: 20,
94
- medium: 25,
95
- large: 30
96
- }
97
-
98
- return isNumber(props.size) ? props.size : sz[props.size]
99
- })
100
-
101
- /**
102
- * @description 开关样式
103
- * */
104
- const switchStyle = computed<CSSProperties>(() => {
105
- let style: CSSProperties = {}
106
- // 这里需要加2,是为了腾出边框的距离,否则圆点node会和外边框紧贴在一起
107
- style.width = addUnit(switchSize.value * 2 + 2)
108
- style.height = addUnit(switchSize.value + 2)
109
- // style.borderColor = this.value ? 'rgba(0, 0, 0, 0)' : 'rgba(0, 0, 0, 0.12)'
110
- // 如果自定义了“非激活”演示,name边框颜色设置为透明(跟非激活颜色一致)
111
- // 这里不能简单的设置为非激活的颜色,否则打开状态时,会有边框,所以需要透明
112
- if (customInactiveColor.value) {
113
- style.borderColor = 'rgba(0, 0, 0, 0)'
114
- }
115
- style.backgroundColor = isActive.value ? props.activeColor : props.inactiveColor
116
- return style
117
- })
118
-
119
- /**
120
- * @description 圆圈样式
121
- * */
122
- const nodeStyle = computed<CSSProperties>(() => {
123
- let style: CSSProperties = {}
124
- // 如果自定义非激活颜色,将node圆点的尺寸减少两个像素,让其与外边框距离更大一点
125
- style.width = addUnit(switchSize.value - props.space)
126
- style.height = addUnit(switchSize.value - props.space)
127
- const translateX = isActive.value ? addUnit(props.space) : addUnit(switchSize.value)
128
- style.transform = `translateX(-${translateX})`
129
- return style
130
- })
131
-
132
- /**
133
- * @description 背景样式
134
- * */
135
- const bgStyle = computed<CSSProperties>(() => {
136
- let style: CSSProperties = {}
137
- // 这里配置一个多余的元素在HTML中,是为了让switch切换时,有更良好的背景色扩充体验(见实际效果)
138
- style.width = addUnit(switchSize.value * 2 - switchSize.value / 2)
139
- style.height = addUnit(switchSize.value)
140
- style.backgroundColor = props.inactiveColor
141
- // 打开时,让此元素收缩,否则反之
142
- style.transform = `scale(${isActive.value ? 0 : 1})`
143
- return style
144
- })
145
-
146
- /**
147
- * @description 自定义颜色
148
- * */
149
- const customInactiveColor = computed(() => {
150
- // 之所以需要判断是否自定义了“非激活”颜色,是为了让node圆点离外边框更宽一点的距离
151
- return props.inactiveColor !== '#fff' && props.inactiveColor !== '#ffffff'
152
- })
153
-
154
- /**
155
- * @description 点击事件
156
- * */
157
- const clickHandler = () => {
158
- if (!props.disabled && !props.loading) {
159
- const oldValue = isActive.value ? props.inactiveValue : props.activeValue
160
- if (!props.asyncChange) {
161
- emit('update:modelValue', oldValue)
162
- }
163
- // 放到下一个生命周期,因为双向绑定的value修改父组件状态需要时间,且是异步的
164
- nextTick(() => {
165
- emit('change', oldValue)
166
- })
167
- }
168
- }
169
- </script>
170
-
171
- <style lang="scss" scoped>
172
- @import './index.scss';
173
- </style>
1
+ <template>
2
+ <view
3
+ :class="[
4
+ 'hy-switch cursor-pointer',
5
+ disabled && 'hy-switch__disabled',
6
+ isActive ? 'hy-switch__active' : 'hy-switch__container',
7
+ customClass
8
+ ]"
9
+ :style="[switchStyle, customStyle]"
10
+ @tap="clickHandler"
11
+ >
12
+ <view class="hy-switch__bg" :style="[bgStyle]"></view>
13
+ <view
14
+ :class="['hy-switch__node', modelValue && 'hy-switch__node--on']"
15
+ :style="[nodeStyle]"
16
+ ref="hy-switch__node"
17
+ >
18
+ <hy-loading :show="loading" :size="switchSize * 0.6" mode="circle"></hy-loading>
19
+ <view class="" v-if="!loading">
20
+ <slot>
21
+ <hy-icon
22
+ :name="modelValue ? activeIcon : inactiveIcon"
23
+ :size="icon?.size || switchSize * 0.6"
24
+ :color="icon?.color"
25
+ :bold="icon?.bold"
26
+ :customPrefix="icon?.customPrefix"
27
+ :imgMode="icon?.imgMode"
28
+ :width="icon?.width"
29
+ :height="icon?.height"
30
+ :top="icon?.top"
31
+ :stop="icon?.stop"
32
+ :round="icon?.round"
33
+ :customStyle="icon?.customStyle"
34
+ ></hy-icon>
35
+ </slot>
36
+ </view>
37
+ </view>
38
+ </view>
39
+ </template>
40
+
41
+ <script lang="ts">
42
+ export default {
43
+ name: 'hy-switch',
44
+ options: {
45
+ addGlobalClass: true,
46
+ virtualHost: true,
47
+ styleIsolation: 'shared'
48
+ }
49
+ }
50
+ </script>
51
+
52
+ <script setup lang="ts">
53
+ import { watch, nextTick, computed } from 'vue'
54
+ import type { CSSProperties } from 'vue'
55
+ import { addUnit, error, isNumber } from '../../libs'
56
+ import type { ISwitchEmits } from './typing'
57
+ import switchProps from './props'
58
+ // 组件
59
+ import HyLoading from '../hy-loading/hy-loading.vue'
60
+ import HyIcon from '../hy-icon/hy-icon.vue'
61
+
62
+ /**
63
+ * 选择开关用于在打开和关闭状态之间进行切换。
64
+ * @displayName hy-switch
65
+ */
66
+ defineOptions({})
67
+
68
+ const props = defineProps(switchProps)
69
+ const emit = defineEmits<ISwitchEmits>()
70
+
71
+ watch(
72
+ () => props.modelValue,
73
+ (newValue) => {
74
+ if (newValue !== props.inactiveValue && newValue !== props.activeValue) {
75
+ error('v-model绑定的值必须为inactiveValue、activeValue二者之一')
76
+ }
77
+ },
78
+ { immediate: true }
79
+ )
80
+
81
+ /**
82
+ * @description 是否打开
83
+ * */
84
+ const isActive = computed(() => {
85
+ return props.modelValue === props.activeValue
86
+ })
87
+
88
+ /**
89
+ * @description 设置开关大小
90
+ * */
91
+ const switchSize = computed((): number => {
92
+ const sz: AnyObject = {
93
+ small: 20,
94
+ medium: 25,
95
+ large: 30
96
+ }
97
+
98
+ return isNumber(props.size) ? props.size : sz[props.size]
99
+ })
100
+
101
+ /**
102
+ * @description 开关样式
103
+ * */
104
+ const switchStyle = computed<CSSProperties>(() => {
105
+ let style: CSSProperties = {}
106
+ // 这里需要加2,是为了腾出边框的距离,否则圆点node会和外边框紧贴在一起
107
+ style.width = addUnit(switchSize.value * 2 + 2)
108
+ style.height = addUnit(switchSize.value + 2)
109
+ // style.borderColor = this.value ? 'rgba(0, 0, 0, 0)' : 'rgba(0, 0, 0, 0.12)'
110
+ // 如果自定义了“非激活”演示,name边框颜色设置为透明(跟非激活颜色一致)
111
+ // 这里不能简单的设置为非激活的颜色,否则打开状态时,会有边框,所以需要透明
112
+ if (customInactiveColor.value) {
113
+ style.borderColor = 'rgba(0, 0, 0, 0)'
114
+ }
115
+ style.backgroundColor = isActive.value ? props.activeColor : props.inactiveColor
116
+ return style
117
+ })
118
+
119
+ /**
120
+ * @description 圆圈样式
121
+ * */
122
+ const nodeStyle = computed<CSSProperties>(() => {
123
+ let style: CSSProperties = {}
124
+ // 如果自定义非激活颜色,将node圆点的尺寸减少两个像素,让其与外边框距离更大一点
125
+ style.width = addUnit(switchSize.value - props.space)
126
+ style.height = addUnit(switchSize.value - props.space)
127
+ const translateX = isActive.value ? addUnit(props.space) : addUnit(switchSize.value)
128
+ style.transform = `translateX(-${translateX})`
129
+ return style
130
+ })
131
+
132
+ /**
133
+ * @description 背景样式
134
+ * */
135
+ const bgStyle = computed<CSSProperties>(() => {
136
+ let style: CSSProperties = {}
137
+ // 这里配置一个多余的元素在HTML中,是为了让switch切换时,有更良好的背景色扩充体验(见实际效果)
138
+ style.width = addUnit(switchSize.value * 2 - switchSize.value / 2)
139
+ style.height = addUnit(switchSize.value)
140
+ style.backgroundColor = props.inactiveColor
141
+ // 打开时,让此元素收缩,否则反之
142
+ style.transform = `scale(${isActive.value ? 0 : 1})`
143
+ return style
144
+ })
145
+
146
+ /**
147
+ * @description 自定义颜色
148
+ * */
149
+ const customInactiveColor = computed(() => {
150
+ // 之所以需要判断是否自定义了“非激活”颜色,是为了让node圆点离外边框更宽一点的距离
151
+ return props.inactiveColor !== '#fff' && props.inactiveColor !== '#ffffff'
152
+ })
153
+
154
+ /**
155
+ * @description 点击事件
156
+ * */
157
+ const clickHandler = () => {
158
+ if (!props.disabled && !props.loading) {
159
+ const oldValue = isActive.value ? props.inactiveValue : props.activeValue
160
+ if (!props.asyncChange) {
161
+ emit('update:modelValue', oldValue)
162
+ }
163
+ // 放到下一个生命周期,因为双向绑定的value修改父组件状态需要时间,且是异步的
164
+ nextTick(() => {
165
+ emit('change', oldValue)
166
+ })
167
+ }
168
+ }
169
+ </script>
170
+
171
+ <style lang="scss" scoped>
172
+ @import './index.scss';
173
+ </style>