fusions-ui 1.2.7 → 1.2.9

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 (547) hide show
  1. package/LICENSE +1 -1
  2. package/changelog.md +2 -0
  3. package/components/avatar/index.ts +1 -0
  4. package/components/avatar/src/avatar.ts +131 -0
  5. package/components/avatar/src/avatar.vue +104 -0
  6. package/components/avatar/src/composables/index.ts +1 -0
  7. package/components/avatar/src/composables/use-avatar.ts +61 -0
  8. package/components/avatar-group/index.ts +1 -0
  9. package/components/avatar-group/src/avatar-group.ts +86 -0
  10. package/components/{fu-avatar-group/fu-avatar-group.vue → avatar-group/src/avatar-group.vue} +27 -34
  11. package/components/avatar-group/src/composables/index.ts +1 -0
  12. package/components/avatar-group/src/composables/use-avatar-group.ts +17 -0
  13. package/components/badge/index.ts +1 -0
  14. package/components/badge/src/badge.ts +126 -0
  15. package/components/{fu-badge/fu-badge.vue → badge/src/badge.vue} +26 -62
  16. package/components/badge/src/composables/badge-custom.ts +51 -0
  17. package/components/badge/src/composables/index.ts +1 -0
  18. package/components/banner-arc/index.ts +1 -0
  19. package/components/banner-arc/src/banner-arc.ts +41 -0
  20. package/components/banner-arc/src/banner-arc.vue +49 -0
  21. package/components/banner-arc/src/composables/banner-arc-custom.ts +19 -0
  22. package/components/banner-arc/src/composables/index.ts +1 -0
  23. package/components/button/index.ts +1 -0
  24. package/components/button/src/button.ts +332 -0
  25. package/components/{fu-button/fu-button.vue → button/src/button.vue} +57 -163
  26. package/components/button/src/composables/button-custom.ts +90 -0
  27. package/components/button/src/composables/index.ts +2 -0
  28. package/components/button/src/composables/use-button.ts +137 -0
  29. package/components/cell/index.ts +1 -0
  30. package/components/cell/src/cell.ts +167 -0
  31. package/components/{fu-cell/fu-cell.vue → cell/src/cell.vue} +29 -38
  32. package/components/cell/src/composables/index.ts +1 -0
  33. package/components/cell/src/composables/use-cell.ts +20 -0
  34. package/components/cell-group/index.ts +1 -0
  35. package/components/cell-group/src/cell-group.ts +23 -0
  36. package/components/{fu-cell-group/fu-cell-group.vue → cell-group/src/cell-group.vue} +8 -13
  37. package/components/checkbox/index.ts +1 -0
  38. package/components/checkbox/src/checkbox.ts +144 -0
  39. package/components/checkbox/src/checkbox.vue +270 -0
  40. package/components/checkbox/src/composables/checkbox-custom.ts +15 -0
  41. package/components/checkbox/src/composables/index.ts +2 -0
  42. package/components/checkbox/src/composables/use-checkbox.ts +200 -0
  43. package/components/code-input/index.ts +1 -0
  44. package/components/code-input/src/code-input.ts +157 -0
  45. package/components/code-input/src/code-input.vue +158 -0
  46. package/components/code-input/src/composables/code-input-custom.ts +74 -0
  47. package/components/code-input/src/composables/index.ts +2 -0
  48. package/components/code-input/src/composables/use-code-input.ts +67 -0
  49. package/components/code-verify/index.ts +1 -0
  50. package/components/code-verify/src/code-verify.ts +160 -0
  51. package/components/code-verify/src/code-verify.vue +87 -0
  52. package/components/code-verify/src/composables/code-verify-custom.ts +23 -0
  53. package/components/code-verify/src/composables/index.ts +2 -0
  54. package/components/code-verify/src/composables/use-code-verify.ts +132 -0
  55. package/components/collapse/index.ts +1 -0
  56. package/components/collapse/src/collapse.ts +41 -0
  57. package/components/collapse/src/collapse.vue +48 -0
  58. package/components/collapse/src/composables/index.ts +1 -0
  59. package/components/collapse/src/composables/use-collapse.ts +150 -0
  60. package/components/collapse-item/index.ts +1 -0
  61. package/components/collapse-item/src/collapse-item.ts +102 -0
  62. package/components/{fu-collapse-item/fu-collapse-item.vue → collapse-item/src/collapse-item.vue} +20 -159
  63. package/components/collapse-item/src/composables/index.ts +1 -0
  64. package/components/collapse-item/src/composables/use-collapse-item.ts +139 -0
  65. package/components/countdown/index.ts +1 -0
  66. package/components/countdown/src/composables/index.ts +1 -0
  67. package/components/countdown/src/composables/use-countdown.ts +133 -0
  68. package/components/countdown/src/countdown.ts +63 -0
  69. package/components/countdown/src/countdown.vue +60 -0
  70. package/components/{fu-countdown/util.js → countdown/src/util.ts} +5 -5
  71. package/components/datetime-picker/index.ts +1 -0
  72. package/components/datetime-picker/src/composables/index.ts +1 -0
  73. package/components/datetime-picker/src/composables/use-datetime-picker.ts +325 -0
  74. package/components/datetime-picker/src/datetime-picker.ts +223 -0
  75. package/components/datetime-picker/src/datetime-picker.vue +96 -0
  76. package/components/form/index.ts +1 -0
  77. package/components/form/src/composables/index.ts +1 -0
  78. package/components/form/src/composables/use-form.ts +256 -0
  79. package/components/form/src/form.ts +108 -0
  80. package/components/form/src/form.vue +64 -0
  81. package/components/{fu-form/utils.js → form/src/utils.ts} +49 -42
  82. package/components/{fu-form/validate.js → form/src/validate.ts} +58 -49
  83. package/components/form-item/index.ts +1 -0
  84. package/components/form-item/src/composables/index.ts +1 -0
  85. package/components/form-item/src/composables/use-form-item.ts +292 -0
  86. package/components/form-item/src/form-item.ts +81 -0
  87. package/components/form-item/src/form-item.vue +229 -0
  88. package/components/fusions-ui/src/fusions-ui.vue +8 -0
  89. package/components/grid/index.ts +1 -0
  90. package/components/grid/src/composables/index.ts +1 -0
  91. package/components/grid/src/composables/use-grid.ts +67 -0
  92. package/components/grid/src/grid.ts +54 -0
  93. package/components/grid/src/grid.vue +69 -0
  94. package/components/grid-item/index.ts +1 -0
  95. package/components/grid-item/src/composables/grid-item-custom.ts +16 -0
  96. package/components/grid-item/src/composables/index.ts +2 -0
  97. package/components/grid-item/src/composables/use-grid-item.ts +55 -0
  98. package/components/grid-item/src/grid-item.ts +15 -0
  99. package/components/grid-item/src/grid-item.vue +102 -0
  100. package/components/icon/index.ts +1 -0
  101. package/components/icon/src/composables/icon-custom.ts +41 -0
  102. package/components/icon/src/composables/index.ts +2 -0
  103. package/components/icon/src/composables/use-icon.ts +14 -0
  104. package/components/{fu-icon → icon/src}/fuicon.css +584 -584
  105. package/components/icon/src/fuicon.ts +1023 -0
  106. package/components/icon/src/icon.ts +84 -0
  107. package/components/icon/src/icon.vue +92 -0
  108. package/components/image/index.ts +1 -0
  109. package/components/image/src/composables/image-custom.ts +36 -0
  110. package/components/image/src/composables/index.ts +2 -0
  111. package/components/image/src/composables/use-image.ts +135 -0
  112. package/components/image/src/image.ts +185 -0
  113. package/components/image/src/image.vue +152 -0
  114. package/components/index-anchor/index.ts +1 -0
  115. package/components/index-anchor/src/composables/index.ts +1 -0
  116. package/components/index-anchor/src/composables/use-index-anchor.ts +44 -0
  117. package/components/index-anchor/src/index-anchor.ts +45 -0
  118. package/components/index-anchor/src/index-anchor.vue +60 -0
  119. package/components/index-item/index.ts +1 -0
  120. package/components/index-item/src/composables/index.ts +1 -0
  121. package/components/index-item/src/composables/use-index-item.ts +75 -0
  122. package/components/index-item/src/index-item.ts +13 -0
  123. package/components/index-item/src/index-item.vue +32 -0
  124. package/components/index-list/index.ts +1 -0
  125. package/components/index-list/src/composables/index.ts +1 -0
  126. package/components/index-list/src/composables/use-index-list.ts +297 -0
  127. package/components/index-list/src/index-list.ts +52 -0
  128. package/components/index-list/src/index-list.vue +178 -0
  129. package/components/index.ts +62 -0
  130. package/components/input/index.ts +1 -0
  131. package/components/input/src/composables/index.ts +2 -0
  132. package/components/input/src/composables/input-custom.ts +69 -0
  133. package/components/input/src/composables/use-input.ts +117 -0
  134. package/components/input/src/input.ts +360 -0
  135. package/components/input/src/input.vue +241 -0
  136. package/components/keyboard/index.ts +1 -0
  137. package/components/keyboard/src/composables/index.ts +3 -0
  138. package/components/keyboard/src/composables/use-keyboard-car.ts +99 -0
  139. package/components/keyboard/src/composables/use-keyboard-number.ts +81 -0
  140. package/components/keyboard/src/composables/use-keyboard.ts +61 -0
  141. package/components/keyboard/src/keyboard-car.ts +53 -0
  142. package/components/{fu-keyboard → keyboard/src}/keyboard-car.vue +37 -199
  143. package/components/keyboard/src/keyboard-number.ts +44 -0
  144. package/components/keyboard/src/keyboard-number.vue +108 -0
  145. package/components/keyboard/src/keyboard.ts +174 -0
  146. package/components/{fu-keyboard/fu-keyboard.vue → keyboard/src/keyboard.vue} +38 -63
  147. package/components/line/index.ts +1 -0
  148. package/components/line/src/composables/index.ts +1 -0
  149. package/components/line/src/composables/line-custom.ts +30 -0
  150. package/components/line/src/line.ts +82 -0
  151. package/components/line/src/line.vue +44 -0
  152. package/components/link/index.ts +1 -0
  153. package/components/link/src/composables/index.ts +2 -0
  154. package/components/link/src/composables/link-custom.ts +19 -0
  155. package/components/link/src/composables/use-link.ts +33 -0
  156. package/components/link/src/link.ts +61 -0
  157. package/components/link/src/link.vue +62 -0
  158. package/components/loading/index.ts +1 -0
  159. package/{libs/function/colorGradient.js → components/loading/src/composables/colorGradient.ts} +4 -4
  160. package/components/loading/src/composables/index.ts +2 -0
  161. package/components/loading/src/composables/loading-custom.ts +21 -0
  162. package/components/loading/src/composables/use-loading.ts +100 -0
  163. package/components/loading/src/loading.ts +77 -0
  164. package/components/{fu-loading/fu-loading.vue → loading/src/loading.vue} +23 -119
  165. package/components/loading-more/index.ts +1 -0
  166. package/components/loading-more/src/loading-more.ts +75 -0
  167. package/components/{fu-loading-more/fu-loading-more.vue → loading-more/src/loading-more.vue} +18 -19
  168. package/components/modal/index.ts +1 -0
  169. package/components/modal/src/composables/index.ts +2 -0
  170. package/components/modal/src/composables/modal-custom.ts +17 -0
  171. package/components/modal/src/composables/use-modal.ts +56 -0
  172. package/components/modal/src/modal.ts +152 -0
  173. package/components/{fu-modal/fu-modal.vue → modal/src/modal.vue} +41 -69
  174. package/components/navbar/index.ts +1 -0
  175. package/components/navbar/src/composables/index.ts +2 -0
  176. package/components/navbar/src/composables/navbar-custom.ts +62 -0
  177. package/components/navbar/src/composables/use-navbar.ts +42 -0
  178. package/components/navbar/src/navbar.ts +151 -0
  179. package/components/navbar/src/navbar.vue +249 -0
  180. package/components/notice-bar/index.ts +3 -0
  181. package/components/notice-bar/src/composables/index.ts +5 -0
  182. package/components/notice-bar/src/composables/notice-column-custom.ts +43 -0
  183. package/components/notice-bar/src/composables/notice-row-custom.ts +26 -0
  184. package/components/notice-bar/src/composables/use-notice-bar.ts +34 -0
  185. package/components/notice-bar/src/composables/use-notice-column.ts +31 -0
  186. package/components/notice-bar/src/composables/use-notice-row.ts +88 -0
  187. package/components/notice-bar/src/notice-bar.ts +197 -0
  188. package/components/{fu-notice-bar/fu-notice-bar.vue → notice-bar/src/notice-bar.vue} +28 -41
  189. package/components/notice-bar/src/notice-column.ts +172 -0
  190. package/components/notice-bar/src/notice-column.vue +129 -0
  191. package/components/notice-bar/src/notice-row.ts +155 -0
  192. package/components/notice-bar/src/notice-row.vue +135 -0
  193. package/components/number-box/index.ts +1 -0
  194. package/components/number-box/src/composables/index.ts +2 -0
  195. package/components/number-box/src/composables/number-box-custom.ts +16 -0
  196. package/components/number-box/src/composables/use-number-box.ts +84 -0
  197. package/components/number-box/src/number-box.ts +98 -0
  198. package/components/number-box/src/number-box.vue +123 -0
  199. package/components/parse/index.ts +1 -0
  200. package/components/parse/src/app-plus/html/js/handler.js +254 -0
  201. package/components/parse/src/app-plus/html/js/uni.webview.min.js +188 -0
  202. package/components/parse/src/app-plus/html/local.html +32 -0
  203. package/components/parse/src/composables/index.ts +1 -0
  204. package/components/parse/src/composables/use-parse.ts +428 -0
  205. package/components/parse/src/node/node.vue +635 -0
  206. package/components/parse/src/parse.ts +156 -0
  207. package/components/parse/src/parse.vue +131 -0
  208. package/components/parse/src/parser.ts +1402 -0
  209. package/components/picker/index.ts +1 -0
  210. package/components/picker/src/composables/index.ts +2 -0
  211. package/components/picker/src/composables/picker-custom.ts +40 -0
  212. package/components/picker/src/composables/use-picker.ts +179 -0
  213. package/components/picker/src/picker.ts +172 -0
  214. package/components/picker/src/picker.vue +197 -0
  215. package/components/popup/index.ts +1 -0
  216. package/components/popup/src/composables/index.ts +1 -0
  217. package/components/popup/src/composables/use-popup.ts +346 -0
  218. package/components/popup/src/keypress.ts +55 -0
  219. package/components/popup/src/popup.ts +101 -0
  220. package/components/popup/src/popup.vue +204 -0
  221. package/components/progress/index.ts +1 -0
  222. package/components/progress/src/composables/index.ts +2 -0
  223. package/components/progress/src/composables/progress-custom.ts +24 -0
  224. package/components/progress/src/composables/use-progress.ts +159 -0
  225. package/components/progress/src/progress.ts +84 -0
  226. package/components/progress/src/progress.vue +150 -0
  227. package/components/rate/index.ts +1 -0
  228. package/components/rate/src/composables/index.ts +1 -0
  229. package/components/rate/src/composables/use-rate.ts +196 -0
  230. package/components/rate/src/rate.ts +114 -0
  231. package/components/rate/src/rate.vue +113 -0
  232. package/components/read-more/index.ts +1 -0
  233. package/components/read-more/src/composables/index.ts +2 -0
  234. package/components/read-more/src/composables/read-more-custom.ts +46 -0
  235. package/components/read-more/src/composables/use-read-more.ts +72 -0
  236. package/components/read-more/src/read-more.ts +102 -0
  237. package/components/read-more/src/read-more.vue +104 -0
  238. package/components/safe-bottom/index.ts +1 -0
  239. package/components/safe-bottom/src/composables/index.ts +2 -0
  240. package/components/safe-bottom/src/composables/safe-bottom-custom.ts +18 -0
  241. package/components/safe-bottom/src/composables/use-safe-bottom.ts +17 -0
  242. package/components/safe-bottom/src/safe-bottom.ts +8 -0
  243. package/components/safe-bottom/src/safe-bottom.vue +43 -0
  244. package/components/scroll-list/index.ts +1 -0
  245. package/components/scroll-list/src/composables/index.ts +2 -0
  246. package/components/scroll-list/src/composables/scroll-list-custom.ts +41 -0
  247. package/components/scroll-list/src/composables/use-scroll-list.ts +126 -0
  248. package/components/scroll-list/src/scroll-list.ts +57 -0
  249. package/components/scroll-list/src/scroll-list.vue +143 -0
  250. package/components/{fu-scroll-list/scrollWxs.wxs → scroll-list/src/scroll-wxs.wxs} +2 -2
  251. package/components/search/index.ts +1 -0
  252. package/components/search/src/composables/index.ts +2 -0
  253. package/components/search/src/composables/search-custom.ts +25 -0
  254. package/components/search/src/composables/use-search.ts +106 -0
  255. package/components/search/src/search.ts +186 -0
  256. package/components/{fu-search/fu-search.vue → search/src/search.vue} +42 -154
  257. package/components/section/index.ts +1 -0
  258. package/components/section/src/composables/index.ts +1 -0
  259. package/components/section/src/composables/use-section.ts +19 -0
  260. package/components/section/src/section.ts +83 -0
  261. package/components/{fu-section/fu-section.vue → section/src/section.vue} +36 -35
  262. package/components/sign-board/index.ts +1 -0
  263. package/components/sign-board/src/composables/index.ts +1 -0
  264. package/components/sign-board/src/composables/use-sign-board.ts +552 -0
  265. package/components/sign-board/src/sign-board.ts +48 -0
  266. package/components/sign-board/src/sign-board.vue +191 -0
  267. package/components/skeleton/index.ts +1 -0
  268. package/components/skeleton/src/composables/index.ts +2 -0
  269. package/components/skeleton/src/composables/skeleton-custom.ts +23 -0
  270. package/components/skeleton/src/composables/use-skeleton.ts +102 -0
  271. package/components/skeleton/src/skeleton.ts +37 -0
  272. package/components/skeleton/src/skeleton.vue +147 -0
  273. package/components/status-bar/src/composables/index.ts +1 -0
  274. package/components/status-bar/src/composables/use-status-bar.ts +29 -0
  275. package/components/status-bar/src/status-bar.vue +21 -0
  276. package/components/steps/index.ts +1 -0
  277. package/components/steps/src/composables/index.ts +1 -0
  278. package/components/steps/src/composables/use-steps.ts +27 -0
  279. package/components/steps/src/steps.ts +65 -0
  280. package/components/steps/src/steps.vue +46 -0
  281. package/components/steps-item/index.ts +1 -0
  282. package/components/steps-item/src/composables/index.ts +2 -0
  283. package/components/steps-item/src/composables/steps-item-custom.ts +81 -0
  284. package/components/steps-item/src/composables/use-steps-item.ts +87 -0
  285. package/components/steps-item/src/steps-item.ts +38 -0
  286. package/components/steps-item/src/steps-item.vue +224 -0
  287. package/components/sticky/index.ts +1 -0
  288. package/components/sticky/src/composables/index.ts +2 -0
  289. package/components/sticky/src/composables/sticky-custom.ts +57 -0
  290. package/components/sticky/src/composables/use-sticky.ts +152 -0
  291. package/components/sticky/src/sticky.ts +62 -0
  292. package/components/sticky/src/sticky.vue +65 -0
  293. package/components/subsection/index.ts +1 -0
  294. package/components/subsection/src/composables/index.ts +2 -0
  295. package/components/subsection/src/composables/subsection-custom.ts +71 -0
  296. package/components/subsection/src/composables/use-subsection.ts +85 -0
  297. package/components/subsection/src/subsection.ts +107 -0
  298. package/components/subsection/src/subsection.vue +165 -0
  299. package/components/swipe-action/src/composables/index.ts +1 -0
  300. package/components/swipe-action/src/composables/use-swipe-action.ts +58 -0
  301. package/components/swipe-action/src/swipe-action.vue +81 -0
  302. package/components/swipe-action-item/index.ts +1 -0
  303. package/components/{fu-swipe-action-item/mpwxs.js → swipe-action-item/src/mpwxs.ts} +22 -27
  304. package/components/swipe-action-item/src/swipe-action-item.ts +68 -0
  305. package/components/{fu-swipe-action-item/fu-swipe-action-item.vue → swipe-action-item/src/swipe-action-item.vue} +24 -17
  306. package/components/{fu-swipe-action-item → swipe-action-item/src}/wx.wxs +2 -2
  307. package/components/swiper/index.ts +1 -0
  308. package/components/swiper/src/composables/index.ts +2 -0
  309. package/components/swiper/src/composables/swiper-custom.ts +40 -0
  310. package/components/swiper/src/composables/use-swiper.ts +75 -0
  311. package/components/swiper/src/swiper.ts +189 -0
  312. package/components/{fu-swiper/fu-swiper.vue → swiper/src/swiper.vue} +49 -118
  313. package/components/switch/index.ts +1 -0
  314. package/components/switch/src/composables/index.ts +2 -0
  315. package/components/switch/src/composables/switch-custom.ts +32 -0
  316. package/components/switch/src/composables/use-switch.ts +38 -0
  317. package/components/switch/src/switch.ts +115 -0
  318. package/components/{fu-switch/fu-switch.vue → switch/src/switch.vue} +25 -73
  319. package/components/tabs/index.ts +1 -0
  320. package/components/tabs/src/composables/index.ts +2 -0
  321. package/components/tabs/src/composables/tabs-custom.ts +43 -0
  322. package/components/tabs/src/composables/use-tabs.ts +210 -0
  323. package/components/tabs/src/tabs.ts +123 -0
  324. package/components/tabs/src/tabs.vue +153 -0
  325. package/components/tag/index.ts +1 -0
  326. package/components/tag/src/composables/index.ts +2 -0
  327. package/components/tag/src/composables/tag-custom.ts +61 -0
  328. package/components/tag/src/composables/use-tag.ts +23 -0
  329. package/components/tag/src/tag.ts +159 -0
  330. package/components/{fu-tag/fu-tag.vue → tag/src/tag.vue} +53 -93
  331. package/components/text/index.ts +1 -0
  332. package/components/text/src/composables/index.ts +2 -0
  333. package/components/text/src/composables/text-custom.ts +120 -0
  334. package/components/text/src/composables/use-text.ts +83 -0
  335. package/components/text/src/text.ts +261 -0
  336. package/components/text/src/text.vue +186 -0
  337. package/components/textarea/index.ts +1 -0
  338. package/components/textarea/src/composables/index.ts +2 -0
  339. package/components/textarea/src/composables/textarea-custom.ts +50 -0
  340. package/components/textarea/src/composables/use-textarea.ts +88 -0
  341. package/components/textarea/src/textarea.ts +250 -0
  342. package/components/textarea/src/textarea.vue +162 -0
  343. package/components/{fu-timeaxis/fu-timeaxis.vue → timeaxis/src/timeaxis.vue} +3 -9
  344. package/components/timeaxis-item/index.ts +1 -0
  345. package/components/timeaxis-item/src/timeaxis-item.ts +20 -0
  346. package/components/timeaxis-item/src/timeaxis-item.vue +50 -0
  347. package/components/transition/index.ts +1 -0
  348. package/components/transition/src/composables/createAnimation.ts +171 -0
  349. package/components/transition/src/composables/index.ts +2 -0
  350. package/components/transition/src/composables/transform-custom.ts +18 -0
  351. package/components/transition/src/composables/use-transition.ts +251 -0
  352. package/components/transition/src/transition.ts +64 -0
  353. package/components/transition/src/transition.vue +70 -0
  354. package/components/upload/index.ts +1 -0
  355. package/components/upload/src/composables/index.ts +5 -0
  356. package/components/upload/src/composables/upload-file-custom.ts +68 -0
  357. package/components/upload/src/composables/upload-image-custom.ts +76 -0
  358. package/components/upload/src/composables/use-upload-file.ts +27 -0
  359. package/components/upload/src/composables/use-upload-image.ts +38 -0
  360. package/components/upload/src/composables/use-upload.ts +388 -0
  361. package/components/upload/src/upload-file.ts +84 -0
  362. package/components/upload/src/upload-file.vue +193 -0
  363. package/components/upload/src/upload-image.ts +90 -0
  364. package/components/upload/src/upload-image.vue +158 -0
  365. package/components/upload/src/upload.ts +196 -0
  366. package/components/upload/src/upload.vue +151 -0
  367. package/components/{fu-upload/utils.js → upload/src/utils.ts} +12 -12
  368. package/components/vtabs/index.ts +1 -0
  369. package/components/vtabs/src/composables/index.ts +2 -0
  370. package/components/vtabs/src/composables/use-vtabs.ts +276 -0
  371. package/components/vtabs/src/composables/vtabs-custom.ts +54 -0
  372. package/components/vtabs/src/vtabs.ts +130 -0
  373. package/components/vtabs/src/vtabs.vue +189 -0
  374. package/components/vtabs-item/index.ts +1 -0
  375. package/components/vtabs-item/src/composables/index.ts +1 -0
  376. package/components/vtabs-item/src/composables/use-vtabs-item.ts +60 -0
  377. package/components/vtabs-item/src/vtabs-item.ts +10 -0
  378. package/components/vtabs-item/src/vtabs-item.vue +20 -0
  379. package/components/waterfall/index.ts +1 -0
  380. package/components/waterfall/src/composables/index.ts +2 -0
  381. package/components/waterfall/src/composables/use-waterfall.ts +139 -0
  382. package/components/waterfall/src/composables/waterfall-custom.ts +18 -0
  383. package/components/waterfall/src/waterfall.ts +114 -0
  384. package/components/waterfall/src/waterfall.vue +104 -0
  385. package/{libs/config/config.js → config/config.ts} +13 -7
  386. package/constants/images.ts +18 -0
  387. package/constants/index.ts +6 -0
  388. package/constants/open-types.ts +33 -0
  389. package/constants/props.ts +18 -0
  390. package/constants/shapes.ts +6 -0
  391. package/constants/types.ts +10 -0
  392. package/constants/z-index.ts +27 -0
  393. package/global.d.ts +103 -0
  394. package/hooks/index.ts +25 -0
  395. package/index.scss +3 -5
  396. package/index.ts +56 -0
  397. package/package.json +12 -5
  398. package/{libs/route/min.route.config.js → route/min.route.config.ts} +62 -23
  399. package/route/route.config.ts +93 -0
  400. package/style/color.scss +26 -0
  401. package/{libs/style → style}/common.scss +1 -14
  402. package/{libs/function/applyEven.js → utils/applyEven.ts} +21 -12
  403. package/utils/check.ts +276 -0
  404. package/{libs/function/chooseUploadFile.js → utils/chooseUploadFile.ts} +22 -26
  405. package/utils/common.ts +609 -0
  406. package/{libs/function/digit.js → utils/digit.ts} +63 -33
  407. package/{components/fu-swipe-action-item/isPC.js → utils/isPC.ts} +1 -1
  408. package/utils/toast.ts +42 -0
  409. package/components/fu-avatar/fu-avatar.vue +0 -157
  410. package/components/fu-avatar/props.js +0 -117
  411. package/components/fu-avatar-group/props.js +0 -74
  412. package/components/fu-badge/props.js +0 -112
  413. package/components/fu-banner-arc/fu-banner-arc.vue +0 -58
  414. package/components/fu-banner-arc/props.js +0 -35
  415. package/components/fu-button/props.js +0 -228
  416. package/components/fu-cell/props.js +0 -108
  417. package/components/fu-cell-group/props.js +0 -19
  418. package/components/fu-checkbox/fu-checkbox.vue +0 -469
  419. package/components/fu-checkbox/props.js +0 -126
  420. package/components/fu-code-input/fu-code-input.vue +0 -269
  421. package/components/fu-code-input/props.js +0 -136
  422. package/components/fu-code-verify/fu-code-verify.vue +0 -221
  423. package/components/fu-code-verify/props.js +0 -136
  424. package/components/fu-collapse/fu-collapse.vue +0 -143
  425. package/components/fu-collapse/props.js +0 -29
  426. package/components/fu-collapse-item/props.js +0 -101
  427. package/components/fu-countdown/fu-countdown.vue +0 -164
  428. package/components/fu-countdown/props.js +0 -35
  429. package/components/fu-datetime-picker/fu-datetime-picker.vue +0 -375
  430. package/components/fu-datetime-picker/props.js +0 -194
  431. package/components/fu-form/fu-form.vue +0 -284
  432. package/components/fu-form/props.js +0 -74
  433. package/components/fu-form-item/fu-form-item.vue +0 -535
  434. package/components/fu-form-item/props.js +0 -66
  435. package/components/fu-grid/fu-grid.vue +0 -113
  436. package/components/fu-grid/props.js +0 -44
  437. package/components/fu-grid-item/fu-grid-item.vue +0 -136
  438. package/components/fu-grid-item/props.js +0 -27
  439. package/components/fu-icon/fu-icon.vue +0 -110
  440. package/components/fu-icon/fuicon.js +0 -1031
  441. package/components/fu-icon/props.js +0 -55
  442. package/components/fu-image/fu-image.vue +0 -268
  443. package/components/fu-image/props.js +0 -145
  444. package/components/fu-index-anchor/fu-index-anchor.vue +0 -91
  445. package/components/fu-index-anchor/props.js +0 -43
  446. package/components/fu-index-item/fu-index-item.vue +0 -79
  447. package/components/fu-index-list/fu-index-list.vue +0 -426
  448. package/components/fu-index-list/props.js +0 -42
  449. package/components/fu-input/fu-input.vue +0 -393
  450. package/components/fu-input/props.js +0 -291
  451. package/components/fu-keyboard/keyboard-number.vue +0 -195
  452. package/components/fu-keyboard/props.js +0 -138
  453. package/components/fu-line/fu-line.vue +0 -64
  454. package/components/fu-line/props.js +0 -58
  455. package/components/fu-link/fu-link.vue +0 -91
  456. package/components/fu-link/props.js +0 -49
  457. package/components/fu-loading/props.js +0 -60
  458. package/components/fu-loading-more/props.js +0 -59
  459. package/components/fu-modal/props.js +0 -128
  460. package/components/fu-navbar/fu-navbar.vue +0 -271
  461. package/components/fu-navbar/props.js +0 -72
  462. package/components/fu-navbar/status-bar.vue +0 -27
  463. package/components/fu-notice-bar/notice-column.vue +0 -313
  464. package/components/fu-notice-bar/notice-row.vue +0 -363
  465. package/components/fu-notice-bar/props.js +0 -173
  466. package/components/fu-number-box/fu-number-box.vue +0 -210
  467. package/components/fu-number-box/props.js +0 -79
  468. package/components/fu-parse/fu-parse.vue +0 -508
  469. package/components/fu-parse/node/node.vue +0 -576
  470. package/components/fu-parse/parser.js +0 -1335
  471. package/components/fu-picker/fu-picker.vue +0 -347
  472. package/components/fu-picker/props.js +0 -150
  473. package/components/fu-popup/fu-popup.vue +0 -475
  474. package/components/fu-popup/keypress.js +0 -45
  475. package/components/fu-popup/props.js +0 -83
  476. package/components/fu-progress/fu-progress.vue +0 -292
  477. package/components/fu-progress/props.js +0 -76
  478. package/components/fu-rate/fu-rate.vue +0 -301
  479. package/components/fu-rate/props.js +0 -103
  480. package/components/fu-read-more/fu-read-more.vue +0 -191
  481. package/components/fu-read-more/props.js +0 -72
  482. package/components/fu-ribbon/fu-ribbon.vue +0 -106
  483. package/components/fu-ribbon/props.js +0 -35
  484. package/components/fu-safe-area/fu-safe-area.vue +0 -61
  485. package/components/fu-scroll-list/fu-scroll-list.vue +0 -196
  486. package/components/fu-scroll-list/nvue.js +0 -28
  487. package/components/fu-scroll-list/props.js +0 -43
  488. package/components/fu-search/props.js +0 -149
  489. package/components/fu-section/props.js +0 -59
  490. package/components/fu-sign-board/fu-sign-board.vue +0 -730
  491. package/components/fu-sign-board/props.js +0 -34
  492. package/components/fu-skeleton/fu-skeleton.vue +0 -238
  493. package/components/fu-skeleton/props.js +0 -35
  494. package/components/fu-steps/fu-steps.vue +0 -81
  495. package/components/fu-steps/props.js +0 -55
  496. package/components/fu-steps-item/fu-steps-item.vue +0 -274
  497. package/components/fu-steps-item/props.js +0 -34
  498. package/components/fu-sticky/fu-sticky.vue +0 -232
  499. package/components/fu-sticky/props.js +0 -54
  500. package/components/fu-subsection/fu-subsection.vue +0 -288
  501. package/components/fu-subsection/props.js +0 -88
  502. package/components/fu-swipe-action/fu-swipe-action.vue +0 -64
  503. package/components/fu-swipe-action-item/props.js +0 -54
  504. package/components/fu-swiper/props.js +0 -163
  505. package/components/fu-switch/props.js +0 -102
  506. package/components/fu-tabs/fu-tabs.vue +0 -361
  507. package/components/fu-tabs/props.js +0 -109
  508. package/components/fu-tag/props.js +0 -135
  509. package/components/fu-text/button.js +0 -13
  510. package/components/fu-text/fu-text.vue +0 -254
  511. package/components/fu-text/openType.js +0 -47
  512. package/components/fu-text/props.js +0 -173
  513. package/components/fu-text/value.js +0 -88
  514. package/components/fu-textarea/fu-textarea.vue +0 -288
  515. package/components/fu-textarea/props.js +0 -206
  516. package/components/fu-timeaxis-item/fu-timeaxis-item.vue +0 -68
  517. package/components/fu-transition/createAnimation.js +0 -131
  518. package/components/fu-transition/fu-transition.vue +0 -292
  519. package/components/fu-transition/props.js +0 -21
  520. package/components/fu-upload/fu-upload.vue +0 -563
  521. package/components/fu-upload/props.js +0 -171
  522. package/components/fu-upload/upload-file.vue +0 -332
  523. package/components/fu-upload/upload-image.vue +0 -304
  524. package/components/fu-vtabs/fu-vtabs.vue +0 -443
  525. package/components/fu-vtabs/props.js +0 -114
  526. package/components/fu-vtabs-item/fu-vtabs-item.vue +0 -71
  527. package/components/fu-waterfall/fu-waterfall.vue +0 -238
  528. package/components/fu-waterfall/props.js +0 -85
  529. package/index.js +0 -71
  530. package/libs/function/check.js +0 -215
  531. package/libs/function/common.js +0 -527
  532. package/libs/function/message.js +0 -47
  533. package/libs/mixin/button.js +0 -85
  534. package/libs/mixin/mixin.js +0 -94
  535. package/libs/mixin/mpMixin.js +0 -8
  536. package/libs/mixin/mpShare.js +0 -15
  537. package/libs/route/route.config.js +0 -66
  538. package/libs/style/color.scss +0 -24
  539. /package/components/{fu-icon → icon/src}/fuicon.ttf +0 -0
  540. /package/components/{fu-swipe-action-item → swipe-action-item/src}/bindingx.js +0 -0
  541. /package/components/{fu-swipe-action-item → swipe-action-item/src}/mpalipay.js +0 -0
  542. /package/components/{fu-swipe-action-item → swipe-action-item/src}/mpother.js +0 -0
  543. /package/components/{fu-swipe-action-item → swipe-action-item/src}/render.js +0 -0
  544. /package/{libs/style → style}/components.scss +0 -0
  545. /package/{libs/style → style}/style.h5.scss +0 -0
  546. /package/{libs/style → style}/style.mp.scss +0 -0
  547. /package/{libs/function → utils}/dayjs.js +0 -0
