@10yun/cv-mobile-ui 0.5.29 → 0.5.30

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 (260) hide show
  1. package/package.json +1 -1
  2. package/plugins/luch-request/adapters/index.js +131 -0
  3. package/plugins/luch-request/core/InterceptorManager.js +50 -0
  4. package/plugins/luch-request/core/Request.js +199 -0
  5. package/plugins/luch-request/core/buildFullPath.js +20 -0
  6. package/plugins/luch-request/core/defaults.js +32 -0
  7. package/plugins/luch-request/core/dispatchRequest.js +5 -0
  8. package/plugins/luch-request/core/mergeConfig.js +125 -0
  9. package/plugins/luch-request/core/settle.js +16 -0
  10. package/plugins/luch-request/helpers/buildURL.js +71 -0
  11. package/plugins/luch-request/helpers/combineURLs.js +12 -0
  12. package/plugins/luch-request/helpers/isAbsoluteURL.js +14 -0
  13. package/plugins/luch-request/index.d.ts +197 -0
  14. package/plugins/luch-request/index.js +2 -0
  15. package/plugins/luch-request/readme.md +3 -0
  16. package/plugins/luch-request/utils/clone.js +264 -0
  17. package/plugins/luch-request/utils.js +131 -0
  18. package/plugins/request.js +2 -2
  19. package/ui-cv/components/cv-form-item/cv-form-item.vue +1 -1
  20. package/ui-fireui/fui-actionsheet/fui-actionsheet.vue +202 -0
  21. package/ui-fireui/fui-alert/fui-alert.vue +141 -0
  22. package/ui-fireui/fui-badge/fui-badge.vue +158 -0
  23. package/ui-fireui/fui-bottom-navigation/fui-bottom-navigation.vue +390 -0
  24. package/ui-fireui/fui-bottom-popup/fui-bottom-popup.vue +100 -0
  25. package/ui-fireui/fui-bubble-popup/fui-bubble-popup.vue +236 -0
  26. package/ui-fireui/fui-button/fui-button.vue +424 -0
  27. package/ui-fireui/fui-calendar/fui-calendar.js +915 -0
  28. package/ui-fireui/fui-calendar/fui-calendar.vue +868 -0
  29. package/ui-fireui/fui-card/fui-card.vue +231 -0
  30. package/ui-fireui/fui-cascade-selection/fui-cascade-selection.vue +538 -0
  31. package/ui-fireui/fui-circular-progress/fui-circular-progress.vue +261 -0
  32. package/ui-fireui/fui-collapse/fui-collapse.vue +179 -0
  33. package/ui-fireui/fui-countdown/fui-countdown.vue +301 -0
  34. package/ui-fireui/fui-datetime/fui-datetime.vue +570 -0
  35. package/ui-fireui/fui-divider/fui-divider.vue +118 -0
  36. package/ui-fireui/fui-drawer/fui-drawer.vue +103 -0
  37. package/ui-fireui/fui-dropdown-list/fui-dropdown-list.vue +70 -0
  38. package/ui-fireui/fui-fab/fui-fab.vue +284 -0
  39. package/ui-fireui/fui-footer/fui-footer.vue +131 -0
  40. package/ui-fireui/fui-grid/fui-grid.vue +42 -0
  41. package/ui-fireui/fui-grid-item/fui-grid-item.vue +142 -0
  42. package/ui-fireui/fui-icon/fui-icon.vue +820 -0
  43. package/ui-fireui/fui-image-cropper/fui-image-cropper.vue +1058 -0
  44. package/ui-fireui/fui-image-group/fui-image-group.vue +149 -0
  45. package/ui-fireui/fui-keyboard/fui-keyboard.vue +254 -0
  46. package/ui-fireui/fui-keyboard-input/fui-keyboard-input.vue +78 -0
  47. package/ui-fireui/fui-list-cell/fui-list-cell.vue +178 -0
  48. package/ui-fireui/fui-list-view/fui-list-view.vue +87 -0
  49. package/ui-fireui/fui-loading/fui-loading.vue +78 -0
  50. package/ui-fireui/fui-loadmore/fui-loadmore.vue +163 -0
  51. package/ui-fireui/fui-modal/fui-modal.vue +392 -0
  52. package/ui-fireui/fui-navigation-bar/fui-navigation-bar.vue +180 -0
  53. package/ui-fireui/fui-no-data/fui-no-data.vue +116 -0
  54. package/ui-fireui/fui-nomore/fui-nomore.vue +116 -0
  55. package/ui-fireui/fui-numberbox/fui-numberbox.vue +234 -0
  56. package/ui-fireui/fui-numberbox-border/fui-numberbox-border.vue +232 -0
  57. package/ui-fireui/fui-picture-cropper/fui-picture-cropper.vue +682 -0
  58. package/ui-fireui/fui-picture-cropper/fui-picture-cropper.wxs +560 -0
  59. package/ui-fireui/fui-rate/fui-rate.vue +167 -0
  60. package/ui-fireui/fui-round-progress/fui-round-progress.vue +306 -0
  61. package/ui-fireui/fui-scroll-top/fui-scroll-top.vue +189 -0
  62. package/ui-fireui/fui-sharemodel/fui-sharemodel.vue +181 -0
  63. package/ui-fireui/fui-skeleton/fui-skeleton.vue +248 -0
  64. package/ui-fireui/fui-steps/fui-steps.vue +214 -0
  65. package/ui-fireui/fui-sticky/fui-sticky.vue +155 -0
  66. package/ui-fireui/fui-sticky-wxs/fui-sticky-wxs.vue +133 -0
  67. package/ui-fireui/fui-sticky-wxs/fui-sticky.wxs +44 -0
  68. package/ui-fireui/fui-swipe-action/fui-swipe-action.vue +301 -0
  69. package/ui-fireui/fui-tabbar/fui-tabbar.vue +283 -0
  70. package/ui-fireui/fui-tabs/fui-tabs.vue +284 -0
  71. package/ui-fireui/fui-tabs2/fui-tabs2.vue +284 -0
  72. package/ui-fireui/fui-tag/fui-tag.vue +374 -0
  73. package/ui-fireui/fui-time-axis/fui-time-axis.vue +36 -0
  74. package/ui-fireui/fui-timeaxis-item/fui-timeaxis-item.vue +48 -0
  75. package/ui-fireui/fui-tips/fui-tips.vue +161 -0
  76. package/ui-fireui/fui-toast/fui-toast.vue +117 -0
  77. package/ui-fireui/fui-top-dropdown/fui-top-dropdown.vue +129 -0
  78. package/ui-fireui/fui-upload/fui-upload.vue +446 -0
  79. package/ui-fireui/fui-uploadsamll/fui-uploadsamll.vue +472 -0
  80. package/uview-plus/README.md +1 -1
  81. package/uview-plus/changelog-wu-tool.md +21 -0
  82. package/uview-plus/changelog-wu.md +91 -0
  83. package/uview-plus/components/u-action-sheet/_doc/changelog.md +12 -0
  84. package/uview-plus/components/u-action-sheet/_doc/package.json +92 -0
  85. package/uview-plus/components/u-action-sheet/_doc/readme.md +16 -0
  86. package/uview-plus/components/u-app-update/_doc/changelog.md +26 -0
  87. package/uview-plus/components/u-app-update/_doc/package.json +89 -0
  88. package/uview-plus/components/u-app-update/_doc/readme.md +16 -0
  89. package/uview-plus/components/u-app-update/config.js +120 -0
  90. package/uview-plus/components/u-app-update/img/act.png +0 -0
  91. package/uview-plus/components/u-app-update/img/appUploadAlertBoxBg.png +0 -0
  92. package/uview-plus/components/u-app-update/img/close.png +0 -0
  93. package/uview-plus/components/u-app-update/js-sdk/checkVersion.js +81 -0
  94. package/uview-plus/components/u-app-update/js-sdk/silentlyAppUpdate.js +41 -0
  95. package/uview-plus/components/u-app-update/pages/index.vue +8 -0
  96. package/uview-plus/components/u-app-update/u-app-update.vue +583 -0
  97. package/uview-plus/components/u-button-wu/_doc/changelog.md +6 -0
  98. package/uview-plus/components/u-button-wu/_doc/package.json +89 -0
  99. package/uview-plus/components/u-button-wu/_doc/readme.md +16 -0
  100. package/uview-plus/components/u-button-wu/u-button-wu.vue +522 -0
  101. package/uview-plus/components/u-button-wu/vue.scss +81 -0
  102. package/uview-plus/components/u-calendar-wu/_doc/changelog.md +145 -0
  103. package/uview-plus/components/u-calendar-wu/_doc/package.json +90 -0
  104. package/uview-plus/components/u-calendar-wu/_doc/readme.md +16 -0
  105. package/uview-plus/components/u-calendar-wu/calendar.js +664 -0
  106. package/uview-plus/components/u-calendar-wu/i18n/en.json +14 -0
  107. package/uview-plus/components/u-calendar-wu/i18n/index.js +8 -0
  108. package/uview-plus/components/u-calendar-wu/i18n/zh-Hans.json +14 -0
  109. package/uview-plus/components/u-calendar-wu/i18n/zh-Hant.json +14 -0
  110. package/uview-plus/components/u-calendar-wu/props.js +166 -0
  111. package/uview-plus/components/u-calendar-wu/style.css +196 -0
  112. package/uview-plus/components/u-calendar-wu/u-calendar-wu.vue +921 -0
  113. package/uview-plus/components/u-calendar-wu/util.js +552 -0
  114. package/uview-plus/components/u-calendar-wu/wu-calendar-block/props.js +73 -0
  115. package/uview-plus/components/u-calendar-wu/wu-calendar-block/wu-calendar-block.vue +122 -0
  116. package/uview-plus/components/u-calendar-wu/wu-calendar-item/props.js +55 -0
  117. package/uview-plus/components/u-calendar-wu/wu-calendar-item/wu-calendar-item.vue +293 -0
  118. package/uview-plus/components/u-cell/_doc/changelog.md +6 -0
  119. package/uview-plus/components/u-cell/_doc/package.json +89 -0
  120. package/uview-plus/components/u-cell/_doc/readme.md +25 -0
  121. package/uview-plus/components/u-checkbox/_doc/changelog.md +8 -0
  122. package/uview-plus/components/u-checkbox/_doc/package.json +88 -0
  123. package/uview-plus/components/u-checkbox/_doc/readme.md +25 -0
  124. package/uview-plus/components/u-code/_doc/changelog.md +6 -0
  125. package/uview-plus/components/u-code/_doc/package.json +86 -0
  126. package/uview-plus/components/u-code/_doc/readme.md +16 -0
  127. package/uview-plus/components/u-drag-sort/_doc/changelog.md +0 -0
  128. package/uview-plus/components/u-drag-sort/_doc/package.json +85 -0
  129. package/uview-plus/components/u-drag-sort/_doc/readme.md +16 -0
  130. package/uview-plus/components/u-drag-sort/u-drag-sort.vue +3 -0
  131. package/uview-plus/components/u-empty/u-empty.vue +27 -1
  132. package/uview-plus/components/u-gap/_doc/changelog.md +4 -0
  133. package/uview-plus/components/u-gap/_doc/package.json +86 -0
  134. package/uview-plus/components/u-gap/_doc/readme.md +22 -0
  135. package/uview-plus/components/u-icon/_doc/changelog.md +10 -0
  136. package/uview-plus/components/u-icon/_doc/package.json +85 -0
  137. package/uview-plus/components/u-icon/_doc/readme.md +10 -0
  138. package/uview-plus/components/u-icon/icon.js +23 -25
  139. package/uview-plus/components/u-icon/icons.js +213 -213
  140. package/uview-plus/components/u-icon/style.css +3 -3
  141. package/uview-plus/components/u-icon/u-icon2.vue +149 -0
  142. package/uview-plus/components/u-image-wu/_doc/changelog.md +21 -0
  143. package/uview-plus/components/u-image-wu/_doc/package.json +88 -0
  144. package/uview-plus/components/u-image-wu/_doc/readme.md +11 -0
  145. package/uview-plus/components/u-image-wu/props.js +94 -0
  146. package/uview-plus/components/u-image-wu/u-image-wu.vue +243 -0
  147. package/uview-plus/components/u-input/_doc/changelog.md +6 -0
  148. package/uview-plus/components/u-input/_doc/package.json +88 -0
  149. package/uview-plus/components/u-input/_doc/readme.md +16 -0
  150. package/uview-plus/components/u-line/_doc/changelog.md +8 -0
  151. package/uview-plus/components/u-line/_doc/package.json +86 -0
  152. package/uview-plus/components/u-line/_doc/readme.md +16 -0
  153. package/uview-plus/components/u-link/_doc/changelog.md +8 -0
  154. package/uview-plus/components/u-link/_doc/package.json +86 -0
  155. package/uview-plus/components/u-link/_doc/readme.md +20 -0
  156. package/uview-plus/components/u-loading-icon/_doc/changelog.md +12 -0
  157. package/uview-plus/components/u-loading-icon/_doc/package.json +86 -0
  158. package/uview-plus/components/u-loading-icon/_doc/readme.md +16 -0
  159. package/uview-plus/components/u-loading-icon/props.js +1 -1
  160. package/uview-plus/components/u-navbar/_doc/changelog.md +6 -0
  161. package/uview-plus/components/u-navbar/_doc/package.json +89 -0
  162. package/uview-plus/components/u-navbar/_doc/readme.md +16 -0
  163. package/uview-plus/components/u-navbar-wu/props.js +102 -0
  164. package/uview-plus/components/u-navbar-wu/u-navbar-wu.vue +196 -0
  165. package/uview-plus/components/u-number-box/_doc/changelog.md +19 -0
  166. package/uview-plus/components/u-number-box/_doc/package.json +88 -0
  167. package/uview-plus/components/u-number-box/_doc/readme.md +16 -0
  168. package/uview-plus/components/u-overlay/_doc/changelog.md +4 -0
  169. package/uview-plus/components/u-overlay/_doc/package.json +88 -0
  170. package/uview-plus/components/u-overlay/_doc/readme.md +16 -0
  171. package/uview-plus/components/u-popup/_doc/changelog.md +4 -0
  172. package/uview-plus/components/u-popup/_doc/package.json +92 -0
  173. package/uview-plus/components/u-popup/_doc/readme.md +16 -0
  174. package/uview-plus/components/u-popup-wu/keypress.js +45 -0
  175. package/uview-plus/components/u-popup-wu/u-popup-wu.vue +519 -0
  176. package/uview-plus/components/u-radio/_doc/changelog.md +6 -0
  177. package/uview-plus/components/u-radio/_doc/package.json +88 -0
  178. package/uview-plus/components/u-radio/_doc/readme.md +25 -0
  179. package/uview-plus/components/u-row/_doc/changelog.md +8 -0
  180. package/uview-plus/components/u-row/_doc/package.json +86 -0
  181. package/uview-plus/components/u-row/_doc/readme.md +16 -0
  182. package/uview-plus/components/u-safe-bottom/_doc/changelog.md +6 -0
  183. package/uview-plus/components/u-safe-bottom/_doc/package.json +86 -0
  184. package/uview-plus/components/u-safe-bottom/_doc/readme.md +16 -0
  185. package/uview-plus/components/u-sku-wu/_doc/changelog.md +27 -0
  186. package/uview-plus/components/u-sku-wu/_doc/package.json +93 -0
  187. package/uview-plus/components/u-sku-wu/_doc/readme.md +16 -0
  188. package/uview-plus/components/u-sku-wu/props.js +86 -0
  189. package/uview-plus/components/u-sku-wu/style.css +271 -0
  190. package/uview-plus/components/u-sku-wu/u-sku-wu.vue +864 -0
  191. package/uview-plus/components/u-status-bar/_doc/changelog.md +4 -0
  192. package/uview-plus/components/u-status-bar/_doc/package.json +86 -0
  193. package/uview-plus/components/u-status-bar/_doc/readme.md +16 -0
  194. package/uview-plus/components/u-text/_doc/changelog.md +10 -0
  195. package/uview-plus/components/u-text/_doc/package.json +89 -0
  196. package/uview-plus/components/u-text/_doc/readme.md +20 -0
  197. package/uview-plus/components/u-textarea/_doc/changelog.md +6 -0
  198. package/uview-plus/components/u-textarea/_doc/package.json +86 -0
  199. package/uview-plus/components/u-textarea/_doc/readme.md +25 -0
  200. package/uview-plus/components/u-transition/_doc/changelog.md +14 -0
  201. package/uview-plus/components/u-transition/_doc/package.json +86 -0
  202. package/uview-plus/components/u-transition/_doc/readme.md +16 -0
  203. package/uview-plus/components/u-transition-wu/createAnimation.js +148 -0
  204. package/uview-plus/components/u-transition-wu/props.js +32 -0
  205. package/uview-plus/components/u-transition-wu/u-transition.vue +300 -0
  206. package/uview-plus/components/u-verification-code/u-verification-code.vue +161 -0
  207. package/uview-plus/index.js +107 -94
  208. package/uview-plus/libs/config/config.js +46 -48
  209. package/uview-plus/libs/css/color.scss +32 -311
  210. package/uview-plus/libs/css/components-wu.scss +30 -0
  211. package/uview-plus/libs/css/vue.scss +10 -10
  212. package/uview-plus/libs/function/calc.js +61 -55
  213. package/uview-plus/libs/function/cc.js +66 -0
  214. package/uview-plus/libs/function/color/color-convert/CHANGELOG.md +54 -0
  215. package/uview-plus/libs/function/color/color-convert/LICENSE +21 -0
  216. package/uview-plus/libs/function/color/color-convert/README.md +68 -0
  217. package/uview-plus/libs/function/color/color-convert/conversions.js +839 -0
  218. package/uview-plus/libs/function/color/color-convert/index.js +81 -0
  219. package/uview-plus/libs/function/color/color-convert/package.json +48 -0
  220. package/uview-plus/libs/function/color/color-convert/route.js +97 -0
  221. package/uview-plus/libs/function/color/color-name/LICENSE +8 -0
  222. package/uview-plus/libs/function/color/color-name/README.md +11 -0
  223. package/uview-plus/libs/function/color/color-name/index.js +152 -0
  224. package/uview-plus/libs/function/color/color-name/package.json +28 -0
  225. package/uview-plus/libs/function/color/color-string/LICENSE +21 -0
  226. package/uview-plus/libs/function/color/color-string/README.md +62 -0
  227. package/uview-plus/libs/function/color/color-string/index.js +244 -0
  228. package/uview-plus/libs/function/color/color-string/package.json +39 -0
  229. package/uview-plus/libs/function/color/color.js +496 -0
  230. package/uview-plus/libs/function/color/index.js +158 -0
  231. package/uview-plus/libs/function/color/is-arrayish/LICENSE +21 -0
  232. package/uview-plus/libs/function/color/is-arrayish/README.md +16 -0
  233. package/uview-plus/libs/function/color/is-arrayish/index.js +9 -0
  234. package/uview-plus/libs/function/color/is-arrayish/package.json +45 -0
  235. package/uview-plus/libs/function/color/is-arrayish/yarn-error.log +1443 -0
  236. package/uview-plus/libs/function/color/simple-swizzle/LICENSE +21 -0
  237. package/uview-plus/libs/function/color/simple-swizzle/README.md +39 -0
  238. package/uview-plus/libs/function/color/simple-swizzle/index.js +29 -0
  239. package/uview-plus/libs/function/color/simple-swizzle/package.json +36 -0
  240. package/uview-plus/libs/function/colorGradient.js +108 -106
  241. package/uview-plus/libs/function/debounce.js +17 -17
  242. package/uview-plus/libs/function/digit.js +1 -3
  243. package/uview-plus/libs/function/http.js +3 -3
  244. package/uview-plus/libs/function/index-wu.js +231 -0
  245. package/uview-plus/libs/function/index.js +579 -566
  246. package/uview-plus/libs/function/platform.js +18 -18
  247. package/uview-plus/libs/function/test.js +135 -137
  248. package/uview-plus/libs/function/throttle.js +17 -17
  249. package/uview-plus/libs/luch-request/core/Request.js +199 -199
  250. package/uview-plus/libs/mixin/mpMixin.js +1 -0
  251. package/uview-plus/libs/mixin/openType.js +33 -0
  252. package/uview-plus/libs/util/async-validator.js +1343 -1343
  253. package/uview-plus/libs/util/dayjs.js +404 -0
  254. package/uview-plus/libs/util/route.js +101 -105
  255. package/uview-plus/package-wu-tool.json +84 -0
  256. package/uview-plus/package-wu.json +112 -0
  257. package/uview-plus/package.json +106 -95
  258. package/uview-plus/readme-wu.md +148 -0
  259. package/uview-ui/index.js +51 -52
  260. package/plugins/uni-upgrade.js +0 -294
