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,75 +0,0 @@
1
- // src/components/checkbox-group/CheckboxGroup.tsx
2
- import { defineComponent, ref, watch, provide, PropType } from 'vue'
3
- import type { CheckBoxGroupProps, CheckBoxGroupValue, CheckBoxGroupExpose, CheckBoxGroupInject } from './types'
4
-
5
- const prefixCls = 'dpzvc3-checkBoxGroup'
6
-
7
- export default defineComponent({
8
- name: 'DpzVcCheckBoxGroup',
9
-
10
- props: {
11
- modelValue: {
12
- type: Array as PropType<CheckBoxGroupValue>,
13
- default: () => []
14
- },
15
- single: {
16
- type: Boolean,
17
- default: false
18
- },
19
- vertical: {
20
- type: Boolean,
21
- default: false
22
- }
23
- },
24
-
25
- emits: ['update:modelValue', 'on-change'],
26
-
27
- setup(props, { emit, slots, expose }) {
28
- const currentValue = ref<CheckBoxGroupValue>([...props.modelValue])
29
-
30
- /** 对外暴露给 checkbox 的方法 */
31
- const toggleOption = (value: CheckBoxGroupValue) => {
32
- let newValue: CheckBoxGroupValue = []
33
-
34
- if (props.single) {
35
- // 单选模式,只保留第一个
36
- newValue = [value[0]]
37
- } else {
38
- newValue = [...value]
39
- }
40
-
41
- currentValue.value = newValue
42
- emit('update:modelValue', newValue)
43
- emit('on-change', newValue)
44
- }
45
-
46
- /** 提供给子组件注入 */
47
- provide<CheckBoxGroupInject>('CheckBoxGroup', {
48
- currentValue,
49
- toggleOption,
50
- single: props.single,
51
- })
52
-
53
- /** watch 外部 modelValue 同步 */
54
- watch(
55
- () => props.modelValue,
56
- (val) => {
57
- currentValue.value = [...val]
58
- }
59
- )
60
-
61
- /** expose 给父组件通过 ref 调用 */
62
- expose<CheckBoxGroupExpose>({
63
- toggleOption
64
- })
65
-
66
- return () => (
67
- <div class={[
68
- prefixCls,
69
- props.vertical ? `${prefixCls}-vertical` : ''
70
- ]}>
71
- {slots.default?.()}
72
- </div>
73
- )
74
- }
75
- })
@@ -1,107 +0,0 @@
1
- // src/components/checkbox/Checkbox.tsx
2
- import {
3
- defineComponent,
4
- ref,
5
- computed,
6
- inject,
7
- watch,
8
- onMounted,
9
- PropType
10
- } from 'vue'
11
- import type { CheckBoxProps, CheckBoxGroupInject, CheckBoxLabel } from './types'
12
- export type { CheckBoxProps }
13
-
14
- const prefixCls = 'dpzvc3-checkbox'
15
-
16
- export default defineComponent({
17
- name: 'DpzVcCheckBox',
18
-
19
- props: {
20
- disable: { type: Boolean, default: false },
21
- modelValue: { type: Boolean, default: false },
22
- label: { type: [String, Number, Boolean] as PropType<CheckBoxLabel> }
23
- },
24
-
25
- emits: ['update:modelValue', 'on-change'],
26
-
27
- setup(props, { emit, slots }) {
28
- /** 注入 checkboxGroup(由 CheckBoxGroup provide) */
29
- const checkboxGroup = inject<CheckBoxGroupInject | null>('CheckBoxGroup', null)
30
- const isGroup = ref(!!checkboxGroup)
31
-
32
- const currentValue = ref<boolean>(props.modelValue)
33
- const show = ref(true)
34
- const slotRef = ref<HTMLElement | null>(null)
35
-
36
- /** classes */
37
- const classes = computed(() => [prefixCls])
38
- const wrapperClasses = computed(() => [
39
- `${prefixCls}-wrapper`,
40
- {
41
- [`${prefixCls}-checked`]: currentValue.value,
42
- [`${prefixCls}-disable`]: props.disable
43
- }
44
- ])
45
- const innerClasses = computed(() => [`${prefixCls}-inner`])
46
-
47
- /** watch 外部 modelValue 同步 */
48
- watch(
49
- () => props.modelValue,
50
- val => {
51
- currentValue.value = val
52
- }
53
- )
54
-
55
- /** change 处理 */
56
- const change = (e: Event) => {
57
- if (props.disable) return
58
-
59
- const target = e.target as HTMLInputElement
60
- const checked = target.checked
61
- currentValue.value = checked
62
-
63
- if (isGroup.value && checkboxGroup) {
64
- const value = [...checkboxGroup.currentValue.value]
65
- const index = value.indexOf(props.label as any)
66
- if (checked && index === -1) value.push(props.label as any)
67
- if (!checked && index > -1) value.splice(index, 1)
68
- checkboxGroup.toggleOption(value)
69
- } else {
70
- emit('update:modelValue', checked)
71
- emit('on-change', checked)
72
- }
73
- }
74
-
75
- onMounted(() => {
76
- if (isGroup.value && checkboxGroup) {
77
- const value = [...checkboxGroup.currentValue.value]
78
- const index = value.indexOf(props.label as any)
79
- if (index !== -1) currentValue.value = true
80
- }
81
- if (slotRef.value && !slotRef.value.innerHTML) {
82
- show.value = false
83
- }
84
- })
85
-
86
- return () => (
87
- <label class={classes.value}>
88
- <span class={wrapperClasses.value}>
89
- <span class={innerClasses.value} />
90
- <input
91
- type="checkbox"
92
- class={`${prefixCls}-input noselect`}
93
- disabled={props.disable}
94
- checked={currentValue.value}
95
- onChange={change}
96
- />
97
- </span>
98
-
99
- {show.value && (
100
- <span ref={slotRef}>
101
- {slots.default?.() ?? props.label}
102
- </span>
103
- )}
104
- </label>
105
- )
106
- }
107
- })
@@ -1,29 +0,0 @@
1
- /**
2
-
3
- */
4
- // CheckBox.group = CheckGroup
5
- // export default CheckBox
6
- import type { App } from 'vue'
7
- import CheckBox from './checkbox'
8
- import CheckBoxGroup from './checkbox-group'
9
-
10
-
11
-
12
- CheckBox.install = (app: App): void => {
13
- app.component('CheckBox', CheckBox); // 注册全局组件
14
- }
15
- type IWithInstall<T> = T & { install(app: App): void };
16
- const _CheckBox = CheckBox as IWithInstall<typeof CheckBox>;
17
-
18
-
19
-
20
- CheckBoxGroup.install = (app: App): void => {
21
- app.component('CheckBoxGroup', CheckBoxGroup); // 注册全局组件
22
- }
23
- const _CheckBoxGroup = CheckBoxGroup as IWithInstall<typeof CheckBoxGroup>;
24
-
25
- export {
26
- _CheckBox as CheckBox,
27
- _CheckBoxGroup as CheckBoxGroup
28
- }
29
- export type { CheckBoxProps, CheckBoxGroupProps } from './types'
@@ -1,32 +0,0 @@
1
- // src/components/checkbox-group/types.ts
2
-
3
- // import checkboxGroup from "./checkbox-group"
4
- // checkbox.types.ts
5
- import type { Ref } from 'vue'
6
-
7
- export type CheckBoxLabel = string | number | boolean
8
-
9
- export interface CheckBoxProps {
10
- modelValue?: boolean
11
- label?: CheckBoxLabel
12
- disable?: boolean
13
- }
14
-
15
- export interface CheckBoxGroupInject {
16
- currentValue: Ref<Array<string | number>>
17
- toggleOption: (value: Array<string | number>) => void
18
- single?: boolean
19
- }
20
-
21
- // checkboxGroup.types.ts
22
- export type CheckBoxGroupValue = Array<string | number>
23
-
24
- export interface CheckBoxGroupProps {
25
- modelValue?: CheckBoxGroupValue
26
- single?: boolean
27
- vertical?: boolean
28
- }
29
-
30
- export interface CheckBoxGroupExpose {
31
- toggleOption: (value: CheckBoxGroupValue) => void
32
- }
@@ -1,119 +0,0 @@
1
- // src/components/header/header.tsx
2
- import {
3
- defineComponent,
4
- ref,
5
- computed,
6
- onMounted,
7
- watch,
8
- PropType
9
- } from 'vue'
10
-
11
- import type { HeaderProps } from './types'
12
- export type { HeaderProps }
13
-
14
- const prefixCls = 'dpzvc3-header'
15
-
16
- export default defineComponent({
17
- name: 'Dpzvc3Header',
18
-
19
- props: {
20
- modelValue: {
21
- type: Boolean as PropType<boolean>,
22
- default: true
23
- },
24
- fixed: {
25
- type: Boolean as PropType<boolean>,
26
- default: true
27
- },
28
- title: {
29
- type: String as PropType<string>,
30
- default: ''
31
- },
32
- wechat: {
33
- type: Boolean as PropType<boolean>,
34
- default: false
35
- }
36
- },
37
-
38
- emits: ['update:modelValue'],
39
-
40
- setup(props, { emit, slots }) {
41
- const visible = ref<boolean>(props.modelValue)
42
- const isWechat = ref<boolean>(props.wechat)
43
-
44
- /** class 计算 */
45
- const classes = computed(() => [
46
- prefixCls,
47
- props.fixed && `${prefixCls}-fixed`
48
- ])
49
-
50
- /** UA 判断 */
51
- const isWeixin = computed(() =>
52
- /micromessenger/i.test(window.navigator.userAgent)
53
- )
54
-
55
- const isPcWeixin = computed(() =>
56
- /windowswechat/i.test(window.navigator.userAgent)
57
- )
58
-
59
- /** v-model 同步 */
60
- watch(
61
- () => props.modelValue,
62
- val => {
63
- visible.value = val
64
- }
65
- )
66
-
67
- watch(
68
- () => props.wechat,
69
- val => {
70
- isWechat.value = val
71
- }
72
- )
73
-
74
- /** mounted 逻辑 */
75
- onMounted(() => {
76
- if ((isWeixin.value || isPcWeixin.value) && !isWechat.value) {
77
- emit('update:modelValue', false)
78
- }
79
- })
80
-
81
- /** 返回 */
82
- const back = () => {
83
- window.history.back()
84
- }
85
-
86
- /** JSX render */
87
- return () =>
88
- visible.value ? (
89
- <div class={classes.value}>
90
- <header>
91
- {/* left */}
92
- <div class="left" onClick={back}>
93
- {slots.left ? (
94
- slots.left()
95
- ) : (
96
- <>
97
- <span class="arrow" />
98
- <span class="text">返回</span>
99
- </>
100
- )}
101
- </div>
102
-
103
- {/* title */}
104
- <div class="title dpzvc3-nowrap">
105
- {props.title}
106
- </div>
107
-
108
- {/* right */}
109
- <div class="right">
110
- {slots.right ? slots.right() : <div />}
111
- </div>
112
- </header>
113
-
114
- {/* 占位 */}
115
- {props.fixed && <div class="header-place" />}
116
- </div>
117
- ) : null
118
- }
119
- })
@@ -1,13 +0,0 @@
1
- /**
2
- * Created by admin on 2025/5/4.
3
- */
4
- import type { App } from 'vue'
5
- import DpHeader from './header'
6
- DpHeader.install = (app: App): void => {
7
- app.component('DpHeader', DpHeader); // 注册全局组件
8
- }
9
- type IWithInstall<T> = T & { install(app: App): void };
10
- const _DpzHeader=DpHeader as IWithInstall<typeof DpHeader>;
11
- export default _DpzHeader
12
- export type { HeaderProps } from './types'
13
- // export default DpHeader
@@ -1,7 +0,0 @@
1
- // src/components/header/types.ts
2
- export interface HeaderProps {
3
- modelValue?: boolean
4
- fixed?: boolean
5
- title?: string
6
- wechat?: boolean
7
- }
@@ -1,14 +0,0 @@
1
- /**
2
- * Created by admin on 2025/6/19.
3
- */
4
- import type { App } from 'vue'
5
- import DpLoadMore from './loadMore'
6
- // export default LoadMore
7
- DpLoadMore.install = (app: App): void => {
8
- app.component('DpLoadMore', DpLoadMore); // 注册全局组件
9
- }
10
- type IWithInstall<T> = T & { install(app: App): void };
11
- const _DpLoadMore=DpLoadMore as IWithInstall<typeof DpLoadMore>;
12
- export default _DpLoadMore
13
- // export default LoadMore
14
- export type { LoadmoreProps } from './types'
@@ -1,265 +0,0 @@
1
- // src/components/Loadmore/Loadmore.tsx
2
- import {
3
- defineComponent,
4
- ref,
5
- computed,
6
- watch,
7
- onMounted,
8
- onBeforeUnmount
9
- } from 'vue'
10
- import type { PropType, CSSProperties } from 'vue'
11
- import Spinner from '../spinner'
12
- import type { LoadmoreProps } from './types'
13
-
14
- const prefixCls = 'dpzvc3-loadmore'
15
-
16
- export default defineComponent({
17
- name: 'Dpzvc3Loadmore',
18
-
19
- props: {
20
- height: {
21
- type: [Number, String] as PropType<number | string>,
22
- default: '100%'
23
- },
24
- refresh: Function as PropType<LoadmoreProps['refresh']>,
25
- upLoadingText: { type: String, default: '加载中...' },
26
- upDistance: { type: Number, default: 70 },
27
- upPullText: { type: String, default: '↓ 下拉刷新' },
28
- upDropText: { type: String, default: '↑ 释放更新' },
29
- maxDistance: { type: Number, default: 0 },
30
- speed: { type: Number, default: 3 },
31
-
32
- downEndText: { type: String, default: '没有更多了' },
33
- downDropText: { type: String, default: '↑ 上拉加载数据' },
34
- downLoadingText: { type: String, default: '加载中...' },
35
- downDistance: { type: Number, default: 50 },
36
- loadMore: Function as PropType<LoadmoreProps['loadMore']>,
37
- hasMore: { type: Boolean, default: true },
38
-
39
- styles: {
40
- type: Object as PropType<CSSProperties>,
41
- default: () => ({})
42
- },
43
- auto: { type: Boolean, default: true },
44
- autoFill: { type: Boolean, default: true }
45
- },
46
-
47
- emits: ['on-change-up-status', 'on-change-down-status'],
48
-
49
- setup(props, { slots, emit, expose }) {
50
- const containerRef = ref<HTMLDivElement | null>(null)
51
-
52
- /** 状态 */
53
- const translateY = ref(0)
54
- const startTranslateY = ref(0)
55
- const currentY = ref(0)
56
- const startY = ref(0)
57
- const upStatus = ref('')
58
- const downStatus = ref('')
59
- const direction = ref('')
60
- const upText = ref('')
61
- const downText = ref('')
62
- const down = ref(false)
63
- const drag = ref(false)
64
- const more = ref(props.hasMore)
65
-
66
- /** classes */
67
- const containerClasses = computed(() => [prefixCls])
68
- const topClasses = computed(() => [
69
- `${prefixCls}-top`,
70
- { [`${prefixCls}-drag`]: !drag.value }
71
- ])
72
- const bottomClasses = computed(() => [`${prefixCls}-bottom`])
73
- const contentClasses = computed(() => [`${prefixCls}-content`])
74
- const statusClass = computed(() => [`${prefixCls}-status`])
75
-
76
- /** watch */
77
- watch(upStatus, val => {
78
- switch (val) {
79
- case 'pull': upText.value = props.upPullText; break
80
- case 'drop': upText.value = props.upDropText; break
81
- case 'loading': upText.value = props.upLoadingText; break
82
- }
83
- emit('on-change-up-status', val)
84
- })
85
-
86
- watch(downStatus, val => {
87
- switch (val) {
88
- case 'end': downText.value = props.downEndText; break
89
- case 'drop': downText.value = props.downDropText; break
90
- case 'loading': downText.value = props.downLoadingText; break
91
- default: downText.value = ''; break
92
- }
93
- emit('on-change-down-status', val)
94
- })
95
-
96
- watch(() => props.hasMore, val => {
97
- more.value = val
98
- if (!val) downStatus.value = 'end'
99
- })
100
-
101
- /** utils */
102
- const isBottom = () => {
103
- const el = containerRef.value
104
- return !!el && el.scrollHeight <= el.offsetHeight
105
- }
106
-
107
- const onLoadOff = () => {
108
- translateY.value = 0
109
- upStatus.value = ''
110
- downStatus.value = ''
111
- if (!more.value) downStatus.value = 'end'
112
-
113
- setTimeout(() => {
114
- if (more.value && isBottom()) {
115
- direction.value = 'up'
116
- downStatus.value = 'loading'
117
- props.loadMore?.()
118
- }
119
- }, 1000)
120
- }
121
-
122
- /** scroll */
123
- const onScroll = (e: Event) => {
124
- e.preventDefault()
125
- if (downStatus.value === 'loading') return
126
-
127
- const el = containerRef.value
128
- if (!el || !props.loadMore) return
129
-
130
- const scrollTop = el.scrollTop
131
- const absY = el.scrollHeight - (el.offsetHeight + scrollTop)
132
-
133
- if (absY > props.downDistance && downStatus.value === 'drop') {
134
- downStatus.value = ''
135
- } else if (absY <= props.downDistance) {
136
- downStatus.value = 'loading'
137
- // props.loadMore()
138
- if (more.value) props.loadMore()
139
- else setTimeout(onLoadOff, 1000)
140
- }
141
- }
142
-
143
- /** touch */
144
- const onTouchStart = (e: TouchEvent) => {
145
- if (upStatus.value === 'loading') return
146
- startY.value = e.touches[0].clientY
147
- startTranslateY.value = translateY.value
148
- down.value = false
149
- }
150
-
151
- const onTouchMove = (e: TouchEvent) => {
152
- const el = containerRef.value
153
- if (!el || upStatus.value === 'loading') return
154
-
155
- currentY.value = e.touches[0].clientY
156
- const distance = (currentY.value - startY.value) / props.speed
157
- const scrollTop = el.scrollTop
158
- direction.value = distance > 0 ? 'down' : 'up'
159
-
160
- if (
161
- currentY.value >= startY.value &&
162
- props.refresh &&
163
- scrollTop === 0 &&
164
- direction.value === 'down'
165
- ) {
166
- e.preventDefault()
167
- translateY.value = props.maxDistance > 0
168
- ? Math.min(distance - scrollTop, props.maxDistance)
169
- : distance - scrollTop
170
-
171
- if (translateY.value < 0) translateY.value = 0
172
- upStatus.value = translateY.value >= props.upDistance ? 'drop' : 'pull'
173
- drag.value = true
174
- down.value = down.value || isBottom()
175
- }
176
- }
177
-
178
- const onTouchEnd = () => {
179
- const el = containerRef.value
180
- if (!el || upStatus.value === 'loading') return
181
-
182
- if (direction.value === 'down' && el.scrollTop <= 0) {
183
- if (upStatus.value === 'drop') {
184
- translateY.value = 40
185
- upStatus.value = 'loading'
186
- props.refresh?.()
187
- } else {
188
- translateY.value = 0
189
- }
190
- }
191
- direction.value = ''
192
- drag.value = false
193
- }
194
-
195
- onMounted(() => {
196
- if (props.auto && props.refresh) {
197
- translateY.value = 40
198
- upStatus.value = 'loading'
199
- props.refresh()
200
- }
201
-
202
- const el = containerRef.value
203
- el?.addEventListener('touchstart', onTouchStart)
204
- el?.addEventListener('touchmove', onTouchMove)
205
- el?.addEventListener('touchend', onTouchEnd)
206
- })
207
-
208
- onBeforeUnmount(() => {
209
- const el = containerRef.value
210
- el?.removeEventListener('touchstart', onTouchStart)
211
- el?.removeEventListener('touchmove', onTouchMove)
212
- el?.removeEventListener('touchend', onTouchEnd)
213
- })
214
- expose({ onLoadOff })
215
- return () => (
216
- <div
217
- ref={containerRef}
218
- class={containerClasses.value}
219
- style={{ height: props.height, ...props.styles }}
220
- onScroll={onScroll}
221
- >
222
- {props.refresh && (
223
- <div
224
- class={topClasses.value}
225
- style={{ height: `${translateY.value}px` }}
226
- >
227
- <div class={statusClass.value}>
228
- {slots.top?.() ?? (
229
- <>
230
- <span class="spinner">
231
- {upStatus.value === 'loading' && (
232
- <Spinner size="15" type="snake" />
233
- )}
234
- </span>
235
- <span class="dpzvc3-loadmore-text">{upText.value}</span>
236
- </>
237
- )}
238
- </div>
239
- </div>
240
- )}
241
-
242
- <div class={contentClasses.value}>
243
- {slots.default?.()}
244
- </div>
245
-
246
- {props.loadMore && (
247
- <div class={bottomClasses.value}>
248
- <div class={statusClass.value}>
249
- {slots.bottom?.() ?? (
250
- <>
251
- <span class="spinner">
252
- {downStatus.value === 'loading' && (
253
- <Spinner size="15" type="snake" />
254
- )}
255
- </span>
256
- <span class="dpzvc3-loadmore-text">{downText.value}</span>
257
- </>
258
- )}
259
- </div>
260
- </div>
261
- )}
262
- </div>
263
- )
264
- }
265
- })
@@ -1,26 +0,0 @@
1
- // src/components/Loadmore/types.ts
2
- export interface LoadmoreProps {
3
- height?: number | string
4
-
5
- /** 下拉刷新 */
6
- refresh?: () => void
7
- upLoadingText?: string
8
- upDistance?: number
9
- upPullText?: string
10
- upDropText?: string
11
- maxDistance?: number
12
- speed?: number
13
-
14
- /** 上拉加载 */
15
- loadMore?: () => void
16
- downEndText?: string
17
- downDropText?: string
18
- downLoadingText?: string
19
- downDistance?: number
20
- hasMore?: boolean
21
-
22
- /** 其他 */
23
- styles?: Record<string, any>
24
- auto?: boolean
25
- autoFill?: boolean
26
- }