@tplc/wot 1.0.6 → 1.0.8

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 (518) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/components/common/AbortablePromise.ts +3 -11
  3. package/components/common/abstracts/_config.scss +1 -1
  4. package/components/common/abstracts/_function.scss +26 -13
  5. package/components/common/abstracts/_mixin.scss +117 -71
  6. package/components/common/abstracts/variable.scss +325 -697
  7. package/components/common/base64.ts +1 -2
  8. package/components/common/canvasHelper.ts +1 -1
  9. package/components/common/interceptor.ts +43 -0
  10. package/components/common/props.ts +8 -8
  11. package/components/common/util.ts +145 -60
  12. package/components/composables/index.ts +11 -0
  13. package/components/composables/useChildren.ts +9 -18
  14. package/components/composables/useCountDown.ts +2 -2
  15. package/components/composables/useLockScroll.ts +1 -3
  16. package/components/composables/useParent.ts +4 -4
  17. package/components/composables/usePopover.ts +43 -60
  18. package/components/composables/useQueue.ts +2 -2
  19. package/components/composables/useTouch.ts +2 -3
  20. package/components/composables/useTranslate.ts +2 -13
  21. package/components/composables/useUpload.ts +389 -0
  22. package/components/wd-action-sheet/index.scss +22 -22
  23. package/components/wd-action-sheet/types.ts +11 -21
  24. package/components/wd-action-sheet/wd-action-sheet.vue +21 -40
  25. package/components/wd-backtop/index.scss +5 -5
  26. package/components/wd-backtop/types.ts +3 -15
  27. package/components/wd-backtop/wd-backtop.vue +12 -20
  28. package/components/wd-badge/index.scss +14 -10
  29. package/components/wd-badge/types.ts +6 -9
  30. package/components/wd-badge/wd-badge.vue +29 -37
  31. package/components/wd-button/index.scss +76 -80
  32. package/components/wd-button/types.ts +43 -13
  33. package/components/wd-button/wd-button.vue +41 -22
  34. package/components/wd-calendar/index.scss +58 -145
  35. package/components/wd-calendar/types.ts +23 -41
  36. package/components/wd-calendar/wd-calendar.vue +123 -130
  37. package/components/wd-calendar-view/month/index.scss +33 -65
  38. package/components/wd-calendar-view/month/month.vue +80 -113
  39. package/components/wd-calendar-view/month/types.ts +2 -1
  40. package/components/wd-calendar-view/monthPanel/index.scss +15 -15
  41. package/components/wd-calendar-view/monthPanel/month-panel.vue +64 -78
  42. package/components/wd-calendar-view/monthPanel/types.ts +58 -10
  43. package/components/wd-calendar-view/types.ts +12 -36
  44. package/components/wd-calendar-view/utils.ts +14 -36
  45. package/components/wd-calendar-view/wd-calendar-view.vue +7 -7
  46. package/components/wd-calendar-view/year/index.scss +18 -13
  47. package/components/wd-calendar-view/year/types.ts +2 -1
  48. package/components/wd-calendar-view/year/year.vue +25 -43
  49. package/components/wd-calendar-view/yearPanel/index.scss +4 -4
  50. package/components/wd-calendar-view/yearPanel/types.ts +2 -2
  51. package/components/wd-calendar-view/yearPanel/year-panel.vue +36 -41
  52. package/components/wd-card/index.scss +11 -10
  53. package/components/wd-card/types.ts +1 -1
  54. package/components/wd-card/wd-card.vue +6 -9
  55. package/components/wd-cell/index.scss +56 -41
  56. package/components/wd-cell/types.ts +23 -8
  57. package/components/wd-cell/wd-cell.vue +48 -18
  58. package/components/wd-cell-group/index.scss +8 -7
  59. package/components/wd-cell-group/types.ts +1 -1
  60. package/components/wd-cell-group/wd-cell-group.vue +5 -5
  61. package/components/wd-checkbox/index.scss +35 -35
  62. package/components/wd-checkbox/types.ts +6 -6
  63. package/components/wd-checkbox/wd-checkbox.vue +12 -20
  64. package/components/wd-checkbox-group/index.scss +4 -4
  65. package/components/wd-checkbox-group/types.ts +2 -2
  66. package/components/wd-checkbox-group/wd-checkbox-group.vue +9 -12
  67. package/components/wd-circle/index.scss +5 -5
  68. package/components/wd-circle/types.ts +2 -2
  69. package/components/wd-circle/wd-circle.vue +18 -40
  70. package/components/wd-col/index.scss +2 -2
  71. package/components/wd-col/types.ts +1 -1
  72. package/components/wd-col/wd-col.vue +11 -53
  73. package/components/wd-col-picker/index.scss +41 -115
  74. package/components/wd-col-picker/types.ts +10 -14
  75. package/components/wd-col-picker/wd-col-picker.vue +103 -155
  76. package/components/wd-collapse/index.scss +7 -13
  77. package/components/wd-collapse/types.ts +4 -10
  78. package/components/wd-collapse/wd-collapse.vue +22 -55
  79. package/components/wd-collapse-item/index.scss +16 -5
  80. package/components/wd-collapse-item/types.ts +14 -2
  81. package/components/wd-collapse-item/wd-collapse-item.vue +70 -81
  82. package/components/wd-config-provider/types.ts +69 -40
  83. package/components/wd-config-provider/wd-config-provider.vue +11 -11
  84. package/components/wd-count-down/index.scss +3 -2
  85. package/components/wd-count-down/types.ts +1 -1
  86. package/components/wd-count-down/wd-count-down.vue +5 -5
  87. package/components/wd-count-to/index.scss +2 -1
  88. package/components/wd-count-to/types.ts +10 -3
  89. package/components/wd-count-to/wd-count-to.vue +9 -18
  90. package/components/wd-curtain/index.scss +28 -23
  91. package/components/wd-curtain/types.ts +46 -9
  92. package/components/wd-curtain/wd-curtain.vue +45 -47
  93. package/components/wd-datetime-picker/index.scss +65 -145
  94. package/components/wd-datetime-picker/types.ts +41 -31
  95. package/components/wd-datetime-picker/wd-datetime-picker.vue +307 -333
  96. package/components/wd-datetime-picker-view/types.ts +29 -46
  97. package/components/wd-datetime-picker-view/util.ts +30 -0
  98. package/components/wd-datetime-picker-view/wd-datetime-picker-view.vue +104 -119
  99. package/components/wd-divider/index.scss +78 -10
  100. package/components/wd-divider/types.ts +26 -3
  101. package/components/wd-divider/wd-divider.vue +33 -10
  102. package/components/wd-drop-menu/index.scss +17 -45
  103. package/components/wd-drop-menu/types.ts +3 -3
  104. package/components/wd-drop-menu/wd-drop-menu.vue +61 -25
  105. package/components/wd-drop-menu-item/index.scss +15 -15
  106. package/components/wd-drop-menu-item/types.ts +18 -15
  107. package/components/wd-drop-menu-item/wd-drop-menu-item.vue +33 -54
  108. package/components/wd-fab/index.scss +13 -12
  109. package/components/wd-fab/types.ts +9 -4
  110. package/components/wd-fab/wd-fab.vue +70 -51
  111. package/components/wd-floating-panel/index.scss +64 -0
  112. package/components/wd-floating-panel/type.ts +32 -0
  113. package/components/wd-floating-panel/wd-floating-panel.vue +140 -0
  114. package/components/wd-form/types.ts +8 -16
  115. package/components/wd-form/wd-form.vue +67 -45
  116. package/components/wd-form-item/index.scss +3 -2
  117. package/components/wd-form-item/types.ts +2 -8
  118. package/components/wd-form-item/wd-form-item.vue +3 -3
  119. package/components/wd-grid/index.scss +2 -2
  120. package/components/wd-grid/types.ts +5 -0
  121. package/components/wd-grid/wd-grid.vue +11 -12
  122. package/components/wd-grid-item/index.scss +44 -33
  123. package/components/wd-grid-item/types.ts +7 -4
  124. package/components/wd-grid-item/wd-grid-item.vue +39 -44
  125. package/components/wd-icon/index.scss +311 -303
  126. package/components/wd-icon/types.ts +3 -3
  127. package/components/wd-icon/wd-icon.vue +6 -6
  128. package/components/wd-img/types.ts +1 -1
  129. package/components/wd-img/wd-img.vue +13 -3
  130. package/components/wd-img-cropper/index.scss +43 -39
  131. package/components/wd-img-cropper/types.ts +6 -8
  132. package/components/wd-img-cropper/wd-img-cropper.vue +132 -127
  133. package/components/wd-index-anchor/index.scss +7 -6
  134. package/components/wd-index-anchor/type.ts +2 -2
  135. package/components/wd-index-anchor/wd-index-anchor.vue +3 -9
  136. package/components/wd-index-bar/index.scss +5 -5
  137. package/components/wd-index-bar/type.ts +3 -2
  138. package/components/wd-index-bar/wd-index-bar.vue +15 -51
  139. package/components/wd-input/index.scss +44 -33
  140. package/components/wd-input/types.ts +40 -19
  141. package/components/wd-input/wd-input.vue +58 -42
  142. package/components/wd-input-number/index.scss +23 -31
  143. package/components/wd-input-number/types.ts +42 -14
  144. package/components/wd-input-number/wd-input-number.vue +374 -141
  145. package/components/wd-keyboard/constants.ts +81 -0
  146. package/components/wd-keyboard/index.scss +102 -0
  147. package/components/wd-keyboard/key/index.scss +79 -0
  148. package/components/wd-keyboard/key/index.vue +71 -0
  149. package/components/wd-keyboard/key/types.ts +11 -0
  150. package/components/wd-keyboard/types.ts +92 -0
  151. package/components/wd-keyboard/wd-keyboard.vue +206 -0
  152. package/components/wd-loading/index.scss +9 -6
  153. package/components/wd-loading/types.ts +1 -1
  154. package/components/wd-loading/wd-loading.vue +9 -9
  155. package/components/wd-loadmore/index.scss +5 -5
  156. package/components/wd-loadmore/types.ts +8 -2
  157. package/components/wd-loadmore/wd-loadmore.vue +28 -13
  158. package/components/wd-message-box/index.scss +21 -34
  159. package/components/wd-message-box/index.ts +30 -29
  160. package/components/wd-message-box/types.ts +33 -8
  161. package/components/wd-message-box/wd-message-box.vue +130 -152
  162. package/components/wd-navbar/index.scss +14 -24
  163. package/components/wd-navbar/types.ts +1 -1
  164. package/components/wd-navbar/wd-navbar.vue +14 -45
  165. package/components/wd-navbar-capsule/index.scss +16 -15
  166. package/components/wd-navbar-capsule/types.ts +8 -0
  167. package/components/wd-navbar-capsule/wd-navbar-capsule.vue +8 -4
  168. package/components/wd-notice-bar/index.scss +15 -33
  169. package/components/wd-notice-bar/types.ts +14 -3
  170. package/components/wd-notice-bar/wd-notice-bar.vue +109 -66
  171. package/components/wd-notify/index.scss +5 -5
  172. package/components/wd-notify/index.ts +17 -15
  173. package/components/wd-notify/types.ts +4 -0
  174. package/components/wd-notify/wd-notify.vue +21 -19
  175. package/components/wd-number-keyboard/index.scss +10 -10
  176. package/components/wd-number-keyboard/key/index.scss +7 -5
  177. package/components/wd-number-keyboard/key/index.vue +6 -9
  178. package/components/wd-number-keyboard/key/types.ts +1 -1
  179. package/components/wd-number-keyboard/types.ts +4 -0
  180. package/components/wd-number-keyboard/wd-number-keyboard.vue +22 -44
  181. package/components/wd-overlay/index.scss +3 -3
  182. package/components/wd-overlay/types.ts +2 -2
  183. package/components/wd-overlay/wd-overlay.vue +7 -15
  184. package/components/wd-pagination/index.scss +17 -17
  185. package/components/wd-pagination/types.ts +1 -1
  186. package/components/wd-pagination/wd-pagination.vue +10 -21
  187. package/components/wd-password-input/index.scss +7 -6
  188. package/components/wd-password-input/types.ts +2 -8
  189. package/components/wd-password-input/wd-password-input.vue +6 -15
  190. package/components/wd-picker/index.scss +46 -153
  191. package/components/wd-picker/types.ts +22 -19
  192. package/components/wd-picker/wd-picker.vue +89 -86
  193. package/components/wd-picker-view/index.scss +13 -12
  194. package/components/wd-picker-view/types.ts +16 -26
  195. package/components/wd-picker-view/wd-picker-view.vue +32 -24
  196. package/components/wd-popover/index.scss +29 -36
  197. package/components/wd-popover/types.ts +1 -1
  198. package/components/wd-popover/wd-popover.vue +20 -56
  199. package/components/wd-popup/index.scss +47 -75
  200. package/components/wd-popup/types.ts +40 -4
  201. package/components/wd-popup/wd-popup.vue +100 -157
  202. package/components/wd-progress/index.scss +20 -14
  203. package/components/wd-progress/types.ts +10 -6
  204. package/components/wd-progress/wd-progress.vue +137 -141
  205. package/components/wd-radio/index.scss +54 -53
  206. package/components/wd-radio/types.ts +15 -6
  207. package/components/wd-radio/wd-radio.vue +41 -59
  208. package/components/wd-radio-group/index.scss +5 -5
  209. package/components/wd-radio-group/types.ts +4 -1
  210. package/components/wd-radio-group/wd-radio-group.vue +6 -9
  211. package/components/wd-rate/index.scss +1 -1
  212. package/components/wd-rate/types.ts +10 -5
  213. package/components/wd-rate/wd-rate.vue +35 -17
  214. package/components/wd-resize/index.scss +2 -1
  215. package/components/wd-resize/types.ts +1 -1
  216. package/components/wd-resize/wd-resize.vue +11 -22
  217. package/components/wd-root-portal/wd-root-portal.vue +50 -0
  218. package/components/wd-row/index.scss +1 -1
  219. package/components/wd-row/types.ts +1 -1
  220. package/components/wd-row/wd-row.vue +14 -35
  221. package/components/wd-search/index.scss +29 -29
  222. package/components/wd-search/types.ts +22 -3
  223. package/components/wd-search/wd-search.vue +70 -120
  224. package/components/wd-segmented/index.scss +19 -15
  225. package/components/wd-segmented/types.ts +16 -4
  226. package/components/wd-segmented/wd-segmented.vue +34 -34
  227. package/components/wd-select-picker/index.scss +55 -122
  228. package/components/wd-select-picker/types.ts +29 -36
  229. package/components/wd-select-picker/wd-select-picker.vue +128 -274
  230. package/components/wd-sidebar/index.scss +5 -5
  231. package/components/wd-sidebar/types.ts +22 -3
  232. package/components/wd-sidebar/wd-sidebar.vue +26 -4
  233. package/components/wd-sidebar-item/index.scss +17 -13
  234. package/components/wd-sidebar-item/types.ts +3 -3
  235. package/components/wd-sidebar-item/wd-sidebar-item.vue +12 -10
  236. package/components/wd-signature/index.scss +31 -0
  237. package/components/wd-signature/types.ts +263 -0
  238. package/components/wd-signature/wd-signature.vue +630 -0
  239. package/components/wd-skeleton/index.scss +8 -13
  240. package/components/wd-skeleton/types.ts +6 -6
  241. package/components/wd-skeleton/wd-skeleton.vue +15 -31
  242. package/components/wd-slider/index.scss +24 -17
  243. package/components/wd-slider/types.ts +45 -17
  244. package/components/wd-slider/wd-slider.vue +275 -297
  245. package/components/wd-sort-button/index.scss +10 -7
  246. package/components/wd-sort-button/types.ts +1 -1
  247. package/components/wd-sort-button/wd-sort-button.vue +7 -14
  248. package/components/wd-status-tip/index.scss +8 -8
  249. package/components/wd-status-tip/types.ts +8 -2
  250. package/components/wd-status-tip/wd-status-tip.vue +14 -37
  251. package/components/wd-step/index.scss +29 -30
  252. package/components/wd-step/types.ts +1 -1
  253. package/components/wd-step/wd-step.vue +8 -9
  254. package/components/wd-steps/index.scss +1 -1
  255. package/components/wd-steps/types.ts +1 -1
  256. package/components/wd-steps/wd-steps.vue +5 -5
  257. package/components/wd-sticky/index.scss +1 -1
  258. package/components/wd-sticky/types.ts +1 -1
  259. package/components/wd-sticky/wd-sticky.vue +21 -29
  260. package/components/wd-sticky-box/index.scss +1 -1
  261. package/components/wd-sticky-box/wd-sticky-box.vue +7 -6
  262. package/components/wd-swipe-action/index.scss +1 -1
  263. package/components/wd-swipe-action/types.ts +2 -5
  264. package/components/wd-swipe-action/wd-swipe-action.vue +9 -22
  265. package/components/wd-swiper-nav/index.scss +22 -16
  266. package/components/wd-swiper-nav/types.ts +1 -9
  267. package/components/wd-swiper-nav/wd-swiper-nav.vue +2 -5
  268. package/components/wd-switch/index.scss +15 -15
  269. package/components/wd-switch/types.ts +8 -6
  270. package/components/wd-switch/wd-switch.vue +15 -15
  271. package/components/wd-tab/index.scss +11 -3
  272. package/components/wd-tab/types.ts +11 -1
  273. package/components/wd-tab/wd-tab.vue +28 -36
  274. package/components/wd-tabbar/index.scss +12 -7
  275. package/components/wd-tabbar/types.ts +3 -18
  276. package/components/wd-tabbar/wd-tabbar.vue +10 -23
  277. package/components/wd-tabbar-item/index.scss +15 -12
  278. package/components/wd-tabbar-item/types.ts +3 -3
  279. package/components/wd-tabbar-item/wd-tabbar-item.vue +11 -13
  280. package/components/wd-table/index.scss +40 -9
  281. package/components/wd-table/types.ts +13 -15
  282. package/components/wd-table/wd-table.vue +123 -94
  283. package/components/wd-table-col/index.scss +6 -4
  284. package/components/wd-table-col/types.ts +1 -1
  285. package/components/wd-table-col/wd-table-col.vue +12 -12
  286. package/components/wd-tag/index.scss +19 -19
  287. package/components/wd-tag/types.ts +1 -1
  288. package/components/wd-tag/wd-tag.vue +14 -20
  289. package/components/wd-text/index.scss +4 -1
  290. package/components/wd-text/types.ts +4 -4
  291. package/components/wd-text/wd-text.vue +12 -11
  292. package/components/wd-textarea/index.scss +51 -41
  293. package/components/wd-textarea/types.ts +24 -34
  294. package/components/wd-textarea/wd-textarea.vue +59 -66
  295. package/components/wd-toast/index.scss +31 -18
  296. package/components/wd-toast/index.ts +26 -43
  297. package/components/wd-toast/types.ts +117 -3
  298. package/components/wd-toast/wd-toast.vue +49 -69
  299. package/components/wd-tooltip/index.scss +21 -16
  300. package/components/wd-tooltip/types.ts +8 -3
  301. package/components/wd-tooltip/wd-tooltip.vue +17 -43
  302. package/components/wd-tour/index.scss +123 -0
  303. package/components/wd-tour/types.ts +153 -0
  304. package/components/wd-tour/wd-tour.vue +509 -0
  305. package/components/wd-transition/index.scss +39 -35
  306. package/components/wd-transition/types.ts +27 -9
  307. package/components/wd-transition/wd-transition.vue +45 -34
  308. package/components/wd-upload/index.scss +23 -21
  309. package/components/wd-upload/types.ts +43 -30
  310. package/components/wd-upload/wd-upload.vue +183 -247
  311. package/components/wd-video-preview/index.scss +9 -9
  312. package/components/wd-video-preview/types.ts +1 -1
  313. package/components/wd-video-preview/wd-video-preview.vue +18 -22
  314. package/components/wd-watermark/index.scss +7 -7
  315. package/components/wd-watermark/types.ts +2 -8
  316. package/components/wd-watermark/wd-watermark.vue +38 -135
  317. package/dayjs/constant.js +26 -0
  318. package/dayjs/index.d.ts +430 -0
  319. package/dayjs/index.js +542 -0
  320. package/dayjs/locale/en.js +13 -0
  321. package/dayjs/utils.js +59 -0
  322. package/global.d.ts +97 -91
  323. package/index.ts +2 -10
  324. package/locale/index.ts +3 -15
  325. package/locale/lang/ar-SA.ts +133 -0
  326. package/locale/lang/de-DE.ts +133 -0
  327. package/locale/lang/en-US.ts +31 -26
  328. package/locale/lang/es-ES.ts +133 -0
  329. package/locale/lang/fr-FR.ts +133 -0
  330. package/locale/lang/ja-JP.ts +133 -0
  331. package/locale/lang/ko-KR.ts +133 -0
  332. package/locale/lang/pt-PT.ts +133 -0
  333. package/locale/lang/ru-RU.ts +133 -0
  334. package/locale/lang/th-TH.ts +28 -22
  335. package/locale/lang/tr-TR.ts +138 -0
  336. package/locale/lang/ug-CN.ts +137 -0
  337. package/locale/lang/vi-VN.ts +27 -30
  338. package/locale/lang/zh-CN.ts +32 -22
  339. package/locale/lang/zh-HK.ts +18 -31
  340. package/locale/lang/zh-TW.ts +22 -31
  341. package/package.json +1 -1
  342. package/types/components/common/interceptor.d.ts +15 -0
  343. package/types/components/common/util.d.ts +61 -1
  344. package/types/components/composables/useCell.d.ts +1 -1
  345. package/types/components/composables/useLockScroll.d.ts +1 -2
  346. package/types/components/composables/useParent.d.ts +1 -1
  347. package/types/components/composables/usePopover.d.ts +2 -2
  348. package/types/components/composables/useUpload.d.ts +41 -0
  349. package/types/components/wd-action-sheet/types.d.ts +13 -4
  350. package/types/components/wd-action-sheet/wd-action-sheet.vue.d.ts +20 -11
  351. package/types/components/wd-backtop/types.d.ts +1 -9
  352. package/types/components/wd-backtop/wd-backtop.vue.d.ts +6 -25
  353. package/types/components/wd-badge/types.d.ts +3 -6
  354. package/types/components/wd-badge/wd-badge.vue.d.ts +7 -14
  355. package/types/components/wd-button/types.d.ts +44 -8
  356. package/types/components/wd-button/wd-button.vue.d.ts +13 -9
  357. package/types/components/wd-calendar/types.d.ts +24 -18
  358. package/types/components/wd-calendar/wd-calendar.vue.d.ts +48 -32
  359. package/types/components/wd-calendar-view/month/month.vue.d.ts +11 -3
  360. package/types/components/wd-calendar-view/month/types.d.ts +4 -0
  361. package/types/components/wd-calendar-view/monthPanel/month-panel.vue.d.ts +18 -12
  362. package/types/components/wd-calendar-view/monthPanel/types.d.ts +48 -6
  363. package/types/components/wd-calendar-view/types.d.ts +11 -4
  364. package/types/components/wd-calendar-view/utils.d.ts +3 -12
  365. package/types/components/wd-calendar-view/wd-calendar-view.vue.d.ts +1 -1
  366. package/types/components/wd-calendar-view/year/types.d.ts +4 -0
  367. package/types/components/wd-calendar-view/year/year.vue.d.ts +11 -3
  368. package/types/components/wd-cell/types.d.ts +37 -1
  369. package/types/components/wd-cell/wd-cell.vue.d.ts +53 -9
  370. package/types/components/wd-checkbox/wd-checkbox.vue.d.ts +2 -2
  371. package/types/components/wd-checkbox-group/wd-checkbox-group.vue.d.ts +2 -2
  372. package/types/components/wd-circle/wd-circle.vue.d.ts +3 -3
  373. package/types/components/wd-col-picker/types.d.ts +14 -0
  374. package/types/components/wd-col-picker/wd-col-picker.vue.d.ts +36 -19
  375. package/types/components/wd-collapse/types.d.ts +1 -5
  376. package/types/components/wd-collapse/wd-collapse.vue.d.ts +3 -11
  377. package/types/components/wd-collapse-item/types.d.ts +19 -1
  378. package/types/components/wd-collapse-item/wd-collapse-item.vue.d.ts +20 -1
  379. package/types/components/wd-config-provider/types.d.ts +64 -7
  380. package/types/components/wd-config-provider/wd-config-provider.vue.d.ts +1 -1
  381. package/types/components/wd-count-to/types.d.ts +11 -0
  382. package/types/components/wd-count-to/wd-count-to.vue.d.ts +13 -4
  383. package/types/components/wd-curtain/types.d.ts +56 -0
  384. package/types/components/wd-curtain/wd-curtain.vue.d.ts +152 -77
  385. package/types/components/wd-datetime-picker/types.d.ts +49 -15
  386. package/types/components/wd-datetime-picker/wd-datetime-picker.vue.d.ts +75 -38
  387. package/types/components/wd-datetime-picker-view/types.d.ts +36 -14
  388. package/types/components/wd-datetime-picker-view/util.d.ts +12 -0
  389. package/types/components/wd-datetime-picker-view/wd-datetime-picker-view.vue.d.ts +35 -9
  390. package/types/components/wd-divider/types.d.ts +32 -4
  391. package/types/components/wd-divider/wd-divider.vue.d.ts +30 -7
  392. package/types/components/wd-drop-menu/types.d.ts +3 -3
  393. package/types/components/wd-drop-menu/wd-drop-menu.vue.d.ts +8 -8
  394. package/types/components/wd-drop-menu-item/types.d.ts +27 -15
  395. package/types/components/wd-drop-menu-item/wd-drop-menu-item.vue.d.ts +47 -36
  396. package/types/components/wd-fab/types.d.ts +19 -3
  397. package/types/components/wd-fab/wd-fab.vue.d.ts +13 -1
  398. package/types/components/wd-floating-panel/type.d.ts +54 -0
  399. package/types/components/wd-floating-panel/wd-floating-panel.vue.d.ts +109 -0
  400. package/types/components/wd-form/types.d.ts +1 -1
  401. package/types/components/wd-form/wd-form.vue.d.ts +2 -2
  402. package/types/components/wd-form-item/wd-form-item.vue.d.ts +2 -2
  403. package/types/components/wd-grid/types.d.ts +5 -0
  404. package/types/components/wd-grid/wd-grid.vue.d.ts +2 -0
  405. package/types/components/wd-grid-item/types.d.ts +4 -1
  406. package/types/components/wd-grid-item/wd-grid-item.vue.d.ts +3 -3
  407. package/types/components/wd-icon/types.d.ts +1 -1
  408. package/types/components/wd-icon/wd-icon.vue.d.ts +3 -3
  409. package/types/components/wd-img/types.d.ts +4 -1
  410. package/types/components/wd-img/wd-img.vue.d.ts +11 -4
  411. package/types/components/wd-img-cropper/types.d.ts +7 -0
  412. package/types/components/wd-img-cropper/wd-img-cropper.vue.d.ts +12 -3
  413. package/types/components/wd-index-bar/type.d.ts +2 -1
  414. package/types/components/wd-index-bar/wd-index-bar.vue.d.ts +1 -5
  415. package/types/components/wd-input/types.d.ts +53 -37
  416. package/types/components/wd-input/wd-input.vue.d.ts +50 -52
  417. package/types/components/wd-input-number/types.d.ts +51 -6
  418. package/types/components/wd-input-number/wd-input-number.vue.d.ts +152 -125
  419. package/types/components/wd-keyboard/constants.d.ts +8 -0
  420. package/types/components/wd-keyboard/key/index.vue.d.ts +70 -0
  421. package/types/components/wd-keyboard/key/types.d.ts +23 -0
  422. package/types/components/wd-keyboard/types.d.ts +137 -0
  423. package/types/components/wd-keyboard/wd-keyboard.vue.d.ts +200 -0
  424. package/types/components/wd-loading/wd-loading.vue.d.ts +2 -2
  425. package/types/components/wd-loadmore/types.d.ts +7 -4
  426. package/types/components/wd-loadmore/wd-loadmore.vue.d.ts +5 -9
  427. package/types/components/wd-message-box/index.d.ts +3 -8
  428. package/types/components/wd-message-box/types.d.ts +36 -5
  429. package/types/components/wd-message-box/wd-message-box.vue.d.ts +18 -2
  430. package/types/components/wd-navbar/wd-navbar.vue.d.ts +3 -3
  431. package/types/components/wd-navbar-capsule/types.d.ts +12 -0
  432. package/types/components/wd-navbar-capsule/wd-navbar-capsule.vue.d.ts +27 -4
  433. package/types/components/wd-notice-bar/types.d.ts +9 -1
  434. package/types/components/wd-notice-bar/wd-notice-bar.vue.d.ts +7 -5
  435. package/types/components/wd-notify/types.d.ts +7 -0
  436. package/types/components/wd-notify/wd-notify.vue.d.ts +13 -4
  437. package/types/components/wd-number-keyboard/types.d.ts +7 -0
  438. package/types/components/wd-number-keyboard/wd-number-keyboard.vue.d.ts +18 -9
  439. package/types/components/wd-overlay/wd-overlay.vue.d.ts +2 -2
  440. package/types/components/wd-pagination/wd-pagination.vue.d.ts +1 -1
  441. package/types/components/wd-password-input/wd-password-input.vue.d.ts +2 -2
  442. package/types/components/wd-picker/types.d.ts +28 -2
  443. package/types/components/wd-picker/wd-picker.vue.d.ts +55 -19
  444. package/types/components/wd-picker-view/types.d.ts +10 -0
  445. package/types/components/wd-picker-view/wd-picker-view.vue.d.ts +15 -3
  446. package/types/components/wd-popover/wd-popover.vue.d.ts +4 -4
  447. package/types/components/wd-popup/types.d.ts +44 -5
  448. package/types/components/wd-popup/wd-popup.vue.d.ts +35 -24
  449. package/types/components/wd-progress/types.d.ts +6 -3
  450. package/types/components/wd-progress/wd-progress.vue.d.ts +4 -6
  451. package/types/components/wd-qr-code/uqrcode.vue.d.ts +3 -3
  452. package/types/components/wd-qr-code/wd-qr-code.vue.d.ts +4 -4
  453. package/types/components/wd-radio/types.d.ts +8 -0
  454. package/types/components/wd-radio/wd-radio.vue.d.ts +7 -0
  455. package/types/components/wd-radio-group/types.d.ts +7 -1
  456. package/types/components/wd-radio-group/wd-radio-group.vue.d.ts +11 -2
  457. package/types/components/wd-rate/types.d.ts +9 -0
  458. package/types/components/wd-rate/wd-rate.vue.d.ts +13 -4
  459. package/types/components/wd-root-portal/wd-root-portal.vue.d.ts +26 -0
  460. package/types/components/wd-search/types.d.ts +16 -1
  461. package/types/components/wd-search/wd-search.vue.d.ts +28 -8
  462. package/types/components/wd-segmented/types.d.ts +10 -1
  463. package/types/components/wd-segmented/wd-segmented.vue.d.ts +6 -4
  464. package/types/components/wd-select-picker/types.d.ts +37 -22
  465. package/types/components/wd-select-picker/wd-select-picker.vue.d.ts +59 -30
  466. package/types/components/wd-sidebar/types.d.ts +19 -3
  467. package/types/components/wd-sidebar/wd-sidebar.vue.d.ts +4 -2
  468. package/types/components/wd-signature/types.d.ts +252 -0
  469. package/types/components/wd-signature/wd-signature.vue.d.ts +229 -0
  470. package/types/components/wd-skeleton/types.d.ts +3 -4
  471. package/types/components/wd-skeleton/wd-skeleton.vue.d.ts +10 -10
  472. package/types/components/wd-slider/types.d.ts +39 -15
  473. package/types/components/wd-slider/wd-slider.vue.d.ts +12 -38
  474. package/types/components/wd-sort-button/wd-sort-button.vue.d.ts +3 -3
  475. package/types/components/wd-status-tip/types.d.ts +9 -0
  476. package/types/components/wd-status-tip/wd-status-tip.vue.d.ts +69 -49
  477. package/types/components/wd-steps/wd-steps.vue.d.ts +1 -1
  478. package/types/components/wd-sticky/wd-sticky.vue.d.ts +3 -7
  479. package/types/components/wd-swipe-action/wd-swipe-action.vue.d.ts +3 -3
  480. package/types/components/wd-swiper/wd-swiper.vue.d.ts +4 -4
  481. package/types/components/wd-swiper-nav/types.d.ts +0 -14
  482. package/types/components/wd-swiper-nav/wd-swiper-nav.vue.d.ts +0 -18
  483. package/types/components/wd-switch/types.d.ts +0 -1
  484. package/types/components/wd-switch/wd-switch.vue.d.ts +2 -5
  485. package/types/components/wd-tab/types.d.ts +16 -3
  486. package/types/components/wd-tab/wd-tab.vue.d.ts +12 -4
  487. package/types/components/wd-tabbar/types.d.ts +1 -1
  488. package/types/components/wd-tabbar/wd-tabbar.vue.d.ts +5 -5
  489. package/types/components/wd-tabbar-item/wd-tabbar-item.vue.d.ts +1 -1
  490. package/types/components/wd-table/types.d.ts +12 -8
  491. package/types/components/wd-table/wd-table.vue.d.ts +16 -13
  492. package/types/components/wd-table-col/wd-table-col.vue.d.ts +1 -1
  493. package/types/components/wd-tabs/wd-tabs.vue.d.ts +7 -7
  494. package/types/components/wd-tag/wd-tag.vue.d.ts +4 -4
  495. package/types/components/wd-text/types.d.ts +2 -2
  496. package/types/components/wd-text/wd-text.vue.d.ts +7 -7
  497. package/types/components/wd-textarea/types.d.ts +41 -39
  498. package/types/components/wd-textarea/wd-textarea.vue.d.ts +46 -46
  499. package/types/components/wd-toast/index.d.ts +1 -6
  500. package/types/components/wd-toast/types.d.ts +127 -5
  501. package/types/components/wd-toast/wd-toast.vue.d.ts +101 -0
  502. package/types/components/wd-tooltip/types.d.ts +1 -1
  503. package/types/components/wd-tooltip/wd-tooltip.vue.d.ts +7 -7
  504. package/types/components/wd-tour/types.d.ts +194 -0
  505. package/types/components/wd-tour/wd-tour.vue.d.ts +267 -0
  506. package/types/components/wd-transition/types.d.ts +22 -7
  507. package/types/components/wd-transition/wd-transition.vue.d.ts +33 -20
  508. package/types/components/wd-upload/types.d.ts +39 -10
  509. package/types/components/wd-upload/wd-upload.vue.d.ts +42 -16
  510. package/types/components/wd-watermark/wd-watermark.vue.d.ts +7 -7
  511. package/types/locale/index.d.ts +0 -3
  512. package/types/locale/lang/zh-CN.d.ts +9 -0
  513. package/components/wd-datetime-picker-view/index.scss +0 -0
  514. package/components/wd-form/index.scss +0 -10
  515. package/components/wd-upload/utils.ts +0 -152
  516. package/types/components/common/dayjs.d.ts +0 -26
  517. package/types/components/wd-upload/utils.d.ts +0 -11
  518. package/types/locale/lang/en-US.d.ts +0 -128