@@ -1,238 +0,0 @@
1
- <template>
2
- <view class="fu-waterfall"
3
- <!-- #ifndef APP-NVUE -->
4
- :style="{ margin: columnGap + 'px' }"
5
- <!-- #endif -->>
6
- <!-- #ifndef APP-NVUE -->
7
- <block v-for="(item, index) in colunmList" :key="index">
8
- <view
9
- :id="item.id"
10
- class="fu-waterfall__column"
11
- :style="{ 'margin-right': columnGap + 'px'}">
12
- <slot :name="item.keyVal"></slot>
13
- </view>
14
- </block>
15
- <!-- #endif -->
16
- <!-- #ifdef APP-NVUE -->
17
- <view class="waterfall-warapper">
18
- <waterfall
19
- :style="[nvueWaterfallStyle]"
20
- :column-count="columnCount"
21
- :show-scrollbar="false"
22
- column-width="auto"
23
- :column-gap="columnGap"
24
- :left-gap="columnGap"
25
- :right-gap="columnGap"
26
- :always-scrollable-vertical="true"
27
- @loadmore="scrolltolower">
28
- <slot></slot>
29
- </waterfall>
30
- </view>
31
- <!-- #endif -->
32
- </view>
33
- </template>
34
-
35
- <script>
36
- import mpMixin from '../../libs/mixin/mpMixin.js'
37
- import mixin from '../../libs/mixin/mixin.js'
38
- import props from './props.js'
39
- /**
40
- * @description Waterfall 瀑布流
41
- * @property {Array} value/modelValue 瀑布流数组数据,仅vue生效 (默认 [] )
42
- * @property {String} idKey 数据的id值,根据id值对数据执行删除操作
43
- * @property {String} idPrefix 前置标识
44
- * @property {Number} addTime 每次插入数据的事件间隔,间隔越长能保证两列高度相近,但是用户体验不好,单位ms(默认 200)
45
- * @property {String,Number} columnCount 瀑布流的列数(默认2)
46
- * @property {String,Number} columnGap 列与列的间(默认 15)
47
- * @property {Boolean} showScrollbar = [true|false] 是否显示滚动条,仅nvue生效(默认 false)
48
- * @property {String,Number} columnWidth 列宽,单位px,仅nvue生效(默认 'auto')
49
- * @property {String,Number} width 瀑布流的宽度,仅nvue生效
50
- * @property {String,Number} height 瀑布流的高度,仅nvue生效
51
- *
52
- * @event {Function} changeList 处理数据时触发,为了兼容某些端不支持插槽回传参数的情况(仅vue生效)例:列表数据,columnCount=2时、第一次返回{list1:{...}},第二次返回{list2:{...}}...;返回后需要手动追加对应的列数据
53
- * @event {Function} finish 瀑布流加载完成触发事件(vue生效)
54
- * @event {Function} clear 清空数据列表触发事件(vue生效)
55
- * @event {Function} remove 删除列表中某条数据触发事件(vue生效)
56
- * @event {Function} scrolltolower 滚动到底部触发事件(nvue生效)
57
- * @example <fu-waterfall v-model="list"></fu-waterfall>
58
- */
59
- export default {
60
- name: 'FuWaterfall',
61
- mixins: [mpMixin, mixin, props],
62
- emits: ['changeList', 'finish', 'update:modelValue', 'input', 'clear', 'remove', 'scrolltolower'],
63
- data() {
64
- return {
65
- colunmList: [],
66
- // 临时列表
67
- tempList: []
68
- };
69
- },
70
- created() {
71
- this.calculateColumn(this.columnCount)
72
- },
73
- computed: {
74
- // 破坏value变量引用,否则数据会保持不变
75
- copyValue() {
76
- // #ifdef VUE2
77
- return this.$fu.deepClone(this.value)
78
- // #endif
79
- // #ifdef VUE3
80
- return this.$fu.deepClone(this.modelValue)
81
- // #endif
82
- },
83
- nvueWaterfallStyle() {
84
- const style = {};
85
- if (this.width != 0) style.width = this.$fu.addUnit(this.width)
86
- if (this.height != 0) style.height = this.$fu.addUnit(this.height)
87
- // 如果没有定义列表高度,则默认使用屏幕高度
88
- if (!style.width) style.width = this.$fu.addUnit(this.$fu.sys().windowWidth, 'px')
89
- if (!style.height) style.height = this.$fu.addUnit(this.$fu.sys().windowHeight, 'px')
90
- return this.$fu.deepMerge(style, this.$fu.addStyle(this.customStyle))
91
- }
92
- },
93
- mounted() {
94
- // #ifndef APP-NVUE
95
- this.tempList = this.$fu.deepClone(this.copyValue)
96
- this.splitData()
97
- // #endif
98
- },
99
- methods: {
100
- // 滚动到底部触发事件
101
- scrolltolower(e) {
102
- this.$fu.sleep(30).then(() => {
103
- this.$emit('scrolltolower')
104
- })
105
- },
106
-
107
- /**
108
- * 计算列
109
- * @param {Object} size 列数
110
- * @param {Object} isCreate 是否初始化创建(created生命周期)
111
- */
112
- calculateColumn: function(size) {
113
- this.colunmList = [];
114
- for (let i = 1; i <= size; i++) {
115
- let obj = {};
116
- obj.id = this.idPrefix + i;
117
- obj.keyVal = `list${i}`;
118
- obj.index = i;
119
- obj[`list${i}`] = [];
120
- this.colunmList.push(obj);
121
- }
122
- },
123
-
124
- // 拆分数据
125
- async splitData() {
126
- let rectArr = [];
127
- let emitList = {};
128
- if (!this.tempList.length) return
129
- for (let i = 1; i <= this.columnCount; i++) {
130
- const rect = await this.$fuGetRect(`#${this.idPrefix}${i}`);
131
- rectArr.push({ ...rect, name: i });
132
- }
133
- const minCol = this.getMin(rectArr);
134
- if(!minCol) return
135
- const topIndex = this.colunmList.findIndex(obj => obj.id === minCol.id);
136
- const item = this.tempList.shift();
137
- if(!item) return
138
- item.width = minCol.width;
139
- this.colunmList[topIndex][`list${minCol.name}`].push(item);
140
- this.$emit('changeList', { name: `list${minCol.name}`, value: item });
141
- if(this.tempList.length) {
142
- await this.$fu.sleep(Math.max(this.addTime, 200));
143
- this.splitData()
144
- } else {
145
- this.$emit('finish')
146
- }
147
- },
148
-
149
- getMin(arr) {
150
- const zeroHeightItems = arr.filter(item => item.height === 0);
151
- if(zeroHeightItems.length > 0) {
152
- return zeroHeightItems.reduce((min, item) => {
153
- const topIndex = this.colunmList.findIndex(obj => obj.id === item.id);
154
- const len = this.colunmList[topIndex][`list${arr.indexOf(item) + 1}`].length;
155
- return len < min.len? { len, item }: min;
156
- }, { len: Infinity }).item;
157
- }
158
- return arr.reduce((min, item) => item.height < min.height? item: min);
159
- },
160
-
161
- // 清空数据列表
162
- async clear() {
163
- // 清除数据
164
- for (let i = 0; i < this.columnCount; i++) {
165
- this.colunmList[i][`list${i+1}`] = [];
166
- }
167
-
168
- // #ifdef VUE2
169
- this.$emit('input', [])
170
- // #endif
171
- // #ifdef VUE3
172
- this.$emit('update:modelValue', [])
173
- // #endif
174
- this.tempList = []
175
- await this.$fu.sleep(300);
176
- this.$emit('clear');
177
- },
178
-
179
- // 清除指定的某一条数据,根据id来实现
180
- remove(id) {
181
- let index = -1
182
- // 删除组件数据
183
- for (let i = 1; i <= this.columnCount; i++) {
184
- index = this.colunmList[i - 1][`list${i}`].findIndex(item => item[this.idKey] == id)
185
- if (index != -1) {
186
- this.colunmList[i - 1][`list${i}`].splice(index, 1)
187
- }
188
- }
189
- // 同时删除父组件对应的数据
190
- // #ifdef VUE2
191
- index = this.value.findIndex(item => item[this.idKey] == id)
192
- if (index != -1) this.$emit('input', this.value.splice(index, 1))
193
- // #endif
194
- // #ifdef VUE3
195
- index = this.modelValue.findIndex(item => item[this.idKey] == id)
196
- if (index != -1) this.$emit('update:modelValue', this.modelValue.splice(index, 1))
197
- // #endif
198
- this.$emit('remove', id);
199
- }
200
- },
201
- watch: {
202
- copyValue(nVal, oVal) {
203
- // #ifndef APP-NVUE
204
- if (nVal.length != 0) {
205
- // 取出数组发生变化的部分
206
- let startIndex = Array.isArray(oVal) && oVal.length > 0 ? oVal.length : 0
207
- // 拼接原有数据
208
- this.tempList = this.tempList.concat(this.$fu.deepClone(nVal.slice(startIndex)))
209
- this.splitData()
210
- }
211
- // #endif
212
- }
213
- }
214
- };
215
- </script>
216
-
217
- <style lang="scss" scoped>
218
- @import '../../libs/style/components.scss';
219
-
220
- /* 瀑布流最外层 */
221
- .fu-waterfall {
222
- @include flex(row);
223
- align-items: flex-start;
224
-
225
- &__column {
226
- flex-direction: column;
227
- flex: 1;
228
- // #ifndef APP-NVUE
229
- height: auto;
230
- overflow: hidden;
231
- // #endif
232
- }
233
- }
234
-
235
- .fu-waterfall .fu-waterfall__column:last-child {
236
- margin-right: 0px !important;
237
- }
238
- </style>
@@ -1,85 +0,0 @@
1
- export default {
2
- props: {
3
- /**
4
- * @description 瀑布流数据
5
- */
6
- value: {
7
- type: Array,
8
- default: () => []
9
- },
10
- modelValue: {
11
- type: Array,
12
- default: () => []
13
- },
14
- /**
15
- * @description 数据的id值,根据id值对数据执行删除操作, 如数据为:{id: 1, name: 'fusions-ui'},那么该值设置为id
16
- * @default 'id'
17
- */
18
- idKey: {
19
- type: String,
20
- default: 'id'
21
- },
22
- /**
23
- * @description 前置标识
24
- * @default 'waterfall-flow-'
25
- */
26
- idPrefix: {
27
- type: String,
28
- default: 'waterfall-flow-'
29
- },
30
- /**
31
- * @description 每次插入数据的事件间隔,间隔越长能保证两列高度相近,但是用户体验不好,单位ms
32
- * @default 200
33
- */
34
- addTime: {
35
- type: Number,
36
- default: 200
37
- },
38
- /**
39
- * @description 瀑布流的列数
40
- * @default 2
41
- */
42
- columnCount: {
43
- type: [String,Number],
44
- default: 2
45
- },
46
- /**
47
- * @description 列与列的间隙
48
- * @default 15
49
- */
50
- columnGap: {
51
- type: [String,Number],
52
- default: 15
53
- },
54
- /**
55
- * @description 是否显示滚动条,仅nvue生效
56
- * @default false
57
- */
58
- showScrollbar: {
59
- type: [Boolean],
60
- default: false
61
- },
62
- /**
63
- * @description 列宽,nvue生效
64
- * @default 'auto'
65
- */
66
- columnWidth: {
67
- type: [String,Number],
68
- default: 'auto'
69
- },
70
- /**
71
- * @description 瀑布流的宽度,nvue生效
72
- */
73
- width: {
74
- type: [String,Number],
75
- default: ''
76
- },
77
- /**
78
- * @description 瀑布流的高度,nvue生效
79
- */
80
- height: {
81
- type: [String,Number],
82
- default: ''
83
- }
84
- }
85
- }
package/index.js DELETED
@@ -1,71 +0,0 @@
1
- /**
2
- * 示例:
3
- * import FusionsUI from 'fusions-ui'
4
- * Vue.use(FusionsUI)
5
- */
6
-
7
- // 工具函数
8
- import * as common from './libs/function/common.js'
9
-
10
- // 配置信息
11
- import config from './libs/config/config.js'
12
-
13
- // 规则校验
14
- import check from './libs/function/check.js'
15
-
16
- /**
17
- * 防抖方法 debounce
18
- * 节流方法 throttle
19
- */
20
- import { debounce, throttle } from './libs/function/applyEven.js'
21
-
22
- // 内置路由管理
23
- import minRouteConfig from './libs/route/min.route.config.js'
24
- import routeConfig from './libs/route/route.config.js'
25
-
26
- // 消息工具
27
- import message from './libs/function/message.js'
28
-
29
- // 定义全局挂在对象
30
- const $fu = {
31
- config,
32
- version: config.version,
33
- debounce,
34
- throttle,
35
- ...common,
36
- ...check,
37
- ...message,
38
- };
39
-
40
- // 将$fu挂载到 uni 对象上
41
- uni.$fu = $fu;
42
-
43
- const install = (Vue, options = {}) => {
44
- // #ifdef MP
45
- if(options.mpShare) {
46
- // 全局混入小程序分享
47
- Vue.mixin(mpShare)
48
- }
49
- // #endif
50
-
51
- // 内置路由
52
- if(options.openRouter) {
53
- Vue.use(minRouteConfig, routeConfig)
54
- }
55
-
56
- // #ifdef VUE2
57
- // 同时挂载到uni和Vue.prototype中
58
- // #ifndef APP-NVUE
59
- // 只有vue,挂载到Vue.prototype才有意义,因为nvue中全局Vue.prototype和Vue.mixin是无效的
60
- Vue.prototype.$fu = $fu;
61
- // #endif
62
- // #endif
63
-
64
- // #ifdef VUE3
65
- Vue.config.globalProperties.$fu = $fu;
66
- // #endif
67
- };
68
-
69
- export default {
70
- install
71
- }
@@ -1,215 +0,0 @@
1
- /*
2
- * 校验类:常用数据校验工具
3
- * Util - v1.0.0 (2025/05/01, 10:10:00 AM)
4
- */
5
-
6
- /**
7
- * @description 校验手机号码格式
8
- * @param {String|Number} mobile 手机号
9
- * @returns {Boolean} 如果正确返回 true,否则返回 false(手机号格式不正确)
10
- */
11
- export function checkMobile(mobile) {
12
- return RegExp(/^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(16[0-9]{1})|(18[0-9]{1})|(17[0-9]{1})|(19[0-9]{1}))+\d{8})$/).test(mobile);
13
- }
14
-
15
- /**
16
- * @description 校验邮箱格式
17
- * @param {String|Number} value 电子邮箱
18
- * @returns {Boolean} 如果正确返回 true,否则返回 false(邮箱格式不正确)
19
- */
20
- export function checkEmail(value) {
21
- return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value)
22
- }
23
-
24
- /**
25
- * @description 校验身份证号
26
- * @param {String|Number} card 身份证号
27
- * @returns {Boolean} 如果正确返回 true,否则返回 false(身份证号格式不正确)
28
- */
29
- export function checkIDNumber(card) {
30
- // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
31
- var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
32
- if (reg.test(card) === false) {
33
- // alert("身份证输入不合法");
34
- return false;
35
- } else {
36
- return true;
37
- }
38
- }
39
-
40
- /**
41
- * @description 验证一个值范围[min, max]
42
- * @param {Number} 校验的值
43
- * @param {Array} param 校验范围,如:[0, 9]
44
- */
45
- export function checkRange(value, param) {
46
- return value >= param[0] && value <= param[1]
47
- }
48
-
49
- /**
50
- * @description 校验验证码
51
- * @param {String} value 验证码字符串(要求为数字)
52
- * @param {Number} len 验证码长度,默认为6
53
- */
54
- export function checkCode(value, len = 6) {
55
- return new RegExp(`^\\d{${len}}$`).test(value)
56
- }
57
-
58
- /**
59
- * @description 验证日期格式
60
- */
61
- export function checkDate(value) {
62
- if (!value) return false
63
- // 判断是否数值或者字符串数值(意味着为时间戳),转为数值,否则new Date无法识别字符串时间戳
64
- if (checkNumber(value)) value = +value
65
- return !/Invalid|NaN/.test(new Date(value).toString())
66
- }
67
-
68
- /**
69
- * @description 校验是否为整数
70
- */
71
- export function checkInteger(value) {
72
- return /^\d+$/.test(value)
73
- }
74
-
75
- /**
76
- * @description 校验旧车牌号和新能源类型的车牌号
77
- */
78
- export function checkCarNo(value) {
79
- // 新能源车牌
80
- const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/
81
- // 旧车牌
82
- const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/
83
- if (value.length === 7) {
84
- return creg.test(value)
85
- } if (value.length === 8) {
86
- return xreg.test(value)
87
- }
88
- return false
89
- }
90
-
91
- /**
92
- * @description 校验十进制数字
93
- */
94
- export function checkNumber(value) {
95
- return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value)
96
- }
97
-
98
- /**
99
- * @description 校验是否json字符串
100
- */
101
- export function isJsonString(value) {
102
- if(typeof value == 'string') {
103
- try {
104
- var obj = JSON.parse(value);
105
- if(typeof obj == 'object' && obj) {
106
- return true
107
- } else {
108
- return false
109
- }
110
- } catch {
111
- return false
112
- }
113
- }
114
- return false
115
- }
116
-
117
- /**
118
- * @description 是否数组
119
- */
120
- export function isArray(value) {
121
- if (typeof Array.isArray === 'function') {
122
- return Array.isArray(value)
123
- }
124
- return Object.prototype.toString.call(value) === '[object Array]'
125
- }
126
-
127
- /**
128
- * 是否对象
129
- */
130
- export function isObject(value) {
131
- return Object.prototype.toString.call(value) === '[object Object]'
132
- }
133
-
134
- /**
135
- * @description 校验是否为空
136
- * @param {String} value 校验值
137
- * @returns 如果为空返回true 否则返回false(非空)
138
- */
139
- export function isNull(value) {
140
- switch (typeof value) {
141
- case 'undefined':
142
- return true
143
- case 'string':
144
- if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, '').length == 0) return true
145
- break
146
- case 'boolean':
147
- if (!value) return true
148
- break
149
- case 'number':
150
- if (value === 0 || isNaN(value)) return true
151
- break
152
- case 'object':
153
- if (value === null || value.length === 0) return true
154
- for (const i in value) {
155
- return false
156
- }
157
- return true
158
- }
159
- return false
160
- }
161
-
162
- /**
163
- * @description 是否图片格式
164
- * @param {Object} value
165
- */
166
- export function isImage(value) {
167
- const newValue = value.split('?')[0]
168
- const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i
169
- return IMAGE_REGEXP.test(newValue)
170
- }
171
-
172
- /**
173
- * @description 是否视频格式
174
- * @param {Object} value
175
- */
176
- export function isVideo(value) {
177
- const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i
178
- return VIDEO_REGEXP.test(value)
179
- }
180
-
181
- /**
182
- * @description 验证URL格式
183
- * @param value 校验的URL
184
- */
185
- export function isUrl(value) {
186
- return /^((https|http|ftp|rtsp|mms):\/\/)(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z].[a-zA-Z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/.test(value)
187
- }
188
-
189
- /**
190
- * @description 是否函数方法
191
- * @param {Object} value
192
- */
193
- export function isFunc(value) {
194
- return typeof(value) === 'function'
195
- }
196
-
197
- export default {
198
- checkMobile,
199
- checkEmail,
200
- checkIDNumber,
201
- checkRange,
202
- checkCode,
203
- checkDate,
204
- checkInteger,
205
- checkCarNo,
206
- checkNumber,
207
- isJsonString,
208
- isArray,
209
- isObject,
210
- isNull,
211
- isImage,
212
- isVideo,
213
- isUrl,
214
- isFunc
215
- }