vxe-pc-ui 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/README.md +23 -25
  2. package/es/calendar/index.js +12 -0
  3. package/es/calendar/src/calendar.js +1227 -0
  4. package/es/calendar/style.css +247 -0
  5. package/es/calendar/style.min.css +1 -0
  6. package/es/checkbox/src/checkbox.js +6 -1
  7. package/es/checkbox/src/group.js +6 -1
  8. package/es/collapse/index.js +12 -0
  9. package/es/collapse/src/collapse-pane.js +39 -0
  10. package/es/collapse/src/collapse.js +39 -0
  11. package/es/collapse/style.css +0 -0
  12. package/es/collapse/style.min.css +0 -0
  13. package/es/collapse-pane/index.js +12 -0
  14. package/es/collapse-pane/style.css +0 -0
  15. package/es/collapse-pane/style.min.css +0 -0
  16. package/es/components.js +27 -27
  17. package/es/date-picker/src/date-picker.js +17 -13
  18. package/es/drawer/src/drawer.js +17 -12
  19. package/es/form/index.js +13 -0
  20. package/es/form/render/index.js +461 -0
  21. package/es/form/src/form-config-item.js +201 -0
  22. package/es/form/src/form-gather.js +87 -0
  23. package/es/form/src/form-item.js +291 -0
  24. package/es/form/src/form.js +762 -0
  25. package/es/form/src/itemInfo.js +43 -0
  26. package/es/form/src/render.js +78 -0
  27. package/es/form/src/util.js +66 -0
  28. package/es/form/style.css +470 -0
  29. package/es/form/style.min.css +1 -0
  30. package/es/form-gather/index.js +12 -0
  31. package/es/form-gather/style.css +0 -0
  32. package/es/form-gather/style.min.css +0 -0
  33. package/es/form-item/index.js +12 -0
  34. package/es/form-item/style.css +0 -0
  35. package/es/form-item/style.min.css +0 -0
  36. package/es/icon/style.css +1 -1
  37. package/es/icon-picker/src/icon-picker.js +5 -1
  38. package/es/image/src/preview.js +1 -2
  39. package/es/input/src/input.js +19 -15
  40. package/es/list/index.js +12 -0
  41. package/es/list/src/list.js +373 -0
  42. package/es/list/style.css +28 -0
  43. package/es/list/style.min.css +1 -0
  44. package/es/loading/src/loading.js +5 -0
  45. package/es/menu/src/menu.js +6 -2
  46. package/es/modal/src/modal.js +7 -4
  47. package/es/number-input/src/number-input.js +11 -7
  48. package/es/pager/style.css +303 -0
  49. package/es/pager/style.min.css +1 -0
  50. package/es/password-input/src/password-input.js +7 -3
  51. package/es/pulldown/src/pulldown.js +6 -2
  52. package/es/radio/src/button.js +6 -2
  53. package/es/radio/src/group.js +6 -2
  54. package/es/radio/src/radio.js +6 -2
  55. package/es/select/src/select.js +16 -1
  56. package/es/select/src/util.js +2 -1
  57. package/es/style.css +1 -1
  58. package/es/style.min.css +1 -1
  59. package/es/switch/src/switch.js +6 -2
  60. package/es/tabs/src/tabs.js +8 -3
  61. package/es/textarea/src/textarea.js +9 -5
  62. package/es/tooltip/src/tooltip.js +6 -1
  63. package/es/tree/index.js +12 -0
  64. package/es/tree/src/tree.js +1216 -0
  65. package/es/tree/style.css +219 -0
  66. package/es/tree/style.min.css +1 -0
  67. package/es/tree-select/index.js +12 -0
  68. package/es/tree-select/src/tree-select.js +685 -0
  69. package/es/tree-select/style.css +129 -0
  70. package/es/tree-select/style.min.css +1 -0
  71. package/es/ui/index.js +1 -1
  72. package/es/ui/src/log.js +1 -1
  73. package/es/ui/src/vn.js +1 -1
  74. package/es/upload/src/upload.js +9 -5
  75. package/es/vxe-calendar/index.js +3 -0
  76. package/es/vxe-calendar/style.css +247 -0
  77. package/es/vxe-calendar/style.min.css +1 -0
  78. package/es/vxe-collapse/index.js +3 -0
  79. package/es/vxe-collapse/style.css +0 -0
  80. package/es/vxe-collapse/style.min.css +0 -0
  81. package/es/vxe-collapse-pane/index.js +3 -0
  82. package/es/vxe-collapse-pane/style.css +0 -0
  83. package/es/vxe-collapse-pane/style.min.css +0 -0
  84. package/es/vxe-form/index.js +3 -0
  85. package/es/vxe-form/style.css +470 -0
  86. package/es/vxe-form/style.min.css +1 -0
  87. package/es/vxe-form-gather/index.js +3 -0
  88. package/es/vxe-form-gather/style.css +0 -0
  89. package/es/vxe-form-gather/style.min.css +0 -0
  90. package/es/vxe-form-item/index.js +3 -0
  91. package/es/vxe-form-item/style.css +0 -0
  92. package/es/vxe-form-item/style.min.css +0 -0
  93. package/es/vxe-list/index.js +3 -0
  94. package/es/vxe-list/style.css +28 -0
  95. package/es/vxe-list/style.min.css +1 -0
  96. package/es/vxe-pager/index.js +3 -0
  97. package/es/vxe-pager/style.css +303 -0
  98. package/es/vxe-pager/style.min.css +1 -0
  99. package/es/vxe-tree/index.js +3 -0
  100. package/es/vxe-tree/style.css +219 -0
  101. package/es/vxe-tree/style.min.css +1 -0
  102. package/es/vxe-tree-select/index.js +3 -0
  103. package/es/vxe-tree-select/style.css +129 -0
  104. package/es/vxe-tree-select/style.min.css +1 -0
  105. package/lib/calendar/index.js +19 -0
  106. package/lib/calendar/index.min.js +1 -0
  107. package/lib/calendar/src/calendar.js +1286 -0
  108. package/lib/calendar/src/calendar.min.js +1 -0
  109. package/lib/calendar/style/index.js +1 -0
  110. package/lib/calendar/style/style.css +247 -0
  111. package/lib/calendar/style/style.min.css +1 -0
  112. package/lib/checkbox/src/checkbox.js +6 -1
  113. package/lib/checkbox/src/checkbox.min.js +1 -1
  114. package/lib/checkbox/src/group.js +6 -1
  115. package/lib/checkbox/src/group.min.js +1 -1
  116. package/lib/collapse/index.js +19 -0
  117. package/lib/collapse/index.min.js +1 -0
  118. package/lib/collapse/src/collapse-pane.js +48 -0
  119. package/lib/collapse/src/collapse-pane.min.js +1 -0
  120. package/lib/collapse/src/collapse.js +48 -0
  121. package/lib/collapse/src/collapse.min.js +1 -0
  122. package/lib/collapse/style/index.js +1 -0
  123. package/lib/collapse/style/style.css +0 -0
  124. package/lib/collapse/style/style.min.css +0 -0
  125. package/lib/collapse-pane/index.js +19 -0
  126. package/lib/collapse-pane/index.min.js +1 -0
  127. package/lib/collapse-pane/style/index.js +1 -0
  128. package/lib/collapse-pane/style/style.css +0 -0
  129. package/lib/collapse-pane/style/style.min.css +0 -0
  130. package/lib/components.js +114 -39
  131. package/lib/components.min.js +1 -1
  132. package/lib/date-picker/src/date-picker.js +17 -13
  133. package/lib/date-picker/src/date-picker.min.js +1 -1
  134. package/lib/drawer/src/drawer.js +17 -12
  135. package/lib/drawer/src/drawer.min.js +1 -1
  136. package/lib/form/index.js +20 -0
  137. package/lib/form/index.min.js +1 -0
  138. package/lib/form/render/index.js +509 -0
  139. package/lib/form/render/index.min.js +1 -0
  140. package/lib/form/src/form-config-item.js +210 -0
  141. package/lib/form/src/form-config-item.min.js +1 -0
  142. package/lib/form/src/form-gather.js +99 -0
  143. package/lib/form/src/form-gather.min.js +1 -0
  144. package/lib/form/src/form-item.js +299 -0
  145. package/lib/form/src/form-item.min.js +1 -0
  146. package/lib/form/src/form.js +856 -0
  147. package/lib/form/src/form.min.js +1 -0
  148. package/lib/form/src/itemInfo.js +60 -0
  149. package/lib/form/src/itemInfo.min.js +1 -0
  150. package/lib/form/src/render.js +94 -0
  151. package/lib/form/src/render.min.js +1 -0
  152. package/lib/form/src/util.js +93 -0
  153. package/lib/form/src/util.min.js +1 -0
  154. package/lib/form/style/index.js +1 -0
  155. package/lib/form/style/style.css +470 -0
  156. package/lib/form/style/style.min.css +1 -0
  157. package/lib/form-gather/index.js +19 -0
  158. package/lib/form-gather/index.min.js +1 -0
  159. package/lib/form-gather/style/index.js +1 -0
  160. package/lib/form-gather/style/style.css +0 -0
  161. package/lib/form-gather/style/style.min.css +0 -0
  162. package/lib/form-item/index.js +19 -0
  163. package/lib/form-item/index.min.js +1 -0
  164. package/lib/form-item/style/index.js +1 -0
  165. package/lib/form-item/style/style.css +0 -0
  166. package/lib/form-item/style/style.min.css +0 -0
  167. package/lib/icon/style/style.css +1 -1
  168. package/lib/icon/style/style.min.css +1 -1
  169. package/lib/icon-picker/src/icon-picker.js +5 -1
  170. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  171. package/lib/image/src/preview.js +1 -2
  172. package/lib/image/src/preview.min.js +1 -1
  173. package/lib/index.umd.js +11284 -5009
  174. package/lib/index.umd.min.js +1 -1
  175. package/lib/input/src/input.js +19 -15
  176. package/lib/input/src/input.min.js +1 -1
  177. package/lib/list/index.js +19 -0
  178. package/lib/list/index.min.js +1 -0
  179. package/lib/list/src/list.js +415 -0
  180. package/lib/list/src/list.min.js +1 -0
  181. package/lib/list/style/index.js +1 -0
  182. package/lib/list/style/style.css +28 -0
  183. package/lib/list/style/style.min.css +1 -0
  184. package/lib/loading/src/loading.js +5 -0
  185. package/lib/loading/src/loading.min.js +1 -1
  186. package/lib/menu/src/menu.js +6 -2
  187. package/lib/menu/src/menu.min.js +1 -1
  188. package/lib/modal/src/modal.js +7 -4
  189. package/lib/modal/src/modal.min.js +1 -1
  190. package/lib/number-input/src/number-input.js +11 -7
  191. package/lib/number-input/src/number-input.min.js +1 -1
  192. package/lib/pager/style/index.js +1 -0
  193. package/lib/pager/style/style.css +303 -0
  194. package/lib/pager/style/style.min.css +1 -0
  195. package/lib/password-input/src/password-input.js +7 -3
  196. package/lib/password-input/src/password-input.min.js +1 -1
  197. package/lib/pulldown/src/pulldown.js +6 -2
  198. package/lib/pulldown/src/pulldown.min.js +1 -1
  199. package/lib/radio/src/button.js +6 -2
  200. package/lib/radio/src/button.min.js +1 -1
  201. package/lib/radio/src/group.js +6 -2
  202. package/lib/radio/src/group.min.js +1 -1
  203. package/lib/radio/src/radio.js +6 -2
  204. package/lib/radio/src/radio.min.js +1 -1
  205. package/lib/select/src/select.js +16 -1
  206. package/lib/select/src/select.min.js +1 -1
  207. package/lib/select/src/util.js +2 -1
  208. package/lib/style.css +1 -1
  209. package/lib/style.min.css +1 -1
  210. package/lib/switch/src/switch.js +6 -2
  211. package/lib/switch/src/switch.min.js +1 -1
  212. package/lib/tabs/src/tabs.js +8 -3
  213. package/lib/tabs/src/tabs.min.js +1 -1
  214. package/lib/textarea/src/textarea.js +9 -5
  215. package/lib/textarea/src/textarea.min.js +1 -1
  216. package/lib/tooltip/src/tooltip.js +6 -1
  217. package/lib/tooltip/src/tooltip.min.js +1 -1
  218. package/lib/tree/index.js +19 -0
  219. package/lib/tree/index.min.js +1 -0
  220. package/lib/tree/src/tree.js +1324 -0
  221. package/lib/tree/src/tree.min.js +1 -0
  222. package/lib/tree/style/index.js +1 -0
  223. package/lib/tree/style/style.css +219 -0
  224. package/lib/tree/style/style.min.css +1 -0
  225. package/lib/tree-select/index.js +19 -0
  226. package/lib/tree-select/index.min.js +1 -0
  227. package/lib/tree-select/src/tree-select.js +695 -0
  228. package/lib/tree-select/src/tree-select.min.js +1 -0
  229. package/lib/tree-select/style/index.js +1 -0
  230. package/lib/tree-select/style/style.css +129 -0
  231. package/lib/tree-select/style/style.min.css +1 -0
  232. package/lib/ui/index.js +1 -1
  233. package/lib/ui/index.min.js +1 -1
  234. package/lib/ui/src/log.js +1 -1
  235. package/lib/ui/src/log.min.js +1 -1
  236. package/lib/ui/src/vn.js +1 -1
  237. package/lib/ui/src/vn.min.js +1 -1
  238. package/lib/upload/src/upload.js +9 -5
  239. package/lib/upload/src/upload.min.js +1 -1
  240. package/lib/vxe-calendar/index.js +23 -0
  241. package/lib/vxe-calendar/index.min.js +1 -0
  242. package/lib/vxe-calendar/style/index.js +1 -0
  243. package/lib/vxe-calendar/style/style.css +247 -0
  244. package/lib/vxe-calendar/style/style.min.css +1 -0
  245. package/lib/vxe-collapse/index.js +23 -0
  246. package/lib/vxe-collapse/index.min.js +1 -0
  247. package/lib/vxe-collapse/style/index.js +1 -0
  248. package/lib/vxe-collapse/style/style.css +0 -0
  249. package/lib/vxe-collapse/style/style.min.css +0 -0
  250. package/lib/vxe-collapse-pane/index.js +23 -0
  251. package/lib/vxe-collapse-pane/index.min.js +1 -0
  252. package/lib/vxe-collapse-pane/style/index.js +1 -0
  253. package/lib/vxe-collapse-pane/style/style.css +0 -0
  254. package/lib/vxe-collapse-pane/style/style.min.css +0 -0
  255. package/lib/vxe-form/index.js +23 -0
  256. package/lib/vxe-form/index.min.js +1 -0
  257. package/lib/vxe-form/style/index.js +1 -0
  258. package/lib/vxe-form/style/style.css +470 -0
  259. package/lib/vxe-form/style/style.min.css +1 -0
  260. package/lib/vxe-form-gather/index.js +23 -0
  261. package/lib/vxe-form-gather/index.min.js +1 -0
  262. package/lib/vxe-form-gather/style/index.js +1 -0
  263. package/lib/vxe-form-gather/style/style.css +0 -0
  264. package/lib/vxe-form-gather/style/style.min.css +0 -0
  265. package/lib/vxe-form-item/index.js +23 -0
  266. package/lib/vxe-form-item/index.min.js +1 -0
  267. package/lib/vxe-form-item/style/index.js +1 -0
  268. package/lib/vxe-form-item/style/style.css +0 -0
  269. package/lib/vxe-form-item/style/style.min.css +0 -0
  270. package/lib/vxe-list/index.js +23 -0
  271. package/lib/vxe-list/index.min.js +1 -0
  272. package/lib/vxe-list/style/index.js +1 -0
  273. package/lib/vxe-list/style/style.css +28 -0
  274. package/lib/vxe-list/style/style.min.css +1 -0
  275. package/lib/vxe-pager/index.js +23 -0
  276. package/lib/vxe-pager/index.min.js +1 -0
  277. package/lib/vxe-pager/style/index.js +1 -0
  278. package/lib/vxe-pager/style/style.css +303 -0
  279. package/lib/vxe-pager/style/style.min.css +1 -0
  280. package/lib/vxe-tree/index.js +23 -0
  281. package/lib/vxe-tree/index.min.js +1 -0
  282. package/lib/vxe-tree/style/index.js +1 -0
  283. package/lib/vxe-tree/style/style.css +219 -0
  284. package/lib/vxe-tree/style/style.min.css +1 -0
  285. package/lib/vxe-tree-select/index.js +23 -0
  286. package/lib/vxe-tree-select/index.min.js +1 -0
  287. package/lib/vxe-tree-select/style/index.js +1 -0
  288. package/lib/vxe-tree-select/style/style.css +129 -0
  289. package/lib/vxe-tree-select/style/style.min.css +1 -0
  290. package/package.json +1 -1
  291. package/packages/calendar/index.ts +16 -0
  292. package/packages/calendar/src/calendar.ts +1281 -0
  293. package/packages/checkbox/src/checkbox.ts +7 -1
  294. package/packages/checkbox/src/group.ts +8 -2
  295. package/packages/collapse/index.ts +16 -0
  296. package/packages/collapse/src/collapse-pane.ts +47 -0
  297. package/packages/collapse/src/collapse.ts +47 -0
  298. package/packages/collapse-pane/index.ts +16 -0
  299. package/packages/components.ts +27 -27
  300. package/packages/date-picker/src/date-picker.ts +18 -13
  301. package/packages/drawer/src/drawer.ts +18 -12
  302. package/packages/form/index.ts +17 -0
  303. package/packages/form/render/index.ts +499 -0
  304. package/packages/form/src/form-config-item.ts +219 -0
  305. package/packages/form/src/form-gather.ts +104 -0
  306. package/packages/form/src/form-item.ts +322 -0
  307. package/packages/form/src/form.ts +809 -0
  308. package/packages/form/src/itemInfo.ts +47 -0
  309. package/packages/form/src/render.ts +98 -0
  310. package/packages/form/src/util.ts +80 -0
  311. package/packages/form-gather/index.ts +16 -0
  312. package/packages/form-item/index.ts +16 -0
  313. package/packages/icon-picker/src/icon-picker.ts +6 -1
  314. package/packages/image/src/preview.ts +1 -2
  315. package/packages/input/src/input.ts +20 -15
  316. package/packages/layout-footer/src/layout-footer.ts +1 -0
  317. package/packages/list/index.ts +16 -0
  318. package/packages/list/src/list.ts +403 -0
  319. package/packages/loading/src/loading.ts +6 -0
  320. package/packages/menu/src/menu.ts +7 -2
  321. package/packages/modal/src/modal.ts +8 -4
  322. package/packages/number-input/src/number-input.ts +12 -7
  323. package/packages/password-input/src/password-input.ts +8 -3
  324. package/packages/pulldown/src/pulldown.ts +7 -2
  325. package/packages/radio/src/button.ts +7 -2
  326. package/packages/radio/src/group.ts +7 -2
  327. package/packages/radio/src/radio.ts +7 -2
  328. package/packages/select/src/select.ts +17 -1
  329. package/packages/select/src/util.ts +4 -3
  330. package/packages/switch/src/switch.ts +7 -2
  331. package/packages/tabs/src/tabs.ts +9 -3
  332. package/packages/textarea/src/textarea.ts +10 -5
  333. package/packages/tooltip/src/tooltip.ts +7 -1
  334. package/packages/tree/index.ts +16 -0
  335. package/packages/tree/src/tree.ts +1292 -0
  336. package/packages/tree-select/index.ts +16 -0
  337. package/packages/tree-select/src/tree-select.ts +743 -0
  338. package/packages/ui/src/vn.ts +1 -1
  339. package/packages/upload/src/upload.ts +10 -5
  340. package/types/components/calendar.d.ts +6 -0
  341. package/types/components/colgroup.d.ts +1 -0
  342. package/types/components/column.d.ts +1 -0
  343. package/types/components/drawer.d.ts +11 -10
  344. package/types/components/form-item.d.ts +1 -1
  345. package/types/components/form.d.ts +8 -1
  346. package/types/components/list.d.ts +1 -0
  347. package/types/components/table.d.ts +43 -4
  348. package/types/components/toolbar.d.ts +5 -0
  349. package/types/components/tree-select.d.ts +4 -0
  350. package/types/ui/index.d.ts +0 -5
  351. package/types/ui/renderer.d.ts +37 -36
  352. package/types/handles/form-design.d.ts +0 -4
  353. package/types/handles/index.d.ts +0 -3
  354. package/types/handles/list-design.d.ts +0 -4
  355. package/types/handles/table.d.ts +0 -4
  356. /package/es/icon/style/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
  357. /package/es/icon/style/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
  358. /package/es/icon/style/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
  359. /package/es/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
  360. /package/es/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
  361. /package/es/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
  362. /package/lib/icon/style/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
  363. /package/lib/icon/style/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
  364. /package/lib/icon/style/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
  365. /package/lib/{iconfont.1725723159302.ttf → iconfont.1725869586078.ttf} +0 -0
  366. /package/lib/{iconfont.1725723159302.woff → iconfont.1725869586078.woff} +0 -0
  367. /package/lib/{iconfont.1725723159302.woff2 → iconfont.1725869586078.woff2} +0 -0