@@ -4,9 +4,7 @@
4
4
  {{ title }}
5
5
  </view>
6
6
  <view class="wd-month-panel__weeks">
7
- <view v-for="item in 7" :key="item" class="wd-month-panel__week">
8
- {{ weekLabel(item + firstDayOfWeek) }}
9
- </view>
7
+ <view v-for="item in 7" :key="item" class="wd-month-panel__week">{{ weekLabel(item + firstDayOfWeek) }}</view>
10
8
  </view>
11
9
  <scroll-view
12
10
  :class="`wd-month-panel__container ${!!timeType ? 'wd-month-panel__container--time' : ''}`"
@@ -28,15 +26,14 @@
28
26
  :range-prompt="rangePrompt"
29
27
  :allow-same-day="allowSameDay"
30
28
  :default-time="defaultTime"
29
+ :showTitle="index !== 0"
31
30
  @change="handleDateChange"
32
31
  />
33
32
  </view>
34
33
  </scroll-view>
35
34
  <view v-if="timeType" class="wd-month-panel__time">
36
35
  <view v-if="type === 'datetimerange'" class="wd-month-panel__time-label">
37
- <view class="wd-month-panel__time-text">
38
- {{ timeType === 'start' ? translate('startTime') : translate('endTime') }}
39
- </view>
36
+ <view class="wd-month-panel__time-text">{{ timeType === 'start' ? translate('startTime') : translate('endTime') }}</view>
40
37
  </view>
