@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
@@ -1,50 +1,53 @@
1
1
  <template>
2
- <view :class="`wd-calendar ${cell.border.value ? 'is-border' : ''} ${customClass}`">
3
- <view class="wd-calendar__field" @click="open" v-if="withCell">
4
- <slot v-if="useDefaultSlot"></slot>
5
- <view
6
- v-else
7
- :class="`wd-calendar__cell ${disabled ? 'is-disabled' : ''} ${readonly ? 'is-readonly' : ''} ${alignRight ? 'is-align-right' : ''} ${
8
- error ? 'is-error' : ''
9
- } ${size ? 'is-' + size : ''} ${center ? 'is-center' : ''}`"
2
+ <view :class="`wd-calendar ${customClass}`">
3
+ <template v-if="withCell">
4
+ <wd-cell
5
+ v-if="!$slots.default"
6
+ :title="label"
7
+ :value="showValue || placeholder || translate('placeholder')"
8
+ :required="required"
9
+ :size="size"
10
+ :title-width="labelWidth"
11
+ :prop="prop"
12
+ :rules="rules"
13
+ :clickable="!disabled && !readonly"
14
+ :value-align="alignRight ? 'right' : 'left'"
15
+ :center="center"
16
+ :custom-class="cellClass"
17
+ :custom-style="customStyle"
18
+ :custom-title-class="customLabelClass"
19
+ :custom-value-class="customValueClass"
20
+ :ellipsis="ellipsis"
21
+ :use-title-slot="!!$slots.label"
22
+ :marker-side="markerSide"
23
+ @click="open"
10
24
  >
11
- <view
12
- v-if="label || useLabelSlot"
13
- :class="`wd-calendar__label ${isRequired ? 'is-required' : ''} ${customLabelClass}`"
14
- :style="labelWidth ? 'min-width:' + labelWidth + ';max-width:' + labelWidth + ';' : ''"
15
- >
16
- <text v-if="label" class="wd-calendar__label-inner">{{ label }}</text>
17
- <slot v-else name="label"></slot>
18
- </view>
19
- <view class="wd-calendar__body">
20
- <view class="wd-calendar__value-wraper">
21
- <view
22
- :class="`wd-calendar__value ${ellipsis ? 'is-ellipsis' : ''} ${customValueClass} ${showValue ? '' : 'wd-calendar__value--placeholder'}`"
23
- >
24
- {{ showValue || placeholder || translate('placeholder') }}
25
- </view>
26
- <wd-icon
27
- v-if="!disabled && !readonly"
28
- custom-class="wd-calendar__arrow"
29
- name="arrow-right"
30
- />
25
+ <template #title v-if="$slots.label">
26
+ <slot name="label"></slot>
27
+ </template>
28
+
29
+ <template #right-icon>
30
+ <wd-icon v-if="showArrow" custom-class="wd-calendar__arrow" name="arrow-right" />
31
+ <view v-else-if="showClear" @click.stop="handleClear">
32
+ <wd-icon custom-class="wd-calendar__clear" name="error-fill" />
31
33
  </view>
32
- <view v-if="errorMessage" class="wd-calendar__error-message">{{ errorMessage }}</view>
33
- </view>
34
+ </template>
35
+ </wd-cell>
36
+ <view v-else @click="open">
37
+ <slot></slot>
34
38
  </view>
35
- </view>
39
+ </template>
36
40
  <wd-action-sheet
37
41
  v-model="pickerShow"
38
42
  :duration="250"
39
43
  :close-on-click-modal="closeOnClickModal"
40
44
  :safe-area-inset-bottom="safeAreaInsetBottom"
41
45
  :z-index="zIndex"
46
+ :root-portal="rootPortal"
42
47
  @close="close"
43
48
  >
44
49
  <view class="wd-calendar__header">
45
- <view v-if="!showTypeSwitch && shortcuts.length === 0" class="wd-calendar__title">
46
- {{ title || translate('title') }}
47
- </view>
50
+ <view v-if="!showTypeSwitch && shortcuts.length === 0" class="wd-calendar__title">{{ title || translate('title') }}</view>
48
51
  <view v-if="showTypeSwitch" class="wd-calendar__tabs">
49
52
  <wd-tabs ref="calendarTabs" v-model="currentTab" @change="handleTypeChange">
50
53
  <wd-tab :title="translate('day')" :name="translate('day')" />
@@ -71,10 +74,7 @@
71
74
  v-if="inited"
72
75
  :class="`wd-calendar__view ${currentType.indexOf('range') > -1 ? 'is-range' : ''} ${showConfirm ? 'is-show-confirm' : ''}`"
73
76
  >
74
- <view
75
- v-if="range(type)"
76
- :class="`wd-calendar__range-label ${type === 'monthrange' ? 'is-monthrange' : ''}`"
77
- >
77
+ <view v-if="range(type)" :class="`wd-calendar__range-label ${type === 'monthrange' ? 'is-monthrange' : ''}`">
78
78
  <view
79
79
  :class="`wd-calendar__range-label-item ${!calendarValue || !isArray(calendarValue) || !calendarValue[0] ? 'is-placeholder' : ''}`"
80
80
  style="text-align: right"
@@ -82,9 +82,7 @@
82
82
  {{ rangeLabel[0] }}
83
83
  </view>
84
84
  <view class="wd-calendar__range-sperator">/</view>
85
- <view
86
- :class="`wd-calendar__range-label-item ${!calendarValue || !isArray(calendarValue) || !calendarValue[1] ? 'is-placeholder' : ''}`"
87
- >
85
+ <view :class="`wd-calendar__range-label-item ${!calendarValue || !isArray(calendarValue) || !calendarValue[1] ? 'is-placeholder' : ''}`">
88
86
  {{ rangeLabel[1] }}
89
87
  </view>
90
88
  </view>
@@ -109,9 +107,7 @@
109
107
  />
110
108
  </view>
111
109
  <view v-if="showConfirm" class="wd-calendar__confirm">
112
- <wd-button block :disabled="confirmBtnDisabled" @click="handleConfirm">
113
- {{ confirmText || translate('confirm') }}
114
- </wd-button>
110
+ <wd-button block :disabled="confirmBtnDisabled" @click="handleConfirm">{{ confirmText || translate('confirm') }}</wd-button>
115
111
  </view>
116
112
  </wd-action-sheet>
117
113
  </view>
@@ -123,17 +119,21 @@ export default {
123
119
  options: {
124
120
  addGlobalClass: true,
125
121
  virtualHost: true,
126
- styleIsolation: 'shared',
127
- },
122
+ styleIsolation: 'shared'
123
+ }
128
124
  }
129
125
  </script>
130
126
 
131
127
  <script lang="ts" setup>
128
+ import wdIcon from '../wd-icon/wd-icon.vue'
129
+ import wdCalendarView from '../wd-calendar-view/wd-calendar-view.vue'
130
+ import wdActionSheet from '../wd-action-sheet/wd-action-sheet.vue'
131
+ import wdButton from '../wd-button/wd-button.vue'
132
+ import wdCell from '../wd-cell/wd-cell.vue'
132
133
  import { ref, computed, watch } from 'vue'
133
- import { dayjs } from '../common/dayjs'
134
- import { deepClone, isArray, isEqual, padZero, requestAnimationFrame } from '../common/util'
134
+ import dayjs from '../../dayjs'
135
+ import { deepClone, isArray, isEqual, padZero, pause } from '../common/util'
135
136
  import { getWeekNumber, isRange } from '../wd-calendar-view/utils'
136
- import { useCell } from '../composables/useCell'
137
137
  import { FORM_KEY, type FormItemRule } from '../wd-form/types'
138
138
  import { useParent } from '../composables/useParent'
139
139
  import { useTranslate } from '../composables/useTranslate'
@@ -153,39 +153,51 @@ const defaultDisplayFormat = (value: number | number[], type: CalendarType): str
153
153
  .join(', ')
154
154
  case 'daterange':
155
155
  return `${(value as number[])[0] ? dayjs((value as number[])[0]).format('YYYY-MM-DD') : translate('startTime')} ${translate('to')} ${
156
- (value as number[])[1]
157
- ? dayjs((value as number[])[1]).format('YYYY-MM-DD')
158
- : translate('endTime')
156
+ (value as number[])[1] ? dayjs((value as number[])[1]).format('YYYY-MM-DD') : translate('endTime')
159
157
  }`
160
158
  case 'datetime':
161
159
  return dayjs(value as number).format('YYYY-MM-DD HH:mm:ss')
162
160
  case 'datetimerange':
163
161
  return `${(value as number[])[0] ? dayjs((value as number[])[0]).format(translate('timeFormat')) : translate('startTime')} ${translate(
164
- 'to',
162
+ 'to'
165
163
  )}\n${(value as number[])[1] ? dayjs((value as number[])[1]).format(translate('timeFormat')) : translate('endTime')}`
166
164
  case 'week': {
167
- const year = new Date(value as number).getFullYear()
165
+ const date = new Date(value as number)
166
+ const year = date.getFullYear()
168
167
  const week = getWeekNumber(value as number)
169
- return translate('weekFormat', year, padZero(week))
168
+ const weekStart = new Date(date)
169
+ weekStart.setDate(date.getDate() - date.getDay() + 1)
170
+ const weekEnd = new Date(date)
171
+ weekEnd.setDate(date.getDate() + (7 - date.getDay()))
172
+ const adjustedYear = weekEnd.getFullYear() > year ? weekEnd.getFullYear() : year
173
+ return translate('weekFormat', adjustedYear, padZero(week))
170
174
  }
171
175
  case 'weekrange': {
172
- const year1 = new Date((value as number[])[0]).getFullYear()
176
+ const date1 = new Date((value as number[])[0])
177
+ const date2 = new Date((value as number[])[1])
178
+ const year1 = date1.getFullYear()
179
+ const year2 = date2.getFullYear()
173
180
  const week1 = getWeekNumber((value as number[])[0])
174
- const year2 = new Date((value as number[])[1]).getFullYear()
175
181
  const week2 = getWeekNumber((value as number[])[1])
176
- return `${(value as number[])[0] ? translate('weekFormat', year1, padZero(week1)) : translate('startWeek')} - ${
177
- (value as number[])[1]
178
- ? translate('weekFormat', year2, padZero(week2))
179
- : translate('endWeek')
182
+ const weekStart1 = new Date(date1)
183
+ weekStart1.setDate(date1.getDate() - date1.getDay() + 1)
184
+ const weekEnd1 = new Date(date1)
185
+ weekEnd1.setDate(date1.getDate() + (7 - date1.getDay()))
186
+ const weekStart2 = new Date(date2)
187
+ weekStart2.setDate(date2.getDate() - date2.getDay() + 1)
188
+ const weekEnd2 = new Date(date2)
189
+ weekEnd2.setDate(date2.getDate() + (7 - date2.getDay()))
190
+ const adjustedYear1 = weekEnd1.getFullYear() > year1 ? weekEnd1.getFullYear() : year1
191
+ const adjustedYear2 = weekEnd2.getFullYear() > year2 ? weekEnd2.getFullYear() : year2
192
+ return `${(value as number[])[0] ? translate('weekFormat', adjustedYear1, padZero(week1)) : translate('startWeek')} - ${
193
+ (value as number[])[1] ? translate('weekFormat', adjustedYear2, padZero(week2)) : translate('endWeek')
180
194
  }`
181
195
  }
