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
@@ -0,0 +1,360 @@
1
+ import type { ExtractPropTypes } from 'vue';
2
+ import { componentProps, componentShapes } from '../../../constants';
3
+
4
+ /**
5
+ * 输入框 type 有效值
6
+ */
7
+ export const inputTypes = [
8
+ 'text',
9
+ 'password',
10
+ 'number',
11
+ 'idcard',
12
+ 'digit',
13
+ 'tel',
14
+ 'safe-password',
15
+ 'nickname',
16
+ 'none',
17
+ 'decimal',
18
+ 'numeric',
19
+ 'search',
20
+ 'email',
21
+ 'url'
22
+ ] as const;
23
+
24
+ /**
25
+ * 输入框 align 有效值
26
+ */
27
+ export const inputAligns = ['left', 'center', 'right'] as const;
28
+
29
+ /**
30
+ * 输入框 border 有效值
31
+ */
32
+ export const inputBorders = ['surround', 'bottom', 'none'] as const;
33
+
34
+ export const inputProps = {
35
+ /**
36
+ * @description v-model 输入的值
37
+ */
38
+ modelValue: {
39
+ type: [String, Number],
40
+ default: ''
41
+ },
42
+ /**
43
+ * @description number-数字输入键盘,app-vue下可以输入浮点数,app-nvue和小程序平台下只能输入整数
44
+ * @default 'text'
45
+ */
46
+ type: {
47
+ type: String,
48
+ values: inputTypes,
49
+ default: 'text'
50
+ },
51
+ /**
52
+ * @description 是否禁用输入框
53
+ * @default false
54
+ */
55
+ disabled: {
56
+ type: Boolean,
57
+ default: false
58
+ },
59
+ /**
60
+ * @description 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会
61
+ * @default false
62
+ */
63
+ readonly: {
64
+ type: Boolean,
65
+ default: false
66
+ },
67
+ /**
68
+ * @description 禁用状态时的背景色
69
+ * @default '#F5F7FA'
70
+ */
71
+ disabledColor: {
72
+ type: String,
73
+ default: '#F5F7FA'
74
+ },
75
+ /**
76
+ * @description 是否显示清除控件
77
+ * @default false
78
+ */
79
+ clearable: {
80
+ type: Boolean,
81
+ default: false
82
+ },
83
+ /**
84
+ * @description 是否密码类型
85
+ * @default false
86
+ */
87
+ password: {
88
+ type: Boolean,
89
+ default: false
90
+ },
91
+ /**
92
+ * @description 最大输入长度,设置为 -1 的时候不限制最大长度
93
+ * 注意:支付宝小程序如果设置 -1 同时type = digit无效
94
+ * @default -1
95
+ */
96
+ maxlength: {
97
+ type: [String, Number],
98
+ default: -1
99
+ },
100
+ /**
101
+ * @description 输入框为空时的占位符
102
+ * @default null
103
+ */
104
+ placeholder: {
105
+ type: String,
106
+ default: null
107
+ },
108
+ /**
109
+ * @description 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写:deep(...)
110
+ * @default 'input-placeholder'
111
+ */
112
+ placeholderClass: {
113
+ type: String,
114
+ default: 'input-placeholder'
115
+ },
116
+ /**
117
+ * @description 指定placeholder的样式
118
+ * @default 'color: #CCCCCC'
119
+ */
120
+ placeholderStyle: {
121
+ type: [String, Object],
122
+ default: 'color: #CCCCCC'
123
+ },
124
+ /**
125
+ * @description 设置右下角按钮的文字,有效值:send|search|next|go|done,兼容性详见uni-app文档https://uniapp.dcloud.io/component/input
126
+ * @default 'done'
127
+ */
128
+ confirmType: {
129
+ type: String,
130
+ default: 'done'
131
+ },
132
+ /**
133
+ * @description 点击键盘右下角按钮时是否保持键盘不收起,H5无效
134
+ * @default false
135
+ */
136
+ confirmHold: {
137
+ type: Boolean,
138
+ default: false
139
+ },
140
+ /**
141
+ * @description focus时,点击页面的时候不收起键盘,微信小程序有效
142
+ * @default false
143
+ */
144
+ holdKeyboard: {
145
+ type: Boolean,
146
+ default: false
147
+ },
148
+ /**
149
+ * @description 自动获取焦点
150
+ * 在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点
151
+ * @default false
152
+ */
153
+ focus: {
154
+ type: Boolean,
155
+ default: false
156
+ },
157
+ /**
158
+ * @description 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效
159
+ * @default false
160
+ */
161
+ autoBlur: {
162
+ type: Boolean,
163
+ default: false
164
+ },
165
+ /**
166
+ * @description 指定focus时光标的位置
167
+ * @default -1
168
+ */
169
+ cursor: {
170
+ type: [String, Number],
171
+ default: -1
172
+ },
173
+ /**
174
+ * @description 输入框聚焦时底部与键盘的距离
175
+ * @default 30
176
+ */
177
+ cursorSpacing: {
178
+ type: [String, Number],
179
+ default: 30
180
+ },
181
+ /**
182
+ * @description 光标起始位置,自动聚集时有效,需与selection-end搭配使用
183
+ * @default -1
184
+ */
185
+ selectionStart: {
186
+ type: [String, Number],
187
+ default: -1
188
+ },
189
+ /**
190
+ * @description 光标结束位置,自动聚集时有效,需与selection-start搭配使用
191
+ * @default -1
192
+ */
193
+ selectionEnd: {
194
+ type: [String, Number],
195
+ default: -1
196
+ },
197
+ /**
198
+ * @description 键盘弹起时,是否自动上推页面
199
+ * @default true
200
+ */
201
+ adjustPosition: {
202
+ type: Boolean,
203
+ default: true
204
+ },
205
+ /**
206
+ * @description 输入框内容对齐方式
207
+ * @values 'left' - 左对齐, 'center' - 居中, 'right' - 右对齐
208
+ * @default 'left'
209
+ */
210
+ align: {
211
+ type: String,
212
+ values: inputAligns,
213
+ default: 'left'
214
+ },
215
+ /**
216
+ * @description 输入框字体的大小
217
+ * @default 14
218
+ */
219
+ size: {
220
+ type: [String, Number],
221
+ default: 14
222
+ },
223
+ /**
224
+ * @description 输入框字体颜色
225
+ * @default '#333333'
226
+ */
227
+ color: {
228
+ type: String,
229
+ default: '#333333'
230
+ },
231
+ /**
232
+ * @description 输入框前置图标
233
+ */
234
+ prefixIcon: {
235
+ type: String,
236
+ default: ''
237
+ },
238
+ /**
239
+ * @description 输入框前置图标大小
240
+ * @default 18
241
+ */
242
+ prefixSize: {
243
+ type: [String, Number],
244
+ default: 18
245
+ },
246
+ /**
247
+ * @description 输入框前置图标颜色
248
+ * @default '#8f9ca2'
249
+ */
250
+ prefixColor: {
251
+ type: String,
252
+ default: '#8f9ca2'
253
+ },
254
+ /**
255
+ * @description 输入框后置图标
256
+ */
257
+ suffixIcon: {
258
+ type: String,
259
+ default: ''
260
+ },
261
+ /**
262
+ * @description 输入框后置图标大小
263
+ * @default 18
264
+ */
265
+ suffixSize: {
266
+ type: [String, Number],
267
+ default: 18
268
+ },
269
+ /**
270
+ * @description 输入框后置图标颜色
271
+ * @default '#8f9ca2'
272
+ */
273
+ suffixColor: {
274
+ type: String,
275
+ default: '#8f9ca2'
276
+ },
277
+ /**
278
+ * @description 边框类型
279
+ * @values 'surround' - 四周边框, 'bottom' - 底部边框, 'none' - 无边框
280
+ * @default 'surround'
281
+ */
282
+ border: {
283
+ type: String,
284
+ values: inputBorders,
285
+ default: 'surround'
286
+ },
287
+ /**
288
+ * @description 输入框形状
289
+ * @values 'circle' - 圆形, 'square' - 方形
290
+ * @default 'square'
291
+ */
292
+ shape: {
293
+ type: String,
294
+ values: componentShapes,
295
+ default: 'square'
296
+ },
297
+ /**
298
+ * @description 设置外间距
299
+ */
300
+ margin: {
301
+ type: String,
302
+ default: '0'
303
+ },
304
+ /**
305
+ * @description 用于处理或者过滤输入框内容的方法
306
+ * @default null
307
+ */
308
+ formatter: {
309
+ type: [Function, null],
310
+ default: null
311
+ },
312
+ /**
313
+ * @description 是否忽略组件内对文本合成系统事件的处理
314
+ * @default true
315
+ */
316
+ ignoreCompositionEvent: {
317
+ type: Boolean,
318
+ default: true
319
+ },
320
+ ...componentProps
321
+ };
322
+
323
+ export const inputEmits = {
324
+ 'update:modelValue': (_e : any) => true,
325
+ /**
326
+ * @description 输入内容变化时触发
327
+ */
328
+ input: (_e : any) => true,
329
+ /**
330
+ * @description 输入内容变化时触发
331
+ */
332
+ change: (_e : any) => true,
333
+ /**
334
+ * @description 点击清空内容
335
+ */
336
+ clear: () => true,
337
+ /**
338
+ * @description 输入框失去焦点时触发
339
+ */
340
+ blur: (_e : any) => true,
341
+ /**
342
+ * @description 点击完成按钮时触发
343
+ */
344
+ confirm: (_e : any) => true,
345
+ /**
346
+ * @description 输入框聚焦时触发
347
+ */
348
+ focus: () => true,
349
+ /**
350
+ * @description readonly或disabled为true时 点击input时触发
351
+ */
352
+ click: () => true,
353
+ /**
354
+ * @description 键盘高度发生变化的时候触发此事件
355
+ */
356
+ keyboardheightchange: () => true
357
+ };
358
+
359
+ export type InputProps = ExtractPropTypes<typeof inputProps>;
360
+ export type InputEmits = typeof inputEmits;
@@ -0,0 +1,241 @@
1
+ <template>
2
+ <view class="fu-input" :class="inputClass" :style="[wrapperStyle]" @click="handleClick">
3
+ <view class="fu-input__content">
4
+ <view class="fu-input__content__prefix-icon">
5
+ <slot name="prefix">
6
+ <fu-icon :name="prefixIcon" :size="prefixSize" :color="prefixColor" />
7
+ </slot>
8
+ </view>
9
+ <view class="fu-input__content__field-box">
10
+ <input class="fu-input__content__field-box__field" :style="[inputStyle]" :type="type" :value="innerValue"
11
+ :disabled="disabled || readonly"
12
+ :focus="focus"
13
+ :cursor="cursor"
14
+ :auto-blur="autoBlur"
15
+ :maxlength="maxlength"
16
+ :placeholder="placeholder"
17
+ :placeholder-style="placeholderStyle"
18
+ :placeholder-class="placeholderClass"
19
+ :confirm-type="confirmType"
20
+ :confirm-hold="confirmHold"
21
+ :hold-keyboard="holdKeyboard"
22
+ :cursor-spacing="cursorSpacing"
23
+ :adjust-position="adjustPosition"
24
+ :selection-end="selectionEnd"
25
+ :selection-start="selectionStart"
26
+ :password="password || type === 'password' || undefined"
27
+ :ignoreCompositionEvent="ignoreCompositionEvent"
28
+ @input="handleInput"
29
+ @blur="handleBlur"
30
+ @focus="handleFocus"
31
+ @confirm="handleConfirm"
32
+ @keyboardheightchange="handleKeyboardheightchange" />
33
+ </view>
34
+ <view class="fu-input__content__clear" v-if="isShowClear" @tap="handleClear">
35
+ <fu-icon name="close-fill" size="25" color="#CCCCCC" />
36
+ </view>
37
+ <view class="fu-input__content__subfix-icon">
38
+ <slot name="suffix">
39
+ <fu-icon :name="suffixIcon" :size="suffixSize" :color="suffixColor" />
40
+ </slot>
41
+ </view>
42
+ </view>
43
+ </view>
44
+ </template>
45
+
46
+ <script lang="ts" setup>
47
+ /**
48
+ * Input 输入框
49
+ * @description 此组件为一个输入框,默认没有边框和样式,是专门为配合表单组件fu-form而设计的,利用它可以快速实现表单验证,输入内容,下拉选择等功能。
50
+ * @tutorial http://www.fusions.top/components/input.html
51
+ * @property {String | Number} v-model input输入的值
52
+ * @property {String} type = [text|password|number|idcard|digit|tel|safe-password|nickname|none|decimal|numeric|search|email|url] 输入框类型 ( 默认 'text' )
53
+ * @value text 文本输入键盘
54
+ * @value password 密码输入键盘
55
+ * @value number 数字输入键盘,注意iOS上app-vue弹出的数字键盘并非9宫格方式
56
+ * @value idcard 身份证输入键盘 注:微信、支付宝、百度、QQ小程序、快手小程序、京东小程序
57
+ * @value digit 带小数点的数字键盘 注:均支持,App平台、H5平台 vue 页面在 iOS 平台显示的键盘包含负数(原生键盘不支持负号)
58
+ * @value tel 电话输入键盘 注:小红书小程序不支持
59
+ * @value safe-password 密码安全输入键盘 注:微信小程序
60
+ * @value nickname 昵称输入键盘 注:微信小程序
61
+ * @value none 无虚拟键盘。在应用程序或者站点需要实现自己的键盘输入控件时很有用 注:H5 (5.0+)、App (5.0+)
62
+ * @value decimal 小数输入键盘,包含数字和分隔符(通常是“ . ”或者“ , ”),设备可能也可能不显示减号键 注:H5 (5.0+)、App (5.0+)
63
+ * @value numeric 数字输入键盘,所需要的就是 0 到 9 的数字,设备可能也可能不显示减号键 注:H5 (5.0+)、App (5.0+)
64
+ * @value search 为搜索输入优化的虚拟键盘,比如,返回键可能被重新标记为“搜索”,也可能还有其他的优化 注:H5 (5.0+)、App (5.0+)
65
+ * @value email 为邮件地址输入优化的虚拟键盘,通常包含""符号和其他优化 注:H5 (5.0+)、App (5.0+)
66
+ * @value url 为网址输入优化的虚拟键盘,比如,“/”键会更加明显、历史记录访问等 注:H5 (5.0+)、App (5.0+)
67
+ * @property {Boolean} disabled = [true|false] 是否禁用输入框( 默认 false )
68
+ * @property {Boolean} readonly = [true|false] 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会 ( 默认 false )
69
+ * @property {String} disabledColor 禁用状态时的背景色(默认 '#F5F7FA')
70
+ * @property {Boolean} clearable = [true|false] 是否显示清除控件 (默认false)
71
+ * @property {Boolean} password = [true|false] 是否密码类型(默认false)
72
+ * @property {String | Number} maxlength 最大输入长度,设置为 -1 的时候不限制最大长度 (默认 -1), 在支付宝小程序中 type="digit" 时IOS无法触发input事件
73
+ * @property {String} placeholder 输入框为空时的占位符 (默认null)
74
+ * @property {String} placeholderClass 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名:deep()包裹 ( 默认 'input-placeholder' )
75
+ * @property {String | Object} placeholderStyle 指定placeholder的样式,字符串/对象形式,如"color: red;"
76
+ * @property {String} confirmType 设置右下角按钮的文字,兼容性详见uni-app文档 ( 默认 'done' )
77
+ * @property {Boolean} confirmHold = [true|false] 点击键盘右下角按钮时是否保持键盘不收起,H5无效 ( 默认 false )
78
+ * @property {Boolean} holdKeyboard = [true|false] focus时,点击页面的时候不收起键盘,微信小程序有效 ( 默认 false )
79
+ * @property {Boolean} focus = [true|false] 自动获取焦点,在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点 ( 默认 false )
80
+ * @property {Boolean} autoBlur = [true|false] 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效 ( 默认 false )
81
+ * @property {String | Number} cursor 指定focus时光标的位置( 默认 -1 )
82
+ * @property {String | Number} cursorSpacing 输入框聚焦时底部与键盘的距离 ( 默认 30 )
83
+ * @property {String | Number} selectionStart 光标起始位置,自动聚集时有效,需与selection-end搭配使用 ( 默认 -1 )
84
+ * @property {String | Number} selectionEnd 光标结束位置,自动聚集时有效,需与selection-start搭配使用 ( 默认 -1 )
85
+ * @property {Boolean} adjustPosition = [true|false] 键盘弹起时,是否自动上推页面 ( 默认 true )
86
+ * @property {String} align = [left|center|right] 输入框内容对齐方式( 默认 'left' )
87
+ * @value left 左显示
88
+ * @value center 居中显示
89
+ * @value right 右显示
90
+ * @property {String | Number} size 输入框字体的大小( 默认 14)
91
+ * @property {String} color 输入框字体颜色( 默认 '#333333' )
92
+ * @property {String} prefixIcon 输入框前置图标
93
+ * @property {String | Number} prefixSize 输入框前置图标大小(默认 18)
94
+ * @property {String} prefixColor 输入框前置图标颜色 默认(#8f9ca2)
95
+ * @property {String} suffixIcon 输入框后置图标
96
+ * @property {String | Number} suffixSize 输入框后置图标大小(默认18)
97
+ * @property {String} suffixColor 输入框后置图标颜色 默认(#8f9ca2)
98
+ * @property {String} border = [surround|bottom|none] 边框类型,surround-四周边框,bottom-底部边框,none-无边框 ( 默认 'surround' )
99
+ * @value surround 四周边框
100
+ * @value bottom 底部边框
101
+ * @value none 无边框
102
+ * @property {String} shape = [circle|square] 输入框形状,circle-圆形,square-方形(默认 'square')
103
+ * @value circle 圆形
104
+ * @value square 方形
105
+ * @property {String} margin 自定义外间距(默认 '0')
106
+ * @property {Function} formatter 内容式化函数
107
+ * @property {String | Object} customStyle 定义需要用到的外部样式
108
+ * @property {Boolean} ignoreCompositionEvent 是否忽略组件内对文本合成系统事件的处理
109
+ *
110
+ * @event {Function} click readonly或disabled为true时 点击input时触发
111
+ * @event {Function} input 输入内容变化时触发
112
+ * @event {Function} change 输入内容变化时触发
113
+ * @event {Function} clear 点击清空内容
114
+ * @event {Function} blur 输入框失去焦点时触发
115
+ * @event {Function} confirm 点击完成按钮时触发
116
+ * @event {Function} focus 输入框聚焦时触发
117
+ * @event {Function} keyboardheightchange 键盘高度发生变化的时候触发此事件 微信小程序基础库2.7.0+、App 3.1.0+
118
+ * @example <fu-input placeholder="请输入内容"></fu-input>
119
+ */
120
+ import { inputEmits, inputProps } from './input';
121
+ import { useInput, useInputCustomStyle } from './composables';
122
+
123
+ defineOptions({ name: 'FuInput', options: { virtualHost: true } });
124
+
125
+ const props = defineProps(inputProps);
126
+ const $emit = defineEmits(inputEmits);
127
+
128
+ const {
129
+ innerValue,
130
+ focused,
131
+ setFormatter,
132
+ handleInput,
133
+ handleBlur,
134
+ handleFocus,
135
+ handleClear,
136
+ handleConfirm,
137
+ handleClick,
138
+ handleKeyboardheightchange
139
+ } = useInput(props, $emit);
140
+
141
+ const {
142
+ isShowClear,
143
+ inputClass,
144
+ wrapperStyle,
145
+ inputStyle
146
+ } = useInputCustomStyle(props, focused, innerValue);
147
+
148
+ // 暴露方法给父组件
149
+ defineExpose({
150
+ setFormatter
151
+ });
152
+ </script>
153
+
154
+ <style lang="scss" scoped>
155
+ @use '../../../style/components.scss';
156
+ $color_333333: #333333;
157
+ $color_dadbde: #dadbde;
158
+
159
+ .fu-input {
160
+ @include components.flex(row);
161
+ align-items: center;
162
+ justify-content: space-between;
163
+ flex: 1;
164
+
165
+ &__content {
166
+ @include components.flex(row);
167
+ flex: 1;
168
+ align-items: center;
169
+ justify-content: space-between;
170
+
171
+ &__field-box {
172
+ @include components.flex(row);
173
+ position: relative;
174
+ margin: 0;
175
+ flex: 1;
176
+
177
+ &__field {
178
+ text-align: left;
179
+ color: $color_333333;
180
+ font-size: 14px;
181
+ flex: 1;
182
+ /* #ifdef MP-ALIPAY */
183
+ padding: 0;
184
+ /* #endif */
185
+ background-color: transparent;
186
+ }
187
+ }
188
+
189
+ &__clear {
190
+ width: 20px;
191
+ height: 20px;
192
+ border-radius: 100px;
193
+ @include components.flex(row);
194
+ align-items: center;
195
+ justify-content: center;
196
+ transform: scale(0.82);
197
+ margin-left: 4px;
198
+ }
199
+
200
+ &__subfix-icon {
201
+ margin-left: 4px;
202
+ }
203
+
204
+ &__prefix-icon {
205
+ margin-right: 4px;
206
+ }
207
+ }
208
+ }
209
+
210
+ .fu-border {
211
+ border-width: 0.5px;
212
+ border-color: $color_dadbde;
213
+ border-style: solid;
214
+ }
215
+
216
+ .fu-border-bottom {
217
+ border-bottom-width: 0.5px;
218
+ border-color: $color_dadbde;
219
+ border-bottom-style: solid;
220
+ }
221
+
222
+ .fu-input-circle {
223
+ border-radius: 1000rpx !important;
224
+ overflow: hidden;
225
+ }
226
+
227
+ .fu-input-square {
228
+ border-radius: 5px;
229
+ }
230
+
231
+ .fu-input-no-radius {
232
+ border-radius: 0;
233
+ }
234
+
235
+ .fu-input-password {
236
+ :deep(.uni-input-input) {
237
+ -webkit-text-security: disc;
238
+ text-security:disc;
239
+ }
240
+ }
241
+ </style>
@@ -0,0 +1 @@
1
+ export * from './src/keyboard'
@@ -0,0 +1,3 @@
1
+ export * from './use-keyboard-car'
2
+ export * from './use-keyboard-number'
3
+ export * from './use-keyboard'
@@ -0,0 +1,99 @@
1
+ import { computed, ref, type SetupContext } from 'vue';
2
+ import type { KeyboardCarProps, KeyboardCarEmits } from '../keyboard-car';
3
+
4
+ export const useKeyboardCar = (props : KeyboardCarProps, $emit : SetupContext<KeyboardCarEmits>['emit']) => {
5
+ // 车牌输入时,abc=true为输入车牌号码,bac=false为输入省份中文简称
6
+ const abc = ref(false);
7
+ const timer = ref<any>(null);
8
+
9
+ const areaList = computed(() => {
10
+ const data = [
11
+ '京', '沪', '粤', '津', '冀', '豫', '云', '辽', '黑', '湘',
12
+ '皖', '鲁', '苏', '浙', '赣', '鄂', '桂', '甘', '晋', '陕',
13
+ '蒙', '吉', '闽', '贵', '渝', '川', '青', '琼', '宁', '挂',
14
+ '藏', '港', '澳', '新', '使', '学'
15
+ ];
16
+ let processedData = [...data];
17
+ // 打乱顺序
18
+ if (props.random) processedData = uni.fu.randomArray(processedData)
19
+ // 切割成二维数组
20
+ let tmp: string[][] = [];
21
+ tmp[0] = processedData.slice(0, 10);
22
+ tmp[1] = processedData.slice(10, 20);
23
+ tmp[2] = processedData.slice(20, 30);
24
+ tmp[3] = processedData.slice(30, 36);
25
+ return tmp;
26
+ });
27
+
28
+ const engKeyBoardList = computed(() => {
29
+ const data = [
30
+ 1, 2, 3, 4, 5, 6, 7, 8, 9, 0,
31
+ 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P',
32
+ 'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L',
33
+ 'Z', 'X', 'C', 'V', 'B', 'N', 'M'
34
+ ];
35
+ let processedData = [...data];
36
+ if (props.random) {
37
+ processedData = uni.$fu.randomArray(processedData)
38
+ }
39
+ let tmp: (string | number)[][] = [];
40
+ tmp[0] = processedData.slice(0, 10);
41
+ tmp[1] = processedData.slice(10, 20);
42
+ tmp[2] = processedData.slice(20, 30);
43
+ tmp[3] = processedData.slice(30, 36);
44
+ return tmp;
45
+ });
46
+
47
+ const isDisabled = computed(() => {
48
+ return (i : number, j : number) : boolean => {
49
+ let value = '';
50
+ if (abc.value) value = String(engKeyBoardList.value[i][j]);
51
+ else value = areaList.value[i][j];
52
+ return props.disKeys.indexOf(value) > -1;
53
+ }
54
+ });
55
+
56
+ // 点击键盘按钮
57
+ const carInputClick = (i, j) => {
58
+ if(isDisabled.value(i,j)) return;
59
+ let value = '';
60
+ // 不同模式,获取不同数组的值
61
+ if (abc.value) value = String(engKeyBoardList.value[i][j]);
62
+ else value = areaList.value[i][j];
63
+ // 如果允许自动切换,则将中文状态切换为英文
64
+ if (!abc.value && props.autoChange) uni.$fu.sleep(200).then(() => abc.value = true)
65
+ $emit('change', value);
66
+ };
67
+
68
+ // 修改汽车牌键盘的输入模式,中文|英文
69
+ const changeCarInputMode = () => {
70
+ abc.value = !abc.value;
71
+ $emit('changeCarInputMode', abc.value);
72
+ };
73
+
74
+ // 点击退格键
75
+ const backspaceClick = () => {
76
+ $emit('backspace');
77
+ clearInterval(timer.value); //再次清空定时器,防止重复注册定时器
78
+ timer.value = null;
79
+ timer.value = setInterval(() => {
80
+ $emit('backspace');
81
+ }, 250);
82
+ };
83
+
84
+ const clearTimer = () => {
85
+ clearInterval(timer.value);
86
+ timer.value = null;
87
+ }
88
+
89
+ return {
90
+ abc,
91
+ areaList,
92
+ engKeyBoardList,
93
+ isDisabled,
94
+ carInputClick,
95
+ changeCarInputMode,
96
+ backspaceClick,
97
+ clearTimer
98
+ }
99
+ }