41
38
  <view class="wd-month-panel__time-picker">
42
39
  <wd-picker-view
@@ -59,29 +56,18 @@ export default {
59
56
  options: {
60
57
  addGlobalClass: true,
61
58
  virtualHost: true,
62
- styleIsolation: 'shared',
63
- },
59
+ styleIsolation: 'shared'
60
+ }
64
61
  }
65
62
  </script>
66
63
 
67
64
  <script lang="ts" setup>
65
+ import wdPickerView from '../../wd-picker-view/wd-picker-view.vue'
68
66
  import { computed, ref, watch, onMounted } from 'vue'
69
- import { debounce, isArray, isEqual, isNumber, requestAnimationFrame } from '../../common/util'
70
- import {
71
- compareMonth,
72
- formatMonthTitle,
73
- getMonthEndDay,
74
- getMonths,
75
- getTimeData,
76
- getWeekLabel,
77
- } from '../utils'
67
+ import { debounce, isArray, isEqual, isNumber, pause } from '../../common/util'
68
+ import { compareMonth, formatMonthTitle, getMonthEndDay, getMonths, getTimeData, getWeekLabel } from '../utils'
78
69
  import Month from '../month/month.vue'
79
- import {
80
- monthPanelProps,
81
- type MonthInfo,
82
- type MonthPanelTimeType,
83
- type MonthPanelExpose,
84
- } from './types'
70
+ import { monthPanelProps, type MonthInfo, type MonthPanelTimeType, type MonthPanelExpose } from './types'
85
71
  import { useTranslate } from '../../composables/useTranslate'
