dpzvc3-ui 3.1.5 → 3.1.6

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 (276) hide show
  1. package/README.md +1 -1
  2. package/dist/dpzvc3.esm.js +5 -4
  3. package/dist/dpzvc3.esm.js.map +1 -1
  4. package/dist/dpzvc3.esm.min.js +1 -1
  5. package/dist/dpzvc3.esm.min.js.map +1 -1
  6. package/dist/dpzvc3.js +5 -4
  7. package/dist/dpzvc3.js.map +1 -1
  8. package/dist/dpzvc3.min.js +1 -1
  9. package/dist/dpzvc3.min.js.map +1 -1
  10. package/dist/types/components/actionSheet/index.d.ts +6 -1
  11. package/dist/types/components/actionSheet/index.d.ts.map +1 -1
  12. package/package.json +7 -2
  13. package/build-style.js +0 -58
  14. package/dist-prod/91.05c8ec5277a15f939b0f.js +0 -3
  15. package/dist-prod/91.05c8ec5277a15f939b0f.js.LICENSE.txt +0 -25
  16. package/dist-prod/91.05c8ec5277a15f939b0f.js.map +0 -1
  17. package/dist-prod/actionsheet.0d67b6b08a62cf9360be.chunk.js +0 -2
  18. package/dist-prod/actionsheet.0d67b6b08a62cf9360be.chunk.js.map +0 -1
  19. package/dist-prod/badge.16ab5c05734fe1530701.chunk.js +0 -2
  20. package/dist-prod/badge.16ab5c05734fe1530701.chunk.js.map +0 -1
  21. package/dist-prod/button.39ac33aa7aaccc24b6a1.chunk.js +0 -2
  22. package/dist-prod/button.39ac33aa7aaccc24b6a1.chunk.js.map +0 -1
  23. package/dist-prod/card.16ed7eafe471bcc60ec6.chunk.js +0 -2
  24. package/dist-prod/card.16ed7eafe471bcc60ec6.chunk.js.map +0 -1
  25. package/dist-prod/cell.70ff74fba57e27df7f5a.chunk.js +0 -2
  26. package/dist-prod/cell.70ff74fba57e27df7f5a.chunk.js.map +0 -1
  27. package/dist-prod/cellswipe.f3ec62abd60729d8bc5a.chunk.js +0 -2
  28. package/dist-prod/cellswipe.f3ec62abd60729d8bc5a.chunk.js.map +0 -1
  29. package/dist-prod/checkbox.05c63a947ac98293c9f2.chunk.js +0 -2
  30. package/dist-prod/checkbox.05c63a947ac98293c9f2.chunk.js.map +0 -1
  31. package/dist-prod/guide.24f1968a568f20fbc84b.chunk.js +0 -2
  32. package/dist-prod/guide.24f1968a568f20fbc84b.chunk.js.map +0 -1
  33. package/dist-prod/header.eb10433dd892738ee95a.chunk.js +0 -2
  34. package/dist-prod/header.eb10433dd892738ee95a.chunk.js.map +0 -1
  35. package/dist-prod/index.html +0 -19
  36. package/dist-prod/indicator.0c09e3f238791cb478e0.chunk.js +0 -2
  37. package/dist-prod/indicator.0c09e3f238791cb478e0.chunk.js.map +0 -1
  38. package/dist-prod/loadmore.9bad88767cc43603f473.chunk.js +0 -2
  39. package/dist-prod/loadmore.9bad88767cc43603f473.chunk.js.map +0 -1
  40. package/dist-prod/main.662ad15361e7f3d20234.js +0 -2
  41. package/dist-prod/main.662ad15361e7f3d20234.js.map +0 -1
  42. package/dist-prod/message.de17fea3de4daa70bab4.chunk.js +0 -2
  43. package/dist-prod/message.de17fea3de4daa70bab4.chunk.js.map +0 -1
  44. package/dist-prod/modal.f9ec857acd9fbdf53f3b.chunk.js +0 -2
  45. package/dist-prod/modal.f9ec857acd9fbdf53f3b.chunk.js.map +0 -1
  46. package/dist-prod/picker.bca059ef59e3c42a401f.chunk.js +0 -2
  47. package/dist-prod/picker.bca059ef59e3c42a401f.chunk.js.map +0 -1
  48. package/dist-prod/popup.538422c7e188363a468d.chunk.js +0 -2
  49. package/dist-prod/popup.538422c7e188363a468d.chunk.js.map +0 -1
  50. package/dist-prod/progress.240de4b633002f573030.chunk.js +0 -2
  51. package/dist-prod/progress.240de4b633002f573030.chunk.js.map +0 -1
  52. package/dist-prod/prompt.dcda0b05ea02d59106b7.chunk.js +0 -2
  53. package/dist-prod/prompt.dcda0b05ea02d59106b7.chunk.js.map +0 -1
  54. package/dist-prod/radiobox.7c10f77aba5ae04b2e5c.chunk.js +0 -2
  55. package/dist-prod/radiobox.7c10f77aba5ae04b2e5c.chunk.js.map +0 -1
  56. package/dist-prod/rater.d46ae462c598c458e5a8.chunk.js +0 -2
  57. package/dist-prod/rater.d46ae462c598c458e5a8.chunk.js.map +0 -1
  58. package/dist-prod/slidebar.833e75b9eb0abef92453.chunk.js +0 -2
  59. package/dist-prod/slidebar.833e75b9eb0abef92453.chunk.js.map +0 -1
  60. package/dist-prod/spinner.6afb4f84cc29f0e2f8eb.chunk.js +0 -2
  61. package/dist-prod/spinner.6afb4f84cc29f0e2f8eb.chunk.js.map +0 -1
  62. package/dist-prod/swipe.3fe6ee6638765ec52d94.chunk.js +0 -2
  63. package/dist-prod/swipe.3fe6ee6638765ec52d94.chunk.js.map +0 -1
  64. package/dist-prod/switchbar.f24c76a03120f1bd961a.chunk.js +0 -2
  65. package/dist-prod/switchbar.f24c76a03120f1bd961a.chunk.js.map +0 -1
  66. package/dist-prod/tab.29f19483f699b7811259.chunk.js +0 -2
  67. package/dist-prod/tab.29f19483f699b7811259.chunk.js.map +0 -1
  68. package/dist-prod/text.a6e4251f772d23843e2b.chunk.js +0 -2
  69. package/dist-prod/text.a6e4251f772d23843e2b.chunk.js.map +0 -1
  70. package/dist-prod/totop.713c5ab7f7dbcffbf2a3.chunk.js +0 -2
  71. package/dist-prod/totop.713c5ab7f7dbcffbf2a3.chunk.js.map +0 -1
  72. package/dist-prod/upload.0638581e551ed9afaba2.chunk.js +0 -2
  73. package/dist-prod/upload.0638581e551ed9afaba2.chunk.js.map +0 -1
  74. package/postcss.config.js +0 -5
  75. package/src/components/Indicator/Indicator.tsx +0 -67
  76. package/src/components/Indicator/Indicator.vue +0 -82
  77. package/src/components/Indicator/index.ts +0 -111
  78. package/src/components/Indicator/types.ts +0 -15
  79. package/src/components/Text/index.ts +0 -14
  80. package/src/components/Text/textBar.tsx +0 -104
  81. package/src/components/Text/types.ts +0 -13
  82. package/src/components/actionSheet/actionSheet.d.ts +0 -16
  83. package/src/components/actionSheet/actionSheet.tsx +0 -86
  84. package/src/components/actionSheet/index.ts +0 -6
  85. package/src/components/actionSheet/types.ts +0 -10
  86. package/src/components/app.vue +0 -59
  87. package/src/components/badge/badge.tsx +0 -80
  88. package/src/components/badge/index.ts +0 -12
  89. package/src/components/badge/types.ts +0 -8
  90. package/src/components/button/button.tsx +0 -105
  91. package/src/components/button/index.ts +0 -13
  92. package/src/components/button/types.ts +0 -13
  93. package/src/components/card/card.d.ts +0 -16
  94. package/src/components/card/card.tsx +0 -38
  95. package/src/components/card/index.ts +0 -12
  96. package/src/components/card/types.ts +0 -3
  97. package/src/components/cell/cell.tsx +0 -89
  98. package/src/components/cell/index.ts +0 -12
  99. package/src/components/cell/types.ts +0 -8
  100. package/src/components/cellSwipe/cellSwipe.tsx +0 -188
  101. package/src/components/cellSwipe/index.ts +0 -13
  102. package/src/components/cellSwipe/types.ts +0 -17
  103. package/src/components/checkBox/checkbox-group.tsx +0 -75
  104. package/src/components/checkBox/checkbox.tsx +0 -107
  105. package/src/components/checkBox/index.ts +0 -29
  106. package/src/components/checkBox/types.ts +0 -32
  107. package/src/components/header/header.tsx +0 -119
  108. package/src/components/header/index.ts +0 -13
  109. package/src/components/header/types.ts +0 -7
  110. package/src/components/loadMore/index.ts +0 -14
  111. package/src/components/loadMore/loadMore.tsx +0 -265
  112. package/src/components/loadMore/types.ts +0 -26
  113. package/src/components/message/confirm.ts +0 -104
  114. package/src/components/message/index.ts +0 -113
  115. package/src/components/message/message.tsx +0 -100
  116. package/src/components/message/messageGroup.tsx +0 -59
  117. package/src/components/message/types.ts +0 -48
  118. package/src/components/modal/confirm.ts +0 -123
  119. package/src/components/modal/index.ts +0 -68
  120. package/src/components/modal/modal.tsx +0 -248
  121. package/src/components/modal/types.ts +0 -51
  122. package/src/components/number/Number.tsx +0 -143
  123. package/src/components/number/index.ts +0 -10
  124. package/src/components/number/types.ts +0 -13
  125. package/src/components/picker/area-picker/area-picker.vue +0 -230
  126. package/src/components/picker/area-picker/props.js +0 -17
  127. package/src/components/picker/date-picker/date-picker.vue +0 -191
  128. package/src/components/picker/date-picker/props.js +0 -24
  129. package/src/components/picker/index.ts +0 -12
  130. package/src/components/picker/normal-picker/normal-picker.vue +0 -120
  131. package/src/components/picker/normal-picker/props.js +0 -20
  132. package/src/components/picker/picker-slot.vue +0 -217
  133. package/src/components/picker/picker.tsx +0 -112
  134. package/src/components/picker/types.ts +0 -17
  135. package/src/components/popup/index.ts +0 -12
  136. package/src/components/popup/popup.d.ts +0 -16
  137. package/src/components/popup/popup.tsx +0 -68
  138. package/src/components/popup/types.ts +0 -9
  139. package/src/components/progress/index.ts +0 -12
  140. package/src/components/progress/progress.tsx +0 -81
  141. package/src/components/progress/types.ts +0 -9
  142. package/src/components/prompt/confirm.ts +0 -104
  143. package/src/components/prompt/index.ts +0 -50
  144. package/src/components/prompt/prompt.tsx +0 -161
  145. package/src/components/prompt/types.ts +0 -45
  146. package/src/components/radioBox/index.ts +0 -34
  147. package/src/components/radioBox/radiobox-group.tsx +0 -66
  148. package/src/components/radioBox/radiobox.tsx +0 -115
  149. package/src/components/radioBox/types.ts +0 -24
  150. package/src/components/rater/index.ts +0 -12
  151. package/src/components/rater/rater.d.ts +0 -16
  152. package/src/components/rater/raters.tsx +0 -101
  153. package/src/components/rater/types.ts +0 -10
  154. package/src/components/slideBar/index.ts +0 -13
  155. package/src/components/slideBar/slideBar.tsx +0 -288
  156. package/src/components/slideBar/types.ts +0 -20
  157. package/src/components/spinner/behavior/blade.vue +0 -42
  158. package/src/components/spinner/behavior/double-bounce.vue +0 -38
  159. package/src/components/spinner/behavior/fading-circle.vue +0 -55
  160. package/src/components/spinner/behavior/snake.vue +0 -41
  161. package/src/components/spinner/behavior/triple-bounce.vue +0 -52
  162. package/src/components/spinner/index.ts +0 -13
  163. package/src/components/spinner/props.js +0 -28
  164. package/src/components/spinner/spinner.tsx +0 -85
  165. package/src/components/spinner/types.ts +0 -20
  166. package/src/components/swipe/index.ts +0 -13
  167. package/src/components/swipe/swipe.tsx +0 -292
  168. package/src/components/swipe/types.ts +0 -21
  169. package/src/components/switchbar/index.ts +0 -13
  170. package/src/components/switchbar/switchbar.tsx +0 -58
  171. package/src/components/switchbar/types.ts +0 -6
  172. package/src/components/tab/index.ts +0 -12
  173. package/src/components/tab/tab.tsx +0 -71
  174. package/src/components/tab/types.ts +0 -15
  175. package/src/components/toTop/index.ts +0 -13
  176. package/src/components/toTop/toTop.tsx +0 -54
  177. package/src/components/toTop/types.ts +0 -7
  178. package/src/components/upload/index.ts +0 -13
  179. package/src/components/upload/types.ts +0 -9
  180. package/src/components/upload/upload.tsx +0 -180
  181. package/src/config/config.js +0 -16
  182. package/src/directives/clickoutside.js +0 -42
  183. package/src/directives/tranferDom.js +0 -66
  184. package/src/index.d.ts +0 -131
  185. package/src/index.ts +0 -136
  186. package/src/lib/MegaPixImage.js +0 -164
  187. package/src/lib/MegaPixImageOld.js +0 -153
  188. package/src/lib/exif-js.js +0 -235
  189. package/src/lib/exif.js +0 -789
  190. package/src/lib/lib.js +0 -22
  191. package/src/main.ts +0 -33
  192. package/src/mixin/emitter.js +0 -72
  193. package/src/mixin/input.js +0 -41
  194. package/src/router.ts +0 -36
  195. package/src/shims-vue.d.ts +0 -37
  196. package/src/styles/base/font.less +0 -99
  197. package/src/styles/base/reset.less +0 -135
  198. package/src/styles/base/variable.less +0 -108
  199. package/src/styles/components/actionSheet.less +0 -43
  200. package/src/styles/components/badge.less +0 -81
  201. package/src/styles/components/button.less +0 -124
  202. package/src/styles/components/card.less +0 -31
  203. package/src/styles/components/cell-swipe.less +0 -20
  204. package/src/styles/components/cell.less +0 -75
  205. package/src/styles/components/checkBox.less +0 -113
  206. package/src/styles/components/editor.less +0 -3
  207. package/src/styles/components/header.less +0 -72
  208. package/src/styles/components/indicator.less +0 -39
  209. package/src/styles/components/loadmore.less +0 -48
  210. package/src/styles/components/message.less +0 -57
  211. package/src/styles/components/modal.less +0 -84
  212. package/src/styles/components/number.less +0 -60
  213. package/src/styles/components/picker.less +0 -152
  214. package/src/styles/components/popup.less +0 -46
  215. package/src/styles/components/progress.less +0 -52
  216. package/src/styles/components/prompt.less +0 -37
  217. package/src/styles/components/radioBox.less +0 -142
  218. package/src/styles/components/rater.less +0 -16
  219. package/src/styles/components/slide-Bar.less +0 -149
  220. package/src/styles/components/spinner.less +0 -329
  221. package/src/styles/components/swipe.less +0 -125
  222. package/src/styles/components/switchBar.less +0 -88
  223. package/src/styles/components/tab.less +0 -71
  224. package/src/styles/components/text.less +0 -82
  225. package/src/styles/components/toTop.less +0 -28
  226. package/src/styles/components/upload.less +0 -23
  227. package/src/styles/index.less +0 -39
  228. package/src/styles/utils/1px.less +0 -206
  229. package/src/styles/utils/animation.less +0 -165
  230. package/src/styles/utils/nowrap.less +0 -19
  231. package/src/template/index.ejs +0 -40
  232. package/src/types/index.d.ts +0 -127
  233. package/src/types/js-shims.d.ts +0 -36
  234. package/src/utils/test.ts +0 -2
  235. package/src/utils/util.ts +0 -168
  236. package/src/utils/util1.js +0 -202
  237. package/src/vconsole-resources.min.js +0 -6
  238. package/src/vconsole-sources.min.js +0 -6
  239. package/src/vconsole.min.js +0 -7
  240. package/src/views/ActionSheet.vue +0 -46
  241. package/src/views/Badge/Badge.less +0 -12
  242. package/src/views/Badge/Badge.tsx +0 -23
  243. package/src/views/Badge.vue +0 -53
  244. package/src/views/Button.vue +0 -69
  245. package/src/views/Card.vue +0 -89
  246. package/src/views/Cell.vue +0 -31
  247. package/src/views/CellSwipe.vue +0 -80
  248. package/src/views/CheckBox.vue +0 -78
  249. package/src/views/Header.vue +0 -71
  250. package/src/views/Indicator.vue +0 -82
  251. package/src/views/LoadMore.vue +0 -76
  252. package/src/views/Message.vue +0 -61
  253. package/src/views/Modal.vue +0 -69
  254. package/src/views/Picker.vue +0 -142
  255. package/src/views/Popup.vue +0 -103
  256. package/src/views/Progress.vue +0 -49
  257. package/src/views/Prompt.vue +0 -43
  258. package/src/views/RadioBox.vue +0 -70
  259. package/src/views/Rater.vue +0 -53
  260. package/src/views/SlideBar.vue +0 -62
  261. package/src/views/Spinner.vue +0 -27
  262. package/src/views/Swipe.vue +0 -59
  263. package/src/views/SwitchBar.vue +0 -49
  264. package/src/views/Tab.vue +0 -55
  265. package/src/views/Text.vue +0 -97
  266. package/src/views/ToTop.vue +0 -31
  267. package/src/views/Upload.vue +0 -65
  268. package/src/views/guide.vue +0 -164
  269. package/src/views/index.vue +0 -554
  270. package/tsconfig.build.json +0 -31
  271. package/tsconfig.json +0 -41
  272. package/webpack.base.config.js +0 -85
  273. package/webpack.dev.config.js +0 -43
  274. package/webpack.dist.dev.config.js +0 -76
  275. package/webpack.dist.prod.config.js +0 -90
  276. package/webpack.prod.config.js +0 -52
