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,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
- }