dpzvc3-ui 3.0.7 → 3.1.0

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 (478) hide show
  1. package/dist/dpzvc3.esm.js +7761 -10544
  2. package/dist/dpzvc3.esm.js.map +1 -1
  3. package/dist/dpzvc3.esm.min.js +1 -1
  4. package/dist/dpzvc3.esm.min.js.map +1 -1
  5. package/dist/dpzvc3.js +6067 -7681
  6. package/dist/dpzvc3.js.map +1 -1
  7. package/dist/dpzvc3.min.js +1 -1
  8. package/dist/dpzvc3.min.js.map +1 -1
  9. package/dist/styles/components/radioBox.css +1 -1
  10. package/dist/styles/components/rater.css +1 -0
  11. package/dist/styles/dpzvc3.css +1 -1
  12. package/dist/types/components/Indicator/types.d.ts +16 -0
  13. package/dist/types/components/Indicator/types.d.ts.map +1 -0
  14. package/dist/types/components/Prompt/types.d.ts +37 -0
  15. package/dist/types/components/Prompt/types.d.ts.map +1 -0
  16. package/dist/types/components/Text/index.d.ts +12 -0
  17. package/dist/types/components/Text/index.d.ts.map +1 -0
  18. package/dist/types/components/Text/textBar.d.ts +84 -0
  19. package/dist/types/components/Text/textBar.d.ts.map +1 -0
  20. package/dist/types/components/Text/types.d.ts +13 -0
  21. package/dist/types/components/Text/types.d.ts.map +1 -0
  22. package/dist/types/components/actionSheet/actionSheet.d.ts +42 -0
  23. package/dist/types/components/actionSheet/actionSheet.d.ts.map +1 -0
  24. package/dist/types/components/actionSheet/index.d.ts +7 -0
  25. package/dist/types/components/actionSheet/index.d.ts.map +1 -0
  26. package/dist/types/components/actionSheet/types.d.ts +11 -0
  27. package/dist/types/components/actionSheet/types.d.ts.map +1 -0
  28. package/dist/types/components/badge/badge.d.ts +51 -0
  29. package/dist/types/components/badge/badge.d.ts.map +1 -0
  30. package/dist/types/components/badge/index.d.ts +12 -0
  31. package/dist/types/components/badge/index.d.ts.map +1 -0
  32. package/dist/types/components/badge/types.d.ts +8 -0
  33. package/dist/types/components/badge/types.d.ts.map +1 -0
  34. package/dist/types/components/button/button.d.ts +103 -0
  35. package/dist/types/components/button/button.d.ts.map +1 -0
  36. package/dist/types/components/button/index.d.ts +12 -0
  37. package/dist/types/components/button/index.d.ts.map +1 -0
  38. package/dist/types/components/button/types.d.ts +13 -0
  39. package/dist/types/components/button/types.d.ts.map +1 -0
  40. package/dist/types/components/card/card.d.ts +18 -0
  41. package/dist/types/components/card/card.d.ts.map +1 -0
  42. package/dist/types/components/card/index.d.ts +12 -0
  43. package/dist/types/components/card/index.d.ts.map +1 -0
  44. package/dist/types/components/card/types.d.ts +4 -0
  45. package/dist/types/components/card/types.d.ts.map +1 -0
  46. package/dist/types/components/cell/cell.d.ts +24 -0
  47. package/dist/types/components/cell/cell.d.ts.map +1 -0
  48. package/dist/types/components/cell/index.d.ts +12 -0
  49. package/dist/types/components/cell/index.d.ts.map +1 -0
  50. package/dist/types/components/cell/types.d.ts +8 -0
  51. package/dist/types/components/cell/types.d.ts.map +1 -0
  52. package/dist/types/components/cellSwipe/cellSwipe.d.ts +37 -0
  53. package/dist/types/components/cellSwipe/cellSwipe.d.ts.map +1 -0
  54. package/dist/types/components/cellSwipe/index.d.ts +12 -0
  55. package/dist/types/components/cellSwipe/index.d.ts.map +1 -0
  56. package/dist/types/components/cellSwipe/types.d.ts +15 -0
  57. package/dist/types/components/cellSwipe/types.d.ts.map +1 -0
  58. package/dist/types/components/checkBox/checkbox-group.d.ts +38 -0
  59. package/dist/types/components/checkBox/checkbox-group.d.ts.map +1 -0
  60. package/dist/types/components/checkBox/checkbox.d.ts +36 -0
  61. package/dist/types/components/checkBox/checkbox.d.ts.map +1 -0
  62. package/dist/types/components/checkBox/index.d.ts +14 -0
  63. package/dist/types/components/checkBox/index.d.ts.map +1 -0
  64. package/dist/types/components/checkBox/types.d.ts +22 -0
  65. package/dist/types/components/checkBox/types.d.ts.map +1 -0
  66. package/dist/types/components/header/header.d.ts +47 -0
  67. package/dist/types/components/header/header.d.ts.map +1 -0
  68. package/dist/types/components/header/index.d.ts +12 -0
  69. package/dist/types/components/header/index.d.ts.map +1 -0
  70. package/dist/types/components/header/types.d.ts +7 -0
  71. package/dist/types/components/header/types.d.ts.map +1 -0
  72. package/dist/types/components/loadMore/index.d.ts +12 -0
  73. package/dist/types/components/loadMore/index.d.ts.map +1 -0
  74. package/dist/types/components/loadMore/loadMore.d.ts +150 -0
  75. package/dist/types/components/loadMore/loadMore.d.ts.map +1 -0
  76. package/dist/types/components/loadMore/types.d.ts +23 -0
  77. package/dist/types/components/loadMore/types.d.ts.map +1 -0
  78. package/dist/types/components/message/types.d.ts +32 -0
  79. package/dist/types/components/message/types.d.ts.map +1 -0
  80. package/dist/types/components/modal/types.d.ts +33 -0
  81. package/dist/types/components/modal/types.d.ts.map +1 -0
  82. package/dist/types/components/number/Number.d.ts +77 -0
  83. package/dist/types/components/number/Number.d.ts.map +1 -0
  84. package/dist/types/components/number/index.d.ts +9 -0
  85. package/dist/types/components/number/index.d.ts.map +1 -0
  86. package/dist/types/components/number/types.d.ts +12 -0
  87. package/dist/types/components/number/types.d.ts.map +1 -0
  88. package/dist/types/components/picker/index.d.ts +12 -0
  89. package/dist/types/components/picker/index.d.ts.map +1 -0
  90. package/dist/types/components/picker/picker.d.ts +237 -0
  91. package/dist/types/components/picker/picker.d.ts.map +1 -0
  92. package/dist/types/components/picker/types.d.ts +17 -0
  93. package/dist/types/components/picker/types.d.ts.map +1 -0
  94. package/dist/types/components/popup/index.d.ts +12 -0
  95. package/dist/types/components/popup/index.d.ts.map +1 -0
  96. package/dist/types/components/popup/popup.d.ts +71 -0
  97. package/dist/types/components/popup/popup.d.ts.map +1 -0
  98. package/dist/types/components/popup/types.d.ts +10 -0
  99. package/dist/types/components/popup/types.d.ts.map +1 -0
  100. package/dist/types/components/progress/index.d.ts +12 -0
  101. package/dist/types/components/progress/index.d.ts.map +1 -0
  102. package/dist/types/components/progress/progress.d.ts +36 -0
  103. package/dist/types/components/progress/progress.d.ts.map +1 -0
  104. package/dist/types/components/progress/types.d.ts +9 -0
  105. package/dist/types/components/progress/types.d.ts.map +1 -0
  106. package/dist/types/components/radioBox/index.d.ts +14 -0
  107. package/dist/types/components/radioBox/index.d.ts.map +1 -0
  108. package/dist/types/components/radioBox/radiobox-group.d.ts +31 -0
  109. package/dist/types/components/radioBox/radiobox-group.d.ts.map +1 -0
  110. package/dist/types/components/radioBox/radiobox.d.ts +38 -0
  111. package/dist/types/components/radioBox/radiobox.d.ts.map +1 -0
  112. package/dist/types/components/radioBox/types.d.ts +18 -0
  113. package/dist/types/components/radioBox/types.d.ts.map +1 -0
  114. package/dist/types/components/rater/index.d.ts +12 -0
  115. package/dist/types/components/rater/index.d.ts.map +1 -0
  116. package/dist/types/components/rater/raters.d.ts +83 -0
  117. package/dist/types/components/rater/raters.d.ts.map +1 -0
  118. package/dist/types/components/rater/types.d.ts +11 -0
  119. package/dist/types/components/rater/types.d.ts.map +1 -0
  120. package/dist/types/components/slideBar/index.d.ts +12 -0
  121. package/dist/types/components/slideBar/index.d.ts.map +1 -0
  122. package/dist/types/components/slideBar/slideBar.d.ts +46 -0
  123. package/dist/types/components/slideBar/slideBar.d.ts.map +1 -0
  124. package/dist/types/components/slideBar/types.d.ts +19 -0
  125. package/dist/types/components/slideBar/types.d.ts.map +1 -0
  126. package/dist/types/components/spinner/index.d.ts +12 -0
  127. package/dist/types/components/spinner/index.d.ts.map +1 -0
  128. package/dist/types/components/spinner/spinner.d.ts +36 -0
  129. package/dist/types/components/spinner/spinner.d.ts.map +1 -0
  130. package/dist/types/components/spinner/types.d.ts +7 -0
  131. package/dist/types/components/spinner/types.d.ts.map +1 -0
  132. package/dist/types/components/swipe/index.d.ts +12 -0
  133. package/dist/types/components/swipe/index.d.ts.map +1 -0
  134. package/dist/types/components/swipe/swipe.d.ts +99 -0
  135. package/dist/types/components/swipe/swipe.d.ts.map +1 -0
  136. package/dist/types/components/swipe/types.d.ts +20 -0
  137. package/dist/types/components/swipe/types.d.ts.map +1 -0
  138. package/dist/types/components/switchbar/index.d.ts +12 -0
  139. package/dist/types/components/switchbar/index.d.ts.map +1 -0
  140. package/dist/types/components/switchbar/switchbar.d.ts +38 -0
  141. package/dist/types/components/switchbar/switchbar.d.ts.map +1 -0
  142. package/dist/types/components/switchbar/types.d.ts +6 -0
  143. package/dist/types/components/switchbar/types.d.ts.map +1 -0
  144. package/dist/types/components/tab/index.d.ts +12 -0
  145. package/dist/types/components/tab/index.d.ts.map +1 -0
  146. package/dist/types/components/tab/tab.d.ts +54 -0
  147. package/dist/types/components/tab/tab.d.ts.map +1 -0
  148. package/dist/types/components/tab/types.d.ts +14 -0
  149. package/dist/types/components/tab/types.d.ts.map +1 -0
  150. package/dist/types/components/toTop/index.d.ts +12 -0
  151. package/dist/types/components/toTop/index.d.ts.map +1 -0
  152. package/dist/types/components/toTop/toTop.d.ts +18 -0
  153. package/dist/types/components/toTop/toTop.d.ts.map +1 -0
  154. package/dist/types/components/toTop/types.d.ts +7 -0
  155. package/dist/types/components/toTop/types.d.ts.map +1 -0
  156. package/dist/types/components/upload/index.d.ts +12 -0
  157. package/dist/types/components/upload/index.d.ts.map +1 -0
  158. package/dist/types/components/upload/types.d.ts +9 -0
  159. package/dist/types/components/upload/types.d.ts.map +1 -0
  160. package/dist/types/components/upload/upload.d.ts +19 -0
  161. package/dist/types/components/upload/upload.d.ts.map +1 -0
  162. package/dist/types/index.d.ts +157 -0
  163. package/dist/types/lib/MegaPixImage.d.ts +9 -0
  164. package/dist/types/lib/MegaPixImage.d.ts.map +1 -0
  165. package/dist/types/lib/lib.d.ts +3 -0
  166. package/dist/types/lib/lib.d.ts.map +1 -0
  167. package/dist/types/utils/util.d.ts +31 -0
  168. package/dist/types/utils/util.d.ts.map +1 -0
  169. package/dist-prod/91.05c8ec5277a15f939b0f.js +3 -0
  170. package/dist-prod/{91.e2fdec39667928bf57b9.js.map → 91.05c8ec5277a15f939b0f.js.map} +1 -1
  171. package/dist-prod/actionsheet.0d67b6b08a62cf9360be.chunk.js +2 -0
  172. package/dist-prod/actionsheet.0d67b6b08a62cf9360be.chunk.js.map +1 -0
  173. package/dist-prod/badge.16ab5c05734fe1530701.chunk.js +2 -0
  174. package/dist-prod/badge.16ab5c05734fe1530701.chunk.js.map +1 -0
  175. package/dist-prod/button.39ac33aa7aaccc24b6a1.chunk.js +2 -0
  176. package/dist-prod/button.39ac33aa7aaccc24b6a1.chunk.js.map +1 -0
  177. package/dist-prod/card.16ed7eafe471bcc60ec6.chunk.js +2 -0
  178. package/dist-prod/card.16ed7eafe471bcc60ec6.chunk.js.map +1 -0
  179. package/dist-prod/cell.70ff74fba57e27df7f5a.chunk.js +2 -0
  180. package/dist-prod/cell.70ff74fba57e27df7f5a.chunk.js.map +1 -0
  181. package/dist-prod/cellswipe.f3ec62abd60729d8bc5a.chunk.js +2 -0
  182. package/dist-prod/cellswipe.f3ec62abd60729d8bc5a.chunk.js.map +1 -0
  183. package/dist-prod/checkbox.05c63a947ac98293c9f2.chunk.js +2 -0
  184. package/dist-prod/checkbox.05c63a947ac98293c9f2.chunk.js.map +1 -0
  185. package/dist-prod/guide.24f1968a568f20fbc84b.chunk.js +2 -0
  186. package/dist-prod/guide.24f1968a568f20fbc84b.chunk.js.map +1 -0
  187. package/dist-prod/header.eb10433dd892738ee95a.chunk.js +2 -0
  188. package/dist-prod/header.eb10433dd892738ee95a.chunk.js.map +1 -0
  189. package/dist-prod/index.html +1 -1
  190. package/dist-prod/indicator.0c09e3f238791cb478e0.chunk.js +2 -0
  191. package/dist-prod/indicator.0c09e3f238791cb478e0.chunk.js.map +1 -0
  192. package/dist-prod/loadmore.9bad88767cc43603f473.chunk.js +2 -0
  193. package/dist-prod/loadmore.9bad88767cc43603f473.chunk.js.map +1 -0
  194. package/dist-prod/main.662ad15361e7f3d20234.js +2 -0
  195. package/dist-prod/main.662ad15361e7f3d20234.js.map +1 -0
  196. package/dist-prod/message.de17fea3de4daa70bab4.chunk.js +2 -0
  197. package/dist-prod/message.de17fea3de4daa70bab4.chunk.js.map +1 -0
  198. package/dist-prod/modal.f9ec857acd9fbdf53f3b.chunk.js +2 -0
  199. package/dist-prod/modal.f9ec857acd9fbdf53f3b.chunk.js.map +1 -0
  200. package/dist-prod/picker.bca059ef59e3c42a401f.chunk.js +2 -0
  201. package/dist-prod/picker.bca059ef59e3c42a401f.chunk.js.map +1 -0
  202. package/dist-prod/popup.538422c7e188363a468d.chunk.js +2 -0
  203. package/dist-prod/popup.538422c7e188363a468d.chunk.js.map +1 -0
  204. package/dist-prod/progress.240de4b633002f573030.chunk.js +2 -0
  205. package/dist-prod/progress.240de4b633002f573030.chunk.js.map +1 -0
  206. package/dist-prod/prompt.dcda0b05ea02d59106b7.chunk.js +2 -0
  207. package/dist-prod/prompt.dcda0b05ea02d59106b7.chunk.js.map +1 -0
  208. package/dist-prod/radiobox.7c10f77aba5ae04b2e5c.chunk.js +2 -0
  209. package/dist-prod/radiobox.7c10f77aba5ae04b2e5c.chunk.js.map +1 -0
  210. package/dist-prod/rater.d46ae462c598c458e5a8.chunk.js +2 -0
  211. package/dist-prod/rater.d46ae462c598c458e5a8.chunk.js.map +1 -0
  212. package/dist-prod/slidebar.833e75b9eb0abef92453.chunk.js +2 -0
  213. package/dist-prod/slidebar.833e75b9eb0abef92453.chunk.js.map +1 -0
  214. package/dist-prod/spinner.6afb4f84cc29f0e2f8eb.chunk.js +2 -0
  215. package/dist-prod/spinner.6afb4f84cc29f0e2f8eb.chunk.js.map +1 -0
  216. package/dist-prod/swipe.3fe6ee6638765ec52d94.chunk.js +2 -0
  217. package/dist-prod/swipe.3fe6ee6638765ec52d94.chunk.js.map +1 -0
  218. package/dist-prod/switchbar.f24c76a03120f1bd961a.chunk.js +2 -0
  219. package/dist-prod/switchbar.f24c76a03120f1bd961a.chunk.js.map +1 -0
  220. package/dist-prod/tab.29f19483f699b7811259.chunk.js +2 -0
  221. package/dist-prod/tab.29f19483f699b7811259.chunk.js.map +1 -0
  222. package/dist-prod/text.a6e4251f772d23843e2b.chunk.js +2 -0
  223. package/dist-prod/text.a6e4251f772d23843e2b.chunk.js.map +1 -0
  224. package/dist-prod/totop.713c5ab7f7dbcffbf2a3.chunk.js +2 -0
  225. package/dist-prod/totop.713c5ab7f7dbcffbf2a3.chunk.js.map +1 -0
  226. package/dist-prod/upload.0638581e551ed9afaba2.chunk.js +2 -0
  227. package/dist-prod/upload.0638581e551ed9afaba2.chunk.js.map +1 -0
  228. package/package.json +12 -3
  229. package/src/components/Indicator/Indicator.tsx +67 -0
  230. package/src/components/Indicator/index.ts +111 -0
  231. package/src/components/Indicator/types.ts +15 -0
  232. package/src/components/Text/index.ts +14 -0
  233. package/src/components/Text/textBar.tsx +104 -0
  234. package/src/components/Text/types.ts +13 -0
  235. package/src/components/actionSheet/actionSheet.d.ts +16 -0
  236. package/src/components/actionSheet/actionSheet.tsx +86 -0
  237. package/src/components/{action-sheet/index.js → actionSheet/index.ts} +1 -0
  238. package/src/components/actionSheet/types.ts +10 -0
  239. package/src/components/badge/{badge.vue → badge.tsx} +31 -31
  240. package/src/components/badge/index.ts +12 -0
  241. package/src/components/badge/types.ts +8 -0
  242. package/src/components/button/{button.vue → button.tsx} +46 -52
  243. package/src/components/button/index.ts +13 -0
  244. package/src/components/button/types.ts +13 -0
  245. package/src/components/card/card.d.ts +16 -0
  246. package/src/components/card/card.tsx +38 -0
  247. package/src/components/card/index.ts +12 -0
  248. package/src/components/card/types.ts +3 -0
  249. package/src/components/cell/cell.tsx +89 -0
  250. package/src/components/cell/index.ts +12 -0
  251. package/src/components/cell/types.ts +8 -0
  252. package/src/components/cellSwipe/cellSwipe.tsx +188 -0
  253. package/src/components/cellSwipe/index.ts +13 -0
  254. package/src/components/cellSwipe/types.ts +17 -0
  255. package/src/components/checkBox/checkbox-group.tsx +75 -0
  256. package/src/components/checkBox/checkbox.tsx +107 -0
  257. package/src/components/checkBox/index.ts +29 -0
  258. package/src/components/checkBox/types.ts +32 -0
  259. package/src/components/header/header.tsx +119 -0
  260. package/src/components/header/index.ts +13 -0
  261. package/src/components/header/types.ts +7 -0
  262. package/src/components/loadMore/index.ts +14 -0
  263. package/src/components/loadMore/loadMore.tsx +265 -0
  264. package/src/components/loadMore/types.ts +26 -0
  265. package/src/components/message/confirm.ts +104 -0
  266. package/src/components/message/{index.js → index.ts} +20 -18
  267. package/src/components/message/message.tsx +100 -0
  268. package/src/components/message/messageGroup.tsx +59 -0
  269. package/src/components/message/types.ts +48 -0
  270. package/src/components/modal/{confirm.js → confirm.ts} +8 -7
  271. package/src/components/modal/index.ts +68 -0
  272. package/src/components/modal/modal.tsx +248 -0
  273. package/src/components/modal/types.ts +51 -0
  274. package/src/components/number/Number.tsx +143 -0
  275. package/src/components/number/index.ts +10 -0
  276. package/src/components/number/types.ts +13 -0
  277. package/src/components/picker/index.ts +12 -0
  278. package/src/components/picker/picker.tsx +112 -0
  279. package/src/components/picker/types.ts +17 -0
  280. package/src/components/popup/index.ts +12 -0
  281. package/src/components/popup/popup.d.ts +16 -0
  282. package/src/components/popup/popup.tsx +68 -0
  283. package/src/components/popup/types.ts +9 -0
  284. package/src/components/progress/index.ts +12 -0
  285. package/src/components/progress/progress.tsx +81 -0
  286. package/src/components/progress/types.ts +9 -0
  287. package/src/components/prompt/{confirm.js → confirm.ts} +27 -14
  288. package/src/components/prompt/index.ts +50 -0
  289. package/src/components/prompt/prompt.tsx +161 -0
  290. package/src/components/prompt/types.ts +45 -0
  291. package/src/components/radioBox/index.ts +34 -0
  292. package/src/components/radioBox/radiobox-group.tsx +66 -0
  293. package/src/components/radioBox/radiobox.tsx +115 -0
  294. package/src/components/radioBox/types.ts +24 -0
  295. package/src/components/rater/index.ts +12 -0
  296. package/src/components/rater/rater.d.ts +16 -0
  297. package/src/components/rater/raters.tsx +101 -0
  298. package/src/components/rater/types.ts +10 -0
  299. package/src/components/slideBar/index.ts +13 -0
  300. package/src/components/slideBar/slideBar.tsx +288 -0
  301. package/src/components/slideBar/types.ts +20 -0
  302. package/src/components/spinner/index.ts +13 -0
  303. package/src/components/spinner/spinner.tsx +85 -0
  304. package/src/components/spinner/types.ts +20 -0
  305. package/src/components/swipe/index.ts +13 -0
  306. package/src/components/swipe/swipe.tsx +292 -0
  307. package/src/components/swipe/types.ts +21 -0
  308. package/src/components/switchbar/index.ts +13 -0
  309. package/src/components/switchbar/switchbar.tsx +58 -0
  310. package/src/components/switchbar/types.ts +6 -0
  311. package/src/components/tab/index.ts +12 -0
  312. package/src/components/tab/tab.tsx +71 -0
  313. package/src/components/tab/types.ts +15 -0
  314. package/src/components/toTop/index.ts +13 -0
  315. package/src/components/toTop/toTop.tsx +54 -0
  316. package/src/components/toTop/types.ts +7 -0
  317. package/src/components/upload/index.ts +13 -0
  318. package/src/components/upload/types.ts +9 -0
  319. package/src/components/upload/upload.tsx +180 -0
  320. package/src/index.ts +175 -0
  321. package/src/lib/MegaPixImage.js +1 -0
  322. package/src/{main.js → main.ts} +4 -2
  323. package/src/shims-vue.d.ts +37 -0
  324. package/src/styles/components/radioBox.less +5 -1
  325. package/src/styles/components/rater.less +16 -0
  326. package/src/styles/index.less +1 -0
  327. package/src/types/index.d.ts +157 -0
  328. package/src/types/js-shims.d.ts +36 -0
  329. package/src/utils/test.ts +2 -0
  330. package/src/utils/util.ts +168 -0
  331. package/src/utils/{util.js → util1.js} +2 -2
  332. package/src/views/ActionSheet.vue +7 -7
  333. package/src/views/Badge/Badge.less +12 -0
  334. package/src/views/Badge/Badge.tsx +23 -0
  335. package/src/views/Badge.vue +4 -2
  336. package/src/views/Button.vue +17 -17
  337. package/src/views/Card.vue +2 -1
  338. package/src/views/Cell.vue +6 -5
  339. package/src/views/CellSwipe.vue +51 -39
  340. package/src/views/CheckBox.vue +7 -6
  341. package/src/views/Header.vue +8 -7
  342. package/src/views/Indicator.vue +15 -15
  343. package/src/views/LoadMore.vue +13 -10
  344. package/src/views/Message.vue +14 -14
  345. package/src/views/Modal.vue +10 -10
  346. package/src/views/Picker.vue +19 -17
  347. package/src/views/Popup.vue +47 -41
  348. package/src/views/Progress.vue +8 -6
  349. package/src/views/Prompt.vue +5 -5
  350. package/src/views/RadioBox.vue +6 -4
  351. package/src/views/Rater.vue +7 -3
  352. package/src/views/SlideBar.vue +9 -5
  353. package/src/views/Spinner.vue +17 -5
  354. package/src/views/Swipe.vue +5 -3
  355. package/src/views/SwitchBar.vue +6 -4
  356. package/src/views/Tab.vue +8 -6
  357. package/src/views/Text.vue +14 -10
  358. package/src/views/ToTop.vue +19 -5
  359. package/src/views/Upload.vue +8 -4
  360. package/tsconfig.build.json +30 -0
  361. package/tsconfig.json +39 -0
  362. package/webpack.base.config.js +22 -2
  363. package/webpack.dev.config.js +2 -1
  364. package/webpack.dist.dev.config.js +3 -2
  365. package/webpack.dist.prod.config.js +3 -2
  366. package/webpack.prod.config.js +2 -1
  367. package/dist-prod/91.e2fdec39667928bf57b9.js +0 -3
  368. package/dist-prod/actionsheet.e2f7c32d0120f5147a4f.chunk.js +0 -2
  369. package/dist-prod/actionsheet.e2f7c32d0120f5147a4f.chunk.js.map +0 -1
  370. package/dist-prod/badge.6038c4ccc54ffb56a645.chunk.js +0 -2
  371. package/dist-prod/badge.6038c4ccc54ffb56a645.chunk.js.map +0 -1
  372. package/dist-prod/button.28b491339fbba29c3f16.chunk.js +0 -2
  373. package/dist-prod/button.28b491339fbba29c3f16.chunk.js.map +0 -1
  374. package/dist-prod/card.3ad847f07bebc1391125.chunk.js +0 -2
  375. package/dist-prod/card.3ad847f07bebc1391125.chunk.js.map +0 -1
  376. package/dist-prod/cell.8920796a9ebd2d84bbd3.chunk.js +0 -2
  377. package/dist-prod/cell.8920796a9ebd2d84bbd3.chunk.js.map +0 -1
  378. package/dist-prod/cellswipe.04240414bed39e28e7b9.chunk.js +0 -2
  379. package/dist-prod/cellswipe.04240414bed39e28e7b9.chunk.js.map +0 -1
  380. package/dist-prod/checkbox.87403976981ee0f64f4a.chunk.js +0 -2
  381. package/dist-prod/checkbox.87403976981ee0f64f4a.chunk.js.map +0 -1
  382. package/dist-prod/guide.5195c74796a7a0e37f7b.chunk.js +0 -2
  383. package/dist-prod/guide.5195c74796a7a0e37f7b.chunk.js.map +0 -1
  384. package/dist-prod/header.e3cecc6d60f801c1c105.chunk.js +0 -2
  385. package/dist-prod/header.e3cecc6d60f801c1c105.chunk.js.map +0 -1
  386. package/dist-prod/indicator.6b0c7a91ca254c3586e8.chunk.js +0 -2
  387. package/dist-prod/indicator.6b0c7a91ca254c3586e8.chunk.js.map +0 -1
  388. package/dist-prod/loadmore.ba86c35311fc68ee215b.chunk.js +0 -2
  389. package/dist-prod/loadmore.ba86c35311fc68ee215b.chunk.js.map +0 -1
  390. package/dist-prod/main.717f5c8b51911571fb82.js +0 -2
  391. package/dist-prod/main.717f5c8b51911571fb82.js.map +0 -1
  392. package/dist-prod/message.e57fa263a214006f7191.chunk.js +0 -2
  393. package/dist-prod/message.e57fa263a214006f7191.chunk.js.map +0 -1
  394. package/dist-prod/modal.1172c8ba7d90503fc8e8.chunk.js +0 -2
  395. package/dist-prod/modal.1172c8ba7d90503fc8e8.chunk.js.map +0 -1
  396. package/dist-prod/picker.4ff114161c5c3f8df57a.chunk.js +0 -2
  397. package/dist-prod/picker.4ff114161c5c3f8df57a.chunk.js.map +0 -1
  398. package/dist-prod/popup.8f92c027932e4d47fa59.chunk.js +0 -2
  399. package/dist-prod/popup.8f92c027932e4d47fa59.chunk.js.map +0 -1
  400. package/dist-prod/progress.1e0d785044aecadc5615.chunk.js +0 -2
  401. package/dist-prod/progress.1e0d785044aecadc5615.chunk.js.map +0 -1
  402. package/dist-prod/prompt.c2b442c3dd0e6d8319bc.chunk.js +0 -2
  403. package/dist-prod/prompt.c2b442c3dd0e6d8319bc.chunk.js.map +0 -1
  404. package/dist-prod/radiobox.479703c69b75d473e85d.chunk.js +0 -2
  405. package/dist-prod/radiobox.479703c69b75d473e85d.chunk.js.map +0 -1
  406. package/dist-prod/rater.939e0e7e770728f684c3.chunk.js +0 -2
  407. package/dist-prod/rater.939e0e7e770728f684c3.chunk.js.map +0 -1
  408. package/dist-prod/slidebar.d7ad5de495550613661f.chunk.js +0 -2
  409. package/dist-prod/slidebar.d7ad5de495550613661f.chunk.js.map +0 -1
  410. package/dist-prod/spinner.f20e3bd8cec27d26afe0.chunk.js +0 -2
  411. package/dist-prod/spinner.f20e3bd8cec27d26afe0.chunk.js.map +0 -1
  412. package/dist-prod/swipe.75b7d741be73c0064982.chunk.js +0 -2
  413. package/dist-prod/swipe.75b7d741be73c0064982.chunk.js.map +0 -1
  414. package/dist-prod/switchbar.56d03d96c275ff4c65a1.chunk.js +0 -2
  415. package/dist-prod/switchbar.56d03d96c275ff4c65a1.chunk.js.map +0 -1
  416. package/dist-prod/tab.4c391211c41b7d12b585.chunk.js +0 -2
  417. package/dist-prod/tab.4c391211c41b7d12b585.chunk.js.map +0 -1
  418. package/dist-prod/text.ee2804ba87e6a460aa7d.chunk.js +0 -2
  419. package/dist-prod/text.ee2804ba87e6a460aa7d.chunk.js.map +0 -1
  420. package/dist-prod/totop.c6f9dce152bb6abe5cb2.chunk.js +0 -2
  421. package/dist-prod/totop.c6f9dce152bb6abe5cb2.chunk.js.map +0 -1
  422. package/dist-prod/upload.a9b44c8a72fe70980a1e.chunk.js +0 -2
  423. package/dist-prod/upload.a9b44c8a72fe70980a1e.chunk.js.map +0 -1
  424. package/src/components/Indicator/index.js +0 -86
  425. package/src/components/Text/Number.vue +0 -167
  426. package/src/components/Text/index.js +0 -7
  427. package/src/components/Text/textBar.vue +0 -122
  428. package/src/components/action-sheet/actionSheet.vue +0 -98
  429. package/src/components/badge/index.js +0 -5
  430. package/src/components/button/index.js +0 -5
  431. package/src/components/card/card.vue +0 -49
  432. package/src/components/card/index.js +0 -5
  433. package/src/components/cell/cell.vue +0 -113
  434. package/src/components/cell/index.js +0 -5
  435. package/src/components/cell-swipe/cell-swipe.vue +0 -168
  436. package/src/components/cell-swipe/index.js +0 -5
  437. package/src/components/checkBox/checkbox-group.vue +0 -74
  438. package/src/components/checkBox/checkbox.vue +0 -117
  439. package/src/components/checkBox/index.js +0 -8
  440. package/src/components/header/header.vue +0 -131
  441. package/src/components/header/index.js +0 -5
  442. package/src/components/loadMore/index.js +0 -5
  443. package/src/components/loadMore/loadmore.vue +0 -258
  444. package/src/components/message/confirm.js +0 -60
  445. package/src/components/message/message.vue +0 -137
  446. package/src/components/message/messageGroup.vue +0 -82
  447. package/src/components/modal/index.js +0 -52
  448. package/src/components/modal/modal.vue +0 -138
  449. package/src/components/picker/index.js +0 -5
  450. package/src/components/picker/picker.vue +0 -111
  451. package/src/components/popup/index.js +0 -5
  452. package/src/components/popup/popup.vue +0 -91
  453. package/src/components/progress/index.js +0 -5
  454. package/src/components/progress/progress.vue +0 -86
  455. package/src/components/prompt/index.js +0 -53
  456. package/src/components/prompt/prompt.vue +0 -125
  457. package/src/components/radioBox/index.js +0 -8
  458. package/src/components/rater/index.js +0 -5
  459. package/src/components/rater/rater.vue +0 -118
  460. package/src/components/slideBar/index.js +0 -6
  461. package/src/components/slideBar/slideBar.vue +0 -225
  462. package/src/components/spinner/index.js +0 -5
  463. package/src/components/spinner/spinner.vue +0 -78
  464. package/src/components/swipe/index.js +0 -5
  465. package/src/components/swipe/swipe.vue +0 -289
  466. package/src/components/switchbar/index.js +0 -5
  467. package/src/components/switchbar/switchbar.vue +0 -79
  468. package/src/components/tab/index.js +0 -6
  469. package/src/components/tab/tab.vue +0 -89
  470. package/src/components/toTop/index.js +0 -5
  471. package/src/components/toTop/topTop.vue +0 -78
  472. package/src/components/upload/index.js +0 -5
  473. package/src/components/upload/upload.vue +0 -166
  474. package/src/index.js +0 -149
  475. /package/dist-prod/{91.e2fdec39667928bf57b9.js.LICENSE.txt → 91.05c8ec5277a15f939b0f.js.LICENSE.txt} +0 -0
  476. /package/src/components/radioBox/{radiobox-group.vue → radiobox-group1.vue} +0 -0
  477. /package/src/components/radioBox/{radiobox.vue → radiobox1.vue} +0 -0
  478. /package/src/{router.js → router.ts} +0 -0
