dpzvc3-ui 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +175 -0
  3. package/build-style.js +58 -0
  4. package/dist/dpzvc3.esm.js +17676 -0
  5. package/dist/dpzvc3.esm.js.map +1 -0
  6. package/dist/dpzvc3.esm.min.js +2 -0
  7. package/dist/dpzvc3.esm.min.js.map +1 -0
  8. package/dist/dpzvc3.js +15200 -0
  9. package/dist/dpzvc3.js.map +1 -0
  10. package/dist/dpzvc3.min.js +2 -0
  11. package/dist/dpzvc3.min.js.map +1 -0
  12. package/dist/styles/base/font.css +1 -0
  13. package/dist/styles/base/reset.css +1 -0
  14. package/dist/styles/base/variable.css +0 -0
  15. package/dist/styles/components/actionSheet.css +1 -0
  16. package/dist/styles/components/badge.css +1 -0
  17. package/dist/styles/components/button.css +1 -0
  18. package/dist/styles/components/card.css +1 -0
  19. package/dist/styles/components/cell-swipe.css +1 -0
  20. package/dist/styles/components/cell.css +1 -0
  21. package/dist/styles/components/checkBox.css +1 -0
  22. package/dist/styles/components/editor.css +1 -0
  23. package/dist/styles/components/header.css +1 -0
  24. package/dist/styles/components/indicator.css +1 -0
  25. package/dist/styles/components/loadmore.css +1 -0
  26. package/dist/styles/components/message.css +1 -0
  27. package/dist/styles/components/modal.css +1 -0
  28. package/dist/styles/components/number.css +1 -0
  29. package/dist/styles/components/picker.css +1 -0
  30. package/dist/styles/components/popup.css +1 -0
  31. package/dist/styles/components/progress.css +1 -0
  32. package/dist/styles/components/prompt.css +1 -0
  33. package/dist/styles/components/radioBox.css +1 -0
  34. package/dist/styles/components/slide-Bar.css +1 -0
  35. package/dist/styles/components/spinner.css +1 -0
  36. package/dist/styles/components/swipe.css +1 -0
  37. package/dist/styles/components/switchBar.css +1 -0
  38. package/dist/styles/components/tab.css +1 -0
  39. package/dist/styles/components/text.css +1 -0
  40. package/dist/styles/components/toTop.css +1 -0
  41. package/dist/styles/components/upload.css +1 -0
  42. package/dist/styles/dpzvc3.css +1 -0
  43. package/dist/styles/utils/1px.css +1 -0
  44. package/dist/styles/utils/animation.css +1 -0
  45. package/dist/styles/utils/nowrap.css +1 -0
  46. package/dist-prod/91.9d79b442ec3131707419.js +3 -0
  47. package/dist-prod/91.9d79b442ec3131707419.js.LICENSE.txt +25 -0
  48. package/dist-prod/91.9d79b442ec3131707419.js.map +1 -0
  49. package/dist-prod/actionsheet.e2f7c32d0120f5147a4f.chunk.js +2 -0
  50. package/dist-prod/actionsheet.e2f7c32d0120f5147a4f.chunk.js.map +1 -0
  51. package/dist-prod/badge.6038c4ccc54ffb56a645.chunk.js +2 -0
  52. package/dist-prod/badge.6038c4ccc54ffb56a645.chunk.js.map +1 -0
  53. package/dist-prod/button.28b491339fbba29c3f16.chunk.js +2 -0
  54. package/dist-prod/button.28b491339fbba29c3f16.chunk.js.map +1 -0
  55. package/dist-prod/card.3ad847f07bebc1391125.chunk.js +2 -0
  56. package/dist-prod/card.3ad847f07bebc1391125.chunk.js.map +1 -0
  57. package/dist-prod/cell.8920796a9ebd2d84bbd3.chunk.js +2 -0
  58. package/dist-prod/cell.8920796a9ebd2d84bbd3.chunk.js.map +1 -0
  59. package/dist-prod/cellswipe.53b0178e4638c201dcf1.chunk.js +2 -0
  60. package/dist-prod/cellswipe.53b0178e4638c201dcf1.chunk.js.map +1 -0
  61. package/dist-prod/checkbox.87403976981ee0f64f4a.chunk.js +2 -0
  62. package/dist-prod/checkbox.87403976981ee0f64f4a.chunk.js.map +1 -0
  63. package/dist-prod/guide.5195c74796a7a0e37f7b.chunk.js +2 -0
  64. package/dist-prod/guide.5195c74796a7a0e37f7b.chunk.js.map +1 -0
  65. package/dist-prod/header.e3cecc6d60f801c1c105.chunk.js +2 -0
  66. package/dist-prod/header.e3cecc6d60f801c1c105.chunk.js.map +1 -0
  67. package/dist-prod/index.html +19 -0
  68. package/dist-prod/indicator.6b0c7a91ca254c3586e8.chunk.js +2 -0
  69. package/dist-prod/indicator.6b0c7a91ca254c3586e8.chunk.js.map +1 -0
  70. package/dist-prod/loadmore.ba86c35311fc68ee215b.chunk.js +2 -0
  71. package/dist-prod/loadmore.ba86c35311fc68ee215b.chunk.js.map +1 -0
  72. package/dist-prod/main.2e9aaa9095e329ea2d7b.js +2 -0
  73. package/dist-prod/main.2e9aaa9095e329ea2d7b.js.map +1 -0
  74. package/dist-prod/message.e57fa263a214006f7191.chunk.js +2 -0
  75. package/dist-prod/message.e57fa263a214006f7191.chunk.js.map +1 -0
  76. package/dist-prod/modal.1172c8ba7d90503fc8e8.chunk.js +2 -0
  77. package/dist-prod/modal.1172c8ba7d90503fc8e8.chunk.js.map +1 -0
  78. package/dist-prod/picker.4ff114161c5c3f8df57a.chunk.js +2 -0
  79. package/dist-prod/picker.4ff114161c5c3f8df57a.chunk.js.map +1 -0
  80. package/dist-prod/popup.8f92c027932e4d47fa59.chunk.js +2 -0
  81. package/dist-prod/popup.8f92c027932e4d47fa59.chunk.js.map +1 -0
  82. package/dist-prod/progress.1e0d785044aecadc5615.chunk.js +2 -0
  83. package/dist-prod/progress.1e0d785044aecadc5615.chunk.js.map +1 -0
  84. package/dist-prod/prompt.c2b442c3dd0e6d8319bc.chunk.js +2 -0
  85. package/dist-prod/prompt.c2b442c3dd0e6d8319bc.chunk.js.map +1 -0
  86. package/dist-prod/radiobox.479703c69b75d473e85d.chunk.js +2 -0
  87. package/dist-prod/radiobox.479703c69b75d473e85d.chunk.js.map +1 -0
  88. package/dist-prod/rater.939e0e7e770728f684c3.chunk.js +2 -0
  89. package/dist-prod/rater.939e0e7e770728f684c3.chunk.js.map +1 -0
  90. package/dist-prod/slidebar.3d3f48a631f03a2210c9.chunk.js +2 -0
  91. package/dist-prod/slidebar.3d3f48a631f03a2210c9.chunk.js.map +1 -0
  92. package/dist-prod/spinner.f20e3bd8cec27d26afe0.chunk.js +2 -0
  93. package/dist-prod/spinner.f20e3bd8cec27d26afe0.chunk.js.map +1 -0
  94. package/dist-prod/swipe.2e5b0acc3bbb2bf49dd5.chunk.js +2 -0
  95. package/dist-prod/swipe.2e5b0acc3bbb2bf49dd5.chunk.js.map +1 -0
  96. package/dist-prod/switchbar.56d03d96c275ff4c65a1.chunk.js +2 -0
  97. package/dist-prod/switchbar.56d03d96c275ff4c65a1.chunk.js.map +1 -0
  98. package/dist-prod/tab.4c391211c41b7d12b585.chunk.js +2 -0
  99. package/dist-prod/tab.4c391211c41b7d12b585.chunk.js.map +1 -0
  100. package/dist-prod/text.ee2804ba87e6a460aa7d.chunk.js +2 -0
  101. package/dist-prod/text.ee2804ba87e6a460aa7d.chunk.js.map +1 -0
  102. package/dist-prod/totop.c6f9dce152bb6abe5cb2.chunk.js +2 -0
  103. package/dist-prod/totop.c6f9dce152bb6abe5cb2.chunk.js.map +1 -0
  104. package/dist-prod/upload.ec7a954970889869d93e.chunk.js +2 -0
  105. package/dist-prod/upload.ec7a954970889869d93e.chunk.js.map +1 -0
  106. package/images/IMG_2614 2 2.JPG +0 -0
  107. package/images/IMG_2614.JPG +0 -0
  108. package/images/IMG_2615 2.JPG +0 -0
  109. package/images/IMG_2615.JPG +0 -0
  110. package/package.json +113 -0
  111. package/postcss.config.js +5 -0
  112. package/src/components/Indicator/Indicator.vue +82 -0
  113. package/src/components/Indicator/index.js +86 -0
  114. package/src/components/Text/Number.vue +167 -0
  115. package/src/components/Text/index.js +7 -0
  116. package/src/components/Text/textBar.vue +122 -0
  117. package/src/components/action-sheet/actionSheet.vue +93 -0
  118. package/src/components/action-sheet/index.js +5 -0
  119. package/src/components/app.vue +61 -0
  120. package/src/components/badge/badge.vue +80 -0
  121. package/src/components/badge/index.js +5 -0
  122. package/src/components/button/button.vue +111 -0
  123. package/src/components/button/index.js +5 -0
  124. package/src/components/card/card.vue +49 -0
  125. package/src/components/card/index.js +5 -0
  126. package/src/components/cell/cell.vue +93 -0
  127. package/src/components/cell/index.js +5 -0
  128. package/src/components/cell-swipe/cell-swipe.vue +169 -0
  129. package/src/components/cell-swipe/index.js +5 -0
  130. package/src/components/checkBox/checkbox-group.vue +74 -0
  131. package/src/components/checkBox/checkbox.vue +117 -0
  132. package/src/components/checkBox/index.js +8 -0
  133. package/src/components/header/header.vue +130 -0
  134. package/src/components/header/index.js +5 -0
  135. package/src/components/loadMore/index.js +5 -0
  136. package/src/components/loadMore/loadmore.vue +258 -0
  137. package/src/components/message/confirm.js +60 -0
  138. package/src/components/message/index.js +111 -0
  139. package/src/components/message/message.vue +137 -0
  140. package/src/components/message/messageGroup.vue +82 -0
  141. package/src/components/modal/confirm.js +122 -0
  142. package/src/components/modal/index.js +52 -0
  143. package/src/components/modal/modal.vue +138 -0
  144. package/src/components/picker/area-picker/area-picker.vue +230 -0
  145. package/src/components/picker/area-picker/props.js +17 -0
  146. package/src/components/picker/date-picker/date-picker.vue +191 -0
  147. package/src/components/picker/date-picker/props.js +24 -0
  148. package/src/components/picker/index.js +5 -0
  149. package/src/components/picker/normal-picker/normal-picker.vue +120 -0
  150. package/src/components/picker/normal-picker/props.js +20 -0
  151. package/src/components/picker/picker-slot.vue +217 -0
  152. package/src/components/picker/picker.vue +111 -0
  153. package/src/components/popup/index.js +5 -0
  154. package/src/components/popup/popup.vue +91 -0
  155. package/src/components/progress/index.js +5 -0
  156. package/src/components/progress/progress.vue +86 -0
  157. package/src/components/prompt/confirm.js +91 -0
  158. package/src/components/prompt/index.js +53 -0
  159. package/src/components/prompt/prompt.vue +125 -0
  160. package/src/components/radioBox/index.js +8 -0
  161. package/src/components/radioBox/radiobox-group.vue +66 -0
  162. package/src/components/radioBox/radiobox.vue +88 -0
  163. package/src/components/rater/index.js +5 -0
  164. package/src/components/rater/rater.vue +118 -0
  165. package/src/components/slideBar/index.js +6 -0
  166. package/src/components/slideBar/slideBar.vue +207 -0
  167. package/src/components/spinner/behavior/blade.vue +42 -0
  168. package/src/components/spinner/behavior/double-bounce.vue +38 -0
  169. package/src/components/spinner/behavior/fading-circle.vue +55 -0
  170. package/src/components/spinner/behavior/snake.vue +41 -0
  171. package/src/components/spinner/behavior/triple-bounce.vue +52 -0
  172. package/src/components/spinner/index.js +5 -0
  173. package/src/components/spinner/props.js +28 -0
  174. package/src/components/spinner/spinner.vue +78 -0
  175. package/src/components/swipe/index.js +5 -0
  176. package/src/components/swipe/swipe.vue +281 -0
  177. package/src/components/switchbar/index.js +5 -0
  178. package/src/components/switchbar/switchbar.vue +79 -0
  179. package/src/components/tab/index.js +6 -0
  180. package/src/components/tab/tab.vue +89 -0
  181. package/src/components/toTop/index.js +5 -0
  182. package/src/components/toTop/topTop.vue +78 -0
  183. package/src/components/upload/index.js +5 -0
  184. package/src/components/upload/upload.vue +166 -0
  185. package/src/config/config.js +16 -0
  186. package/src/directives/clickoutside.js +42 -0
  187. package/src/directives/tranferDom.js +66 -0
  188. package/src/index.js +149 -0
  189. package/src/lib/MegaPixImage.js +163 -0
  190. package/src/lib/MegaPixImageOld.js +153 -0
  191. package/src/lib/exif-js.js +235 -0
  192. package/src/lib/exif.js +789 -0
  193. package/src/main.js +31 -0
  194. package/src/mixin/emitter.js +72 -0
  195. package/src/mixin/input.js +41 -0
  196. package/src/router.js +36 -0
  197. package/src/styles/base/font.less +99 -0
  198. package/src/styles/base/reset.less +135 -0
  199. package/src/styles/base/variable.less +108 -0
  200. package/src/styles/components/actionSheet.less +43 -0
  201. package/src/styles/components/badge.less +81 -0
  202. package/src/styles/components/button.less +124 -0
  203. package/src/styles/components/card.less +31 -0
  204. package/src/styles/components/cell-swipe.less +20 -0
  205. package/src/styles/components/cell.less +75 -0
  206. package/src/styles/components/checkBox.less +113 -0
  207. package/src/styles/components/editor.less +3 -0
  208. package/src/styles/components/header.less +72 -0
  209. package/src/styles/components/indicator.less +39 -0
  210. package/src/styles/components/loadmore.less +48 -0
  211. package/src/styles/components/message.less +57 -0
  212. package/src/styles/components/modal.less +84 -0
  213. package/src/styles/components/number.less +60 -0
  214. package/src/styles/components/picker.less +152 -0
  215. package/src/styles/components/popup.less +46 -0
  216. package/src/styles/components/progress.less +52 -0
  217. package/src/styles/components/prompt.less +37 -0
  218. package/src/styles/components/radioBox.less +138 -0
  219. package/src/styles/components/slide-Bar.less +149 -0
  220. package/src/styles/components/spinner.less +329 -0
  221. package/src/styles/components/swipe.less +125 -0
  222. package/src/styles/components/switchBar.less +88 -0
  223. package/src/styles/components/tab.less +71 -0
  224. package/src/styles/components/text.less +82 -0
  225. package/src/styles/components/toTop.less +28 -0
  226. package/src/styles/components/upload.less +23 -0
  227. package/src/styles/index.less +38 -0
  228. package/src/styles/utils/1px.less +206 -0
  229. package/src/styles/utils/animation.less +165 -0
  230. package/src/styles/utils/nowrap.less +19 -0
  231. package/src/template/index.ejs +40 -0
  232. package/src/utils/util.js +202 -0
  233. package/src/vconsole-resources.min.js +6 -0
  234. package/src/vconsole-sources.min.js +6 -0
  235. package/src/vconsole.min.js +7 -0
  236. package/src/views/ActionSheet.vue +46 -0
  237. package/src/views/Badge.vue +51 -0
  238. package/src/views/Button.vue +69 -0
  239. package/src/views/Card.vue +88 -0
  240. package/src/views/Cell.vue +30 -0
  241. package/src/views/CellSwipe.vue +68 -0
  242. package/src/views/CheckBox.vue +77 -0
  243. package/src/views/Header.vue +70 -0
  244. package/src/views/Indicator.vue +82 -0
  245. package/src/views/LoadMore.vue +73 -0
  246. package/src/views/Message.vue +61 -0
  247. package/src/views/Modal.vue +69 -0
  248. package/src/views/Picker.vue +140 -0
  249. package/src/views/Popup.vue +97 -0
  250. package/src/views/Progress.vue +47 -0
  251. package/src/views/Prompt.vue +43 -0
  252. package/src/views/RadioBox.vue +68 -0
  253. package/src/views/Rater.vue +49 -0
  254. package/src/views/SlideBar.vue +55 -0
  255. package/src/views/Spinner.vue +15 -0
  256. package/src/views/Swipe.vue +59 -0
  257. package/src/views/SwitchBar.vue +47 -0
  258. package/src/views/Tab.vue +53 -0
  259. package/src/views/Text.vue +93 -0
  260. package/src/views/ToTop.vue +17 -0
  261. package/src/views/Upload.vue +61 -0
  262. package/src/views/guide.vue +164 -0
  263. package/src/views/index.vue +554 -0
  264. package/webpack.base.config.js +65 -0
  265. package/webpack.dev.config.js +42 -0
  266. package/webpack.dist.dev.config.js +75 -0
  267. package/webpack.dist.prod.config.js +89 -0
  268. package/webpack.prod.config.js +51 -0
