@10yun/cv-mobile-ui 0.3.26 → 0.4.2

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 (235) hide show
  1. package/build/parse-pages.js +2 -2
  2. package/package.json +1 -1
  3. package/ui-cv/README.md +3 -0
  4. package/ui-cv/cv-badge/cv-badge.vue +249 -0
  5. package/ui-cv/cv-banner/cv-banner.vue +1 -1
  6. package/ui-cv/cv-banner-card/cv-banner-card.vue +1 -1
  7. package/ui-cv/cv-block/cv-block.vue +1 -1
  8. package/ui-cv/cv-box/cv-box.vue +1 -1
  9. package/ui-cv/cv-calendar/calendar.js +963 -0
  10. package/ui-cv/cv-calendar/cv-calendar-item.vue +198 -0
  11. package/ui-cv/cv-calendar/cv-calendar.vue +508 -0
  12. package/{ui-uni/uni-calendar → ui-cv/cv-calendar}/util.js +0 -0
  13. package/ui-cv/cv-card/cv-card.vue +427 -0
  14. package/ui-cv/cv-cell/cv-cell.vue +1 -1
  15. package/ui-cv/cv-checkbox-group/cv-checkbox-group.vue +227 -0
  16. package/ui-cv/cv-checkbox-opt-base/cv-checkbox-opt-base.vue +57 -0
  17. package/ui-cv/cv-checkbox-opt-tag/cv-checkbox-opt-tag.vue +107 -0
  18. package/ui-cv/cv-code-sms/cv-code-sms.vue +23 -42
  19. package/ui-cv/cv-col/cv-col.vue +2965 -0
  20. package/ui-cv/cv-collapse/cv-collapse.vue +146 -0
  21. package/ui-cv/cv-collapse-item/cv-collapse-item.vue +395 -0
  22. package/ui-cv/cv-combox/cv-combox.vue +250 -0
  23. package/ui-cv/cv-countdown/cv-countdown.vue +245 -0
  24. package/ui-cv/cv-data-checkbox/cv-data-checkbox.vue +841 -0
  25. package/{ui-uni/uni-data-indexed-list → ui-cv/cv-data-indexed-list}/clientdb.js +0 -0
  26. package/ui-cv/cv-data-indexed-list/cv-data-indexed-list-item.vue +154 -0
  27. package/ui-cv/cv-data-indexed-list/cv-data-indexed-list.vue +376 -0
  28. package/ui-cv/cv-data-picker/cv-data-picker.vue +486 -0
  29. package/{ui-uni/uni-data-picker → ui-cv/cv-data-picker}/keypress.js +0 -0
  30. package/{ui-uni/uni-data-pickerview/uni-data-picker.js → ui-cv/cv-data-pickerview/cv-data-picker.js} +0 -0
  31. package/ui-cv/cv-data-pickerview/cv-data-pickerview.vue +304 -0
  32. package/ui-cv/cv-dateformat/cv-dateformat.vue +86 -0
  33. package/{ui-uni/uni-dateformat → ui-cv/cv-dateformat}/date-format.js +0 -0
  34. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/calendar-item.vue +0 -0
  35. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/calendar.js +0 -0
  36. package/ui-cv/cv-datetime-picker/calendar.vue +761 -0
  37. package/ui-cv/cv-datetime-picker/cv-datetime-picker.vue +958 -0
  38. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/keypress.js +0 -0
  39. package/ui-cv/cv-datetime-picker/time-picker.vue +907 -0
  40. package/{ui-uni/uni-datetime-picker → ui-cv/cv-datetime-picker}/util.js +0 -0
  41. package/ui-cv/cv-dialog-bottom/cv-dialog-bottom.vue +1 -1
  42. package/ui-cv/cv-dialog-full/cv-dialog-full.vue +1 -1
  43. package/ui-cv/cv-dialog-loading/cv-dialog-loading.vue +3 -3
  44. package/ui-cv/cv-drawer/cv-drawer.vue +185 -0
  45. package/{ui-uni/uni-drawer → ui-cv/cv-drawer}/keypress.js +14 -14
  46. package/{ui-uni/uni-easyinput → ui-cv/cv-easyinput}/common.js +0 -0
  47. package/ui-cv/cv-easyinput/cv-easyinput.vue +514 -0
  48. package/ui-cv/cv-editor-parse/readme.md +2 -3
  49. package/ui-cv/{cv-editor → cv-editor-quill}/compressImage.vue +0 -0
  50. package/ui-cv/{cv-editor/cv-editor.vue → cv-editor-quill/cv-editor-quill.vue} +3 -23
  51. package/ui-cv/{cv-editor → cv-editor-quill}/editor-icon.css +0 -0
  52. package/ui-cv/{cv-editor → cv-editor-quill}/editor-icon.ttf +0 -0
  53. package/ui-cv/{cv-editor → cv-editor-quill}/index.js +0 -0
  54. package/ui-cv/cv-fab/cv-fab.vue +465 -0
  55. package/{ui-uni/uni-fab/uni-fab.vue.bak → ui-cv/cv-fab/cv-fab.vue.bak} +2 -2
  56. package/ui-cv/cv-fav/cv-fav.vue +150 -0
  57. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/choose-and-upload-file.js +0 -0
  58. package/ui-cv/cv-file-picker/cv-file-picker.vue +619 -0
  59. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/upload-file.vue +0 -0
  60. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/upload-image.vue +0 -0
  61. package/{ui-uni/uni-file-picker → ui-cv/cv-file-picker}/utils.js +0 -0
  62. package/ui-cv/cv-form-base/cv-form-base.vue +470 -0
  63. package/ui-cv/cv-form-base/validate.js +477 -0
  64. package/ui-cv/cv-form-group/cv-form-group.vue +123 -80
  65. package/ui-cv/cv-form-group/cv-form-group2.vue +80 -0
  66. package/ui-cv/cv-form-item/cv-form-item.vue +482 -174
  67. package/ui-cv/cv-form-item/cv-form-item2.vue +215 -0
  68. package/ui-cv/cv-form-merge/cv-form-merge.vue +1 -1
  69. package/ui-cv/cv-geo-local/cv-geo-local.vue +14 -26
  70. package/{ui-uni/uni-goods-nav/uni-goods-nav.vue → ui-cv/cv-goods-nav/cv-goods-nav.vue} +1 -1
  71. package/ui-cv/cv-grid-group/cv-grid-group.vue +148 -0
  72. package/ui-cv/cv-grid-item/cv-grid-item.vue +132 -0
  73. package/ui-cv/cv-icon2/cv-icon2.vue +78 -0
  74. package/ui-cv/cv-icon2/icons.js +132 -0
  75. package/{ui-uni/uni-icons → ui-cv/cv-icon2}/uni.ttf +0 -0
  76. package/ui-cv/cv-icons/cv-icons.vue +1 -1
  77. package/ui-cv/cv-indexed-list/cv-indexed-list-item.vue +154 -0
  78. package/ui-cv/cv-indexed-list/cv-indexed-list.vue +371 -0
  79. package/ui-cv/cv-info/cv-info.vue +5 -20
  80. package/ui-cv/cv-input-btn/cv-input-btn.vue +25 -43
  81. package/ui-cv/cv-input-digit/cv-input-digit.vue +61 -28
  82. package/ui-cv/cv-input-idcard/cv-input-idcard.vue +47 -29
  83. package/ui-cv/cv-input-number/cv-input-number.vue +60 -28
  84. package/ui-cv/cv-input-password/cv-input-password.vue +80 -30
  85. package/ui-cv/cv-input-text/cv-input-text.vue +55 -37
  86. package/ui-cv/cv-link2/cv-link2.vue +130 -0
  87. package/ui-cv/cv-list/cv-list.vue +107 -0
  88. package/ui-cv/cv-list/cv-refresh.vue +65 -0
  89. package/{ui-uni/uni-list → ui-cv/cv-list}/uni-refresh.wxs +0 -0
  90. package/ui-cv/cv-list-ad/cv-list-ad.vue +113 -0
  91. package/{ui-uni/uni-list-chat/uni-list-chat.scss → ui-cv/cv-list-chat/cv-list-chat.scss} +0 -0
  92. package/{ui-uni/uni-list-chat/uni-list-chat.vue → ui-cv/cv-list-chat/cv-list-chat.vue} +0 -0
  93. package/ui-cv/cv-list-item/cv-list-item.vue +449 -0
  94. package/ui-cv/cv-load-more/config.json +9 -9
  95. package/ui-cv/cv-load-more/cv-load-more.vue +34 -5
  96. package/ui-cv/cv-message/cv-message.vue +1 -1
  97. package/ui-cv/cv-nav-bar/cv-nav-bar.vue +256 -0
  98. package/{ui-uni/uni-nav-bar/uni-status-bar.vue → ui-cv/cv-nav-bar/cv-status-bar.vue} +0 -0
  99. package/ui-cv/cv-nav-col/cv-nav-col.vue +1 -1
  100. package/ui-cv/cv-nav-row/cv-nav-row.vue +1 -1
  101. package/ui-cv/cv-notice-bar/cv-notice-bar.vue +453 -0
  102. package/ui-cv/cv-number-box/cv-number-box.vue +223 -0
  103. package/ui-cv/cv-pagination/cv-pagination.vue +397 -0
  104. package/ui-cv/cv-picker-date/cv-picker-date.vue +17 -27
  105. package/ui-cv/cv-picker-datetime/cv-picker-datetime.vue +31 -41
  106. package/ui-cv/cv-picker-datetime5/cv-picker-datetime5.vue +19 -29
  107. package/ui-cv/cv-picker-region/cv-picker-region.vue +23 -33
  108. package/ui-cv/cv-picker-time/cv-picker-time.vue +16 -26
  109. package/ui-cv/cv-picker1/cv-picker1.vue +16 -28
  110. package/ui-cv/cv-picker2/cv-picker2.vue +22 -32
  111. package/ui-cv/cv-picker3/cv-picker3.vue +34 -44
  112. package/ui-cv/cv-popup/cv-popup.vue +429 -0
  113. package/{ui-uni/uni-popup → ui-cv/cv-popup}/keypress.js +0 -0
  114. package/{ui-uni/uni-popup → ui-cv/cv-popup}/popup.js +0 -0
  115. package/{ui-uni/uni-popup-dialog/uni-popup-dialog.vue → ui-cv/cv-popup-dialog/cv-popup-dialog.vue} +0 -0
  116. package/{ui-uni/uni-popup-dialog → ui-cv/cv-popup-dialog}/keypress.js +0 -0
  117. package/ui-cv/cv-popup-message/cv-popup-message.vue +143 -0
  118. package/{ui-uni/uni-popup-share/uni-popup-share.vue → ui-cv/cv-popup-share/cv-popup-share.vue} +0 -0
  119. package/ui-cv/cv-radio-group/cv-radio-group.vue +185 -0
  120. package/ui-cv/cv-radio-opt-base/cv-radio-opt-base.vue +57 -0
  121. package/ui-cv/cv-radio-opt-tag/cv-radio-opt-tag.vue +107 -0
  122. package/ui-cv/cv-rate/cv-rate.vue +13 -17
  123. package/ui-cv/cv-rate/uni-rate.vue +358 -0
  124. package/ui-cv/cv-row/cv-row.vue +157 -0
  125. package/ui-cv/cv-search/cv-search.vue +4 -4
  126. package/ui-cv/cv-search-bar/cv-search-bar.vue +280 -0
  127. package/{ui-uni/uni-section/uni-section.vue → ui-cv/cv-section/cv-section.vue} +0 -0
  128. package/{ui-uni/uni-segmented-control/uni-segmented-control.vue → ui-cv/cv-segmented-control/cv-segmented-control.vue} +0 -0
  129. package/ui-cv/cv-skeleton/cv-skeleton2.vue +5 -5
  130. package/ui-cv/cv-specs/cv-specs.vue +1 -1
  131. package/{ui-uni/uni-status-bar/uni-status-bar.vue → ui-cv/cv-status-bar/cv-status-bar.vue} +0 -0
  132. package/ui-cv/cv-steps/cv-steps.vue +293 -0
  133. package/{ui-uni/uni-swipe-action/uni-swipe-action.vue → ui-cv/cv-swipe-action/cv-swipe-action.vue} +0 -0
  134. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/bindingx.js +0 -0
  135. package/{ui-uni/uni-swipe-action-item/uni-swipe-action-item.vue → ui-cv/cv-swipe-action-item/cv-swipe-action-item.vue} +0 -0
  136. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/index.wxs +0 -0
  137. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/isPC.js +0 -0
  138. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/mpalipay.js +0 -0
  139. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/mpother.js +0 -0
  140. package/{ui-uni/uni-swipe-action-item → ui-cv/cv-swipe-action-item}/mpwxs.js +0 -0
  141. package/ui-cv/cv-swiper-dot/cv-swiper-dot.vue +255 -0
  142. package/ui-cv/cv-switch/cv-switch.vue +5 -9
  143. package/ui-cv/cv-table/cv-table.vue +460 -0
  144. package/ui-cv/cv-tag/cv-tag.vue +276 -0
  145. package/ui-cv/cv-tbody/cv-tbody.vue +28 -0
  146. package/ui-cv/cv-td/cv-td.vue +93 -0
  147. package/{ui-uni/uni-test/uni-test.vue → ui-cv/cv-test/cv-test.vue} +0 -0
  148. package/ui-cv/cv-textarea/cv-textarea.vue +56 -41
  149. package/ui-cv/cv-th/cv-th.vue +270 -0
  150. package/{ui-uni/uni-th → ui-cv/cv-th}/filter-dropdown.vue +0 -0
  151. package/ui-cv/cv-thead/cv-thead.vue +114 -0
  152. package/ui-cv/cv-title/cv-title.vue +168 -0
  153. package/ui-cv/cv-tr/cv-tr.vue +166 -0
  154. package/{ui-uni/uni-tr → ui-cv/cv-tr}/table-checkbox.vue +0 -0
  155. package/{ui-uni/uni-transition → ui-cv/cv-transition}/createAnimation.js +0 -0
  156. package/ui-cv/cv-transition/cv-transition.vue +279 -0
  157. package/ui-cv/cv-upload-avatar/cv-upload-avatar.vue +24 -22
  158. package/ui-cv/cv-upload-img/cv-upload-img.vue +1 -1
  159. package/ui-cv/mixins/mixins-input.js +20 -29
  160. package/ui-cv/mixins/mixins-picker.js +1 -13
  161. package/ui-uni/amap-wx/js/util.js +158 -166
  162. package/ui-uni/product.vue +52 -52
  163. package/ui-uni/u-charts/u-charts.js +1092 -743
  164. package/ui-cv/cv-checkbox/cv-checkbox.vue +0 -140
  165. package/ui-cv/cv-checkbox-tag/cv-checkbox-tag.vue +0 -164
  166. package/ui-cv/cv-nav-group/cv-nav-group.vue +0 -33
  167. package/ui-cv/cv-radio/cv-radio.vue +0 -111
  168. package/ui-cv/cv-radio-sex/cv-radio-sex.vue +0 -80
  169. package/ui-cv/cv-radio-tag/cv-radio-tag.vue +0 -133
  170. package/ui-cv/mixins/mixins-checkbox.js +0 -71
  171. package/ui-cv/mixins/mixins-common.js +0 -53
  172. package/ui-cv/mixins/mixins-radio.js +0 -84
  173. package/ui-uni/page-foot/page-foot.vue +0 -38
  174. package/ui-uni/page-head/page-head.vue +0 -16
  175. package/ui-uni/u-link/u-link.vue +0 -59
  176. package/ui-uni/uni-badge/uni-badge.vue +0 -250
  177. package/ui-uni/uni-calendar/calendar.js +0 -546
  178. package/ui-uni/uni-calendar/uni-calendar-item.vue +0 -171
  179. package/ui-uni/uni-calendar/uni-calendar.vue +0 -504
  180. package/ui-uni/uni-card/uni-card.vue +0 -420
  181. package/ui-uni/uni-col/uni-col.vue +0 -2968
  182. package/ui-uni/uni-collapse/uni-collapse.vue +0 -146
  183. package/ui-uni/uni-collapse-item/uni-collapse-item.vue +0 -378
  184. package/ui-uni/uni-combox/uni-combox.vue +0 -237
  185. package/ui-uni/uni-countdown/uni-countdown.vue +0 -234
  186. package/ui-uni/uni-data-checkbox/uni-data-checkbox.vue +0 -792
  187. package/ui-uni/uni-data-indexed-list/uni-data-indexed-list-item.vue +0 -142
  188. package/ui-uni/uni-data-indexed-list/uni-data-indexed-list.vue +0 -364
  189. package/ui-uni/uni-data-picker/uni-data-picker.vue +0 -468
  190. package/ui-uni/uni-data-pickerview/uni-data-pickerview.vue +0 -298
  191. package/ui-uni/uni-dateformat/uni-dateformat.vue +0 -88
  192. package/ui-uni/uni-datetime-picker/calendar.vue +0 -747
  193. package/ui-uni/uni-datetime-picker/time-picker.vue +0 -899
  194. package/ui-uni/uni-datetime-picker/uni-datetime-picker.vue +0 -874
  195. package/ui-uni/uni-drawer/uni-drawer.vue +0 -178
  196. package/ui-uni/uni-easyinput/uni-easyinput.vue +0 -438
  197. package/ui-uni/uni-fab/uni-fab.vue +0 -443
  198. package/ui-uni/uni-fav/uni-fav.vue +0 -136
  199. package/ui-uni/uni-file-picker/uni-file-picker.vue +0 -614
  200. package/ui-uni/uni-forms/uni-forms.vue +0 -467
  201. package/ui-uni/uni-forms/validate.js +0 -486
  202. package/ui-uni/uni-forms-item/uni-forms-item.vue +0 -500
  203. package/ui-uni/uni-grid/uni-grid.vue +0 -141
  204. package/ui-uni/uni-grid-item/uni-grid-item.vue +0 -123
  205. package/ui-uni/uni-group/uni-group.vue +0 -123
  206. package/ui-uni/uni-icons/icons.js +0 -132
  207. package/ui-uni/uni-icons/uni-icons.vue +0 -72
  208. package/ui-uni/uni-indexed-list/uni-indexed-list-item.vue +0 -142
  209. package/ui-uni/uni-indexed-list/uni-indexed-list.vue +0 -357
  210. package/ui-uni/uni-link/uni-link.vue +0 -117
  211. package/ui-uni/uni-list/uni-list.vue +0 -107
  212. package/ui-uni/uni-list/uni-refresh.vue +0 -65
  213. package/ui-uni/uni-list-ad/uni-list-ad.vue +0 -106
  214. package/ui-uni/uni-list-item/uni-list-item.vue +0 -428
  215. package/ui-uni/uni-load-more/uni-load-more.vue +0 -366
  216. package/ui-uni/uni-nav-bar/uni-nav-bar.vue +0 -244
  217. package/ui-uni/uni-notice-bar/uni-notice-bar.vue +0 -394
  218. package/ui-uni/uni-number-box/uni-number-box.vue +0 -224
  219. package/ui-uni/uni-pagination/uni-pagination.vue +0 -376
  220. package/ui-uni/uni-popup/uni-popup.vue +0 -412
  221. package/ui-uni/uni-popup-message/uni-popup-message.vue +0 -143
  222. package/ui-uni/uni-rate/uni-rate.vue +0 -357
  223. package/ui-uni/uni-row/uni-row.vue +0 -155
  224. package/ui-uni/uni-search-bar/uni-search-bar.vue +0 -262
  225. package/ui-uni/uni-steps/uni-steps.vue +0 -250
  226. package/ui-uni/uni-swiper-dot/uni-swiper-dot.vue +0 -205
  227. package/ui-uni/uni-table/uni-table.vue +0 -455
  228. package/ui-uni/uni-tag/uni-tag.vue +0 -283
  229. package/ui-uni/uni-tbody/uni-tbody.vue +0 -30
  230. package/ui-uni/uni-td/uni-td.vue +0 -88
  231. package/ui-uni/uni-th/uni-th.vue +0 -259
  232. package/ui-uni/uni-thead/uni-thead.vue +0 -114
  233. package/ui-uni/uni-title/uni-title.vue +0 -171
  234. package/ui-uni/uni-tr/uni-tr.vue +0 -156
  235. package/ui-uni/uni-transition/uni-transition.vue +0 -287
