vxe-pc-ui 4.20.34 → 4.20.35

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 (367) hide show
  1. package/dist/all.esm.js +45718 -45038
  2. package/dist/all.esm.min.js +3 -3
  3. package/dist/style.css +307 -1
  4. package/dist/style.mini.css +1 -1
  5. package/es/alert/src/alert.js +117 -114
  6. package/es/anchor/src/anchor-link.js +110 -107
  7. package/es/anchor/src/anchor.js +212 -209
  8. package/es/avatar/src/avatar.js +132 -129
  9. package/es/backtop/src/backtop.js +267 -264
  10. package/es/badge/src/badge.js +102 -99
  11. package/es/breadcrumb/src/breadcrumb-item.js +104 -101
  12. package/es/breadcrumb/src/breadcrumb.js +70 -67
  13. package/es/button/src/button-group.js +88 -85
  14. package/es/calendar/src/calendar.js +1371 -1368
  15. package/es/card/src/card.js +235 -232
  16. package/es/carousel/src/carousel-item.js +78 -75
  17. package/es/carousel/src/carousel.js +392 -389
  18. package/es/cascader/src/cascader.js +1667 -1664
  19. package/es/checkbox/src/button.js +198 -195
  20. package/es/checkbox/src/checkbox.js +181 -178
  21. package/es/checkbox/src/group.js +210 -207
  22. package/es/collapse/src/collapse-pane.js +98 -95
  23. package/es/collapse/src/collapse.js +340 -337
  24. package/es/color-picker/src/color-picker.js +1116 -1113
  25. package/es/components.d.ts +1 -0
  26. package/es/components.js +3 -0
  27. package/es/context-menu/src/context-menu.js +601 -598
  28. package/es/countdown/src/countdown.js +224 -221
  29. package/es/date-panel/src/date-panel.js +1905 -1902
  30. package/es/date-picker/src/date-picker.js +1537 -1534
  31. package/es/date-range-picker/src/date-range-picker.js +1412 -1409
  32. package/es/divider/src/divider.js +80 -77
  33. package/es/drawer/src/drawer.js +778 -775
  34. package/es/empty/src/empty.js +100 -97
  35. package/es/form/src/form-group.js +74 -71
  36. package/es/form/src/form-item.js +76 -73
  37. package/es/form/src/form.js +789 -786
  38. package/es/icon/src/icon.js +59 -56
  39. package/es/icon/style.css +1 -1
  40. package/es/icon/style.mini.css +1 -1
  41. package/es/icon-picker/src/icon-picker.js +719 -716
  42. package/es/image/src/group.js +130 -127
  43. package/es/image/src/image.js +243 -240
  44. package/es/image/src/preview.js +627 -624
  45. package/es/index.esm.js +2 -0
  46. package/es/index.js +2 -0
  47. package/es/input/src/input.js +2700 -2697
  48. package/es/layout-aside/src/layout-aside.js +138 -135
  49. package/es/layout-body/src/layout-body.js +145 -142
  50. package/es/layout-container/src/layout-container.js +71 -68
  51. package/es/layout-footer/src/layout-footer.js +60 -57
  52. package/es/layout-header/src/layout-header.js +58 -55
  53. package/es/link/src/link.js +131 -128
  54. package/es/list/src/list.js +2174 -2171
  55. package/es/loading/src/loading.js +141 -138
  56. package/es/mention/src/mention.js +49 -46
  57. package/es/menu/src/menu.js +799 -796
  58. package/es/modal/src/modal.js +1519 -1527
  59. package/es/notice-bar/src/notice-bar.js +168 -165
  60. package/es/number-input/src/number-input.js +1094 -1091
  61. package/es/pager/src/pager.js +767 -764
  62. package/es/password-input/src/password-input.js +431 -428
  63. package/es/print/src/page-break.js +63 -60
  64. package/es/print/src/print.js +303 -300
  65. package/es/pulldown/src/pulldown.js +403 -400
  66. package/es/radio/src/button.js +214 -211
  67. package/es/radio/src/group.js +195 -192
  68. package/es/radio/src/radio.js +194 -191
  69. package/es/rate/src/rate.js +164 -161
  70. package/es/result/src/result.js +116 -113
  71. package/es/row/src/col.js +133 -130
  72. package/es/row/src/row.js +111 -108
  73. package/es/scrollbar/src/scrollbar.js +518 -515
  74. package/es/segmented/src/segmented.js +240 -237
  75. package/es/select/src/optgroup.js +44 -41
  76. package/es/select/src/option.js +39 -36
  77. package/es/select/src/select.js +1914 -1896
  78. package/es/slider/src/slider.js +419 -416
  79. package/es/space/src/space.js +190 -187
  80. package/es/splitter/src/splitter-panel.js +146 -143
  81. package/es/splitter/src/splitter.js +917 -914
  82. package/es/step-item/index.d.ts +76 -0
  83. package/es/step-item/index.js +17 -0
  84. package/es/steps/index.d.ts +288 -34
  85. package/es/steps/src/step-info.d.ts +6 -0
  86. package/es/steps/src/step-info.js +20 -0
  87. package/es/steps/src/step-item.d.ts +14 -0
  88. package/es/steps/src/step-item.js +39 -0
  89. package/es/steps/src/steps.d.ts +68 -8
  90. package/es/steps/src/steps.js +299 -47
  91. package/es/steps/src/util.d.ts +7 -0
  92. package/es/steps/src/util.js +44 -0
  93. package/es/steps/style.css +297 -0
  94. package/es/steps/style.mini.css +1 -0
  95. package/es/style.css +307 -1
  96. package/es/style.mini.css +1 -1
  97. package/es/switch/src/switch.js +228 -225
  98. package/es/table-select/src/table-select.js +865 -862
  99. package/es/table-transfer/src/table-transfer.js +61 -58
  100. package/es/tabs/src/tab-pane.js +102 -99
  101. package/es/tabs/src/tabs.js +936 -933
  102. package/es/tag/src/tag.js +163 -160
  103. package/es/text/src/text.js +232 -229
  104. package/es/text-ellipsis/src/text-ellipsis.js +252 -249
  105. package/es/textarea/src/textarea.js +434 -431
  106. package/es/timeline/src/timeline.js +74 -36
  107. package/es/timeline/src/util.js +7 -4
  108. package/es/tip/src/tip.js +117 -114
  109. package/es/tooltip/src/tooltip.js +552 -549
  110. package/es/tour/src/tour.js +49 -46
  111. package/es/transfer/src/transfer.js +95 -92
  112. package/es/tree/src/tree.js +3379 -3376
  113. package/es/tree-select/src/tree-select.js +969 -966
  114. package/es/ui/index.js +8 -2
  115. package/es/ui/src/log.js +1 -1
  116. package/es/upload/src/upload.js +1791 -1788
  117. package/es/vxe-icon/style.css +1 -1
  118. package/es/vxe-icon/style.mini.css +1 -1
  119. package/es/vxe-steps/style.css +297 -0
  120. package/es/vxe-steps/style.mini.css +1 -0
  121. package/es/watermark/src/watermark.js +158 -155
  122. package/lib/alert/src/alert.js +117 -114
  123. package/lib/anchor/src/anchor-link.js +110 -107
  124. package/lib/anchor/src/anchor.js +212 -209
  125. package/lib/avatar/src/avatar.js +132 -129
  126. package/lib/backtop/src/backtop.js +267 -264
  127. package/lib/badge/src/badge.js +102 -99
  128. package/lib/breadcrumb/src/breadcrumb-item.js +104 -101
  129. package/lib/breadcrumb/src/breadcrumb.js +70 -67
  130. package/lib/button/src/button-group.js +88 -85
  131. package/lib/calendar/src/calendar.js +1371 -1368
  132. package/lib/card/src/card.js +235 -232
  133. package/lib/carousel/src/carousel-item.js +78 -75
  134. package/lib/carousel/src/carousel.js +392 -389
  135. package/lib/cascader/src/cascader.js +1665 -1662
  136. package/lib/checkbox/src/button.js +198 -195
  137. package/lib/checkbox/src/checkbox.js +181 -178
  138. package/lib/checkbox/src/group.js +210 -207
  139. package/lib/collapse/src/collapse-pane.js +98 -95
  140. package/lib/collapse/src/collapse.js +340 -337
  141. package/lib/color-picker/src/color-picker.js +1116 -1113
  142. package/lib/components.js +3 -0
  143. package/lib/context-menu/src/context-menu.js +601 -598
  144. package/lib/countdown/src/countdown.js +224 -221
  145. package/lib/date-panel/src/date-panel.js +1905 -1902
  146. package/lib/date-picker/src/date-picker.js +1537 -1534
  147. package/lib/date-range-picker/src/date-range-picker.js +1412 -1409
  148. package/lib/divider/src/divider.js +80 -77
  149. package/lib/drawer/src/drawer.js +778 -775
  150. package/lib/empty/src/empty.js +100 -97
  151. package/lib/form/src/form-group.js +74 -71
  152. package/lib/form/src/form-item.js +76 -73
  153. package/lib/form/src/form.js +789 -786
  154. package/lib/icon/src/icon.js +59 -56
  155. package/lib/icon/style/style.css +1 -1
  156. package/lib/icon/style/style.mini.css +1 -1
  157. package/lib/icon-picker/src/icon-picker.js +719 -716
  158. package/lib/image/src/group.js +130 -127
  159. package/lib/image/src/image.js +243 -240
  160. package/lib/image/src/preview.js +627 -624
  161. package/lib/index.common.js +2 -0
  162. package/lib/index.js +2 -0
  163. package/lib/index.umd.js +47411 -46732
  164. package/lib/index.umd.min.js +3 -3
  165. package/lib/input/src/input.js +2700 -2697
  166. package/lib/layout-aside/src/layout-aside.js +138 -135
  167. package/lib/layout-body/src/layout-body.js +145 -142
  168. package/lib/layout-container/src/layout-container.js +71 -68
  169. package/lib/layout-footer/src/layout-footer.js +60 -57
  170. package/lib/layout-header/src/layout-header.js +58 -55
  171. package/lib/link/src/link.js +131 -128
  172. package/lib/list/src/list.js +2173 -2170
  173. package/lib/loading/src/loading.js +141 -138
  174. package/lib/mention/src/mention.js +49 -46
  175. package/lib/menu/src/menu.js +799 -796
  176. package/lib/modal/src/modal.js +1519 -1527
  177. package/lib/notice-bar/src/notice-bar.js +168 -165
  178. package/lib/number-input/src/number-input.js +1094 -1091
  179. package/lib/pager/src/pager.js +767 -764
  180. package/lib/password-input/src/password-input.js +431 -428
  181. package/lib/print/src/page-break.js +63 -60
  182. package/lib/print/src/print.js +303 -300
  183. package/lib/pulldown/src/pulldown.js +403 -400
  184. package/lib/radio/src/button.js +214 -211
  185. package/lib/radio/src/group.js +195 -192
  186. package/lib/radio/src/radio.js +194 -191
  187. package/lib/rate/src/rate.js +164 -161
  188. package/lib/result/src/result.js +116 -113
  189. package/lib/row/src/col.js +133 -130
  190. package/lib/row/src/row.js +111 -108
  191. package/lib/scrollbar/src/scrollbar.js +518 -515
  192. package/lib/segmented/src/segmented.js +240 -237
  193. package/lib/select/src/optgroup.js +44 -41
  194. package/lib/select/src/option.js +39 -36
  195. package/lib/select/src/select.js +1915 -1897
  196. package/lib/slider/src/slider.js +419 -416
  197. package/lib/space/src/space.js +190 -187
  198. package/lib/splitter/src/splitter-panel.js +146 -143
  199. package/lib/splitter/src/splitter.js +917 -914
  200. package/lib/step-item/index.js +47 -0
  201. package/lib/steps/src/step-info.js +49 -0
  202. package/lib/steps/src/step-item.js +59 -0
  203. package/lib/steps/src/steps.js +298 -46
  204. package/lib/steps/src/util.js +74 -0
  205. package/lib/steps/style/style.css +297 -0
  206. package/lib/steps/style/style.mini.css +1 -0
  207. package/lib/style.css +307 -1
  208. package/lib/style.mini.css +1 -1
  209. package/lib/switch/src/switch.js +228 -225
  210. package/lib/table-select/src/table-select.js +865 -862
  211. package/lib/table-transfer/src/table-transfer.js +61 -58
  212. package/lib/tabs/src/tab-pane.js +102 -99
  213. package/lib/tabs/src/tabs.js +936 -933
  214. package/lib/tag/src/tag.js +163 -160
  215. package/lib/text/src/text.js +232 -229
  216. package/lib/text-ellipsis/src/text-ellipsis.js +252 -249
  217. package/lib/textarea/src/textarea.js +434 -431
  218. package/lib/timeline/src/timeline.js +74 -36
  219. package/lib/timeline/src/util.js +7 -4
  220. package/lib/tip/src/tip.js +117 -114
  221. package/lib/tooltip/src/tooltip.js +552 -549
  222. package/lib/tour/src/tour.js +49 -46
  223. package/lib/transfer/src/transfer.js +95 -92
  224. package/lib/tree/src/tree.js +3379 -3376
  225. package/lib/tree-select/src/tree-select.js +969 -966
  226. package/lib/ui/index.js +8 -2
  227. package/lib/ui/src/log.js +1 -1
  228. package/lib/upload/src/upload.js +1788 -1785
  229. package/lib/vxe-icon/style/style.css +1 -1
  230. package/lib/vxe-icon/style/style.mini.css +1 -1
  231. package/lib/vxe-steps/style/style.css +297 -0
  232. package/lib/vxe-steps/style/style.mini.css +1 -0
  233. package/lib/watermark/src/watermark.js +158 -155
  234. package/package.json +1 -1
  235. package/packages/alert/src/alert.ts +2 -2
  236. package/packages/anchor/src/anchor-link.ts +2 -2
  237. package/packages/anchor/src/anchor.ts +2 -2
  238. package/packages/avatar/src/avatar.ts +2 -2
  239. package/packages/backtop/src/backtop.ts +2 -2
  240. package/packages/badge/src/badge.ts +2 -2
  241. package/packages/breadcrumb/src/breadcrumb-item.ts +2 -2
  242. package/packages/breadcrumb/src/breadcrumb.ts +2 -2
  243. package/packages/button/src/button-group.ts +2 -2
  244. package/packages/calendar/src/calendar.ts +2 -2
  245. package/packages/card/src/card.ts +2 -2
  246. package/packages/carousel/src/carousel-item.ts +2 -2
  247. package/packages/carousel/src/carousel.ts +2 -2
  248. package/packages/cascader/src/cascader.ts +2 -2
  249. package/packages/checkbox/src/button.ts +3 -15
  250. package/packages/checkbox/src/checkbox.ts +2 -2
  251. package/packages/checkbox/src/group.ts +2 -2
  252. package/packages/collapse/src/collapse-pane.ts +2 -2
  253. package/packages/collapse/src/collapse.ts +2 -2
  254. package/packages/color-picker/src/color-picker.ts +2 -2
  255. package/packages/components.ts +3 -0
  256. package/packages/context-menu/src/context-menu.ts +3 -16
  257. package/packages/countdown/src/countdown.ts +2 -2
  258. package/packages/date-panel/src/date-panel.ts +2 -2
  259. package/packages/date-picker/src/date-picker.ts +2 -2
  260. package/packages/date-range-picker/src/date-range-picker.ts +2 -2
  261. package/packages/divider/src/divider.ts +2 -2
  262. package/packages/drawer/src/drawer.ts +2 -2
  263. package/packages/empty/src/empty.ts +2 -2
  264. package/packages/form/src/form-group.ts +2 -2
  265. package/packages/form/src/form-item.ts +2 -2
  266. package/packages/form/src/form.ts +2 -2
  267. package/packages/icon/src/icon.ts +2 -2
  268. package/packages/icon-picker/src/icon-picker.ts +2 -2
  269. package/packages/image/src/group.ts +2 -2
  270. package/packages/image/src/image.ts +2 -2
  271. package/packages/image/src/preview.ts +3 -16
  272. package/packages/index.ts +2 -2
  273. package/packages/input/src/input.ts +2 -2
  274. package/packages/layout-aside/src/layout-aside.ts +2 -2
  275. package/packages/layout-body/src/layout-body.ts +2 -2
  276. package/packages/layout-container/src/layout-container.ts +3 -14
  277. package/packages/layout-footer/src/layout-footer.ts +2 -2
  278. package/packages/layout-header/src/layout-header.ts +2 -2
  279. package/packages/link/src/link.ts +2 -2
  280. package/packages/list/src/list.ts +2 -2
  281. package/packages/loading/src/loading.ts +2 -2
  282. package/packages/mention/src/mention.ts +2 -2
  283. package/packages/menu/src/menu.ts +2 -2
  284. package/packages/modal/src/modal.ts +5 -20
  285. package/packages/notice-bar/src/notice-bar.ts +2 -2
  286. package/packages/number-input/src/number-input.ts +3 -17
  287. package/packages/pager/src/pager.ts +2 -2
  288. package/packages/password-input/src/password-input.ts +2 -2
  289. package/packages/print/src/page-break.ts +2 -2
  290. package/packages/print/src/print.ts +2 -2
  291. package/packages/pulldown/src/pulldown.ts +2 -2
  292. package/packages/radio/src/button.ts +3 -16
  293. package/packages/radio/src/group.ts +3 -17
  294. package/packages/radio/src/radio.ts +2 -2
  295. package/packages/rate/src/rate.ts +2 -2
  296. package/packages/result/src/result.ts +2 -2
  297. package/packages/row/src/col.ts +2 -2
  298. package/packages/row/src/row.ts +2 -2
  299. package/packages/scrollbar/src/scrollbar.ts +3 -4
  300. package/packages/segmented/src/segmented.ts +2 -2
  301. package/packages/select/src/optgroup.ts +2 -2
  302. package/packages/select/src/option.ts +2 -2
  303. package/packages/select/src/select.ts +33 -19
  304. package/packages/slider/src/slider.ts +2 -2
  305. package/packages/space/src/space.ts +2 -2
  306. package/packages/splitter/src/splitter-panel.ts +2 -2
  307. package/packages/splitter/src/splitter.ts +2 -2
  308. package/packages/step-item/index.ts +16 -0
  309. package/packages/steps/src/step-info.ts +18 -0
  310. package/packages/steps/src/step-item.ts +41 -0
  311. package/packages/steps/src/steps.ts +273 -13
  312. package/packages/steps/src/util.ts +44 -0
  313. package/packages/switch/src/switch.ts +2 -2
  314. package/packages/table-select/src/table-select.ts +2 -2
  315. package/packages/table-transfer/src/table-transfer.ts +3 -15
  316. package/packages/tabs/src/tab-pane.ts +2 -2
  317. package/packages/tabs/src/tabs.ts +2 -2
  318. package/packages/tag/src/tag.ts +2 -2
  319. package/packages/text/src/text.ts +2 -2
  320. package/packages/text-ellipsis/src/text-ellipsis.ts +2 -2
  321. package/packages/textarea/src/textarea.ts +2 -2
  322. package/packages/timeline/src/timeline-info.ts +17 -17
  323. package/packages/timeline/src/timeline.ts +93 -49
  324. package/packages/timeline/src/util.ts +44 -41
  325. package/packages/tip/src/tip.ts +2 -2
  326. package/packages/tooltip/src/tooltip.ts +2 -2
  327. package/packages/tour/src/tour.ts +2 -2
  328. package/packages/transfer/src/transfer.ts +2 -2
  329. package/packages/tree/src/tree.ts +2 -2
  330. package/packages/tree-select/src/tree-select.ts +2 -2
  331. package/packages/ui/index.ts +8 -1
  332. package/packages/upload/src/upload.ts +2 -2
  333. package/packages/watermark/src/watermark.ts +2 -2
  334. package/styles/all.scss +1 -0
  335. package/styles/components/step-item.scss +0 -0
  336. package/styles/components/steps.scss +354 -0
  337. package/styles/theme/base.scss +9 -0
  338. package/types/all.d.ts +3 -0
  339. package/types/components/gantt.d.ts +1 -3
  340. package/types/components/select.d.ts +1 -13
  341. package/types/components/step-item.d.ts +72 -0
  342. package/types/components/steps.d.ts +67 -8
  343. package/types/components/table.d.ts +7 -66
  344. package/types/handles/form-design.d.ts +1 -4
  345. package/types/ui/global-config.d.ts +2 -0
  346. package/types/ui/global-icon.d.ts +7 -0
  347. /package/dist/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  348. /package/dist/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  349. /package/dist/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  350. /package/es/icon/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  351. /package/es/icon/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  352. /package/es/icon/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  353. /package/es/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  354. /package/es/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  355. /package/es/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  356. /package/es/vxe-icon/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  357. /package/es/vxe-icon/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  358. /package/es/vxe-icon/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  359. /package/lib/icon/style/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  360. /package/lib/icon/style/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  361. /package/lib/icon/style/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  362. /package/lib/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  363. /package/lib/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  364. /package/lib/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
  365. /package/lib/vxe-icon/style/{iconfont.1793330162657.ttf → iconfont.1793359478136.ttf} +0 -0
  366. /package/lib/vxe-icon/style/{iconfont.1793330162657.woff → iconfont.1793359478136.woff} +0 -0
  367. /package/lib/vxe-icon/style/{iconfont.1793330162657.woff2 → iconfont.1793359478136.woff2} +0 -0
@@ -7,2057 +7,2060 @@ import { createComponentLog } from "../../ui/src/log";
7
7
  import VxeScrollbarComponent from "../../scrollbar";
8
8
  const { getConfig, getI18n, createEvent, useFns, renderEmptyElement } = VxeUI;
