vxe-pc-ui 4.1.19 → 4.1.21

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 (259) hide show
  1. package/README.md +83 -2
  2. package/es/anchor/src/anchor-link.js +1 -1
  3. package/es/anchor/src/anchor.js +1 -1
  4. package/es/breadcrumb/src/breadcrumb.js +1 -1
  5. package/es/button/src/button-group.js +4 -1
  6. package/es/button/src/button.js +2 -1
  7. package/es/calendar/src/calendar.js +64 -32
  8. package/es/card/src/card.js +4 -3
  9. package/es/carousel/src/carousel-item.js +13 -3
  10. package/es/carousel/src/carousel.js +16 -8
  11. package/es/checkbox/src/checkbox.js +30 -14
  12. package/es/checkbox/src/group.js +17 -8
  13. package/es/collapse-pane/index.js +1 -1
  14. package/es/countdown/src/countdown.js +17 -8
  15. package/es/date-picker/src/date-picker.js +148 -69
  16. package/es/drawer/src/drawer.js +86 -46
  17. package/es/form/render/index.js +1 -2
  18. package/es/form/src/form-config-item.js +4 -3
  19. package/es/form/src/form-gather.js +5 -3
  20. package/es/form/src/form-item.js +15 -10
  21. package/es/form/src/form.js +11 -8
  22. package/es/form/src/render.js +2 -1
  23. package/es/form/src/util.js +2 -1
  24. package/es/icon/src/icon.js +3 -0
  25. package/es/icon/style.css +1 -1
  26. package/es/icon-picker/src/icon-picker.js +24 -11
  27. package/es/image/src/group.js +4 -1
  28. package/es/image/src/preview.js +1 -1
  29. package/es/input/src/input.js +131 -66
  30. package/es/layout-aside/src/layout-aside.js +1 -1
  31. package/es/list/src/list.js +7 -5
  32. package/es/list-design/src/list-design.js +1 -1
  33. package/es/list-design/src/list-view.js +1 -1
  34. package/es/loading/src/loading.js +4 -1
  35. package/es/menu/src/menu.js +4 -3
  36. package/es/number-input/src/number-input.js +100 -77
  37. package/es/pager/src/pager.js +85 -45
  38. package/es/password-input/src/password-input.js +2 -2
  39. package/es/print/src/page-break.js +11 -2
  40. package/es/print/src/print.js +6 -4
  41. package/es/pulldown/src/pulldown.js +19 -13
  42. package/es/radio/src/button.js +2 -2
  43. package/es/radio/src/group.js +8 -4
  44. package/es/row/src/row.js +1 -1
  45. package/es/select/src/optgroup.js +19 -10
  46. package/es/select/src/option.js +17 -9
  47. package/es/select/src/select.js +64 -41
  48. package/es/select/src/util.js +2 -2
  49. package/es/style.css +1 -1
  50. package/es/style.min.css +1 -1
  51. package/es/tabs/src/tab-pane.js +13 -3
  52. package/es/tabs/src/tabs.js +57 -47
  53. package/es/textarea/src/textarea.js +28 -10
  54. package/es/tooltip/src/tooltip.js +107 -78
  55. package/es/tree/src/tree.js +6 -3
  56. package/es/tree-select/src/tree-select.js +18 -10
  57. package/es/ui/index.js +1 -7
  58. package/es/ui/src/log.js +1 -1
  59. package/es/upload/src/upload.js +5 -5
  60. package/lib/anchor/src/anchor-link.js +1 -1
  61. package/lib/anchor/src/anchor-link.min.js +1 -1
  62. package/lib/anchor/src/anchor.js +1 -1
  63. package/lib/anchor/src/anchor.min.js +1 -1
  64. package/lib/breadcrumb/src/breadcrumb.js +1 -1
  65. package/lib/breadcrumb/src/breadcrumb.min.js +1 -1
  66. package/lib/button/src/button-group.js +4 -1
  67. package/lib/button/src/button-group.min.js +1 -1
  68. package/lib/button/src/button.js +2 -1
  69. package/lib/button/src/button.min.js +1 -1
  70. package/lib/calendar/src/calendar.js +42 -24
  71. package/lib/calendar/src/calendar.min.js +1 -1
  72. package/lib/card/src/card.js +6 -5
  73. package/lib/card/src/card.min.js +1 -1
  74. package/lib/carousel/src/carousel-item.js +16 -3
  75. package/lib/carousel/src/carousel-item.min.js +1 -1
  76. package/lib/carousel/src/carousel.js +18 -8
  77. package/lib/carousel/src/carousel.min.js +1 -1
  78. package/lib/checkbox/src/checkbox.js +16 -12
  79. package/lib/checkbox/src/checkbox.min.js +1 -1
  80. package/lib/checkbox/src/group.js +10 -7
  81. package/lib/checkbox/src/group.min.js +1 -1
  82. package/lib/collapse-pane/index.js +1 -1
  83. package/lib/collapse-pane/index.min.js +1 -1
  84. package/lib/countdown/src/countdown.js +15 -7
  85. package/lib/countdown/src/countdown.min.js +1 -1
  86. package/lib/date-picker/src/date-picker.js +124 -62
  87. package/lib/date-picker/src/date-picker.min.js +1 -1
  88. package/lib/drawer/src/drawer.js +15 -30
  89. package/lib/drawer/src/drawer.min.js +1 -1
  90. package/lib/form/render/index.js +1 -4
  91. package/lib/form/render/index.min.js +1 -1
  92. package/lib/form/src/form-config-item.js +4 -5
  93. package/lib/form/src/form-config-item.min.js +1 -1
  94. package/lib/form/src/form-gather.js +11 -9
  95. package/lib/form/src/form-gather.min.js +1 -1
  96. package/lib/form/src/form-item.js +11 -12
  97. package/lib/form/src/form-item.min.js +1 -1
  98. package/lib/form/src/form.js +7 -7
  99. package/lib/form/src/form.min.js +1 -1
  100. package/lib/form/src/render.js +2 -1
  101. package/lib/form/src/util.js +2 -1
  102. package/lib/icon/src/icon.js +3 -0
  103. package/lib/icon/src/icon.min.js +1 -1
  104. package/lib/icon/style/style.css +1 -1
  105. package/lib/icon/style/style.min.css +1 -1
  106. package/lib/icon-picker/src/icon-picker.js +22 -12
  107. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  108. package/lib/image/src/group.js +4 -1
  109. package/lib/image/src/group.min.js +1 -1
  110. package/lib/image/src/preview.js +1 -1
  111. package/lib/image/src/preview.min.js +1 -1
  112. package/lib/index.umd.js +884 -649
  113. package/lib/index.umd.min.js +1 -1
  114. package/lib/input/src/input.js +79 -51
  115. package/lib/input/src/input.min.js +1 -1
  116. package/lib/layout-aside/src/layout-aside.js +1 -1
  117. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  118. package/lib/list/src/list.js +9 -5
  119. package/lib/list/src/list.min.js +1 -1
  120. package/lib/list-design/src/list-design.js +1 -1
  121. package/lib/list-design/src/list-design.min.js +1 -1
  122. package/lib/list-design/src/list-view.js +1 -1
  123. package/lib/list-design/src/list-view.min.js +1 -1
  124. package/lib/loading/src/loading.js +4 -1
  125. package/lib/loading/src/loading.min.js +1 -1
  126. package/lib/menu/src/menu.js +4 -3
  127. package/lib/menu/src/menu.min.js +1 -1
  128. package/lib/number-input/src/number-input.js +67 -69
  129. package/lib/number-input/src/number-input.min.js +1 -1
  130. package/lib/pager/src/pager.js +40 -39
  131. package/lib/pager/src/pager.min.js +1 -1
  132. package/lib/password-input/src/password-input.js +2 -2
  133. package/lib/print/src/page-break.js +14 -2
  134. package/lib/print/src/page-break.min.js +1 -1
  135. package/lib/print/src/print.js +8 -6
  136. package/lib/print/src/print.min.js +1 -1
  137. package/lib/pulldown/src/pulldown.js +19 -13
  138. package/lib/pulldown/src/pulldown.min.js +1 -1
  139. package/lib/radio/src/button.js +2 -2
  140. package/lib/radio/src/group.js +8 -4
  141. package/lib/radio/src/group.min.js +1 -1
  142. package/lib/row/src/row.js +1 -1
  143. package/lib/row/src/row.min.js +1 -1
  144. package/lib/select/src/optgroup.js +12 -9
  145. package/lib/select/src/optgroup.min.js +1 -1
  146. package/lib/select/src/option.js +9 -7
  147. package/lib/select/src/option.min.js +1 -1
  148. package/lib/select/src/select.js +52 -41
  149. package/lib/select/src/select.min.js +1 -1
  150. package/lib/select/src/util.js +2 -2
  151. package/lib/select/src/util.min.js +1 -1
  152. package/lib/style.css +1 -1
  153. package/lib/style.min.css +1 -1
  154. package/lib/tabs/src/tab-pane.js +16 -3
  155. package/lib/tabs/src/tab-pane.min.js +1 -1
  156. package/lib/tabs/src/tabs.js +62 -50
  157. package/lib/tabs/src/tabs.min.js +1 -1
  158. package/lib/textarea/src/textarea.js +4 -4
  159. package/lib/tooltip/src/tooltip.js +96 -88
  160. package/lib/tooltip/src/tooltip.min.js +1 -1
  161. package/lib/tree/src/tree.js +2 -2
  162. package/lib/tree/src/tree.min.js +1 -1
  163. package/lib/tree-select/src/tree-select.js +13 -8
  164. package/lib/tree-select/src/tree-select.min.js +1 -1
  165. package/lib/ui/index.js +3 -10
  166. package/lib/ui/index.min.js +1 -1
  167. package/lib/ui/src/log.js +1 -1
  168. package/lib/ui/src/log.min.js +1 -1
  169. package/lib/upload/src/upload.js +5 -5
  170. package/lib/upload/src/upload.min.js +1 -1
  171. package/package.json +2 -2
  172. package/packages/anchor/src/anchor-link.ts +2 -2
  173. package/packages/anchor/src/anchor.ts +2 -2
  174. package/packages/breadcrumb/src/breadcrumb.ts +2 -2
  175. package/packages/button/src/button-group.ts +4 -1
  176. package/packages/button/src/button.ts +6 -5
  177. package/packages/calendar/src/calendar.ts +67 -35
  178. package/packages/card/src/card.ts +6 -4
  179. package/packages/carousel/src/carousel-item.ts +19 -4
  180. package/packages/carousel/src/carousel.ts +19 -11
  181. package/packages/checkbox/src/checkbox.ts +34 -15
  182. package/packages/checkbox/src/group.ts +22 -10
  183. package/packages/collapse-pane/index.ts +1 -1
  184. package/packages/countdown/src/countdown.ts +20 -11
  185. package/packages/date-picker/src/date-picker.ts +160 -80
  186. package/packages/drawer/src/drawer.ts +91 -50
  187. package/packages/form/render/index.ts +1 -3
  188. package/packages/form/src/form-config-item.ts +4 -3
  189. package/packages/form/src/form-gather.ts +5 -3
  190. package/packages/form/src/form-item.ts +15 -10
  191. package/packages/form/src/form.ts +12 -10
  192. package/packages/form/src/render.ts +2 -1
  193. package/packages/form/src/util.ts +2 -1
  194. package/packages/icon/src/icon.ts +3 -0
  195. package/packages/icon-picker/src/icon-picker.ts +31 -17
  196. package/packages/image/src/group.ts +4 -1
  197. package/packages/image/src/preview.ts +2 -2
  198. package/packages/input/src/input.ts +138 -75
  199. package/packages/layout-aside/src/layout-aside.ts +2 -2
  200. package/packages/list/src/list.ts +12 -11
  201. package/packages/list-design/src/list-design.ts +2 -2
  202. package/packages/list-design/src/list-view.ts +2 -2
  203. package/packages/loading/src/loading.ts +5 -2
  204. package/packages/menu/src/menu.ts +5 -4
  205. package/packages/number-input/src/number-input.ts +102 -79
  206. package/packages/pager/src/pager.ts +91 -50
  207. package/packages/password-input/src/password-input.ts +2 -2
  208. package/packages/print/src/page-break.ts +18 -4
  209. package/packages/print/src/print.ts +10 -5
  210. package/packages/pulldown/src/pulldown.ts +28 -22
  211. package/packages/radio/src/button.ts +2 -2
  212. package/packages/radio/src/group.ts +9 -5
  213. package/packages/row/src/row.ts +2 -2
  214. package/packages/select/src/optgroup.ts +22 -13
  215. package/packages/select/src/option.ts +18 -10
  216. package/packages/select/src/select.ts +79 -52
  217. package/packages/select/src/util.ts +3 -3
  218. package/packages/tabs/src/tab-pane.ts +20 -5
  219. package/packages/tabs/src/tabs.ts +59 -49
  220. package/packages/textarea/src/textarea.ts +28 -10
  221. package/packages/tooltip/src/tooltip.ts +118 -84
  222. package/packages/tree/src/tree.ts +7 -4
  223. package/packages/tree-select/src/tree-select.ts +25 -16
  224. package/packages/ui/index.ts +0 -7
  225. package/packages/upload/src/upload.ts +6 -6
  226. package/types/components/calendar.d.ts +6 -0
  227. package/types/components/carousel.d.ts +5 -0
  228. package/types/components/countdown.d.ts +4 -0
  229. package/types/components/date-picker.d.ts +23 -5
  230. package/types/components/drawer.d.ts +0 -1
  231. package/types/components/form.d.ts +4 -2
  232. package/types/components/icon-picker.d.ts +4 -0
  233. package/types/components/input.d.ts +9 -1
  234. package/types/components/list.d.ts +1 -0
  235. package/types/components/number-input.d.ts +6 -2
  236. package/types/components/optgroup.d.ts +10 -4
  237. package/types/components/pulldown.d.ts +5 -1
  238. package/types/components/select.d.ts +4 -0
  239. package/types/components/tabs.d.ts +4 -0
  240. package/types/components/toolbar.d.ts +5 -0
  241. package/types/components/tooltip.d.ts +4 -0
  242. package/types/components/tree-select.d.ts +4 -0
  243. package/types/ui/index.d.ts +0 -22
  244. /package/es/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  245. /package/es/icon/style/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  246. /package/es/icon/style/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  247. /package/es/icon/style/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  248. /package/es/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  249. /package/es/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  250. /package/es/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  251. /package/lib/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  252. /package/lib/{collapse-pane → collapse}/src/collapse-pane.min.js +0 -0
  253. /package/lib/icon/style/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  254. /package/lib/icon/style/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  255. /package/lib/icon/style/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  256. /package/lib/{iconfont.1725597808239.ttf → iconfont.1725941866604.ttf} +0 -0
  257. /package/lib/{iconfont.1725597808239.woff → iconfont.1725941866604.woff} +0 -0
  258. /package/lib/{iconfont.1725597808239.woff2 → iconfont.1725941866604.woff2} +0 -0
  259. /package/packages/{collapse-pane → collapse}/src/collapse-pane.ts +0 -0