@@ -1,237 +0,0 @@
1
- <template>
2
- <view class="uni-combox">
3
- <view v-if="label" class="uni-combox__label" :style="labelStyle">
4
- <text>{{label}}</text>
5
- </view>
6
- <view class="uni-combox__input-box">
7
- <input class="uni-combox__input" type="text" :placeholder="placeholder" v-model="inputVal" @input="onInput" @focus="onFocus" @blur="onBlur" />
8
- <uni-icons class="uni-combox__input-arrow" type="arrowdown" size="14" @click="toggleSelector"></uni-icons>
9
- <view class="uni-combox__selector" v-if="showSelector">
10
- <scroll-view scroll-y="true" class="uni-combox__selector-scroll">
11
- <view class="uni-combox__selector-empty" v-if="filterCandidatesLength === 0">
12
- <text>{{emptyTips}}</text>
13
- </view>
14
- <view class="uni-combox__selector-item" v-for="(item,index) in filterCandidates" :key="index" @click="onSelectorClick(index)">
15
- <text>{{item}}</text>
16
- </view>
17
- </scroll-view>
18
- </view>
19
- </view>
20
- </view>
21
- </template>
22
-
23
- <script>
24
- /**
25
- * Combox 组合输入框
26
- * @description 组合输入框一般用于既可以输入也可以选择的场景
27
- * @tutorial https://ext.dcloud.net.cn/plugin?id=1261
28
- * @property {String} label 左侧文字
29
- * @property {String} labelWidth 左侧内容宽度
30
- * @property {String} placeholder 输入框占位符
31
- * @property {Array} candidates 候选项列表
32
- * @property {String} emptyTips 筛选结果为空时显示的文字
33
- * @property {String} value 组合框的值
34
- */
35
- export default {
36
- name: 'uniCombox',
37
- emits: ['input', 'update:modelValue'],
38
- props: {
39
- label: {
40
- type: String,
41
- default: ''
42
- },
43
- labelWidth: {
44
- type: String,
45
- default: 'auto'
46
- },
47
- placeholder: {
48
- type: String,
49
- default: ''
50
- },
51
- candidates: {
52
- type: Array,
53
- default () {
54
- return []
55
- }
56
- },
57
- emptyTips: {
58
- type: String,
59
- default: '无匹配项'
60
- },
61
- // #ifndef VUE3
62
- value: {
63
- type: [String, Number],
64
- default: ''
65
- },
66
- // #endif
67
- // #ifdef VUE3
68
- modelValue: {
69
- type: [String, Number],
70
- default: ''
71
- },
72
- // #endif
73
- },
74
- data() {
75
- return {
76
- showSelector: false,
77
- inputVal: ''
78
- }
79
- },
80
- computed: {
81
- labelStyle() {
82
- if (this.labelWidth === 'auto') {
83
- return {}
84
- }
85
- return {
86
- width: this.labelWidth
87
- }
88
- },
89
- filterCandidates() {
90
- return this.candidates.filter((item) => {
91
- return item.toString().indexOf(this.inputVal) > -1
92
- })
93
- },
94
- filterCandidatesLength() {
95
- return this.filterCandidates.length
96
- }
97
- },
98
- watch: {
99
- // #ifndef VUE3
100
- value: {
101
- handler(newVal) {
102
- this.inputVal = newVal
103
- },
104
- immediate: true
105
- },
106
- // #endif
107
- // #ifdef VUE3
108
- modelValue: {
109
- handler(newVal) {
110
- this.inputVal = newVal
111
- },
112
- immediate: true
113
- },
114
- // #endif
115
- },
116
- methods: {
117
- toggleSelector() {
118
- this.showSelector = !this.showSelector
119
- },
120
- onFocus() {
121
- this.showSelector = true
122
- },
123
- onBlur() {
124
- setTimeout(() => {
125
- this.showSelector = false
126
- }, 153)
127
- },
128
- onSelectorClick(index) {
129
- this.inputVal = this.filterCandidates[index]
130
- this.showSelector = false
131
- this.$emit('input', this.inputVal)
132
- this.$emit('update:modelValue', this.inputVal)
133
- },
134
- onInput() {
135
- setTimeout(() => {
136
- this.$emit('input', this.inputVal)
137
- this.$emit('update:modelValue', this.inputVal)
138
- })
139
- }
140
- }
141
- }
142
- </script>
143
-
144
- <style scoped>
145
- .uni-combox {
146
- /* #ifndef APP-NVUE */
147
- display: flex;
148
- /* #endif */
149
- height: 40px;
150
- flex-direction: row;
151
- align-items: center;
152
- }
153
-
154
- .uni-combox__label {
155
- font-size: 16px;
156
- line-height: 22px;
157
- padding-right: 10px;
158
- color: #999999;
159
- }
160
-
161
- .uni-combox__input-box {
162
- position: relative;
163
- /* #ifndef APP-NVUE */
164
- display: flex;
165
- /* #endif */
166
- flex: 1;
167
- flex-direction: row;
168
- align-items: center;
169
- }
170
-
171
- .uni-combox__input {
172
- flex: 1;
173
- font-size: 16px;
174
- height: 22px;
175
- line-height: 22px;
176
- }
177
-
178
- .uni-combox__input-arrow {
179
- padding: 10px;
180
- }
181
-
182
- .uni-combox__selector {
183
- /* #ifndef APP-NVUE */
184
- box-sizing: border-box;
185
- /* #endif */
186
- position: absolute;
187
- top: 42px;
188
- left: 0;
189
- width: 100%;
190
- background-color: #FFFFFF;
191
- border-radius: 6px;
192
- box-shadow: #DDDDDD 4px 4px 8px, #DDDDDD -4px -4px 8px;
193
- z-index: 2;
194
- }
195
-
196
- .uni-combox__selector-scroll {
197
- /* #ifndef APP-NVUE */
198
- max-height: 200px;
199
- box-sizing: border-box;
200
- /* #endif */
201
- }
202
-
203
- .uni-combox__selector::before {
204
- /* #ifndef APP-NVUE */
205
- content: "";
206
- /* #endif */
207
- position: absolute;
208
- width: 0;
209
- height: 0;
210
- border-bottom: solid 6px #FFFFFF;
211
- border-right: solid 6px transparent;
212
- border-left: solid 6px transparent;
213
- left: 50%;
214
- top: -6px;
215
- margin-left: -6px;
216
- }
217
-
218
- .uni-combox__selector-empty,
219
- .uni-combox__selector-item {
220
- /* #ifndef APP-NVUE */
221
- display: flex;
222
- cursor: pointer;
223
- /* #endif */
224
- line-height: 36px;
225
- font-size: 14px;
226
- text-align: center;
227
- border-bottom: solid 1px #DDDDDD;
228
- margin: 0px 10px;
229
- }
230
-
231
- .uni-combox__selector-empty:last-child,
232
- .uni-combox__selector-item:last-child {
233
- /* #ifndef APP-NVUE */
234
- border-bottom: none;
235
- /* #endif */
236
- }
237
- </style>
@@ -1,234 +0,0 @@
1
- <template>
2
- <view class="uni-countdown">
3
- <text v-if="showDay" :style="{ borderColor: borderColor, color: color, backgroundColor: backgroundColor }" class="uni-countdown__number">{{ d }}</text>
4
- <text v-if="showDay" :style="{ color: splitorColor }" class="uni-countdown__splitor">天</text>
5
- <text :style="{ borderColor: borderColor, color: color, backgroundColor: backgroundColor }" class="uni-countdown__number">{{ h }}</text>
6
- <text :style="{ color: splitorColor }" class="uni-countdown__splitor">{{ showColon ? ':' : '时' }}</text>
7
- <text :style="{ borderColor: borderColor, color: color, backgroundColor: backgroundColor }" class="uni-countdown__number">{{ i }}</text>
8
- <text :style="{ color: splitorColor }" class="uni-countdown__splitor">{{ showColon ? ':' : '分' }}</text>
9
- <text :style="{ borderColor: borderColor, color: color, backgroundColor: backgroundColor }" class="uni-countdown__number">{{ s }}</text>
10
- <text v-if="!showColon" :style="{ color: splitorColor }" class="uni-countdown__splitor">秒</text>
11
- </view>
12
- </template>
13
- <script>
14
- /**
15
- * Countdown 倒计时
16
- * @description 倒计时组件
17
- * @tutorial https://ext.dcloud.net.cn/plugin?id=25
18
- * @property {String} backgroundColor 背景色
19
- * @property {String} color 文字颜色
20
- * @property {Number} day 天数
21
- * @property {Number} hour 小时
22
- * @property {Number} minute 分钟
23
- * @property {Number} second 秒
24
- * @property {Number} timestamp 时间戳
25
- * @property {Boolean} showDay = [true|false] 是否显示天数
26
- * @property {Boolean} showColon = [true|false] 是否以冒号为分隔符
27
- * @property {String} splitorColor 分割符号颜色
28
- * @event {Function} timeup 倒计时时间到触发事件
29
- * @example <uni-countdown :day="1" :hour="1" :minute="12" :second="40"></uni-countdown>
30
- */
31
- export default {
32
- name: 'UniCountdown',
33
- emits: ['timeup'],
34
- props: {
35
- showDay: {
36
- type: Boolean,
37
- default: true
38
- },
39
- showColon: {
40
- type: Boolean,
41
- default: true
42
- },
43
- start: {
44
- type: Boolean,
45
- default: true
46
- },
47
- backgroundColor: {
48
- type: String,
49
- default: '#FFFFFF'
50
- },
51
- borderColor: {
52
- type: String,
53
- default: '#000000'
54
- },
55
- color: {
56
- type: String,
57
- default: '#000000'
58
- },
59
- splitorColor: {
60
- type: String,
61
- default: '#000000'
62
- },
63
- day: {
64
- type: Number,
65
- default: 0
66
- },
67
- hour: {
68
- type: Number,
69
- default: 0
70
- },
71
- minute: {
72
- type: Number,
73
- default: 0
74
- },
75
- second: {
76
- type: Number,
77
- default: 0
78
- },
79
- timestamp: {
80
- type: Number,
81
- default: 0
82
- }
83
- },
84
- data() {
85
- return {
86
- timer: null,
87
- syncFlag: false,
88
- d: '00',
89
- h: '00',
90
- i: '00',
91
- s: '00',
92
- leftTime: 0,
93
- seconds: 0
94
- }
95
- },
96
- watch: {
97
- day(val) {
98
- this.changeFlag()
99
- },
100
- hour(val) {
101
- this.changeFlag()
102
- },
103
- minute(val) {
104
- this.changeFlag()
105
- },
106
- second(val) {
107
- this.changeFlag()
108
- },
109
- start: {
110
- immediate: true,
111
- handler(newVal, oldVal) {
112
- if (newVal) {
113
- this.startData();
114
- } else {
115
- if (!oldVal) return
116
- clearInterval(this.timer)
117
- }
118
- }
119
-
120
- }
121
- },
122
- created: function(e) {
123
- this.seconds = this.toSeconds(this.timestamp, this.day, this.hour, this.minute, this.second)
124
- this.countDown()
125
- },
126
- // #ifndef VUE3
127
- destroyed() {
128
- clearInterval(this.timer)
129
- },
130
- // #endif
131
- // #ifdef VUE3
132
- unmounted() {
133
- clearInterval(this.timer)
134
- },
135
- // #endif
136
- methods: {
137
- toSeconds(timestamp, day, hours, minutes, seconds) {
138
- if (timestamp) {
139
- return timestamp - parseInt(new Date().getTime() / 1000, 10)
140
- }
141
- return day * 60 * 60 * 24 + hours * 60 * 60 + minutes * 60 + seconds
142
- },
143
- timeUp() {
144
- clearInterval(this.timer)
145
- this.$emit('timeup')
146
- },
147
- countDown() {
148
- let seconds = this.seconds
149
- let [day, hour, minute, second] = [0, 0, 0, 0]
150
- if (seconds > 0) {
151
- day = Math.floor(seconds / (60 * 60 * 24))
152
- hour = Math.floor(seconds / (60 * 60)) - (day * 24)
153
- minute = Math.floor(seconds / 60) - (day * 24 * 60) - (hour * 60)
154
- second = Math.floor(seconds) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60)
155
- } else {
156
- this.timeUp()
157
- }
158
- if (day < 10) {
159
- day = '0' + day
160
- }
161
- if (hour < 10) {
162
- hour = '0' + hour
163
- }
164
- if (minute < 10) {
165
- minute = '0' + minute
166
- }
167
- if (second < 10) {
168
- second = '0' + second
169
- }
170
- this.d = day
171
- this.h = hour
172
- this.i = minute
173
- this.s = second
174
- },
175
- startData() {
176
- this.seconds = this.toSeconds(this.timestamp, this.day, this.hour, this.minute, this.second)
177
- if (this.seconds <= 0) {
178
- return
179
- }
180
- clearInterval(this.timer)
181
- this.countDown()
182
- this.timer = setInterval(() => {
183
- this.seconds--
184
- if (this.seconds < 0) {
185
- this.timeUp()
186
- return
187
- }
188
- this.countDown()
189
- }, 1000)
190
- },
191
- changeFlag() {
192
- if (!this.syncFlag) {
193
- this.seconds = this.toSeconds(this.timestamp, this.day, this.hour, this.minute, this.second)
194
- this.startData();
195
- this.syncFlag = true;
196
- }
197
- }
198
- }
199
- }
200
- </script>
201
- <style scoped>
202
- .uni-countdown {
203
- /* #ifndef APP-NVUE */
204
- display: flex;
205
- /* #endif */
206
- flex-direction: row;
207
- justify-content: flex-start;
208
- padding: 2rpx 0;
209
- }
210
-
211
- .uni-countdown__splitor {
212
- /* #ifndef APP-NVUE */
213
- display: flex;
214
- /* #endif */
215
- justify-content: center;
216
- line-height: 48rpx;
217
- padding: 5rpx;
218
- font-size: 12px;
219
- }
220
-
221
- .uni-countdown__number {
222
- /* #ifndef APP-NVUE */
223
- display: flex;
224
- /* #endif */
225
- justify-content: center;
226
- align-items: center;
227
- width: 52rpx;
228
- height: 48rpx;
229
- line-height: 48rpx;
230
- margin: 5rpx;
231
- text-align: center;
232
- font-size: 12px;
233
- }
234
- </style>