9
9
  const { errLog } = createComponentLog("date-panel");
10
- var date_panel_default = defineVxeComponent({
11
- name: "VxeDatePanel",
12
- props: {
13
- modelValue: [String, Number, Date, Array],
14
- type: {
15
- type: String,
16
- default: "date"
17
- },
18
- className: String,
19
- cellClassName: [String, Function],
20
- size: {
21
- type: String,
22
- default: () => getConfig().datePanel.size || getConfig().size
23
- },
24
- multiple: Boolean,
25
- limitCount: {
26
- type: [String, Number],
27
- default: () => getConfig().datePanel.limitCount
28
- },
29
- // date、week、month、quarter、year
30
- startDate: {
31
- type: [String, Number, Date],
32
- default: () => getConfig().datePanel.startDate
33
- },
34
- endDate: {
35
- type: [String, Number, Date],
36
- default: () => getConfig().datePanel.endDate
37
- },
38
- defaultMode: String,
39
- defaultDate: [String, Number, Date],
40
- defaultTime: [String, Number, Date],
41
- minDate: [String, Number, Date],
42
- maxDate: [String, Number, Date],
43
- startDay: {
44
- type: [String, Number],
45
- default: () => getConfig().datePanel.startDay
10
+ var date_panel_default = (
11
+ /* define-vxe-component start */
12
+ defineVxeComponent({
13
+ name: "VxeDatePanel",
14
+ props: {
15
+ modelValue: [String, Number, Date, Array],
16
+ type: {
17
+ type: String,
18
+ default: "date"
19
+ },
20
+ className: String,
21
+ cellClassName: [String, Function],
22
+ size: {
23
+ type: String,
24
+ default: () => getConfig().datePanel.size || getConfig().size
25
+ },
26
+ multiple: Boolean,
27
+ limitCount: {
28
+ type: [String, Number],
29
+ default: () => getConfig().datePanel.limitCount
30
+ },
31
+ // date、week、month、quarter、year
32
+ startDate: {
33
+ type: [String, Number, Date],
34
+ default: () => getConfig().datePanel.startDate
35
+ },
36
+ endDate: {
37
+ type: [String, Number, Date],
38
+ default: () => getConfig().datePanel.endDate
39
+ },
40
+ defaultMode: String,
41
+ defaultDate: [String, Number, Date],
42
+ defaultTime: [String, Number, Date],
43
+ minDate: [String, Number, Date],
44
+ maxDate: [String, Number, Date],
45
+ startDay: {
46
+ type: [String, Number],
47
+ default: () => getConfig().datePanel.startDay
48
+ },
49
+ labelFormat: String,
50
+ valueFormat: String,
51
+ timeFormat: String,
52
+ valueSort: Boolean,
53
+ festivalMethod: Function,
54
+ disabledMethod: Function,
55
+ timeConfig: Object,
56
+ // week
57
+ selectDay: {
58
+ type: [String, Number],
59
+ default: () => getConfig().datePanel.selectDay
60
+ }
46
61
  },
47
- labelFormat: String,
48
- valueFormat: String,
49
- timeFormat: String,
50
- valueSort: Boolean,
51
- festivalMethod: Function,
52
- disabledMethod: Function,
53
- timeConfig: Object,
54
- // week
55
- selectDay: {
56
- type: [String, Number],
57
- default: () => getConfig().datePanel.selectDay
58
- }
59
- },
60
- emits: ["update:modelValue", "change", "click", "clear", "date-prev", "date-today", "date-next", "confirm", "revert"],
61
- setup(props, context) {
62
- const { emit } = context;
63
- const xID = XEUtils.uniqueId();
64
- const { computeSize } = useFns.useSize(props);
65
- const reactData = reactive({
66
- visiblePanel: false,
67
- isAniVisible: false,
68
- isActivated: false,
69
- inputValue: "",
70
- inputLabel: "",
71
- datetimePanelValue: null,
72
- datePanelValue: null,
73
- datePanelLabel: "",
74
- datePanelType: "day",
75
- selectMonth: null,
76
- currentDate: null
77
- });
78
- const internalData = {
79
- yearSize: 16,
80
- monthSize: 12,
81
- quarterSize: 4,
82
- hpTimeout: void 0
83
- };
84
- const defaultFuncProps = {
85
- festivalMethod: getConfig().datePanel.festivalMethod,
86
- disabledMethod: getConfig().datePanel.disabledMethod
87
- };
88
- const refElem = ref();
89
- const refPanelWrapper = ref();
90
- const refInputTimeBody = ref();
91
- const computeIsTimeType = computed(() => {
92
- const { type } = props;
93
- return type === "time";
94
- });
95
- const computeIsTimeOrDateTimeType = computed(() => {
96
- const { type } = props;
97
- const isTimeType = computeIsTimeType.value;
98
- return isTimeType || type === "datetime";
99
- });
100
- const computeIsDatePanelType = computed(() => {
101
- const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
102
- return isTimeOrDateTimeType || ["date", "week", "month", "quarter", "year"].indexOf(props.type) > -1;
103
- });
104
- const computeDateStartDate = computed(() => {
105
- return props.startDate ? XEUtils.toStringDate(props.startDate) : null;
106
- });
107
- const computeDateEndDate = computed(() => {
108
- return props.endDate ? XEUtils.toStringDate(props.endDate) : null;
109
- });
110
- const computeDateListValue = computed(() => {
111
- const { modelValue, valueFormat } = props;
112
- const isDatePanelType = computeIsDatePanelType.value;
113
- const dateValueFormat = computeDateValueFormat.value;
114
- const restList = [];
115
- if (modelValue && isDatePanelType) {
116
- ;
117
- (XEUtils.isArray(modelValue) ? modelValue : XEUtils.toValueString(modelValue).split(",")).forEach((val) => {
118
- let strVal = val;
119
- if (val) {
120
- if (valueFormat === "timestamp") {
121
- if (XEUtils.isString(val) && /^\d+$/.test(val)) {
122
- strVal = Number(strVal);
62
+ emits: ["update:modelValue", "change", "click", "clear", "date-prev", "date-today", "date-next", "confirm", "revert"],
63
+ setup(props, context) {
64
+ const { emit } = context;
65
+ const xID = XEUtils.uniqueId();
66
+ const { computeSize } = useFns.useSize(props);
67
+ const reactData = reactive({
68
+ visiblePanel: false,
69
+ isAniVisible: false,
70
+ isActivated: false,
71
+ inputValue: "",
72
+ inputLabel: "",
73
+ datetimePanelValue: null,
74
+ datePanelValue: null,
75
+ datePanelLabel: "",
76
+ datePanelType: "day",
77
+ selectMonth: null,
78
+ currentDate: null
79
+ });
80
+ const internalData = {
81
+ yearSize: 16,
82
+ monthSize: 12,
83
+ quarterSize: 4,
84
+ hpTimeout: void 0
85
+ };
86
+ const defaultFuncProps = {
87
+ festivalMethod: getConfig().datePanel.festivalMethod,
88
+ disabledMethod: getConfig().datePanel.disabledMethod
89
+ };
90
+ const refElem = ref();
91
+ const refPanelWrapper = ref();
92
+ const refInputTimeBody = ref();
93
+ const computeIsTimeType = computed(() => {
94
+ const { type } = props;
95
+ return type === "time";
96
+ });
97
+ const computeIsTimeOrDateTimeType = computed(() => {
98
+ const { type } = props;
99
+ const isTimeType = computeIsTimeType.value;
100
+ return isTimeType || type === "datetime";
101
+ });
102
+ const computeIsDatePanelType = computed(() => {
103
+ const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
104
+ return isTimeOrDateTimeType || ["date", "week", "month", "quarter", "year"].indexOf(props.type) > -1;
105
+ });
106
+ const computeDateStartDate = computed(() => {
107
+ return props.startDate ? XEUtils.toStringDate(props.startDate) : null;
108
+ });
109
+ const computeDateEndDate = computed(() => {
110
+ return props.endDate ? XEUtils.toStringDate(props.endDate) : null;
111
+ });
112
+ const computeDateListValue = computed(() => {
113
+ const { modelValue, valueFormat } = props;
114
+ const isDatePanelType = computeIsDatePanelType.value;
115
+ const dateValueFormat = computeDateValueFormat.value;
116
+ const restList = [];
117
+ if (modelValue && isDatePanelType) {
118
+ ;
119
+ (XEUtils.isArray(modelValue) ? modelValue : XEUtils.toValueString(modelValue).split(",")).forEach((val) => {
120
+ let strVal = val;
121
+ if (val) {
122
+ if (valueFormat === "timestamp") {
123
+ if (XEUtils.isString(val) && /^\d+$/.test(val)) {
124
+ strVal = Number(strVal);
125
+ }
123
126
  }
127
+ const date = parseDate(strVal, dateValueFormat);
128
+ restList.push(date);
124
129
  }
125
- const date = parseDate(strVal, dateValueFormat);
126
- restList.push(date);
130
+ });
131
+ }
132
+ return restList;
133
+ });
134
+ const computeDateMultipleValue = computed(() => {
135
+ const dateListValue = computeDateListValue.value;
136
+ const dateValueFormat = computeDateValueFormat.value;
137
+ return dateListValue.map((date) => XEUtils.toDateString(date, dateValueFormat));
138
+ });
139
+ const computeDateMultipleLabel = computed(() => {
140
+ const dateListValue = computeDateListValue.value;
141
+ const dateLabelFormat = computeDateLabelFormat.value;
142
+ return dateListValue.map((date) => XEUtils.toDateString(date, dateLabelFormat)).join(", ");
143
+ });
144
+ const computeLimitMaxCount = computed(() => {
145
+ return props.multiple ? XEUtils.toNumber(props.limitCount) : 0;
146
+ });
147
+ const computeOverCount = computed(() => {
148
+ const { multiple } = props;
149
+ const limitMaxCount = computeLimitMaxCount.value;
150
+ const dateMultipleValue = computeDateMultipleValue.value;
151
+ if (multiple && limitMaxCount) {
152
+ return dateMultipleValue.length >= limitMaxCount;
153
+ }
154
+ return false;
155
+ });
156
+ const computeTimeOpts = computed(() => {
157
+ return Object.assign({}, getConfig().datePanel.timeConfig, props.timeConfig);
158
+ });
159
+ const computeDateValueFormat = computed(() => {
160
+ const { type, valueFormat } = props;
161
+ return handleValueFormat(type, valueFormat);
162
+ });
163
+ const computeDateValue = computed(() => {
164
+ const { modelValue, defaultMode } = props;
165
+ const isDatePanelType = computeIsDatePanelType.value;
166
+ const dateValueFormat = computeDateValueFormat.value;
167
+ let val = null;
168
+ if (modelValue && isDatePanelType) {
169
+ const vals = XEUtils.isString(modelValue) ? modelValue.split(",") : modelValue;
170
+ const currVal = defaultMode === "last" ? XEUtils.last(vals) : XEUtils.first(vals);
171
+ const date = parseDate(currVal, dateValueFormat);
172
+ if (XEUtils.isValidDate(date)) {
173
+ val = date;
127
174
  }
128
- });
129
- }
130
- return restList;
131
- });
132
- const computeDateMultipleValue = computed(() => {
133
- const dateListValue = computeDateListValue.value;
134
- const dateValueFormat = computeDateValueFormat.value;
135
- return dateListValue.map((date) => XEUtils.toDateString(date, dateValueFormat));
136
- });
137
- const computeDateMultipleLabel = computed(() => {
138
- const dateListValue = computeDateListValue.value;
139
- const dateLabelFormat = computeDateLabelFormat.value;
140
- return dateListValue.map((date) => XEUtils.toDateString(date, dateLabelFormat)).join(", ");
141
- });
142
- const computeLimitMaxCount = computed(() => {
143
- return props.multiple ? XEUtils.toNumber(props.limitCount) : 0;
144
- });
145
- const computeOverCount = computed(() => {
146
- const { multiple } = props;
147
- const limitMaxCount = computeLimitMaxCount.value;
148
- const dateMultipleValue = computeDateMultipleValue.value;
149
- if (multiple && limitMaxCount) {
150
- return dateMultipleValue.length >= limitMaxCount;
151
- }
152
- return false;
153
- });
154
- const computeTimeOpts = computed(() => {
155
- return Object.assign({}, getConfig().datePanel.timeConfig, props.timeConfig);
156
- });
157
- const computeDateValueFormat = computed(() => {
158
- const { type, valueFormat } = props;
159
- return handleValueFormat(type, valueFormat);
160
- });
161
- const computeDateValue = computed(() => {
162
- const { modelValue, defaultMode } = props;
163
- const isDatePanelType = computeIsDatePanelType.value;
164
- const dateValueFormat = computeDateValueFormat.value;
165
- let val = null;
166
- if (modelValue && isDatePanelType) {
167
- const vals = XEUtils.isString(modelValue) ? modelValue.split(",") : modelValue;
168
- const currVal = defaultMode === "last" ? XEUtils.last(vals) : XEUtils.first(vals);
169
- const date = parseDate(currVal, dateValueFormat);
170
- if (XEUtils.isValidDate(date)) {
171
- val = date;
172
175
  }
173
- }
174
- return val;
175
- });
176
- const computeIsDisabledPrevDateBtn = computed(() => {
177
- const dateStartTime = computeDateStartDate.value;
178
- const { selectMonth } = reactData;
179
- if (selectMonth && dateStartTime) {
180
- return selectMonth <= dateStartTime;
181
- }
182
- return false;
183
- });
184
- const computeIsDisabledNextDateBtn = computed(() => {
185
- const dateEndTime = computeDateEndDate.value;
186
- const { selectMonth } = reactData;
187
- if (selectMonth && dateEndTime) {
188
- return XEUtils.getWhatMonth(selectMonth, 0, "last") >= dateEndTime;
189
- }
190
- return false;
191
- });
192
- const computeDateTimeLabel = computed(() => {
193
- const { datetimePanelValue } = reactData;
194
- const hasTimeSecond = computeHasTimeSecond.value;
195
- const hasTimeMinute = computeHasTimeMinute.value;
196
- if (datetimePanelValue) {
197
- return XEUtils.toDateString(datetimePanelValue, hasTimeMinute && hasTimeSecond ? "HH:mm:ss" : hasTimeMinute ? "HH:mm" : "HH");
198
- }
199
- return "";
200
- });
201
- const computeDateHMSTime = computed(() => {
202
- const dateValue = computeDateValue.value;
203
- const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
204
- return dateValue && isTimeOrDateTimeType ? (dateValue.getHours() * 3600 + dateValue.getMinutes() * 60 + dateValue.getSeconds()) * 1e3 : 0;
205
- });
206
- const computeDateLabelFormat = computed(() => {
207
- const { labelFormat } = props;
208
- const isDatePanelType = computeIsDatePanelType.value;
209
- if (isDatePanelType) {
210
- return labelFormat || getI18n(`vxe.input.date.labelFormat.${props.type}`);
211
- }
212
- return "";
213
- });
214
- const computeYearList = computed(() => {
215
- const { yearSize } = internalData;
216
- const { selectMonth, currentDate } = reactData;
217
- const years = [];
218
- if (selectMonth && currentDate) {
219
- const currFullYear = currentDate.getFullYear();
220
- const selectFullYear = selectMonth.getFullYear();
221
- const startYearDate = new Date(selectFullYear - selectFullYear % yearSize, 0, 1);
222
- for (let index = 0; index < yearSize; index++) {
223
- const date = XEUtils.getWhatYear(startYearDate, index, "first");
224
- const itemFullYear = date.getFullYear();
225
- years.push({
226
- date,
227
- isCurrent: true,
228
- isPrev: index < 0,
229
- isNow: currFullYear === itemFullYear,
230
- isNext: index >= yearSize,
231
- year: itemFullYear
232
- });
176
+ return val;
177
+ });
178
+ const computeIsDisabledPrevDateBtn = computed(() => {
179
+ const dateStartTime = computeDateStartDate.value;
180
+ const { selectMonth } = reactData;
181
+ if (selectMonth && dateStartTime) {
182
+ return selectMonth <= dateStartTime;
233
183
  }
234
- }
235
- return years;
236
- });
237
- const computeSelectDatePanelObj = computed(() => {
238
- const isDatePanelType = computeIsDatePanelType.value;
239
- let y = "";
240
- let m = "";
241
- if (isDatePanelType) {
242
- const { datePanelType, selectMonth } = reactData;
243
- const yearList = computeYearList.value;
244
- let year = "";
245
- let month;
246
- if (selectMonth) {
247
- year = selectMonth.getFullYear();
248
- month = selectMonth.getMonth() + 1;
184
+ return false;
185
+ });
186
+ const computeIsDisabledNextDateBtn = computed(() => {
187
+ const dateEndTime = computeDateEndDate.value;
188
+ const { selectMonth } = reactData;
189
+ if (selectMonth && dateEndTime) {
190
+ return XEUtils.getWhatMonth(selectMonth, 0, "last") >= dateEndTime;
249
191
  }
250
- if (datePanelType === "quarter" || datePanelType === "month") {
251
- y = getI18n("vxe.datePicker.yearTitle", [year]);
252
- } else if (datePanelType === "year") {
253
- y = yearList.length ? `${yearList[0].year} - ${yearList[yearList.length - 1].year}` : "";
254
- } else {
255
- y = getI18n("vxe.datePicker.yearTitle", [year]);
256
- m = month ? getI18n(`vxe.input.date.m${month}`) : "-";
192
+ return false;
193
+ });
194
+ const computeDateTimeLabel = computed(() => {
195
+ const { datetimePanelValue } = reactData;
196
+ const hasTimeSecond = computeHasTimeSecond.value;
197
+ const hasTimeMinute = computeHasTimeMinute.value;
198
+ if (datetimePanelValue) {
199
+ return XEUtils.toDateString(datetimePanelValue, hasTimeMinute && hasTimeSecond ? "HH:mm:ss" : hasTimeMinute ? "HH:mm" : "HH");
257
200
  }
258
- }
259
- return {
260
- y,
261
- m
262
- };
263
- });
264
- const computeFirstDayOfWeek = computed(() => {
265
- const { startDay } = props;
266
- return XEUtils.toNumber(startDay);
267
- });
268
- const computeWeekDatas = computed(() => {
269
- const weeks = [];
270
- const isDatePanelType = computeIsDatePanelType.value;
271
- if (isDatePanelType) {
272
- let sWeek = computeFirstDayOfWeek.value;
273
- weeks.push(sWeek);
274
- for (let index = 0; index < 6; index++) {
275
- if (sWeek >= 6) {
276
- sWeek = 0;
201
+ return "";
202
+ });
203
+ const computeDateHMSTime = computed(() => {
204
+ const dateValue = computeDateValue.value;
205
+ const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
206
+ return dateValue && isTimeOrDateTimeType ? (dateValue.getHours() * 3600 + dateValue.getMinutes() * 60 + dateValue.getSeconds()) * 1e3 : 0;
207
+ });
208
+ const computeDateLabelFormat = computed(() => {
209
+ const { labelFormat } = props;
210
+ const isDatePanelType = computeIsDatePanelType.value;
211
+ if (isDatePanelType) {
212
+ return labelFormat || getI18n(`vxe.input.date.labelFormat.${props.type}`);
213
+ }
214
+ return "";
215
+ });
216
+ const computeYearList = computed(() => {
217
+ const { yearSize } = internalData;
218
+ const { selectMonth, currentDate } = reactData;
219
+ const years = [];
220
+ if (selectMonth && currentDate) {
221
+ const currFullYear = currentDate.getFullYear();
222
+ const selectFullYear = selectMonth.getFullYear();
223
+ const startYearDate = new Date(selectFullYear - selectFullYear % yearSize, 0, 1);
224
+ for (let index = 0; index < yearSize; index++) {
225
+ const date = XEUtils.getWhatYear(startYearDate, index, "first");
226
+ const itemFullYear = date.getFullYear();
227
+ years.push({
228
+ date,
229
+ isCurrent: true,
230
+ isPrev: index < 0,
231
+ isNow: currFullYear === itemFullYear,
232
+ isNext: index >= yearSize,
233
+ year: itemFullYear
234
+ });
235
+ }
236
+ }
237
+ return years;
238
+ });
239
+ const computeSelectDatePanelObj = computed(() => {
240
+ const isDatePanelType = computeIsDatePanelType.value;
241
+ let y = "";
242
+ let m = "";
243
+ if (isDatePanelType) {
244
+ const { datePanelType, selectMonth } = reactData;
245
+ const yearList = computeYearList.value;
246
+ let year = "";
247
+ let month;
248
+ if (selectMonth) {
249
+ year = selectMonth.getFullYear();
250
+ month = selectMonth.getMonth() + 1;
251
+ }
252
+ if (datePanelType === "quarter" || datePanelType === "month") {
253
+ y = getI18n("vxe.datePicker.yearTitle", [year]);
254
+ } else if (datePanelType === "year") {
255
+ y = yearList.length ? `${yearList[0].year} - ${yearList[yearList.length - 1].year}` : "";
277
256
  } else {
278
- sWeek++;
257
+ y = getI18n("vxe.datePicker.yearTitle", [year]);
258
+ m = month ? getI18n(`vxe.input.date.m${month}`) : "-";
279
259
  }
260
+ }
261
+ return {
262
+ y,
263
+ m
264
+ };
265
+ });
266
+ const computeFirstDayOfWeek = computed(() => {
267
+ const { startDay } = props;
268
+ return XEUtils.toNumber(startDay);
269
+ });
270
+ const computeWeekDatas = computed(() => {
271
+ const weeks = [];
272
+ const isDatePanelType = computeIsDatePanelType.value;
273
+ if (isDatePanelType) {
274
+ let sWeek = computeFirstDayOfWeek.value;
280
275
  weeks.push(sWeek);
276
+ for (let index = 0; index < 6; index++) {
277
+ if (sWeek >= 6) {
278
+ sWeek = 0;
279
+ } else {
280
+ sWeek++;
281
+ }
282
+ weeks.push(sWeek);
283
+ }
281
284
  }
282
- }
283
- return weeks;
284
- });
285
- const computeDateHeaders = computed(() => {
286
- const isDatePanelType = computeIsDatePanelType.value;
287
- if (isDatePanelType) {
288
- const weekDatas = computeWeekDatas.value;
289
- return weekDatas.map((day) => {
290
- return {
291
- value: day,
292
- label: getI18n(`vxe.input.date.weeks.w${day}`)
293
- };
294
- });
295
- }
296
- return [];
297
- });
298
- const computeWeekHeaders = computed(() => {
299
- const isDatePanelType = computeIsDatePanelType.value;
300
- if (isDatePanelType) {
301
- const dateHeaders = computeDateHeaders.value;
302
- return [{ label: getI18n("vxe.input.date.weeks.w") }].concat(dateHeaders);
303
- }
304
- return [];
305
- });
306
- const computeYearDatas = computed(() => {
307
- const yearList = computeYearList.value;
308
- return XEUtils.chunk(yearList, 4);
309
- });
310
- const computeQuarterList = computed(() => {
311
- const { quarterSize } = internalData;
312
- const { selectMonth, currentDate } = reactData;
313
- const quarters = [];
314
- if (selectMonth && currentDate) {
315
- const currFullYear = currentDate.getFullYear();
316
- const currQuarter = getDateQuarter(currentDate);
317
- const firstYear = XEUtils.getWhatYear(selectMonth, 0, "first");
318
- const selFullYear = firstYear.getFullYear();
319
- for (let index = 0; index < quarterSize; index++) {
320
- const date = XEUtils.getWhatQuarter(firstYear, index);
321
- const itemFullYear = date.getFullYear();
322
- const itemQuarter = getDateQuarter(date);
323
- const isPrev = itemFullYear < selFullYear;
324
- quarters.push({
325
- date,
326
- isPrev,
327
- isCurrent: itemFullYear === selFullYear,
328
- isNow: itemFullYear === currFullYear && itemQuarter === currQuarter,
329
- isNext: !isPrev && itemFullYear > selFullYear,
330
- quarter: itemQuarter
285
+ return weeks;
286
+ });
287
+ const computeDateHeaders = computed(() => {
288
+ const isDatePanelType = computeIsDatePanelType.value;
289
+ if (isDatePanelType) {
290
+ const weekDatas = computeWeekDatas.value;
291
+ return weekDatas.map((day) => {
292
+ return {
293
+ value: day,
294
+ label: getI18n(`vxe.input.date.weeks.w${day}`)
295
+ };
331
296
  });
332
297
  }
333
- }
334
- return quarters;
335
- });
336
- const computeQuarterDatas = computed(() => {
337
- const quarterList = computeQuarterList.value;
338
- return XEUtils.chunk(quarterList, 2);
339
- });
340
- const computeMonthList = computed(() => {
341
- const { monthSize } = internalData;
342
- const { selectMonth, currentDate } = reactData;
343
- const months = [];
344
- if (selectMonth && currentDate) {
345
- const currFullYear = currentDate.getFullYear();
346
- const currMonth = currentDate.getMonth();
347
- const selFullYear = XEUtils.getWhatYear(selectMonth, 0, "first").getFullYear();
348
- for (let index = 0; index < monthSize; index++) {
349
- const date = XEUtils.getWhatYear(selectMonth, 0, index);
350
- const itemFullYear = date.getFullYear();
351
- const itemMonth = date.getMonth();
352
- const isPrev = itemFullYear < selFullYear;
353
- months.push({
354
- date,
355
- isPrev,
356
- isCurrent: itemFullYear === selFullYear,
357
- isNow: itemFullYear === currFullYear && itemMonth === currMonth,
358
- isNext: !isPrev && itemFullYear > selFullYear,
359
- month: itemMonth
360
- });
298
+ return [];
299
+ });
300
+ const computeWeekHeaders = computed(() => {
301
+ const isDatePanelType = computeIsDatePanelType.value;
302
+ if (isDatePanelType) {
303
+ const dateHeaders = computeDateHeaders.value;
304
+ return [{ label: getI18n("vxe.input.date.weeks.w") }].concat(dateHeaders);
361
305
  }
362
- }
363
- return months;
364
- });
365
- const computeMonthDatas = computed(() => {
366
- const monthList = computeMonthList.value;
367
- return XEUtils.chunk(monthList, 4);
368
- });
369
- const computeDayList = computed(() => {
370
- const { selectMonth, currentDate } = reactData;
371
- const days = [];
372
- if (selectMonth && currentDate) {
373
- const dateHMSTime = computeDateHMSTime.value;
374
- const weekDatas = computeWeekDatas.value;
375
- const currFullYear = currentDate.getFullYear();
376
- const currMonth = currentDate.getMonth();
377
- const currDate = currentDate.getDate();
378
- const selFullYear = selectMonth.getFullYear();
379
- const selMonth = selectMonth.getMonth();
380
- const selDay = selectMonth.getDay();
381
- const prevOffsetDate = -weekDatas.indexOf(selDay);
382
- const startDayDate = new Date(XEUtils.getWhatDay(selectMonth, prevOffsetDate).getTime() + dateHMSTime);
383
- for (let index = 0; index < 42; index++) {
384
- const date = XEUtils.getWhatDay(startDayDate, index);
385
- const itemFullYear = date.getFullYear();
386
- const itemMonth = date.getMonth();
387
- const itemDate = date.getDate();
388
- const isPrev = date < selectMonth;
389
- days.push({
390
- date,
391
- isPrev,
392
- isCurrent: itemFullYear === selFullYear && itemMonth === selMonth,
393
- isNow: itemFullYear === currFullYear && itemMonth === currMonth && itemDate === currDate,
394
- isNext: !isPrev && selMonth !== itemMonth,
395
- label: itemDate
396
- });
306
+ return [];
307
+ });
308
+ const computeYearDatas = computed(() => {
309
+ const yearList = computeYearList.value;
310
+ return XEUtils.chunk(yearList, 4);
311
+ });
312
+ const computeQuarterList = computed(() => {
313
+ const { quarterSize } = internalData;
314
+ const { selectMonth, currentDate } = reactData;
315
+ const quarters = [];
316
+ if (selectMonth && currentDate) {
317
+ const currFullYear = currentDate.getFullYear();
318
+ const currQuarter = getDateQuarter(currentDate);
319
+ const firstYear = XEUtils.getWhatYear(selectMonth, 0, "first");
320
+ const selFullYear = firstYear.getFullYear();
321
+ for (let index = 0; index < quarterSize; index++) {
322
+ const date = XEUtils.getWhatQuarter(firstYear, index);
323
+ const itemFullYear = date.getFullYear();
324
+ const itemQuarter = getDateQuarter(date);
325
+ const isPrev = itemFullYear < selFullYear;
326
+ quarters.push({
327
+ date,
328
+ isPrev,
329
+ isCurrent: itemFullYear === selFullYear,
330
+ isNow: itemFullYear === currFullYear && itemQuarter === currQuarter,
331
+ isNext: !isPrev && itemFullYear > selFullYear,
332
+ quarter: itemQuarter
333
+ });
334
+ }
397
335
  }
398
- }
399
- return days;
400
- });
401
- const computeDayDatas = computed(() => {
402
- const dayList = computeDayList.value;
403
- return XEUtils.chunk(dayList, 7);
404
- });
405
- const computeWeekDates = computed(() => {
406
- const dayDatas = computeDayDatas.value;
407
- const firstDayOfWeek = computeFirstDayOfWeek.value;
408
- return dayDatas.map((list) => {
409
- const firstItem = list[0];
410
- const item = {
411
- date: firstItem.date,
412
- isWeekNumber: true,
413
- isPrev: false,
414
- isCurrent: false,
415
- isNow: false,
416
- isNext: false,
417
- label: XEUtils.getYearWeek(firstItem.date, firstDayOfWeek)
418
- };
419
- return [item].concat(list);
336
+ return quarters;
337
+ });
338
+ const computeQuarterDatas = computed(() => {
339
+ const quarterList = computeQuarterList.value;
340
+ return XEUtils.chunk(quarterList, 2);
341
+ });
342
+ const computeMonthList = computed(() => {
343
+ const { monthSize } = internalData;
344
+ const { selectMonth, currentDate } = reactData;
345
+ const months = [];
346
+ if (selectMonth && currentDate) {
347
+ const currFullYear = currentDate.getFullYear();
348
+ const currMonth = currentDate.getMonth();
349
+ const selFullYear = XEUtils.getWhatYear(selectMonth, 0, "first").getFullYear();
350
+ for (let index = 0; index < monthSize; index++) {
351
+ const date = XEUtils.getWhatYear(selectMonth, 0, index);
352
+ const itemFullYear = date.getFullYear();
353
+ const itemMonth = date.getMonth();
354
+ const isPrev = itemFullYear < selFullYear;
355
+ months.push({
356
+ date,
357
+ isPrev,
358
+ isCurrent: itemFullYear === selFullYear,
359
+ isNow: itemFullYear === currFullYear && itemMonth === currMonth,
360
+ isNext: !isPrev && itemFullYear > selFullYear,
361
+ month: itemMonth
362
+ });
363
+ }
364
+ }
365
+ return months;
420
366
  });
421
- });
422
- const computeHourList = computed(() => {
423
- const timeOpts = computeTimeOpts.value;
424
- const { hours: hourOptions, hourDisabledMethod } = timeOpts;
425
- const list = [];
426
- const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
427
- if (isTimeOrDateTimeType) {
428
- if (hourOptions && hourOptions.length) {
429
- hourOptions.forEach((item) => {
430
- if (XEUtils.isNumber(item) || XEUtils.isString(item)) {
431
- const hour = XEUtils.toNumber(item);
367
+ const computeMonthDatas = computed(() => {
368
+ const monthList = computeMonthList.value;
369
+ return XEUtils.chunk(monthList, 4);
370
+ });
371
+ const computeDayList = computed(() => {
372
+ const { selectMonth, currentDate } = reactData;
373
+ const days = [];
374
+ if (selectMonth && currentDate) {
375
+ const dateHMSTime = computeDateHMSTime.value;
376
+ const weekDatas = computeWeekDatas.value;
377
+ const currFullYear = currentDate.getFullYear();
378
+ const currMonth = currentDate.getMonth();
379
+ const currDate = currentDate.getDate();
380
+ const selFullYear = selectMonth.getFullYear();
381
+ const selMonth = selectMonth.getMonth();
382
+ const selDay = selectMonth.getDay();
383
+ const prevOffsetDate = -weekDatas.indexOf(selDay);
384
+ const startDayDate = new Date(XEUtils.getWhatDay(selectMonth, prevOffsetDate).getTime() + dateHMSTime);
385
+ for (let index = 0; index < 42; index++) {
386
+ const date = XEUtils.getWhatDay(startDayDate, index);
387
+ const itemFullYear = date.getFullYear();
388
+ const itemMonth = date.getMonth();
389
+ const itemDate = date.getDate();
390
+ const isPrev = date < selectMonth;
391
+ days.push({
392
+ date,
393
+ isPrev,
394
+ isCurrent: itemFullYear === selFullYear && itemMonth === selMonth,
395
+ isNow: itemFullYear === currFullYear && itemMonth === currMonth && itemDate === currDate,
396
+ isNext: !isPrev && selMonth !== itemMonth,
397
+ label: itemDate
398
+ });
399
+ }
400
+ }
401
+ return days;
402
+ });
403
+ const computeDayDatas = computed(() => {
404
+ const dayList = computeDayList.value;
405
+ return XEUtils.chunk(dayList, 7);
406
+ });
407
+ const computeWeekDates = computed(() => {
408
+ const dayDatas = computeDayDatas.value;
409
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
410
+ return dayDatas.map((list) => {
411
+ const firstItem = list[0];
412
+ const item = {
413
+ date: firstItem.date,
414
+ isWeekNumber: true,
415
+ isPrev: false,
416
+ isCurrent: false,
417
+ isNow: false,
418
+ isNext: false,
419
+ label: XEUtils.getYearWeek(firstItem.date, firstDayOfWeek)
420
+ };
421
+ return [item].concat(list);
422
+ });
423
+ });
424
+ const computeHourList = computed(() => {
425
+ const timeOpts = computeTimeOpts.value;
426
+ const { hours: hourOptions, hourDisabledMethod } = timeOpts;
427
+ const list = [];
428
+ const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
429
+ if (isTimeOrDateTimeType) {
430
+ if (hourOptions && hourOptions.length) {
431
+ hourOptions.forEach((item) => {
432
+ if (XEUtils.isNumber(item) || XEUtils.isString(item)) {
433
+ const hour = XEUtils.toNumber(item);
434
+ list.push({
435
+ value: hour,
436
+ label: ("" + hour).padStart(2, "0"),
437
+ disabled: !!(hourDisabledMethod && hourDisabledMethod({ hour }))
438
+ });
439
+ } else if (item) {
440
+ const hour = XEUtils.toNumber(item.value);
441
+ list.push({
442
+ value: hour,
443
+ label: ("" + (item.label || hour)).padStart(2, "0"),
444
+ disabled: XEUtils.isBoolean(item.disabled) ? item.disabled : !!(hourDisabledMethod && hourDisabledMethod({ hour }))
445
+ });
446
+ }
447
+ });
448
+ } else {
449
+ for (let index = 0; index < 24; index++) {
450
+ const hour = index;
432
451
  list.push({
433
452
  value: hour,
434
453
  label: ("" + hour).padStart(2, "0"),
435
454
  disabled: !!(hourDisabledMethod && hourDisabledMethod({ hour }))
436
455
  });
437
- } else if (item) {
438
- const hour = XEUtils.toNumber(item.value);
439
- list.push({
440
- value: hour,
441
- label: ("" + (item.label || hour)).padStart(2, "0"),
442
- disabled: XEUtils.isBoolean(item.disabled) ? item.disabled : !!(hourDisabledMethod && hourDisabledMethod({ hour }))
443
- });
444
456
  }
445
- });
446
- } else {
447
- for (let index = 0; index < 24; index++) {
448
- const hour = index;
449
- list.push({
450
- value: hour,
451
- label: ("" + hour).padStart(2, "0"),
452
- disabled: !!(hourDisabledMethod && hourDisabledMethod({ hour }))
453
- });
454
457
  }
455
458
  }
456
- }
457
- return list;
458
- });
459
- const computeMinuteList = computed(() => {
460
- const timeOpts = computeTimeOpts.value;
461
- const { minutes: minuteOptions, minuteDisabledMethod } = timeOpts;
462
- const list = [];
463
- const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
464
- if (isTimeOrDateTimeType) {
465
- if (minuteOptions && minuteOptions.length) {
466
- minuteOptions.forEach((item) => {
467
- if (XEUtils.isNumber(item) || XEUtils.isString(item)) {
468
- const minute = XEUtils.toNumber(item);
459
+ return list;
460
+ });
461
+ const computeMinuteList = computed(() => {
462
+ const timeOpts = computeTimeOpts.value;
463
+ const { minutes: minuteOptions, minuteDisabledMethod } = timeOpts;
464
+ const list = [];
465
+ const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
466
+ if (isTimeOrDateTimeType) {
467
+ if (minuteOptions && minuteOptions.length) {
468
+ minuteOptions.forEach((item) => {
469
+ if (XEUtils.isNumber(item) || XEUtils.isString(item)) {
470
+ const minute = XEUtils.toNumber(item);
471
+ list.push({
472
+ value: minute,
473
+ label: ("" + minute).padStart(2, "0"),
474
+ disabled: !!(minuteDisabledMethod && minuteDisabledMethod({ minute }))
475
+ });
476
+ } else if (item) {
477
+ const minute = XEUtils.toNumber(item.value);
478
+ list.push({
479
+ value: minute,
480
+ label: ("" + (item.label || minute)).padStart(2, "0"),
481
+ disabled: XEUtils.isBoolean(item.disabled) ? item.disabled : !!(minuteDisabledMethod && minuteDisabledMethod({ minute }))
482
+ });
483
+ }
484
+ });
485
+ } else {
486
+ for (let index = 0; index < 60; index++) {
487
+ const minute = index;
469
488
  list.push({
470
489
  value: minute,
471
490
  label: ("" + minute).padStart(2, "0"),
472
491
  disabled: !!(minuteDisabledMethod && minuteDisabledMethod({ minute }))
473
492
  });
474
- } else if (item) {
475
- const minute = XEUtils.toNumber(item.value);
476
- list.push({
477
- value: minute,
478
- label: ("" + (item.label || minute)).padStart(2, "0"),
479
- disabled: XEUtils.isBoolean(item.disabled) ? item.disabled : !!(minuteDisabledMethod && minuteDisabledMethod({ minute }))
480
- });
481
493
  }
482
- });
483
- } else {
484
- for (let index = 0; index < 60; index++) {
485
- const minute = index;
486
- list.push({
487
- value: minute,
488
- label: ("" + minute).padStart(2, "0"),
489
- disabled: !!(minuteDisabledMethod && minuteDisabledMethod({ minute }))
490
- });
491
494
  }
492
495
  }
493
- }
494
- return list;
495
- });
496
- const computeHasTimeMinute = computed(() => {
497
- const { timeFormat } = props;
498
- const dateValueFormat = computeDateValueFormat.value;
499
- return !/HH/.test(timeFormat || dateValueFormat) || /mm/.test(timeFormat || dateValueFormat);
500
- });
501
- const computeHasTimeSecond = computed(() => {
502
- const { timeFormat } = props;
503
- const dateValueFormat = computeDateValueFormat.value;
504
- return !/HH/.test(timeFormat || dateValueFormat) || /ss/.test(timeFormat || dateValueFormat);
505
- });
506
- const computeSecondList = computed(() => {
507
- const timeOpts = computeTimeOpts.value;
508
- const { seconds: secondOptions, secondDisabledMethod } = timeOpts;
509
- const list = [];
510
- const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
511
- if (isTimeOrDateTimeType) {
512
- if (secondOptions && secondOptions.length) {
513
- secondOptions.forEach((item) => {
514
- if (XEUtils.isNumber(item) || XEUtils.isString(item)) {
515
- const second = XEUtils.toNumber(item);
496
+ return list;
497
+ });
498
+ const computeHasTimeMinute = computed(() => {
499
+ const { timeFormat } = props;
500
+ const dateValueFormat = computeDateValueFormat.value;
501
+ return !/HH/.test(timeFormat || dateValueFormat) || /mm/.test(timeFormat || dateValueFormat);
502
+ });
503
+ const computeHasTimeSecond = computed(() => {
504
+ const { timeFormat } = props;
505
+ const dateValueFormat = computeDateValueFormat.value;
506
+ return !/HH/.test(timeFormat || dateValueFormat) || /ss/.test(timeFormat || dateValueFormat);
507
+ });
508
+ const computeSecondList = computed(() => {
509
+ const timeOpts = computeTimeOpts.value;
510
+ const { seconds: secondOptions, secondDisabledMethod } = timeOpts;
511
+ const list = [];
512
+ const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
513
+ if (isTimeOrDateTimeType) {
514
+ if (secondOptions && secondOptions.length) {
515
+ secondOptions.forEach((item) => {
516
+ if (XEUtils.isNumber(item) || XEUtils.isString(item)) {
517
+ const second = XEUtils.toNumber(item);
518
+ list.push({
519
+ value: second,
520
+ label: ("" + second).padStart(2, "0"),
521
+ disabled: !!(secondDisabledMethod && secondDisabledMethod({ second }))
522
+ });
523
+ } else if (item) {
524
+ const second = XEUtils.toNumber(item.value);
525
+ list.push({
526
+ value: second,
527
+ label: ("" + (item.label || second)).padStart(2, "0"),
528
+ disabled: XEUtils.isBoolean(item.disabled) ? item.disabled : !!(secondDisabledMethod && secondDisabledMethod({ second }))
529
+ });
530
+ }
531
+ });
532
+ } else {
533
+ for (let index = 0; index < 60; index++) {
534
+ const second = index;
516
535
  list.push({
517
536
  value: second,
518
537
  label: ("" + second).padStart(2, "0"),
519
538
  disabled: !!(secondDisabledMethod && secondDisabledMethod({ second }))
520
539
  });
521
- } else if (item) {
522
- const second = XEUtils.toNumber(item.value);
523
- list.push({
524
- value: second,
525
- label: ("" + (item.label || second)).padStart(2, "0"),
526
- disabled: XEUtils.isBoolean(item.disabled) ? item.disabled : !!(secondDisabledMethod && secondDisabledMethod({ second }))
527
- });
528
540
  }
529
- });
530
- } else {
531
- for (let index = 0; index < 60; index++) {
532
- const second = index;
533
- list.push({
534
- value: second,
535
- label: ("" + second).padStart(2, "0"),
536
- disabled: !!(secondDisabledMethod && secondDisabledMethod({ second }))
537
- });
538
541
  }
539
542
  }
540
- }
541
- return list;
542
- });
543
- const refMaps = {
544
- refElem
545
- };
546
- const computeMaps = {
547
- computeSize,
548
- computeYearList
549
- };
550
- const $xeDatePanel = {
551
- xID,
552
- props,
553
- context,
554
- reactData,
555
- internalData,
556
- getRefMaps: () => refMaps,
557
- getComputeMaps: () => computeMaps
558
- };
559
- const updateModelValue = (modelValue) => {
560
- const { type } = props;
561
- const dateValueFormat = computeDateValueFormat.value;
562
- const inpDate = parseDateValue(modelValue, type, { valueFormat: dateValueFormat });
563
- reactData.inputValue = inpDate;
564
- reactData.inputLabel = inpDate;
565
- dateOpenPanel();
566
- };
567
- const parseDate = (value, format) => {
568
- const { type, multiple } = props;
569
- if (type === "time") {
570
- return toStringTimeDate(XEUtils.isArray(value) ? XEUtils.last(value) : value);
571
- }
572
- if (XEUtils.isArray(value)) {
573
- return XEUtils.toStringDate(XEUtils.last(value), format);
574
- }
575
- if (XEUtils.isString(value)) {
576
- return XEUtils.toStringDate(multiple ? XEUtils.last(value.split(",")) : value, format);
577
- }
578
- return XEUtils.toStringDate(value, format);
579
- };
580
- const dateRevert = () => {
581
- const label = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
582
- reactData.inputLabel = label;
583
- dispatchEvent("revert", { label }, null);
584
- };
585
- const afterCheckValue = (inpVal) => {
586
- const { type } = props;
587
- const { inputLabel, datetimePanelValue } = reactData;
588
- const dateLabelFormat = computeDateLabelFormat.value;
589
- const dateStartDate = computeDateStartDate.value;
590
- const dateEndDate = computeDateEndDate.value;
591
- if (inpVal) {
592
- let inpDateVal = parseDate(inpVal, dateLabelFormat);
593
- if (XEUtils.isValidDate(inpDateVal)) {
594
- if (type === "time") {
595
- inpDateVal = XEUtils.toDateString(inpDateVal, dateLabelFormat);
596
- if (inputLabel !== inpDateVal) {
597
- handleChange(inpDateVal, { type: "check" });
598
- }
599
- reactData.inputLabel = inpDateVal;
600
- } else {
601
- if (dateEndDate && inpDateVal > dateEndDate) {
602
- inpDateVal = dateEndDate;
603
- }
604
- if (dateStartDate && inpDateVal < dateStartDate) {
605
- inpDateVal = dateStartDate;
606
- }
607
- let isChange = false;
608
- const firstDayOfWeek = computeFirstDayOfWeek.value;
609
- if (type === "datetime") {
610
- const dateValue = computeDateValue.value;
611
- if (inpVal !== XEUtils.toDateString(dateValue, dateLabelFormat) || inpVal !== XEUtils.toDateString(inpDateVal, dateLabelFormat)) {
612
- isChange = true;
613
- if (datetimePanelValue) {
614
- datetimePanelValue.setHours(inpDateVal.getHours());
615
- datetimePanelValue.setMinutes(inpDateVal.getMinutes());
616
- datetimePanelValue.setSeconds(inpDateVal.getSeconds());
617
- }
543
+ return list;
544
+ });
545
+ const refMaps = {
546
+ refElem
547
+ };
548
+ const computeMaps = {
549
+ computeSize,
550
+ computeYearList
551
+ };
552
+ const $xeDatePanel = {
553
+ xID,
554
+ props,
555
+ context,
556
+ reactData,
557
+ internalData,
558
+ getRefMaps: () => refMaps,
559
+ getComputeMaps: () => computeMaps
560
+ };
561
+ const updateModelValue = (modelValue) => {
562
+ const { type } = props;
563
+ const dateValueFormat = computeDateValueFormat.value;
564
+ const inpDate = parseDateValue(modelValue, type, { valueFormat: dateValueFormat });
565
+ reactData.inputValue = inpDate;
566
+ reactData.inputLabel = inpDate;
567
+ dateOpenPanel();
568
+ };
569
+ const parseDate = (value, format) => {
570
+ const { type, multiple } = props;
571
+ if (type === "time") {
572
+ return toStringTimeDate(XEUtils.isArray(value) ? XEUtils.last(value) : value);
573
+ }
574
+ if (XEUtils.isArray(value)) {
575
+ return XEUtils.toStringDate(XEUtils.last(value), format);
576
+ }
577
+ if (XEUtils.isString(value)) {
578
+ return XEUtils.toStringDate(multiple ? XEUtils.last(value.split(",")) : value, format);
579
+ }
580
+ return XEUtils.toStringDate(value, format);
581
+ };
582
+ const dateRevert = () => {
583
+ const label = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
584
+ reactData.inputLabel = label;
585
+ dispatchEvent("revert", { label }, null);
586
+ };
587
+ const afterCheckValue = (inpVal) => {
588
+ const { type } = props;
589
+ const { inputLabel, datetimePanelValue } = reactData;
590
+ const dateLabelFormat = computeDateLabelFormat.value;
591
+ const dateStartDate = computeDateStartDate.value;
592
+ const dateEndDate = computeDateEndDate.value;
593
+ if (inpVal) {
594
+ let inpDateVal = parseDate(inpVal, dateLabelFormat);
595
+ if (XEUtils.isValidDate(inpDateVal)) {
596
+ if (type === "time") {
597
+ inpDateVal = XEUtils.toDateString(inpDateVal, dateLabelFormat);
598
+ if (inputLabel !== inpDateVal) {
599
+ handleChange(inpDateVal, { type: "check" });
618
600
  }
601
+ reactData.inputLabel = inpDateVal;
619
602
  } else {
620
- isChange = true;
621
- }
622
- reactData.inputLabel = XEUtils.toDateString(inpDateVal, dateLabelFormat, { firstDay: firstDayOfWeek });
623
- if (isChange) {
624
- dateChange(inpDateVal);
603
+ if (dateEndDate && inpDateVal > dateEndDate) {
604
+ inpDateVal = dateEndDate;
605
+ }
606
+ if (dateStartDate && inpDateVal < dateStartDate) {
607
+ inpDateVal = dateStartDate;
608
+ }
609
+ let isChange = false;
610
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
611
+ if (type === "datetime") {
612
+ const dateValue = computeDateValue.value;
613
+ if (inpVal !== XEUtils.toDateString(dateValue, dateLabelFormat) || inpVal !== XEUtils.toDateString(inpDateVal, dateLabelFormat)) {
614
+ isChange = true;
615
+ if (datetimePanelValue) {
616
+ datetimePanelValue.setHours(inpDateVal.getHours());
617
+ datetimePanelValue.setMinutes(inpDateVal.getMinutes());
618
+ datetimePanelValue.setSeconds(inpDateVal.getSeconds());
619
+ }
620
+ }
621
+ } else {
622
+ isChange = true;
623
+ }
624
+ reactData.inputLabel = XEUtils.toDateString(inpDateVal, dateLabelFormat, { firstDay: firstDayOfWeek });
625
+ if (isChange) {
626
+ dateChange(inpDateVal);
627
+ }
625
628
  }
629
+ } else {
630
+ dateRevert();
626
631
  }
627
632
  } else {
628
- dateRevert();
633
+ handleChange("", { type: "check" });
629
634
  }
630
- } else {
631
- handleChange("", { type: "check" });
632
- }
633
- };
634
- const emitModel = (value) => {
635
- reactData.inputValue = value;
636
- emit("update:modelValue", value);
637
- };
638
- const handleChange = (value, evnt, params) => {
639
- const { type, modelValue, valueFormat } = props;
640
- const dateValueFormat = computeDateValueFormat.value;
641
- reactData.inputLabel = value;
642
- if (hasTimestampValueType(valueFormat)) {
643
- const dateVal = parseDateValue(value, type, { valueFormat: dateValueFormat });
644
- const timeNum = dateVal ? dateVal.getTime() : null;
645
- emitModel(timeNum);
646
- if (modelValue !== timeNum) {
647
- dispatchEvent("change", { value: timeNum, currValue: params ? params.currValue : "" }, evnt);
635
+ };
636
+ const emitModel = (value) => {
637
+ reactData.inputValue = value;
638
+ emit("update:modelValue", value);
639
+ };
640
+ const handleChange = (value, evnt, params) => {
641
+ const { type, modelValue, valueFormat } = props;
642
+ const dateValueFormat = computeDateValueFormat.value;
643
+ reactData.inputLabel = value;
644
+ if (hasTimestampValueType(valueFormat)) {
645
+ const dateVal = parseDateValue(value, type, { valueFormat: dateValueFormat });
646
+ const timeNum = dateVal ? dateVal.getTime() : null;
647
+ emitModel(timeNum);
648
+ if (modelValue !== timeNum) {
649
+ dispatchEvent("change", { value: timeNum, currValue: params ? params.currValue : "" }, evnt);
650
+ }
651
+ } else if (hasDateValueType(valueFormat)) {
652
+ const dateVal = parseDateValue(value, type, { valueFormat: dateValueFormat });
653
+ emitModel(dateVal);
654
+ if (modelValue && dateVal ? XEUtils.toStringDate(modelValue).getTime() !== dateVal.getTime() : modelValue !== dateVal) {
655
+ dispatchEvent("change", { value: dateVal, currValue: params ? params.currValue : "" }, evnt);
656
+ }
657
+ } else {
658
+ emitModel(value);
659
+ if (XEUtils.toValueString(modelValue) !== value) {
660
+ dispatchEvent("change", { value, currValue: params ? params.currValue : "" }, evnt);
661
+ }
662
+ }
663
+ };
664
+ const hidePanel = () => {
665
+ return new Promise((resolve) => {
666
+ reactData.visiblePanel = false;
667
+ internalData.hpTimeout = setTimeout(() => {
668
+ reactData.isAniVisible = false;
669
+ resolve();
670
+ }, 350);
671
+ });
672
+ };
673
+ const dateParseValue = (val) => {
674
+ const { type } = props;
675
+ const dateLabelFormat = computeDateLabelFormat.value;
676
+ const dateValueFormat = computeDateValueFormat.value;
677
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
678
+ const dateObj = parseDateObj(val, type, {
679
+ valueFormat: dateValueFormat,
680
+ labelFormat: dateLabelFormat,
681
+ firstDay: firstDayOfWeek
682
+ });
683
+ reactData.datePanelValue = dateObj.value;
684
+ reactData.datePanelLabel = dateObj.label;
685
+ };
686
+ const changeValue = () => {
687
+ const isDatePanelType = computeIsDatePanelType.value;
688
+ const { inputLabel } = reactData;
689
+ if (isDatePanelType) {
690
+ dateParseValue(inputLabel);
691
+ reactData.inputLabel = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
648
692
  }
649
- } else if (hasDateValueType(valueFormat)) {
650
- const dateVal = parseDateValue(value, type, { valueFormat: dateValueFormat });
651
- emitModel(dateVal);
652
- if (modelValue && dateVal ? XEUtils.toStringDate(modelValue).getTime() !== dateVal.getTime() : modelValue !== dateVal) {
653
- dispatchEvent("change", { value: dateVal, currValue: params ? params.currValue : "" }, evnt);
693
+ };
694
+ const initValue = () => {
695
+ const { modelValue } = props;
696
+ const isDatePanelType = computeIsDatePanelType.value;
697
+ updateModelValue(modelValue);
698
+ if (isDatePanelType) {
699
+ changeValue();
654
700
  }
655
- } else {
656
- emitModel(value);
657
- if (XEUtils.toValueString(modelValue) !== value) {
658
- dispatchEvent("change", { value, currValue: params ? params.currValue : "" }, evnt);
701
+ };
702
+ const dateCheckMonth = (date) => {
703
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
704
+ const weekNum = XEUtils.getYearWeek(date, firstDayOfWeek);
705
+ const weekStartDate = XEUtils.getWhatWeek(date, 0, firstDayOfWeek, firstDayOfWeek);
706
+ const month = XEUtils.getWhatMonth(weekNum === 1 ? XEUtils.getWhatDay(weekStartDate, 6) : date, 0, "first");
707
+ if (!XEUtils.isEqual(month, reactData.selectMonth)) {
708
+ reactData.selectMonth = month;
659
709
  }
660
- }
661
- };
662
- const hidePanel = () => {
663
- return new Promise((resolve) => {
664
- reactData.visiblePanel = false;
665
- internalData.hpTimeout = setTimeout(() => {
666
- reactData.isAniVisible = false;
667
- resolve();
668
- }, 350);
669
- });
670
- };
671
- const dateParseValue = (val) => {
672
- const { type } = props;
673
- const dateLabelFormat = computeDateLabelFormat.value;
674
- const dateValueFormat = computeDateValueFormat.value;
675
- const firstDayOfWeek = computeFirstDayOfWeek.value;
676
- const dateObj = parseDateObj(val, type, {
677
- valueFormat: dateValueFormat,
678
- labelFormat: dateLabelFormat,
679
- firstDay: firstDayOfWeek
680
- });
681
- reactData.datePanelValue = dateObj.value;
682
- reactData.datePanelLabel = dateObj.label;
683
- };
684
- const changeValue = () => {
685
- const isDatePanelType = computeIsDatePanelType.value;
686
- const { inputLabel } = reactData;
687
- if (isDatePanelType) {
688
- dateParseValue(inputLabel);
689
- reactData.inputLabel = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
690
- }
691
- };
692
- const initValue = () => {
693
- const { modelValue } = props;
694
- const isDatePanelType = computeIsDatePanelType.value;
695
- updateModelValue(modelValue);
696
- if (isDatePanelType) {
697
- changeValue();
698
- }
699
- };
700
- const dateCheckMonth = (date) => {
701
- const firstDayOfWeek = computeFirstDayOfWeek.value;
702
- const weekNum = XEUtils.getYearWeek(date, firstDayOfWeek);
703
- const weekStartDate = XEUtils.getWhatWeek(date, 0, firstDayOfWeek, firstDayOfWeek);
704
- const month = XEUtils.getWhatMonth(weekNum === 1 ? XEUtils.getWhatDay(weekStartDate, 6) : date, 0, "first");
705
- if (!XEUtils.isEqual(month, reactData.selectMonth)) {
706
- reactData.selectMonth = month;
707
- }
708
- };
709
- const dateChange = (date, isReload) => {
710
- const { modelValue, multiple, valueSort } = props;
711
- const { datetimePanelValue } = reactData;
712
- const isTimeType = computeIsTimeType.value;
713
- const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
714
- const dateValueFormat = computeDateValueFormat.value;
715
- const firstDayOfWeek = computeFirstDayOfWeek.value;
716
- if (props.type === "week") {
717
- const sWeek = XEUtils.toNumber(props.selectDay);
718
- date = XEUtils.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
719
- } else if (isTimeOrDateTimeType) {
720
- if (datetimePanelValue) {
721
- date.setHours(datetimePanelValue.getHours());
722
- date.setMinutes(datetimePanelValue.getMinutes());
723
- date.setSeconds(datetimePanelValue.getSeconds());
710
+ };
711
+ const dateChange = (date, isReload) => {
712
+ const { modelValue, multiple, valueSort } = props;
713
+ const { datetimePanelValue } = reactData;
714
+ const isTimeType = computeIsTimeType.value;
715
+ const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
716
+ const dateValueFormat = computeDateValueFormat.value;
717
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
718
+ if (props.type === "week") {
719
+ const sWeek = XEUtils.toNumber(props.selectDay);
720
+ date = XEUtils.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
721
+ } else if (isTimeOrDateTimeType) {
722
+ if (datetimePanelValue) {
723
+ date.setHours(datetimePanelValue.getHours());
724
+ date.setMinutes(datetimePanelValue.getMinutes());
725
+ date.setSeconds(datetimePanelValue.getSeconds());
726
+ }
724
727
  }
725
- }
726
- const inpVal = XEUtils.toDateString(date, dateValueFormat, { firstDay: firstDayOfWeek });
727
- dateCheckMonth(date);
728
- if (!isTimeType && multiple) {
729
- const overCount = computeOverCount.value;
730
- if (isTimeOrDateTimeType) {
731
- const dateListValue = isReload ? [] : [...computeDateListValue.value];
732
- let datetimeRest = [];
733
- const eqIndex = XEUtils.findIndexOf(dateListValue, (val) => XEUtils.isDateSame(date, val, "yyyyMMdd"));
734
- if (eqIndex === -1) {
735
- if (overCount) {
736
- return;
728
+ const inpVal = XEUtils.toDateString(date, dateValueFormat, { firstDay: firstDayOfWeek });
729
+ dateCheckMonth(date);
730
+ if (!isTimeType && multiple) {
731
+ const overCount = computeOverCount.value;
732
+ if (isTimeOrDateTimeType) {
733
+ const dateListValue = isReload ? [] : [...computeDateListValue.value];
734
+ let datetimeRest = [];
735
+ const eqIndex = XEUtils.findIndexOf(dateListValue, (val) => XEUtils.isDateSame(date, val, "yyyyMMdd"));
736
+ if (eqIndex === -1) {
737
+ if (overCount) {
738
+ return;
739
+ }
740
+ dateListValue.push(date);
741
+ } else {
742
+ dateListValue.splice(eqIndex, 1);
737
743
  }
738
- dateListValue.push(date);
739
- } else {
740
- dateListValue.splice(eqIndex, 1);
741
- }
742
- dateListValue.forEach((item) => {
743
- if (item) {
744
- if (datetimePanelValue) {
745
- item.setHours(datetimePanelValue.getHours());
746
- item.setMinutes(datetimePanelValue.getMinutes());
747
- item.setSeconds(datetimePanelValue.getSeconds());
744
+ dateListValue.forEach((item) => {
745
+ if (item) {
746
+ if (datetimePanelValue) {
747
+ item.setHours(datetimePanelValue.getHours());
748
+ item.setMinutes(datetimePanelValue.getMinutes());
749
+ item.setSeconds(datetimePanelValue.getSeconds());
750
+ }
751
+ datetimeRest.push(item);
748
752
  }
749
- datetimeRest.push(item);
753
+ });
754
+ if (valueSort) {
755
+ datetimeRest = datetimeRest.sort((a, b) => a.getTime() - b.getTime());
750
756
  }
751
- });
752
- if (valueSort) {
753
- datetimeRest = datetimeRest.sort((a, b) => a.getTime() - b.getTime());
754
- }
755
- handleChange(datetimeRest.map((date2) => XEUtils.toDateString(date2, dateValueFormat)).join(","), { type: "update" }, { currValue: inpVal });
756
- } else {
757
- const dateMultipleValue = isReload ? [] : computeDateMultipleValue.value;
758
- let dateRest = [];
759
- if (dateMultipleValue.some((val) => XEUtils.isEqual(val, inpVal))) {
760
- dateRest = dateMultipleValue.filter((val) => !XEUtils.isEqual(val, inpVal));
757
+ handleChange(datetimeRest.map((date2) => XEUtils.toDateString(date2, dateValueFormat)).join(","), { type: "update" }, { currValue: inpVal });
761
758
  } else {
762
- if (overCount) {
763
- return;
759
+ const dateMultipleValue = isReload ? [] : computeDateMultipleValue.value;
760
+ let dateRest = [];
761
+ if (dateMultipleValue.some((val) => XEUtils.isEqual(val, inpVal))) {
762
+ dateRest = dateMultipleValue.filter((val) => !XEUtils.isEqual(val, inpVal));
763
+ } else {
764
+ if (overCount) {
765
+ return;
766
+ }
767
+ dateRest = dateMultipleValue.concat([inpVal]);
768
+ }
769
+ if (valueSort) {
770
+ dateRest = dateRest.sort();
764
771
  }
765
- dateRest = dateMultipleValue.concat([inpVal]);
772
+ handleChange(dateRest.join(","), { type: "update" }, { currValue: inpVal });
766
773
  }
767
- if (valueSort) {
768
- dateRest = dateRest.sort();
774
+ } else {
775
+ if (!XEUtils.isEqual(modelValue, inpVal)) {
776
+ handleChange(inpVal, { type: "update" }, { currValue: inpVal });
769
777
  }
770
- handleChange(dateRest.join(","), { type: "update" }, { currValue: inpVal });
771
778
  }
772
- } else {
773
- if (!XEUtils.isEqual(modelValue, inpVal)) {
774
- handleChange(inpVal, { type: "update" }, { currValue: inpVal });
779
+ };
780
+ const dateMonthHandle = (date, offsetMonth) => {
781
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
782
+ const weekNum = XEUtils.getYearWeek(date, firstDayOfWeek);
783
+ const weekStartDate = XEUtils.getWhatWeek(date, 0, firstDayOfWeek, firstDayOfWeek);
784
+ const month = XEUtils.getWhatMonth(weekNum === 1 ? XEUtils.getWhatDay(weekStartDate, 6) : date, offsetMonth, "first");
785
+ reactData.selectMonth = month;
786
+ };
787
+ const dateNowHandle = () => {
788
+ const { type } = props;
789
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
790
+ let currentDate = /* @__PURE__ */ new Date();
791
+ switch (type) {
792
+ case "week":
793
+ currentDate = XEUtils.getWhatWeek(currentDate, 0, firstDayOfWeek);
794
+ break;
795
+ case "datetime":
796
+ currentDate = /* @__PURE__ */ new Date();
797
+ reactData.datetimePanelValue = /* @__PURE__ */ new Date();
798
+ break;
799
+ default:
800
+ currentDate = XEUtils.getWhatDay(Date.now(), 0, "first");
801
+ break;
775
802
  }
776
- }
777
- };
778
- const dateMonthHandle = (date, offsetMonth) => {
779
- const firstDayOfWeek = computeFirstDayOfWeek.value;
780
- const weekNum = XEUtils.getYearWeek(date, firstDayOfWeek);
781
- const weekStartDate = XEUtils.getWhatWeek(date, 0, firstDayOfWeek, firstDayOfWeek);
782
- const month = XEUtils.getWhatMonth(weekNum === 1 ? XEUtils.getWhatDay(weekStartDate, 6) : date, offsetMonth, "first");
783
- reactData.selectMonth = month;
784
- };
785
- const dateNowHandle = () => {
786
- const { type } = props;
787
- const firstDayOfWeek = computeFirstDayOfWeek.value;
788
- let currentDate = /* @__PURE__ */ new Date();
789
- switch (type) {
790
- case "week":
791
- currentDate = XEUtils.getWhatWeek(currentDate, 0, firstDayOfWeek);
792
- break;
793
- case "datetime":
794
- currentDate = /* @__PURE__ */ new Date();
795
- reactData.datetimePanelValue = /* @__PURE__ */ new Date();
796
- break;
797
- default:
798
- currentDate = XEUtils.getWhatDay(Date.now(), 0, "first");
799
- break;
800
- }
801
- reactData.currentDate = currentDate;
802
- dateMonthHandle(currentDate, 0);
803
- };
804
- const dateToggleYearTypeEvent = () => {
805
- reactData.datePanelType = "year";
806
- };
807
- const dateToggleMonthTypeEvent = () => {
808
- let { datePanelType } = reactData;
809
- if (datePanelType === "month" || datePanelType === "quarter") {
810
- datePanelType = "year";
811
- } else {
812
- datePanelType = "month";
813
- }
814
- reactData.datePanelType = datePanelType;
815
- };
816
- const datePrevEvent = (evnt) => {
817
- const { type } = props;
818
- const { datePanelType, selectMonth, inputLabel } = reactData;
819
- const { yearSize } = internalData;
820
- const value = inputLabel;
821
- const isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value;
822
- if (!isDisabledPrevDateBtn) {
823
- let viewDate;
824
- if (type === "year") {
825
- viewDate = XEUtils.getWhatYear(selectMonth, -yearSize, "first");
826
- } else if (type === "month" || type === "quarter") {
827
- if (datePanelType === "year") {
828
- viewDate = XEUtils.getWhatYear(selectMonth, -yearSize, "first");
829
- } else {
830
- viewDate = XEUtils.getWhatYear(selectMonth, -1, "first");
831
- }
803
+ reactData.currentDate = currentDate;
804
+ dateMonthHandle(currentDate, 0);
805
+ };
806
+ const dateToggleYearTypeEvent = () => {
807
+ reactData.datePanelType = "year";
808
+ };
809
+ const dateToggleMonthTypeEvent = () => {
810
+ let { datePanelType } = reactData;
811
+ if (datePanelType === "month" || datePanelType === "quarter") {
812
+ datePanelType = "year";
832
813
  } else {
833
- if (datePanelType === "year") {
814
+ datePanelType = "month";
815
+ }
816
+ reactData.datePanelType = datePanelType;
817
+ };
818
+ const datePrevEvent = (evnt) => {
819
+ const { type } = props;
820
+ const { datePanelType, selectMonth, inputLabel } = reactData;
821
+ const { yearSize } = internalData;
822
+ const value = inputLabel;
823
+ const isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value;
824
+ if (!isDisabledPrevDateBtn) {
825
+ let viewDate;
826
+ if (type === "year") {
834
827
  viewDate = XEUtils.getWhatYear(selectMonth, -yearSize, "first");
835
- } else if (datePanelType === "month") {
836
- viewDate = XEUtils.getWhatYear(selectMonth, -1, "first");
828
+ } else if (type === "month" || type === "quarter") {
829
+ if (datePanelType === "year") {
830
+ viewDate = XEUtils.getWhatYear(selectMonth, -yearSize, "first");
831
+ } else {
832
+ viewDate = XEUtils.getWhatYear(selectMonth, -1, "first");
833
+ }
837
834
  } else {
838
- viewDate = XEUtils.getWhatMonth(selectMonth, -1, "first");
835
+ if (datePanelType === "year") {
836
+ viewDate = XEUtils.getWhatYear(selectMonth, -yearSize, "first");
837
+ } else if (datePanelType === "month") {
838
+ viewDate = XEUtils.getWhatYear(selectMonth, -1, "first");
839
+ } else {
840
+ viewDate = XEUtils.getWhatMonth(selectMonth, -1, "first");
841
+ }
839
842
  }
843
+ reactData.selectMonth = viewDate;
844
+ dispatchEvent("date-prev", { viewType: datePanelType, viewDate, value, type }, evnt);
840
845
  }
841
- reactData.selectMonth = viewDate;
842
- dispatchEvent("date-prev", { viewType: datePanelType, viewDate, value, type }, evnt);
843
- }
844
- };
845
- const dateTodayMonthEvent = (evnt) => {
846
- dateNowHandle();
847
- dateChange(reactData.currentDate, true);
848
- if (!props.multiple) {
849
- hidePanel();
850
- }
851
- dispatchEvent("date-today", { viewType: reactData.datePanelType, type: props.type, viewDate: reactData.selectMonth }, evnt);
852
- };
853
- const dateNextEvent = (evnt) => {
854
- const { type } = props;
855
- const { datePanelType, selectMonth, inputLabel } = reactData;
856
- const { yearSize } = internalData;
857
- const value = inputLabel;
858
- const isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value;
859
- if (!isDisabledNextDateBtn) {
860
- let viewDate;
861
- if (type === "year") {
862
- viewDate = XEUtils.getWhatYear(selectMonth, yearSize, "first");
863
- } else if (type === "month" || type === "quarter") {
864
- if (datePanelType === "year") {
846
+ };
847
+ const dateTodayMonthEvent = (evnt) => {
848
+ dateNowHandle();
849
+ dateChange(reactData.currentDate, true);
850
+ if (!props.multiple) {
851
+ hidePanel();
852
+ }
853
+ dispatchEvent("date-today", { viewType: reactData.datePanelType, type: props.type, viewDate: reactData.selectMonth }, evnt);
854
+ };
855
+ const dateNextEvent = (evnt) => {
856
+ const { type } = props;
857
+ const { datePanelType, selectMonth, inputLabel } = reactData;
858
+ const { yearSize } = internalData;
859
+ const value = inputLabel;
860
+ const isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value;
861
+ if (!isDisabledNextDateBtn) {
862
+ let viewDate;
863
+ if (type === "year") {
865
864
  viewDate = XEUtils.getWhatYear(selectMonth, yearSize, "first");
865
+ } else if (type === "month" || type === "quarter") {
866
+ if (datePanelType === "year") {
867
+ viewDate = XEUtils.getWhatYear(selectMonth, yearSize, "first");
868
+ } else {
869
+ viewDate = XEUtils.getWhatYear(selectMonth, 1, "first");
870
+ }
866
871
  } else {
867
- viewDate = XEUtils.getWhatYear(selectMonth, 1, "first");
868
- }
869
- } else {
870
- if (datePanelType === "year") {
871
- viewDate = XEUtils.getWhatYear(selectMonth, yearSize, "first");
872
- } else if (datePanelType === "month") {
873
- viewDate = XEUtils.getWhatYear(selectMonth, 1, "first");
874
- } else {
875
- viewDate = XEUtils.getWhatMonth(selectMonth, 1, "first");
872
+ if (datePanelType === "year") {
873
+ viewDate = XEUtils.getWhatYear(selectMonth, yearSize, "first");
874
+ } else if (datePanelType === "month") {
875
+ viewDate = XEUtils.getWhatYear(selectMonth, 1, "first");
876
+ } else {
877
+ viewDate = XEUtils.getWhatMonth(selectMonth, 1, "first");
878
+ }
876
879
  }
880
+ reactData.selectMonth = viewDate;
881
+ dispatchEvent("date-next", { viewType: datePanelType, value, type, viewDate }, evnt);
877
882
  }
878
- reactData.selectMonth = viewDate;
879
- dispatchEvent("date-next", { viewType: datePanelType, value, type, viewDate }, evnt);
880
- }
881
- };
882
- const isRangeDisabled = (item) => {
883
- const dateStartTime = computeDateStartDate.value;
884
- const dateEndTime = computeDateEndDate.value;
885
- const { date } = item;
886
- if (dateStartTime && dateStartTime.getTime() > date.getTime()) {
887
- return true;
888
- }
889
- if (dateEndTime && dateEndTime.getTime() < date.getTime()) {
890
- return true;
891
- }
892
- return false;
893
- };
894
- const isDateDisabled = (item) => {
895
- const disbMethod = props.disabledMethod || defaultFuncProps.disabledMethod;
896
- const { datePanelType } = reactData;
897
- const { date } = item;
898
- if (disbMethod) {
899
- return disbMethod({ type: datePanelType, viewType: datePanelType, date, $datePanel: $xeDatePanel });
900
- }
901
- return false;
902
- };
903
- const hasAllDisabled = (item) => {
904
- return isRangeDisabled(item) || isDateDisabled(item);
905
- };
906
- const dateSelectItem = (date) => {
907
- const { type, multiple } = props;
908
- const { datePanelType } = reactData;
909
- if (type === "month") {
910
- if (datePanelType === "year") {
911
- reactData.datePanelType = "month";
912
- dateCheckMonth(date);
913
- } else {
914
- dateChange(date);
915
- if (!multiple) {
916
- hidePanel();
917
- }
883
+ };
884
+ const isRangeDisabled = (item) => {
885
+ const dateStartTime = computeDateStartDate.value;
886
+ const dateEndTime = computeDateEndDate.value;
887
+ const { date } = item;
888
+ if (dateStartTime && dateStartTime.getTime() > date.getTime()) {
889
+ return true;
918
890
  }
919
- } else if (type === "year") {
920
- dateChange(date);
921
- if (!multiple) {
922
- hidePanel();
891
+ if (dateEndTime && dateEndTime.getTime() < date.getTime()) {
892
+ return true;
923
893
  }
924
- } else if (type === "quarter") {
925
- if (datePanelType === "year") {
926
- reactData.datePanelType = "quarter";
927
- dateCheckMonth(date);
928
- } else {
894
+ return false;
895
+ };
896
+ const isDateDisabled = (item) => {
897
+ const disbMethod = props.disabledMethod || defaultFuncProps.disabledMethod;
898
+ const { datePanelType } = reactData;
899
+ const { date } = item;
900
+ if (disbMethod) {
901
+ return disbMethod({ type: datePanelType, viewType: datePanelType, date, $datePanel: $xeDatePanel });
902
+ }
903
+ return false;
904
+ };
905
+ const hasAllDisabled = (item) => {
906
+ return isRangeDisabled(item) || isDateDisabled(item);
907
+ };
908
+ const dateSelectItem = (date) => {
909
+ const { type, multiple } = props;
910
+ const { datePanelType } = reactData;
911
+ if (type === "month") {
912
+ if (datePanelType === "year") {
913
+ reactData.datePanelType = "month";
914
+ dateCheckMonth(date);
915
+ } else {
916
+ dateChange(date);
917
+ if (!multiple) {
918
+ hidePanel();
919
+ }
920
+ }
921
+ } else if (type === "year") {
929
922
  dateChange(date);
930
923
  if (!multiple) {
931
924
  hidePanel();
932
925
  }
933
- }
934
- } else {
935
- if (datePanelType === "month") {
936
- reactData.datePanelType = type === "week" ? type : "day";
937
- dateCheckMonth(date);
938
- } else if (datePanelType === "year") {
939
- reactData.datePanelType = "month";
940
- dateCheckMonth(date);
941
- } else {
942
- dateChange(date);
943
- if (type === "datetime") {
926
+ } else if (type === "quarter") {
927
+ if (datePanelType === "year") {
928
+ reactData.datePanelType = "quarter";
929
+ dateCheckMonth(date);
944
930
  } else {
931
+ dateChange(date);
945
932
  if (!multiple) {
946
933
  hidePanel();
947
934
  }
948
935
  }
936
+ } else {
937
+ if (datePanelType === "month") {
938
+ reactData.datePanelType = type === "week" ? type : "day";
939
+ dateCheckMonth(date);
940
+ } else if (datePanelType === "year") {
941
+ reactData.datePanelType = "month";
942
+ dateCheckMonth(date);
943
+ } else {
944
+ dateChange(date);
945
+ if (type === "datetime") {
946
+ } else {
947
+ if (!multiple) {
948
+ hidePanel();
949
+ }
950
+ }
951
+ }
949
952
  }
950
- }
951
- };
952
- const dateSelectEvent = (item) => {
953
- if (!hasAllDisabled(item)) {
954
- dateSelectItem(item.date);
955
- }
956
- };
957
- const dateMoveDay = (offsetDay) => {
958
- if (!hasAllDisabled({ date: offsetDay })) {
959
- const dayList = computeDayList.value;
960
- if (!dayList.some((item) => XEUtils.isDateSame(item.date, offsetDay, "yyyyMMdd"))) {
961
- dateCheckMonth(offsetDay);
953
+ };
954
+ const dateSelectEvent = (item) => {
955
+ if (!hasAllDisabled(item)) {
956
+ dateSelectItem(item.date);
962
957
  }
963
- dateParseValue(offsetDay);
964
- }
965
- };
966
- const dateMoveYear = (offsetYear) => {
967
- if (!hasAllDisabled({ date: offsetYear })) {
968
- const yearList = computeYearList.value;
969
- if (!yearList.some((item) => XEUtils.isDateSame(item.date, offsetYear, "yyyy"))) {
970
- dateCheckMonth(offsetYear);
958
+ };
959
+ const dateMoveDay = (offsetDay) => {
960
+ if (!hasAllDisabled({ date: offsetDay })) {
961
+ const dayList = computeDayList.value;
962
+ if (!dayList.some((item) => XEUtils.isDateSame(item.date, offsetDay, "yyyyMMdd"))) {
963
+ dateCheckMonth(offsetDay);
964
+ }
965
+ dateParseValue(offsetDay);
971
966
  }
972
- dateParseValue(offsetYear);
973
- }
974
- };
975
- const dateMoveQuarter = (offsetQuarter) => {
976
- if (!hasAllDisabled({ date: offsetQuarter })) {
977
- const quarterList = computeQuarterList.value;
978
- if (!quarterList.some((item) => XEUtils.isDateSame(item.date, offsetQuarter, "yyyyq"))) {
979
- dateCheckMonth(offsetQuarter);
967
+ };
968
+ const dateMoveYear = (offsetYear) => {
969
+ if (!hasAllDisabled({ date: offsetYear })) {
970
+ const yearList = computeYearList.value;
971
+ if (!yearList.some((item) => XEUtils.isDateSame(item.date, offsetYear, "yyyy"))) {
972
+ dateCheckMonth(offsetYear);
973
+ }
974
+ dateParseValue(offsetYear);
980
975
  }
981
- dateParseValue(offsetQuarter);
982
- }
983
- };
984
- const dateMoveMonth = (offsetMonth) => {
985
- if (!hasAllDisabled({ date: offsetMonth })) {
986
- const monthList = computeMonthList.value;
987
- if (!monthList.some((item) => XEUtils.isDateSame(item.date, offsetMonth, "yyyyMM"))) {
988
- dateCheckMonth(offsetMonth);
976
+ };
977
+ const dateMoveQuarter = (offsetQuarter) => {
978
+ if (!hasAllDisabled({ date: offsetQuarter })) {
979
+ const quarterList = computeQuarterList.value;
980
+ if (!quarterList.some((item) => XEUtils.isDateSame(item.date, offsetQuarter, "yyyyq"))) {
981
+ dateCheckMonth(offsetQuarter);
982
+ }
983
+ dateParseValue(offsetQuarter);
989
984
  }
990
- dateParseValue(offsetMonth);
991
- }
992
- };
993
- const dateMouseenterEvent = (item) => {
994
- if (!hasAllDisabled(item)) {
995
- const { datePanelType } = reactData;
996
- if (datePanelType === "month") {
997
- dateMoveMonth(item.date);
998
- } else if (datePanelType === "quarter") {
999
- dateMoveQuarter(item.date);
1000
- } else if (datePanelType === "year") {
1001
- dateMoveYear(item.date);
1002
- } else {
1003
- dateMoveDay(item.date);
985
+ };
986
+ const dateMoveMonth = (offsetMonth) => {
987
+ if (!hasAllDisabled({ date: offsetMonth })) {
988
+ const monthList = computeMonthList.value;
989
+ if (!monthList.some((item) => XEUtils.isDateSame(item.date, offsetMonth, "yyyyMM"))) {
990
+ dateCheckMonth(offsetMonth);
991
+ }
992
+ dateParseValue(offsetMonth);
1004
993
  }
1005
- }
1006
- };
1007
- const dateMouseleaveEvent = () => {
1008
- reactData.datePanelValue = null;
1009
- };
1010
- const updateTimePos = (liElem) => {
1011
- if (liElem) {
1012
- const height = liElem.offsetHeight;
1013
- const ulElem = liElem.parentNode;
1014
- ulElem.scrollTop = liElem.offsetTop - height * 4;
1015
- }
1016
- };
1017
- const dateTimeChangeEvent = (evnt) => {
1018
- const { datetimePanelValue } = reactData;
1019
- reactData.datetimePanelValue = datetimePanelValue ? new Date(datetimePanelValue.getTime()) : /* @__PURE__ */ new Date();
1020
- updateTimePos(evnt.currentTarget);
1021
- };
1022
- const dateHourEvent = (evnt, item) => {
1023
- const { datetimePanelValue } = reactData;
1024
- if (!item.disabled) {
1025
- if (datetimePanelValue) {
1026
- datetimePanelValue.setHours(item.value);
994
+ };
995
+ const dateMouseenterEvent = (item) => {
996
+ if (!hasAllDisabled(item)) {
997
+ const { datePanelType } = reactData;
998
+ if (datePanelType === "month") {
999
+ dateMoveMonth(item.date);
1000
+ } else if (datePanelType === "quarter") {
1001
+ dateMoveQuarter(item.date);
1002
+ } else if (datePanelType === "year") {
1003
+ dateMoveYear(item.date);
1004
+ } else {
1005
+ dateMoveDay(item.date);
1006
+ }
1027
1007
  }
1028
- dateTimeChangeEvent(evnt);
1029
- }
1030
- };
1031
- const dateConfirmEvent = (evnt) => {
1032
- const { multiple } = props;
1033
- const { datetimePanelValue, currentDate } = reactData;
1034
- const dateValue = computeDateValue.value;
1035
- const isTimeType = computeIsTimeType.value;
1036
- const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
1037
- if (isTimeOrDateTimeType) {
1038
- const dateValueFormat = computeDateValueFormat.value;
1039
- if (!isTimeType && multiple) {
1040
- const dateMultipleValue = computeDateMultipleValue.value;
1041
- const dateListValue = computeDateListValue.value;
1042
- if (isTimeOrDateTimeType) {
1043
- const listVals = dateListValue.length ? [...dateListValue] : [];
1044
- const datetimeRest = [];
1045
- listVals.forEach((item) => {
1046
- if (item) {
1047
- if (datetimePanelValue) {
1048
- item.setHours(datetimePanelValue.getHours());
1049
- item.setMinutes(datetimePanelValue.getMinutes());
1050
- item.setSeconds(datetimePanelValue.getSeconds());
1008
+ };
1009
+ const dateMouseleaveEvent = () => {
1010
+ reactData.datePanelValue = null;
1011
+ };
1012
+ const updateTimePos = (liElem) => {
1013
+ if (liElem) {
1014
+ const height = liElem.offsetHeight;
1015
+ const ulElem = liElem.parentNode;
1016
+ ulElem.scrollTop = liElem.offsetTop - height * 4;
1017
+ }
1018
+ };
1019
+ const dateTimeChangeEvent = (evnt) => {
1020
+ const { datetimePanelValue } = reactData;
1021
+ reactData.datetimePanelValue = datetimePanelValue ? new Date(datetimePanelValue.getTime()) : /* @__PURE__ */ new Date();
1022
+ updateTimePos(evnt.currentTarget);
1023
+ };
1024
+ const dateHourEvent = (evnt, item) => {
1025
+ const { datetimePanelValue } = reactData;
1026
+ if (!item.disabled) {
1027
+ if (datetimePanelValue) {
1028
+ datetimePanelValue.setHours(item.value);
1029
+ }
1030
+ dateTimeChangeEvent(evnt);
1031
+ }
1032
+ };
1033
+ const dateConfirmEvent = (evnt) => {
1034
+ const { multiple } = props;
1035
+ const { datetimePanelValue, currentDate } = reactData;
1036
+ const dateValue = computeDateValue.value;
1037
+ const isTimeType = computeIsTimeType.value;
1038
+ const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
1039
+ if (isTimeOrDateTimeType) {
1040
+ const dateValueFormat = computeDateValueFormat.value;
1041
+ if (!isTimeType && multiple) {
1042
+ const dateMultipleValue = computeDateMultipleValue.value;
1043
+ const dateListValue = computeDateListValue.value;
1044
+ if (isTimeOrDateTimeType) {
1045
+ const listVals = dateListValue.length ? [...dateListValue] : [];
1046
+ const datetimeRest = [];
1047
+ listVals.forEach((item) => {
1048
+ if (item) {
1049
+ if (datetimePanelValue) {
1050
+ item.setHours(datetimePanelValue.getHours());
1051
+ item.setMinutes(datetimePanelValue.getMinutes());
1052
+ item.setSeconds(datetimePanelValue.getSeconds());
1053
+ }
1054
+ datetimeRest.push(item);
1051
1055
  }
1052
- datetimeRest.push(item);
1053
- }
1054
- });
1055
- handleChange(datetimeRest.map((date) => XEUtils.toDateString(date, dateValueFormat)).join(","), { type: "update" });
1056
+ });
1057
+ handleChange(datetimeRest.map((date) => XEUtils.toDateString(date, dateValueFormat)).join(","), { type: "update" });
1058
+ } else {
1059
+ handleChange(dateMultipleValue.join(","), { type: "update" });
1060
+ }
1056
1061
  } else {
1057
- handleChange(dateMultipleValue.join(","), { type: "update" });
1062
+ dateChange(dateValue || currentDate);
1058
1063
  }
1059
- } else {
1060
- dateChange(dateValue || currentDate);
1061
1064
  }
1062
- }
1063
- hidePanel();
1064
- dispatchEvent("confirm", {}, evnt);
1065
- };
1066
- const dateMinuteEvent = (evnt, item) => {
1067
- const { datetimePanelValue } = reactData;
1068
- if (!item.disabled) {
1069
- if (datetimePanelValue) {
1070
- datetimePanelValue.setMinutes(item.value);
1065
+ hidePanel();
1066
+ dispatchEvent("confirm", {}, evnt);
1067
+ };
1068
+ const dateMinuteEvent = (evnt, item) => {
1069
+ const { datetimePanelValue } = reactData;
1070
+ if (!item.disabled) {
1071
+ if (datetimePanelValue) {
1072
+ datetimePanelValue.setMinutes(item.value);
1073
+ }
1074
+ dateTimeChangeEvent(evnt);
1071
1075
  }
1072
- dateTimeChangeEvent(evnt);
1073
- }
1074
- };
1075
- const dateSecondEvent = (evnt, item) => {
1076
- const { datetimePanelValue } = reactData;
1077
- if (!item.disabled) {
1078
- if (datetimePanelValue) {
1079
- datetimePanelValue.setSeconds(item.value);
1076
+ };
1077
+ const dateSecondEvent = (evnt, item) => {
1078
+ const { datetimePanelValue } = reactData;
1079
+ if (!item.disabled) {
1080
+ if (datetimePanelValue) {
1081
+ datetimePanelValue.setSeconds(item.value);
1082
+ }
1083
+ dateTimeChangeEvent(evnt);
1080
1084
  }
1081
- dateTimeChangeEvent(evnt);
1082
- }
1083
- };
1084
- const dateOpenPanel = () => {
1085
- const { type, defaultDate, defaultTime } = props;
1086
- const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
1087
- const dateValue = computeDateValue.value;
1088
- if (["year", "quarter", "month", "week"].indexOf(type) > -1) {
1089
- reactData.datePanelType = type;
1090
- } else {
1091
- reactData.datePanelType = "day";
1092
- }
1093
- reactData.currentDate = XEUtils.getWhatDay(Date.now(), 0, "first");
1094
- if (dateValue) {
1095
- dateMonthHandle(dateValue, 0);
1096
- dateParseValue(dateValue);
1097
- } else {
1098
- if (defaultDate) {
1099
- const defDate = parseDate(defaultDate, "yyyy-MM-dd");
1100
- if (XEUtils.isValidDate(defDate)) {
1101
- dateMonthHandle(defDate, 0);
1085
+ };
1086
+ const dateOpenPanel = () => {
1087
+ const { type, defaultDate, defaultTime } = props;
1088
+ const isTimeOrDateTimeType = computeIsTimeOrDateTimeType.value;
1089
+ const dateValue = computeDateValue.value;
1090
+ if (["year", "quarter", "month", "week"].indexOf(type) > -1) {
1091
+ reactData.datePanelType = type;
1092
+ } else {
1093
+ reactData.datePanelType = "day";
1094
+ }
1095
+ reactData.currentDate = XEUtils.getWhatDay(Date.now(), 0, "first");
1096
+ if (dateValue) {
1097
+ dateMonthHandle(dateValue, 0);
1098
+ dateParseValue(dateValue);
1099
+ } else {
1100
+ if (defaultDate) {
1101
+ const defDate = parseDate(defaultDate, "yyyy-MM-dd");
1102
+ if (XEUtils.isValidDate(defDate)) {
1103
+ dateMonthHandle(defDate, 0);
1104
+ } else {
1105
+ dateNowHandle();
1106
+ }
1102
1107
  } else {
1103
1108
  dateNowHandle();
1104
1109
  }
1105
- } else {
1106
- dateNowHandle();
1107
1110
  }
1108
- }
1109
- if (isTimeOrDateTimeType) {
1110
- let dtPanelValue = reactData.datePanelValue;
1111
- if (!dtPanelValue) {
1112
- dtPanelValue = XEUtils.getWhatDay(Date.now(), 0, "first");
1113
- if (defaultTime) {
1114
- const defTime = toStringTimeDate(defaultTime);
1115
- if (XEUtils.isValidDate(defTime)) {
1116
- dtPanelValue.setHours(defTime.getHours());
1117
- dtPanelValue.setMinutes(defTime.getMinutes());
1118
- dtPanelValue.setSeconds(defTime.getSeconds());
1111
+ if (isTimeOrDateTimeType) {
1112
+ let dtPanelValue = reactData.datePanelValue;
1113
+ if (!dtPanelValue) {
1114
+ dtPanelValue = XEUtils.getWhatDay(Date.now(), 0, "first");
1115
+ if (defaultTime) {
1116
+ const defTime = toStringTimeDate(defaultTime);
1117
+ if (XEUtils.isValidDate(defTime)) {
1118
+ dtPanelValue.setHours(defTime.getHours());
1119
+ dtPanelValue.setMinutes(defTime.getMinutes());
1120
+ dtPanelValue.setSeconds(defTime.getSeconds());
1121
+ }
1119
1122
  }
1120
1123
  }
1121
- }
1122
- reactData.datetimePanelValue = dtPanelValue;
1123
- nextTick(() => {
1124
- const timeBodyElem = refInputTimeBody.value;
1125
- XEUtils.arrayEach(timeBodyElem.querySelectorAll("li.is--selected"), (elem) => {
1126
- updateTimePos(elem);
1124
+ reactData.datetimePanelValue = dtPanelValue;
1125
+ nextTick(() => {
1126
+ const timeBodyElem = refInputTimeBody.value;
1127
+ XEUtils.arrayEach(timeBodyElem.querySelectorAll("li.is--selected"), (elem) => {
1128
+ updateTimePos(elem);
1129
+ });
1127
1130
  });
1128
- });
1129
- }
1130
- };
1131
- const dispatchEvent = (type, params, evnt) => {
1132
- emit(type, createEvent(evnt, { $datePanel: $xeDatePanel }, params));
1133
- };
1134
- const datePanelMethods = {
1135
- dispatchEvent,
1136
- getModelValue() {
1137
- return reactData.inputValue;
1138
- },
1139
- getViewType() {
1140
- const { datePanelType } = reactData;
1141
- return datePanelType;
1142
- },
1143
- setPanelDate(date) {
1144
- if (date) {
1145
- dateCheckMonth(date);
1146
1131
  }
1147
- },
1148
- getPanelDate() {
1149
- const { selectMonth } = reactData;
1150
- return selectMonth ? new Date(selectMonth.getTime()) : /* @__PURE__ */ new Date();
1151
- },
1152
- checkValue(value) {
1153
- afterCheckValue(value);
1154
- },
1155
- confirmByEvent(evnt) {
1156
- dateConfirmEvent(evnt);
1157
- }
1158
- };
1159
- Object.assign($xeDatePanel, datePanelMethods);
1160
- const renderDateLabel = (item, label) => {
1161
- const flMethod = props.festivalMethod || defaultFuncProps.festivalMethod;
1162
- const labelVNs = [];
1163
- if (flMethod) {
1164
- const { datePanelType } = reactData;
1165
- const festivalRest = flMethod({ type: datePanelType, viewType: datePanelType, date: item.date, $datePanel: $xeDatePanel });
1166
- const festivalItem = festivalRest ? XEUtils.isString(festivalRest) ? { label: festivalRest } : festivalRest : {};
1167
- const extraItem = festivalItem.extra ? XEUtils.isString(festivalItem.extra) ? { label: festivalItem.extra } : festivalItem.extra : null;
1168
- labelVNs.push(
1169
- h(
1170
- "div",
1171
- {
1172
- class: [
1173
- "vxe-date-panel--label",
1174
- {
1175
- "is-notice": festivalItem.notice
1176
- }
1177
- ]
1178
- },
1179
- extraItem && extraItem.label ? [
1180
- h(
1181
- "div",
1182
- {
1183
- class: "vxe-date-panel--label--number"
1184
- },
1185
- `${label}`
1186
- ),
1187
- h(
1188
- "div",
1189
- {
1190
- class: ["vxe-date-panel--label--extra", extraItem.important ? "is-important" : "", extraItem.className],
1191
- style: extraItem.style
1192
- },
1193
- XEUtils.toValueString(extraItem.label)
1194
- )
1195
- ] : `${label}`
1196
- )
1197
- );
1198
- const festivalLabel = festivalItem.label;
1199
- if (festivalLabel) {
1200
- const festivalLabels = XEUtils.toValueString(festivalLabel).split(",");
1132
+ };
1133
+ const dispatchEvent = (type, params, evnt) => {
1134
+ emit(type, createEvent(evnt, { $datePanel: $xeDatePanel }, params));
1135
+ };
1136
+ const datePanelMethods = {
1137
+ dispatchEvent,
1138
+ getModelValue() {
1139
+ return reactData.inputValue;
1140
+ },
1141
+ getViewType() {
1142
+ const { datePanelType } = reactData;
1143
+ return datePanelType;
1144
+ },
1145
+ setPanelDate(date) {
1146
+ if (date) {
1147
+ dateCheckMonth(date);
1148
+ }
1149
+ },
1150
+ getPanelDate() {
1151
+ const { selectMonth } = reactData;
1152
+ return selectMonth ? new Date(selectMonth.getTime()) : /* @__PURE__ */ new Date();
1153
+ },
1154
+ checkValue(value) {
1155
+ afterCheckValue(value);
1156
+ },
1157
+ confirmByEvent(evnt) {
1158
+ dateConfirmEvent(evnt);
1159
+ }
1160
+ };
1161
+ Object.assign($xeDatePanel, datePanelMethods);
1162
+ const renderDateLabel = (item, label) => {
1163
+ const flMethod = props.festivalMethod || defaultFuncProps.festivalMethod;
1164
+ const labelVNs = [];
1165
+ if (flMethod) {
1166
+ const { datePanelType } = reactData;
1167
+ const festivalRest = flMethod({ type: datePanelType, viewType: datePanelType, date: item.date, $datePanel: $xeDatePanel });
1168
+ const festivalItem = festivalRest ? XEUtils.isString(festivalRest) ? { label: festivalRest } : festivalRest : {};
1169
+ const extraItem = festivalItem.extra ? XEUtils.isString(festivalItem.extra) ? { label: festivalItem.extra } : festivalItem.extra : null;
1201
1170
  labelVNs.push(
1202
1171
  h(
1203
1172
  "div",
1204
1173
  {
1205
- class: ["vxe-date-panel--festival", festivalItem.important ? "is-important" : "", festivalItem.className],
1206
- style: festivalItem.style
1174
+ class: [
1175
+ "vxe-date-panel--label",
1176
+ {
1177
+ "is-notice": festivalItem.notice
1178
+ }
1179
+ ]
1207
1180
  },
1208
- [
1209
- festivalLabels.length > 1 ? h(
1181
+ extraItem && extraItem.label ? [
1182
+ h(
1210
1183
  "div",
1211
1184
  {
1212
- class: ["vxe-date-panel--festival--overlap", `overlap--${festivalLabels.length}`]
1185
+ class: "vxe-date-panel--label--number"
1213
1186
  },
1214
- festivalLabels.map((label2) => h("div", label2.substring(0, 3)))
1215
- ) : h(
1187
+ `${label}`
1188
+ ),
1189
+ h(
1216
1190
  "div",
1217
1191
  {
1218
- class: "vxe-date-panel--festival--label"
1192
+ class: ["vxe-date-panel--label--extra", extraItem.important ? "is-important" : "", extraItem.className],
1193
+ style: extraItem.style
1219
1194
  },
1220
- festivalLabels[0].substring(0, 3)
1195
+ XEUtils.toValueString(extraItem.label)
1221
1196
  )
1222
- ]
1197
+ ] : `${label}`
1198
+ )
1199
+ );
1200
+ const festivalLabel = festivalItem.label;
1201
+ if (festivalLabel) {
1202
+ const festivalLabels = XEUtils.toValueString(festivalLabel).split(",");
1203
+ labelVNs.push(
1204
+ h(
1205
+ "div",
1206
+ {
1207
+ class: ["vxe-date-panel--festival", festivalItem.important ? "is-important" : "", festivalItem.className],
1208
+ style: festivalItem.style
1209
+ },
1210
+ [
1211
+ festivalLabels.length > 1 ? h(
1212
+ "div",
1213
+ {
1214
+ class: ["vxe-date-panel--festival--overlap", `overlap--${festivalLabels.length}`]
1215
+ },
1216
+ festivalLabels.map((label2) => h("div", label2.substring(0, 3)))
1217
+ ) : h(
1218
+ "div",
1219
+ {
1220
+ class: "vxe-date-panel--festival--label"
1221
+ },
1222
+ festivalLabels[0].substring(0, 3)
1223
+ )
1224
+ ]
1225
+ )
1226
+ );
1227
+ }
1228
+ } else {
1229
+ labelVNs.push(
1230
+ h(
1231
+ "div",
1232
+ {
1233
+ class: "vxe-date-panel--label"
1234
+ },
1235
+ `${label}`
1223
1236
  )
1224
1237
  );
1225
1238
  }
1226
- } else {
1227
- labelVNs.push(
1239
+ return labelVNs;
1240
+ };
1241
+ const renderDateDayTable = () => {
1242
+ const { type, multiple, cellClassName } = props;
1243
+ const { datePanelType, datePanelValue } = reactData;
1244
+ const dateValue = computeDateValue.value;
1245
+ const dateHeaders = computeDateHeaders.value;
1246
+ const dayDatas = computeDayDatas.value;
1247
+ const dateListValue = computeDateListValue.value;
1248
+ const overCount = computeOverCount.value;
1249
+ const matchFormat = "yyyyMMdd";
1250
+ return [
1228
1251
  h(
1229
1252
  "div",
1230
1253
  {
1231
- class: "vxe-date-panel--label"
1254
+ class: ["vxe-date-panel--view-wrapper", `type--${datePanelType}`]
1232
1255
  },
1233
- `${label}`
1234
- )
1235
- );
1236
- }
1237
- return labelVNs;
1238
- };
1239
- const renderDateDayTable = () => {
1240
- const { type, multiple, cellClassName } = props;
1241
- const { datePanelType, datePanelValue } = reactData;
1242
- const dateValue = computeDateValue.value;
1243
- const dateHeaders = computeDateHeaders.value;
1244
- const dayDatas = computeDayDatas.value;
1245
- const dateListValue = computeDateListValue.value;
1246
- const overCount = computeOverCount.value;
1247
- const matchFormat = "yyyyMMdd";
1248
- return [
1249
- h(
1250
- "div",
1251
- {
1252
- class: ["vxe-date-panel--view-wrapper", `type--${datePanelType}`]
1253
- },
1254
- [
1255
- h(
1256
- "div",
1257
- {
1258
- class: "vxe-date-panel--view-header"
1259
- },
1260
- [
1261
- h(
1262
- "div",
1263
- {
1264
- class: "vxe-date-panel--view-row"
1265
- },
1266
- dateHeaders.map((item) => {
1267
- return h(
1268
- "div",
1269
- {
1270
- class: "vxe-date-panel--view-item",
1271
- style: {
1272
- width: `${100 / dateHeaders.length}%`
1273
- }
1274
- },
1275
- [
1276
- h(
1277
- "div",
1278
- {
1279
- class: "vxe-date-panel--view-item-inner"
1280
- },
1281
- [
1282
- h(
1283
- "div",
1284
- {
1285
- class: "vxe-date-panel--view-item-label"
1286
- },
1287
- item.label
1288
- )
1289
- ]
1290
- )
1291
- ]
1292
- );
1293
- })
1294
- )
1295
- ]
1296
- ),
1297
- h(
1298
- "div",
1299
- {
1300
- class: "vxe-date-panel--view-body"
1301
- },
1302
- dayDatas.map((rows) => {
1303
- return h(
1304
- "div",
1305
- {
1306
- class: "vxe-date-panel--view-row",
1307
- style: {
1308
- height: `${100 / dayDatas.length}%`
1309
- }
1310
- },
1311
- rows.map((item) => {
1312
- const isSelected = multiple ? dateListValue.some((val) => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
1313
- return h(
1314
- "div",
1315
- {
1316
- class: [
1317
- "vxe-date-panel--view-item",
1318
- cellClassName ? XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ""}` : `${cellClassName || ""}` : "",
1319
- {
1320
- "is--prev": item.isPrev,
1321
- "is--current": item.isCurrent,
1322
- "is--now": item.isNow,
1323
- "is--next": item.isNext,
1324
- "is--range-disabled": isRangeDisabled(item),
1325
- "is--disabled": isDateDisabled(item),
1326
- "is--selected": isSelected,
1327
- "is--over": overCount && !isSelected,
1328
- "is--hover": !overCount && XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
1256
+ [
1257
+ h(
1258
+ "div",
1259
+ {
1260
+ class: "vxe-date-panel--view-header"
1261
+ },
1262
+ [
1263
+ h(
1264
+ "div",
1265
+ {
1266
+ class: "vxe-date-panel--view-row"
1267
+ },
1268
+ dateHeaders.map((item) => {
1269
+ return h(
1270
+ "div",
1271
+ {
1272
+ class: "vxe-date-panel--view-item",
1273
+ style: {
1274
+ width: `${100 / dateHeaders.length}%`
1329
1275
  }
1330
- ],
1331
- style: {
1332
- width: `${100 / rows.length}%`
1333
1276
  },
1334
- onClick: () => dateSelectEvent(item),
1335
- onMouseenter: () => dateMouseenterEvent(item),
1336
- onMouseleave: dateMouseleaveEvent
1337
- },
1338
- [
1339
- h(
1340
- "div",
1341
- {
1342
- class: "vxe-date-panel--view-item-inner"
1343
- },
1344
- renderDateLabel(item, item.label)
1345
- )
1346
- ]
1347
- );
1348
- })
1349
- );
1350
- })
1351
- )
1352
- ]
1353
- )
1354
- ];
1355
- };
1356
- const renderDateWeekTable = () => {
1357
- const { type, multiple, cellClassName } = props;
1358
- const { datePanelType, datePanelValue } = reactData;
1359
- const dateValue = computeDateValue.value;
1360
- const weekHeaders = computeWeekHeaders.value;
1361
- const weekDates = computeWeekDates.value;
1362
- const dateListValue = computeDateListValue.value;
1363
- const overCount = computeOverCount.value;
1364
- const matchFormat = "yyyyMMdd";
1365
- return [
1366
- h(
1367
- "div",
1368
- {
1369
- class: ["vxe-date-panel--view-wrapper", `type--${datePanelType}`]
1370
- },
1371
- [
1372
- h(
1373
- "div",
1374
- {
1375
- class: "vxe-date-panel--view-header"
1376
- },
1377
- [
1378
- h(
1379
- "div",
1380
- {
1381
- class: "vxe-date-panel--view-row"
1382
- },
1383
- weekHeaders.map((item, rIndex) => {
1384
- return h(
1385
- "div",
1386
- {
1387
- class: "vxe-date-panel--view-item",
1388
- style: {
1389
- width: `${rIndex ? 13 : 9}%`
1390
- }
1391
- },
1392
- [
1393
- h(
1394
- "div",
1395
- {
1396
- class: "vxe-date-panel--view-item-inner"
1277
+ [
1278
+ h(
1279
+ "div",
1280
+ {
1281
+ class: "vxe-date-panel--view-item-inner"
1282
+ },
1283
+ [
1284
+ h(
1285
+ "div",
1286
+ {
1287
+ class: "vxe-date-panel--view-item-label"
1288
+ },
1289
+ item.label
1290
+ )
1291
+ ]
1292
+ )
1293
+ ]
1294
+ );
1295
+ })
1296
+ )
1297
+ ]
1298
+ ),
1299
+ h(
1300
+ "div",
1301
+ {
1302
+ class: "vxe-date-panel--view-body"
1303
+ },
1304
+ dayDatas.map((rows) => {
1305
+ return h(
1306
+ "div",
1307
+ {
1308
+ class: "vxe-date-panel--view-row",
1309
+ style: {
1310
+ height: `${100 / dayDatas.length}%`
1311
+ }
1312
+ },
1313
+ rows.map((item) => {
1314
+ const isSelected = multiple ? dateListValue.some((val) => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
1315
+ return h(
1316
+ "div",
1317
+ {
1318
+ class: [
1319
+ "vxe-date-panel--view-item",
1320
+ cellClassName ? XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ""}` : `${cellClassName || ""}` : "",
1321
+ {
1322
+ "is--prev": item.isPrev,
1323
+ "is--current": item.isCurrent,
1324
+ "is--now": item.isNow,
1325
+ "is--next": item.isNext,
1326
+ "is--range-disabled": isRangeDisabled(item),
1327
+ "is--disabled": isDateDisabled(item),
1328
+ "is--selected": isSelected,
1329
+ "is--over": overCount && !isSelected,
1330
+ "is--hover": !overCount && XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
1331
+ }
1332
+ ],
1333
+ style: {
1334
+ width: `${100 / rows.length}%`
1397
1335
  },
1398
- [
1399
- h(
1400
- "div",
1401
- {
1402
- class: "vxe-date-panel--view-item-label"
1403
- },
1404
- item.label
1405
- )
1406
- ]
1407
- )
1408
- ]
1409
- );
1410
- })
1411
- )
1412
- ]
1413
- ),
1414
- h(
1415
- "div",
1416
- {
1417
- class: "vxe-date-panel--view-body"
1418
- },
1419
- weekDates.map((rows) => {
1420
- const isSelected = multiple ? rows.some((item) => dateListValue.some((val) => XEUtils.isDateSame(val, item.date, matchFormat))) : rows.some((item) => XEUtils.isDateSame(dateValue, item.date, matchFormat));
1421
- const isHover = rows.some((item) => XEUtils.isDateSame(datePanelValue, item.date, matchFormat));
1422
- const isNowWeek = rows.some((item) => item.isNow);
1423
- return h(
1424
- "div",
1425
- {
1426
- class: "vxe-date-panel--view-row",
1427
- style: {
1428
- height: `${100 / weekDates.length}%`
1429
- }
1430
- },
1431
- rows.map((item, rIndex) => {
1432
- return h(
1433
- "div",
1434
- {
1435
- class: [
1436
- "vxe-date-panel--view-item",
1437
- cellClassName ? XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ""}` : `${cellClassName || ""}` : "",
1438
- {
1439
- "is--prev": item.isPrev,
1440
- "is--current": item.isCurrent,
1441
- "is--now": rIndex ? item.isNow : isNowWeek,
1442
- "is--next": item.isNext,
1443
- "is--range-disabled": isRangeDisabled(item),
1444
- "is--disabled": isDateDisabled(item),
1445
- "is--selected": isSelected,
1446
- "is--over": overCount && !isSelected,
1447
- "is--hover": !overCount && isHover
1336
+ onClick: () => dateSelectEvent(item),
1337
+ onMouseenter: () => dateMouseenterEvent(item),
1338
+ onMouseleave: dateMouseleaveEvent
1339
+ },
1340
+ [
1341
+ h(
1342
+ "div",
1343
+ {
1344
+ class: "vxe-date-panel--view-item-inner"
1345
+ },
1346
+ renderDateLabel(item, item.label)
1347
+ )
1348
+ ]
1349
+ );
1350
+ })
1351
+ );
1352
+ })
1353
+ )
1354
+ ]
1355
+ )
1356
+ ];
1357
+ };
1358
+ const renderDateWeekTable = () => {
1359
+ const { type, multiple, cellClassName } = props;
1360
+ const { datePanelType, datePanelValue } = reactData;
1361
+ const dateValue = computeDateValue.value;
1362
+ const weekHeaders = computeWeekHeaders.value;
1363
+ const weekDates = computeWeekDates.value;
1364
+ const dateListValue = computeDateListValue.value;
1365
+ const overCount = computeOverCount.value;
1366
+ const matchFormat = "yyyyMMdd";
1367
+ return [
1368
+ h(
1369
+ "div",
1370
+ {
1371
+ class: ["vxe-date-panel--view-wrapper", `type--${datePanelType}`]
1372
+ },
1373
+ [
1374
+ h(
1375
+ "div",
1376
+ {
1377
+ class: "vxe-date-panel--view-header"
1378
+ },
1379
+ [
1380
+ h(
1381
+ "div",
1382
+ {
1383
+ class: "vxe-date-panel--view-row"
1384
+ },
1385
+ weekHeaders.map((item, rIndex) => {
1386
+ return h(
1387
+ "div",
1388
+ {
1389
+ class: "vxe-date-panel--view-item",
1390
+ style: {
1391
+ width: `${rIndex ? 13 : 9}%`
1448
1392
  }
1449
- ],
1450
- style: {
1451
- width: `${rIndex ? 13 : 9}%`
1452
1393
  },
1453
- onClick: () => dateSelectEvent(item),
1454
- onMouseenter: () => dateMouseenterEvent(item),
1455
- onMouseleave: dateMouseleaveEvent
1456
- },
1457
- [
1458
- h(
1459
- "div",
1460
- {
1461
- class: "vxe-date-panel--view-item-inner"
1462
- },
1463
- renderDateLabel(item, item.label)
1464
- )
1465
- ]
1466
- );
1467
- })
1468
- );
1469
- })
1470
- )
1471
- ]
1472
- )
1473
- ];
1474
- };
1475
- const renderDateMonthTable = () => {
1476
- const { type, multiple, cellClassName } = props;
1477
- const { datePanelType, datePanelValue } = reactData;
1478
- const dateValue = computeDateValue.value;
1479
- const monthDatas = computeMonthDatas.value;
1480
- const dateListValue = computeDateListValue.value;
1481
- const overCount = computeOverCount.value;
1482
- const matchFormat = "yyyyMM";
1483
- return [
1484
- h(
1485
- "div",
1486
- {
1487
- class: ["vxe-date-panel--view-wrapper", `type--${datePanelType}`]
1488
- },
1489
- [
1490
- h(
1491
- "div",
1492
- {
1493
- class: "vxe-date-panel--view-body"
1494
- },
1495
- monthDatas.map((rows) => {
1496
- return h(
1497
- "div",
1498
- {
1499
- class: "vxe-date-panel--view-row",
1500
- style: {
1501
- height: `${100 / monthDatas.length}%`
1502
- }
1503
- },
1504
- rows.map((item) => {
1505
- const isSelected = multiple ? dateListValue.some((val) => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
1506
- return h(
1507
- "div",
1508
- {
1509
- class: [
1510
- "vxe-date-panel--view-item",
1511
- cellClassName ? XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ""}` : `${cellClassName || ""}` : "",
1512
- {
1513
- "is--prev": item.isPrev,
1514
- "is--current": item.isCurrent,
1515
- "is--now": item.isNow,
1516
- "is--next": item.isNext,
1517
- "is--range-disabled": isRangeDisabled(item),
1518
- "is--disabled": isDateDisabled(item),
1519
- "is--selected": isSelected,
1520
- "is--over": overCount && !isSelected,
1521
- "is--hover": !overCount && XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
1522
- }
1523
- ],
1524
- style: {
1525
- width: `${100 / rows.length}%`
1526
- },
1527
- onClick: () => dateSelectEvent(item),
1528
- onMouseenter: () => dateMouseenterEvent(item),
1529
- onMouseleave: dateMouseleaveEvent
1530
- },
1531
- [
1532
- h(
1533
- "div",
1534
- {
1535
- class: "vxe-date-panel--view-item-inner"
1394
+ [
1395
+ h(
1396
+ "div",
1397
+ {
1398
+ class: "vxe-date-panel--view-item-inner"
1399
+ },
1400
+ [
1401
+ h(
1402
+ "div",
1403
+ {
1404
+ class: "vxe-date-panel--view-item-label"
1405
+ },
1406
+ item.label
1407
+ )
1408
+ ]
1409
+ )
1410
+ ]
1411
+ );
1412
+ })
1413
+ )
1414
+ ]
1415
+ ),
1416
+ h(
1417
+ "div",
1418
+ {
1419
+ class: "vxe-date-panel--view-body"
1420
+ },
1421
+ weekDates.map((rows) => {
1422
+ const isSelected = multiple ? rows.some((item) => dateListValue.some((val) => XEUtils.isDateSame(val, item.date, matchFormat))) : rows.some((item) => XEUtils.isDateSame(dateValue, item.date, matchFormat));
1423
+ const isHover = rows.some((item) => XEUtils.isDateSame(datePanelValue, item.date, matchFormat));
1424
+ const isNowWeek = rows.some((item) => item.isNow);
1425
+ return h(
1426
+ "div",
1427
+ {
1428
+ class: "vxe-date-panel--view-row",
1429
+ style: {
1430
+ height: `${100 / weekDates.length}%`
1431
+ }
1432
+ },
1433
+ rows.map((item, rIndex) => {
1434
+ return h(
1435
+ "div",
1436
+ {
1437
+ class: [
1438
+ "vxe-date-panel--view-item",
1439
+ cellClassName ? XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ""}` : `${cellClassName || ""}` : "",
1440
+ {
1441
+ "is--prev": item.isPrev,
1442
+ "is--current": item.isCurrent,
1443
+ "is--now": rIndex ? item.isNow : isNowWeek,
1444
+ "is--next": item.isNext,
1445
+ "is--range-disabled": isRangeDisabled(item),
1446
+ "is--disabled": isDateDisabled(item),
1447
+ "is--selected": isSelected,
1448
+ "is--over": overCount && !isSelected,
1449
+ "is--hover": !overCount && isHover
1450
+ }
1451
+ ],
1452
+ style: {
1453
+ width: `${rIndex ? 13 : 9}%`
1536
1454
  },
1537
- renderDateLabel(item, getI18n(`vxe.input.date.months.m${item.month}`))
1538
- )
1539
- ]
1540
- );
1541
- })
1542
- );
1543
- })
1544
- )
1545
- ]
1546
- )
1547
- ];
1548
- };
1549
- const renderDateQuarterTable = () => {
1550
- const { type, multiple, cellClassName } = props;
1551
- const { datePanelType, datePanelValue } = reactData;
1552
- const dateValue = computeDateValue.value;
1553
- const quarterDatas = computeQuarterDatas.value;
1554
- const dateListValue = computeDateListValue.value;
1555
- const overCount = computeOverCount.value;
1556
- const matchFormat = "yyyyq";
1557
- return [
1558
- h(
1559
- "div",
1560
- {
1561
- class: ["vxe-date-panel--view-wrapper", `type--${datePanelType}`]
1562
- },
1563
- [
1564
- h(
1565
- "div",
1566
- {
1567
- class: "vxe-date-panel--view-body"
1568
- },
1569
- quarterDatas.map((rows) => {
1570
- return h(
1571
- "div",
1572
- {
1573
- class: "vxe-date-panel--view-row",
1574
- style: {
1575
- height: `${100 / quarterDatas.length}%`
1576
- }
1577
- },
1578
- rows.map((item) => {
1579
- const isSelected = multiple ? dateListValue.some((val) => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
1580
- return h(
1581
- "div",
1582
- {
1583
- class: [
1584
- "vxe-date-panel--view-item",
1585
- cellClassName ? XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ""}` : `${cellClassName || ""}` : "",
1586
- {
1587
- "is--prev": item.isPrev,
1588
- "is--current": item.isCurrent,
1589
- "is--now": item.isNow,
1590
- "is--next": item.isNext,
1591
- "is--range-disabled": isRangeDisabled(item),
1592
- "is--disabled": isDateDisabled(item),
1593
- "is--selected": isSelected,
1594
- "is--over": overCount && !isSelected,
1595
- "is--hover": !overCount && XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
1596
- }
1597
- ],
1598
- style: {
1599
- width: `${100 / rows.length}%`
1455
+ onClick: () => dateSelectEvent(item),
1456
+ onMouseenter: () => dateMouseenterEvent(item),
1457
+ onMouseleave: dateMouseleaveEvent
1600
1458
  },
1601
- onClick: () => dateSelectEvent(item),
1602
- onMouseenter: () => dateMouseenterEvent(item),
1603
- onMouseleave: dateMouseleaveEvent
1604
- },
1605
- [
1606
- h(
1607
- "div",
1608
- {
1609
- class: "vxe-date-panel--view-item-inner"
1459
+ [
1460
+ h(
1461
+ "div",
1462
+ {
1463
+ class: "vxe-date-panel--view-item-inner"
1464
+ },
1465
+ renderDateLabel(item, item.label)
1466
+ )
1467
+ ]
1468
+ );
1469
+ })
1470
+ );
1471
+ })
1472
+ )
1473
+ ]
1474
+ )
1475
+ ];
1476
+ };
1477
+ const renderDateMonthTable = () => {
1478
+ const { type, multiple, cellClassName } = props;
1479
+ const { datePanelType, datePanelValue } = reactData;
1480
+ const dateValue = computeDateValue.value;
1481
+ const monthDatas = computeMonthDatas.value;
1482
+ const dateListValue = computeDateListValue.value;
1483
+ const overCount = computeOverCount.value;
1484
+ const matchFormat = "yyyyMM";
1485
+ return [
1486
+ h(
1487
+ "div",
1488
+ {
1489
+ class: ["vxe-date-panel--view-wrapper", `type--${datePanelType}`]
1490
+ },
1491
+ [
1492
+ h(
1493
+ "div",
1494
+ {
1495
+ class: "vxe-date-panel--view-body"
1496
+ },
1497
+ monthDatas.map((rows) => {
1498
+ return h(
1499
+ "div",
1500
+ {
1501
+ class: "vxe-date-panel--view-row",
1502
+ style: {
1503
+ height: `${100 / monthDatas.length}%`
1504
+ }
1505
+ },
1506
+ rows.map((item) => {
1507
+ const isSelected = multiple ? dateListValue.some((val) => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
1508
+ return h(
1509
+ "div",
1510
+ {
1511
+ class: [
1512
+ "vxe-date-panel--view-item",
1513
+ cellClassName ? XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ""}` : `${cellClassName || ""}` : "",
1514
+ {
1515
+ "is--prev": item.isPrev,
1516
+ "is--current": item.isCurrent,
1517
+ "is--now": item.isNow,
1518
+ "is--next": item.isNext,
1519
+ "is--range-disabled": isRangeDisabled(item),
1520
+ "is--disabled": isDateDisabled(item),
1521
+ "is--selected": isSelected,
1522
+ "is--over": overCount && !isSelected,
1523
+ "is--hover": !overCount && XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
1524
+ }
1525
+ ],
1526
+ style: {
1527
+ width: `${100 / rows.length}%`
1610
1528
  },
1611
- renderDateLabel(item, getI18n(`vxe.input.date.quarters.q${item.quarter}`))
1612
- )
1613
- ]
1614
- );
1615
- })
1616
- );
1617
- })
1618
- )
1619
- ]
1620
- )
1621
- ];
1622
- };
1623
- const renderDateYearTable = () => {
1624
- const { type, multiple, cellClassName } = props;
1625
- const { datePanelType, datePanelValue } = reactData;
1626
- const dateValue = computeDateValue.value;
1627
- const yearDatas = computeYearDatas.value;
1628
- const dateListValue = computeDateListValue.value;
1629
- const overCount = computeOverCount.value;
1630
- const matchFormat = "yyyy";
1631
- return [
1632
- h(
1633
- "div",
1634
- {
1635
- class: ["vxe-date-panel--view-wrapper", `type--${datePanelType}`]
1636
- },
1637
- [
1638
- h(
1639
- "div",
1640
- {
1641
- class: "vxe-date-panel--view-body"
1642
- },
1643
- yearDatas.map((rows) => {
1644
- return h(
1645
- "div",
1646
- {
1647
- class: "vxe-date-panel--view-row",
1648
- style: {
1649
- height: `${100 / yearDatas.length}%`
1650
- }
1651
- },
1652
- rows.map((item) => {
1653
- const isSelected = multiple ? dateListValue.some((val) => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
1654
- return h(
1655
- "div",
1656
- {
1657
- class: [
1658
- "vxe-date-panel--view-item",
1659
- cellClassName ? XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ""}` : `${cellClassName || ""}` : "",
1660
- {
1661
- "is--prev": item.isPrev,
1662
- "is--current": item.isCurrent,
1663
- "is--now": item.isNow,
1664
- "is--next": item.isNext,
1665
- "is--range-disabled": isRangeDisabled(item),
1666
- "is--disabled": isDateDisabled(item),
1667
- "is--selected": isSelected,
1668
- "is--over": overCount && !isSelected,
1669
- "is--hover": !overCount && XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
1670
- }
1671
- ],
1672
- style: {
1673
- width: `${100 / rows.length}%`
1529
+ onClick: () => dateSelectEvent(item),
1530
+ onMouseenter: () => dateMouseenterEvent(item),
1531
+ onMouseleave: dateMouseleaveEvent
1674
1532
  },
1675
- onClick: () => dateSelectEvent(item),
1676
- onMouseenter: () => dateMouseenterEvent(item),
1677
- onMouseleave: dateMouseleaveEvent
1678
- },
1679
- [
1680
- h(
1681
- "div",
1682
- {
1683
- class: "vxe-date-panel--view-item-inner"
1684
- },
1685
- renderDateLabel(item, item.year)
1686
- )
1687
- ]
1688
- );
1689
- })
1690
- );
1691
- })
1692
- )
1693
- ]
1694
- )
1695
- ];
1696
- };
1697
- const renderDateTable = () => {
1698
- const { datePanelType } = reactData;
1699
- switch (datePanelType) {
1700
- case "week":
1701
- return renderDateWeekTable();
1702
- case "month":
1703
- return renderDateMonthTable();
1704
- case "quarter":
1705
- return renderDateQuarterTable();
1706
- case "year":
1707
- return renderDateYearTable();
1708
- }
1709
- return renderDateDayTable();
1710
- };
1711
- const renderDatePanel = () => {
1712
- const { datePanelType } = reactData;
1713
- const isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value;
1714
- const isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value;
1715
- const selectDatePanelObj = computeSelectDatePanelObj.value;
1716
- return [
1717
- h(
1718
- "div",
1719
- {
1720
- class: "vxe-date-panel--picker-header"
1721
- },
1722
- [
1723
- h(
1724
- "div",
1725
- {
1726
- class: "vxe-date-panel--picker-type-wrapper"
1727
- },
1728
- [
1729
- datePanelType === "year" ? h(
1730
- "span",
1731
- {
1732
- class: "vxe-date-panel--picker-label"
1733
- },
1734
- selectDatePanelObj.y
1735
- ) : h(
1736
- "span",
1737
- {
1738
- class: "vxe-date-panel--picker-btns"
1739
- },
1740
- [
1741
- h(
1742
- "span",
1743
- {
1744
- class: "vxe-date-panel--picker-btn",
1745
- onClick: dateToggleYearTypeEvent
1746
- },
1747
- selectDatePanelObj.y
1748
- ),
1749
- selectDatePanelObj.m ? h(
1750
- "span",
1751
- {
1752
- class: "vxe-date-panel--picker-btn",
1753
- onClick: dateToggleMonthTypeEvent
1754
- },
1755
- selectDatePanelObj.m
1756
- ) : renderEmptyElement($xeDatePanel)
1757
- ]
1758
- )
1759
- ]
1760
- ),
1761
- h(
1762
- "div",
1763
- {
1764
- class: "vxe-date-panel--picker-btn-wrapper"
1765
- },
1766
- [
1767
- h(
1768
- "span",
1769
- {
1770
- class: [
1771
- "vxe-date-panel--picker-btn vxe-date-panel--picker-prev-btn",
1772
- {
1773
- "is--disabled": isDisabledPrevDateBtn
1774
- }
1775
- ],
1776
- onClick: datePrevEvent
1777
- },
1778
- [
1779
- h("i", {
1780
- class: "vxe-icon-caret-left"
1533
+ [
1534
+ h(
1535
+ "div",
1536
+ {
1537
+ class: "vxe-date-panel--view-item-inner"
1538
+ },
1539
+ renderDateLabel(item, getI18n(`vxe.input.date.months.m${item.month}`))
1540
+ )
1541
+ ]
1542
+ );
1781
1543
  })
1782
- ]
1783
- ),
1784
- h(
1785
- "span",
1786
- {
1787
- class: "vxe-date-panel--picker-btn vxe-date-panel--picker-current-btn",
1788
- onClick: dateTodayMonthEvent
1789
- },
1790
- [
1791
- h("i", {
1792
- class: "vxe-icon-dot"
1544
+ );
1545
+ })
1546
+ )
1547
+ ]
1548
+ )
1549
+ ];
1550
+ };
1551
+ const renderDateQuarterTable = () => {
1552
+ const { type, multiple, cellClassName } = props;
1553
+ const { datePanelType, datePanelValue } = reactData;
1554
+ const dateValue = computeDateValue.value;
1555
+ const quarterDatas = computeQuarterDatas.value;
1556
+ const dateListValue = computeDateListValue.value;
1557
+ const overCount = computeOverCount.value;
1558
+ const matchFormat = "yyyyq";
1559
+ return [
1560
+ h(
1561
+ "div",
1562
+ {
1563
+ class: ["vxe-date-panel--view-wrapper", `type--${datePanelType}`]
1564
+ },
1565
+ [
1566
+ h(
1567
+ "div",
1568
+ {
1569
+ class: "vxe-date-panel--view-body"
1570
+ },
1571
+ quarterDatas.map((rows) => {
1572
+ return h(
1573
+ "div",
1574
+ {
1575
+ class: "vxe-date-panel--view-row",
1576
+ style: {
1577
+ height: `${100 / quarterDatas.length}%`
1578
+ }
1579
+ },
1580
+ rows.map((item) => {
1581
+ const isSelected = multiple ? dateListValue.some((val) => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
1582
+ return h(
1583
+ "div",
1584
+ {
1585
+ class: [
1586
+ "vxe-date-panel--view-item",
1587
+ cellClassName ? XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ""}` : `${cellClassName || ""}` : "",
1588
+ {
1589
+ "is--prev": item.isPrev,
1590
+ "is--current": item.isCurrent,
1591
+ "is--now": item.isNow,
1592
+ "is--next": item.isNext,
1593
+ "is--range-disabled": isRangeDisabled(item),
1594
+ "is--disabled": isDateDisabled(item),
1595
+ "is--selected": isSelected,
1596
+ "is--over": overCount && !isSelected,
1597
+ "is--hover": !overCount && XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
1598
+ }
1599
+ ],
1600
+ style: {
1601
+ width: `${100 / rows.length}%`
1602
+ },
1603
+ onClick: () => dateSelectEvent(item),
1604
+ onMouseenter: () => dateMouseenterEvent(item),
1605
+ onMouseleave: dateMouseleaveEvent
1606
+ },
1607
+ [
1608
+ h(
1609
+ "div",
1610
+ {
1611
+ class: "vxe-date-panel--view-item-inner"
1612
+ },
1613
+ renderDateLabel(item, getI18n(`vxe.input.date.quarters.q${item.quarter}`))
1614
+ )
1615
+ ]
1616
+ );
1793
1617
  })
1794
- ]
1795
- ),
1796
- h(
1797
- "span",
1798
- {
1799
- class: [
1800
- "vxe-date-panel--picker-btn vxe-date-panel--picker-next-btn",
1801
- {
1802
- "is--disabled": isDisabledNextDateBtn
1618
+ );
1619
+ })
1620
+ )
1621
+ ]
1622
+ )
1623
+ ];
1624
+ };
1625
+ const renderDateYearTable = () => {
1626
+ const { type, multiple, cellClassName } = props;
1627
+ const { datePanelType, datePanelValue } = reactData;
1628
+ const dateValue = computeDateValue.value;
1629
+ const yearDatas = computeYearDatas.value;
1630
+ const dateListValue = computeDateListValue.value;
1631
+ const overCount = computeOverCount.value;
1632
+ const matchFormat = "yyyy";
1633
+ return [
1634
+ h(
1635
+ "div",
1636
+ {
1637
+ class: ["vxe-date-panel--view-wrapper", `type--${datePanelType}`]
1638
+ },
1639
+ [
1640
+ h(
1641
+ "div",
1642
+ {
1643
+ class: "vxe-date-panel--view-body"
1644
+ },
1645
+ yearDatas.map((rows) => {
1646
+ return h(
1647
+ "div",
1648
+ {
1649
+ class: "vxe-date-panel--view-row",
1650
+ style: {
1651
+ height: `${100 / yearDatas.length}%`
1803
1652
  }
1804
- ],
1805
- onClick: dateNextEvent
1806
- },
1807
- [
1808
- h("i", {
1809
- class: "vxe-icon-caret-right"
1653
+ },
1654
+ rows.map((item) => {
1655
+ const isSelected = multiple ? dateListValue.some((val) => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat);
1656
+ return h(
1657
+ "div",
1658
+ {
1659
+ class: [
1660
+ "vxe-date-panel--view-item",
1661
+ cellClassName ? XEUtils.isFunction(cellClassName) ? `${cellClassName({ $datePanel: $xeDatePanel, type, viewType: datePanelType, date: item.date }) || ""}` : `${cellClassName || ""}` : "",
1662
+ {
1663
+ "is--prev": item.isPrev,
1664
+ "is--current": item.isCurrent,
1665
+ "is--now": item.isNow,
1666
+ "is--next": item.isNext,
1667
+ "is--range-disabled": isRangeDisabled(item),
1668
+ "is--disabled": isDateDisabled(item),
1669
+ "is--selected": isSelected,
1670
+ "is--over": overCount && !isSelected,
1671
+ "is--hover": !overCount && XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
1672
+ }
1673
+ ],
1674
+ style: {
1675
+ width: `${100 / rows.length}%`
1676
+ },
1677
+ onClick: () => dateSelectEvent(item),
1678
+ onMouseenter: () => dateMouseenterEvent(item),
1679
+ onMouseleave: dateMouseleaveEvent
1680
+ },
1681
+ [
1682
+ h(
1683
+ "div",
1684
+ {
1685
+ class: "vxe-date-panel--view-item-inner"
1686
+ },
1687
+ renderDateLabel(item, item.year)
1688
+ )
1689
+ ]
1690
+ );
1810
1691
  })
1811
- ]
1812
- )
1813
- ]
1814
- )
1815
- ]
1816
- ),
1817
- h(
1818
- "div",
1819
- {
1820
- class: "vxe-date-panel--picker-body"
1821
- },
1822
- renderDateTable()
1823
- )
1824
- ];
1825
- };
1826
- const renderTimePanel = () => {
1827
- const { type } = props;
1828
- const { datetimePanelValue } = reactData;
1829
- const dateTimeLabel = computeDateTimeLabel.value;
1830
- const hourList = computeHourList.value;
1831
- const hasTimeMinute = computeHasTimeMinute.value;
1832
- const minuteList = computeMinuteList.value;
1833
- const hasTimeSecond = computeHasTimeSecond.value;
1834
- const secondList = computeSecondList.value;
1835
- return [
1836
- type === "time" ? renderEmptyElement($xeDatePanel) : h(
1837
- "div",
1838
- {
1839
- class: "vxe-date-panel--time-header"
1840
- },
1841
- [
1842
- h(
1843
- "div",
1844
- {
1845
- class: "vxe-date-panel--time-title"
1846
- },
1847
- dateTimeLabel
1848
- )
1849
- ]
1850
- ),
1851
- h(
1852
- "div",
1853
- {
1854
- ref: refInputTimeBody,
1855
- class: "vxe-date-panel--time-body"
1856
- },
1857
- [
1858
- h(
1859
- VxeScrollbarComponent,
1860
- {
1861
- autoHide: true,
1862
- class: "vxe-date-panel--time-hour-list",
1863
- viewClassName: "vxe-date-panel--time-list-view",
1864
- viewInnerClassName: "vxe-date-panel--time-list-inner"
1865
- },
1866
- {
1867
- default: () => {
1868
- return hourList.map((item, index) => {
1869
- return h(
1870
- "div",
1871
- {
1872
- key: index,
1873
- class: [
1874
- "vxe-date-panel--time-item",
1875
- {
1876
- "is--disabled": item.disabled,
1877
- "is--selected": datetimePanelValue && datetimePanelValue.getHours() === item.value
1878
- }
1879
- ],
1880
- onClick: (evnt) => dateHourEvent(evnt, item)
1881
- },
1882
- item.label
1883
- );
1884
- });
1692
+ );
1693
+ })
1694
+ )
1695
+ ]
1696
+ )
1697
+ ];
1698
+ };
1699
+ const renderDateTable = () => {
1700
+ const { datePanelType } = reactData;
1701
+ switch (datePanelType) {
1702
+ case "week":
1703
+ return renderDateWeekTable();
1704
+ case "month":
1705
+ return renderDateMonthTable();
1706
+ case "quarter":
1707
+ return renderDateQuarterTable();
1708
+ case "year":
1709
+ return renderDateYearTable();
1710
+ }
1711
+ return renderDateDayTable();
1712
+ };
1713
+ const renderDatePanel = () => {
1714
+ const { datePanelType } = reactData;
1715
+ const isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value;
1716
+ const isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value;
1717
+ const selectDatePanelObj = computeSelectDatePanelObj.value;
1718
+ return [
1719
+ h(
1720
+ "div",
1721
+ {
1722
+ class: "vxe-date-panel--picker-header"
1723
+ },
1724
+ [
1725
+ h(
1726
+ "div",
1727
+ {
1728
+ class: "vxe-date-panel--picker-type-wrapper"
1729
+ },
1730
+ [
1731
+ datePanelType === "year" ? h(
1732
+ "span",
1733
+ {
1734
+ class: "vxe-date-panel--picker-label"
1735
+ },
1736
+ selectDatePanelObj.y
1737
+ ) : h(
1738
+ "span",
1739
+ {
1740
+ class: "vxe-date-panel--picker-btns"
1741
+ },
1742
+ [
1743
+ h(
1744
+ "span",
1745
+ {
1746
+ class: "vxe-date-panel--picker-btn",
1747
+ onClick: dateToggleYearTypeEvent
1748
+ },
1749
+ selectDatePanelObj.y
1750
+ ),
1751
+ selectDatePanelObj.m ? h(
1752
+ "span",
1753
+ {
1754
+ class: "vxe-date-panel--picker-btn",
1755
+ onClick: dateToggleMonthTypeEvent
1756
+ },
1757
+ selectDatePanelObj.m
1758
+ ) : renderEmptyElement($xeDatePanel)
1759
+ ]
1760
+ )
1761
+ ]
1762
+ ),
1763
+ h(
1764
+ "div",
1765
+ {
1766
+ class: "vxe-date-panel--picker-btn-wrapper"
1767
+ },
1768
+ [
1769
+ h(
1770
+ "span",
1771
+ {
1772
+ class: [
1773
+ "vxe-date-panel--picker-btn vxe-date-panel--picker-prev-btn",
1774
+ {
1775
+ "is--disabled": isDisabledPrevDateBtn
1776
+ }
1777
+ ],
1778
+ onClick: datePrevEvent
1779
+ },
1780
+ [
1781
+ h("i", {
1782
+ class: "vxe-icon-caret-left"
1783
+ })
1784
+ ]
1785
+ ),
1786
+ h(
1787
+ "span",
1788
+ {
1789
+ class: "vxe-date-panel--picker-btn vxe-date-panel--picker-current-btn",
1790
+ onClick: dateTodayMonthEvent
1791
+ },
1792
+ [
1793
+ h("i", {
1794
+ class: "vxe-icon-dot"
1795
+ })
1796
+ ]
1797
+ ),
1798
+ h(
1799
+ "span",
1800
+ {
1801
+ class: [
1802
+ "vxe-date-panel--picker-btn vxe-date-panel--picker-next-btn",
1803
+ {
1804
+ "is--disabled": isDisabledNextDateBtn
1805
+ }
1806
+ ],
1807
+ onClick: dateNextEvent
1808
+ },
1809
+ [
1810
+ h("i", {
1811
+ class: "vxe-icon-caret-right"
1812
+ })
1813
+ ]
1814
+ )
1815
+ ]
1816
+ )
1817
+ ]
1818
+ ),
1819
+ h(
1820
+ "div",
1821
+ {
1822
+ class: "vxe-date-panel--picker-body"
1823
+ },
1824
+ renderDateTable()
1825
+ )
1826
+ ];
1827
+ };
1828
+ const renderTimePanel = () => {
1829
+ const { type } = props;
1830
+ const { datetimePanelValue } = reactData;
1831
+ const dateTimeLabel = computeDateTimeLabel.value;
1832
+ const hourList = computeHourList.value;
1833
+ const hasTimeMinute = computeHasTimeMinute.value;
1834
+ const minuteList = computeMinuteList.value;
1835
+ const hasTimeSecond = computeHasTimeSecond.value;
1836
+ const secondList = computeSecondList.value;
1837
+ return [
1838
+ type === "time" ? renderEmptyElement($xeDatePanel) : h(
1839
+ "div",
1840
+ {
1841
+ class: "vxe-date-panel--time-header"
1842
+ },
1843
+ [
1844
+ h(
1845
+ "div",
1846
+ {
1847
+ class: "vxe-date-panel--time-title"
1848
+ },
1849
+ dateTimeLabel
1850
+ )
1851
+ ]
1852
+ ),
1853
+ h(
1854
+ "div",
1855
+ {
1856
+ ref: refInputTimeBody,
1857
+ class: "vxe-date-panel--time-body"
1858
+ },
1859
+ [
1860
+ h(
1861
+ VxeScrollbarComponent,
1862
+ {
1863
+ autoHide: true,
1864
+ class: "vxe-date-panel--time-hour-list",
1865
+ viewClassName: "vxe-date-panel--time-list-view",
1866
+ viewInnerClassName: "vxe-date-panel--time-list-inner"
1867
+ },
1868
+ {
1869
+ default: () => {
1870
+ return hourList.map((item, index) => {
1871
+ return h(
1872
+ "div",
1873
+ {
1874
+ key: index,
1875
+ class: [
1876
+ "vxe-date-panel--time-item",
1877
+ {
1878
+ "is--disabled": item.disabled,
1879
+ "is--selected": datetimePanelValue && datetimePanelValue.getHours() === item.value
1880
+ }
1881
+ ],
1882
+ onClick: (evnt) => dateHourEvent(evnt, item)
1883
+ },
1884
+ item.label
1885
+ );
1886
+ });
1887
+ }
1885
1888
  }
1886
- }
1887
- ),
1888
- hasTimeMinute ? h(
1889
- VxeScrollbarComponent,
1890
- {
1891
- autoHide: true,
1892
- class: "vxe-date-panel--time-minute-list",
1893
- viewClassName: "vxe-date-panel--time-list-view",
1894
- viewInnerClassName: "vxe-date-panel--time-list-inner"
1895
- },
1896
- {
1897
- default: () => {
1898
- return minuteList.map((item, index) => {
1899
- return h(
1900
- "div",
1901
- {
1902
- key: index,
1903
- class: [
1904
- "vxe-date-panel--time-item",
1905
- {
1906
- "is--disabled": item.disabled,
1907
- "is--selected": datetimePanelValue && datetimePanelValue.getMinutes() === item.value
1908
- }
1909
- ],
1910
- onClick: (evnt) => dateMinuteEvent(evnt, item)
1911
- },
1912
- item.label
1913
- );
1914
- });
1889
+ ),
1890
+ hasTimeMinute ? h(
1891
+ VxeScrollbarComponent,
1892
+ {
1893
+ autoHide: true,
1894
+ class: "vxe-date-panel--time-minute-list",
1895
+ viewClassName: "vxe-date-panel--time-list-view",
1896
+ viewInnerClassName: "vxe-date-panel--time-list-inner"
1897
+ },
1898
+ {
1899
+ default: () => {
1900
+ return minuteList.map((item, index) => {
1901
+ return h(
1902
+ "div",
1903
+ {
1904
+ key: index,
1905
+ class: [
1906
+ "vxe-date-panel--time-item",
1907
+ {
1908
+ "is--disabled": item.disabled,
1909
+ "is--selected": datetimePanelValue && datetimePanelValue.getMinutes() === item.value
1910
+ }
1911
+ ],
1912
+ onClick: (evnt) => dateMinuteEvent(evnt, item)
1913
+ },
1914
+ item.label
1915
+ );
1916
+ });
1917
+ }
1915
1918
  }
1916
- }
1917
- ) : renderEmptyElement($xeDatePanel),
1918
- hasTimeMinute && hasTimeSecond ? h(
1919
- VxeScrollbarComponent,
1920
- {
1921
- autoHide: true,
1922
- class: "vxe-date-panel--time-second-list",
1923
- viewClassName: "vxe-date-panel--time-list-view",
1924
- viewInnerClassName: "vxe-date-panel--time-list-inner"
1925
- },
1926
- {
1927
- default: () => {
1928
- return secondList.map((item, index) => {
1929
- return h(
1930
- "div",
1931
- {
1932
- key: index,
1933
- class: [
1934
- "vxe-date-panel--time-item",
1935
- {
1936
- "is--disabled": item.disabled,
1937
- "is--selected": datetimePanelValue && datetimePanelValue.getSeconds() === item.value
1938
- }
1939
- ],
1940
- onClick: (evnt) => dateSecondEvent(evnt, item)
1941
- },
1942
- item.label
1943
- );
1944
- });
1919
+ ) : renderEmptyElement($xeDatePanel),
1920
+ hasTimeMinute && hasTimeSecond ? h(
1921
+ VxeScrollbarComponent,
1922
+ {
1923
+ autoHide: true,
1924
+ class: "vxe-date-panel--time-second-list",
1925
+ viewClassName: "vxe-date-panel--time-list-view",
1926
+ viewInnerClassName: "vxe-date-panel--time-list-inner"
1927
+ },
1928
+ {
1929
+ default: () => {
1930
+ return secondList.map((item, index) => {
1931
+ return h(
1932
+ "div",
1933
+ {
1934
+ key: index,
1935
+ class: [
1936
+ "vxe-date-panel--time-item",
1937
+ {
1938
+ "is--disabled": item.disabled,
1939
+ "is--selected": datetimePanelValue && datetimePanelValue.getSeconds() === item.value
1940
+ }
1941
+ ],
1942
+ onClick: (evnt) => dateSecondEvent(evnt, item)
1943
+ },
1944
+ item.label
1945
+ );
1946
+ });
1947
+ }
1945
1948
  }
1946
- }
1947
- ) : renderEmptyElement($xeDatePanel)
1948
- ]
1949
- )
1950
- ];
1951
- };
1952
- const renderPickerPanel = () => {
1953
- const { type } = props;
1954
- if (type === "datetime") {
1949
+ ) : renderEmptyElement($xeDatePanel)
1950
+ ]
1951
+ )
1952
+ ];
1953
+ };
1954
+ const renderPickerPanel = () => {
1955
+ const { type } = props;
1956
+ if (type === "datetime") {
1957
+ return h(
1958
+ "div",
1959
+ {
1960
+ key: type,
1961
+ ref: refPanelWrapper,
1962
+ class: "vxe-date-panel--time-layout-wrapper"
1963
+ },
1964
+ [
1965
+ h(
1966
+ "div",
1967
+ {
1968
+ class: "vxe-date-panel--time-left-wrapper"
1969
+ },
1970
+ renderDatePanel()
1971
+ ),
1972
+ h(
1973
+ "div",
1974
+ {
1975
+ class: "vxe-date-panel--time-right-wrapper"
1976
+ },
1977
+ renderTimePanel()
1978
+ )
1979
+ ]
1980
+ );
1981
+ } else if (type === "time") {
1982
+ return h(
1983
+ "div",
1984
+ {
1985
+ key: type,
1986
+ ref: refPanelWrapper,
1987
+ class: "vxe-date-panel--wrapper"
1988
+ },
1989
+ renderTimePanel()
1990
+ );
1991
+ }
1955
1992
  return h(
1956
1993
  "div",
1957
1994
  {
1958
- key: type,
1995
+ key: type || "default",
1959
1996
  ref: refPanelWrapper,
1960
- class: "vxe-date-panel--time-layout-wrapper"
1997
+ class: "vxe-date-panel--wrapper"
1961
1998
  },
1962
- [
1963
- h(
1964
- "div",
1965
- {
1966
- class: "vxe-date-panel--time-left-wrapper"
1967
- },
1968
- renderDatePanel()
1969
- ),
1970
- h(
1971
- "div",
1972
- {
1973
- class: "vxe-date-panel--time-right-wrapper"
1974
- },
1975
- renderTimePanel()
1976
- )
1977
- ]
1999
+ renderDatePanel()
1978
2000
  );
1979
- } else if (type === "time") {
2001
+ };
2002
+ const renderVN = () => {
2003
+ const { type } = props;
2004
+ const vSize = computeSize.value;
1980
2005
  return h(
1981
2006
  "div",
1982
2007
  {
1983
- key: type,
1984
- ref: refPanelWrapper,
1985
- class: "vxe-date-panel--wrapper"
2008
+ class: [
2009
+ "vxe-date-panel",
2010
+ `type--${type}`,
2011
+ {
2012
+ [`size--${vSize}`]: vSize
2013
+ }
2014
+ ]
1986
2015
  },
1987
- renderTimePanel()
2016
+ [renderPickerPanel()]
1988
2017
  );
1989
- }
1990
- return h(
1991
- "div",
1992
- {
1993
- key: type || "default",
1994
- ref: refPanelWrapper,
1995
- class: "vxe-date-panel--wrapper"
1996
- },
1997
- renderDatePanel()
2018
+ };
2019
+ watch(
2020
+ () => props.modelValue,
2021
+ (val) => {
2022
+ updateModelValue(val);
2023
+ changeValue();
2024
+ }
1998
2025
  );
1999
- };
2000
- const renderVN = () => {
2001
- const { type } = props;
2002
- const vSize = computeSize.value;
2003
- return h(
2004
- "div",
2005
- {
2006
- class: [
2007
- "vxe-date-panel",
2008
- `type--${type}`,
2009
- {
2010
- [`size--${vSize}`]: vSize
2011
- }
2012
- ]
2013
- },
2014
- [renderPickerPanel()]
2026
+ watch(
2027
+ () => props.type,
2028
+ () => {
2029
+ Object.assign(reactData, {
2030
+ inputLabel: "",
2031
+ datetimePanelValue: null,
2032
+ datePanelValue: null,
2033
+ datePanelLabel: "",
2034
+ datePanelType: "day",
2035
+ selectMonth: null,
2036
+ currentDate: null
2037
+ });
2038
+ initValue();
2039
+ }
2015
2040
  );
2016
- };
2017
- watch(
2018
- () => props.modelValue,
2019
- (val) => {
2020
- updateModelValue(val);
2021
- changeValue();
2022
- }
2023
- );
2024
- watch(
2025
- () => props.type,
2026
- () => {
2027
- Object.assign(reactData, {
2028
- inputLabel: "",
2029
- datetimePanelValue: null,
2030
- datePanelValue: null,
2031
- datePanelLabel: "",
2032
- datePanelType: "day",
2033
- selectMonth: null,
2034
- currentDate: null
2035
- });
2036
- initValue();
2037
- }
2038
- );
2039
- watch(computeDateLabelFormat, () => {
2040
- const isDatePanelType = computeIsDatePanelType.value;
2041
- if (isDatePanelType) {
2042
- dateParseValue(reactData.datePanelValue);
2043
- reactData.inputLabel = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
2044
- }
2045
- });
2046
- initValue();
2047
- dateOpenPanel();
2048
- onMounted(() => {
2049
- const { type, multiple } = props;
2050
- if (multiple && type === "time") {
2051
- errLog("vxe.error.notSupportProp", [`type=${type}`, "multiple=true", "multiple=false"]);
2052
- }
2053
- });
2054
- $xeDatePanel.renderVN = renderVN;
2055
- return $xeDatePanel;
2056
- },
2057
- render() {
2058
- return this.renderVN();
2059
- }
2060
- });
2041
+ watch(computeDateLabelFormat, () => {
2042
+ const isDatePanelType = computeIsDatePanelType.value;
2043
+ if (isDatePanelType) {
2044
+ dateParseValue(reactData.datePanelValue);
2045
+ reactData.inputLabel = props.multiple ? computeDateMultipleLabel.value : reactData.datePanelLabel;
2046
+ }
2047
+ });
2048
+ initValue();
2049
+ dateOpenPanel();
2050
+ onMounted(() => {
2051
+ const { type, multiple } = props;
2052
+ if (multiple && type === "time") {
2053
+ errLog("vxe.error.notSupportProp", [`type=${type}`, "multiple=true", "multiple=false"]);
2054
+ }
2055
+ });
2056
+ $xeDatePanel.renderVN = renderVN;
2057
+ return $xeDatePanel;
2058
+ },
2059
+ render() {
2060
+ return this.renderVN();
2061
+ }
2062
+ })
2063
+ );
2061
2064
  export {
2062
2065
  date_panel_default as default
2063
2066
  };