dpzvc3-ui 3.1.4 → 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 (279) 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/dist/types/index.d.ts +2 -2
  13. package/package.json +7 -2
  14. package/build-style.js +0 -58
  15. package/dist-prod/91.05c8ec5277a15f939b0f.js +0 -3
  16. package/dist-prod/91.05c8ec5277a15f939b0f.js.LICENSE.txt +0 -25
  17. package/dist-prod/91.05c8ec5277a15f939b0f.js.map +0 -1
  18. package/dist-prod/actionsheet.0d67b6b08a62cf9360be.chunk.js +0 -2
  19. package/dist-prod/actionsheet.0d67b6b08a62cf9360be.chunk.js.map +0 -1
  20. package/dist-prod/badge.16ab5c05734fe1530701.chunk.js +0 -2
  21. package/dist-prod/badge.16ab5c05734fe1530701.chunk.js.map +0 -1
  22. package/dist-prod/button.39ac33aa7aaccc24b6a1.chunk.js +0 -2
  23. package/dist-prod/button.39ac33aa7aaccc24b6a1.chunk.js.map +0 -1
  24. package/dist-prod/card.16ed7eafe471bcc60ec6.chunk.js +0 -2
  25. package/dist-prod/card.16ed7eafe471bcc60ec6.chunk.js.map +0 -1
  26. package/dist-prod/cell.70ff74fba57e27df7f5a.chunk.js +0 -2
  27. package/dist-prod/cell.70ff74fba57e27df7f5a.chunk.js.map +0 -1
  28. package/dist-prod/cellswipe.f3ec62abd60729d8bc5a.chunk.js +0 -2
  29. package/dist-prod/cellswipe.f3ec62abd60729d8bc5a.chunk.js.map +0 -1
  30. package/dist-prod/checkbox.05c63a947ac98293c9f2.chunk.js +0 -2
  31. package/dist-prod/checkbox.05c63a947ac98293c9f2.chunk.js.map +0 -1
  32. package/dist-prod/guide.24f1968a568f20fbc84b.chunk.js +0 -2
  33. package/dist-prod/guide.24f1968a568f20fbc84b.chunk.js.map +0 -1
  34. package/dist-prod/header.eb10433dd892738ee95a.chunk.js +0 -2
  35. package/dist-prod/header.eb10433dd892738ee95a.chunk.js.map +0 -1
  36. package/dist-prod/index.html +0 -19
  37. package/dist-prod/indicator.0c09e3f238791cb478e0.chunk.js +0 -2
  38. package/dist-prod/indicator.0c09e3f238791cb478e0.chunk.js.map +0 -1
  39. package/dist-prod/loadmore.9bad88767cc43603f473.chunk.js +0 -2
  40. package/dist-prod/loadmore.9bad88767cc43603f473.chunk.js.map +0 -1
  41. package/dist-prod/main.662ad15361e7f3d20234.js +0 -2
  42. package/dist-prod/main.662ad15361e7f3d20234.js.map +0 -1
  43. package/dist-prod/message.de17fea3de4daa70bab4.chunk.js +0 -2
  44. package/dist-prod/message.de17fea3de4daa70bab4.chunk.js.map +0 -1
  45. package/dist-prod/modal.f9ec857acd9fbdf53f3b.chunk.js +0 -2
  46. package/dist-prod/modal.f9ec857acd9fbdf53f3b.chunk.js.map +0 -1
  47. package/dist-prod/picker.bca059ef59e3c42a401f.chunk.js +0 -2
  48. package/dist-prod/picker.bca059ef59e3c42a401f.chunk.js.map +0 -1
  49. package/dist-prod/popup.538422c7e188363a468d.chunk.js +0 -2
  50. package/dist-prod/popup.538422c7e188363a468d.chunk.js.map +0 -1
  51. package/dist-prod/progress.240de4b633002f573030.chunk.js +0 -2
  52. package/dist-prod/progress.240de4b633002f573030.chunk.js.map +0 -1
  53. package/dist-prod/prompt.dcda0b05ea02d59106b7.chunk.js +0 -2
  54. package/dist-prod/prompt.dcda0b05ea02d59106b7.chunk.js.map +0 -1
  55. package/dist-prod/radiobox.7c10f77aba5ae04b2e5c.chunk.js +0 -2
  56. package/dist-prod/radiobox.7c10f77aba5ae04b2e5c.chunk.js.map +0 -1
  57. package/dist-prod/rater.d46ae462c598c458e5a8.chunk.js +0 -2
  58. package/dist-prod/rater.d46ae462c598c458e5a8.chunk.js.map +0 -1
  59. package/dist-prod/slidebar.833e75b9eb0abef92453.chunk.js +0 -2
  60. package/dist-prod/slidebar.833e75b9eb0abef92453.chunk.js.map +0 -1
  61. package/dist-prod/spinner.6afb4f84cc29f0e2f8eb.chunk.js +0 -2
  62. package/dist-prod/spinner.6afb4f84cc29f0e2f8eb.chunk.js.map +0 -1
  63. package/dist-prod/swipe.3fe6ee6638765ec52d94.chunk.js +0 -2
  64. package/dist-prod/swipe.3fe6ee6638765ec52d94.chunk.js.map +0 -1
  65. package/dist-prod/switchbar.f24c76a03120f1bd961a.chunk.js +0 -2
  66. package/dist-prod/switchbar.f24c76a03120f1bd961a.chunk.js.map +0 -1
  67. package/dist-prod/tab.29f19483f699b7811259.chunk.js +0 -2
  68. package/dist-prod/tab.29f19483f699b7811259.chunk.js.map +0 -1
  69. package/dist-prod/text.a6e4251f772d23843e2b.chunk.js +0 -2
  70. package/dist-prod/text.a6e4251f772d23843e2b.chunk.js.map +0 -1
  71. package/dist-prod/totop.713c5ab7f7dbcffbf2a3.chunk.js +0 -2
  72. package/dist-prod/totop.713c5ab7f7dbcffbf2a3.chunk.js.map +0 -1
  73. package/dist-prod/upload.0638581e551ed9afaba2.chunk.js +0 -2
  74. package/dist-prod/upload.0638581e551ed9afaba2.chunk.js.map +0 -1
  75. package/postcss.config.js +0 -5
  76. package/src/components/Indicator/Indicator.tsx +0 -67
  77. package/src/components/Indicator/Indicator.vue +0 -82
  78. package/src/components/Indicator/index.ts +0 -111
  79. package/src/components/Indicator/types.ts +0 -15
  80. package/src/components/Text/index.ts +0 -14
  81. package/src/components/Text/textBar.tsx +0 -104
  82. package/src/components/Text/types.ts +0 -13
  83. package/src/components/actionSheet/actionSheet.d.ts +0 -16
  84. package/src/components/actionSheet/actionSheet.tsx +0 -86
  85. package/src/components/actionSheet/index.ts +0 -6
  86. package/src/components/actionSheet/types.ts +0 -10
  87. package/src/components/app.vue +0 -59
  88. package/src/components/badge/badge.tsx +0 -80
  89. package/src/components/badge/index.ts +0 -12
  90. package/src/components/badge/types.ts +0 -8
  91. package/src/components/button/button.tsx +0 -105
  92. package/src/components/button/index.ts +0 -13
  93. package/src/components/button/types.ts +0 -13
  94. package/src/components/card/card.d.ts +0 -16
  95. package/src/components/card/card.tsx +0 -38
  96. package/src/components/card/index.ts +0 -12
  97. package/src/components/card/types.ts +0 -3
  98. package/src/components/cell/cell.tsx +0 -89
  99. package/src/components/cell/index.ts +0 -12
  100. package/src/components/cell/types.ts +0 -8
  101. package/src/components/cellSwipe/cellSwipe.tsx +0 -188
  102. package/src/components/cellSwipe/index.ts +0 -13
  103. package/src/components/cellSwipe/types.ts +0 -17
  104. package/src/components/checkBox/checkbox-group.tsx +0 -75
  105. package/src/components/checkBox/checkbox.tsx +0 -107
  106. package/src/components/checkBox/index.ts +0 -29
  107. package/src/components/checkBox/types.ts +0 -32
  108. package/src/components/header/header.tsx +0 -119
  109. package/src/components/header/index.ts +0 -13
  110. package/src/components/header/types.ts +0 -7
  111. package/src/components/loadMore/index.ts +0 -14
  112. package/src/components/loadMore/loadMore.tsx +0 -265
  113. package/src/components/loadMore/types.ts +0 -26
  114. package/src/components/message/confirm.ts +0 -104
  115. package/src/components/message/index.ts +0 -113
  116. package/src/components/message/message.tsx +0 -100
  117. package/src/components/message/messageGroup.tsx +0 -59
  118. package/src/components/message/types.ts +0 -48
  119. package/src/components/modal/confirm.ts +0 -123
  120. package/src/components/modal/index.ts +0 -68
  121. package/src/components/modal/modal.tsx +0 -248
  122. package/src/components/modal/types.ts +0 -51
  123. package/src/components/number/Number.tsx +0 -143
  124. package/src/components/number/index.ts +0 -10
  125. package/src/components/number/types.ts +0 -13
  126. package/src/components/picker/area-picker/area-picker.vue +0 -230
  127. package/src/components/picker/area-picker/props.js +0 -17
  128. package/src/components/picker/date-picker/date-picker.vue +0 -191
  129. package/src/components/picker/date-picker/props.js +0 -24
  130. package/src/components/picker/index.ts +0 -12
  131. package/src/components/picker/normal-picker/normal-picker.vue +0 -120
  132. package/src/components/picker/normal-picker/props.js +0 -20
  133. package/src/components/picker/picker-slot.vue +0 -217
  134. package/src/components/picker/picker.tsx +0 -112
  135. package/src/components/picker/types.ts +0 -17
  136. package/src/components/popup/index.ts +0 -12
  137. package/src/components/popup/popup.d.ts +0 -16
  138. package/src/components/popup/popup.tsx +0 -68
  139. package/src/components/popup/types.ts +0 -9
  140. package/src/components/progress/index.ts +0 -12
  141. package/src/components/progress/progress.tsx +0 -81
  142. package/src/components/progress/types.ts +0 -9
  143. package/src/components/prompt/confirm.ts +0 -104
  144. package/src/components/prompt/index.ts +0 -50
  145. package/src/components/prompt/prompt.tsx +0 -161
  146. package/src/components/prompt/types.ts +0 -45
  147. package/src/components/radioBox/index.ts +0 -34
  148. package/src/components/radioBox/radiobox-group.tsx +0 -66
  149. package/src/components/radioBox/radiobox-group1.vue +0 -66
  150. package/src/components/radioBox/radiobox.tsx +0 -115
  151. package/src/components/radioBox/radiobox1.vue +0 -89
  152. package/src/components/radioBox/types.ts +0 -24
  153. package/src/components/rater/index.ts +0 -12
  154. package/src/components/rater/rater.d.ts +0 -16
  155. package/src/components/rater/raters.tsx +0 -101
  156. package/src/components/rater/types.ts +0 -10
  157. package/src/components/slideBar/index.ts +0 -13
  158. package/src/components/slideBar/slideBar.tsx +0 -288
  159. package/src/components/slideBar/types.ts +0 -20
  160. package/src/components/spinner/behavior/blade.vue +0 -42
  161. package/src/components/spinner/behavior/double-bounce.vue +0 -38
  162. package/src/components/spinner/behavior/fading-circle.vue +0 -55
  163. package/src/components/spinner/behavior/snake.vue +0 -41
  164. package/src/components/spinner/behavior/triple-bounce.vue +0 -52
  165. package/src/components/spinner/index.ts +0 -13
  166. package/src/components/spinner/props.js +0 -28
  167. package/src/components/spinner/spinner.tsx +0 -85
  168. package/src/components/spinner/types.ts +0 -20
  169. package/src/components/swipe/index.ts +0 -13
  170. package/src/components/swipe/swipe.tsx +0 -292
  171. package/src/components/swipe/types.ts +0 -21
  172. package/src/components/switchbar/index.ts +0 -13
  173. package/src/components/switchbar/switchbar.tsx +0 -58
  174. package/src/components/switchbar/types.ts +0 -6
  175. package/src/components/tab/index.ts +0 -12
  176. package/src/components/tab/tab.tsx +0 -71
  177. package/src/components/tab/types.ts +0 -15
  178. package/src/components/toTop/index.ts +0 -13
  179. package/src/components/toTop/toTop.tsx +0 -54
  180. package/src/components/toTop/types.ts +0 -7
  181. package/src/components/upload/index.ts +0 -13
  182. package/src/components/upload/types.ts +0 -9
  183. package/src/components/upload/upload.tsx +0 -180
  184. package/src/config/config.js +0 -16
  185. package/src/directives/clickoutside.js +0 -42
  186. package/src/directives/tranferDom.js +0 -66
  187. package/src/index.d.ts +0 -131
  188. package/src/index.ts +0 -136
  189. package/src/lib/MegaPixImage.js +0 -164
  190. package/src/lib/MegaPixImageOld.js +0 -153
  191. package/src/lib/exif-js.js +0 -235
  192. package/src/lib/exif.js +0 -789
  193. package/src/lib/lib.js +0 -22
  194. package/src/main.ts +0 -33
  195. package/src/mixin/emitter.js +0 -72
  196. package/src/mixin/input.js +0 -41
  197. package/src/router.ts +0 -36
  198. package/src/shims-vue.d.ts +0 -37
  199. package/src/styles/base/font.less +0 -99
  200. package/src/styles/base/reset.less +0 -135
  201. package/src/styles/base/variable.less +0 -108
  202. package/src/styles/components/actionSheet.less +0 -43
  203. package/src/styles/components/badge.less +0 -81
  204. package/src/styles/components/button.less +0 -124
  205. package/src/styles/components/card.less +0 -31
  206. package/src/styles/components/cell-swipe.less +0 -20
  207. package/src/styles/components/cell.less +0 -75
  208. package/src/styles/components/checkBox.less +0 -113
  209. package/src/styles/components/editor.less +0 -3
  210. package/src/styles/components/header.less +0 -72
  211. package/src/styles/components/indicator.less +0 -39
  212. package/src/styles/components/loadmore.less +0 -48
  213. package/src/styles/components/message.less +0 -57
  214. package/src/styles/components/modal.less +0 -84
  215. package/src/styles/components/number.less +0 -60
  216. package/src/styles/components/picker.less +0 -152
  217. package/src/styles/components/popup.less +0 -46
  218. package/src/styles/components/progress.less +0 -52
  219. package/src/styles/components/prompt.less +0 -37
  220. package/src/styles/components/radioBox.less +0 -142
  221. package/src/styles/components/rater.less +0 -16
  222. package/src/styles/components/slide-Bar.less +0 -149
  223. package/src/styles/components/spinner.less +0 -329
  224. package/src/styles/components/swipe.less +0 -125
  225. package/src/styles/components/switchBar.less +0 -88
  226. package/src/styles/components/tab.less +0 -71
  227. package/src/styles/components/text.less +0 -82
  228. package/src/styles/components/toTop.less +0 -28
  229. package/src/styles/components/upload.less +0 -23
  230. package/src/styles/index.less +0 -39
  231. package/src/styles/utils/1px.less +0 -206
  232. package/src/styles/utils/animation.less +0 -165
  233. package/src/styles/utils/nowrap.less +0 -19
  234. package/src/template/index.ejs +0 -40
  235. package/src/types/index.d.ts +0 -127
  236. package/src/types/js-shims.d.ts +0 -36
  237. package/src/utils/test.ts +0 -2
  238. package/src/utils/util.ts +0 -168
  239. package/src/utils/util1.js +0 -202
  240. package/src/vconsole-resources.min.js +0 -6
  241. package/src/vconsole-sources.min.js +0 -6
  242. package/src/vconsole.min.js +0 -7
  243. package/src/views/ActionSheet.vue +0 -46
  244. package/src/views/Badge/Badge.less +0 -12
  245. package/src/views/Badge/Badge.tsx +0 -23
  246. package/src/views/Badge.vue +0 -53
  247. package/src/views/Button.vue +0 -69
  248. package/src/views/Card.vue +0 -89
  249. package/src/views/Cell.vue +0 -31
  250. package/src/views/CellSwipe.vue +0 -80
  251. package/src/views/CheckBox.vue +0 -78
  252. package/src/views/Header.vue +0 -71
  253. package/src/views/Indicator.vue +0 -82
  254. package/src/views/LoadMore.vue +0 -76
  255. package/src/views/Message.vue +0 -61
  256. package/src/views/Modal.vue +0 -69
  257. package/src/views/Picker.vue +0 -142
  258. package/src/views/Popup.vue +0 -103
  259. package/src/views/Progress.vue +0 -49
  260. package/src/views/Prompt.vue +0 -43
  261. package/src/views/RadioBox.vue +0 -70
  262. package/src/views/Rater.vue +0 -53
  263. package/src/views/SlideBar.vue +0 -62
  264. package/src/views/Spinner.vue +0 -27
  265. package/src/views/Swipe.vue +0 -59
  266. package/src/views/SwitchBar.vue +0 -49
  267. package/src/views/Tab.vue +0 -55
  268. package/src/views/Text.vue +0 -97
  269. package/src/views/ToTop.vue +0 -31
  270. package/src/views/Upload.vue +0 -65
  271. package/src/views/guide.vue +0 -164
  272. package/src/views/index.vue +0 -554
  273. package/tsconfig.build.json +0 -31
  274. package/tsconfig.json +0 -41
  275. package/webpack.base.config.js +0 -85
  276. package/webpack.dev.config.js +0 -43
  277. package/webpack.dist.dev.config.js +0 -76
  278. package/webpack.dist.prod.config.js +0 -90
  279. 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
- }