182
196
  case 'month':
183
197
  return dayjs(value as number).format('YYYY / MM')
184
198
  case 'monthrange':
185
199
  return `${(value as number[])[0] ? dayjs((value as number[])[0]).format('YYYY / MM') : translate('startMonth')} ${translate('to')} ${
186
- (value as number[])[1]
187
- ? dayjs((value as number[])[1]).format('YYYY / MM')
188
- : translate('endMonth')
200
+ (value as number[])[1] ? dayjs((value as number[])[1]).format('YYYY / MM') : translate('endMonth')
189
201
  }`
190
202
  }
191
203
  }
@@ -220,47 +232,45 @@ const formatRange = (value: number, rangeType: 'start' | 'end', type: CalendarTy
220
232
  }
221
233
 
222
234
  const props = defineProps(calendarProps)
223
- const emit = defineEmits(['cancel', 'change', 'update:modelValue', 'confirm', 'open'])
235
+ const emit = defineEmits(['cancel', 'change', 'update:modelValue', 'confirm', 'open', 'clear'])
224
236
 
225
237
  const pickerShow = ref<boolean>(false)
226
238
  const calendarValue = ref<null | number | number[]>(null)
227
239
  const lastCalendarValue = ref<null | number | number[]>(null)
228
- const panelHeight = ref<number>(438)
240
+ const panelHeight = ref<number>(338)
229
241
  const confirmBtnDisabled = ref<boolean>(true)
