hy-app 0.5.10 → 0.5.12

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 (293) 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 +17 -3
  17. package/components/hy-button/index.scss +24 -1
  18. package/components/hy-button/props.ts +9 -1
  19. package/components/hy-button/typing.d.ts +5 -0
  20. package/components/hy-calendar/header.vue +60 -60
  21. package/components/hy-calendar/hy-calendar.vue +362 -362
  22. package/components/hy-calendar/month.vue +537 -537
  23. package/components/hy-calendar/props.ts +159 -159
  24. package/components/hy-calendar/typing.d.ts +6 -6
  25. package/components/hy-card/hy-card.vue +161 -161
  26. package/components/hy-card/props.ts +122 -122
  27. package/components/hy-card/typing.d.ts +12 -12
  28. package/components/hy-cell/hy-cell.vue +33 -33
  29. package/components/hy-cell/props.ts +54 -54
  30. package/components/hy-cell/typing.d.ts +4 -4
  31. package/components/hy-cell-item/hy-cell-item.vue +161 -161
  32. package/components/hy-cell-item/props.ts +66 -66
  33. package/components/hy-cell-item/typing.d.ts +7 -7
  34. package/components/hy-check-button/hy-check-button.vue +96 -96
  35. package/components/hy-check-button/props.ts +74 -74
  36. package/components/hy-check-button/typing.d.ts +44 -44
  37. package/components/hy-checkbox/hy-checkbox.vue +227 -227
  38. package/components/hy-checkbox/props.ts +96 -96
  39. package/components/hy-checkbox/typing.d.ts +8 -8
  40. package/components/hy-checkbox-group/hy-checkbox-group.vue +45 -45
  41. package/components/hy-checkbox-group/props.ts +80 -80
  42. package/components/hy-checkbox-group/typing.d.ts +6 -6
  43. package/components/hy-checkbox-item/hy-checkbox-item.vue +199 -199
  44. package/components/hy-checkbox-item/props.ts +24 -24
  45. package/components/hy-checkbox-item/typing.d.ts +7 -7
  46. package/components/hy-code-input/hy-code-input.vue +231 -231
  47. package/components/hy-code-input/props.ts +88 -88
  48. package/components/hy-code-input/typing.d.ts +8 -8
  49. package/components/hy-config-provider/hy-config-provider.vue +53 -53
  50. package/components/hy-config-provider/props.ts +28 -28
  51. package/components/hy-count-down/hy-count-down.vue +170 -170
  52. package/components/hy-count-down/index.ts +52 -52
  53. package/components/hy-count-down/props.ts +32 -32
  54. package/components/hy-count-down/typing.d.ts +14 -14
  55. package/components/hy-count-to/hy-count-to.vue +218 -218
  56. package/components/hy-count-to/props.ts +62 -62
  57. package/components/hy-count-to/typing.d.ts +4 -4
  58. package/components/hy-coupon/hy-coupon.vue +12 -1
  59. package/components/hy-coupon/index.scss +167 -171
  60. package/components/hy-coupon/props.ts +6 -1
  61. package/components/hy-coupon/typing.d.ts +14 -14
  62. package/components/hy-datetime-picker/hy-datetime-picker.vue +521 -521
  63. package/components/hy-datetime-picker/props.ts +142 -142
  64. package/components/hy-datetime-picker/typing.d.ts +20 -20
  65. package/components/hy-divider/hy-divider.vue +132 -132
  66. package/components/hy-divider/props.ts +80 -80
  67. package/components/hy-dropdown/hy-dropdown.vue +60 -60
  68. package/components/hy-dropdown/props.ts +40 -40
  69. package/components/hy-dropdown-item/hy-dropdown-item.vue +206 -206
  70. package/components/hy-dropdown-item/props.ts +21 -21
  71. package/components/hy-dropdown-item/typing.d.ts +17 -17
  72. package/components/hy-empty/hy-empty.vue +116 -116
  73. package/components/hy-empty/icon.ts +72 -72
  74. package/components/hy-empty/props.ts +60 -60
  75. package/components/hy-empty/typing.d.ts +38 -38
  76. package/components/hy-flex/hy-flex.vue +53 -53
  77. package/components/hy-flex/index.scss +8 -8
  78. package/components/hy-flex/props.ts +58 -58
  79. package/components/hy-flex/typing.d.ts +21 -21
  80. package/components/hy-float-button/hy-float-button.vue +378 -378
  81. package/components/hy-float-button/props.ts +111 -111
  82. package/components/hy-float-button/typing.d.ts +35 -35
  83. package/components/hy-folding-panel/hy-folding-panel.vue +109 -109
  84. package/components/hy-folding-panel/props.ts +42 -42
  85. package/components/hy-folding-panel/typing.d.ts +19 -19
  86. package/components/hy-folding-panel-item/hy-folding-panel-item.vue +183 -183
  87. package/components/hy-folding-panel-item/props.ts +81 -81
  88. package/components/hy-folding-panel-item/typing.d.ts +37 -37
  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 +1 -1
  108. package/components/hy-input/index.scss +1 -2
  109. package/components/hy-input/props.ts +3 -3
  110. package/components/hy-input/typing.d.ts +31 -31
  111. package/components/hy-line/hy-line.vue +55 -55
  112. package/components/hy-line/props.ts +43 -43
  113. package/components/hy-line-progress/hy-line-progress.vue +102 -102
  114. package/components/hy-line-progress/props.ts +33 -33
  115. package/components/hy-list/hy-list.vue +226 -226
  116. package/components/hy-list/props.ts +69 -69
  117. package/components/hy-list/typing.d.ts +6 -6
  118. package/components/hy-loading/hy-loading.vue +107 -107
  119. package/components/hy-loading/props.ts +65 -65
  120. package/components/hy-menu/hy-menu.vue +159 -159
  121. package/components/hy-menu/props.ts +44 -44
  122. package/components/hy-menu/typing.d.ts +34 -34
  123. package/components/hy-modal/hy-modal.vue +173 -173
  124. package/components/hy-modal/props.ts +90 -90
  125. package/components/hy-modal/typing.d.ts +11 -11
  126. package/components/hy-navbar/hy-navbar.vue +144 -144
  127. package/components/hy-navbar/props.ts +78 -78
  128. package/components/hy-navbar/typing.d.ts +6 -6
  129. package/components/hy-notice-bar/hy-column-notice.vue +94 -94
  130. package/components/hy-notice-bar/hy-notice-bar.vue +96 -96
  131. package/components/hy-notice-bar/hy-row-notice.vue +1 -1
  132. package/components/hy-notice-bar/props.ts +85 -85
  133. package/components/hy-notice-bar/typing.d.ts +8 -8
  134. package/components/hy-notify/hy-notify.vue +174 -174
  135. package/components/hy-notify/props.ts +51 -51
  136. package/components/hy-number-step/hy-number-step.vue +367 -367
  137. package/components/hy-number-step/props.ts +112 -112
  138. package/components/hy-number-step/typing.d.ts +16 -16
  139. package/components/hy-overlay/hy-overlay.vue +60 -60
  140. package/components/hy-overlay/props.ts +33 -33
  141. package/components/hy-overlay/typing.d.ts +4 -4
  142. package/components/hy-pagination/hy-pagination.vue +135 -135
  143. package/components/hy-pagination/props.ts +55 -55
  144. package/components/hy-pagination/typing.d.ts +10 -10
  145. package/components/hy-parse/node/node.vue +619 -422
  146. package/components/hy-parse/parser.js +1253 -1060
  147. package/components/hy-picker/hy-picker.vue +7 -5
  148. package/components/hy-picker/props.ts +7 -2
  149. package/components/hy-picker/typing.d.ts +9 -5
  150. package/components/hy-popover/hy-popover.vue +251 -251
  151. package/components/hy-popover/props.ts +51 -51
  152. package/components/hy-popover/typing.d.ts +39 -39
  153. package/components/hy-popup/hy-popup.vue +197 -197
  154. package/components/hy-popup/props.ts +85 -85
  155. package/components/hy-popup/typing.d.ts +10 -10
  156. package/components/hy-price/hy-price.vue +79 -79
  157. package/components/hy-price/props.ts +54 -54
  158. package/components/hy-price/typing.d.ts +4 -4
  159. package/components/hy-qrcode/hy-qrcode.vue +216 -216
  160. package/components/hy-qrcode/props.ts +70 -70
  161. package/components/hy-qrcode/qrcode.js +1304 -1304
  162. package/components/hy-qrcode/typing.d.ts +8 -8
  163. package/components/hy-radio/hy-radio.vue +226 -226
  164. package/components/hy-radio/props.ts +1 -1
  165. package/components/hy-radio/typing.d.ts +8 -8
  166. package/components/hy-rate/hy-rate.vue +239 -239
  167. package/components/hy-rate/props.ts +77 -77
  168. package/components/hy-rate/typing.d.ts +6 -6
  169. package/components/hy-read-more/hy-read-more.vue +130 -130
  170. package/components/hy-read-more/props.ts +45 -45
  171. package/components/hy-read-more/typing.d.ts +6 -6
  172. package/components/hy-rolling-num/hy-rolling-num.vue +188 -188
  173. package/components/hy-rolling-num/props.ts +68 -68
  174. package/components/hy-scroll-list/hy-scroll-list.vue +123 -123
  175. package/components/hy-scroll-list/props.ts +22 -22
  176. package/components/hy-scroll-list/typing.d.ts +6 -6
  177. package/components/hy-search/hy-search.vue +221 -221
  178. package/components/hy-search/props.ts +131 -131
  179. package/components/hy-search/typing.d.ts +22 -22
  180. package/components/hy-signature/hy-signature.vue +640 -640
  181. package/components/hy-signature/props.ts +118 -118
  182. package/components/hy-signature/typing.d.ts +93 -93
  183. package/components/hy-slider/hy-slider.vue +444 -444
  184. package/components/hy-slider/props.ts +77 -77
  185. package/components/hy-slider/typing.d.ts +10 -10
  186. package/components/hy-status-bar/hy-status-bar.vue +41 -41
  187. package/components/hy-status-bar/props.ts +8 -8
  188. package/components/hy-status-bar/typing.d.ts +12 -12
  189. package/components/hy-steps/hy-steps.vue +267 -267
  190. package/components/hy-steps/props.ts +49 -49
  191. package/components/hy-steps/typing.d.ts +21 -21
  192. package/components/hy-sticky/hy-sticky.vue +226 -226
  193. package/components/hy-sticky/props.ts +24 -24
  194. package/components/hy-sticky/typing.d.ts +4 -4
  195. package/components/hy-submit-bar/hy-submit-bar.vue +189 -189
  196. package/components/hy-submit-bar/props.ts +91 -91
  197. package/components/hy-submit-bar/typing.d.ts +24 -24
  198. package/components/hy-subsection/hy-subsection.vue +207 -207
  199. package/components/hy-subsection/props.ts +52 -52
  200. package/components/hy-subsection/typing.d.ts +13 -13
  201. package/components/hy-swipe-action/hy-swipe-action.vue +323 -323
  202. package/components/hy-swipe-action/index.ts +25 -25
  203. package/components/hy-swipe-action/props.ts +47 -47
  204. package/components/hy-swipe-action/typing.d.ts +25 -25
  205. package/components/hy-swiper/hy-swiper-indicator.vue +75 -75
  206. package/components/hy-swiper/hy-swiper.vue +224 -224
  207. package/components/hy-swiper/props.ts +128 -128
  208. package/components/hy-swiper/typing.d.ts +26 -26
  209. package/components/hy-switch/hy-switch.vue +173 -173
  210. package/components/hy-switch/props.ts +61 -61
  211. package/components/hy-switch/typing.d.ts +8 -8
  212. package/components/hy-tabbar/hy-tabbar.vue +136 -136
  213. package/components/hy-tabbar/props.ts +59 -59
  214. package/components/hy-tabbar/typing.d.ts +21 -21
  215. package/components/hy-tabbar-group/hy-tabbar-group.vue +87 -87
  216. package/components/hy-tabbar-group/props.ts +78 -78
  217. package/components/hy-tabbar-group/typing.d.ts +16 -16
  218. package/components/hy-tabbar-item/hy-tabbar-item.vue +103 -103
  219. package/components/hy-tabbar-item/typing.d.ts +10 -10
  220. package/components/hy-table/hy-table.vue +492 -271
  221. package/components/hy-table/index.scss +134 -159
  222. package/components/hy-table/props.ts +22 -7
  223. package/components/hy-table/typing.d.ts +6 -11
  224. package/components/hy-tabs/hy-tabs.vue +1 -1
  225. package/components/hy-tabs/props.ts +77 -77
  226. package/components/hy-tabs/typing.d.ts +33 -33
  227. package/components/hy-tag/hy-tag.vue +174 -174
  228. package/components/hy-tag/props.ts +89 -89
  229. package/components/hy-tag/typing.d.ts +13 -13
  230. package/components/hy-text/hy-text.vue +3 -3
  231. package/components/hy-text/props.ts +1 -1
  232. package/components/hy-text/typing.d.ts +6 -6
  233. package/components/hy-textarea/hy-textarea.vue +3 -2
  234. package/components/hy-textarea/index.scss +2 -3
  235. package/components/hy-textarea/props.ts +116 -116
  236. package/components/hy-textarea/typing.d.ts +22 -22
  237. package/components/hy-toast/hy-toast.vue +1 -1
  238. package/components/hy-toast/typing.d.ts +38 -38
  239. package/components/hy-tooltip/hy-tooltip.vue +277 -277
  240. package/components/hy-tooltip/props.ts +78 -78
  241. package/components/hy-tooltip/typing.d.ts +4 -4
  242. package/components/hy-transition/hy-transition.vue +157 -157
  243. package/components/hy-transition/props.ts +32 -32
  244. package/components/hy-transition/typing.d.ts +16 -16
  245. package/components/hy-upload/hy-upload.vue +385 -385
  246. package/components/hy-upload/props.ts +132 -132
  247. package/components/hy-upload/typing.d.ts +65 -65
  248. package/components/hy-warn/hy-warn.vue +115 -115
  249. package/components/hy-warn/props.ts +49 -49
  250. package/components/hy-warn/typing.d.ts +6 -6
  251. package/components/hy-waterfall/hy-waterfall.vue +191 -191
  252. package/components/hy-waterfall/props.ts +21 -21
  253. package/components/hy-watermark/hy-watermark.vue +978 -978
  254. package/components/hy-watermark/props.ts +104 -104
  255. package/components/index.ts +183 -183
  256. package/global.d.ts +91 -91
  257. package/index.ts +1 -1
  258. package/libs/api/http.ts +140 -140
  259. package/libs/api/index.ts +1 -1
  260. package/libs/common/index.ts +2 -2
  261. package/libs/common/queue.ts +28 -28
  262. package/libs/composables/index.ts +6 -6
  263. package/libs/composables/usePopover.ts +241 -241
  264. package/libs/composables/useQueue.ts +53 -53
  265. package/libs/composables/useShakeService.ts +64 -64
  266. package/libs/composables/useShare.ts +42 -42
  267. package/libs/composables/useToast.ts +45 -45
  268. package/libs/composables/useTouch.ts +51 -51
  269. package/libs/config/color.ts +7 -7
  270. package/libs/config/icon.ts +430 -430
  271. package/libs/config/index.ts +2 -2
  272. package/libs/css/iconfont.css +443 -443
  273. package/libs/css/theme.scss +1 -0
  274. package/libs/css/vars.scss +2 -2
  275. package/libs/global/index.ts +6 -6
  276. package/libs/global/register-properties.ts +37 -37
  277. package/libs/index.ts +7 -7
  278. package/libs/typing/index.ts +4 -4
  279. package/libs/typing/modules/common.d.ts +136 -136
  280. package/libs/typing/modules/enum.ts +67 -67
  281. package/libs/typing/modules/form.ts +5 -1
  282. package/libs/typing/modules/http.ts +17 -17
  283. package/libs/typing/modules/icon.d.ts +366 -366
  284. package/libs/typing/modules/rect.ts +10 -10
  285. package/libs/utils/base64.ts +119 -119
  286. package/libs/utils/calendar.js +1021 -1021
  287. package/libs/utils/colorGradient.ts +112 -112
  288. package/libs/utils/index.ts +5 -5
  289. package/libs/utils/inside.ts +11 -25
  290. package/libs/utils/inspect.ts +171 -171
  291. package/libs/utils/utils.ts +521 -521
  292. package/package.json +18 -18
  293. 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>