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,112 +1,112 @@
1
- /**
2
- * @description 求两个颜色之间的渐变值
3
- * @param {string} startColor 开始的颜色
4
- * @param {string} endColor 结束的颜色
5
- * @param {number} step 颜色等分的份额
6
- * */
7
- export const colorGradient = (
8
- startColor: string = "rgb(0, 0, 0)",
9
- endColor: string = "rgb(255, 255, 255)",
10
- step: number = 100,
11
- ): any[] => {
12
- const startRGB = hexToRgb(startColor, false); // 转换为rgb数组模式
13
-
14
- const endRGB = hexToRgb(endColor, false);
15
-
16
- if (typeof startRGB !== "string" && typeof endRGB !== "string") {
17
- const startR = startRGB[0];
18
- const startG = startRGB[1];
19
- const startB = startRGB[2];
20
-
21
- const endR = endRGB[0];
22
- const endG = endRGB[1];
23
- const endB = endRGB[2];
24
-
25
- const sR = (endR - startR) / step; // 总差值
26
- const sG = (endG - startG) / step;
27
- const sB = (endB - startB) / step;
28
- const colorArr = [];
29
- for (let i = 0; i < step; i++) {
30
- // 计算每一步的hex值
31
- let hex = rgbToHex(
32
- `rgb(${Math.round(sR * i + startR)},${Math.round(sG * i + startG)},${Math.round(
33
- sB * i + startB,
34
- )})`,
35
- );
36
- // 确保第一个颜色值为startColor的值
37
- if (i === 0) hex = rgbToHex(startColor);
38
- // 确保最后一个颜色值为endColor的值
39
- if (i === step - 1) hex = rgbToHex(endColor);
40
- colorArr.push(hex);
41
- }
42
- return colorArr;
43
- }
44
-
45
- return [];
46
- };
47
-
48
- // 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)
49
- export function hexToRgb(sColor: string, str = true): string | number[] {
50
- const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
51
- sColor = String(sColor).toLowerCase();
52
- if (sColor && reg.test(sColor)) {
53
- if (sColor.length === 4) {
54
- let sColorNew = "#";
55
- for (let i = 1; i < 4; i += 1) {
56
- sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));
57
- }
58
- sColor = sColorNew;
59
- }
60
- // 处理六位的颜色值
61
- const sColorChange = [];
62
- for (let i = 1; i < 7; i += 2) {
63
- sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`));
64
- }
65
- if (!str) {
66
- return sColorChange;
67
- }
68
- return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`;
69
- }
70
- if (/^(rgb|RGB)/.test(sColor)) {
71
- const arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
72
- return arr.map((val) => Number(val));
73
- }
74
- return sColor;
75
- }
76
-
77
- // 将rgb表示方式转换为hex表示方式
78
- export function rgbToHex(rgb: string) {
79
- const _this = rgb;
80
- const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
81
- if (/^(rgb|RGB)/.test(_this)) {
82
- const aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
83
- let strHex = "#";
84
- for (let i = 0; i < aColor.length; i++) {
85
- let hex = Number(aColor[i]).toString(16);
86
- hex = String(hex).length == 1 ? `${0}${hex}` : hex; // 保证每个rgb的值为2位
87
- if (hex === "0") {
88
- hex += hex;
89
- }
90
- strHex += hex;
91
- }
92
- if (strHex.length !== 7) {
93
- strHex = _this;
94
- }
95
- return strHex;
96
- }
97
- if (reg.test(_this)) {
98
- const aNum = _this.replace(/#/, "").split("");
99
- if (aNum.length === 6) {
100
- return _this;
101
- }
102
- if (aNum.length === 3) {
103
- let numHex = "#";
104
- for (let i = 0; i < aNum.length; i += 1) {
105
- numHex += aNum[i] + aNum[i];
106
- }
107
- return numHex;
108
- }
109
- } else {
110
- return _this;
111
- }
112
- }
1
+ /**
2
+ * @description 求两个颜色之间的渐变值
3
+ * @param {string} startColor 开始的颜色
4
+ * @param {string} endColor 结束的颜色
5
+ * @param {number} step 颜色等分的份额
6
+ * */
7
+ export const colorGradient = (
8
+ startColor: string = "rgb(0, 0, 0)",
9
+ endColor: string = "rgb(255, 255, 255)",
10
+ step: number = 100,
11
+ ): any[] => {
12
+ const startRGB = hexToRgb(startColor, false); // 转换为rgb数组模式
13
+
14
+ const endRGB = hexToRgb(endColor, false);
15
+
16
+ if (typeof startRGB !== "string" && typeof endRGB !== "string") {
17
+ const startR = startRGB[0];
18
+ const startG = startRGB[1];
19
+ const startB = startRGB[2];
20
+
21
+ const endR = endRGB[0];
22
+ const endG = endRGB[1];
23
+ const endB = endRGB[2];
24
+
25
+ const sR = (endR - startR) / step; // 总差值
26
+ const sG = (endG - startG) / step;
27
+ const sB = (endB - startB) / step;
28
+ const colorArr = [];
29
+ for (let i = 0; i < step; i++) {
30
+ // 计算每一步的hex值
31
+ let hex = rgbToHex(
32
+ `rgb(${Math.round(sR * i + startR)},${Math.round(sG * i + startG)},${Math.round(
33
+ sB * i + startB,
34
+ )})`,
35
+ );
36
+ // 确保第一个颜色值为startColor的值
37
+ if (i === 0) hex = rgbToHex(startColor);
38
+ // 确保最后一个颜色值为endColor的值
39
+ if (i === step - 1) hex = rgbToHex(endColor);
40
+ colorArr.push(hex);
41
+ }
42
+ return colorArr;
43
+ }
44
+
45
+ return [];
46
+ };
47
+
48
+ // 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)
49
+ export function hexToRgb(sColor: string, str = true): string | number[] {
50
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
51
+ sColor = String(sColor).toLowerCase();
52
+ if (sColor && reg.test(sColor)) {
53
+ if (sColor.length === 4) {
54
+ let sColorNew = "#";
55
+ for (let i = 1; i < 4; i += 1) {
56
+ sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));
57
+ }
58
+ sColor = sColorNew;
59
+ }
60
+ // 处理六位的颜色值
61
+ const sColorChange = [];
62
+ for (let i = 1; i < 7; i += 2) {
63
+ sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`));
64
+ }
65
+ if (!str) {
66
+ return sColorChange;
67
+ }
68
+ return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`;
69
+ }
70
+ if (/^(rgb|RGB)/.test(sColor)) {
71
+ const arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
72
+ return arr.map((val) => Number(val));
73
+ }
74
+ return sColor;
75
+ }
76
+
77
+ // 将rgb表示方式转换为hex表示方式
78
+ export function rgbToHex(rgb: string) {
79
+ const _this = rgb;
80
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
81
+ if (/^(rgb|RGB)/.test(_this)) {
82
+ const aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");
83
+ let strHex = "#";
84
+ for (let i = 0; i < aColor.length; i++) {
85
+ let hex = Number(aColor[i]).toString(16);
86
+ hex = String(hex).length == 1 ? `${0}${hex}` : hex; // 保证每个rgb的值为2位
87
+ if (hex === "0") {
88
+ hex += hex;
89
+ }
90
+ strHex += hex;
91
+ }
92
+ if (strHex.length !== 7) {
93
+ strHex = _this;
94
+ }
95
+ return strHex;
96
+ }
97
+ if (reg.test(_this)) {
98
+ const aNum = _this.replace(/#/, "").split("");
99
+ if (aNum.length === 6) {
100
+ return _this;
101
+ }
102
+ if (aNum.length === 3) {
103
+ let numHex = "#";
104
+ for (let i = 0; i < aNum.length; i += 1) {
105
+ numHex += aNum[i] + aNum[i];
106
+ }
107
+ return numHex;
108
+ }
109
+ } else {
110
+ return _this;
111
+ }
112
+ }
@@ -1,5 +1,5 @@
1
- export * from "./utils";
2
- export * from "./inspect";
3
- export * from "./base64";
4
- export * from "./inside";
5
- export * from "./colorGradient";
1
+ export * from "./utils";
2
+ export * from "./inspect";
3
+ export * from "./base64";
4
+ export * from "./inside";
5
+ export * from "./colorGradient";
@@ -1,6 +1,3 @@
1
- // 内部使用方法
2
- import { inject } from 'vue'
3
-
4
1
  /**
5
2
  * 生成bem规则类名
6
3
  * 由于微信小程序,H5,nvue之间绑定class的差异,无法通过:class="[bem()]"的形式进行同用
@@ -44,21 +41,6 @@ export const bem = (
44
41
  )
45
42
  }
46
43
 
47
- /**
48
- * @description 在u-form的子组件内容发生变化,或者失去焦点时,尝试通知u-form执行校验方法
49
- * @param {*} instance
50
- * @param {*} event
51
- */
52
- export function formValidate(event) {
53
- // const formItem = $parent.call(instance, "u-form-item");
54
- const form = inject('uForm')
55
- // 如果发生变化的input或者textarea等,其父组件中有u-form-item或者u-form等,就执行form的validate方法
56
- // 同时将form-item的pros传递给form,让其进行精确对象验证
57
- // if (formItem && form) {
58
- // form.validateField(formItem.prop, () => {}, event);
59
- // }
60
- }
61
-
62
44
  /**
63
45
  * @description error提示
64
46
  * @param {*} err 错误内容
@@ -70,7 +52,11 @@ export function error(err: string) {
70
52
  }
71
53
  }
72
54
 
73
- export const sleep = (value = 100) => {
55
+ /**
56
+ * 定时器同步执行,等待时间
57
+ * @param {Number} value 等待时间
58
+ */
59
+ export const sleep = (value: number = 100) => {
74
60
  return new Promise((resolve) => {
75
61
  setTimeout(() => {
76
62
  resolve(null)
@@ -80,10 +66,10 @@ export const sleep = (value = 100) => {
80
66
 
81
67
  /**
82
68
  * @param {Number} len uuid的长度
83
- * @param {Boolean} firstU 将返回的首字母置为"u"
84
- * @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
69
+ * @param {Boolean} firstU 将返回的首字母置为"hy"
70
+ * @param {Number | Null} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
85
71
  */
86
- export function guid(len = 32, firstU = true, radix = null) {
72
+ export function guid(len: number = 32, firstU: boolean = true, radix: number | null = null) {
87
73
  const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
88
74
  const uuid = []
89
75
  radix = radix || chars.length
@@ -304,9 +290,9 @@ export function chooseFile({
304
290
  */
305
291
  export function priceFormat(
306
292
  number: string | number,
307
- decimals = 0,
308
- decimalPoint = '.',
309
- thousandsSeparator = ','
293
+ decimals: number = 0,
294
+ decimalPoint: string = '.',
295
+ thousandsSeparator: string = ','
310
296
  ) {
311
297
  number = `${number}`.replace(/[^0-9+-Ee.]/g, '')
312
298
  const n = !isFinite(+number) ? 0 : +number
@@ -1,171 +1,171 @@
1
- /**
2
- * @description 判断字符串是否是数字
3
- * @param {String | Number} text 值
4
- * @return {Boolean}
5
- * */
6
- export const isNumericString = (text: string | number): boolean => {
7
- return typeof text === "string" && !isNaN(Number(text));
8
- };
9
-
10
- /**
11
- * @description 判断是否是数字
12
- * @param {String | Number} text 值
13
- * @return {Boolean}
14
- * */
15
- export const isNumber = (text: string | number): boolean => {
16
- return typeof text === "number" || isNumericString(text);
17
- };
18
-
19
- /**
20
- * @description 判断是否数组
21
- * @param {any} arr 传入数组值
22
- * @return {Boolean}
23
- */
24
- export const isArray = (arr: any): arr is Array<any> => {
25
- // 如果 Array.isArray 函数可用,直接使用该函数检查
26
- if (typeof Array.isArray === "function") {
27
- return Array.isArray(arr);
28
- }
29
- // 否则,使用对象原型的 toString 方法进行检查
30
- return Object.prototype.toString.call(arr) === "[object Array]";
31
- };
32
-
33
- /**
34
- * @description 判断是否对象
35
- * @param obj 传入对象值
36
- * @return {Boolean}
37
- */
38
- export const isObject = (obj: any): obj is Object => {
39
- return Object.prototype.toString.call(obj) === "[object Object]";
40
- };
41
-
42
- /**
43
- * @description 是否为base64图片
44
- * @param {String} url
45
- * @return
46
- */
47
- export function isBase64Image(url: string) {
48
- // 使用正则表达式检查URL是否以"data:image"开头,这是Base64图片的常见前缀
49
- return /^data:image\/(png|jpg|jpeg|gif|bmp);base64,/.test(url);
50
- }
51
-
52
- /**
53
- * @description 是否图片
54
- * @param {String} url
55
- * @return
56
- */
57
- export function isImage(url: string) {
58
- // 使用正则表达式检查URL是否以"data:image"开头,这是Base64图片的常见前缀
59
- return /(\.jpg|\.jpeg|\.png|\.gif|\.bmp|\.webp)$/i.test(url);
60
- }
61
-
62
- /**
63
- * 是否视频格式
64
- * @param {String} value
65
- */
66
- export function isVideo(value: string): boolean {
67
- const VIDEO_REGEXP =
68
- /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i;
69
- return VIDEO_REGEXP.test(value);
70
- }
71
-
72
- /**
73
- * 判断是否是日期格式
74
- * @param {Number | String} value yyyy-mm-dd hh:mm:ss 或 时间戳
75
- */
76
- export const isDate = (value: string | number) => {
77
- if (!value) return false;
78
- // number类型,判断是否是时间戳
79
- if (typeof value === "number") {
80
- // len === 10 秒级时间戳 len === 13 毫秒级时间戳
81
- if (value.toString().length !== 10 && value.toString().length !== 13) {
82
- return false;
83
- }
84
- return !isNaN(new Date(value).getTime());
85
- }
86
- if (typeof value === "string") {
87
- // 是否为string类型时间戳
88
- const numV = Number(value);
89
- if (!isNaN(numV)) {
90
- if (numV.toString().length === 10 || numV.toString().length === 13) {
91
- return !isNaN(new Date(numV).getTime());
92
- }
93
- }
94
- // 非时间戳,且长度在yyyy-mm-dd 至 yyyy-mm-dd hh:mm:ss 之间
95
- if (value.length < 10 || value.length > 19) {
96
- return false;
97
- }
98
- const dateRegex = /^\d{4}[-\/]\d{2}[-\/]\d{2}( \d{1,2}:\d{2}(:\d{2})?)?$/;
99
- if (!dateRegex.test(value)) {
100
- return false;
101
- }
102
- // 检查是否为有效日期
103
- const dateValue = new Date(value);
104
- return !isNaN(dateValue.getTime());
105
- }
106
- // 非number和string类型,不做校验
107
- return false;
108
- };
109
-
110
- /**
111
- * @description 验证是否是手机号格式
112
- * @param {unknown} phone 手机号
113
- */
114
- export const isPhone = (phone: unknown): boolean => {
115
- if (typeof phone !== "string" && typeof phone !== "number") return false;
116
- if (phone === "") return false;
117
-
118
- const phoneStr = String(phone).trim();
119
- // 处理 +86 12345678901 格式
120
- const normalized = phoneStr.replace(/^\+86\s?/, "");
121
- return /^1[3-9]\d{9}$/.test(normalized) && normalized.length === 11;
122
- };
123
-
124
- /**
125
- * @description 验证身份证号码
126
- * @param {unknown} idCard 身份证号
127
- * @return {Boolean}
128
- */
129
- export const isIdCard = (idCard: unknown): boolean => {
130
- if (typeof idCard !== "string" && typeof idCard !== "number") return false;
131
- const str = String(idCard).trim().toUpperCase();
132
-
133
- // 格式校验:15位或18位
134
- if (!/(^\d{15}$)|(^\d{17}[\dX]$)/.test(str)) return false;
135
-
136
- // 18位身份证:校验校验码
137
- if (str.length === 18) {
138
- const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
139
- const checksums = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
140
-
141
- let sum = 0;
142
- for (let i = 0; i < 17; i++) {
143
- sum += parseInt(str[i]) * weights[i];
144
- }
145
-
146
- return checksums[sum % 11] === str[17];
147
- }
148
-
149
- return true; // 15位不校验
150
- };
151
-
152
- /**
153
- * @description 验证是否是中文
154
- * @param {String} zh 校验值
155
- * @return {Boolean}
156
- */
157
- export const isChinese = (zh: string): boolean => {
158
- const reg = /^[\u4e00-\u9fa5]+$/gi;
159
- return reg.test(zh);
160
- };
161
-
162
- /**
163
- * @description 判断环境是否是H5
164
- */
165
- export const isH5 = (() => {
166
- let isH5 = false;
167
- // #ifdef H5
168
- isH5 = true;
169
- // #endif
170
- return isH5;
171
- })();
1
+ /**
2
+ * @description 判断字符串是否是数字
3
+ * @param {String | Number} text 值
4
+ * @return {Boolean}
5
+ * */
6
+ export const isNumericString = (text: string | number): boolean => {
7
+ return typeof text === "string" && !isNaN(Number(text));
8
+ };
9
+
10
+ /**
11
+ * @description 判断是否是数字
12
+ * @param {String | Number} text 值
13
+ * @return {Boolean}
14
+ * */
15
+ export const isNumber = (text: string | number): boolean => {
16
+ return typeof text === "number" || isNumericString(text);
17
+ };
18
+
19
+ /**
20
+ * @description 判断是否数组
21
+ * @param {any} arr 传入数组值
22
+ * @return {Boolean}
23
+ */
24
+ export const isArray = (arr: any): arr is Array<any> => {
25
+ // 如果 Array.isArray 函数可用,直接使用该函数检查
26
+ if (typeof Array.isArray === "function") {
27
+ return Array.isArray(arr);
28
+ }
29
+ // 否则,使用对象原型的 toString 方法进行检查
30
+ return Object.prototype.toString.call(arr) === "[object Array]";
31
+ };
32
+
33
+ /**
34
+ * @description 判断是否对象
35
+ * @param obj 传入对象值
36
+ * @return {Boolean}
37
+ */
38
+ export const isObject = (obj: any): obj is Object => {
39
+ return Object.prototype.toString.call(obj) === "[object Object]";
40
+ };
41
+
42
+ /**
43
+ * @description 是否为base64图片
44
+ * @param {String} url
45
+ * @return
46
+ */
47
+ export function isBase64Image(url: string) {
48
+ // 使用正则表达式检查URL是否以"data:image"开头,这是Base64图片的常见前缀
49
+ return /^data:image\/(png|jpg|jpeg|gif|bmp);base64,/.test(url);
50
+ }
51
+
52
+ /**
53
+ * @description 是否图片
54
+ * @param {String} url
55
+ * @return
56
+ */
57
+ export function isImage(url: string) {
58
+ // 使用正则表达式检查URL是否以"data:image"开头,这是Base64图片的常见前缀
59
+ return /(\.jpg|\.jpeg|\.png|\.gif|\.bmp|\.webp)$/i.test(url);
60
+ }
61
+
62
+ /**
63
+ * 是否视频格式
64
+ * @param {String} value
65
+ */
66
+ export function isVideo(value: string): boolean {
67
+ const VIDEO_REGEXP =
68
+ /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i;
69
+ return VIDEO_REGEXP.test(value);
70
+ }
71
+
72
+ /**
73
+ * 判断是否是日期格式
74
+ * @param {Number | String} value yyyy-mm-dd hh:mm:ss 或 时间戳
75
+ */
76
+ export const isDate = (value: string | number) => {
77
+ if (!value) return false;
78
+ // number类型,判断是否是时间戳
79
+ if (typeof value === "number") {
80
+ // len === 10 秒级时间戳 len === 13 毫秒级时间戳
81
+ if (value.toString().length !== 10 && value.toString().length !== 13) {
82
+ return false;
83
+ }
84
+ return !isNaN(new Date(value).getTime());
85
+ }
86
+ if (typeof value === "string") {
87
+ // 是否为string类型时间戳
88
+ const numV = Number(value);
89
+ if (!isNaN(numV)) {
90
+ if (numV.toString().length === 10 || numV.toString().length === 13) {
91
+ return !isNaN(new Date(numV).getTime());
92
+ }
93
+ }
94
+ // 非时间戳,且长度在yyyy-mm-dd 至 yyyy-mm-dd hh:mm:ss 之间
95
+ if (value.length < 10 || value.length > 19) {
96
+ return false;
97
+ }
98
+ const dateRegex = /^\d{4}[-\/]\d{2}[-\/]\d{2}( \d{1,2}:\d{2}(:\d{2})?)?$/;
99
+ if (!dateRegex.test(value)) {
100
+ return false;
101
+ }
102
+ // 检查是否为有效日期
103
+ const dateValue = new Date(value);
104
+ return !isNaN(dateValue.getTime());
105
+ }
106
+ // 非number和string类型,不做校验
107
+ return false;
108
+ };
109
+
110
+ /**
111
+ * @description 验证是否是手机号格式
112
+ * @param {unknown} phone 手机号
113
+ */
114
+ export const isPhone = (phone: unknown): boolean => {
115
+ if (typeof phone !== "string" && typeof phone !== "number") return false;
116
+ if (phone === "") return false;
117
+
118
+ const phoneStr = String(phone).trim();
119
+ // 处理 +86 12345678901 格式
120
+ const normalized = phoneStr.replace(/^\+86\s?/, "");
121
+ return /^1[3-9]\d{9}$/.test(normalized) && normalized.length === 11;
122
+ };
123
+
124
+ /**
125
+ * @description 验证身份证号码
126
+ * @param {unknown} idCard 身份证号
127
+ * @return {Boolean}
128
+ */
129
+ export const isIdCard = (idCard: unknown): boolean => {
130
+ if (typeof idCard !== "string" && typeof idCard !== "number") return false;
131
+ const str = String(idCard).trim().toUpperCase();
132
+
133
+ // 格式校验:15位或18位
134
+ if (!/(^\d{15}$)|(^\d{17}[\dX]$)/.test(str)) return false;
135
+
136
+ // 18位身份证:校验校验码
137
+ if (str.length === 18) {
138
+ const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
139
+ const checksums = ["1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"];
140
+
141
+ let sum = 0;
142
+ for (let i = 0; i < 17; i++) {
143
+ sum += parseInt(str[i]) * weights[i];
144
+ }
145
+
146
+ return checksums[sum % 11] === str[17];
147
+ }
148
+
149
+ return true; // 15位不校验
150
+ };
151
+
152
+ /**
153
+ * @description 验证是否是中文
154
+ * @param {String} zh 校验值
155
+ * @return {Boolean}
156
+ */
157
+ export const isChinese = (zh: string): boolean => {
158
+ const reg = /^[\u4e00-\u9fa5]+$/gi;
159
+ return reg.test(zh);
160
+ };
161
+
162
+ /**
163
+ * @description 判断环境是否是H5
164
+ */
165
+ export const isH5 = (() => {
166
+ let isH5 = false;
167
+ // #ifdef H5
168
+ isH5 = true;
169
+ // #endif
170
+ return isH5;
171
+ })();