@@ -10,7 +10,10 @@ export default defineComponent({
10
10
  format: String,
11
11
  prefixConfig: Object,
12
12
  suffixConfig: Object,
13
- size: { type: String, default: () => getConfig().countdown.size || getConfig().size }
13
+ size: {
14
+ type: String,
15
+ default: () => getConfig().countdown.size || getConfig().size
16
+ }
14
17
  },
15
18
  emits: [
16
19
  'update:modelValue',
@@ -26,6 +29,9 @@ export default defineComponent({
26
29
  currNum: 0,
27
30
  secondNum: 0
28
31
  });
32
+ const internalData = {
33
+ dnTimeout: undefined
34
+ };
29
35
  const refMaps = {
30
36
  refElem
31
37
  };
@@ -79,10 +85,10 @@ export default defineComponent({
79
85
  props,
80
86
  context,
81
87
  reactData,
88
+ internalData,
82
89
  getRefMaps: () => refMaps,
83
90
  getComputeMaps: () => computeMaps
84
91
  };
85
- let htime = null;
86
92
  const dispatchEvent = (type, params, evnt) => {
87
93
  emit(type, createEvent(evnt, { $carousel: $xeCountdown }, params));
88
94
  };
@@ -95,11 +101,13 @@ export default defineComponent({
95
101
  const { currNum } = reactData;
96
102
  if (currNum > 1000) {
97
103
  reactData.currNum -= 1000;
98
- htime = setTimeout(handleTime, 1000);
104
+ internalData.dnTimeout = setTimeout(() => {
105
+ handleTime();
106
+ }, 1000);
99
107
  }
100
108
  else {
101
109
  reactData.currNum = 0;
102
- stop();
110
+ handleStop();
103
111
  }
104
112
  };
105
113
  const countdownMethods = {
@@ -110,9 +118,10 @@ export default defineComponent({
110
118
  handleTime();
111
119
  };
112
120
  const handleStop = () => {
113
- if (htime != null) {
114
- clearTimeout(htime);
115
- htime = null;
121
+ const { dnTimeout } = internalData;
122
+ if (dnTimeout) {
123
+ clearTimeout(dnTimeout);
124
+ internalData.dnTimeout = undefined;
116
125
  dispatchEvent('end', {}, null);
117
126
  }
118
127
  };
@@ -194,7 +203,6 @@ export default defineComponent({
194
203
  : createCommentVNode()
195
204
  ]);
196
205
  };
197
- $xeCountdown.renderVN = renderVN;
198
206
  watch(() => props.modelValue, () => {
199
207
  updateCount();
200
208
  handleStop();
@@ -207,6 +215,7 @@ export default defineComponent({
207
215
  handleStart();
208
216
  });
209
217
  updateCount();
218
+ $xeCountdown.renderVN = renderVN;
210
219
  return $xeCountdown;
211
220
  },
212
221
  render() {
@@ -9,10 +9,19 @@ export default defineComponent({
9
9
  name: 'VxeDatePicker',
10
10
  props: {
11
11
  modelValue: [String, Number, Date],
12
- immediate: { type: Boolean, default: true },
12
+ immediate: {
13
+ type: Boolean,
14
+ default: true
15
+ },
13
16
  name: String,
14
- type: { type: String, default: 'date' },
15
- clearable: { type: Boolean, default: () => getConfig().datePicker.clearable },
17
+ type: {
18
+ type: String,
19
+ default: 'date'
20
+ },
21
+ clearable: {
22
+ type: Boolean,
23
+ default: () => getConfig().datePicker.clearable
24
+ },
16
25
  readonly: {
17
26
  type: Boolean,
18
27
  default: null
@@ -22,35 +31,66 @@ export default defineComponent({
22
31
  default: null
23
32
  },
24
33
  placeholder: String,
25
- maxlength: [String, Number],
26
- autocomplete: { type: String, default: 'off' },
34
+ maxLength: [String, Number],
35
+ autoComplete: {
36
+ type: String,
37
+ default: 'off'
38
+ },
27
39
  align: String,
28
40
  form: String,
29
41
  className: String,
30
- size: { type: String, default: () => getConfig().datePicker.size || getConfig().size },
42
+ size: {
43
+ type: String,
44
+ default: () => getConfig().datePicker.size || getConfig().size
45
+ },
31
46
  multiple: Boolean,
32
47
  // date、week、month、quarter、year
33
- startDate: { type: [String, Number, Date], default: () => getConfig().datePicker.startDate },
34
- endDate: { type: [String, Number, Date], default: () => getConfig().datePicker.endDate },
48
+ startDate: {
49
+ type: [String, Number, Date],
50
+ default: () => getConfig().datePicker.startDate
51
+ },
52
+ endDate: {
53
+ type: [String, Number, Date],
54
+ default: () => getConfig().datePicker.endDate
55
+ },
35
56
  minDate: [String, Number, Date],
36
57
  maxDate: [String, Number, Date],
37
- // 已废弃 startWeek,被 startDay 替换
38
- startWeek: Number,
39
- startDay: { type: [String, Number], default: () => getConfig().datePicker.startDay },
58
+ startDay: {
59
+ type: [String, Number],
60
+ default: () => getConfig().datePicker.startDay
61
+ },
40
62
  labelFormat: String,
41
63
  valueFormat: String,
42
- editable: { type: Boolean, default: true },
43
- festivalMethod: { type: Function, default: () => getConfig().datePicker.festivalMethod },
44
- disabledMethod: { type: Function, default: () => getConfig().datePicker.disabledMethod },
64
+ editable: {
65
+ type: Boolean,
66
+ default: true
67
+ },
68
+ festivalMethod: {
69
+ type: Function,
70
+ default: () => getConfig().datePicker.festivalMethod
71
+ },
72
+ disabledMethod: {
73
+ type: Function,
74
+ default: () => getConfig().datePicker.disabledMethod
75
+ },
45
76
  // week
46
- selectDay: { type: [String, Number], default: () => getConfig().datePicker.selectDay },
77
+ selectDay: {
78
+ type: [String, Number],
79
+ default: () => getConfig().datePicker.selectDay
80
+ },
47
81
  prefixIcon: String,
48
82
  suffixIcon: String,
49
83
  placement: String,
50
84
  transfer: {
51
85
  type: Boolean,
52
86
  default: null
53
- }
87
+ },
88
+ // 已废弃 startWeek,被 startDay 替换
89
+ startWeek: Number,
90
+ // 已废弃
91
+ maxlength: [String, Number],
92
+ // 已废弃
93
+ autocomplete: String
54
94
  },
55
95
  emits: [
56
96
  'update:modelValue',
@@ -72,20 +112,18 @@ export default defineComponent({
72
112
  setup(props, context) {
73
113
  const { slots, emit } = context;
74
114
  const $xeModal = inject('$xeModal', null);
115
+ const $xeDrawer = inject('$xeDrawer', null);
75
116
  const $xeTable = inject('$xeTable', null);
76
117
  const $xeForm = inject('$xeForm', null);
77
118
  const formItemInfo = inject('xeFormItemInfo', null);
78
119
  const xID = XEUtils.uniqueId();
79
120
  const { computeSize } = useSize(props);
80
- const yearSize = 12;
81
- const monthSize = 20;
82
- const quarterSize = 8;
83
121
  const reactData = reactive({
84
122
  initialized: false,
85
123
  panelIndex: 0,
86
124
  visiblePanel: false,
87
125
  isAniVisible: false,
88
- panelStyle: null,
126
+ panelStyle: {},
89
127
  panelPlacement: '',
90
128
  isActivated: false,
91
129
  inputValue: props.modelValue,
@@ -96,6 +134,12 @@ export default defineComponent({
96
134
  selectMonth: null,
97
135
  currentDate: null
98
136
  });
137
+ const internalData = {
138
+ yearSize: 12,
139
+ monthSize: 20,
140
+ quarterSize: 8,
141
+ hpTimeout: undefined
142
+ };
99
143
  const refElem = ref();
100
144
  const refInputTarget = ref();
101
145
  const refInputPanel = ref();
@@ -110,16 +154,10 @@ export default defineComponent({
110
154
  props,
111
155
  context,
112
156
  reactData,
157
+ internalData,
113
158
  getRefMaps: () => refMaps
114
159
  };
115
160
  let datePickerMethods = {};
116
- const parseDate = (value, format) => {
117
- const { type } = props;
118
- if (type === 'time') {
119
- return toStringTimeDate(value);
120
- }
121
- return XEUtils.toStringDate(value, format);
122
- };
123
161
  const computeBtnTransfer = computed(() => {
124
162
  const { transfer } = props;
125
163
  if (transfer === null) {
@@ -127,7 +165,7 @@ export default defineComponent({
127
165
  if (XEUtils.isBoolean(globalTransfer)) {
128
166
  return globalTransfer;
129
167
  }
130
- if ($xeTable || $xeModal || $xeForm) {
168
+ if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
131
169
  return true;
132
170
  }
133
171
  }
@@ -183,7 +221,7 @@ export default defineComponent({
183
221
  if (XEUtils.isValidDate(date)) {
184
222
  return date;
185
223
  }
186
- return null;
224
+ return date;
187
225
  });
188
226
  }
189
227
  return [];
@@ -203,7 +241,13 @@ export default defineComponent({
203
241
  if (valueFormat) {
204
242
  return valueFormat;
205
243
  }
206
- return type === 'time' ? 'HH:mm:ss' : (type === 'datetime' ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd');
244
+ if (type === 'time') {
245
+ return 'HH:mm:ss';
246
+ }
247
+ if (type === 'datetime') {
248
+ return 'yyyy-MM-dd HH:mm:ss';
249
+ }
250
+ return 'yyyy-MM-dd';
207
251
  });
208
252
  const computeDateValue = computed(() => {
209
253
  const { modelValue } = props;
@@ -257,6 +301,7 @@ export default defineComponent({
257
301
  return null;
258
302
  });
259
303
  const computeYearList = computed(() => {
304
+ const { yearSize } = internalData;
260
305
  const { selectMonth, currentDate } = reactData;
261
306
  const years = [];
262
307
  if (selectMonth && currentDate) {
@@ -350,6 +395,7 @@ export default defineComponent({
350
395
  return XEUtils.chunk(yearList, 4);
351
396
  });
352
397
  const computeQuarterList = computed(() => {
398
+ const { quarterSize } = internalData;
353
399
  const { selectMonth, currentDate } = reactData;
354
400
  const quarters = [];
355
401
  if (selectMonth && currentDate) {
@@ -379,6 +425,7 @@ export default defineComponent({
379
425
  return XEUtils.chunk(quarterList, 2);
380
426
  });
381
427
  const computeMonthList = computed(() => {
428
+ const { monthSize } = internalData;
382
429
  const { selectMonth, currentDate } = reactData;
383
430
  const months = [];
384
431
  if (selectMonth && currentDate) {
@@ -520,11 +567,18 @@ export default defineComponent({
520
567
  const { immediate } = props;
521
568
  return immediate;
522
569
  });
570
+ const parseDate = (value, format) => {
571
+ const { type } = props;
572
+ if (type === 'time') {
573
+ return toStringTimeDate(value);
574
+ }
575
+ return XEUtils.toStringDate(value, format);
576
+ };
523
577
  const triggerEvent = (evnt) => {
524
578
  const { inputValue } = reactData;
525
579
  datePickerMethods.dispatchEvent(evnt.type, { value: inputValue }, evnt);
526
580
  };
527
- const emitModel = (value, evnt) => {
581
+ const handleChange = (value, evnt) => {
528
582
  reactData.inputValue = value;
529
583
  emit('update:modelValue', value);
530
584
  if (XEUtils.toValueString(props.modelValue) !== value) {
@@ -543,7 +597,7 @@ export default defineComponent({
543
597
  reactData.inputValue = value;
544
598
  if (!isDatePickerType) {
545
599
  if (inpImmediate) {
546
- emitModel(value, evnt);
600
+ handleChange(value, evnt);
547
601
  }
548
602
  else {
549
603
  datePickerMethods.dispatchEvent('input', { value }, evnt);
@@ -571,11 +625,10 @@ export default defineComponent({
571
625
  datePickerMethods.dispatchEvent('prefix-click', { value: inputValue }, evnt);
572
626
  }
573
627
  };
574
- let hidePanelTimeout;
575
628
  const hidePanel = () => {
576
629
  return new Promise(resolve => {
577
630
  reactData.visiblePanel = false;
578
- hidePanelTimeout = window.setTimeout(() => {
631
+ internalData.hpTimeout = window.setTimeout(() => {
579
632
  reactData.isAniVisible = false;
580
633
  resolve();
581
634
  }, 350);
@@ -586,7 +639,7 @@ export default defineComponent({
586
639
  if (isDatePickerType) {
587
640
  hidePanel();
588
641
  }
589
- emitModel('', evnt);
642
+ handleChange('', evnt);
590
643
  datePickerMethods.dispatchEvent('clear', { value }, evnt);
591
644
  };
592
645
  const clickSuffixEvent = (evnt) => {
@@ -668,9 +721,11 @@ export default defineComponent({
668
721
  date = XEUtils.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
669
722
  }
670
723
  else if (isDateTimeType) {
671
- date.setHours(datetimePanelValue.getHours());
672
- date.setMinutes(datetimePanelValue.getMinutes());
673
- date.setSeconds(datetimePanelValue.getSeconds());
724
+ if (datetimePanelValue) {
725
+ date.setHours(datetimePanelValue.getHours());
726
+ date.setMinutes(datetimePanelValue.getMinutes());
727
+ date.setSeconds(datetimePanelValue.getSeconds());
728
+ }
674
729
  }
675
730
  const inpVal = XEUtils.toDateString(date, dateValueFormat, { firstDay: firstDayOfWeek });
676
731
  dateCheckMonth(date);
@@ -690,28 +745,30 @@ export default defineComponent({
690
745
  }
691
746
  dateListValue.forEach(item => {
692
747
  if (item) {
693
- item.setHours(datetimePanelValue.getHours());
694
- item.setMinutes(datetimePanelValue.getMinutes());
695
- item.setSeconds(datetimePanelValue.getSeconds());
748
+ if (datetimePanelValue) {
749
+ item.setHours(datetimePanelValue.getHours());
750
+ item.setMinutes(datetimePanelValue.getMinutes());
751
+ item.setSeconds(datetimePanelValue.getSeconds());
752
+ }
696
753
  datetimeRest.push(item);
697
754
  }
698
755
  });
699
- emitModel(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' });
756
+ handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' });
700
757
  }
701
758
  else {
702
759
  // 如果是日期类型
703
760
  if (dateMultipleValue.some(val => XEUtils.isEqual(val, inpVal))) {
704
- emitModel(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' });
761
+ handleChange(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' });
705
762
  }
706
763
  else {
707
- emitModel(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' });
764
+ handleChange(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' });
708
765
  }
709
766
  }
710
767
  }
711
768
  else {
712
769
  // 如果为单选
713
770
  if (!XEUtils.isEqual(modelValue, inpVal)) {
714
- emitModel(inpVal, { type: 'update' });
771
+ handleChange(inpVal, { type: 'update' });
715
772
  }
716
773
  }
717
774
  };
@@ -727,7 +784,7 @@ export default defineComponent({
727
784
  if (type === 'time') {
728
785
  inpDateVal = XEUtils.toDateString(inpDateVal, dateLabelFormat);
729
786
  if (inputValue !== inpDateVal) {
730
- emitModel(inpDateVal, { type: 'check' });
787
+ handleChange(inpDateVal, { type: 'check' });
731
788
  }
732
789
  reactData.inputValue = inpDateVal;
733
790
  }
@@ -738,9 +795,11 @@ export default defineComponent({
738
795
  const dateValue = computeDateValue.value;
739
796
  if (inputValue !== XEUtils.toDateString(dateValue, dateLabelFormat) || inputValue !== XEUtils.toDateString(inpDateVal, dateLabelFormat)) {
740
797
  isChange = true;
741
- datetimePanelValue.setHours(inpDateVal.getHours());
742
- datetimePanelValue.setMinutes(inpDateVal.getMinutes());
743
- datetimePanelValue.setSeconds(inpDateVal.getSeconds());
798
+ if (datetimePanelValue) {
799
+ datetimePanelValue.setHours(inpDateVal.getHours());
800
+ datetimePanelValue.setMinutes(inpDateVal.getMinutes());
801
+ datetimePanelValue.setSeconds(inpDateVal.getSeconds());
802
+ }
744
803
  }
745
804
  }
746
805
  else {
@@ -757,7 +816,7 @@ export default defineComponent({
757
816
  }
758
817
  }
759
818
  else {
760
- emitModel('', { type: 'check' });
819
+ handleChange('', { type: 'check' });
761
820
  }
762
821
  }
763
822
  };
@@ -765,7 +824,7 @@ export default defineComponent({
765
824
  const { inputValue } = reactData;
766
825
  const inpImmediate = computeInpImmediate.value;
767
826
  if (!inpImmediate) {
768
- emitModel(inputValue, evnt);
827
+ handleChange(inputValue, evnt);
769
828
  }
770
829
  afterCheckValue();
771
830
  if (!reactData.visiblePanel) {
@@ -804,6 +863,7 @@ export default defineComponent({
804
863
  const datePrevEvent = (evnt) => {
805
864
  const { type } = props;
806
865
  const { datePanelType, selectMonth } = reactData;
866
+ const { yearSize } = internalData;
807
867
  const isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value;
808
868
  if (!isDisabledPrevDateBtn) {
809
869
  if (type === 'year') {
@@ -842,6 +902,7 @@ export default defineComponent({
842
902
  const dateNextEvent = (evnt) => {
843
903
  const { type } = props;
844
904
  const { datePanelType, selectMonth } = reactData;
905
+ const { yearSize } = internalData;
845
906
  const isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value;
846
907
  if (!isDisabledNextDateBtn) {
847
908
  if (type === 'year') {
@@ -995,11 +1056,15 @@ export default defineComponent({
995
1056
  }
996
1057
  };
997
1058
  const dateTimeChangeEvent = (evnt) => {
998
- reactData.datetimePanelValue = new Date(reactData.datetimePanelValue.getTime());
1059
+ const { datetimePanelValue } = reactData;
1060
+ reactData.datetimePanelValue = datetimePanelValue ? new Date(datetimePanelValue.getTime()) : new Date();
999
1061
  updateTimePos(evnt.currentTarget);
1000
1062
  };
1001
1063
  const dateHourEvent = (evnt, item) => {
1002
- reactData.datetimePanelValue.setHours(item.value);
1064
+ const { datetimePanelValue } = reactData;
1065
+ if (datetimePanelValue) {
1066
+ datetimePanelValue.setHours(item.value);
1067
+ }
1003
1068
  dateTimeChangeEvent(evnt);
1004
1069
  };
1005
1070
  const dateConfirmEvent = () => {
@@ -1018,17 +1083,19 @@ export default defineComponent({
1018
1083
  const datetimeRest = [];
1019
1084
  dateListValue.forEach(item => {
1020
1085
  if (item) {
1021
- item.setHours(datetimePanelValue.getHours());
1022
- item.setMinutes(datetimePanelValue.getMinutes());
1023
- item.setSeconds(datetimePanelValue.getSeconds());
1086
+ if (datetimePanelValue) {
1087
+ item.setHours(datetimePanelValue.getHours());
1088
+ item.setMinutes(datetimePanelValue.getMinutes());
1089
+ item.setSeconds(datetimePanelValue.getSeconds());
1090
+ }
1024
1091
  datetimeRest.push(item);
1025
1092
  }
1026
1093
  });
1027
- emitModel(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' });
1094
+ handleChange(datetimeRest.map(date => XEUtils.toDateString(date, dateValueFormat)).join(','), { type: 'update' });
1028
1095
  }
1029
1096
  else {
1030
1097
  // 如果是日期类型
1031
- emitModel(dateMultipleValue.join(','), { type: 'update' });
1098
+ handleChange(dateMultipleValue.join(','), { type: 'update' });
1032
1099
  }
1033
1100
  }
1034
1101
  else {
@@ -1038,11 +1105,17 @@ export default defineComponent({
1038
1105
  hidePanel();
1039
1106
  };
1040
1107
  const dateMinuteEvent = (evnt, item) => {
1041
- reactData.datetimePanelValue.setMinutes(item.value);
1108
+ const { datetimePanelValue } = reactData;
1109
+ if (datetimePanelValue) {
1110
+ datetimePanelValue.setMinutes(item.value);
1111
+ }
1042
1112
  dateTimeChangeEvent(evnt);
1043
1113
  };
1044
1114
  const dateSecondEvent = (evnt, item) => {
1045
- reactData.datetimePanelValue.setSeconds(item.value);
1115
+ const { datetimePanelValue } = reactData;
1116
+ if (datetimePanelValue) {
1117
+ datetimePanelValue.setSeconds(item.value);
1118
+ }
1046
1119
  dateTimeChangeEvent(evnt);
1047
1120
  };
1048
1121
  const dateOffsetEvent = (evnt) => {
@@ -1155,7 +1228,9 @@ export default defineComponent({
1155
1228
  reactData.datetimePanelValue = reactData.datePanelValue || XEUtils.getWhatDay(Date.now(), 0, 'first');
1156
1229
  nextTick(() => {
1157
1230
  const timeBodyElem = refInputTimeBody.value;
1158
- XEUtils.arrayEach(timeBodyElem.querySelectorAll('li.is--selected'), updateTimePos);
1231
+ XEUtils.arrayEach(timeBodyElem.querySelectorAll('li.is--selected'), (elem) => {
1232
+ updateTimePos(elem);
1233
+ });
1159
1234
  });
1160
1235
  }
1161
1236
  };
@@ -1249,7 +1324,10 @@ export default defineComponent({
1249
1324
  if (!reactData.initialized) {
1250
1325
  reactData.initialized = true;
1251
1326
  }
1252
- clearTimeout(hidePanelTimeout);
1327
+ if (internalData.hpTimeout) {
1328
+ clearTimeout(internalData.hpTimeout);
1329
+ internalData.hpTimeout = undefined;
1330
+ }
1253
1331
  reactData.isActivated = true;
1254
1332
  reactData.isAniVisible = true;
1255
1333
  if (isDatePickerType) {
@@ -1408,13 +1486,13 @@ export default defineComponent({
1408
1486
  }]
1409
1487
  }, extraItem && extraItem.label
1410
1488
  ? [
1411
- h('span', label),
1489
+ h('span', `${label}`),
1412
1490
  h('span', {
1413
1491
  class: ['vxe-date-picker--date-label--extra', extraItem.important ? 'is-important' : '', extraItem.className],
1414
1492
  style: extraItem.style
1415
1493
  }, XEUtils.toValueString(extraItem.label))
1416
1494
  ]
1417
- : label)
1495
+ : `${label}`)
1418
1496
  ];
1419
1497
  const festivalLabel = festivalItem.label;
1420
1498
  if (festivalLabel) {
@@ -1899,10 +1977,11 @@ export default defineComponent({
1899
1977
  })
1900
1978
  ]);
1901
1979
  };
1980
+ const dispatchEvent = (type, params, evnt) => {
1981
+ emit(type, createEvent(evnt, { $datePicker: $xeDatePicker }, params));
1982
+ };
1902
1983
  datePickerMethods = {
1903
- dispatchEvent(type, params, evnt) {
1904
- emit(type, createEvent(evnt, { $input: $xeDatePicker }, params));
1905
- },
1984
+ dispatchEvent,
1906
1985
  focus() {
1907
1986
  const inputElem = refInputTarget.value;
1908
1987
  reactData.isActivated = true;
@@ -1964,7 +2043,7 @@ export default defineComponent({
1964
2043
  });
1965
2044
  initValue();
1966
2045
  const renderVN = () => {
1967
- const { className, type, align, name, autocomplete } = props;
2046
+ const { className, type, align, name, autocomplete, autoComplete } = props;
1968
2047
  const { inputValue, visiblePanel, isActivated } = reactData;
1969
2048
  const vSize = computeSize.value;
1970
2049
  const isDisabled = computeIsDisabled.value;
@@ -2008,7 +2087,7 @@ export default defineComponent({
2008
2087
  placeholder: inpPlaceholder,
2009
2088
  readonly: inputReadonly,
2010
2089
  disabled: isDisabled,
2011
- autocomplete,
2090
+ autocomplete: autoComplete || autocomplete,
2012
2091
  onKeydown: keydownEvent,
2013
2092
  onKeyup: keyupEvent,
2014
2093
  onWheel: wheelEvent,