@@ -0,0 +1,140 @@
1
+ <template>
2
+ <div class="Picker">
3
+ <!-- AreaPicker -->
4
+ <Picker
5
+ v-model="AreaVisible"
6
+ type="AreaPicker"
7
+ @sure="pickerSure"
8
+ @cancle="pickerCancle"
9
+ />
10
+
11
+ <!-- DatePicker -->
12
+ <Picker
13
+ v-model="DateVisible"
14
+ type="DatePicker"
15
+ :date-value="'2025/12/25'"
16
+ @sure="pickerSure"
17
+ @cancle="pickerCancle"
18
+ />
19
+ <!-- NormalPicker -->
20
+ <Picker
21
+ v-model="NormalVisible"
22
+ type="NormalPicker"
23
+ :list="listRef"
24
+ :init-arr="initArrRef"
25
+ @sure="pickerSure"
26
+ @cancle="pickerCancle"
27
+ />
28
+ <div class="item">
29
+ <VButton
30
+ width="30%"
31
+ @click="DateVisible = true"
32
+ >
33
+ 日期选择器
34
+ </VButton>
35
+ <VButton
36
+ width="30%"
37
+ @click="AreaVisible = true"
38
+ >
39
+ 地区选择器
40
+ </VButton>
41
+ <VButton
42
+ width="30%"
43
+ @click="NormalVisible = true"
44
+ >
45
+ 通用选择器
46
+ </VButton>
47
+ </div>
48
+ </div>
49
+ </template>
50
+
51
+ <script>
52
+ import { ref, getCurrentInstance } from 'vue'
53
+
54
+ export default {
55
+ name: 'ViewPicker',
56
+ setup () {
57
+ const AreaVisible = ref(false)
58
+ const DateVisible = ref(false)
59
+ const NormalVisible = ref(false)
60
+ const initArrRef = ref([1, 3, 3])
61
+ const listRef = ref([
62
+ {
63
+ target: 'targetA',
64
+ list: [{ value: 'a', code: 1 }, { value: 2, code: 2 }, { value: 3, code: 3 }, {
65
+ value: 4,
66
+ code: 4
67
+ }, { value: 5, code: 5 }, { value: 6, code: 6 }, { value: 7, code: 7 }, {
68
+ value: 8,
69
+ code: 8
70
+ }, { value: 'c', code: 9 }, { value: 0, code: 0 }]
71
+ },
72
+ {
73
+ target: 'targetB',
74
+ list: [{ value: 'b', code: 1 }, { value: 2, code: 2 }, { value: 3, code: 3 }, {
75
+ value: 4,
76
+ code: 4
77
+ }, { value: 5, code: 5 }, { value: 6, code: 6 }, { value: 7, code: 7 }, {
78
+ value: 8,
79
+ code: 8
80
+ }, { value: 9, code: 9 }, { value: 0, code: 0 }]
81
+ },
82
+ {
83
+ target: 'targetC',
84
+ list: [{ value: 'c', code: 1 }, { value: 2, code: 2 }, { value: 3, code: 3 }, {
85
+ value: 4,
86
+ code: 4
87
+ }, { value: 5, code: 5 }, { value: 6, code: 6 }, { value: 7, code: 7 }, {
88
+ value: 8,
89
+ code: 8
90
+ }, { value: 9, code: 9 }, { value: 0, code: 0 }]
91
+ }
92
+ ]) // code为唯一值,value为显示出的具体文本
93
+ const { proxy } = getCurrentInstance()
94
+ // 选择确定回调
95
+ function pickerSure (value) {
96
+ // console.log(value)
97
+ // 如果全局 $Modal 可用
98
+ if (proxy) {
99
+ proxy.$Modal.confirm({ body: value.formArea || value.formatDate || JSON.stringify(value) })
100
+ }
101
+ if (!value.formArea && !value.formatDate) {
102
+ // console.log(value, 'value')
103
+ initArrRef.value = [value.targetA.code, value.targetB.code, value.targetC.code]
104
+ }
105
+ }
106
+
107
+ // 选择取消回调
108
+ function pickerCancle () {
109
+ if (proxy) {
110
+ proxy.$Message.show({ text: '您选择了取消' })
111
+ }
112
+ }
113
+
114
+ return {
115
+ AreaVisible,
116
+ DateVisible,
117
+ NormalVisible,
118
+ pickerSure,
119
+ pickerCancle,
120
+ listRef,
121
+ initArrRef
122
+ }
123
+ }
124
+ }
125
+ </script>
126
+
127
+ <style lang="less" scoped>
128
+ .Picker {
129
+ position: relative;
130
+ height: 100%;
131
+
132
+ .item {
133
+ box-sizing: border-box;
134
+ display: flex;
135
+ justify-content: space-around;
136
+ align-items: center;
137
+ padding: 50px 0;
138
+ }
139
+ }
140
+ </style>
@@ -0,0 +1,97 @@
1
+ <template>
2
+ <div class="Popup">
3
+ <VButton
4
+ width="50%"
5
+ @click.native="showPop('top')"
6
+ >
7
+ Top
8
+ </VButton>
9
+ <VButton
10
+ width="50%"
11
+ @click.native="showPop('right')"
12
+ >
13
+ Right
14
+ </VButton>
15
+ <VButton
16
+ width="50%"
17
+ @click.native="showPop('bottom')"
18
+ >
19
+ Bottom
20
+ </VButton>
21
+ <VButton
22
+ width="50%"
23
+ @click.native="showPop('left')"
24
+ >
25
+ Left
26
+ </VButton>
27
+
28
+ <Popup
29
+ v-model="show"
30
+ :position="side"
31
+ :width="width"
32
+ :height="height"
33
+ show-mask=""
34
+ />
35
+ </div>
36
+ </template>
37
+
38
+ <script>
39
+
40
+ export default {
41
+ name: 'ViewPopup',
42
+ data () {
43
+ return {
44
+ side: 'top',
45
+ show: false,
46
+ sideList: ['top', 'right', 'bottom', 'left'],
47
+ width: '100%',
48
+ height: '100%'
49
+ }
50
+ },
51
+
52
+ methods: {
53
+ showPop (side) {
54
+ this.show = false
55
+ this.$nextTick(() => {
56
+ if (this.sideList.indexOf(side) < 0) side = 'top'
57
+
58
+ switch (side) {
59
+ case 'top':
60
+ this.width = '100%'
61
+ this.height = 0
62
+ break
63
+ case 'right':
64
+ this.width = '70%'
65
+ this.height = '100%'
66
+ break
67
+ case 'bottom':
68
+ this.width = '100%'
69
+ this.height = '70%'
70
+ break
71
+ case 'left':
72
+ this.width = '70%'
73
+ this.height = '100%'
74
+ break
75
+ }
76
+
77
+ this.side = side
78
+
79
+ setTimeout(() => {
80
+ this.show = true
81
+ }, 350)
82
+ })
83
+ }
84
+ }
85
+ }
86
+ </script>
87
+
88
+ <style scoped>
89
+
90
+ .Popup {
91
+ height: 100%;
92
+ display: flex;
93
+ flex-direction: column;
94
+ justify-content: space-around;
95
+ align-items: center;
96
+ }
97
+ </style>
@@ -0,0 +1,47 @@
1
+ <template>
2
+ <div class="Progress">
3
+ <DpProgress
4
+ v-model="progress"
5
+ :bar-height="barHeight"
6
+ />
7
+ </div>
8
+ </template>
9
+
10
+ <script>
11
+ import { defineComponent, ref, onMounted, onBeforeUnmount } from 'vue'
12
+
13
+ export default defineComponent({
14
+ name: 'ViewDpProgress',
15
+
16
+ setup () {
17
+ const progress = ref(0)
18
+ const barHeight = ref(5)
19
+ let timer = null
20
+
21
+ onMounted(() => {
22
+ timer = setInterval(() => {
23
+ progress.value += 1
24
+ if (progress.value >= 100) {
25
+ clearInterval(timer)
26
+ timer = null
27
+ }
28
+ }, 100)
29
+ })
30
+
31
+ onBeforeUnmount(() => {
32
+ timer && clearInterval(timer)
33
+ })
34
+
35
+ return {
36
+ progress,
37
+ barHeight
38
+ }
39
+ }
40
+ })
41
+ </script>
42
+
43
+ <style lang="less" scoped>
44
+ .Progress {
45
+ padding-top: 50px;
46
+ }
47
+ </style>
@@ -0,0 +1,43 @@
1
+ <template>
2
+ <div class="Prompt">
3
+ <VButton
4
+ width="50%"
5
+ @click="showPrompt"
6
+ >
7
+ 弹出Prompt
8
+ </VButton>
9
+ </div>
10
+ </template>
11
+
12
+ <script>
13
+ import { defineComponent, getCurrentInstance } from 'vue'
14
+
15
+ export default defineComponent({
16
+ name: 'ViewPrompt',
17
+ setup () {
18
+ // 获取当前组件实例
19
+ const { proxy } = getCurrentInstance()
20
+
21
+ function showPrompt () {
22
+ proxy.$Prompt.info({
23
+ title: 'Prompt',
24
+ spec: 'ccc',
25
+ text: 'vvvv'
26
+ })
27
+ }
28
+
29
+ return {
30
+ showPrompt
31
+ }
32
+ }
33
+ })
34
+ </script>
35
+
36
+ <style lang="less" scoped>
37
+ .Prompt {
38
+ display: flex;
39
+ justify-content: center;
40
+ align-items: center;
41
+ height: 100%;
42
+ }
43
+ </style>
@@ -0,0 +1,68 @@
1
+ <template>
2
+ <div class="RadioBox">
3
+ <p>Radio组合</p>
4
+ <div class="item">
5
+ <RadioBoxGroup v-model="radio">
6
+ <RadioBox label="中国" />
7
+ <RadioBox label="美国" />
8
+ <RadioBox label="日本" />
9
+ </RadioBoxGroup>
10
+ </div>
11
+ <div class="item">
12
+ value: {{ radio }}
13
+ </div>
14
+
15
+ <p>单个Radio</p>
16
+ <RadioBox
17
+ v-model="checked"
18
+ label="苹果"
19
+ />
20
+ <div class="item">
21
+ checked: {{ checked }}
22
+ </div>
23
+
24
+ <p>禁用的Radio</p>
25
+ <div class="item">
26
+ <RadioBox
27
+ label="玩具"
28
+ :disable="true"
29
+ />
30
+ </div>
31
+ </div>
32
+ </template>
33
+
34
+ <script>
35
+ import { defineComponent, ref } from 'vue'
36
+
37
+ export default defineComponent({
38
+ name: 'ViewRadioBox',
39
+ setup () {
40
+ const checked = ref(false)
41
+ const radio = ref('')
42
+
43
+ return {
44
+ checked,
45
+ radio
46
+ }
47
+ }
48
+ })
49
+ </script>
50
+
51
+ <style lang="less" scoped>
52
+ .RadioBox {
53
+ padding-top: 100px;
54
+
55
+ p {
56
+ width: 100%;
57
+ font-weight: bold;
58
+ font-size: 16px;
59
+ margin: 20px 0;
60
+ }
61
+
62
+ .item {
63
+ width: 100%;
64
+ display: flex;
65
+ justify-content: center;
66
+ }
67
+ }
68
+ </style>
@@ -0,0 +1,49 @@
1
+ <template>
2
+ <div class="Rater">
3
+ <p>可点击评分</p>
4
+ <Rater v-model="rate" />
5
+ <span>{{ rate }}</span>
6
+
7
+ <p>不可点击评分</p>
8
+ <Rater
9
+ v-model="disabledRate"
10
+ :disabled="true"
11
+ />
12
+ <span>{{ disabledRate }}</span>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ import { defineComponent, ref } from 'vue'
18
+
19
+ export default defineComponent({
20
+ name: 'ViewRater',
21
+ setup () {
22
+ const rate = ref(0)
23
+ const disabledRate = ref(4.5)
24
+
25
+ return {
26
+ rate,
27
+ disabledRate
28
+ }
29
+ }
30
+ })
31
+ </script>
32
+
33
+ <style lang="less" scoped>
34
+ .Rater {
35
+ width: 100%;
36
+ padding-top: 50px;
37
+ display: flex;
38
+ flex-direction: column;
39
+ justify-content: center;
40
+ align-items: center;
41
+
42
+ p {
43
+ text-indent: 10px;
44
+ font-weight: bold;
45
+ font-size: 14px;
46
+ margin: 10px 0;
47
+ }
48
+ }
49
+ </style>
@@ -0,0 +1,55 @@
1
+ <template>
2
+ <div class="SlideBar">
3
+ <Slide-bar
4
+ :list="items"
5
+ :flex="false"
6
+ :index="index"
7
+ :can-drag="false"
8
+ height="100%"
9
+ scroll-height="50px"
10
+ :is-fixed-header="true"
11
+ >
12
+ <!-- 具名插槽语法 Vue3 -->
13
+ <template #slot-item-0>
14
+ <div style="height:100%; flex: 1; background:red; overflow: scroll;">
15
+ <div style="height: 40px; width: 100%; background-color: blue;" />
16
+ <div style="height: 40px; width: 100%; background-color: blue;" />
17
+ <div style="height: 40px; width: 100%; background-color: blue;" />
18
+ <div style="height: 40px; width: 100%; background-color: blue;" />
19
+ <div style="height: 40px; width: 100%; background-color: blue;" />
20
+ </div>
21
+ </template>
22
+
23
+ <template #slot-item-1>
24
+ <div style="height:200px; flex:1; background:yellow;" />
25
+ </template>
26
+
27
+ <template #slot-item-2>
28
+ <div style="height:200px; flex:1; background:black;" />
29
+ </template>
30
+ </Slide-bar>
31
+ </div>
32
+ </template>
33
+
34
+ <script>
35
+ import { defineComponent, ref } from 'vue'
36
+
37
+ export default defineComponent({
38
+ name: 'ViewSlideBar',
39
+ setup () {
40
+ const items = ref([
41
+ { name: '选项一' },
42
+ { name: '选项二' },
43
+ { name: '选项三' }
44
+ ])
45
+ const index = ref(1)
46
+ return { items, index }
47
+ }
48
+ })
49
+ </script>
50
+
51
+ <style lang="less" scoped>
52
+ .SlideBar {
53
+ width: 100%;
54
+ }
55
+ </style>
@@ -0,0 +1,15 @@
1
+ <template>
2
+ <div class="Spinner">
3
+ <Spinner />
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'ViewSpinner'
10
+ }
11
+ </script>
12
+
13
+ <style scoped>
14
+
15
+ </style>
@@ -0,0 +1,59 @@
1
+ <template>
2
+ <div class="swipe">
3
+ <Swipe
4
+ :multiple="false"
5
+ :list="files"
6
+ >
7
+ <template #default="props">
8
+ <div>
9
+ <img
10
+ :src="props.item.image"
11
+ :alt="props.item.name"
12
+ >
13
+ </div>
14
+ </template>
15
+ </Swipe>
16
+ </div>
17
+ </template>
18
+
19
+ <script>
20
+ import { defineComponent, ref } from 'vue'
21
+
22
+ export default defineComponent({
23
+ name: 'ViewSwipe',
24
+ setup () {
25
+ const files = ref([
26
+ {
27
+ id: 521,
28
+ ad_id: 10,
29
+ name: '玩转大数据分析!Spark2.X+Python 精华实战课程',
30
+ image: 'https://o74ly5e8r.qnssl.com/9MhSVW1gJD.png',
31
+ link: 'https://edu.hellobi.com/course/222'
32
+ },
33
+ {
34
+ id: 506,
35
+ ad_id: 10,
36
+ name: '数据分析报告制作秘籍升级版',
37
+ image: 'https://o74ly5e8r.qnssl.com/EAbxDnBMcX.png',
38
+ link: 'https://edu.hellobi.com/course/132'
39
+ },
40
+ {
41
+ id: 504,
42
+ ad_id: 10,
43
+ name: '独一无二的数据仓库建模指引系列教程升级版(连载中)',
44
+ image: 'https://o74ly5e8r.qnssl.com/dmJqsjtLNS.png',
45
+ link: 'https://edu.hellobi.com/course/102'
46
+ }
47
+ ])
48
+
49
+ return { files }
50
+ }
51
+ })
52
+ </script>
53
+
54
+ <style lang="less" scoped>
55
+ .swipe {
56
+ padding-top: 100px;
57
+ width: 100%;
58
+ }
59
+ </style>
@@ -0,0 +1,47 @@
1
+ <template>
2
+ <div class="SwitchBar">
3
+ <SwitchBar
4
+ v-model="checkLarge"
5
+ size="large"
6
+ />
7
+ <span>large</span>
8
+ <SwitchBar
9
+ v-model="checkSmall"
10
+ size="small"
11
+ />
12
+ <span>small</span>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ import { defineComponent, ref } from 'vue'
18
+
19
+ export default defineComponent({
20
+ name: 'ViewSwitchBar',
21
+ setup () {
22
+ const checkLarge = ref(false)
23
+ const checkSmall = ref(false)
24
+
25
+ return {
26
+ checkLarge,
27
+ checkSmall
28
+ }
29
+ }
30
+ })
31
+ </script>
32
+
33
+ <style lang="less" scoped>
34
+ .SwitchBar {
35
+ padding-top: 100px;
36
+ display: flex;
37
+ justify-content: space-around;
38
+ align-items: center;
39
+ height: 100%;
40
+
41
+ span {
42
+ font-weight: bold;
43
+ font-size: 14px;
44
+ // align-self: flex-start;
45
+ }
46
+ }
47
+ </style>
@@ -0,0 +1,53 @@
1
+ <template>
2
+ <div class="Tab">
3
+ <Tab
4
+ :items="items"
5
+ :index="index"
6
+ :border="hasBorder"
7
+ :styles="styles"
8
+ />
9
+ </div>
10
+ </template>
11
+
12
+ <script>
13
+ import { defineComponent, ref } from 'vue'
14
+
15
+ export default defineComponent({
16
+ name: 'ViewTab',
17
+ setup () {
18
+ const items = ref([
19
+ {
20
+ path: '/guide',
21
+ name: '首页',
22
+ iconCur: '<span class="iconfont icon-shangcheng"></span>',
23
+ icon: '<span class="iconfont icon-shangcheng"></span>'
24
+ },
25
+ {
26
+ path: '/guide',
27
+ name: '首页',
28
+ iconCur: '<span class="iconfont icon-shangcheng"></span>',
29
+ icon: '<span class="iconfont icon-shangcheng"></span>'
30
+ }
31
+ ])
32
+
33
+ const index = ref(0)
34
+ const hasBorder = ref(true)
35
+ const styles = ref({
36
+ bottom: 0
37
+ })
38
+
39
+ return {
40
+ items,
41
+ index,
42
+ hasBorder,
43
+ styles
44
+ }
45
+ }
46
+ })
47
+ </script>
48
+
49
+ <style scoped>
50
+ .Tab {
51
+ height: 100%;
52
+ }
53
+ </style>