230
242
  const currentTab = ref<number>(0)
231
243
  const lastTab = ref<number>(0)
232
244
  const currentType = ref<CalendarType>('date')
233
245
  const lastCurrentType = ref<CalendarType>()
234
246
  const inited = ref<boolean>(false)
235
- const cell = useCell()
236
247
  const calendarView = ref()
237
248
  const calendarTabs = ref()
238
249
 
239
250
  const rangeLabel = computed(() => {
240
251
  const [start, end] = deepClone(isArray(calendarValue.value) ? calendarValue.value : [])
241
252
  return [start, end].map((item, index) => {
242
- return (props.innerDisplayFormat || formatRange)(
243
- item,
244
- index === 0 ? 'start' : 'end',
245
- currentType.value,
246
- )
253
+ return (props.innerDisplayFormat || formatRange)(item, index === 0 ? 'start' : 'end', currentType.value)
247
254
  })
248
255
  })
249
256
 
250
257
  const showValue = computed(() => {
251
- if (
252
- (!isArray(props.modelValue) && props.modelValue) ||
253
- (isArray(props.modelValue) && props.modelValue.length)
254
- ) {
255
- return (props.displayFormat || defaultDisplayFormat)(
256
- props.modelValue,
257
- lastCurrentType.value || currentType.value,
258
- )
258
+ if ((!isArray(props.modelValue) && props.modelValue) || (isArray(props.modelValue) && props.modelValue.length)) {
259
+ return (props.displayFormat || defaultDisplayFormat)(props.modelValue, lastCurrentType.value || currentType.value)
259
260
  } else {
260
261
  return ''
261
262
  }
262
263
  })
263
264
 
265
+ const cellClass = computed(() => {
266
+ const classes = ['wd-calendar__cell']
267
+ if (props.disabled) classes.push('is-disabled')
268
+ if (props.readonly) classes.push('is-readonly')
269
+ if (props.error) classes.push('is-error')
270
+ if (!showValue.value) classes.push('wd-calendar__cell--placeholder')
271
+ return classes.join(' ')
272
+ })
273
+
264
274
  watch(
265
275
  () => props.modelValue,
266
276
  (val, oldVal) => {
@@ -269,8 +279,8 @@ watch(
269
279
  confirmBtnDisabled.value = getConfirmBtnStatus(val)
270
280
  },
271
281
  {
272
- immediate: true,
273
- },
282
+ immediate: true
283
+ }
274
284
  )
275
285
 
276
286
  watch(
@@ -280,71 +290,55 @@ watch(
280
290
  const tabs = ['date', 'week', 'month']
281
291
  const rangeTabs = ['daterange', 'weekrange', 'monthrange']
282
292
 
283
- const index =
284
- newValue.indexOf('range') > -1 ? rangeTabs.indexOf(newValue) || 0 : tabs.indexOf(newValue)
293
+ const index = newValue.indexOf('range') > -1 ? rangeTabs.indexOf(newValue) || 0 : tabs.indexOf(newValue)
285
294
  currentTab.value = index
286
295
  }
287
- panelHeight.value = props.showConfirm ? 488 : 550
296
+ panelHeight.value = props.showConfirm ? 338 : 400
288
297
  currentType.value = deepClone(newValue)
289
298
  },
290
299
  {
291
300
  deep: true,
292
- immediate: true,
293
- },
301
+ immediate: true
302
+ }
294
303
  )