86
72
  import type { CalendarItem } from '../types'
87
73
 
@@ -99,7 +85,7 @@ const innerValue = ref<string | number | (number | null)[]>('') // 内部保存
99
85
 
100
86
  const handleChange = debounce((value) => {
101
87
  emit('change', {
102
- value,
88
+ value
103
89
  })
104
90
  }, 50)
105
91
 
@@ -146,20 +132,19 @@ const weekLabel = computed(() => {
146
132
 
147
133
  // 滚动区域的高度
148
134
  const scrollHeight = computed(() => {
149
- const scrollHeight: number = timeType.value
150
- ? (props.panelHeight || 378) - 125
151
- : props.panelHeight || 378
135
+ const scrollHeight: number = timeType.value ? props.panelHeight - 125 : props.panelHeight
152
136
  return scrollHeight
153
137
  })
154
138
 
155
139
  // 月份日期和月份高度
156
140
  const months = computed<MonthInfo[]>(() => {
157
- return getMonths(props.minDate, props.maxDate).map((month) => {
141
+ return getMonths(props.minDate, props.maxDate).map((month, index) => {
158
142
  const offset = (7 + new Date(month).getDay() - props.firstDayOfWeek) % 7
159
143
  const totalDay = getMonthEndDay(new Date(month).getFullYear(), new Date(month).getMonth() + 1)
144
+ const rows = Math.ceil((offset + totalDay) / 7)
160
145
  return {
161
- height: (offset + totalDay > 35 ? 64 * 6 : 64 * 5) + 45,
162
- date: month,
146
+ height: rows * 64 + (rows - 1) * 4 + (index === 0 ? 0 : 45), // 每行64px高度,除最后一行外每行加4px margin,加上标题45px
147
+ date: month
163
148
  }
164
149
  })
165
150
  })
@@ -169,19 +154,15 @@ watch(
169
154
  (val) => {
170
155
  if (
171
156
  (val === 'datetime' && props.value) ||
172
- (val === 'datetimerange' &&
173
- isArray(props.value) &&
174
- props.value &&
175
- props.value.length > 0 &&
176
- props.value[0])
157
+ (val === 'datetimerange' && isArray(props.value) && props.value && props.value.length > 0 && props.value[0])
177
158
  ) {
178
159
  setTime(props.value, 'start')
179
160
  }
180
161
  },
181
162
  {
182
163
  deep: true,
183
- immediate: true,
184
- },
164
+ immediate: true
165
+ }
185
166
  )
186
167
 
187
168
  watch(
@@ -189,17 +170,14 @@ watch(
189
170
  (val) => {
190
171
  if (isEqual(val, innerValue.value)) return
191
172
 
192
- if (
193
- (props.type === 'datetime' && val) ||
194
- (props.type === 'datetimerange' && val && isArray(val) && val.length > 0 && val[0])
195
- ) {
173
+ if ((props.type === 'datetime' && val) || (props.type === 'datetimerange' && val && isArray(val) && val.length > 0 && val[0])) {
196
174
  setTime(val, 'start')
197
175
  }
198
176
  },
199
177
  {
200
178
  deep: true,
201
- immediate: true,
202
- },
179
+ immediate: true
180
+ }
203
181
  )
204
182
 
205
183
  onMounted(() => {
@@ -209,31 +187,45 @@ onMounted(() => {
209
187
  /**
210
188
  * 使当前日期或者选中日期滚动到可视区域
211
189
  */
212
- function scrollIntoView() {
213
- requestAnimationFrame(() => {
214
- let activeDate: number | null = 0
215
- if (isArray(props.value)) {
216
- activeDate = props.value![0]
217
- } else if (isNumber(props.value)) {
218
- activeDate = props.value
219
- }
190
+ async function scrollIntoView() {
191
+ // 等待渲染完毕
192
+ await pause()
193
+ let activeDate: number | null = 0
194
+ if (isArray(props.value)) {
195
+ // 对数组按时间排序,取第一个值
196
+ const sortedValue = [...props.value].sort((a, b) => (a || 0) - (b || 0))
197
+ activeDate = sortedValue[0]
198
+ } else if (isNumber(props.value)) {
199
+ activeDate = props.value
200
+ }
220
201
 
221
- if (!activeDate) {
222
- activeDate = Date.now()
223
- }
202
+ if (!activeDate) {
203
+ activeDate = Date.now()
204
+ }
224
205
 
225
- let top: number = 0
226
- for (let index = 0; index < months.value.length; index++) {
227
- if (compareMonth(months.value[index].date, activeDate) === 0) {
228
- break
229
- }
230
- top += months.value[index] ? Number(months.value[index].height) : 0
206
+ let top: number = 0
207
+ let activeMonthIndex = -1
208
+ for (let index = 0; index < months.value.length; index++) {
209
+ if (compareMonth(months.value[index].date, activeDate) === 0) {
210
+ activeMonthIndex = index
211
+ // 找到选中月份后,计算选中日期在月份中的位置
212
+ const date = new Date(activeDate)
213
+ const day = date.getDate()
214
+ const firstDay = new Date(date.getFullYear(), date.getMonth(), 1)
215
+ const offset = (7 + firstDay.getDay() - props.firstDayOfWeek) % 7
216
+ const row = Math.floor((offset + day - 1) / 7)
217
+ // 每行高度64px,每行加4px margin
218
+ top += row * 64 + row * 4
219
+ break
231
220
  }
232
- scrollTop.value = 0
233
- requestAnimationFrame(() => {
234
- scrollTop.value = top
235
- })
236
- })
221
+ top += months.value[index] ? Number(months.value[index].height) : 0
222
+ }
223
+ scrollTop.value = 0
224
+ if (top > 0) {
225
+ await pause()
226
+ // 如果不是第一个月才加45
227
+ scrollTop.value = top + (activeMonthIndex > 0 ? 45 : 0)
228
+ }
237
229
  }
238
230
  /**
239
231
  * 获取时间 picker 的数据
@@ -247,7 +239,7 @@ function getTime(value: number | (number | null)[], type?: string) {
247
239
  minDate: props.minDate,
248
240
  maxDate: props.maxDate,
249
241
  filter: props.timeFilter,
250
- isHideSecond: props.hideSecond,
242
+ isHideSecond: props.hideSecond
251
243
  })
252
244
  } else {
253
245
  if (type === 'start' && isArray(props.value)) {
@@ -256,7 +248,7 @@ function getTime(value: number | (number | null)[], type?: string) {
256
248
  minDate: props.minDate,
257
249
  maxDate: props.value[1] ? props.value[1] : props.maxDate,
258
250
  filter: props.timeFilter,
259
- isHideSecond: props.hideSecond,
251
+ isHideSecond: props.hideSecond
260
252
  })
261
253
  } else {
262
254
  return getTimeData({
@@ -264,7 +256,7 @@ function getTime(value: number | (number | null)[], type?: string) {
264
256
  minDate: (value as Array<number>)[0],
265
257
  maxDate: props.maxDate,
266
258
  filter: props.timeFilter,
267
- isHideSecond: props.hideSecond,
259
+ isHideSecond: props.hideSecond
268
260
  })
269
261
  }
270
262
  }
@@ -299,13 +291,7 @@ function setTime(value: number | (number | null)[], type?: MonthPanelTimeType) {
299
291
  timeType.value = type || ''
300
292
  timeValue.value = getTimeValue(value, type || '')
301
293
  }
302
- function handleDateChange({
303
- value,
304
- type,
305
- }: {
306
- value: number | (number | null)[]
307
- type?: MonthPanelTimeType
308
- }) {
294
+ function handleDateChange({ value, type }: { value: number | (number | null)[]; type?: MonthPanelTimeType }) {
309
295
  if (!isEqual(value, props.value)) {
310
296
  // 内部保存一个值,用于判断新老值,避免监听器触发
311
297
  innerValue.value = value
@@ -371,7 +357,7 @@ function doSetSubtitle(scrollTop: number) {
371
357
  let height: number = 0 // 月份高度和
372
358
  for (let index = 0; index < months.value.length; index++) {
373
359
  height = height + months.value[index].height
374
- if (scrollTop < height + 45) {
360
+ if (scrollTop < height) {
375
361
  scrollIndex.value = index
376
362
  return
377
363
  }
@@ -379,10 +365,10 @@ function doSetSubtitle(scrollTop: number) {
379
365
  }
380
366
 
381
367
  defineExpose<MonthPanelExpose>({
382
- scrollIntoView,
368
+ scrollIntoView
383
369
  })
384
370
  </script>
385
371
 
386
372
  <style lang="scss" scoped>
387
- @import './index';
373
+ @import './index.scss';
388
374
  </style>
@@ -1,7 +1,11 @@
1
1
  import type { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue'
2
- import { makeBooleanProp, makeRequiredProp } from '../../common/props'
2
+ import { makeBooleanProp, makeNumberProp, makeStringProp } from '../../common/props'
3
3
  import type { CalendarFormatter, CalendarTimeFilter, CalendarType } from '../types'
4
4
 
5
+ const now = new Date()
6
+ const defaultMinDate = new Date(now.getFullYear(), now.getMonth() - 6, now.getDate()).getTime()
7
+ const defaultMaxDate = new Date(now.getFullYear(), now.getMonth() + 6, now.getDate(), 23, 59, 59).getTime()
8
+
5
9
  /**
6
10
  * 月份信息
7
11
  */
@@ -11,27 +15,71 @@ export interface MonthInfo {
11
15
  }
12
16
 
13
17
  export const monthPanelProps = {
14
- type: makeRequiredProp(String as PropType<CalendarType>),
15
- value: makeRequiredProp([Number, Array, null] as PropType<number | (number | null)[] | null>),
16
- minDate: makeRequiredProp(Number),
17
- maxDate: makeRequiredProp(Number),
18
- firstDayOfWeek: makeRequiredProp(Number),
18
+ /**
19
+ * 日期类型
20
+ */
21
+ type: makeStringProp<CalendarType>('date'),
22
+ /**
23
+ * 选中值,为 13 位时间戳或时间戳数组
24
+ */
25
+ value: {
26
+ type: [Number, Array, null] as PropType<number | (number | null)[] | null>,
27
+ default: null
28
+ },
29
+ /**
30
+ * 最小日期,为 13 位时间戳
31
+ */
32
+ minDate: makeNumberProp(defaultMinDate),
33
+ /**
34
+ * 最大日期,为 13 位时间戳
35
+ */
36
+ maxDate: makeNumberProp(defaultMaxDate),
37
+ /**
38
+ * 周起始天
39
+ */
40
+ firstDayOfWeek: makeNumberProp(0),
41
+ /**
42
+ * 日期格式化函数
43
+ */
19
44
  formatter: Function as PropType<CalendarFormatter>,
45
+ /**
46
+ * type 为范围选择时有效,最大日期范围
47
+ */
20
48
  maxRange: Number,
49
+ /**
50
+ * type 为范围选择时有效,选择超出最大日期范围时的错误提示文案
51
+ */
21
52
  rangePrompt: String,
53
+ /**
54
+ * type 为范围选择时有效,是否允许选择同一天
55
+ */
22
56
  allowSameDay: makeBooleanProp(false),
57
+ /**
58
+ * 是否展示面板标题,自动计算当前滚动的日期月份
59
+ */
23
60
  showPanelTitle: makeBooleanProp(false),
61
+ /**
62
+ * 选中日期所使用的当日内具体时刻
63
+ */
24
64
  defaultTime: {
25
- type: [Array] as PropType<Array<number[]>>,
65
+ type: [Array] as PropType<Array<number[]>>
26
66
  },
27
- panelHeight: makeRequiredProp(Number),
28
- // type 为 'datetime' 或 'datetimerange' 时有效,用于过滤时间选择器的数据
67
+ /**
68
+ * 可滚动面板的高度
69
+ */
70
+ panelHeight: makeNumberProp(378),
71
+ /**
72
+ * type 为 'datetime' 或 'datetimerange' 时有效,用于过滤时间选择器的数据
73
+ */
29
74
  timeFilter: Function as PropType<CalendarTimeFilter>,
75
+ /**
76
+ * type 为 'datetime' 或 'datetimerange' 时有效,是否不展示秒修改
77
+ */
30
78
  hideSecond: makeBooleanProp(false),
31
79
  /**
32
80
  * 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。
33
81
  */
34
- immediateChange: makeBooleanProp(false),
82
+ immediateChange: makeBooleanProp(false)
35
83
  }
36
84
 
37
85
  export type MonthPanelProps = ExtractPropTypes<typeof monthPanelProps>
@@ -1,22 +1,11 @@
1
1
  import type { ComponentPublicInstance, ExtractPropTypes, PropType } from 'vue'
2
- import {
3
- baseProps,
4
- makeBooleanProp,
5
- makeNumberProp,
6
- makeRequiredProp,
7
- makeStringProp,
8
- } from '../common/props'
2
+ import { baseProps, makeBooleanProp, makeNumberProp, makeRequiredProp, makeStringProp } from '../common/props'
9
3
 
10
- export type CalendarType =
11
- | 'date'
12
- | 'dates'
13
- | 'datetime'
14
- | 'week'
15
- | 'month'
16
- | 'daterange'
17
- | 'datetimerange'
18
- | 'weekrange'
19
- | 'monthrange'
4
+ const now = new Date()
5
+ const defaultMinDate = new Date(now.getFullYear(), now.getMonth() - 6, now.getDate()).getTime()
6
+ const defaultMaxDate = new Date(now.getFullYear(), now.getMonth() + 6, now.getDate(), 23, 59, 59).getTime()
7
+
8
+ export type CalendarType = 'date' | 'dates' | 'datetime' | 'week' | 'month' | 'daterange' | 'datetimerange' | 'weekrange' | 'monthrange'
20
9
 
21
10
  export const calendarViewProps = {
22
11
  ...baseProps,
@@ -31,22 +20,11 @@ export const calendarViewProps = {
31
20
  /**
32
21
  * 最小日期,为 13 位时间戳
33
22
  */
34
- minDate: makeNumberProp(
35
- new Date(new Date().getFullYear(), new Date().getMonth() - 6, new Date().getDate()).getTime(),
36
- ),
23
+ minDate: makeNumberProp(defaultMinDate),
37
24
  /**
38
25
  * 最大日期,为 13 位时间戳
39
26
  */
40
- maxDate: makeNumberProp(
41
- new Date(
42
- new Date().getFullYear(),
43
- new Date().getMonth() + 6,
44
- new Date().getDate(),
45
- 23,
46
- 59,
47
- 59,
48
- ).getTime(),
49
- ),
27
+ maxDate: makeNumberProp(defaultMaxDate),
50
28
  /**
51
29
  * 周起始天
52
30
  */
@@ -74,7 +52,7 @@ export const calendarViewProps = {
74
52
  */
75
53
  defaultTime: {
76
54
  type: [String, Array] as PropType<string | string[]>,
77
- default: '00:00:00',
55
+ default: '00:00:00'
78
56
  },
79
57
  /**
80
58
  * 可滚动面板的高度
@@ -91,23 +69,21 @@ export const calendarViewProps = {
91
69
  /**
92
70
  * 是否在手指松开时立即触发picker-view的 change 事件。若不开启则会在滚动动画结束后触发 change 事件,1.2.25版本起提供,仅微信小程序和支付宝小程序支持。
93
71
  */
94
- immediateChange: makeBooleanProp(false),
72
+ immediateChange: makeBooleanProp(false)
95
73
  }
96
74
 
97
75
  export type CalendarViewProps = ExtractPropTypes<typeof calendarViewProps>
98
76
 
99
- export type CalendarDayType = '' | 'start' | 'middle' | 'end' | 'selected' | 'same' | 'current'
77
+ export type CalendarDayType = '' | 'start' | 'middle' | 'end' | 'selected' | 'same' | 'current' | 'multiple-middle' | 'multiple-selected'
100
78
 
101
79
  export type CalendarDayItem = {
102
80
  date: number
103
81
  text?: number | string
104
- restFlag?: boolean
105
82
  topInfo?: string
106
83
  bottomInfo?: string
107
- floorText?: string
108
84
  type?: CalendarDayType
109
85
  disabled?: boolean
110
- day?: number | string
86
+ isLastRow?: boolean
111
87
  }
112
88
 
113
89
  export type CalendarFormatter = (day: CalendarDayItem) => CalendarDayItem
@@ -1,5 +1,5 @@
1
1
  import { computed } from 'vue'
2
- import { dayjs } from '../common/dayjs'
2
+ import dayjs from '../../dayjs'
3
3
  import { isArray, isFunction, padZero } from '../common/util'
4
4
  import { useTranslate } from '../composables/useTranslate'
5
5
  import type { CalendarDayType, CalendarItem, CalendarTimeFilter, CalendarType } from './types'
@@ -13,7 +13,7 @@ const weeks = computed(() => {
13
13
  translate('weeks.wed'),
14
14
  translate('weeks.thu'),
15
15
  translate('weeks.fri'),
16
- translate('weeks.sat'),
16
+ translate('weeks.sat')
17
17
  ]
18
18
  })
19
19
 
@@ -116,24 +116,6 @@ export function getWeekLabel(index: number) {
116
116
  return weeks.value[index]
117
117
  }
118
118
 
119
- /**
120
- * 获取一个月第一天的样式
121
- * @param {number} index
122
- * @param {timestamp} date
123
- * @param {number} firstDayOfWeek
124
- */
125
- export function getFirstDayStyle(index: number, date: number, firstDayOfWeek: number) {
126
- if (firstDayOfWeek >= 7) {
127
- firstDayOfWeek = firstDayOfWeek % 7
128
- }
129
-
130
- if (index !== 0) return ''
131
-
132
- const offset = (7 + new Date(date).getDay() - firstDayOfWeek) % 7
133
-
134
- return 'margin-left: ' + (100 / 7) * offset + '%'
135
- }
136
-
137
119
  /**
138
120
  * 格式化年份
139
121
  * @param {timestamp} date
@@ -222,6 +204,9 @@ export function getDayByOffset(date: number, offset: number) {
222
204
  return dateValue.getTime()
223
205
  }
224
206
 
207
+ export const getPrevDay = (date: number) => getDayByOffset(date, -1)
208
+ export const getNextDay = (date: number) => getDayByOffset(date, 1)
209
+
225
210
  /**
226
211
  * 获取月份偏移量
227
212
  * @param {timestamp} date1
@@ -321,7 +306,7 @@ export function getTimeData({
321
306
  minDate,
322
307
  maxDate,
323
308
  isHideSecond,
324
- filter,
309
+ filter
325
310
  }: {
326
311
  date: number
327
312
  minDate: number
@@ -372,25 +357,25 @@ export function getTimeData({
372
357
  return {
373
358
  label: translate('hour', padZero(index)),
374
359
  value: index,
375
- disabled: index < minHour || index > maxHour,
360
+ disabled: index < minHour || index > maxHour
376
361
  }
377
362
  })
378
363
  let minutes = times(60, (index) => {
379
364
  return {
380
365
  label: translate('minute', padZero(index)),
381
366
  value: index,
382
- disabled: index < minMinute || index > maxMinute,
367
+ disabled: index < minMinute || index > maxMinute
383
368
  }
384
369
  })
385
370
  let seconds: CalendarItem[] = []
386
371
  if (filter && isFunction(filter)) {
387
372
  hours = filter({
388
373
  type: 'hour',
389
- values: hours,
374
+ values: hours
390
375
  })
391
376
  minutes = filter({
392
377
  type: 'minute',
393
- values: minutes,
378
+ values: minutes
394
379
  })
395
380
  }
396
381
 
@@ -399,13 +384,13 @@ export function getTimeData({
399
384
  return {
400
385
  label: translate('second', padZero(index)),
401
386
  value: index,
402
- disabled: index < minSecond || index > maxSecond,
387
+ disabled: index < minSecond || index > maxSecond
403
388
  }
404
389
  })
405
390
  if (filter && isFunction(filter)) {
406
391
  seconds = filter({
407
392
  type: 'second',
408
- values: seconds,
393
+ values: seconds
409
394
  })
410
395
  }
411
396
  }
@@ -428,17 +413,10 @@ export function getWeekNumber(date: number | Date) {
428
413
  const week = new Date(date.getFullYear(), 0, 4)
429
414
  // Adjust to Thursday in week 1 and count number of weeks from date to week 1.
430
415
  // Rounding should be fine for Daylight Saving Time. Its shift should never be more than 12 hours.
431
- return (
432
- 1 +
433
- Math.round(((date.getTime() - week.getTime()) / 86400000 - 3 + ((week.getDay() + 6) % 7)) / 7)
434
- )
416
+ return 1 + Math.round(((date.getTime() - week.getTime()) / 86400000 - 3 + ((week.getDay() + 6) % 7)) / 7)
435
417
  }
436
418
 
437
- export function getItemClass(
438
- monthType: CalendarDayType,
439
- value: number | (number | null)[],
440
- type: CalendarType,
441
- ) {
419
+ export function getItemClass(monthType: CalendarDayType, value: number | null | (number | null)[], type: CalendarType) {
442
420
  const classList = ['is-' + monthType]
443
421
 
444
422
  if (type.indexOf('range') > -1 && isArray(value)) {
@@ -46,8 +46,8 @@ export default {
46
46
  options: {
47
47
  addGlobalClass: true,
48
48
  virtualHost: true,
49
- styleIsolation: 'shared',
50
- },
49
+ styleIsolation: 'shared'
50
+ }
51
51
  }
52
52
  </script>
53
53
 
@@ -72,8 +72,8 @@ watch(
72
72
  },
73
73
  {
74
74
  deep: true,
75
- immediate: true,
76
- },
75
+ immediate: true
76
+ }
77
77
  )
78
78
 
79
79
  /**
@@ -91,7 +91,7 @@ function getPanel() {
91
91
  function handleChange({ value }: { value: number | number[] | null }) {
92
92
  emit('update:modelValue', value)
93
93
  emit('change', {
94
- value,
94
+ value
95
95
  })
96
96
  }
97
97
  function handlePickStart() {
@@ -102,10 +102,10 @@ function handlePickEnd() {
102
102
  }
103
103
 
104
104
  defineExpose<CalendarViewExpose>({
105
- scrollIntoView,
105
+ scrollIntoView
106
106
  })
107
107
  </script>
108
108
 
109
109
  <style lang="scss" scoped>
110
- @import './index';
110
+ @import './index.scss';
111
111
  </style>