@@ -0,0 +1,1227 @@
1
+ import { defineVxeComponent } from '../../ui/src/comp';
2
+ import XEUtils from 'xe-utils';
3
+ import { getConfig, getI18n, createEvent, globalMixins } from '../../ui';
4
+ import { getDateQuarter } from '../../date-picker/src/util';
5
+ import { toCssUnit } from '../..//ui/src/dom';
6
+ import VxeButtonComponent from '../../button/src/button';
7
+ export default defineVxeComponent({
8
+ name: 'VxeCalendar',
9
+ mixins: [
10
+ globalMixins.sizeMixin
11
+ ],
12
+ props: {
13
+ value: [String, Number, Date],
14
+ type: {
15
+ type: String,
16
+ default: 'date'
17
+ },
18
+ className: String,
19
+ size: {
20
+ type: String,
21
+ default: () => getConfig().calendar.size || getConfig().size
22
+ },
23
+ multiple: Boolean,
24
+ width: [String, Number],
25
+ height: [String, Number],
26
+ // date、week、month、quarter、year
27
+ minDate: {
28
+ type: [String, Number, Date],
29
+ default: () => getConfig().calendar.minDate
30
+ },
31
+ maxDate: {
32
+ type: [String, Number, Date],
33
+ default: () => getConfig().calendar.maxDate
34
+ },
35
+ startDay: {
36
+ type: [String, Number],
37
+ default: () => getConfig().calendar.startDay
38
+ },
39
+ labelFormat: String,
40
+ valueFormat: String,
41
+ festivalMethod: {
42
+ type: Function,
43
+ default: () => getConfig().calendar.festivalMethod
44
+ },
45
+ disabledMethod: {
46
+ type: Function,
47
+ default: () => getConfig().calendar.disabledMethod
48
+ },
49
+ // week
50
+ selectDay: {
51
+ type: [String, Number],
52
+ default: () => getConfig().calendar.selectDay
53
+ }
54
+ },
55
+ data() {
56
+ const reactData = {
57
+ selectValue: null,
58
+ inputValue: null,
59
+ datePanelValue: null,
60
+ datePanelLabel: '',
61
+ datePanelType: 'day',
62
+ selectMonth: null,
63
+ currentDate: null
64
+ };
65
+ const internalData = {
66
+ yearSize: 12,
67
+ monthSize: 20,
68
+ quarterSize: 8
69
+ };
70
+ return {
71
+ xID: XEUtils.uniqueId(),
72
+ reactData,
73
+ internalData
74
+ };
75
+ },
76
+ computed: Object.assign(Object.assign({}, {}), { computeCalendarStyle() {
77
+ const $xeCalendar = this;
78
+ const props = $xeCalendar;
79
+ const { height, width } = props;
80
+ const stys = {};
81
+ if (width) {
82
+ stys.width = toCssUnit(width);
83
+ }
84
+ if (height) {
85
+ stys.height = toCssUnit(height);
86
+ }
87
+ return stys;
88
+ },
89
+ computeIsDisabled() {
90
+ return false;
91
+ },
92
+ computeIsCalendarType() {
93
+ const $xeCalendar = this;
94
+ const props = $xeCalendar;
95
+ return ['date', 'week', 'month', 'quarter', 'year'].includes(props.type);
96
+ },
97
+ computeDateStartTime() {
98
+ const $xeCalendar = this;
99
+ const props = $xeCalendar;
100
+ return props.minDate ? XEUtils.toStringDate(props.minDate) : null;
101
+ },
102
+ computeDateEndTime() {
103
+ const $xeCalendar = this;
104
+ const props = $xeCalendar;
105
+ return props.maxDate ? XEUtils.toStringDate(props.maxDate) : null;
106
+ },
107
+ computeSupportMultiples() {
108
+ const $xeCalendar = this;
109
+ const props = $xeCalendar;
110
+ return ['date', 'week', 'month', 'quarter', 'year'].indexOf(props.type) > -1;
111
+ },
112
+ computeDateListValue() {
113
+ const $xeCalendar = this;
114
+ const props = $xeCalendar;
115
+ const reactData = $xeCalendar.reactData;
116
+ const { multiple } = props;
117
+ const { selectValue } = reactData;
118
+ const isCalendarType = $xeCalendar.computeIsCalendarType;
119
+ const dateValueFormat = $xeCalendar.computeDateValueFormat;
120
+ if (multiple && selectValue && isCalendarType) {
121
+ return XEUtils.toValueString(selectValue).split(',').map(item => {
122
+ const date = $xeCalendar.parseDate(item, dateValueFormat);
123
+ if (XEUtils.isValidDate(date)) {
124
+ return date;
125
+ }
126
+ return date;
127
+ });
128
+ }
129
+ return [];
130
+ },
131
+ computeDateMultipleValue() {
132
+ const $xeCalendar = this;
133
+ const dateListValue = $xeCalendar.computeDateListValue;
134
+ const dateValueFormat = $xeCalendar.computeDateValueFormat;
135
+ return dateListValue.map(date => XEUtils.toDateString(date, dateValueFormat));
136
+ },
137
+ computeDateMultipleLabel() {
138
+ const $xeCalendar = this;
139
+ const dateListValue = $xeCalendar.computeDateListValue;
140
+ const dateLabelFormat = $xeCalendar.computeDateLabelFormat;
141
+ return dateListValue.map(date => XEUtils.toDateString(date, dateLabelFormat)).join(', ');
142
+ },
143
+ computeDateValueFormat() {
144
+ const $xeCalendar = this;
145
+ const props = $xeCalendar;
146
+ const { valueFormat } = props;
147
+ if (valueFormat) {
148
+ return valueFormat;
149
+ }
150
+ return 'yyyy-MM-dd';
151
+ },
152
+ computeDateValue() {
153
+ const $xeCalendar = this;
154
+ const reactData = $xeCalendar.reactData;
155
+ const { selectValue } = reactData;
156
+ const isCalendarType = $xeCalendar.computeIsCalendarType;
157
+ const dateValueFormat = $xeCalendar.computeDateValueFormat;
158
+ let val = null;
159
+ if (selectValue && isCalendarType) {
160
+ const date = $xeCalendar.parseDate(selectValue, dateValueFormat);
161
+ if (XEUtils.isValidDate(date)) {
162
+ val = date;
163
+ }
164
+ }
165
+ return val;
166
+ },
167
+ computeIsDisabledPrevDateBtn() {
168
+ const $xeCalendar = this;
169
+ const reactData = $xeCalendar.reactData;
170
+ const dateStartTime = $xeCalendar.computeDateStartTime;
171
+ const { selectMonth } = reactData;
172
+ if (selectMonth && dateStartTime) {
173
+ return selectMonth <= dateStartTime;
174
+ }
175
+ return false;
176
+ },
177
+ computeIsDisabledNextDateBtn() {
178
+ const $xeCalendar = this;
179
+ const reactData = $xeCalendar.reactData;
180
+ const dateEndTime = $xeCalendar.computeDateEndTime;
181
+ const { selectMonth } = reactData;
182
+ if (selectMonth && dateEndTime) {
183
+ return selectMonth >= dateEndTime;
184
+ }
185
+ return false;
186
+ },
187
+ computeDateHMSTime() {
188
+ const $xeCalendar = this;
189
+ const dateValue = $xeCalendar.computeDateValue;
190
+ return dateValue ? (dateValue.getHours() * 3600 + dateValue.getMinutes() * 60 + dateValue.getSeconds()) * 1000 : 0;
191
+ },
192
+ computeDateLabelFormat() {
193
+ const $xeCalendar = this;
194
+ const props = $xeCalendar;
195
+ const { labelFormat } = props;
196
+ const isCalendarType = $xeCalendar.computeIsCalendarType;
197
+ const dateValueFormat = $xeCalendar.computeDateValueFormat;
198
+ if (isCalendarType) {
199
+ return labelFormat || dateValueFormat || getI18n(`vxe.input.date.labelFormat.${props.type}`);
200
+ }
201
+ return '';
202
+ },
203
+ computeYearList() {
204
+ const $xeCalendar = this;
205
+ const reactData = $xeCalendar.reactData;
206
+ const internalData = $xeCalendar.internalData;
207
+ const { selectMonth, currentDate } = reactData;
208
+ const { yearSize } = internalData;
209
+ const years = [];
210
+ if (selectMonth && currentDate) {
211
+ const currFullYear = currentDate.getFullYear();
212
+ const selectFullYear = selectMonth.getFullYear();
213
+ const startYearDate = new Date(selectFullYear - selectFullYear % yearSize, 0, 1);
214
+ for (let index = -4; index < yearSize + 4; index++) {
215
+ const date = XEUtils.getWhatYear(startYearDate, index, 'first');
216
+ const itemFullYear = date.getFullYear();
217
+ years.push({
218
+ date,
219
+ isCurrent: true,
220
+ isPrev: index < 0,
221
+ isNow: currFullYear === itemFullYear,
222
+ isNext: index >= yearSize,
223
+ year: itemFullYear
224
+ });
225
+ }
226
+ }
227
+ return years;
228
+ },
229
+ computeSelectDatePanelLabel() {
230
+ const $xeCalendar = this;
231
+ const reactData = $xeCalendar.reactData;
232
+ const isCalendarType = $xeCalendar.computeIsCalendarType;
233
+ if (isCalendarType) {
234
+ const { datePanelType, selectMonth } = reactData;
235
+ const yearList = $xeCalendar.computeYearList;
236
+ let year = '';
237
+ let month;
238
+ if (selectMonth) {
239
+ year = selectMonth.getFullYear();
240
+ month = selectMonth.getMonth() + 1;
241
+ }
242
+ if (datePanelType === 'quarter') {
243
+ return getI18n('vxe.input.date.quarterLabel', [year]);
244
+ }
245
+ else if (datePanelType === 'month') {
246
+ return getI18n('vxe.input.date.monthLabel', [year]);
247
+ }
248
+ else if (datePanelType === 'year') {
249
+ return yearList.length ? `${yearList[0].year} - ${yearList[yearList.length - 1].year}` : '';
250
+ }
251
+ return getI18n('vxe.input.date.dayLabel', [year, month ? getI18n(`vxe.input.date.m${month}`) : '-']);
252
+ }
253
+ return '';
254
+ },
255
+ computeFirstDayOfWeek() {
256
+ const $xeCalendar = this;
257
+ const props = $xeCalendar;
258
+ const { startDay } = props;
259
+ return XEUtils.toNumber(startDay);
260
+ },
261
+ computeWeekDatas() {
262
+ const $xeCalendar = this;
263
+ const weeks = [];
264
+ const isCalendarType = $xeCalendar.computeIsCalendarType;
265
+ if (isCalendarType) {
266
+ let sWeek = $xeCalendar.computeFirstDayOfWeek;
267
+ weeks.push(sWeek);
268
+ for (let index = 0; index < 6; index++) {
269
+ if (sWeek >= 6) {
270
+ sWeek = 0;
271
+ }
272
+ else {
273
+ sWeek++;
274
+ }
275
+ weeks.push(sWeek);
276
+ }
277
+ }
278
+ return weeks;
279
+ },
280
+ computeDateHeaders() {
281
+ const $xeCalendar = this;
282
+ const isCalendarType = $xeCalendar.computeIsCalendarType;
283
+ if (isCalendarType) {
284
+ const weekDatas = $xeCalendar.computeWeekDatas;
285
+ return weekDatas.map((day) => {
286
+ return {
287
+ value: day,
288
+ label: getI18n(`vxe.input.date.weeks.w${day}`)
289
+ };
290
+ });
291
+ }
292
+ return [];
293
+ },
294
+ computeWeekHeaders() {
295
+ const $xeCalendar = this;
296
+ const isCalendarType = $xeCalendar.computeIsCalendarType;
297
+ if (isCalendarType) {
298
+ const dateHeaders = $xeCalendar.computeDateHeaders;
299
+ return [{ label: getI18n('vxe.input.date.weeks.w') }].concat(dateHeaders);
300
+ }
301
+ return [];
302
+ },
303
+ computeYearDatas() {
304
+ const $xeCalendar = this;
305
+ const yearList = $xeCalendar.computeYearList;
306
+ return XEUtils.chunk(yearList, 4);
307
+ },
308
+ computeQuarterList() {
309
+ const $xeCalendar = this;
310
+ const reactData = $xeCalendar.reactData;
311
+ const internalData = $xeCalendar.internalData;
312
+ const { selectMonth, currentDate } = reactData;
313
+ const { quarterSize } = internalData;
314
+ const quarters = [];
315
+ if (selectMonth && currentDate) {
316
+ const currFullYear = currentDate.getFullYear();
317
+ const currQuarter = getDateQuarter(currentDate);
318
+ const firstYear = XEUtils.getWhatYear(selectMonth, 0, 'first');
319
+ const selFullYear = firstYear.getFullYear();
320
+ for (let index = -2; index < quarterSize - 2; index++) {
321
+ const date = XEUtils.getWhatQuarter(firstYear, index);
322
+ const itemFullYear = date.getFullYear();
323
+ const itemQuarter = getDateQuarter(date);
324
+ const isPrev = itemFullYear < selFullYear;
325
+ quarters.push({
326
+ date,
327
+ isPrev,
328
+ isCurrent: itemFullYear === selFullYear,
329
+ isNow: itemFullYear === currFullYear && itemQuarter === currQuarter,
330
+ isNext: !isPrev && itemFullYear > selFullYear,
331
+ quarter: itemQuarter
332
+ });
333
+ }
334
+ }
335
+ return quarters;
336
+ },
337
+ computeQuarterDatas() {
338
+ const $xeCalendar = this;
339
+ const quarterList = $xeCalendar.computeQuarterList;
340
+ return XEUtils.chunk(quarterList, 2);
341
+ },
342
+ computeMonthList() {
343
+ const $xeCalendar = this;
344
+ const reactData = $xeCalendar.reactData;
345
+ const internalData = $xeCalendar.internalData;
346
+ const { selectMonth, currentDate } = reactData;
347
+ const { monthSize } = internalData;
348
+ const months = [];
349
+ if (selectMonth && currentDate) {
350
+ const currFullYear = currentDate.getFullYear();
351
+ const currMonth = currentDate.getMonth();
352
+ const selFullYear = XEUtils.getWhatYear(selectMonth, 0, 'first').getFullYear();
353
+ for (let index = -4; index < monthSize - 4; index++) {
354
+ const date = XEUtils.getWhatYear(selectMonth, 0, index);
355
+ const itemFullYear = date.getFullYear();
356
+ const itemMonth = date.getMonth();
357
+ const isPrev = itemFullYear < selFullYear;
358
+ months.push({
359
+ date,
360
+ isPrev,
361
+ isCurrent: itemFullYear === selFullYear,
362
+ isNow: itemFullYear === currFullYear && itemMonth === currMonth,
363
+ isNext: !isPrev && itemFullYear > selFullYear,
364
+ month: itemMonth
365
+ });
366
+ }
367
+ }
368
+ return months;
369
+ },
370
+ computeMonthDatas() {
371
+ const $xeCalendar = this;
372
+ const monthList = $xeCalendar.computeMonthList;
373
+ return XEUtils.chunk(monthList, 4);
374
+ },
375
+ computeDayList() {
376
+ const $xeCalendar = this;
377
+ const reactData = $xeCalendar.reactData;
378
+ const { selectMonth, currentDate } = reactData;
379
+ const days = [];
380
+ if (selectMonth && currentDate) {
381
+ const dateHMSTime = $xeCalendar.computeDateHMSTime;
382
+ const weekDatas = $xeCalendar.computeWeekDatas;
383
+ const currFullYear = currentDate.getFullYear();
384
+ const currMonth = currentDate.getMonth();
385
+ const currDate = currentDate.getDate();
386
+ const selFullYear = selectMonth.getFullYear();
387
+ const selMonth = selectMonth.getMonth();
388
+ const selDay = selectMonth.getDay();
389
+ const prevOffsetDate = -weekDatas.indexOf(selDay);
390
+ const startDayDate = new Date(XEUtils.getWhatDay(selectMonth, prevOffsetDate).getTime() + dateHMSTime);
391
+ for (let index = 0; index < 42; index++) {
392
+ const date = XEUtils.getWhatDay(startDayDate, index);
393
+ const itemFullYear = date.getFullYear();
394
+ const itemMonth = date.getMonth();
395
+ const itemDate = date.getDate();
396
+ const isPrev = date < selectMonth;
397
+ days.push({
398
+ date,
399
+ isPrev,
400
+ isCurrent: itemFullYear === selFullYear && itemMonth === selMonth,
401
+ isNow: itemFullYear === currFullYear && itemMonth === currMonth && itemDate === currDate,
402
+ isNext: !isPrev && selMonth !== itemMonth,
403
+ label: itemDate
404
+ });
405
+ }
406
+ }
407
+ return days;
408
+ },
409
+ computeDayDatas() {
410
+ const $xeCalendar = this;
411
+ const dayList = $xeCalendar.computeDayList;
412
+ return XEUtils.chunk(dayList, 7);
413
+ },
414
+ computeWeekDates() {
415
+ const $xeCalendar = this;
416
+ const dayDatas = $xeCalendar.computeDayDatas;
417
+ const firstDayOfWeek = $xeCalendar.computeFirstDayOfWeek;
418
+ return dayDatas.map((list) => {
419
+ const firstItem = list[0];
420
+ const item = {
421
+ date: firstItem.date,
422
+ isWeekNumber: true,
423
+ isPrev: false,
424
+ isCurrent: false,
425
+ isNow: false,
426
+ isNext: false,
427
+ label: XEUtils.getYearWeek(firstItem.date, firstDayOfWeek)
428
+ };
429
+ return [item].concat(list);
430
+ });
431
+ } }),
432
+ methods: {
433
+ //
434
+ // Method
435
+ //
436
+ dispatchEvent(type, params, evnt) {
437
+ const $xeCalendar = this;
438
+ $xeCalendar.$emit(type, createEvent(evnt, { $input: $xeCalendar }, params));
439
+ },
440
+ emitModel(value) {
441
+ const $xeCalendar = this;
442
+ $xeCalendar.$emit('modelValue', value);
443
+ $xeCalendar.$emit('input', value);
444
+ },
445
+ parseDate(value, format) {
446
+ return XEUtils.toStringDate(value, format);
447
+ },
448
+ handleChange(value, evnt) {
449
+ const $xeCalendar = this;
450
+ const props = $xeCalendar;
451
+ const reactData = $xeCalendar.reactData;
452
+ reactData.inputValue = value;
453
+ $xeCalendar.emitModel(value);
454
+ if (XEUtils.toValueString(props.value) !== value) {
455
+ $xeCalendar.dispatchEvent('change', { value }, evnt);
456
+ }
457
+ },
458
+ dateParseValue(value) {
459
+ const $xeCalendar = this;
460
+ const props = $xeCalendar;
461
+ const reactData = $xeCalendar.reactData;
462
+ const { type } = props;
463
+ const dateLabelFormat = $xeCalendar.computeDateLabelFormat;
464
+ const dateValueFormat = $xeCalendar.computeDateValueFormat;
465
+ const firstDayOfWeek = $xeCalendar.computeFirstDayOfWeek;
466
+ let dValue = null;
467
+ let dLabel = '';
468
+ if (value) {
469
+ dValue = $xeCalendar.parseDate(value, dateValueFormat);
470
+ }
471
+ if (XEUtils.isValidDate(dValue)) {
472
+ dLabel = XEUtils.toDateString(dValue, dateLabelFormat, { firstDay: firstDayOfWeek });
473
+ // 由于年份和第几周是冲突的行为,所以需要特殊处理,判断是否跨年
474
+ if (dateLabelFormat && type === 'week') {
475
+ const firstWeekDate = XEUtils.getWhatWeek(dValue, 0, firstDayOfWeek, firstDayOfWeek);
476
+ if (firstWeekDate.getFullYear() < dValue.getFullYear()) {
477
+ const yyIndex = dateLabelFormat.indexOf('yyyy');
478
+ if (yyIndex > -1) {
479
+ const yyNum = Number(dLabel.substring(yyIndex, yyIndex + 4));
480
+ if (yyNum && !isNaN(yyNum)) {
481
+ dLabel = dLabel.replace(`${yyNum}`, `${yyNum - 1}`);
482
+ }
483
+ }
484
+ }
485
+ }
486
+ }
487
+ else {
488
+ dValue = null;
489
+ }
490
+ reactData.datePanelValue = dValue;
491
+ reactData.datePanelLabel = dLabel;
492
+ },
493
+ /**
494
+ * 值变化时处理
495
+ */
496
+ changeValue() {
497
+ const $xeCalendar = this;
498
+ const props = $xeCalendar;
499
+ const reactData = $xeCalendar.reactData;
500
+ const isCalendarType = $xeCalendar.computeIsCalendarType;
501
+ const { inputValue } = reactData;
502
+ if (isCalendarType) {
503
+ $xeCalendar.dateParseValue(inputValue);
504
+ reactData.inputValue = props.multiple ? $xeCalendar.computeDateMultipleLabel : reactData.datePanelLabel;
505
+ }
506
+ },
507
+ /**
508
+ * 检查初始值
509
+ */
510
+ initValue() {
511
+ const $xeCalendar = this;
512
+ const isCalendarType = $xeCalendar.computeIsCalendarType;
513
+ if (isCalendarType) {
514
+ $xeCalendar.changeValue();
515
+ }
516
+ },
517
+ dateCheckMonth(date) {
518
+ const $xeCalendar = this;
519
+ const reactData = $xeCalendar.reactData;
520
+ const month = XEUtils.getWhatMonth(date, 0, 'first');
521
+ if (!XEUtils.isEqual(month, reactData.selectMonth)) {
522
+ reactData.selectMonth = month;
523
+ }
524
+ },
525
+ dateChange(date) {
526
+ const $xeCalendar = this;
527
+ const props = $xeCalendar;
528
+ const reactData = $xeCalendar.reactData;
529
+ const { value, multiple } = props;
530
+ const dateValueFormat = $xeCalendar.computeDateValueFormat;
531
+ const firstDayOfWeek = $xeCalendar.computeFirstDayOfWeek;
532
+ if (props.type === 'week') {
533
+ const sWeek = XEUtils.toNumber(props.selectDay);
534
+ date = XEUtils.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
535
+ }
536
+ const inpVal = XEUtils.toDateString(date, dateValueFormat, { firstDay: firstDayOfWeek });
537
+ $xeCalendar.dateCheckMonth(date);
538
+ reactData.selectValue = date;
539
+ if (multiple) {
540
+ // 如果为多选
541
+ const dateMultipleValue = $xeCalendar.computeDateMultipleValue;
542
+ // 如果是日期类型
543
+ if (dateMultipleValue.some(val => XEUtils.isEqual(val, inpVal))) {
544
+ $xeCalendar.handleChange(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' });
545
+ }
546
+ else {
547
+ $xeCalendar.handleChange(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' });
548
+ }
549
+ }
550
+ else {
551
+ // 如果为单选
552
+ if (!XEUtils.isEqual(value, inpVal)) {
553
+ $xeCalendar.handleChange(inpVal, { type: 'update' });
554
+ }
555
+ }
556
+ },
557
+ dateMonthHandle(date, offsetMonth) {
558
+ const $xeCalendar = this;
559
+ const reactData = $xeCalendar.reactData;
560
+ reactData.selectMonth = XEUtils.getWhatMonth(date, offsetMonth, 'first');
561
+ },
562
+ dateNowHandle() {
563
+ const $xeCalendar = this;
564
+ const reactData = $xeCalendar.reactData;
565
+ const currentDate = XEUtils.getWhatDay(Date.now(), 0, 'first');
566
+ reactData.currentDate = currentDate;
567
+ $xeCalendar.dateMonthHandle(currentDate, 0);
568
+ },
569
+ dateToggleTypeEvent() {
570
+ const $xeCalendar = this;
571
+ const reactData = $xeCalendar.reactData;
572
+ let { datePanelType } = reactData;
573
+ if (datePanelType === 'month' || datePanelType === 'quarter') {
574
+ datePanelType = 'year';
575
+ }
576
+ else {
577
+ datePanelType = 'month';
578
+ }
579
+ reactData.datePanelType = datePanelType;
580
+ },
581
+ datePrevEvent(evnt) {
582
+ const $xeCalendar = this;
583
+ const props = $xeCalendar;
584
+ const reactData = $xeCalendar.reactData;
585
+ const internalData = $xeCalendar.internalData;
586
+ const { type } = props;
587
+ const { datePanelType, selectMonth } = reactData;
588
+ const { yearSize } = internalData;
589
+ const isDisabledPrevDateBtn = $xeCalendar.computeIsDisabledPrevDateBtn;
590
+ if (!isDisabledPrevDateBtn) {
591
+ if (type === 'year') {
592
+ reactData.selectMonth = XEUtils.getWhatYear(selectMonth, -yearSize, 'first');
593
+ }
594
+ else if (type === 'month' || type === 'quarter') {
595
+ if (datePanelType === 'year') {
596
+ reactData.selectMonth = XEUtils.getWhatYear(selectMonth, -yearSize, 'first');
597
+ }
598
+ else {
599
+ reactData.selectMonth = XEUtils.getWhatYear(selectMonth, -1, 'first');
600
+ }
601
+ }
602
+ else {
603
+ if (datePanelType === 'year') {
604
+ reactData.selectMonth = XEUtils.getWhatYear(selectMonth, -yearSize, 'first');
605
+ }
606
+ else if (datePanelType === 'month') {
607
+ reactData.selectMonth = XEUtils.getWhatYear(selectMonth, -1, 'first');
608
+ }
609
+ else {
610
+ reactData.selectMonth = XEUtils.getWhatMonth(selectMonth, -1, 'first');
611
+ }
612
+ }
613
+ $xeCalendar.dispatchEvent('date-prev', { type }, evnt);
614
+ }
615
+ },
616
+ dateTodayMonthEvent(evnt) {
617
+ const $xeCalendar = this;
618
+ const props = $xeCalendar;
619
+ const reactData = $xeCalendar.reactData;
620
+ $xeCalendar.dateNowHandle();
621
+ if (!props.multiple) {
622
+ $xeCalendar.dateChange(reactData.currentDate);
623
+ }
624
+ $xeCalendar.dispatchEvent('date-today', { type: props.type }, evnt);
625
+ },
626
+ dateNextEvent(evnt) {
627
+ const $xeCalendar = this;
628
+ const props = $xeCalendar;
629
+ const reactData = $xeCalendar.reactData;
630
+ const internalData = $xeCalendar.internalData;
631
+ const { type } = props;
632
+ const { datePanelType, selectMonth } = reactData;
633
+ const { yearSize } = internalData;
634
+ const isDisabledNextDateBtn = $xeCalendar.computeIsDisabledNextDateBtn;
635
+ if (!isDisabledNextDateBtn) {
636
+ if (type === 'year') {
637
+ reactData.selectMonth = XEUtils.getWhatYear(selectMonth, yearSize, 'first');
638
+ }
639
+ else if (type === 'month' || type === 'quarter') {
640
+ if (datePanelType === 'year') {
641
+ reactData.selectMonth = XEUtils.getWhatYear(selectMonth, yearSize, 'first');
642
+ }
643
+ else {
644
+ reactData.selectMonth = XEUtils.getWhatYear(selectMonth, 1, 'first');
645
+ }
646
+ }
647
+ else {
648
+ if (datePanelType === 'year') {
649
+ reactData.selectMonth = XEUtils.getWhatYear(selectMonth, yearSize, 'first');
650
+ }
651
+ else if (datePanelType === 'month') {
652
+ reactData.selectMonth = XEUtils.getWhatYear(selectMonth, 1, 'first');
653
+ }
654
+ else {
655
+ reactData.selectMonth = XEUtils.getWhatMonth(selectMonth, 1, 'first');
656
+ }
657
+ }
658
+ $xeCalendar.dispatchEvent('date-next', { type }, evnt);
659
+ }
660
+ },
661
+ isDateDisabled(item) {
662
+ const $xeCalendar = this;
663
+ const props = $xeCalendar;
664
+ const reactData = $xeCalendar.reactData;
665
+ const { disabledMethod } = props;
666
+ const { datePanelType } = reactData;
667
+ return disabledMethod && disabledMethod({ type: datePanelType, viewType: datePanelType, date: item.date, $calendar: $xeCalendar });
668
+ },
669
+ dateSelectItem(date) {
670
+ const $xeCalendar = this;
671
+ const props = $xeCalendar;
672
+ const reactData = $xeCalendar.reactData;
673
+ const { type } = props;
674
+ const { datePanelType } = reactData;
675
+ if (type === 'month') {
676
+ if (datePanelType === 'year') {
677
+ reactData.datePanelType = 'month';
678
+ $xeCalendar.dateCheckMonth(date);
679
+ }
680
+ else {
681
+ $xeCalendar.dateChange(date);
682
+ }
683
+ }
684
+ else if (type === 'year') {
685
+ $xeCalendar.dateChange(date);
686
+ }
687
+ else if (type === 'quarter') {
688
+ if (datePanelType === 'year') {
689
+ reactData.datePanelType = 'quarter';
690
+ $xeCalendar.dateCheckMonth(date);
691
+ }
692
+ else {
693
+ $xeCalendar.dateChange(date);
694
+ }
695
+ }
696
+ else {
697
+ if (datePanelType === 'month') {
698
+ reactData.datePanelType = type === 'week' ? type : 'day';
699
+ $xeCalendar.dateCheckMonth(date);
700
+ }
701
+ else if (datePanelType === 'year') {
702
+ reactData.datePanelType = 'month';
703
+ $xeCalendar.dateCheckMonth(date);
704
+ }
705
+ else {
706
+ $xeCalendar.dateChange(date);
707
+ }
708
+ }
709
+ },
710
+ dateSelectEvent(item) {
711
+ const $xeCalendar = this;
712
+ if (!$xeCalendar.isDateDisabled(item)) {
713
+ $xeCalendar.dateSelectItem(item.date);
714
+ }
715
+ },
716
+ dateMoveDay(offsetDay) {
717
+ const $xeCalendar = this;
718
+ if (!$xeCalendar.isDateDisabled({ date: offsetDay })) {
719
+ const dayList = $xeCalendar.computeDayList;
720
+ if (!dayList.some((item) => XEUtils.isDateSame(item.date, offsetDay, 'yyyyMMdd'))) {
721
+ $xeCalendar.dateCheckMonth(offsetDay);
722
+ }
723
+ $xeCalendar.dateParseValue(offsetDay);
724
+ }
725
+ },
726
+ dateMoveYear(offsetYear) {
727
+ const $xeCalendar = this;
728
+ if (!$xeCalendar.isDateDisabled({ date: offsetYear })) {
729
+ const yearList = $xeCalendar.computeYearList;
730
+ if (!yearList.some((item) => XEUtils.isDateSame(item.date, offsetYear, 'yyyy'))) {
731
+ $xeCalendar.dateCheckMonth(offsetYear);
732
+ }
733
+ $xeCalendar.dateParseValue(offsetYear);
734
+ }
735
+ },
736
+ dateMoveQuarter(offsetQuarter) {
737
+ const $xeCalendar = this;
738
+ if (!$xeCalendar.isDateDisabled({ date: offsetQuarter })) {
739
+ const quarterList = $xeCalendar.computeQuarterList;
740
+ if (!quarterList.some((item) => XEUtils.isDateSame(item.date, offsetQuarter, 'yyyyq'))) {
741
+ $xeCalendar.dateCheckMonth(offsetQuarter);
742
+ }
743
+ $xeCalendar.dateParseValue(offsetQuarter);
744
+ }
745
+ },
746
+ dateMoveMonth(offsetMonth) {
747
+ const $xeCalendar = this;
748
+ if (!$xeCalendar.isDateDisabled({ date: offsetMonth })) {
749
+ const monthList = $xeCalendar.computeMonthList;
750
+ if (!monthList.some((item) => XEUtils.isDateSame(item.date, offsetMonth, 'yyyyMM'))) {
751
+ $xeCalendar.dateCheckMonth(offsetMonth);
752
+ }
753
+ $xeCalendar.dateParseValue(offsetMonth);
754
+ }
755
+ },
756
+ dateMouseenterEvent(item) {
757
+ const $xeCalendar = this;
758
+ const reactData = $xeCalendar.reactData;
759
+ if (!$xeCalendar.isDateDisabled(item)) {
760
+ const { datePanelType } = reactData;
761
+ if (datePanelType === 'month') {
762
+ $xeCalendar.dateMoveMonth(item.date);
763
+ }
764
+ else if (datePanelType === 'quarter') {
765
+ $xeCalendar.dateMoveQuarter(item.date);
766
+ }
767
+ else if (datePanelType === 'year') {
768
+ $xeCalendar.dateMoveYear(item.date);
769
+ }
770
+ else {
771
+ $xeCalendar.dateMoveDay(item.date);
772
+ }
773
+ }
774
+ },
775
+ dateConfirmEvent() {
776
+ },
777
+ dateOpenPanel() {
778
+ const $xeCalendar = this;
779
+ const props = $xeCalendar;
780
+ const reactData = $xeCalendar.reactData;
781
+ const { type } = props;
782
+ const dateValue = $xeCalendar.computeDateValue;
783
+ if (['year', 'quarter', 'month', 'week'].indexOf(type) > -1) {
784
+ reactData.datePanelType = type;
785
+ }
786
+ else {
787
+ reactData.datePanelType = 'day';
788
+ }
789
+ reactData.currentDate = XEUtils.getWhatDay(Date.now(), 0, 'first');
790
+ if (dateValue) {
791
+ $xeCalendar.dateMonthHandle(dateValue, 0);
792
+ $xeCalendar.dateParseValue(dateValue);
793
+ }
794
+ else {
795
+ $xeCalendar.dateNowHandle();
796
+ }
797
+ },
798
+ //
799
+ // Render
800
+ //
801
+ renderDateLabel(h, item, label) {
802
+ const $xeCalendar = this;
803
+ const props = $xeCalendar;
804
+ const reactData = $xeCalendar.reactData;
805
+ const { festivalMethod } = props;
806
+ if (festivalMethod) {
807
+ const { datePanelType } = reactData;
808
+ const festivalRest = festivalMethod({ type: datePanelType, viewType: datePanelType, date: item.date, $calendar: $xeCalendar });
809
+ const festivalItem = festivalRest ? (XEUtils.isString(festivalRest) ? { label: festivalRest } : festivalRest) : {};
810
+ const extraItem = festivalItem.extra ? (XEUtils.isString(festivalItem.extra) ? { label: festivalItem.extra } : festivalItem.extra) : null;
811
+ const labels = [
812
+ h('span', {
813
+ class: ['vxe-calendar--date-label', {
814
+ 'is-notice': festivalItem.notice
815
+ }]
816
+ }, extraItem && extraItem.label
817
+ ? [
818
+ h('span', `${label || ''}`),
819
+ h('span', {
820
+ class: ['vxe-calendar--date-label--extra', extraItem.important ? 'is-important' : '', extraItem.className],
821
+ style: extraItem.style
822
+ }, XEUtils.toValueString(extraItem.label))
823
+ ]
824
+ : [`${label || ''}`])
825
+ ];
826
+ const festivalLabel = festivalItem.label;
827
+ if (festivalLabel) {
828
+ // 默认最多支持3个节日重叠
829
+ const festivalLabels = XEUtils.toValueString(festivalLabel).split(',');
830
+ labels.push(h('span', {
831
+ class: ['vxe-calendar--date-festival', festivalItem.important ? 'is-important' : '', festivalItem.className],
832
+ style: festivalItem.style
833
+ }, [
834
+ festivalLabels.length > 1
835
+ ? h('span', {
836
+ class: ['vxe-calendar--date-festival--overlap', `overlap--${festivalLabels.length}`]
837
+ }, festivalLabels.map(label => h('span', label.substring(0, 3))))
838
+ : h('span', {
839
+ class: 'vxe-calendar--date-festival--label'
840
+ }, festivalLabels[0].substring(0, 3))
841
+ ]));
842
+ }
843
+ return labels;
844
+ }
845
+ return `${label || ''}`;
846
+ },
847
+ renderDateDayTable(h) {
848
+ const $xeCalendar = this;
849
+ const props = $xeCalendar;
850
+ const reactData = $xeCalendar.reactData;
851
+ const { multiple } = props;
852
+ const { datePanelType, datePanelValue } = reactData;
853
+ const dateValue = $xeCalendar.computeDateValue;
854
+ const dateHeaders = $xeCalendar.computeDateHeaders;
855
+ const dayDatas = $xeCalendar.computeDayDatas;
856
+ const dateListValue = $xeCalendar.computeDateListValue;
857
+ const matchFormat = 'yyyyMMdd';
858
+ return [
859
+ h('table', {
860
+ class: `vxe-calendar--date-${datePanelType}-view`,
861
+ attrs: {
862
+ cellspacing: 0,
863
+ cellpadding: 0,
864
+ border: 0
865
+ }
866
+ }, [
867
+ h('tr', dateHeaders.map((item) => {
868
+ return h('th', {
869
+ class: 'vxe-calendar--view-th'
870
+ }, item.label);
871
+ })),
872
+ ...dayDatas.map((rows) => {
873
+ return h('tr', rows.map((item) => {
874
+ return h('td', {
875
+ class: ['vxe-calendar--view-td', {
876
+ 'is--prev': item.isPrev,
877
+ 'is--current': item.isCurrent,
878
+ 'is--now': item.isNow,
879
+ 'is--next': item.isNext,
880
+ 'is--disabled': $xeCalendar.isDateDisabled(item),
881
+ 'is--selected': multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat),
882
+ 'is--hover': XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
883
+ }],
884
+ on: {
885
+ click: () => $xeCalendar.dateSelectEvent(item),
886
+ mouseenter: () => $xeCalendar.dateMouseenterEvent(item)
887
+ }
888
+ }, $xeCalendar.renderDateLabel(h, item, item.label));
889
+ }));
890
+ })
891
+ ])
892
+ ];
893
+ },
894
+ renderDateWeekTable(h) {
895
+ const $xeCalendar = this;
896
+ const props = $xeCalendar;
897
+ const reactData = $xeCalendar.reactData;
898
+ const { multiple } = props;
899
+ const { datePanelType, datePanelValue } = reactData;
900
+ const dateValue = $xeCalendar.computeDateValue;
901
+ const weekHeaders = $xeCalendar.computeWeekHeaders;
902
+ const weekDates = $xeCalendar.computeWeekDates;
903
+ const dateListValue = $xeCalendar.computeDateListValue;
904
+ const matchFormat = 'yyyyMMdd';
905
+ return [
906
+ h('table', {
907
+ class: `vxe-calendar--date-${datePanelType}-view`,
908
+ attrs: {
909
+ cellspacing: 0,
910
+ cellpadding: 0,
911
+ border: 0
912
+ }
913
+ }, [
914
+ h('tr', weekHeaders.map((item) => {
915
+ return h('td', {
916
+ class: 'vxe-calendar--view-th'
917
+ }, item.label);
918
+ })),
919
+ ...weekDates.map((rows) => {
920
+ const isSelected = multiple ? rows.some((item) => dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat))) : rows.some((item) => XEUtils.isDateSame(dateValue, item.date, matchFormat));
921
+ const isHover = rows.some((item) => XEUtils.isDateSame(datePanelValue, item.date, matchFormat));
922
+ return h('tr', rows.map((item) => {
923
+ return h('td', {
924
+ class: ['vxe-calendar--view-td', {
925
+ 'is--prev': item.isPrev,
926
+ 'is--current': item.isCurrent,
927
+ 'is--now': item.isNow,
928
+ 'is--next': item.isNext,
929
+ 'is--disabled': $xeCalendar.isDateDisabled(item),
930
+ 'is--selected': isSelected,
931
+ 'is--hover': isHover
932
+ }],
933
+ on: {
934
+ click: () => $xeCalendar.dateSelectEvent(item),
935
+ mouseenter: () => $xeCalendar.dateMouseenterEvent(item)
936
+ }
937
+ }, $xeCalendar.renderDateLabel(h, item, item.label));
938
+ }));
939
+ })
940
+ ])
941
+ ];
942
+ },
943
+ renderDateMonthTable(h) {
944
+ const $xeCalendar = this;
945
+ const props = $xeCalendar;
946
+ const reactData = $xeCalendar.reactData;
947
+ const { multiple } = props;
948
+ const { datePanelType, datePanelValue } = reactData;
949
+ const dateValue = $xeCalendar.computeDateValue;
950
+ const monthDatas = $xeCalendar.computeMonthDatas;
951
+ const dateListValue = $xeCalendar.computeDateListValue;
952
+ const matchFormat = 'yyyyMM';
953
+ return [
954
+ h('table', {
955
+ class: `vxe-calendar--date-${datePanelType}-view`,
956
+ attrs: {
957
+ cellspacing: 0,
958
+ cellpadding: 0,
959
+ border: 0
960
+ }
961
+ }, [
962
+ h('tbody', monthDatas.map((rows) => {
963
+ return h('tr', rows.map((item) => {
964
+ return h('td', {
965
+ class: ['vxe-calendar--view-td', {
966
+ 'is--prev': item.isPrev,
967
+ 'is--current': item.isCurrent,
968
+ 'is--now': item.isNow,
969
+ 'is--next': item.isNext,
970
+ 'is--disabled': $xeCalendar.isDateDisabled(item),
971
+ 'is--selected': multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat),
972
+ 'is--hover': XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
973
+ }],
974
+ on: {
975
+ click: () => $xeCalendar.dateSelectEvent(item),
976
+ mouseenter: () => $xeCalendar.dateMouseenterEvent(item)
977
+ }
978
+ }, $xeCalendar.renderDateLabel(h, item, getI18n(`vxe.input.date.months.m${item.month}`)));
979
+ }));
980
+ }))
981
+ ])
982
+ ];
983
+ },
984
+ renderDateQuarterTable(h) {
985
+ const $xeCalendar = this;
986
+ const props = $xeCalendar;
987
+ const reactData = $xeCalendar.reactData;
988
+ const { multiple } = props;
989
+ const { datePanelType, datePanelValue } = reactData;
990
+ const dateValue = $xeCalendar.computeDateValue;
991
+ const quarterDatas = $xeCalendar.computeQuarterDatas;
992
+ const dateListValue = $xeCalendar.computeDateListValue;
993
+ const matchFormat = 'yyyyq';
994
+ return [
995
+ h('table', {
996
+ class: `vxe-calendar--date-${datePanelType}-view`,
997
+ attrs: {
998
+ cellspacing: 0,
999
+ cellpadding: 0,
1000
+ border: 0
1001
+ }
1002
+ }, [
1003
+ h('tbody', quarterDatas.map((rows) => {
1004
+ return h('tr', rows.map((item) => {
1005
+ return h('td', {
1006
+ class: ['vxe-calendar--view-td', {
1007
+ 'is--prev': item.isPrev,
1008
+ 'is--current': item.isCurrent,
1009
+ 'is--now': item.isNow,
1010
+ 'is--next': item.isNext,
1011
+ 'is--disabled': $xeCalendar.isDateDisabled(item),
1012
+ 'is--selected': multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat),
1013
+ 'is--hover': XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
1014
+ }],
1015
+ on: {
1016
+ click: () => $xeCalendar.dateSelectEvent(item),
1017
+ mouseenter: () => $xeCalendar.dateMouseenterEvent(item)
1018
+ }
1019
+ }, $xeCalendar.renderDateLabel(h, item, getI18n(`vxe.input.date.quarters.q${item.quarter}`)));
1020
+ }));
1021
+ }))
1022
+ ])
1023
+ ];
1024
+ },
1025
+ renderDateYearTable(h) {
1026
+ const $xeCalendar = this;
1027
+ const props = $xeCalendar;
1028
+ const reactData = $xeCalendar.reactData;
1029
+ const { multiple } = props;
1030
+ const { datePanelType, datePanelValue } = reactData;
1031
+ const dateValue = $xeCalendar.computeDateValue;
1032
+ const yearDatas = $xeCalendar.computeYearDatas;
1033
+ const dateListValue = $xeCalendar.computeDateListValue;
1034
+ const matchFormat = 'yyyy';
1035
+ return [
1036
+ h('table', {
1037
+ class: `vxe-calendar--date-${datePanelType}-view`,
1038
+ attrs: {
1039
+ cellspacing: 0,
1040
+ cellpadding: 0,
1041
+ border: 0
1042
+ }
1043
+ }, [
1044
+ h('tbody', yearDatas.map((rows) => {
1045
+ return h('tr', rows.map((item) => {
1046
+ return h('td', {
1047
+ class: ['vxe-calendar--view-td', {
1048
+ 'is--prev': item.isPrev,
1049
+ 'is--current': item.isCurrent,
1050
+ 'is--now': item.isNow,
1051
+ 'is--next': item.isNext,
1052
+ 'is--disabled': $xeCalendar.isDateDisabled(item),
1053
+ 'is--selected': multiple ? dateListValue.some(val => XEUtils.isDateSame(val, item.date, matchFormat)) : XEUtils.isDateSame(dateValue, item.date, matchFormat),
1054
+ 'is--hover': XEUtils.isDateSame(datePanelValue, item.date, matchFormat)
1055
+ }],
1056
+ on: {
1057
+ click: () => $xeCalendar.dateSelectEvent(item),
1058
+ mouseenter: () => $xeCalendar.dateMouseenterEvent(item)
1059
+ }
1060
+ }, $xeCalendar.renderDateLabel(h, item, item.year));
1061
+ }));
1062
+ }))
1063
+ ])
1064
+ ];
1065
+ },
1066
+ renderDateTable(h) {
1067
+ const $xeCalendar = this;
1068
+ const reactData = $xeCalendar.reactData;
1069
+ const { datePanelType } = reactData;
1070
+ switch (datePanelType) {
1071
+ case 'week':
1072
+ return $xeCalendar.renderDateWeekTable(h);
1073
+ case 'month':
1074
+ return $xeCalendar.renderDateMonthTable(h);
1075
+ case 'quarter':
1076
+ return $xeCalendar.renderDateQuarterTable(h);
1077
+ case 'year':
1078
+ return $xeCalendar.renderDateYearTable(h);
1079
+ }
1080
+ return $xeCalendar.renderDateDayTable(h);
1081
+ },
1082
+ renderDatePanel(h) {
1083
+ const $xeCalendar = this;
1084
+ const props = $xeCalendar;
1085
+ const reactData = $xeCalendar.reactData;
1086
+ const { multiple } = props;
1087
+ const { datePanelType } = reactData;
1088
+ const isDisabledPrevDateBtn = $xeCalendar.computeIsDisabledPrevDateBtn;
1089
+ const isDisabledNextDateBtn = $xeCalendar.computeIsDisabledNextDateBtn;
1090
+ const selectDatePanelLabel = $xeCalendar.computeSelectDatePanelLabel;
1091
+ return [
1092
+ h('div', {
1093
+ class: 'vxe-calendar--header'
1094
+ }, [
1095
+ h('div', {
1096
+ class: 'vxe-calendar--type-wrapper'
1097
+ }, [
1098
+ h(VxeButtonComponent, {
1099
+ props: {
1100
+ disabled: datePanelType === 'year',
1101
+ content: selectDatePanelLabel
1102
+ },
1103
+ on: {
1104
+ click: $xeCalendar.dateToggleTypeEvent
1105
+ }
1106
+ })
1107
+ ]),
1108
+ h('div', {
1109
+ class: 'vxe-calendar--btn-wrapper'
1110
+ }, [
1111
+ h(VxeButtonComponent, {
1112
+ props: {
1113
+ disabled: isDisabledPrevDateBtn,
1114
+ icon: 'vxe-icon-caret-left'
1115
+ },
1116
+ on: {
1117
+ click: $xeCalendar.datePrevEvent
1118
+ }
1119
+ }),
1120
+ h(VxeButtonComponent, {
1121
+ props: {
1122
+ icon: 'vxe-icon-dot'
1123
+ },
1124
+ on: {
1125
+ click: $xeCalendar.dateTodayMonthEvent
1126
+ }
1127
+ }),
1128
+ h(VxeButtonComponent, {
1129
+ props: {
1130
+ disabled: isDisabledNextDateBtn,
1131
+ icon: 'vxe-icon-caret-right'
1132
+ },
1133
+ on: {
1134
+ click: $xeCalendar.dateNextEvent
1135
+ }
1136
+ }),
1137
+ multiple && $xeCalendar.computeSupportMultiples
1138
+ ? h('span', {
1139
+ class: 'vxe-calendar--btn vxe-calendar--confirm-btn'
1140
+ }, [
1141
+ h('button', {
1142
+ class: 'vxe-calendar--confirm',
1143
+ attrs: {
1144
+ type: 'button'
1145
+ },
1146
+ on: {
1147
+ click: $xeCalendar.dateConfirmEvent
1148
+ }
1149
+ }, getI18n('vxe.button.confirm'))
1150
+ ])
1151
+ : null
1152
+ ])
1153
+ ]),
1154
+ h('div', {
1155
+ class: 'vxe-calendar--body'
1156
+ }, $xeCalendar.renderDateTable(h))
1157
+ ];
1158
+ },
1159
+ renderVN(h) {
1160
+ const $xeCalendar = this;
1161
+ const props = $xeCalendar;
1162
+ const { className, type } = props;
1163
+ const vSize = $xeCalendar.computeSize;
1164
+ const isDisabled = $xeCalendar.computeIsDisabled;
1165
+ const calendarStyle = $xeCalendar.computeCalendarStyle;
1166
+ return h('div', {
1167
+ ref: 'refElem',
1168
+ class: ['vxe-calendar', `type--${type}`, className, {
1169
+ [`size--${vSize}`]: vSize,
1170
+ 'is--disabled': isDisabled
1171
+ }],
1172
+ style: calendarStyle
1173
+ }, [
1174
+ $xeCalendar.renderDatePanel(h)
1175
+ ]);
1176
+ }
1177
+ },
1178
+ watch: {
1179
+ value(val) {
1180
+ const $xeCalendar = this;
1181
+ const reactData = $xeCalendar.reactData;
1182
+ reactData.inputValue = val;
1183
+ $xeCalendar.changeValue();
1184
+ },
1185
+ type() {
1186
+ const $xeCalendar = this;
1187
+ const reactData = $xeCalendar.reactData;
1188
+ // 切换类型是重置内置变量
1189
+ Object.assign(reactData, {
1190
+ selectValue: null,
1191
+ inputValue: null,
1192
+ datePanelValue: null,
1193
+ datePanelLabel: '',
1194
+ datePanelType: 'day',
1195
+ selectMonth: null,
1196
+ currentDate: null
1197
+ });
1198
+ $xeCalendar.initValue();
1199
+ $xeCalendar.dateOpenPanel();
1200
+ },
1201
+ computeDateLabelFormat() {
1202
+ const $xeCalendar = this;
1203
+ const props = $xeCalendar;
1204
+ const reactData = $xeCalendar.reactData;
1205
+ const isCalendarType = $xeCalendar.computeIsCalendarType;
1206
+ if (isCalendarType) {
1207
+ $xeCalendar.dateParseValue(reactData.datePanelValue);
1208
+ reactData.inputValue = props.multiple ? $xeCalendar.computeDateMultipleLabel : reactData.datePanelLabel;
1209
+ }
1210
+ }
1211
+ },
1212
+ created() {
1213
+ const $xeCalendar = this;
1214
+ const props = $xeCalendar;
1215
+ const reactData = $xeCalendar.reactData;
1216
+ reactData.selectValue = props.value;
1217
+ reactData.inputValue = props.value;
1218
+ $xeCalendar.initValue();
1219
+ },
1220
+ mounted() {
1221
+ const $xeCalendar = this;
1222
+ $xeCalendar.dateOpenPanel();
1223
+ },
1224
+ render(h) {
1225
+ return this.renderVN(h);
1226
+ }
1227
+ });