fusions-ui 1.2.7 → 1.2.8

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 +1 -1
  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,20 +1,25 @@
1
1
  let _boundaryCheckingState = true; // 是否进行越界检查的全局开关
2
2
 
3
3
  /**
4
- * 把错误的数据转正
4
+ * @description 将一个数字转换为指定精度的浮点数
5
+ *
5
6
  * @private
6
- * @example strip(0.09999999999999998)=0.1
7
+ * @param {number} num 需要转换的数字
8
+ * @param {number} precision 指定的精度(默认 15)
9
+ * @returns 转换后的浮点数
7
10
  */
8
- function strip(num, precision = 15) {
11
+ function strip(num: number, precision: number = 15) {
9
12
  return +parseFloat(Number(num).toPrecision(precision));
10
13
  }
11
14
 
12
15
  /**
13
- * Return digits length of a number
16
+ * @description 获取有效的数字长度
17
+ *
14
18
  * @private
15
- * @param {Number} num Input number
19
+ * @param {number} num 数字
20
+ * @returns 有效的数字长度
16
21
  */
17
- function digitLength(num) {
22
+ function digitLength(num: number) {
18
23
  // Get digit length of e
19
24
  const eSplit = num.toString().split(/[eE]/);
20
25
  const len = (eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0);
@@ -22,11 +27,13 @@ function digitLength(num) {
22
27
  }
23
28
 
24
29
  /**
25
- * 把小数转成整数,如果是小数则放大成整数
30
+ * @description 将浮点数转换为固定格式的字符串
31
+ *
26
32
  * @private
27
- * @param {Number} num 输入数
33
+ * @param {Number} num 需要转换的浮点数
34
+ * @returns 转换后的固定格式的字符串
28
35
  */
29
- function float2Fixed(num) {
36
+ function float2Fixed(num: number) {
30
37
  if (num.toString().indexOf('e') === -1) {
31
38
  return Number(num.toString().replace('.', ''));
32
39
  }
@@ -36,10 +43,11 @@ function float2Fixed(num) {
36
43
 
37
44
  /**
38
45
  * 检测数字是否越界,如果越界给出提示
46
+ *
39
47
  * @private
40
- * @param {Number} num 输入数
48
+ * @param {number} num 需要检测的数字
41
49
  */
42
- function checkBoundary(num) {
50
+ function checkBoundary(num: number) {
43
51
  if (_boundaryCheckingState) {
44
52
  if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) {
45
53
  console.warn(`${num} 超出了精度限制,结果可能不正确`);
@@ -48,12 +56,13 @@ function checkBoundary(num) {
48
56
  }
49
57
 
50
58
  /**
51
- * 把递归操作扁平迭代化
59
+ * @description 把递归操作扁平迭代化
60
+ *
61
+ * @private
52
62
  * @param {number[]} arr 要操作的数字数组
53
63
  * @param {function} operation 迭代操作
54
- * @private
55
64
  */
56
- function iteratorOperation(arr, operation) {
65
+ function iteratorOperation(arr: number[], operation: (num1: number, num2: number) => number) {
57
66
  const [num1, num2, ...others] = arr;
58
67
  let res = operation(num1, num2);
59
68
 
@@ -65,10 +74,11 @@ function iteratorOperation(arr, operation) {
65
74
  }
66
75
 
67
76
  /**
68
- * 高精度乘法
69
- * @export
77
+ * @description 高精度乘法
78
+ *
79
+ * @private
70
80
  */
71
- export function times(...nums) {
81
+ function times(...nums: number[]) {
72
82
  if (nums.length > 2) {
73
83
  return iteratorOperation(nums, times);
74
84
  }
@@ -85,10 +95,11 @@ export function times(...nums) {
85
95
  }
86
96
 
87
97
  /**
88
- * 高精度加法
89
- * @export
98
+ * @description 高精度加法
99
+ *
100
+ * @private
90
101
  */
91
- export function plus(...nums) {
102
+ function plus(...nums: number[]) {
92
103
  if (nums.length > 2) {
93
104
  return iteratorOperation(nums, plus);
94
105
  }
@@ -101,10 +112,11 @@ export function plus(...nums) {
101
112
  }
102
113
 
103
114
  /**
104
- * 高精度减法
105
- * @export
115
+ * @description 高精度减法
116
+ *
117
+ * @private
106
118
  */
107
- export function minus(...nums) {
119
+ function minus(...nums: number[]) {
108
120
  if (nums.length > 2) {
109
121
  return iteratorOperation(nums, minus);
110
122
  }
@@ -115,10 +127,11 @@ export function minus(...nums) {
115
127
  }
116
128
 
117
129
  /**
118
- * 高精度除法
119
- * @export
130
+ * @description 高精度除法
131
+ *
132
+ * @private
120
133
  */
121
- export function divide(...nums) {
134
+ function divide(...nums: number[]) {
122
135
  if (nums.length > 2) {
123
136
  return iteratorOperation(nums, divide);
124
137
  }
@@ -133,10 +146,11 @@ export function divide(...nums) {
133
146
  }
134
147
 
135
148
  /**
136
- * 四舍五入
137
- * @export
149
+ * @description 四舍五入
150
+ *
151
+ * @private
138
152
  */
139
- export function round(num, ratio) {
153
+ function round(num: number, ratio: number) {
140
154
  const base = Math.pow(10, ratio);
141
155
  let result = divide(Math.round(Math.abs(times(num, base))), base);
142
156
  if (num < 0 && result !== 0) {
@@ -147,13 +161,29 @@ export function round(num, ratio) {
147
161
  }
148
162
 
149
163
  /**
150
- * 是否进行边界检查,默认开启
151
- * @param flag 标记开关,true 为开启,false 为关闭,默认为 true
164
+ * @description 是否进行边界检查
165
+ *
166
+ * @private
167
+ * @param {boolean} flag 标记开关(默认 true)
168
+ * @value true 开启
169
+ * @value false 关闭
152
170
  */
153
- export function enableBoundaryChecking(flag = true) {
171
+ function enableBoundaryChecking(flag: boolean = true) {
154
172
  _boundaryCheckingState = flag;
155
173
  }
156
174
 
175
+ /**
176
+ * 公共类型声明
177
+ */
178
+ export type Digit = {
179
+ [key: string]: any;
180
+ times: typeof times;
181
+ plus: typeof plus;
182
+ minus: typeof minus;
183
+ divide: typeof divide;
184
+ round: typeof round;
185
+ enableBoundaryChecking: typeof enableBoundaryChecking;
186
+ }
157
187
 
158
188
  export default {
159
189
  times,
@@ -162,5 +192,5 @@ export default {
162
192
  divide,
163
193
  round,
164
194
  enableBoundaryChecking,
165
- };
195
+ }
166
196
 
@@ -1,6 +1,6 @@
1
1
  export function isPC() {
2
2
  var userAgentInfo = navigator.userAgent;
3
- var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
3
+ var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod", "HarmonyOS"];
4
4
  var flag = true;
5
5
  for (let v = 0; v < Agents.length - 1; v++) {
6
6
  if (userAgentInfo.indexOf(Agents[v]) > 0) {
package/utils/toast.ts ADDED
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @description 系统内置的toast
3
+ *
4
+ * @param {string} title 提示信息
5
+ * @param {boolean} mask 是否显示透明蒙层,防止触摸穿透,默认:false
6
+ */
7
+ interface ToastOptions {
8
+ mask?: boolean;
9
+ icon?: 'success' | 'error' | 'fail' | 'exception' | 'loading' | 'none';
10
+ duration?: number;
11
+ image?: string;
12
+ position?: string;
13
+ }
14
+
15
+ function toast(title: string, options?: ToastOptions) {
16
+ const defaultOptions = {
17
+ mask: true,
18
+ icon: 'none' as const,
19
+ duration: 1500
20
+ };
21
+
22
+ const mergedOptions = { ...defaultOptions, ...options };
23
+
24
+ const toastOptions: any = {
25
+ title,
26
+ ...mergedOptions
27
+ };
28
+
29
+ uni.showToast(toastOptions)
30
+ }
31
+
32
+ /**
33
+ * 公共类型声明
34
+ */
35
+ export type Toast = {
36
+ [key: string]: any;
37
+ toast: typeof toast;
38
+ }
39
+
40
+ export default {
41
+ toast
42
+ }
@@ -1,157 +0,0 @@
1
- <template>
2
- <view
3
- class="fu-avatar"
4
- :class="[`fu-avatar--${shape}`]"
5
- :style="[{
6
- backgroundColor: (text || icon) ? (randomBgColor ? colors[colorIndex !== '' ? colorIndex : $fu.random(0, 19)] : bgColor) : 'transparent',
7
- width: $fu.addUnit(size),
8
- height: $fu.addUnit(size),
9
- }, $fu.addStyle(customStyle)]"
10
- @tap="handleClick">
11
- <slot>
12
- <!-- #ifdef MP-WEIXIN || MP-QQ || MP-BAIDU -->
13
- <open-data type="userAvatarUrl" :style="[{width: $fu.addUnit(size), height: $fu.addUnit(size)}]" v-if="mpAvatar && allowMp" />
14
- <!-- #endif -->
15
- <!-- #ifndef MP-WEIXIN && MP-QQ && MP-BAIDU -->
16
- <template v-if="mpAvatar && allowMp"></template>
17
- <!-- #endif -->
18
- <fu-icon :name="icon" :size="fontSize" :color="color" v-else-if="icon"></fu-icon>
19
- <fu-text :text="text" :size="fontSize" :color="color" align="center" v-else-if="text"></fu-text>
20
- <image
21
- class="fu-avatar__image"
22
- :class="[`fu-avatar__image--${shape}`]"
23
- :src="avatarUrl || defaultUrl"
24
- :mode="mode"
25
- @error="errorHandler"
26
- :style="[{
27
- width: $fu.addUnit(size),
28
- height: $fu.addUnit(size)
29
- }]" v-else></image>
30
- </slot>
31
- </view>
32
- </template>
33
-
34
- <script>
35
- import mpMixin from '../../libs/mixin/mpMixin.js'
36
- import mixin from '../../libs/mixin/mixin.js'
37
- import props from './props.js';
38
- const base64Avatar = "data:image/png;base64,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"
39
- /**
40
- * Avatar 头像
41
- * @description 此组件一般用于展示头像的地方,如个人中心,或者评论列表页的用户头像展示等场所。
42
- * @property {String} src 头像路径,如加载失败,将会显示默认头像(不能为相对路径)
43
- * @property {String} shape = [circle|square] 头像形状(默认circle)
44
- * @value circle 圆形
45
- * @value square 圆角方形
46
- * @property {String,Number} size = [large|default|mini] 头像尺寸,可以为指定字符串(large, default, mini),或者数值(默认 40 )
47
- * @property {String} mode 头像图片的裁剪类型,与uni的image组件的mode参数一致,如效果达不到需求,可尝试传widthFix值(默认 'aspectFill' )
48
- * @property {String} text 用文字替代图片,级别优先于src
49
- * @property {String} bgColor 背景颜色,一般显示文字时用(默认 '#c4c8d0' )
50
- * @property {String} color 文字颜色 (默认 '#ffffff' )
51
- * @property {String,Number} fontSize 文字大小(默认 18 )
52
- * @property {String} icon 显示的图标
53
- * @property {Boolean} mpAvatar = [true|false] 显示小程序头像,只对百度,微信,QQ小程序有效(默认 false )
54
- * @property {Boolean} randomBgColor = [true|false] 是否使用随机背景色(默认 false )
55
- * @property {String} defaultUrl 加载失败的默认头像(组件有内置默认图片)
56
- * @property {String,Number} colorIndex 如果配置了randomBgColor为true,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间
57
- * @property {String} name 组件标识符(默认 'level' )
58
- * @property {Object,String} customStyle 定义需要用到的外部样式
59
- *
60
- * @event {Function} click 点击组件时触发 index: 用户传递的标识符
61
- * @example <fu-avatar :src="src" mode="square"></fu-avatar>
62
- */
63
- export default {
64
- name: 'FuAvatar',
65
- emits: ['click'],
66
- mixins: [mpMixin, mixin, props],
67
- data() {
68
- return {
69
- // 如果配置randomBgColor参数为true,在图标或者文字的模式下,会随机从中取出一个颜色值当做背景色
70
- colors: [
71
- '#FF6B6B', '#FF9E9E', '#FFD6A5', '#FDFFB6', '#CAFFBF',
72
- '#9BF6FF', '#A0C4FF', '#BDB2FF', '#FFADAD', '#F9C74F',
73
- '#90BE6D', '#43AA8B', '#4D908E', '#577590', '#277DA1',
74
- '#F8961E', '#E76F51', '#2A9D8F', '#264653', '#6A4C93'
75
- ],
76
- avatarUrl: this.src,
77
- allowMp: false
78
- }
79
- },
80
- computed: {
81
- imageStyle() {
82
- const style = {}
83
- return style
84
- }
85
- },
86
- created() {
87
- this.init()
88
- },
89
- methods: {
90
- init() {
91
- // 目前只有这几个小程序平台具有open-data标签
92
- // 其他平台可以通过uni.getUserInfo类似接口获取信息,但是需要弹窗授权(首次),不合符组件逻辑
93
- // 故目前自动获取小程序头像只支持这几个平台
94
- // #ifdef MP-WEIXIN || MP-QQ || MP-BAIDU
95
- this.allowMp = true
96
- // #endif
97
- },
98
-
99
- // 判断传入的name属性,是否图片路径,只要带有"/"均认为是图片形式
100
- isImg() {
101
- return this.src.indexOf('/') !== -1
102
- },
103
-
104
- // 图片加载时失败时触发
105
- errorHandler() {
106
- this.avatarUrl = this.defaultUrl || base64Avatar
107
- },
108
-
109
- handleClick() {
110
- this.$emit('click', this.name)
111
- }
112
- },
113
- watch: {
114
- // 监听头像src的变化,赋值给内部的avatarUrl变量,因为图片加载失败时,需要修改图片的src为默认值
115
- // 而组件内部不能直接修改props的值,所以需要一个中间变量
116
- src: {
117
- immediate: true,
118
- handler(newVal) {
119
- this.avatarUrl = newVal
120
- // 如果没有传src,则主动触发error事件,用于显示默认的头像,否则src为''空字符等的时候,会无内容展示
121
- if(!newVal) {
122
- this.errorHandler()
123
- }
124
- }
125
- }
126
- }
127
- }
128
- </script>
129
-
130
- <style lang="scss" scoped>
131
- @import '../../libs/style/components.scss';
132
-
133
- .fu-avatar {
134
- @include flex;
135
- align-items: center;
136
- justify-content: center;
137
- flex: 0 0 auto;
138
-
139
- &--circle {
140
- border-radius: 100px;
141
- }
142
-
143
- &--square {
144
- border-radius: 4px;
145
- }
146
-
147
- &__image {
148
- &--circle {
149
- border-radius: 100px;
150
- }
151
-
152
- &--square {
153
- border-radius: 4px;
154
- }
155
- }
156
- }
157
- </style>
@@ -1,117 +0,0 @@
1
- import { checkRange } from '../../libs/function/check.js'
2
- export default {
3
- props: {
4
- /**
5
- * @description 头像图片路径(不能为相对路径)
6
- */
7
- src: {
8
- type: String,
9
- default: ''
10
- },
11
- /**
12
- * @description 头像形状
13
- * @values 'circle' - 圆形, 'square' - 方形
14
- * @default 'circle'
15
- */
16
- shape: {
17
- type: String,
18
- default: 'circle'
19
- },
20
- /**
21
- * @description 头像尺寸
22
- * @default 40
23
- */
24
- size: {
25
- type: [String,Number],
26
- default: 40
27
- },
28
- /**
29
- * @description 裁剪模式
30
- * @default 'aspectFill'
31
- */
32
- mode: {
33
- type: String,
34
- default: 'aspectFill'
35
- },
36
- /**
37
- * @description 显示的文字
38
- */
39
- text: {
40
- type: String,
41
- default: ''
42
- },
43
- /**
44
- * @description 背景颜色
45
- * @default '#c4c8d0'
46
- */
47
- bgColor: {
48
- type: String,
49
- default: '#c4c8d0'
50
- },
51
- /**
52
- * @description 文字颜色
53
- * @default '#ffffff'
54
- */
55
- color: {
56
- type: String,
57
- default: '#ffffff'
58
- },
59
- /**
60
- * @description 文字大小
61
- * @default 18
62
- */
63
- fontSize: {
64
- type: [String,Number],
65
- default: 18
66
- },
67
- /**
68
- * @description 显示的图标
69
- */
70
- icon: {
71
- type: String,
72
- default: ''
73
- },
74
- /**
75
- * @description 显示小程序头像,只对百度,微信,QQ小程序有效
76
- * @default false
77
- */
78
- mpAvatar: {
79
- type: Boolean,
80
- default: false
81
- },
82
- /**
83
- * @description 是否使用随机背景色
84
- * @default false
85
- */
86
- randomBgColor: {
87
- type: Boolean,
88
- default: false
89
- },
90
- /**
91
- * @description 加载失败的默认头像(组件有内置默认图片)
92
- */
93
- defaultUrl: {
94
- type: String,
95
- default: ''
96
- },
97
- /**
98
- * @description 如果配置了randomBgColor=true时,且配置了此值,则从默认的背景色数组中取出对应索引的颜色值,取值0-19之间
99
- */
100
- colorIndex: {
101
- type: [String,Number],
102
- // 校验参数规则,索引在0-19之间
103
- validator(n) {
104
- if(n === '') return true
105
- return checkRange(n, [0, 19])
106
- },
107
- default: ''
108
- },
109
- /**
110
- * @description 组件标识符
111
- */
112
- name: {
113
- type: String,
114
- default: ''
115
- }
116
- }
117
- }
@@ -1,74 +0,0 @@
1
- export default {
2
- props: {
3
- /**
4
- * @description 头像图片组
5
- */
6
- urls: {
7
- type: Array,
8
- default: () => []
9
- },
10
- /**
11
- * @description 最多展示的头像数量
12
- */
13
- maxCount: {
14
- type: [String,Number],
15
- default: 5
16
- },
17
- /**
18
- * @description 头像形状
19
- */
20
- shape: {
21
- type: String,
22
- default: 'circle'
23
- },
24
- /**
25
- * @description 图片裁剪模式
26
- * @default 'aspectFill'
27
- */
28
- mode: {
29
- type: String,
30
- default: 'aspectFill'
31
- },
32
- /**
33
- * @description 超出maxCount时是否显示查看更多的提示
34
- * @default true
35
- */
36
- showMore: {
37
- type: Boolean,
38
- default: true
39
- },
40
- /**
41
- * @description 头像大小
42
- * @default 40
43
- */
44
- size: {
45
- type: [String,Number],
46
- default: 40
47
- },
48
- /**
49
- * @description 指定从数组的对象元素中读取哪个属性作为图片地址
50
- */
51
- keyName: {
52
- type: String,
53
- default: ''
54
- },
55
- /**
56
- * @description 头像之间的遮挡比例
57
- * @default 0.5
58
- */
59
- gap: {
60
- type: [String,Number],
61
- validator(value) {
62
- return value >= 0 && value <= 1
63
- },
64
- default: 0.5
65
- },
66
- /**
67
- * @description 需额外显示的值
68
- */
69
- extraValue: {
70
- type: [String,Number],
71
- default: 0
72
- }
73
- }
74
- }
@@ -1,112 +0,0 @@
1
- export default {
2
- props: {
3
- /**
4
- * @description 是否显示
5
- * @default true
6
- */
7
- show: {
8
- type: Boolean,
9
- default: true
10
- },
11
- /**
12
- * @description 是否显示圆点
13
- * @default false
14
- */
15
- isDot: {
16
- type: Boolean,
17
- default: false
18
- },
19
- /**
20
- * @description 显示的内容
21
- */
22
- value: {
23
- type: [Number, String],
24
- default: ''
25
- },
26
- /**
27
- * @description 最大值,超过最大值会显示 '{max}+'
28
- * @default 999
29
- */
30
- max: {
31
- type: [Number, String],
32
- default: 999
33
- },
34
- // 主题类型,error|warning|success|primary
35
- /**
36
- * @description 主题类型
37
- * @values 'primary' - 主色, 'error' - 错误, 'success' - 成功, 'warning' - 警告, 'info' - 信息
38
- * @default 'error'
39
- */
40
- type: {
41
- type: [String,undefined,null],
42
- default: 'error'
43
- },
44
- /**
45
- * @description 当数值为 0 时,是否展示 Badge
46
- * @default false
47
- */
48
- showZero: {
49
- type: Boolean,
50
- default: false
51
- },
52
- /**
53
- * @description 背景颜色,优先级比type高,如设置,type参数会失效
54
- * @default null
55
- */
56
- bgColor: {
57
- type: [String],
58
- default: null
59
- },
60
- /**
61
- * @description 字体颜色
62
- * @default null
63
- */
64
- color: {
65
- type: [String, null],
66
- default: null
67
- },
68
- /**
69
- * @description 徽标形状
70
- * @values 'circle' - 四角均为圆角,'horn' - 左下角为直角
71
- * @default 'circle'
72
- */
73
- shape: {
74
- type: [String,undefined,null],
75
- default: 'circle'
76
- },
77
- /**
78
- * @description 设置数字的显示方式,overflow|ellipsis|limit
79
- * overflow会根据max字段判断,超出显示`${max}+`
80
- * ellipsis会根据max判断,超出显示`${max}...`
81
- * limit会依据1000作为判断条件,超出1000,显示`${value/1000}K`,比如2.2k、3.34w,最多保留2位小数
82
- * @default 'overflow'
83
- */
84
- numberType: {
85
- type: [String,undefined,null],
86
- default: 'overflow'
87
- },
88
- /**
89
- * @description 设置badge的位置偏移,格式为 [x, y],也即设置的为top和right的值(仅absolute=true时有效)
90
- */
91
- offset: {
92
- type: Array,
93
- default: () => []
94
- },
95
- /**
96
- * @description 是否反转背景和字体颜色
97
- * @default false
98
- */
99
- inverted: {
100
- type: Boolean,
101
- default: false
102
- },
103
- /**
104
- * @description 是否绝对定位
105
- * @default false
106
- */
107
- absolute: {
108
- type: Boolean,
109
- default: false
110
- }
111
- }
112
- }