@@ -0,0 +1,570 @@
1
+ <template>
2
+ <view class="fui-datetime-picker">
3
+ <view
4
+ class="fui-mask"
5
+ :class="{ 'fui-mask-show': isShow }"
6
+ @touchmove.stop.prevent="stop"
7
+ catchtouchmove="stop"
8
+ @tap="hide"
9
+ ></view>
10
+ <view class="fui-header" :class="{ 'fui-show': isShow }">
11
+ <view class="fui-picker-header" :class="{ 'fui-date-radius': radius }" @touchmove.stop.prevent="stop" catchtouchmove="stop">
12
+ <view class="fui-btn-picker" :style="{ color: cancelColor }" hover-class="fui-opacity" :hover-stay-time="150" @tap="hide">
13
+ 取消
14
+ </view>
15
+ <view class="fui-btn-picker" :style="{ color: color }" hover-class="fui-opacity" :hover-stay-time="150" @tap="btnFix">
16
+ 确定
17
+ </view>
18
+ </view>
19
+ <view class="fui-date-header" v-if="unitTop">
20
+ <view class="fui-date-unit" v-if="type < 4 || type == 7">年</view>
21
+ <view class="fui-date-unit" v-if="type < 4 || type == 7">月</view>
22
+ <view class="fui-date-unit" v-if="type == 1 || type == 2 || type == 7">日</view>
23
+ <view class="fui-date-unit" v-if="type == 1 || type == 4 || type == 5 || type == 7">时</view>
24
+ <view class="fui-date-unit" v-if="type == 1 || type > 3">分</view>
25
+ <view class="fui-date-unit" v-if="type > 4">秒</view>
26
+ </view>
27
+ <view class="fui-picker-body">
28
+ <picker-view :value="value" @change="change" class="fui-picker-view">
29
+ <picker-view-column v-if="!reset && (type < 4 || type == 7)">
30
+ <view
31
+ class="fui-column-item"
32
+ :class="{ 'fui-font-size_32': !unitTop && type == 7 }"
33
+ v-for="(item, index) in years"
34
+ :key="index"
35
+ >
36
+ {{ item }}
37
+ <text class="fui-unit-text" v-if="!unitTop">年</text>
38
+ </view>
39
+ </picker-view-column>
40
+ <picker-view-column v-if="!reset && (type < 4 || type == 7)">
41
+ <view
42
+ class="fui-column-item"
43
+ :class="{ 'fui-font-size_32': !unitTop && type == 7 }"
44
+ v-for="(item, index) in months"
45
+ :key="index"
46
+ >
47
+ {{ formatNum(item) }}
48
+ <text class="fui-unit-text" v-if="!unitTop">月</text>
49
+ </view>
50
+ </picker-view-column>
51
+ <picker-view-column v-if="!reset && (type == 1 || type == 2 || type == 7)">
52
+ <view
53
+ class="fui-column-item"
54
+ :class="{ 'fui-font-size_32': !unitTop && type == 7 }"
55
+ v-for="(item, index) in days"
56
+ :key="index"
57
+ >
58
+ {{ formatNum(item) }}
59
+ <text class="fui-unit-text" v-if="!unitTop">日</text>
60
+ </view>
61
+ </picker-view-column>
62
+ <picker-view-column v-if="!reset && (type == 1 || type == 4 || type == 5 || type == 7)">
63
+ <view
64
+ class="fui-column-item"
65
+ :class="{ 'fui-font-size_32': !unitTop && type == 7 }"
66
+ v-for="(item, index) in hours"
67
+ :key="index"
68
+ >
69
+ {{ formatNum(item) }}
70
+ <text class="fui-unit-text" v-if="!unitTop">时</text>
71
+ </view>
72
+ </picker-view-column>
73
+ <picker-view-column v-if="!reset && (type == 1 || type > 3)">
74
+ <view
75
+ class="fui-column-item"
76
+ :class="{ 'fui-font-size_32': !unitTop && type == 7 }"
77
+ v-for="(item, index) in minutes"
78
+ :key="index"
79
+ >
80
+ {{ formatNum(item) }}
81
+ <text class="fui-unit-text" v-if="!unitTop">分</text>
82
+ </view>
83
+ </picker-view-column>
84
+ <picker-view-column v-if="!reset && type > 4">
85
+ <view
86
+ class="fui-column-item"
87
+ :class="{ 'fui-font-size_32': !unitTop && type == 7 }"
88
+ v-for="(item, index) in seconds"
89
+ :key="index"
90
+ >
91
+ {{ formatNum(item) }}
92
+ <text class="fui-unit-text" v-if="!unitTop">秒</text>
93
+ </view>
94
+ </picker-view-column>
95
+ </picker-view>
96
+ </view>
97
+ </view>
98
+ </view>
99
+ </template>
100
+
101
+ <script>
102
+ export default {
103
+ name: 'fuiDatetime',
104
+ props: {
105
+ //1-日期+时间(年月日+时分) 2-日期(年月日) 3-日期(年月) 4-时间(时分) 5-时分秒 6-分秒 7-年月日 时分秒
106
+ type: {
107
+ type: Number,
108
+ default: 1
109
+ },
110
+ //年份区间
111
+ startYear: {
112
+ type: Number,
113
+ default: 1980
114
+ },
115
+ //年份区间
116
+ endYear: {
117
+ type: Number,
118
+ default: 2050
119
+ },
120
+ //"取消"字体颜色
121
+ cancelColor: {
122
+ type: String,
123
+ default: '#888'
124
+ },
125
+ //"确定"字体颜色
126
+ color: {
127
+ type: String,
128
+ default: '#5677fc'
129
+ },
130
+ //设置默认显示日期 2019-08-01 || 2019-08-01 17:01 || 2019/08/01
131
+ setDateTime: {
132
+ type: String,
133
+ default: ''
134
+ },
135
+ //单位置顶
136
+ unitTop: {
137
+ type: Boolean,
138
+ default: false
139
+ },
140
+ //圆角设置
141
+ radius: {
142
+ type: Boolean,
143
+ default: false
144
+ }
145
+ },
146
+ data() {
147
+ return {
148
+ isShow: false,
149
+ years: [],
150
+ months: [],
151
+ days: [],
152
+ hours: [],
153
+ minutes: [],
154
+ seconds: [],
155
+ year: 0,
156
+ month: 0,
157
+ day: 0,
158
+ hour: 0,
159
+ minute: 0,
160
+ second: 0,
161
+ startDate: '',
162
+ endDate: '',
163
+ value: [0, 0, 0, 0, 0, 0],
164
+ reset: false
165
+ };
166
+ },
167
+ mounted() {
168
+ this.initData();
169
+ },
170
+ computed: {
171
+ yearOrMonth() {
172
+ return `${this.year}-${this.month}`;
173
+ },
174
+ propsChange() {
175
+ return `${this.setDateTime}-${this.type}-${this.startYear}-${this.endYear}`;
176
+ }
177
+ },
178
+ watch: {
179
+ yearOrMonth() {
180
+ this.setDays();
181
+ },
182
+ propsChange() {
183
+ this.reset = true;
184
+ setTimeout(() => {
185
+ this.initData();
186
+ }, 10);
187
+ }
188
+ },
189
+ methods: {
190
+ stop() {},
191
+ formatNum(num) {
192
+ return num < 10 ? '0' + num : num + '';
193
+ },
194
+ generateArray(start, end) {
195
+ return Array.from(new Array(end + 1).keys()).slice(start);
196
+ },
197
+ getIndex(arr, val) {
198
+ let index = arr.indexOf(val);
199
+ return ~index ? index : 0;
200
+ },
201
+ //日期时间处理
202
+ initSelectValue() {
203
+ let fdate = this.setDateTime.replace(/\-/g, '/');
204
+ fdate = fdate && fdate.indexOf('/') == -1 ? `2020/01/01 ${fdate}` : fdate;
205
+ let time = null;
206
+ if (fdate) time = new Date(fdate);
207
+ else time = new Date();
208
+ this.year = time.getFullYear();
209
+ this.month = time.getMonth() + 1;
210
+ this.day = time.getDate();
211
+ this.hour = time.getHours();
212
+ this.minute = time.getMinutes();
213
+ this.second = time.getSeconds();
214
+ },
215
+ initData() {
216
+ this.initSelectValue();
217
+ this.reset = false;
218
+ switch (this.type) {
219
+ case 1:
220
+ this.value = [0, 0, 0, 0, 0];
221
+ this.setYears();
222
+ this.setMonths();
223
+ this.setDays();
224
+ this.setHours();
225
+ this.setMinutes();
226
+ break;
227
+ case 2:
228
+ this.value = [0, 0, 0];
229
+ this.setYears();
230
+ this.setMonths();
231
+ this.setDays();
232
+ break;
233
+ case 3:
234
+ this.value = [0, 0];
235
+ this.setYears();
236
+ this.setMonths();
237
+ break;
238
+ case 4:
239
+ this.value = [0, 0];
240
+ this.setHours();
241
+ this.setMinutes();
242
+ break;
243
+ case 5:
244
+ this.value = [0, 0, 0];
245
+ this.setHours();
246
+ this.setMinutes();
247
+ this.setSeconds();
248
+ break;
249
+ case 6:
250
+ this.value = [0, 0];
251
+ this.setMinutes();
252
+ this.setSeconds();
253
+ break;
254
+ case 7:
255
+ this.value = [0, 0, 0, 0, 0, 0];
256
+ this.setYears();
257
+ this.setMonths();
258
+ this.setDays();
259
+ this.setHours();
260
+ this.setMinutes();
261
+ this.setSeconds();
262
+ break;
263
+ default:
264
+ break;
265
+ }
266
+ },
267
+ setYears() {
268
+ this.years = this.generateArray(this.startYear, this.endYear);
269
+ setTimeout(() => {
270
+ this.value[0] = this.getIndex(this.years, this.year);
271
+ }, 8);
272
+ },
273
+ setMonths() {
274
+ this.months = this.generateArray(1, 12);
275
+ setTimeout(() => {
276
+ this.value[1] = this.getIndex(this.months, this.month);
277
+ }, 8);
278
+ },
279
+ setDays() {
280
+ if (this.type == 3 || this.type == 4) return;
281
+ let totalDays = new Date(this.year, this.month, 0).getDate();
282
+ this.days = this.generateArray(1, totalDays);
283
+ setTimeout(() => {
284
+ this.value[2] = this.getIndex(this.days, this.day);
285
+ }, 8);
286
+ },
287
+ setHours() {
288
+ this.hours = this.generateArray(0, 23);
289
+ setTimeout(() => {
290
+ let index = this.type == 5 || this.type == 7 ? this.value.length - 3 : this.value.length - 2;
291
+ this.value[index] = this.getIndex(this.hours, this.hour);
292
+ }, 8);
293
+ },
294
+ setMinutes() {
295
+ this.minutes = this.generateArray(0, 59);
296
+ setTimeout(() => {
297
+ let index = this.type > 4 ? this.value.length - 2 : this.value.length - 1;
298
+ this.value[index] = this.getIndex(this.minutes, this.minute);
299
+ }, 8);
300
+ },
301
+ setSeconds() {
302
+ this.seconds = this.generateArray(0, 59);
303
+ setTimeout(() => {
304
+ this.value[this.value.length - 1] = this.getIndex(this.seconds, this.second);
305
+ }, 8);
306
+ },
307
+ show() {
308
+ setTimeout(() => {
309
+ this.isShow = true;
310
+ }, 50);
311
+ },
312
+ hide() {
313
+ this.isShow = false;
314
+ },
315
+ change(e) {
316
+ this.value = e.detail.value;
317
+ switch (this.type) {
318
+ case 1:
319
+ this.year = this.years[this.value[0]];
320
+ this.month = this.months[this.value[1]];
321
+ this.day = this.days[this.value[2]];
322
+ this.hour = this.hours[this.value[3]];
323
+ this.minute = this.minutes[this.value[4]];
324
+ break;
325
+ case 2:
326
+ this.year = this.years[this.value[0]];
327
+ this.month = this.months[this.value[1]];
328
+ this.day = this.days[this.value[2]];
329
+ break;
330
+ case 3:
331
+ this.year = this.years[this.value[0]];
332
+ this.month = this.months[this.value[1]];
333
+ break;
334
+ case 4:
335
+ this.hour = this.hours[this.value[0]];
336
+ this.minute = this.minutes[this.value[1]];
337
+ break;
338
+ case 5:
339
+ this.hour = this.hours[this.value[0]];
340
+ this.minute = this.minutes[this.value[1]];
341
+ this.second = this.seconds[this.value[2]];
342
+ break;
343
+ case 6:
344
+ this.minute = this.minutes[this.value[0]];
345
+ this.second = this.seconds[this.value[1]];
346
+ break;
347
+ case 7:
348
+ this.year = this.years[this.value[0]];
349
+ this.month = this.months[this.value[1]];
350
+ this.day = this.days[this.value[2]];
351
+ this.hour = this.hours[this.value[3]];
352
+ this.minute = this.minutes[this.value[4]];
353
+ this.second = this.seconds[this.value[5]];
354
+ break;
355
+ default:
356
+ break;
357
+ }
358
+ },
359
+ btnFix() {
360
+ setTimeout(() => {
361
+ let result = {};
362
+ let year = this.year;
363
+ let month = this.formatNum(this.month || 0);
364
+ let day = this.formatNum(this.day || 0);
365
+ let hour = this.formatNum(this.hour || 0);
366
+ let minute = this.formatNum(this.minute || 0);
367
+ let second = this.formatNum(this.second || 0);
368
+ switch (this.type) {
369
+ case 1:
370
+ result = {
371
+ year: year,
372
+ month: month,
373
+ day: day,
374
+ hour: hour,
375
+ minute: minute,
376
+ result: `${year}-${month}-${day} ${hour}:${minute}`
377
+ };
378
+ break;
379
+ case 2:
380
+ result = {
381
+ year: year,
382
+ month: month,
383
+ day: day,
384
+ result: `${year}-${month}-${day}`
385
+ };
386
+ break;
387
+ case 3:
388
+ result = {
389
+ year: year,
390
+ month: month,
391
+ result: `${year}-${month}`
392
+ };
393
+ break;
394
+ case 4:
395
+ result = {
396
+ hour: hour,
397
+ minute: minute,
398
+ result: `${hour}:${minute}`
399
+ };
400
+ break;
401
+ case 5:
402
+ result = {
403
+ hour: hour,
404
+ minute: minute,
405
+ second: second,
406
+ result: `${hour}:${minute}:${second}`
407
+ };
408
+ break;
409
+ case 6:
410
+ result = {
411
+ minute: minute,
412
+ second: second,
413
+ result: `${minute}:${second}`
414
+ };
415
+ break;
416
+ case 7:
417
+ result = {
418
+ year: year,
419
+ month: month,
420
+ day: day,
421
+ hour: hour,
422
+ minute: minute,
423
+ second: second,
424
+ result: `${year}-${month}-${day} ${hour}:${minute}:${second}`
425
+ };
426
+ break;
427
+ default:
428
+ break;
429
+ }
430
+ this.$emit('confirm', result);
431
+ this.hide();
432
+ }, 80);
433
+ }
434
+ }
435
+ };
436
+ </script>
437
+
438
+ <style scoped>
439
+ .fui-datetime-picker {
440
+ position: relative;
441
+ z-index: 999;
442
+ }
443
+
444
+ .fui-picker-view {
445
+ height: 100%;
446
+ box-sizing: border-box;
447
+ }
448
+
449
+ .fui-mask {
450
+ position: fixed;
451
+ z-index: 9998;
452
+ top: 0;
453
+ right: 0;
454
+ bottom: 0;
455
+ left: 0;
456
+ background-color: rgba(0, 0, 0, 0.6);
457
+ visibility: hidden;
458
+ opacity: 0;
459
+ transition: all 0.3s ease-in-out;
460
+ }
461
+
462
+ .fui-mask-show {
463
+ visibility: visible !important;
464
+ opacity: 1 !important;
465
+ }
466
+
467
+ .fui-header {
468
+ z-index: 9999;
469
+ position: fixed;
470
+ bottom: 0;
471
+ left: 0;
472
+ width: 100%;
473
+ transition: all 0.3s ease-in-out;
474
+ transform: translateY(100%);
475
+ }
476
+
477
+ .fui-date-header {
478
+ width: 100%;
479
+ height: 52rpx;
480
+ display: flex;
481
+ align-items: center;
482
+ justify-content: space-between;
483
+ background-color: #fff;
484
+ font-size: 26rpx;
485
+ line-height: 26rpx;
486
+ color: #555;
487
+ /* #ifdef MP */
488
+ box-shadow: 0 15rpx 10rpx -15rpx #efefef;
489
+ /* #endif */
490
+ /* #ifndef MP */
491
+ box-shadow: 0 15rpx 10rpx -15rpx #888;
492
+ /* #endif */
493
+ position: relative;
494
+ z-index: 2;
495
+ }
496
+
497
+ .fui-date-unit {
498
+ flex: 1;
499
+ text-align: center;
500
+ }
501
+
502
+ .fui-show {
503
+ transform: translateY(0);
504
+ }
505
+
506
+ .fui-picker-header {
507
+ width: 100%;
508
+ height: 90rpx;
509
+ padding: 0 40rpx;
510
+ display: flex;
511
+ justify-content: space-between;
512
+ align-items: center;
513
+ box-sizing: border-box;
514
+ font-size: 32rpx;
515
+ background-color: #fff;
516
+ position: relative;
517
+ }
518
+
519
+ .fui-date-radius {
520
+ border-top-left-radius: 20rpx;
521
+ border-top-right-radius: 20rpx;
522
+ overflow: hidden;
523
+ }
524
+
525
+ .fui-picker-header::after {
526
+ content: '';
527
+ position: absolute;
528
+ border-bottom: 1rpx solid #eaeef1;
529
+ -webkit-transform: scaleY(0.5);
530
+ transform: scaleY(0.5);
531
+ bottom: 0;
532
+ right: 0;
533
+ left: 0;
534
+ }
535
+
536
+ .fui-picker-body {
537
+ width: 100%;
538
+ height: 520rpx;
539
+ overflow: hidden;
540
+ background-color: #fff;
541
+ }
542
+
543
+ .fui-column-item {
544
+ display: flex;
545
+ align-items: center;
546
+ justify-content: center;
547
+ font-size: 36rpx;
548
+ color: #333;
549
+ }
550
+
551
+ .fui-font-size_32 {
552
+ font-size: 32rpx !important;
553
+ }
554
+
555
+ .fui-unit-text {
556
+ font-size: 24rpx !important;
557
+ padding-left: 8rpx;
558
+ }
559
+
560
+ .fui-btn-picker {
561
+ padding: 16rpx;
562
+ box-sizing: border-box;
563
+ text-align: center;
564
+ text-decoration: none;
565
+ }
566
+
567
+ .fui-opacity {
568
+ opacity: 0.5;
569
+ }
570
+ </style>
@@ -0,0 +1,118 @@
1
+ <template>
2
+ <view class="fui-divider" :style="{ height: height + 'rpx' }">
3
+ <view class="fui-divider-line" :style="{ width: width, background: getBgColor(gradual, gradualColor, dividerColor) }"></view>
4
+ <view
5
+ class="fui-divider-text"
6
+ :style="{
7
+ color: color,
8
+ fontSize: size + 'rpx',
9
+ lineHeight: size + 'rpx',
10
+ backgroundColor: backgroundColor,
11
+ fontWeight: bold ? 'bold' : 'normal'
12
+ }"
13
+ >
14
+ <slot></slot>
15
+ </view>
16
+ </view>
17
+ </template>
18
+
19
+ <script>
20
+ export default {
21
+ name: 'fuiDivider',
22
+ props: {
23
+ //divider占据高度
24
+ height: {
25
+ type: Number,
26
+ default: 100
27
+ },
28
+ //divider宽度,可填写具体长度,如400rpx
29
+ width: {
30
+ type: String,
31
+ default: '100%'
32
+ },
33
+ //divider颜色,如果为渐变线条,此属性失效
34
+ dividerColor: {
35
+ type: String,
36
+ default: '#e5e5e5'
37
+ },
38
+ //文字颜色
39
+ color: {
40
+ type: String,
41
+ default: '#999'
42
+ },
43
+ //文字大小 rpx
44
+ size: {
45
+ type: Number,
46
+ default: 24
47
+ },
48
+ bold: {
49
+ type: Boolean,
50
+ default: false
51
+ },
52
+ //背景颜色,和当前页面背景色保持一致
53
+ backgroundColor: {
54
+ type: String,
55
+ default: '#fafafa'
56
+ },
57
+ //是否为渐变线条,为true,divideColor失效
58
+ gradual: {
59
+ type: Boolean,
60
+ default: false
61
+ },
62
+ //渐变色值,to right ,提供两个色值即可,由浅至深
63
+ gradualColor: {
64
+ type: Array,
65
+ default: () => {
66
+ return ['#eee', '#ccc'];
67
+ }
68
+ }
69
+ },
70
+ methods: {
71
+ getBgColor(gradual, gradualColor, dividerColor) {
72
+ let bgColor = dividerColor;
73
+ if (gradual) {
74
+ bgColor =
75
+ 'linear-gradient(to right,' +
76
+ gradualColor[0] +
77
+ ',' +
78
+ gradualColor[1] +
79
+ ',' +
80
+ gradualColor[1] +
81
+ ',' +
82
+ gradualColor[0] +
83
+ ')';
84
+ }
85
+ return bgColor;
86
+ }
87
+ }
88
+ };
89
+ </script>
90
+
91
+ <style scoped>
92
+ .fui-divider {
93
+ width: 100%;
94
+ position: relative;
95
+ text-align: center;
96
+ display: flex;
97
+ justify-content: center;
98
+ align-items: center;
99
+ box-sizing: border-box;
100
+ overflow: hidden;
101
+ }
102
+
103
+ .fui-divider-line {
104
+ position: absolute;
105
+ height: 1rpx;
106
+ top: 50%;
107
+ left: 50%;
108
+ -webkit-transform: scaleY(0.5) translateX(-50%) translateZ(0);
109
+ transform: scaleY(0.5) translateX(-50%) translateZ(0);
110
+ }
111
+
112
+ .fui-divider-text {
113
+ position: relative;
114
+ text-align: center;
115
+ padding: 0 18rpx;
116
+ z-index: 1;
117
+ }
118
+ </style>