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
@@ -0,0 +1,250 @@
1
+ import { ExtractPropTypes } from 'vue';
2
+ import { componentProps } from '../../../constants';
3
+
4
+ /**
5
+ * 文本域 border 有效值
6
+ */
7
+ export const textareaBorders = ['surround', 'bottom'] as const;
8
+
9
+ export const textareaProps = {
10
+ /**
11
+ * @description 输入框的内容
12
+ */
13
+ modelValue: {
14
+ type: [String, Number],
15
+ default: ''
16
+ },
17
+ /**
18
+ * @description 输入框为空时占位符
19
+ * @default null
20
+ */
21
+ placeholder: {
22
+ type: [String, Number],
23
+ default: null
24
+ },
25
+ /**
26
+ * @description 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写:depp(...)
27
+ * @default 'textarea-placeholder'
28
+ */
29
+ placeholderClass: {
30
+ type: String,
31
+ default: 'textarea-placeholder'
32
+ },
33
+ /**
34
+ * @description 指定placeholder的样式
35
+ * @default 'color: #CCCCCC'
36
+ */
37
+ placeholderStyle: {
38
+ type: [String, Object],
39
+ default: 'color: #CCCCCC'
40
+ },
41
+ /**
42
+ * @description 输入框高度
43
+ * @default 70
44
+ */
45
+ height: {
46
+ type: [String, Number],
47
+ default: 70
48
+ },
49
+ /**
50
+ * @description 设置键盘右下角按钮的文字,仅微信小程序,App-vue和H5有效
51
+ * @default 'done'
52
+ */
53
+ confirmType: {
54
+ type: String,
55
+ default: 'done'
56
+ },
57
+ /**
58
+ * @description 是否禁用
59
+ * @default false
60
+ */
61
+ disabled: {
62
+ type: Boolean,
63
+ default: false
64
+ },
65
+ /**
66
+ * @description 禁用状态时的背景色
67
+ * @default '#F5F7FA'
68
+ */
69
+ disabledColor: {
70
+ type: String,
71
+ default: '#F5F7FA'
72
+ },
73
+ /**
74
+ * @description 是否显示统计字数
75
+ * @default false
76
+ */
77
+ count: {
78
+ type: Boolean,
79
+ default: false
80
+ },
81
+ /**
82
+ * @description 是否自动获取焦点,nvue不支持,H5取决于浏览器的实现
83
+ * @default false
84
+ */
85
+ focus: {
86
+ type: Boolean,
87
+ default: false
88
+ },
89
+ /**
90
+ * @description 是否自动增加高度
91
+ * @default false
92
+ */
93
+ autoHeight: {
94
+ type: Boolean,
95
+ default: false
96
+ },
97
+ /**
98
+ * @description 如果textarea是在一个position:fixed的区域,需要显示指定属性fixed为true
99
+ * @default false
100
+ */
101
+ fixed: {
102
+ type: Boolean,
103
+ default: false
104
+ },
105
+ /**
106
+ * @description 指定光标与键盘的距离
107
+ */
108
+ cursorSpacing: {
109
+ type: Number,
110
+ default: 0
111
+ },
112
+ /**
113
+ * @description 指定focus时的光标位置
114
+ */
115
+ cursor: {
116
+ type: [String, Number],
117
+ default: ''
118
+ },
119
+ /**
120
+ * @description 是否显示键盘上方带有“完成”按钮那一栏
121
+ * @default true
122
+ */
123
+ showConfirmBar: {
124
+ type: Boolean,
125
+ default: true
126
+ },
127
+ /**
128
+ * @description 光标起始位置,自动聚焦时有效,需与selection-end搭配使用
129
+ * @default -1
130
+ */
131
+ selectionStart: {
132
+ type: Number,
133
+ default: -1
134
+ },
135
+ /**
136
+ * @description 光标结束位置,自动聚焦时有效,需与selection-start搭配使用
137
+ * @default -1
138
+ */
139
+ selectionEnd: {
140
+ type: Number,
141
+ default: -1
142
+ },
143
+ /**
144
+ * @description 键盘弹起时,是否自动上推页面
145
+ * @default true
146
+ */
147
+ adjustPosition: {
148
+ type: Boolean,
149
+ default: true
150
+ },
151
+ /**
152
+ * @description 是否去掉 iOS 下的默认内边距,只微信小程序有效
153
+ * @default false
154
+ */
155
+ disableDefaultPadding: {
156
+ type: Boolean,
157
+ default: false
158
+ },
159
+ /**
160
+ * @description focus时,点击页面的时候不收起键盘,只微信小程序有效
161
+ * @default false
162
+ */
163
+ holdKeyboard: {
164
+ type: Boolean,
165
+ default: false
166
+ },
167
+ /**
168
+ * @description 最大输入长度,设置为 -1 的时候不限制最大长度
169
+ * @default 140
170
+ */
171
+ maxlength: {
172
+ type: [String, Number],
173
+ default: 140
174
+ },
175
+ /**
176
+ * @description 边框类型
177
+ * @values 'surround' - 四周边框, 'bottom' - 底部边框
178
+ * @default 'surround'
179
+ */
180
+ border: {
181
+ type: String,
182
+ values: textareaBorders,
183
+ default: 'surround'
184
+ },
185
+ /**
186
+ * @description 边框颜色
187
+ * @default '#dadbde'
188
+ */
189
+ borderColor: {
190
+ type: String,
191
+ default: '#dadbde'
192
+ },
193
+ /**
194
+ * @description 文本域字体大小
195
+ * @default 14
196
+ */
197
+ size: {
198
+ type: [String, Number],
199
+ default: 14
200
+ },
201
+ /**
202
+ * @description 用于处理或者过滤输入框内容的方法
203
+ * @default null
204
+ */
205
+ formatter: {
206
+ type: [Function, null],
207
+ default: null
208
+ },
209
+ ...componentProps
210
+ };
211
+
212
+ export const textareaEmits = {
213
+ 'update:modelValue': (_e: any) => true,
214
+ /**
215
+ * @description 输入内容变化时触发
216
+ */
217
+ input: (_e: any) => true,
218
+ /**
219
+ * @description 输入框输入时触发
220
+ */
221
+ change: (_e: any) => true,
222
+
223
+ /**
224
+ * @description 输入框失去焦点时触发
225
+ */
226
+ blur: (_e: any) => true,
227
+
228
+ /**
229
+ * @description 点击完成时触发
230
+ */
231
+ confirm: (_e: any) => true,
232
+
233
+ /**
234
+ * @description 输入框聚焦时触发
235
+ */
236
+ focus: (_e: any) => true,
237
+
238
+ /**
239
+ * @description 输入框行数变化时调用
240
+ */
241
+ linechange: (_e: any) => true,
242
+
243
+ /**
244
+ * @description 键盘高度发生变化的时候触发此事件
245
+ */
246
+ keyboardheightchange: (_e: any) => true
247
+ };
248
+
249
+ export type TextareaProps = ExtractPropTypes<typeof textareaProps>;
250
+ export type TextareaEmits = typeof textareaEmits;
@@ -0,0 +1,162 @@
1
+ <template>
2
+ <view class="fu-textarea" :class="textareaClass" :style="[textareaStyle]">
3
+ <textarea class="fu-textarea__field" :class="{'fu-textarea--disabled': disabled}" :style="itemStyle" :value="innerValue"
4
+ :placeholder="placeholder"
5
+ :placeholder-style="placehStyle"
6
+ :placeholder-class="placeholderClass"
7
+ :disabled="disabled"
8
+ :focus="focus"
9
+ :autoHeight="autoHeight"
10
+ :fixed="fixed"
11
+ :cursorSpacing="cursorSpacing"
12
+ :cursor="cursor"
13
+ :showConfirmBar="showConfirmBar"
14
+ :selectionStart="selectionStart"
15
+ :selectionEnd="selectionEnd"
16
+ :adjustPosition="adjustPosition"
17
+ :disableDefaultPadding="disableDefaultPadding"
18
+ :holdKeyboard="holdKeyboard"
19
+ :maxlength="maxlength"
20
+ :confirm-type="confirmType"
21
+ :show-count="count"
22
+ @focus="handleFocus"
23
+ @blur="handleBlur"
24
+ @linechange="handleLinechange"
25
+ @input="handleInput"
26
+ @confirm="handleConfirm"
27
+ @keyboardheightchange="handleKeyboardheightchange"></textarea>
28
+ <!-- #ifndef MP-ALIPAY -->
29
+ <text class="fu-textarea__count" style="{'background-color': disabled ? 'transparent' : '#fff'}" v-if="count">{{ innerValue.length }}/{{ maxlength }}</text>
30
+ <!-- #endif -->
31
+ </view>
32
+ </template>
33
+
34
+ <script lang="ts" setup>
35
+ /**
36
+ * Textarea 文本域
37
+ * @description 此组件满足了可能出现的表单信息补充,编辑等实际逻辑的功能,内置了字数校验等
38
+ * @tutorial http://www.fusions.top/components/textarea.html
39
+ * @property {String | Number} value 输入框的内容
40
+ * @property {String | Number} placeholder 输入框为空时占位符
41
+ * @property {String} placeholderClass 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/( 默认 'textarea-placeholder' )
42
+ * @property {String | Object} placeholderStyle 指定placeholder的样式,字符串/对象形式,如"color: red;"
43
+ * @property {String | Number} height 输入框高度(默认 70)
44
+ * @property {String} confirmType = [send|search|next] 设置键盘右下角按钮的文字,仅微信小程序,App-vue和H5有效(默认 'done')
45
+ * @value send 右下角按钮为'发送'
46
+ * @value search 右下角按钮为'搜索'
47
+ * @value next 右下角按钮为'下一个'
48
+ * @value 右下角按钮为'前往'
49
+ * @value 右下角按钮为'完成'
50
+ * @property {Boolean} disabled = [true|false] 是否禁用(默认 false)
51
+ * @property {Boolean} count = [true|false] 是否显示统计字数 (默认 false)
52
+ * @property {Boolean} focus = [true|false] 是否自动获取焦点,nvue不支持,H5取决于浏览器的实现(默认 false)
53
+ * @property {Boolean} autoHeight = [true|false] 是否自动增加高度(默认 false)
54
+ * @property {Boolean} fixed = [true|false] 如果textarea是在一个position:fixed的区域,需要显示指定属性fixed为true(默认 false)
55
+ * @property {Number} cursorSpacing 指定光标与键盘的距离(默认 0)
56
+ * @property {String | Number} cursor 指定focus时的光标位置
57
+ * @property {Boolean} showConfirmBar = [true|false] 是否显示键盘上方带有“完成”按钮那一栏(默认 true)
58
+ * @property {Number} selectionStart 光标起始位置,自动聚焦时有效,需与selection-end搭配使用(默认 -1)
59
+ * @property {Number} selectionEnd 光标结束位置,自动聚焦时有效,需与selection-start搭配使用(默认 -1)
60
+ * @property {Boolean} adjustPosition = [true|false] 键盘弹起时,是否自动上推页面(默认 true)
61
+ * @property {Boolean} disableDefaultPadding = [true|false] 是否去掉 iOS 下的默认内边距,只微信小程序有效(默认 false)
62
+ * @property {Boolean} holdKeyboard = [true|false] focus时,点击页面的时候不收起键盘,只微信小程序有效(默认 false)
63
+ * @property {String | Number} maxlength 最大输入长度,设置为 -1 的时候不限制最大长度(默认 140)
64
+ * @property {String} border = [surround|bottom] 边框类型,surround-四周边框,bottom-底部边框(默认 'surround')
65
+ * @value surround 四周边框
66
+ * @value bottom 底部边框
67
+ * @property {String} borderColor 边框颜色(默认 '#dadbde')
68
+ * @property {String | Number} size 自定义字体大小(默认 14)
69
+ * @property {String | Object} customStyle 定义需要用到的外部样式
70
+ * @event {Function} formatter 内容式化函数
71
+ *
72
+ * @event {Function} focus 输入框聚焦时触发,event.detail = { value, height },height 为键盘高度
73
+ * @event {Function} blur 输入框失去焦点时触发,event.detail = {value, cursor}
74
+ * @event {Function} linechange 输入框行数变化时调用,event.detail = {height: 0, heightRpx: 0, lineCount: 0}
75
+ * @event {Function} input 当键盘输入时,触发 input 事件
76
+ * @event {Function} change 输入框输入时,触发change事件
77
+ * @event {Function} confirm 点击完成时, 触发 confirm 事件
78
+ * @event {Function} keyboardheightchange 键盘高度发生变化的时候触发此事件
79
+ * @example <fu-textarea v-model="value" placeholder="请输入内容" ></fu-textarea>
80
+ */
81
+ import { textareaEmits, textareaProps } from "./textarea";
82
+ import { useTextarea, useTextareaCustomStyle } from './composables';
83
+
84
+ defineOptions({ name: 'FuTextarea', options: { virtualHost: true } });
85
+
86
+ const props = defineProps(textareaProps);
87
+ const $emit = defineEmits(textareaEmits);
88
+
89
+ const {
90
+ innerValue,
91
+ handleFocus,
92
+ handleBlur,
93
+ handleLinechange,
94
+ handleInput,
95
+ handleConfirm,
96
+ handleKeyboardheightchange
97
+ } = useTextarea(props, $emit);
98
+
99
+ const {
100
+ itemStyle,
101
+ placehStyle,
102
+ textareaClass,
103
+ textareaStyle
104
+ } = useTextareaCustomStyle(props);
105
+ </script>
106
+
107
+ <style lang="scss" scoped>
108
+ @use '../../../style/components.scss';
109
+ $color_dadbde: #dadbde;
110
+ $color-disabled: #F5F7FA;
111
+
112
+ .fu-textarea {
113
+ @include components.flex(row);
114
+ position: relative;
115
+ flex: 1;
116
+ padding: 9px 12px;
117
+
118
+ &__field {
119
+ flex: 1;
120
+ font-size: 14px;
121
+ color: #333333;
122
+ background: transparent;
123
+ width: 100%;
124
+ /* #ifdef MP-ALIPAY */
125
+ padding: 0;
126
+ /* #endif */
127
+ }
128
+
129
+ &--radius {
130
+ border-radius: 5px;
131
+ }
132
+
133
+ &--no-radius {
134
+ border-radius: 0;
135
+ }
136
+
137
+ &--disabled {
138
+ background-color: $color-disabled;
139
+ }
140
+
141
+ &__count {
142
+ position: absolute;
143
+ right: 5px;
144
+ bottom: 2px;
145
+ font-size: 12px;
146
+ color: #999999;
147
+ padding: 1px 4px;
148
+ }
149
+
150
+ &__border {
151
+ border-width: 0.5px;
152
+ border-color: $color_dadbde;
153
+ border-style: solid;
154
+ }
155
+
156
+ &__border-bottom {
157
+ border-bottom-width: 0.5px;
158
+ border-color: $color_dadbde;
159
+ border-bottom-style: solid;
160
+ }
161
+ }
162
+ </style>
@@ -4,18 +4,12 @@
4
4
  </view>