@@ -0,0 +1,115 @@
1
+ // src/components/RadioBox/RadioBox.tsx
2
+ import {
3
+ defineComponent,
4
+ inject,
5
+ computed,
6
+ ref,
7
+ onMounted
8
+ } from 'vue'
9
+ import type { PropType } from 'vue'
10
+ import type {
11
+ RadioBoxProps,
12
+ RadioGroupProvide,
13
+ } from './types'
14
+ export type { RadioBoxProps }
15
+ const prefixCls = 'dpzvc3-radiobox'
16
+ const radioGroupKey = 'radioBoxGroup'
17
+
18
+ export default defineComponent({
19
+ name: 'RadioBox',
20
+
21
+ props: {
22
+ label: {
23
+ type: [String, Number] as PropType<RadioBoxProps['label']>,
24
+ required: true
25
+ },
26
+ modelValue: {
27
+ type: Boolean,
28
+ default: false
29
+ },
30
+ disable: {
31
+ type: Boolean,
32
+ default: false
33
+ }
34
+ },
35
+
36
+ emits: ['update:modelValue', 'on-change'],
37
+
38
+ setup (props, { emit, slots }) {
39
+ const slotEl = ref<HTMLElement | null>(null)
40
+ const show = ref(true)
41
+
42
+ /** 注入 RadioGroup(可选) */
43
+ const group = inject<RadioGroupProvide | null>(
44
+ radioGroupKey,
45
+ null
46
+ )
47
+
48
+ /** 是否选中 */
49
+ const isChecked = computed<boolean>(() => {
50
+ if (group) {
51
+ return group.currentValue.value === props.label
52
+ }
53
+ return !!props.modelValue
54
+ })
55
+
56
+ /** classes */
57
+ const classes = computed(() => [prefixCls])
58
+
59
+ const wrapperClasses = computed(() => [
60
+ `${prefixCls}-wrapper`,
61
+ {
62
+ [`${prefixCls}-checked`]: isChecked.value,
63
+ [`${prefixCls}-disable`]: props.disable
64
+ }
65
+ ])
66
+
67
+ const innerClasses = computed(() => [`${prefixCls}-inner`])
68
+ const inputClass = computed(() => [`${prefixCls}-input`])
69
+
70
+ /** change */
71
+ const handleChange = (e: Event) => {
72
+ if (props.disable) return
73
+
74
+ const checked = (e.target as HTMLInputElement).checked
75
+
76
+ if (group) {
77
+ group.change(props.label)
78
+ } else {
79
+ emit('update:modelValue', checked)
80
+ emit('on-change', checked)
81
+ }
82
+ }
83
+
84
+ /** 判断 slot 是否为空 */
85
+ onMounted(() => {
86
+ if (!group) {
87
+ if (slotEl.value && !slotEl.value.innerHTML) {
88
+ show.value = false
89
+ }
90
+ }
91
+ })
92
+
93
+ return () => (
94
+ <label class={classes.value}>
95
+ <span class={wrapperClasses.value}>
96
+ <span class={innerClasses.value}>
97
+ <input
98
+ type="radio"
99
+ disabled={props.disable}
100
+ checked={isChecked.value}
101
+ class={inputClass.value}
102
+ onChange={handleChange}
103
+ />
104
+ </span>
105
+ </span>
106
+
107
+ {show.value && (
108
+ slots.default
109
+ ? slots.default()
110
+ : <span ref={slotEl}>{props.label}</span>
111
+ )}
112
+ </label>
113
+ )
114
+ }
115
+ })
@@ -0,0 +1,24 @@
1
+ // src/components/radio-group/types.ts
2
+ import type { Ref } from 'vue'
3
+
4
+ type RadioValue = string | number | boolean
5
+
6
+ export interface RadioGroupProps {
7
+ modelValue?: RadioValue
8
+ vertical?: boolean
9
+ }
10
+
11
+ export interface RadioGroupProvide {
12
+ currentValue: Ref<RadioValue>
13
+ change: (val: RadioValue) => void
14
+ }
15
+
16
+
17
+ type RadioBoxValue = string | number
18
+
19
+
20
+ export interface RadioBoxProps {
21
+ label: RadioBoxValue
22
+ modelValue?: boolean
23
+ disable?: boolean
24
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Created by admin on 2025/10/31.
3
+ */
4
+ import type { App } from 'vue'
5
+ import Rater from './raters'
6
+ Rater.install = (app: App): void => {
7
+ app.component('Rater', Rater); // 注册全局组件
8
+ }
9
+ type IWithInstall<T> = T & { install(app: App): void };
10
+ const _Rater=Rater as IWithInstall<typeof Rater>;
11
+ export default _Rater
12
+ export type { RaterProps } from './types'
@@ -0,0 +1,16 @@
1
+ // src/components/badge/badge.d.ts
2
+
3
+ import type { App } from 'vue'
4
+ import type { RaterProps } from './types' // 引入同级 types.ts 中的 BadgeProps
5
+
6
+ /** Badge 组件实例类型,带 install 方法 */
7
+ declare const Rater: {
8
+ /** Vue 组件本身 */
9
+ new (): any
10
+ /** props 类型引用 */
11
+ __props?: RaterProps
12
+ /** install 方法,用于全量注册 */
13
+ install(app: App): void
14
+ }
15
+
16
+ export default ActionSheet
@@ -0,0 +1,101 @@
1
+ // src/components/rater/rater.tsx
2
+ // src/components/rater/rater.tsx
3
+
4
+
5
+ import { defineComponent, ref, watch, computed, PropType } from 'vue'
6
+ import type { RaterProps } from './types'
7
+ export type { RaterProps }
8
+ const prefixCls = 'dpzvc3-rater'
9
+
10
+ export default defineComponent({
11
+ name: 'Dpzvc3Rater',
12
+
13
+ props: {
14
+ modelValue: { type: Number as PropType<number>, default: -1 },
15
+ distance: { type: Number as PropType<number>, default: 10 },
16
+ max: { type: Number as PropType<number>, default: 5 },
17
+ size: { type: Number as PropType<number>, default: 18 },
18
+ star: { type: String as PropType<string>, default: '★' },
19
+ defaultColor: { type: String as PropType<string>, default: '#ccc' },
20
+ activeColor: { type: String as PropType<string>, default: '#f5a623' },
21
+ disabled: { type: Boolean as PropType<boolean>, default: false }
22
+ },
23
+
24
+ emits: ['update:modelValue'],
25
+
26
+ setup(props, { emit }) {
27
+ const currentValue = ref(props.modelValue)
28
+
29
+ watch(() => props.modelValue, v => {
30
+ currentValue.value = v
31
+ })
32
+
33
+ const classes = computed(() => [prefixCls])
34
+ const starClass = `${prefixCls}-star`
35
+
36
+ /** ⭐️ 关键:提前算好 stars 数组 */
37
+ const stars = computed(() => {
38
+ return Array.from({ length: props.max }).map((_, index) => {
39
+ const baseStyle: Record<string, string> = {
40
+ fontSize: `${props.size}px`,
41
+ marginRight: index + 1 < props.max ? `${props.distance}px` : '0px',
42
+ color: props.defaultColor
43
+ }
44
+
45
+ const activeStyle: Record<string, string> = {
46
+ fontSize: `${props.size}px`,
47
+ marginRight: baseStyle.marginRight
48
+ }
49
+
50
+ const [int, decimal] = String(currentValue.value).split('.')
51
+
52
+ if (index + 1 <= Number(int)) {
53
+ activeStyle.color = props.activeColor
54
+ }
55
+
56
+ if (
57
+ decimal &&
58
+ Number(decimal) >= 5 &&
59
+ index + 1 === Number(int) + 1
60
+ ) {
61
+ activeStyle.width = '50%'
62
+ activeStyle.color = props.activeColor
63
+ }
64
+
65
+ return {
66
+ index,
67
+ baseStyle,
68
+ activeStyle
69
+ }
70
+ })
71
+ })
72
+
73
+ const onClickStar = (index: number) => {
74
+ if (props.disabled) return
75
+ const value = index + 1
76
+ currentValue.value = value
77
+ emit('update:modelValue', value)
78
+ }
79
+
80
+ /** ✅ render 里只“消费数据”,不计算 */
81
+ return () => (
82
+ <div class={classes.value}>
83
+ {stars.value.map(item => (
84
+ <span
85
+ key={item.index}
86
+ class={starClass}
87
+ style={item.baseStyle}
88
+ >
89
+ {props.star}
90
+ <span
91
+ style={item.activeStyle}
92
+ onClick={() => onClickStar(item.index)}
93
+ >
94
+ {props.star}
95
+ </span>
96
+ </span>
97
+ ))}
98
+ </div>
99
+ )
100
+ }
101
+ })
@@ -0,0 +1,10 @@
1
+ export type RaterProps = {
2
+ modelValue?: number
3
+ distance?: number
4
+ max?: number
5
+ size?: number
6
+ star?: string
7
+ defaultColor?: string
8
+ activeColor?: string
9
+ disabled?: boolean
10
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Created by admin on 2017/4/21.
3
+ */
4
+ import type { App } from 'vue'
5
+ import SlideBar from './slideBar'
6
+ SlideBar.install = (app: App): void => {
7
+ app.component('SlideBar', SlideBar); // 注册全局组件
8
+ }
9
+ type IWithInstall<T> = T & { install(app: App): void };
10
+ const _SlideBar=SlideBar as IWithInstall<typeof SlideBar>;
11
+ export default _SlideBar
12
+ // export default SlideBar
13
+ export type { SlideBarProps } from './types'
@@ -0,0 +1,288 @@
1
+ // src/components/slideBar/slideBar.tsx
2
+ import {
3
+ defineComponent,
4
+ ref,
5
+ computed,
6
+ onMounted,
7
+ onBeforeUnmount,
8
+ PropType
9
+ } from 'vue'
10
+ import type { SlideBarProps, SlideBarItem } from './types'
11
+
12
+ export type { SlideBarProps }
13
+
14
+ const prefixCls = 'dpzvc3-slideBar'
15
+
16
+ export default defineComponent({
17
+ name: 'SlideBar',
18
+
19
+ props: {
20
+ scrollHeight: {
21
+ type: [String, Number] as PropType<string | number>,
22
+ default: '30px'
23
+ },
24
+ height: {
25
+ type: [String, Number] as PropType<string | number>,
26
+ default: '100%'
27
+ },
28
+ styles: {
29
+ type: Object as PropType<Record<string, any>>,
30
+ default: () => ({})
31
+ },
32
+ childWidth: {
33
+ type: Number,
34
+ default: 70
35
+ },
36
+ scrollColor: {
37
+ type: String,
38
+ default: '#036eb8'
39
+ },
40
+ textAlign: {
41
+ type: String,
42
+ default: 'center'
43
+ },
44
+ flex: {
45
+ type: Boolean,
46
+ default: true
47
+ },
48
+ type: {
49
+ type: String as PropType<SlideBarProps['type']>,
50
+ default: 'normal'
51
+ },
52
+ list: {
53
+ type: Array as PropType<SlideBarItem[]>,
54
+ default: () => [{ name: '1' }, { name: '2' }, { name: '3' }, { name: '4' }]
55
+ },
56
+ index: {
57
+ type: Number,
58
+ default: 0
59
+ },
60
+ distanceIndex: {
61
+ type: Number,
62
+ default: 1.5
63
+ },
64
+ canDrag: {
65
+ type: Boolean,
66
+ default: true
67
+ }
68
+ },
69
+
70
+ emits: ['on-change'],
71
+
72
+ setup(props: SlideBarProps, { emit, slots }) {
73
+ const headerRef = ref<HTMLDivElement | null>(null)
74
+ const contentRef = ref<HTMLDivElement | null>(null)
75
+
76
+ const startIndex = ref(props.index ?? 0)
77
+ const clientWidth = ref(0)
78
+ const dragging = ref(false)
79
+ const distance = ref(0)
80
+ const startTranslateX = ref(0)
81
+ const startX = ref(0)
82
+
83
+ const items = ref(props.list ?? [])
84
+ const isFlex = ref(!!props.flex)
85
+ const fixed = ref(false)
86
+
87
+ const translateX = ref(0)
88
+
89
+ const getItemWidth = computed(() =>
90
+ isFlex.value
91
+ ? clientWidth.value / items.value.length
92
+ : props.childWidth!
93
+ )
94
+
95
+ const classes = computed(() => [prefixCls])
96
+
97
+ const headerClasses = computed(() => [
98
+ `${prefixCls}-header`,
99
+ { fixed: fixed.value }
100
+ ])
101
+
102
+ const wrapperClasses = computed(() => [
103
+ `${prefixCls}-wrapper`,
104
+ isFlex.value ? `${prefixCls}-flex` : `${prefixCls}-slide`,
105
+ {
106
+ normal: props.type === 'normal' && isFlex.value,
107
+ vertical: props.type === 'vertical' && isFlex.value
108
+ }
109
+ ])
110
+
111
+ const contentClasses = computed(() => [
112
+ `${prefixCls}-content`,
113
+ { [`${prefixCls}-dragging`]: dragging.value }
114
+ ])
115
+
116
+ const absoluteClass = computed(() => [`${prefixCls}-wrapper-absolute`])
117
+ const containerClass = computed(() => [`${prefixCls}-container`])
118
+
119
+ const getStyles = computed(() => ({ ...props.styles }))
120
+
121
+ const getContainerStyle = computed(() => ({
122
+ width: clientWidth.value * items.value.length + 'px',
123
+ transform: `translate3d(${translateX.value}px,0,0)`
124
+ }))
125
+
126
+ const getScrollStyle = computed(() => ({
127
+ width: getItemWidth.value + 'px',
128
+ transform: `translate3d(${startIndex.value * getItemWidth.value}px,0,0)`,
129
+ backgroundColor: props.scrollColor
130
+ }))
131
+
132
+ const maxIndex = computed(() => items.value.length - 1)
133
+
134
+ /* tab 切换 */
135
+ const changeBar = (index: number) => {
136
+ if (startIndex.value === index) return
137
+ startIndex.value = index
138
+ translateX.value = -index * clientWidth.value
139
+ emit('on-change', index)
140
+ }
141
+
142
+ /* 拖拽逻辑 */
143
+ const onTouchStart = (e: TouchEvent) => {
144
+ startTranslateX.value = translateX.value
145
+ distance.value = 0
146
+ startX.value = e.touches[0].clientX
147
+ dragging.value = true
148
+ }
149
+
150
+ const onTouchMove = (e: TouchEvent) => {
151
+ const currentX = e.touches[0].clientX
152
+ distance.value = props.distanceIndex
153
+ ? (currentX - startX.value) / props.distanceIndex
154
+ : currentX - startX.value
155
+ translateX.value = startTranslateX.value + distance.value
156
+ }
157
+
158
+ const onTouchEnd = () => {
159
+ if (distance.value < 0 && Math.abs(distance.value) > clientWidth.value / 2) {
160
+ slideLeft()
161
+ } else if (distance.value > 0 && Math.abs(distance.value) > clientWidth.value / 2) {
162
+ slideRight()
163
+ } else {
164
+ translateX.value = startTranslateX.value
165
+ }
166
+ dragging.value = false
167
+ }
168
+
169
+ const slideLeft = () => {
170
+ if (startIndex.value >= maxIndex.value) {
171
+ translateX.value = startTranslateX.value
172
+ } else {
173
+ startIndex.value++
174
+ translateX.value = startTranslateX.value - clientWidth.value
175
+ }
176
+ emit('on-change', startIndex.value)
177
+ }
178
+
179
+ const slideRight = () => {
180
+ if (startIndex.value <= 0) {
181
+ translateX.value = startTranslateX.value
182
+ } else {
183
+ startIndex.value--
184
+ translateX.value = startTranslateX.value + clientWidth.value
185
+ }
186
+ emit('on-change', startIndex.value)
187
+ }
188
+
189
+ /* 固定 header */
190
+ const onScroll = () => {
191
+ if (!headerRef.value) return
192
+ fixed.value = headerRef.value.getBoundingClientRect().top <= 0
193
+ }
194
+
195
+ const onResize = () => {
196
+ if (!headerRef.value) return
197
+ clientWidth.value = headerRef.value.clientWidth
198
+ }
199
+
200
+ onMounted(() => {
201
+ if (!headerRef.value) return
202
+ clientWidth.value = headerRef.value.clientWidth
203
+ translateX.value = -startIndex.value * clientWidth.value
204
+
205
+ window.addEventListener('resize', onResize)
206
+ window.addEventListener('scroll', onScroll)
207
+
208
+ if (props.canDrag && contentRef.value) {
209
+ contentRef.value.addEventListener('touchstart', onTouchStart)
210
+ contentRef.value.addEventListener('touchmove', onTouchMove)
211
+ contentRef.value.addEventListener('touchend', onTouchEnd)
212
+ }
213
+ })
214
+
215
+ onBeforeUnmount(() => {
216
+ window.removeEventListener('resize', onResize)
217
+ window.removeEventListener('scroll', onScroll)
218
+
219
+ if (props.canDrag && contentRef.value) {
220
+ contentRef.value.removeEventListener('touchstart', onTouchStart)
221
+ contentRef.value.removeEventListener('touchmove', onTouchMove)
222
+ contentRef.value.removeEventListener('touchend', onTouchEnd)
223
+ }
224
+ })
225
+
226
+ return () => (
227
+ <div class={classes.value} style={getStyles.value}>
228
+ {/* header */}
229
+ <div ref={headerRef} class={headerClasses.value}>
230
+ <div
231
+ class={wrapperClasses.value}
232
+ style={{
233
+ width: isFlex.value
234
+ ? 'auto'
235
+ : items.value.length * getItemWidth.value + 'px'
236
+ }}
237
+ >
238
+ {items.value.map((item, key) => (
239
+ <div
240
+ key={key}
241
+ class={[
242
+ 'dpzvc3-slideBar-child',
243
+ startIndex.value === key && 'active',
244
+ !isFlex.value && 'normalChild'
245
+ ]}
246
+ style={{
247
+ textAlign: props.textAlign,
248
+ width: getItemWidth.value + 'px',
249
+ height: props.scrollHeight,
250
+ lineHeight: String(props.scrollHeight)
251
+ }}
252
+ onClick={() => changeBar(key)}
253
+ >
254
+ {slots[`slide-bar-header-${key}`]
255
+ ? slots[`slide-bar-header-${key}`]!()
256
+ : <a class="content ellipse-fir">{item.name}</a>}
257
+ </div>
258
+ ))}
259
+ </div>
260
+
261
+ <div class={absoluteClass.value} style={getScrollStyle.value} />
262
+ </div>
263
+
264
+ {/* content */}
265
+ <div class={containerClass.value} style={{ height: props.height }}>
266
+ <div
267
+ ref={contentRef}
268
+ class={contentClasses.value}
269
+ style={getContainerStyle.value}
270
+ >
271
+ {items.value.map((_, index) => (
272
+ <div
273
+ key={index}
274
+ class={[
275
+ 'dpzvc3-slideBar-content-item',
276
+ startIndex.value === index && 'active'
277
+ ]}
278
+ style={{ width: clientWidth.value + 'px' }}
279
+ >
280
+ {slots[`slot-item-${index}`]?.()}
281
+ </div>
282
+ ))}
283
+ </div>
284
+ </div>
285
+ </div>
286
+ )
287
+ }
288
+ })
@@ -0,0 +1,20 @@
1
+ // src/components/slideBar/types.ts
2
+ export interface SlideBarItem {
3
+ name: string
4
+ [key: string]: any
5
+ }
6
+
7
+ export interface SlideBarProps {
8
+ scrollHeight?: string | number
9
+ height?: string | number
10
+ styles?: Record<string, any>
11
+ childWidth?: number
12
+ scrollColor?: string
13
+ textAlign?: string
14
+ flex?: boolean
15
+ type?: 'normal' | 'vertical'
16
+ list?: SlideBarItem[]
17
+ index?: number
18
+ distanceIndex?: number
19
+ canDrag?: boolean
20
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Created by admin on 2025/10/16.
3
+ */
4
+ import type { App } from 'vue'
5
+ import Spinner from './spinner'
6
+ Spinner.install = (app: App): void => {
7
+ app.component('Spinner', Spinner); // 注册全局组件
8
+ }
9
+ type IWithInstall<T> = T & { install(app: App): void };
10
+ const _Spinner=Spinner as IWithInstall<typeof Spinner>;
11
+ export default _Spinner
12
+ // export default Spinner
13
+ export type { SpinnerProps } from './types'
@@ -0,0 +1,85 @@
1
+ // src/components/spinner/spinner.tsx
2
+ import { defineComponent, computed, PropType } from 'vue'
3
+ // import type { DefineComponent } from 'vue'
4
+ import SpinnerBlade from './behavior/blade.vue'
5
+ import SpinnerSnake from './behavior/snake.vue'
6
+ import SpinnerDoubleBounce from './behavior/double-bounce.vue'
7
+ import SpinnerTripleBounce from './behavior/triple-bounce.vue'
8
+ import SpinnerFadingCircle from './behavior/fading-circle.vue'
9
+
10
+ import type { SpinnerProps, SpinnerType } from './types'
11
+ export type { SpinnerProps }
12
+
13
+ const SPINNERS = [
14
+ 'blade',
15
+ 'snake',
16
+ 'double-bounce',
17
+ 'triple-bounce',
18
+ 'fading-circle'
19
+ ] as const
20
+
21
+ const SPINNER_MAP = {
22
+ blade: SpinnerBlade,
23
+ snake: SpinnerSnake,
24
+ 'double-bounce': SpinnerDoubleBounce,
25
+ 'triple-bounce': SpinnerTripleBounce,
26
+ 'fading-circle': SpinnerFadingCircle
27
+ } as const
28
+
29
+ function parseSpinner(type: SpinnerType | number): keyof typeof SPINNER_MAP {
30
+ let value: string | number = type ?? 0
31
+
32
+ // 数字类型(索引)
33
+ if (typeof value === 'number' || /^\d+$/.test(String(value))) {
34
+ const index = Number(value)
35
+ if (index >= SPINNERS.length) {
36
+ console.warn(`'${value}' spinner not found, use the default spinner.`)
37
+ return SPINNERS[0]
38
+ }
39
+ return SPINNERS[index]
40
+ }
41
+
42
+ // 字符串类型
43
+ if (!SPINNERS.includes(value as any)) {
44
+ console.warn(`'${value}' spinner not found, use the default spinner.`)
45
+ return SPINNERS[0]
46
+ }
47
+
48
+ return value as keyof typeof SPINNER_MAP
49
+ }
50
+ // type Compute<T> = { [K in keyof T]: Compute<T[K]> }; // 将类型展开方便提示
51
+ export default defineComponent({
52
+ name: 'Dpzvc3Spinner',
53
+
54
+ props: {
55
+ size: {
56
+ type: [Number, String] as PropType<number | string>,
57
+ default: 30
58
+ },
59
+ type: {
60
+ type: [String, Number] as PropType<SpinnerType | number>,
61
+ default: 'snake'
62
+ },
63
+ color: {
64
+ type: String as PropType<string>,
65
+ default: '#39f'
66
+ }
67
+ },
68
+
69
+ setup(props) {
70
+ const SpinnerComponent = computed(() => {
71
+ const key = parseSpinner(props.type)
72
+ return SPINNER_MAP[key]
73
+ })
74
+ return () => {
75
+ const Comp = SpinnerComponent.value as any
76
+ return (
77
+ <Comp
78
+ size={props.size}
79
+ type={props.type}
80
+ color={props.color}
81
+ />
82
+ )
83
+ }
84
+ }
85
+ })