295
304
 
296
305
  watch(
297
306
  () => props.showConfirm,
298
307
  (val) => {
299
- panelHeight.value = val ? 488 : 550
308
+ panelHeight.value = val ? 338 : 400
300
309
  },
301
310
  {
302
311
  deep: true,
303
- immediate: true,
304
- },
312
+ immediate: true
313
+ }
305
314
  )
306
315
 
307
- const { parent: form } = useParent(FORM_KEY)
308
-
309
- // 表单校验错误信息
310
- const errorMessage = computed(() => {
311
- if (form && props.prop && form.errorMessages && form.errorMessages[props.prop]) {
312
- return form.errorMessages[props.prop]
313
- } else {
314
- return ''
316
+ const range = computed(() => {
317
+ return (type: CalendarType) => {
318
+ return isRange(type)
315
319
  }
316
320
  })
317
321
 
318
- // 是否展示必填
319
- const isRequired = computed(() => {
320
- let formRequired = false
321
- if (form && form.props.rules) {
322
- const rules = form.props.rules
323
- for (const key in rules) {
324
- if (
325
- Object.prototype.hasOwnProperty.call(rules, key) &&
326
- key === props.prop &&
327
- Array.isArray(rules[key])
328
- ) {
329
- formRequired = rules[key].some((rule: FormItemRule) => rule.required)
330
- }
331
- }
332
- }
333
- return props.required || props.rules.some((rule) => rule.required) || formRequired
322
+ // 是否展示清除按钮
323
+ const showClear = computed(() => {
324
+ return props.clearable && !props.disabled && !props.readonly && showValue.value.length > 0
334
325
  })
335
326
 
336
- const range = computed(() => {
337
- return (type: CalendarType) => {
338
- return isRange(type)
339
- }
327
+ // 是否展示箭头
328
+ const showArrow = computed(() => {
329
+ return !props.disabled && !props.readonly && !showClear.value
340
330
  })
341
331
 
332
+ function handleClear() {
333
+ emit('clear')
334
+ emit('update:modelValue', null)
335
+ }
336
+
342
337
  function scrollIntoView() {
343
338
  calendarView.value && calendarView.value && calendarView.value.$.exposed.scrollIntoView()
344
339
  }
345
340
  // 对外暴露方法
346
341
  async function open() {
347
- await props.initFun?.()
348
342
  const { disabled, readonly } = props
349
343
 
350
344
  if (disabled || readonly) return
@@ -354,10 +348,9 @@ async function open() {
354
348
  lastCalendarValue.value = deepClone(calendarValue.value)
355
349
  lastTab.value = currentTab.value
356
350
  lastCurrentType.value = currentType.value
357
- requestAnimationFrame(() => {
358
- scrollIntoView()
359
- })
360
-
351
+ // 等待渲染完毕
352
+ await pause()
353
+ scrollIntoView()
361
354
  setTimeout(() => {
362
355
  if (props.showTypeSwitch) {
363
356
  calendarTabs.value.scrollIntoView()
@@ -381,7 +374,6 @@ function handleTypeChange({ index }: { index: number }) {
381
374
  const tabs = ['date', 'week', 'month']
382
375
  const rangeTabs = ['daterange', 'weekrange', 'monthrange']
383
376
  const type = props.type.indexOf('range') > -1 ? rangeTabs[index] : tabs[index]
384
-
385
377
  currentTab.value = index
386
378
  currentType.value = type as CalendarType
387
379
  }
@@ -403,7 +395,7 @@ function handleChange({ value }: { value: number | number[] | null }) {
403
395
  confirmBtnDisabled.value = getConfirmBtnStatus(value)
404
396
 
405
397
  emit('change', {
406
- value,
398
+ value
407
399
  })
408
400
 
409
401
  if (!props.showConfirm && !confirmBtnDisabled.value) {
@@ -416,7 +408,7 @@ function handleConfirm() {
416
408
  value: calendarValue.value,
417
409
  resolve: (isPass: boolean) => {
418
410
  isPass && onConfirm()
419
- },
411
+ }
420
412
  })
421
413
  } else {
422
414
  onConfirm()
@@ -428,6 +420,7 @@ function onConfirm() {
428
420
  emit('update:modelValue', calendarValue.value)
429
421
  emit('confirm', {
430
422
  value: calendarValue.value,
423
+ type: currentType.value
431
424
  })
432
425
  }
433
426
 
@@ -436,8 +429,8 @@ function handleShortcutClick(index: number) {
436
429
  calendarValue.value = deepClone(
437
430
  props.onShortcutsClick({
438
431
  item: props.shortcuts[index],
439
- index,
440
- }),
432
+ index
433
+ })
441
434
  )
442
435
  confirmBtnDisabled.value = getConfirmBtnStatus(calendarValue.value)
443
436
  }
@@ -449,10 +442,10 @@ function handleShortcutClick(index: number) {
449
442
 
450
443
  defineExpose<CalendarExpose>({
451
444
  close,
452
- open,
445
+ open
453
446
  })
454
447
  </script>
455
448
 
456
449
  <style lang="scss" scoped>
457
- @import './index';
450
+ @import './index.scss';
458
451
  </style>
@@ -44,7 +44,8 @@
44
44
  height: $-calendar-day-height;
45
45
  line-height: $-calendar-day-height;
46
46
  text-align: center;
47
- margin-bottom: 6rpx;
47
+ margin-bottom: $-calendar-item-margin-bottom;
48
+
48
49
  @include when(disabled) {
49
50
  .wd-month__day-text {
50
51
  color: $-calendar-disabled-color;
@@ -55,20 +56,11 @@
55
56
  color: $-calendar-active-color;
56
57
  }
57
58
 
58
- @include when(selected) {
59
+ @include when(selected, multiple-selected) {
59
60
  .wd-month__day-container {
60
- color: #fff;
61
- background: $-calendar-active-color;
62
61
  border-radius: $-calendar-active-border;
63
- .text-price {
64
- color: #fff;
65
- }
66
- }
67
- .wd-month__day-bottom,
68
- .wd-month__day-top,
69
- .wd-month__day-floor,
70
- .wd-month__day-text {
71
- color: #fff !important;
62
+ background: $-calendar-active-color;
63
+ color: $-calendar-selected-color;
72
64
  }
73
65
  }
74
66
 
@@ -77,17 +69,23 @@
77
69
  background: $-calendar-range-color;
78
70
  }
79
71
  }
72
+ @include when(multiple-middle) {
73
+ .wd-month__day-container {
74
+ background: $-calendar-active-color;
75
+ color: $-calendar-selected-color;
76
+ }
77
+ }
80
78
 
81
79
  @include when(start) {
82
80
  &::after {
83
81
  position: absolute;
82
+ content: '';
83
+ height: $-calendar-day-height;
84
84
  top: 0;
85
85
  right: 0;
86
86
  left: 50%;
87
- z-index: 1;
88
- height: $-calendar-day-height;
89
- content: '';
90
87
  background: $-calendar-range-color;
88
+ z-index: 1;
91
89
  }
92
90
 
93
91
  &.is-without-end::after {
@@ -95,100 +93,70 @@
95
93
  }
96
94
 
97
95
  .wd-month__day-container {
98
- color: #fff;
99
96
  background: $-calendar-active-color;
100
- border-radius: $-calendar-active-border;
101
- }
102
- .wd-month__day-text-custom {
103
- color: #fff;
104
- }
105
- .wd-month__day-bottom,
106
- .wd-month__day-top,
107
- .wd-month__day-floor,
108
- .wd-month__day-text {
109
- color: #fff !important;
97
+ color: $-calendar-selected-color;
98
+ border-radius: $-calendar-active-border 0 0 $-calendar-active-border;
110
99
  }
111
100
  }
112
101
 
113
102
  @include when(end) {
114
103
  &::after {
115
104
  position: absolute;
105
+ content: '';
106
+ height: $-calendar-day-height;
116
107
  top: 0;
117
- right: 50%;
118
108
  left: 0;
119
- z-index: 1;
120
- height: $-calendar-day-height;
121
- content: '';
109
+ right: 50%;
122
110
  background: $-calendar-range-color;
111
+ z-index: 1;
123
112
  }
124
113
 
125
114
  .wd-month__day-container {
126
- color: #fff;
127
115
  background: $-calendar-active-color;
128
- border-radius: $-calendar-active-border;
129
- }
130
- .wd-month__day-text-custom {
131
- color: #fff;
132
- }
133
- .wd-month__day-bottom,
134
- .wd-month__day-top,
135
- .wd-month__day-floor,
136
- .wd-month__day-text {
137
- color: #fff !important;
116
+ color: $-calendar-selected-color;
117
+ border-radius: 0 $-calendar-active-border $-calendar-active-border 0;
138
118
  }
139
119
  }
140
120
 
141
121
  @include when(same) {
142
122
  .wd-month__day-container {
143
- color: #fff;
144
123
  background: $-calendar-active-color;
124
+ color: $-calendar-selected-color;
145
125
  border-radius: $-calendar-active-border;
146
126
  }
147
127
  }
128
+
129
+ @include when(last-row){
130
+ margin-bottom: 0;
131
+ }
148
132
  }
149
133
 
150
134
  @include e(day-container) {
151
135
  position: relative;
152
136
  z-index: 2;
153
- height: 100%;
154
- padding: 0 2px;
155
137
  }
156
138
 
157
139
  @include e(day-text) {
158
140
  font-weight: $-calendar-day-fw;
159
- &-custom {
160
- font-size: 14px;
161
- color: $-calendar-active-color;
162
- }
163
141
  }
164
142
 
165
143
  @include e(day-top) {
166
144
  position: absolute;
167
- top: 6px;
168
- right: 0;
145
+ top: 10px;
169
146
  left: 0;
170
- font-size: $-calendar-info-fs;
147
+ right: 0;
171
148
  line-height: 1.1;
149
+ font-size: $-calendar-info-fs;
172
150
  text-align: center;
173
151
  }
174
152
 
175
153
  @include e(day-bottom) {
176
154
  position: absolute;
177
- right: 0;
178
- bottom: 6px;
155
+ bottom: 10px;
179
156
  left: 0;
180
- font-size: $-calendar-info-fs;
181
- line-height: 1.1;
182
- text-align: center;
183
- }
184
-
185
- @include e(day-floor) {
186
- position: absolute;
187
157
  right: 0;
188
- bottom: 2px;
189
- left: 0;
190
- font-size: $-calendar-info-fs;
191
158
  line-height: 1.1;
159
+ font-size: $-calendar-info-fs;
192
160
  text-align: center;
193
161
  }
194
- }
162
+ }