5
5
  </template>
6
6
 
7
- <script>
8
- import mpMixin from '../../libs/mixin/mpMixin.js'
7
+ <script lang="ts" setup>
9
8
  /**
10
9
  * 时间轴需配合FuTimeaxisItem组件一起使用
10
+ * @tutorial http://www.fusions.top/components/timeaxis.html
11
11
  */
12
- export default {
13
- name:"FuTimeaxis",
14
- mixins: [mpMixin],
15
- data() {
16
- return {};
17
- }
18
- }
12
+ defineOptions({ name: 'FuTimeaxis', options: { virtualHost: true } });
19
13
  </script>
20
14
 
21
15
  <style lang="scss" scoped>
@@ -0,0 +1 @@
1
+ export * from './src/timeaxis-item'
@@ -0,0 +1,20 @@
1
+ import type { ExtractPropTypes } from 'vue';
2
+
3
+ export const timeaxisItemProps = {
4
+ /**
5
+ * @description 左侧节点背景颜色
6
+ */
7
+ bgColor: {
8
+ type: String,
9
+ default: ""
10
+ },
11
+ /**
12
+ * @description 左侧节点绝对定位top值
13
+ */
14
+ nodeTop: {
15
+ type: [String, Number],
16
+ default: 0
17
+ }
18
+ };
19
+
20
+ export type TimeaxisItemProps = ExtractPropTypes<typeof timeaxisItemProps>;
@@ -0,0 +1,50 @@
1
+ <template>
2
+ <view class="fu-timeaxis-item">
3
+ <slot name="content"></slot>
4
+ <view
5
+ class="fu-timeaxis-node"
6
+ :style="[{
7
+ backgroundColor: bgColor,
8
+ top: $fu.addUnit(nodeTop)
9
+ }]">
10
+ <slot name="node"></slot>
11
+ </view>
12
+ </view>
13
+ </template>
14
+
15
+ <script lang="ts" setup>
16
+ /**
17
+ * 时间轴需配合FuTimeaxis组件一起使用
18
+ * @property {String} bgColor 左侧节点背景颜色
19
+ * @property {String | Number} 左侧节点绝对定位top值
20
+ */
21
+ import { timeaxisItemProps } from './timeaxis-item';
22
+
23
+ defineOptions({ name: 'FuTimeaxisItem', options: { virtualHost: true } });
24
+
25
+ defineProps(timeaxisItemProps);
26
+ </script>
27
+
28
+ <style lang="scss" scoped>
29
+ @use '../../../style/components.scss';
30
+
31
+ .fu-timeaxis-item {
32
+ @include components.flex(column);
33
+ position: relative;
34
+ width: 100%;
35
+ margin-bottom: 25px;
36
+ }
37
+
38
+ .fu-timeaxis-node {
39
+ position: absolute;
40
+ top: 0;
41
+ left: -20px;
42
+ transform-origin: 0;
43
+ transform: translateX(-50%);
44
+ @include components.flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ z-index: 99;
48
+ font-size: 12px;
49
+ }
50
+ </style>
@@ -0,0 +1 @@
1
+ export * from './src/transition'
@@ -0,0 +1,171 @@
1
+ // #ifdef APP-NVUE
2
+ const nvueAnimation = uni.requireNativePlugin('animation');
3
+ // #endif
4
+
5
+ export interface AnimationCtx {
6
+ // 动画元素的模板引用 (<view ref="ani" />)
7
+ targetRef: any;
8
+ // 非NVUE平台下绑定导出动画数据的引用
9
+ animationDataRef: { value: any };
10
+ // 用于确定非NVUE平台下回调延迟的数字引用
11
+ durationTimeRef: { value: number };
12
+ // 组件实例上的定时器存储,允许取消/替换
13
+ timerRef: { value: any };
14
+ }
15
+
16
+ class MPAnimation {
17
+ private options: Record<string, any>;
18
+ private animation: UniApp.Animation;
19
+ private currentStepAnimates: Record<number, any> = {};
20
+ private next = 0;
21
+ private ctx: AnimationCtx;
22
+ // Mark end for NVUE chain
23
+ private isEnd = true;
24
+
25
+ constructor(options: Record<string, any>, ctx: AnimationCtx) {
26
+ this.options = options;
27
+ // 在iOS10+QQ小程序平台下,传给原生的对象一定是个普通对象而不是Proxy对象,否则会报parameter should be Object instead of ProxyObject的错误
28
+ this.animation = uni.createAnimation({
29
+ ...options
30
+ });
31
+ this.ctx = ctx;
32
+ }
33
+
34
+ private _nvuePushAnimates(type: string, args: any) {
35
+ let aniObj = this.currentStepAnimates[this.next];
36
+ let styles: any = aniObj || { styles: {}, config: {} };
37
+ if (!aniObj) {
38
+ styles = {
39
+ styles: {},
40
+ config: {}
41
+ };
42
+ } else {
43
+ styles = aniObj;
44
+ }
45
+ if (animateTypes1.includes(type)) {
46
+ if (!styles.styles.transform) {
47
+ styles.styles.transform = '';
48
+ }
49
+ let unit = '';
50
+ if(type === 'rotate'){
51
+ unit = 'deg';
52
+ }
53
+ styles.styles.transform += `${type}(${args+unit}) `;
54
+ } else {
55
+ styles.styles[type] = `${args}`;
56
+ }
57
+ this.currentStepAnimates[this.next] = styles;
58
+ }
59
+
60
+ private _animateRun(styles: any = {}, config: any = {}) {
61
+ let ref = this.ctx?.targetRef?.value?.ref;
62
+ if (!ref) return
63
+ return new Promise<void>((resolve, _reject) => {
64
+ nvueAnimation.transition(ref, {
65
+ styles,
66
+ ...config
67
+ }, () => {
68
+ resolve()
69
+ })
70
+ })
71
+ }
72
+
73
+ private _nvueNextAnimate(animates: Record<number, any>, step = 0, fn?: () => void) {
74
+ let obj = animates[step]
75
+ if (obj) {
76
+ let {
77
+ styles,
78
+ config
79
+ } = obj;
80
+ this._animateRun(styles, config).then(() => {
81
+ step += 1
82
+ this._nvueNextAnimate(animates, step, fn)
83
+ })
84
+ } else {
85
+ this.currentStepAnimates = {};
86
+ typeof fn === 'function' && fn()
87
+ this.isEnd = true;
88
+ }
89
+ }
90
+
91
+ step(config: Record<string, any> = {}) {
92
+ // #ifndef APP-NVUE
93
+ this.animation.step(config)
94
+ // #endif
95
+ // #ifdef APP-NVUE
96
+ this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config);
97
+ this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin;
98
+ this.next++
99
+ // #endif
100
+ return this
101
+ }
102
+
103
+ run(fn?: () => void) {
104
+ // #ifndef APP-NVUE
105
+ if(this.ctx?.animationDataRef) {
106
+ this.ctx.animationDataRef.value = this.animation.export();
107
+ if (this.ctx.timerRef) clearTimeout(this.ctx.timerRef.value);
108
+ // 动画执行完成后重新创建animation对象,确保后续调用正常工作
109
+ this.animation = uni.createAnimation({ ...this.options });
110
+ this.ctx.timerRef.value = setTimeout(() => {
111
+ typeof fn === 'function' && fn()
112
+ }, this.ctx.durationTimeRef?.value || 0)
113
+ }
114
+ // #endif
115
+ // #ifdef APP-NVUE
116
+ this.isEnd = false;
117
+ let ref = this.ctx?.targetRef?.value?.ref;
118
+ if(!ref) return
119
+ this._nvueNextAnimate(this.currentStepAnimates, 0, fn);
120
+ this.next = 0;
121
+ // #endif
122
+ }
123
+ }
124
+
125
+
126
+ const animateTypes1 = [
127
+ 'matrix',
128
+ 'matrix3d',
129
+ 'rotate',
130
+ 'rotate3d',
131
+ 'rotateX',
132
+ 'rotateY',
133
+ 'rotateZ',
134
+ 'scale',
135
+ 'scale3d',
136
+ 'scaleX',
137
+ 'scaleY',
138
+ 'scaleZ',
139
+ 'skew',
140
+ 'skewX',
141
+ 'skewY',
142
+ 'translate',
143
+ 'translate3d',
144
+ 'translateX',
145
+ 'translateY',
146
+ 'translateZ'
147
+ ];
148
+ const animateTypes2 = ['opacity', 'backgroundColor'];
149
+ const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'];
150
+
151
+ animateTypes1.concat(...animateTypes2, ...animateTypes3).forEach(type => {
152
+ // @ts-ignore dynamic assignment
153
+ (MPAnimation.prototype as any)[type] = function (...args: any[]) {
154
+ // #ifndef APP-NVUE
155
+ (this.animation as any)[type](...args);
156
+ // #endif
157
+ // #ifdef APP-NVUE
158
+ this._nvuePushAnimates(type, args);
159
+ // #endif
160
+ return this;
161
+ };
162
+ });
163
+
164
+ export const createAnimation = (option: Record<string, any>, ctx: AnimationCtx) => {
165
+ if(!ctx) return undefined as any
166
+ if(ctx.timerRef?.value) {
167
+ clearTimeout(ctx.timerRef.value)
168
+ }
169
+
170
+ return new MPAnimation(option, ctx)
171
+ };
@@ -0,0 +1,2 @@
1
+ export * from './transform-custom'
2
+ export * from './use-transition'
@@ -0,0 +1,18 @@
1
+ import { computed, Ref, type CSSProperties } from 'vue';
2
+ import type { TransitionProps } from '../transition';
3
+
4
+ export const useTransitionCustomStyle = (props: TransitionProps, transform: Ref<string>, opacity: Ref<string | number>) => {
5
+ const transformStyle = computed<CSSProperties>(() => {
6
+ const style: Record<string, any> = {
7
+ transform: transform.value,
8
+ opacity: opacity.value,
9
+ ...uni.$fu.addStyle(props.customStyle),
10
+ 'transition-duration': props.duration / 1000 + 's'
11
+ }
12
+ return uni.$fu.addStyle(style, 'string');
13
+ });
14
+
15
+ return {
16
+ transformStyle
17
+ }
18
+ };