@@ -1,292 +0,0 @@
1
- // src/components/swipe/swipe.tsx
2
- import {
3
- defineComponent,
4
- ref,
5
- computed,
6
- onMounted,
7
- onBeforeUnmount,
8
- PropType
9
- } from 'vue'
10
- import rafTimeout from '../../lib/lib'
11
- import type { SwipeItem, SwipeProps } from './types'
12
-
13
- export type { SwipeProps }
14
-
15
- const prefixCls = 'dpzvc3-swipe'
16
-
17
- export default defineComponent({
18
- name: 'Dpzvc3Swipe',
19
-
20
- props: {
21
- auto: { type: Boolean, default: true },
22
- list: { type: Array as PropType<SwipeItem[]>, default: () => [] },
23
- startIndex: { type: Number, default: 0 },
24
- height: { type: [Number, String] as PropType<number | string>, default: 'auto' },
25
- dots: { type: String as PropType<'top' | 'bottom'>, default: 'bottom' },
26
- multiple: { type: Boolean, default: false },
27
- distanceIndex: { type: Number, default: 1.5 },
28
- loop: { type: Boolean, default: true },
29
- speed: { type: Number, default: 2 },
30
- perpage: { type: Number, default: 1 }
31
- },
32
-
33
- setup(props, { slots }) {
34
- const swipeRef = ref<HTMLDivElement | null>(null)
35
- const wrapper = ref<HTMLDivElement | null>(null)
36
-
37
- const clientWidth = ref(0)
38
- const translateX = ref(0)
39
- const currentTranslateX = ref(0)
40
- const dragging = ref(false)
41
- const autoSwipe = ref(true)
42
- const startX = ref(0)
43
- const distance = ref(0)
44
- const slideIndex = ref(props.startIndex)
45
- const timer = ref<null | (() => void)>(null)
46
-
47
- const localList = ref<SwipeItem[]>([...props.list])
48
- const transitionRef = ref('transform .2s ease-out')
49
-
50
- /** 是否多列 */
51
- const isMultiple = computed(() => {
52
- if (props.perpage <= 1) return false
53
-
54
- const page = props.perpage
55
- const result: SwipeItem[][] = []
56
- let temp: SwipeItem[] = []
57
-
58
- localList.value.forEach((item, idx) => {
59
- temp.push(item)
60
- if (temp.length === page || idx === localList.value.length - 1) {
61
- result.push(temp)
62
- temp = []
63
- }
64
- })
65
-
66
- // ⚠️ 保持与你原逻辑一致(computed 内有副作用)
67
- localList.value = result as any
68
- return true
69
- })
70
-
71
- /** 实际渲染数组 */
72
- const arrayList = computed<any[]>(() => {
73
- if (!localList.value.length) return []
74
- return props.loop
75
- ? [...localList.value, localList.value[0]]
76
- : localList.value
77
- })
78
-
79
- const dotLength = computed(() => localList.value.length)
80
- const minIndex = computed(() => 0)
81
- const maxIndex = computed(() =>
82
- props.loop ? arrayList.value.length - 2 : arrayList.value.length - 1
83
- )
84
-
85
- /** class / style */
86
- const classes = computed(() => [prefixCls])
87
- const wrapperClasses = computed(() => [
88
- `${prefixCls}-wrapper`,
89
- { [`${prefixCls}-dragging`]: dragging.value }
90
- ])
91
- const multipleClass = `${prefixCls}-multiple`
92
- const singleClass = `${prefixCls}-single`
93
- const itemClasses = computed(() => [
94
- `${prefixCls}-item`,
95
- { multiple: isMultiple.value }
96
- ])
97
- const dotsClasses = computed(() => [
98
- `${prefixCls}-dots`,
99
- {
100
- [`${prefixCls}-dots-bottom`]: props.dots === 'bottom',
101
- [`${prefixCls}-dots-top`]: props.dots === 'top'
102
- }
103
- ])
104
-
105
- const wrapperStyle = computed(() => ({
106
- width: `${arrayList.value.length * clientWidth.value}px`,
107
- transform: `translate3d(${translateX.value}px,0,0)`,
108
- transition: transitionRef.value
109
- }))
110
-
111
- /** 点击 */
112
- function choose(item: SwipeItem, index: number, e?: Event) {
113
- if (item.onClick) {
114
- item.onClick(item, index)
115
- } else if (item.link) {
116
- if (/https?:\/\//i.test(item.link)) {
117
- window.location.href = item.link
118
- }
119
- }
120
- }
121
-
122
- /** touch */
123
- function onTouchStart(e: TouchEvent) {
124
- dragging.value = true
125
- autoSwipe.value = false
126
- startX.value = e.touches[0].clientX
127
- currentTranslateX.value = translateX.value
128
- distance.value = 0
129
- clearTimer()
130
- }
131
-
132
- function onTouchMove(e: TouchEvent) {
133
- const currentX = e.touches[0].clientX
134
- distance.value = props.distanceIndex
135
- ? (currentX - startX.value) / props.distanceIndex
136
- : currentX - startX.value
137
- translateX.value = currentTranslateX.value + distance.value
138
- }
139
-
140
- function onTouchEnd() {
141
- if (distance.value < 0 && Math.abs(distance.value) > clientWidth.value / 5) {
142
- props.loop ? onLoopSlideLeft() : onSlideLeft()
143
- } else if (distance.value > 0 && Math.abs(distance.value) > clientWidth.value / 5) {
144
- props.loop ? onLoopSlideRight() : onSlideRight()
145
- } else {
146
- translateX.value = currentTranslateX.value
147
- }
148
-
149
- dragging.value = false
150
- autoSwipe.value = true
151
- props.auto && autoSlide()
152
- }
153
-
154
- function onSlideLeft() {
155
- if (slideIndex.value < maxIndex.value) slideIndex.value++
156
- translateX.value = -slideIndex.value * clientWidth.value
157
- }
158
-
159
- function onSlideRight() {
160
- if (slideIndex.value > minIndex.value) slideIndex.value--
161
- translateX.value = -slideIndex.value * clientWidth.value
162
- }
163
-
164
- function onLoopSlideLeft() {
165
- onSlideLeft()
166
- if (slideIndex.value > maxIndex.value) {
167
- slideIndex.value = maxIndex.value
168
- }
169
- }
170
-
171
- function onLoopSlideRight() {
172
- onSlideRight()
173
- if (slideIndex.value < minIndex.value) {
174
- slideIndex.value = minIndex.value
175
- }
176
- }
177
-
178
- function autoSlide() {
179
- timer.value = rafTimeout(() => {
180
- if (!dragging.value && autoSwipe.value) {
181
- translateX.value -= clientWidth.value
182
- slideIndex.value++
183
- if (slideIndex.value > maxIndex.value && props.loop) {
184
- slideIndex.value = minIndex.value
185
- wrapper.value?.addEventListener('transitionend', resetSlide, false)
186
- }
187
- autoSlide()
188
- }
189
- }, props.speed < 1 ? 1000 : props.speed * 1000)
190
- }
191
-
192
- function resetSlide() {
193
- wrapper.value?.removeEventListener('transitionend', resetSlide)
194
- slideIndex.value = minIndex.value
195
- autoSwipe.value = false
196
- transitionRef.value = 'none'
197
- translateX.value = -slideIndex.value * clientWidth.value
198
- setTimeout(() => {
199
- autoSwipe.value = true
200
- transitionRef.value = 'transform .2s ease-out'
201
- })
202
- }
203
-
204
- function clearTimer() {
205
- timer.value?.()
206
- timer.value = null
207
- }
208
-
209
- function onResize() {
210
- clientWidth.value = swipeRef.value?.clientWidth || 0
211
- }
212
-
213
- onMounted(() => {
214
- clientWidth.value = swipeRef.value?.clientWidth || 0
215
- props.auto && autoSlide()
216
-
217
- wrapper.value?.addEventListener('touchstart', onTouchStart)
218
- wrapper.value?.addEventListener('touchmove', onTouchMove)
219
- wrapper.value?.addEventListener('touchend', onTouchEnd)
220
-
221
- window.addEventListener('resize', onResize)
222
- })
223
-
224
- onBeforeUnmount(() => {
225
- wrapper.value?.removeEventListener('touchstart', onTouchStart)
226
- wrapper.value?.removeEventListener('touchmove', onTouchMove)
227
- wrapper.value?.removeEventListener('touchend', onTouchEnd)
228
- window.removeEventListener('resize', onResize)
229
- clearTimer()
230
- })
231
-
232
- /** render */
233
- return () => (
234
- <div
235
- ref={swipeRef}
236
- class={classes.value}
237
- style={{ height: props.height }}
238
- >
239
- <div
240
- ref={wrapper}
241
- class={wrapperClasses.value}
242
- style={wrapperStyle.value}
243
- >
244
- {arrayList.value.map((item: any, index: number) => (
245
- <div key={index} class={itemClasses.value}>
246
- {isMultiple.value ? (
247
- item.map((sub: SwipeItem, i: number) => (
248
- <a
249
- key={i}
250
- class={multipleClass}
251
- onClick={(e: any) => choose(sub, i, e)}
252
- >
253
- {slots.default?.({ item: sub, index: i }) ?? (
254
- <>
255
- <img src={sub.image} />
256
- <span>{sub.spec}</span>
257
- </>
258
- )}
259
- </a>
260
- ))
261
- ) : (
262
- <a
263
- class={singleClass}
264
- onClick={(e: any) => choose(item, index, e)}
265
- >
266
- {slots.default?.({ item, index }) ?? (
267
- <>
268
- <img src={item.image} />
269
- <span>{item.spec}</span>
270
- </>
271
- )}
272
- </a>
273
- )}
274
- </div>
275
- ))}
276
- </div>
277
-
278
- <div class={dotsClasses.value}>
279
- {Array.from({ length: dotLength.value }).map((_, i) => (
280
- <span
281
- key={i}
282
- class={[
283
- 'dpzvc3-swipe-dots-item',
284
- i === slideIndex.value ? 'active' : ''
285
- ]}
286
- />
287
- ))}
288
- </div>
289
- </div>
290
- )
291
- }
292
- })
@@ -1,21 +0,0 @@
1
- // src/components/swipe/types.ts
2
- export interface SwipeItem {
3
- image?: string
4
- spec?: string
5
- link?: string
6
- onClick?: (item: SwipeItem, index: number) => void
7
- [key: string]: any
8
- }
9
-
10
- export interface SwipeProps {
11
- auto?: boolean
12
- list?: SwipeItem[]
13
- startIndex?: number
14
- height?: number | string
15
- dots?: 'top' | 'bottom'
16
- multiple?: boolean
17
- distanceIndex?: number
18
- loop?: boolean
19
- speed?: number
20
- perpage?: number
21
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * Created by admin on 2025/09/26.
3
- */
4
- import type { App } from 'vue'
5
- import SwitchBar from './switchbar'
6
- SwitchBar.install = (app: App): void => {
7
- app.component('SwitchBar', SwitchBar); // 注册全局组件
8
- }
9
- type IWithInstall<T> = T & { install(app: App): void };
10
- const _SwitchBar=SwitchBar as IWithInstall<typeof SwitchBar>;
11
- export default _SwitchBar
12
- // export default SwitchBar
13
- export type { SwitchBarProps } from './types'
@@ -1,58 +0,0 @@
1
- // src/components/switchbar/switchbar.tsx
2
- import { defineComponent, ref, computed, watch, onMounted, PropType } from 'vue'
3
- import { randomStr } from '../../utils/util'
4
- import type { SwitchBarProps } from './types'
5
-
6
- export type { SwitchBarProps }
7
-
8
- const prefixCls = 'dpzvc3-switch'
9
-
10
- export default defineComponent({
11
- name: 'SwitchBar',
12
- props: {
13
- id: { type: String, default: null },
14
- modelValue: { type: Boolean, default: false },
15
- size: { type: String as PropType<'small' | 'large'>, default: 'small' }
16
- },
17
- emits: ['update:modelValue'],
18
- setup(props, { emit }) {
19
- const name = ref(props.id || '')
20
- const currentValue = ref(props.modelValue)
21
-
22
- // 外部 v-model
23
- watch(() => props.modelValue, val => {
24
- currentValue.value = val
25
- })
26
-
27
- // 内部变化通知父组件
28
- watch(currentValue, val => {
29
- emit('update:modelValue', val)
30
- })
31
-
32
- // 自动生成 id
33
- onMounted(() => {
34
- if (!props.id) {
35
- name.value = Date.now() + '_' + randomStr()
36
- }
37
- })
38
-
39
- const classes = computed(() => [prefixCls])
40
- const inputCheckClasses = computed(() => [`${prefixCls}-checkbox`, 'hidden'])
41
- const sizeClasses = computed(() => [
42
- `${prefixCls}-ui`,
43
- { small: props.size === 'small' }
44
- ])
45
-
46
- return () => (
47
- <div class={classes.value}>
48
- <input
49
- id={name.value}
50
- type="checkbox"
51
- class={inputCheckClasses.value}
52
- v-model={currentValue.value}
53
- />
54
- <label for={name.value} class={sizeClasses.value} />
55
- </div>
56
- )
57
- }
58
- })
@@ -1,6 +0,0 @@
1
- // src/components/switchbar/types.ts
2
- export interface SwitchBarProps {
3
- id?: string
4
- modelValue?: boolean
5
- size?: 'small' | 'large'
6
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * Created by admin on 2025/10/15.
3
- */
4
- import type { App } from 'vue'
5
- import Tab from './tab'
6
- Tab.install = (app: App): void => {
7
- app.component('Tab', Tab); // 注册全局组件
8
- }
9
- type IWithInstall<T> = T & { install(app: App): void };
10
- const _Tab=Tab as IWithInstall<typeof Tab>;
11
- export default _Tab
12
- export type { TabProps } from './types'
@@ -1,71 +0,0 @@
1
- // src/components/tab/tab.tsx
2
- import { defineComponent, ref, computed, watch, PropType } from 'vue'
3
- import type { TabProps, TabItem } from './types'
4
- import { RouterLink } from 'vue-router'
5
-
6
- export type { TabProps }
7
-
8
- const prefixCls = 'dpzvc3-tab'
9
-
10
- export default defineComponent({
11
- name: 'Dpzvc3Tab',
12
- props: {
13
- items: { type: Array as PropType<TabItem[]>, default: () => [] },
14
- modelValue: { type: Boolean, default: true },
15
- index: { type: [Number, String], default: 0 },
16
- border: { type: Boolean, default: true },
17
- styles: { type: Object as PropType<Record<string, any>>, default: () => ({}) }
18
- },
19
- setup(props) {
20
- const show = ref(props.modelValue)
21
-
22
- watch(() => props.modelValue, val => {
23
- show.value = val
24
- })
25
-
26
- const classes = computed(() => [prefixCls])
27
- const getStyles = computed(() => ({ ...props.styles }))
28
-
29
- const itemClass = (index: number) => {
30
- const _class = [`tab-item-${index}`]
31
- if (Number(props.index) === Number(index)) _class.push('cur')
32
- return _class
33
- }
34
-
35
- const getIconHtml = (index: number) => {
36
- const item = props.items[index]
37
- if (!item) return ''
38
- return Number(props.index) === Number(index) ? (item.iconCur || item.icon) : item.icon
39
- }
40
-
41
- return () => (
42
- show.value && (
43
- <div class={classes.value} style={getStyles.value}>
44
- <ul>
45
- {props.items?.map((item, idx) => {
46
- const isExternal = /^(http|https):\/\//i.test(item.path)
47
- const iconHtml = getIconHtml(idx)
48
- const cls = itemClass(idx)
49
-
50
- return (
51
- <li key={idx}>
52
- {isExternal ? (
53
- <a href={item.path} class={cls}>
54
- <span innerHTML={iconHtml} />
55
- <p>{item.name}</p>
56
- </a>
57
- ) : (
58
- <RouterLink to={item.path} class={cls}>
59
- <span innerHTML={iconHtml} />
60
- <p>{item.name}</p>
61
- </RouterLink>
62
- )}
63
- </li>
64
- )
65
- })}
66
- </ul>
67
- </div>
68
- )
69
- )
70
- }
71
- })
@@ -1,15 +0,0 @@
1
- // src/components/tab/types.ts
2
- export interface TabItem {
3
- name: string
4
- path: string
5
- icon?: string
6
- iconCur?: string
7
- }
8
-
9
- export interface TabProps {
10
- items?: TabItem[]
11
- modelValue?: boolean
12
- index?: number | string
13
- border?: boolean
14
- styles?: Record<string, any>
15
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * Created by admin on 2025/11/29.
3
- */
4
- import type { App } from 'vue'
5
- import ToTop from './toTop'
6
- ToTop.install = (app: App): void => {
7
- app.component('ToTop', ToTop); // 注册全局组件
8
- }
9
- type IWithInstall<T> = T & { install(app: App): void };
10
- const _ToTop=ToTop as IWithInstall<typeof ToTop>;
11
- export default _ToTop
12
- // export default ToTop
13
- export type { ToTopProps } from './types'
@@ -1,54 +0,0 @@
1
- import { defineComponent, ref, computed, onMounted, onBeforeUnmount } from 'vue'
2
- import { scrollTop } from '../../utils/util'
3
- import { ToTopProps } from './types'
4
-
5
- const prefixCls = 'dpzvc3-toTop'
6
-
7
- export default defineComponent({
8
- name: 'ToTop',
9
- props: {
10
- distance: { type: Number, default: 200 },
11
- bottom: { type: [Number, String], default: 30 },
12
- right: { type: [Number, String], default: 30 },
13
- duration: { type: Number, default: 1000 }
14
- }, //as unknown as Record<keyof ToTopProps, any>
15
- setup(props: ToTopProps) {
16
- const back = ref(false)
17
-
18
- const classes = computed(() => [prefixCls])
19
- const wrapperClasses = computed(() => [`${prefixCls}-wrapper`])
20
- const positionStyles = computed(() => ({
21
- bottom: typeof props.bottom === 'number' ? props.bottom + 'px' : props.bottom,
22
- right: typeof props.right === 'number' ? props.right + 'px' : props.right
23
- }))
24
-
25
- const scroll = () => {
26
- back.value = window.pageYOffset > (props.distance || 0)
27
- }
28
-
29
- const toTopHandler = () => {
30
- scrollTop(window, window.pageYOffset, 0, props.duration || 1000)
31
- }
32
-
33
- onMounted(() => {
34
- window.addEventListener('scroll', scroll, false)
35
- window.addEventListener('resize', scroll, false)
36
- scroll() // 初始化判断
37
- })
38
-
39
- onBeforeUnmount(() => {
40
- window.removeEventListener('scroll', scroll, false)
41
- window.removeEventListener('resize', scroll, false)
42
- })
43
-
44
- return () => {
45
- return back.value ? (
46
- <div class={classes.value} style={positionStyles.value} onClick={toTopHandler}>
47
- <slot>
48
- <div class={wrapperClasses.value}></div>
49
- </slot>
50
- </div>
51
- ) : null
52
- }
53
- }
54
- })
@@ -1,7 +0,0 @@
1
- // ToTop/types.ts
2
- export interface ToTopProps {
3
- distance?: number
4
- bottom?: number | string
5
- right?: number | string
6
- duration?: number
7
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * Created by admin on 2025/10/26.
3
- */
4
- import type { App } from 'vue'
5
- import Upload from './upload'
6
- Upload.install = (app: App): void => {
7
- app.component('Upload', Upload); // 注册全局组件
8
- }
9
- type IWithInstall<T> = T & { install(app: App): void };
10
- const _Upload=Upload as IWithInstall<typeof Upload>;
11
- export default _Upload
12
- // export default Upload
13
- export type { UploadProps } from './types'
@@ -1,9 +0,0 @@
1
- // src/components/upload/types.ts
2
- export interface UploadProps {
3
- /** 是否支持多选 */
4
- multiple?: boolean
5
- /** input accept */
6
- accept?: string
7
- /** 外层样式 */
8
- styles?: Record<string, any>
9
- }