vxe-pc-ui 4.1.20 → 4.1.22

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 (233) hide show
  1. package/README.md +82 -1
  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/calendar/src/calendar.js +64 -32
  7. package/es/carousel/src/carousel-item.js +13 -3
  8. package/es/carousel/src/carousel.js +16 -8
  9. package/es/checkbox/src/checkbox.js +30 -14
  10. package/es/checkbox/src/group.js +17 -8
  11. package/es/collapse-pane/index.js +1 -1
  12. package/es/countdown/src/countdown.js +1 -1
  13. package/es/date-picker/src/date-picker.js +12 -12
  14. package/es/drawer/src/drawer.js +1 -1
  15. package/es/form/render/index.js +1 -2
  16. package/es/form/src/form-config-item.js +4 -3
  17. package/es/form/src/form-gather.js +5 -3
  18. package/es/form/src/form-item.js +15 -10
  19. package/es/form/src/form.js +11 -8
  20. package/es/form/src/render.js +2 -1
  21. package/es/form/src/util.js +2 -1
  22. package/es/icon/style.css +1 -1
  23. package/es/icon-picker/src/icon-picker.js +22 -10
  24. package/es/image/src/group.js +4 -1
  25. package/es/image/src/preview.js +1 -1
  26. package/es/input/src/input.js +129 -65
  27. package/es/layout-aside/src/layout-aside.js +1 -1
  28. package/es/list/src/list.js +7 -5
  29. package/es/list-design/src/list-design.js +1 -1
  30. package/es/list-design/src/list-view.js +1 -1
  31. package/es/loading/src/loading.js +1 -1
  32. package/es/menu/src/menu.js +1 -1
  33. package/es/number-input/src/number-input.js +6 -6
  34. package/es/pager/src/pager.js +85 -45
  35. package/es/password-input/src/password-input.js +2 -2
  36. package/es/print/src/page-break.js +11 -2
  37. package/es/print/src/print.js +6 -4
  38. package/es/radio/src/group.js +5 -2
  39. package/es/row/src/row.js +1 -1
  40. package/es/select/src/optgroup.js +11 -8
  41. package/es/select/src/option.js +9 -7
  42. package/es/select/src/select.js +32 -29
  43. package/es/select/src/util.js +2 -2
  44. package/es/style.css +1 -1
  45. package/es/style.min.css +1 -1
  46. package/es/tabs/src/tab-pane.js +13 -3
  47. package/es/tabs/src/tabs.js +57 -47
  48. package/es/textarea/src/textarea.js +4 -4
  49. package/es/tooltip/src/tooltip.js +1 -1
  50. package/es/tree/src/tree.js +6 -3
  51. package/es/tree-select/src/tree-select.js +16 -9
  52. package/es/ui/index.js +1 -7
  53. package/es/ui/src/log.js +1 -1
  54. package/es/upload/src/upload.js +5 -5
  55. package/lib/anchor/src/anchor-link.js +1 -1
  56. package/lib/anchor/src/anchor-link.min.js +1 -1
  57. package/lib/anchor/src/anchor.js +1 -1
  58. package/lib/anchor/src/anchor.min.js +1 -1
  59. package/lib/breadcrumb/src/breadcrumb.js +1 -1
  60. package/lib/breadcrumb/src/breadcrumb.min.js +1 -1
  61. package/lib/button/src/button-group.js +4 -1
  62. package/lib/button/src/button-group.min.js +1 -1
  63. package/lib/calendar/src/calendar.js +42 -24
  64. package/lib/calendar/src/calendar.min.js +1 -1
  65. package/lib/carousel/src/carousel-item.js +16 -3
  66. package/lib/carousel/src/carousel-item.min.js +1 -1
  67. package/lib/carousel/src/carousel.js +18 -8
  68. package/lib/carousel/src/carousel.min.js +1 -1
  69. package/lib/checkbox/src/checkbox.js +16 -12
  70. package/lib/checkbox/src/checkbox.min.js +1 -1
  71. package/lib/checkbox/src/group.js +10 -7
  72. package/lib/checkbox/src/group.min.js +1 -1
  73. package/lib/collapse-pane/index.js +1 -1
  74. package/lib/collapse-pane/index.min.js +1 -1
  75. package/lib/countdown/src/countdown.js +1 -1
  76. package/lib/countdown/src/countdown.min.js +1 -1
  77. package/lib/date-picker/src/date-picker.js +12 -12
  78. package/lib/drawer/src/drawer.js +1 -1
  79. package/lib/drawer/src/drawer.min.js +1 -1
  80. package/lib/form/render/index.js +1 -4
  81. package/lib/form/render/index.min.js +1 -1
  82. package/lib/form/src/form-config-item.js +4 -5
  83. package/lib/form/src/form-config-item.min.js +1 -1
  84. package/lib/form/src/form-gather.js +11 -9
  85. package/lib/form/src/form-gather.min.js +1 -1
  86. package/lib/form/src/form-item.js +11 -12
  87. package/lib/form/src/form-item.min.js +1 -1
  88. package/lib/form/src/form.js +7 -7
  89. package/lib/form/src/form.min.js +1 -1
  90. package/lib/form/src/render.js +2 -1
  91. package/lib/form/src/util.js +2 -1
  92. package/lib/icon/style/style.css +1 -1
  93. package/lib/icon/style/style.min.css +1 -1
  94. package/lib/icon-picker/src/icon-picker.js +20 -11
  95. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  96. package/lib/image/src/group.js +4 -1
  97. package/lib/image/src/group.min.js +1 -1
  98. package/lib/image/src/preview.js +1 -1
  99. package/lib/image/src/preview.min.js +1 -1
  100. package/lib/index.umd.js +575 -408
  101. package/lib/index.umd.min.js +1 -1
  102. package/lib/input/src/input.js +77 -50
  103. package/lib/input/src/input.min.js +1 -1
  104. package/lib/layout-aside/src/layout-aside.js +1 -1
  105. package/lib/layout-aside/src/layout-aside.min.js +1 -1
  106. package/lib/list/src/list.js +9 -5
  107. package/lib/list/src/list.min.js +1 -1
  108. package/lib/list-design/src/list-design.js +1 -1
  109. package/lib/list-design/src/list-design.min.js +1 -1
  110. package/lib/list-design/src/list-view.js +1 -1
  111. package/lib/list-design/src/list-view.min.js +1 -1
  112. package/lib/loading/src/loading.js +1 -1
  113. package/lib/loading/src/loading.min.js +1 -1
  114. package/lib/menu/src/menu.js +1 -1
  115. package/lib/menu/src/menu.min.js +1 -1
  116. package/lib/number-input/src/number-input.js +6 -6
  117. package/lib/pager/src/pager.js +40 -39
  118. package/lib/pager/src/pager.min.js +1 -1
  119. package/lib/password-input/src/password-input.js +2 -2
  120. package/lib/print/src/page-break.js +14 -2
  121. package/lib/print/src/page-break.min.js +1 -1
  122. package/lib/print/src/print.js +8 -6
  123. package/lib/print/src/print.min.js +1 -1
  124. package/lib/radio/src/group.js +5 -2
  125. package/lib/radio/src/group.min.js +1 -1
  126. package/lib/row/src/row.js +1 -1
  127. package/lib/row/src/row.min.js +1 -1
  128. package/lib/select/src/optgroup.js +12 -9
  129. package/lib/select/src/optgroup.min.js +1 -1
  130. package/lib/select/src/option.js +9 -7
  131. package/lib/select/src/option.min.js +1 -1
  132. package/lib/select/src/select.js +33 -32
  133. package/lib/select/src/select.min.js +1 -1
  134. package/lib/select/src/util.js +2 -2
  135. package/lib/select/src/util.min.js +1 -1
  136. package/lib/style.css +1 -1
  137. package/lib/style.min.css +1 -1
  138. package/lib/tabs/src/tab-pane.js +16 -3
  139. package/lib/tabs/src/tab-pane.min.js +1 -1
  140. package/lib/tabs/src/tabs.js +62 -50
  141. package/lib/tabs/src/tabs.min.js +1 -1
  142. package/lib/textarea/src/textarea.js +4 -4
  143. package/lib/tooltip/src/tooltip.js +1 -1
  144. package/lib/tooltip/src/tooltip.min.js +1 -1
  145. package/lib/tree/src/tree.js +2 -2
  146. package/lib/tree/src/tree.min.js +1 -1
  147. package/lib/tree-select/src/tree-select.js +11 -7
  148. package/lib/tree-select/src/tree-select.min.js +1 -1
  149. package/lib/ui/index.js +3 -10
  150. package/lib/ui/index.min.js +1 -1
  151. package/lib/ui/src/log.js +1 -1
  152. package/lib/ui/src/log.min.js +1 -1
  153. package/lib/upload/src/upload.js +5 -5
  154. package/lib/upload/src/upload.min.js +1 -1
  155. package/package.json +2 -2
  156. package/packages/anchor/src/anchor-link.ts +2 -2
  157. package/packages/anchor/src/anchor.ts +2 -2
  158. package/packages/breadcrumb/src/breadcrumb.ts +2 -2
  159. package/packages/button/src/button-group.ts +4 -1
  160. package/packages/calendar/src/calendar.ts +67 -35
  161. package/packages/carousel/src/carousel-item.ts +19 -4
  162. package/packages/carousel/src/carousel.ts +19 -11
  163. package/packages/checkbox/src/checkbox.ts +34 -15
  164. package/packages/checkbox/src/group.ts +22 -10
  165. package/packages/collapse-pane/index.ts +1 -1
  166. package/packages/countdown/src/countdown.ts +2 -2
  167. package/packages/date-picker/src/date-picker.ts +12 -12
  168. package/packages/drawer/src/drawer.ts +2 -2
  169. package/packages/form/render/index.ts +1 -3
  170. package/packages/form/src/form-config-item.ts +4 -3
  171. package/packages/form/src/form-gather.ts +5 -3
  172. package/packages/form/src/form-item.ts +15 -10
  173. package/packages/form/src/form.ts +12 -10
  174. package/packages/form/src/render.ts +2 -1
  175. package/packages/form/src/util.ts +2 -1
  176. package/packages/icon-picker/src/icon-picker.ts +26 -13
  177. package/packages/image/src/group.ts +4 -1
  178. package/packages/image/src/preview.ts +2 -2
  179. package/packages/input/src/input.ts +133 -71
  180. package/packages/layout-aside/src/layout-aside.ts +2 -2
  181. package/packages/list/src/list.ts +12 -11
  182. package/packages/list-design/src/list-design.ts +2 -2
  183. package/packages/list-design/src/list-view.ts +2 -2
  184. package/packages/loading/src/loading.ts +2 -2
  185. package/packages/menu/src/menu.ts +2 -2
  186. package/packages/number-input/src/number-input.ts +6 -6
  187. package/packages/pager/src/pager.ts +91 -50
  188. package/packages/password-input/src/password-input.ts +2 -2
  189. package/packages/print/src/page-break.ts +18 -4
  190. package/packages/print/src/print.ts +10 -5
  191. package/packages/radio/src/group.ts +6 -3
  192. package/packages/row/src/row.ts +2 -2
  193. package/packages/select/src/optgroup.ts +16 -13
  194. package/packages/select/src/option.ts +10 -8
  195. package/packages/select/src/select.ts +42 -36
  196. package/packages/select/src/util.ts +3 -3
  197. package/packages/tabs/src/tab-pane.ts +20 -5
  198. package/packages/tabs/src/tabs.ts +59 -49
  199. package/packages/textarea/src/textarea.ts +4 -4
  200. package/packages/tooltip/src/tooltip.ts +2 -2
  201. package/packages/tree/src/tree.ts +7 -4
  202. package/packages/tree-select/src/tree-select.ts +20 -12
  203. package/packages/ui/index.ts +0 -7
  204. package/packages/upload/src/upload.ts +6 -6
  205. package/types/components/calendar.d.ts +6 -0
  206. package/types/components/carousel.d.ts +5 -0
  207. package/types/components/form.d.ts +4 -2
  208. package/types/components/icon-picker.d.ts +4 -0
  209. package/types/components/input.d.ts +9 -1
  210. package/types/components/list.d.ts +1 -0
  211. package/types/components/optgroup.d.ts +10 -4
  212. package/types/components/table-module/validator.d.ts +2 -3
  213. package/types/components/table.d.ts +4 -1
  214. package/types/components/tabs.d.ts +4 -0
  215. package/types/components/toolbar.d.ts +5 -0
  216. package/types/components/tree-select.d.ts +4 -0
  217. package/types/ui/index.d.ts +0 -22
  218. /package/es/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  219. /package/es/icon/style/{iconfont.1725680652286.ttf → iconfont.1725977331743.ttf} +0 -0
  220. /package/es/icon/style/{iconfont.1725680652286.woff → iconfont.1725977331743.woff} +0 -0
  221. /package/es/icon/style/{iconfont.1725680652286.woff2 → iconfont.1725977331743.woff2} +0 -0
  222. /package/es/{iconfont.1725680652286.ttf → iconfont.1725977331743.ttf} +0 -0
  223. /package/es/{iconfont.1725680652286.woff → iconfont.1725977331743.woff} +0 -0
  224. /package/es/{iconfont.1725680652286.woff2 → iconfont.1725977331743.woff2} +0 -0
  225. /package/lib/{collapse-pane → collapse}/src/collapse-pane.js +0 -0
  226. /package/lib/{collapse-pane → collapse}/src/collapse-pane.min.js +0 -0
  227. /package/lib/icon/style/{iconfont.1725680652286.ttf → iconfont.1725977331743.ttf} +0 -0
  228. /package/lib/icon/style/{iconfont.1725680652286.woff → iconfont.1725977331743.woff} +0 -0
  229. /package/lib/icon/style/{iconfont.1725680652286.woff2 → iconfont.1725977331743.woff2} +0 -0
  230. /package/lib/{iconfont.1725680652286.ttf → iconfont.1725977331743.ttf} +0 -0
  231. /package/lib/{iconfont.1725680652286.woff → iconfont.1725977331743.woff} +0 -0
  232. /package/lib/{iconfont.1725680652286.woff2 → iconfont.1725977331743.woff2} +0 -0
  233. /package/packages/{collapse-pane → collapse}/src/collapse-pane.ts +0 -0
package/README.md CHANGED
@@ -109,8 +109,89 @@ npm install vxe-pc-ui
109
109
  import VxeUI from 'vxe-pc-ui'
110
110
  import 'vxe-pc-ui/lib/style.css'
111
111
  // ...
112
+ // ...
113
+ import VxeTable from 'vxe-table'
114
+ import 'vxe-table/lib/style.css'
115
+ // ...
116
+
117
+ createApp(App).use(VxeUI).use(VxeTable).mount('#app')
118
+ ```
119
+
120
+ ### CDN
121
+
122
+ 使用第三方 CDN 方式记得锁定版本号,避免受到非兼容性更新的影响
123
+ ***不建议将第三方的 CDN 地址用于正式环境,因为该连接随时都可能会失效***
124
+
125
+ ```HTML
126
+ <!-- style -->
127
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vxe-pc-ui/lib/style.css">
128
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vxe-table@next/lib/style.css">
129
+ <!-- vue -->
130
+ <script src="https://cdn.jsdelivr.net/npm/vue"></script>
131
+ <!-- table -->
132
+ <script src="https://cdn.jsdelivr.net/npm/xe-utils"></script>
133
+ <script src="https://cdn.jsdelivr.net/npm/vxe-pc-ui"></script>
134
+ <script src="https://cdn.jsdelivr.net/npm/vxe-table@next"></script>
135
+ ```
112
136
 
113
- createApp(App).use(VxeUI).mount('#app')
137
+ ## 示例
138
+
139
+ ```html
140
+ <template>
141
+ <div>
142
+ <vxe-form
143
+ ref="formRef"
144
+ :data="formData"
145
+ @submit="submitEvent">
146
+ <vxe-form-item title="名称" field="name" span="12" :item-render="{}">
147
+ <template #default="params">
148
+ <vxe-input v-model="formData.name""></vxe-input>
149
+ </template>
150
+ </vxe-form-item>
151
+ <vxe-form-item title="角色" field="role" span="12" :item-render="{}">
152
+ <template #default="params">
153
+ <vxe-input v-model="formData.role"></vxe-input>
154
+ </template>
155
+ </vxe-form-item>
156
+ <vxe-form-item title="年龄" field="age" span="12" :item-render="{}">
157
+ <template #default="params">
158
+ <vxe-input v-model="formData.age"></vxe-input>
159
+ </template>
160
+ </vxe-form-item>
161
+ <vxe-form-item align="center" span="24" :item-render="{}">
162
+ <template #default>
163
+ <vxe-button type="submit" status="primary">提交</vxe-button>
164
+ <vxe-button type="reset">重置</vxe-button>
165
+ </template>
166
+ </vxe-form-item>
167
+ </vxe-form>
168
+ </div>
169
+ </template>
170
+
171
+ <script lang="ts" setup>
172
+ import { ref } from 'vue'
173
+ import { VxeUI, VxeFormInstance, VxeFormEvents } from 'vxe-pc-ui'
174
+
175
+ interface FormDataVO {
176
+ name: string
177
+ nickname: string
178
+ sex: string
179
+ role: string
180
+ }
181
+
182
+ const formRef = ref<VxeFormInstance<FormDataVO>>()
183
+
184
+ const formData = ref<FormDataVO>({
185
+ name: '',
186
+ nickname: '',
187
+ sex: '',
188
+ role: ''
189
+ })
190
+
191
+ const submitEvent: VxeFormEvents.Submit = () => {
192
+ VxeUI.modal.message({ content: '保存成功', status: 'success' })
193
+ }
194
+ </script>
114
195
  ```
115
196
 
116
197
  ## QQ 交流群
@@ -85,8 +85,8 @@ export default defineComponent({
85
85
  : createCommentVNode()
86
86
  ]);
87
87
  };
88
- $xeAnchorLink.renderVN = renderVN;
89
88
  provide('$xeAnchorLink', $xeAnchorLink);
89
+ $xeAnchorLink.renderVN = renderVN;
90
90
  return $xeAnchorLink;
91
91
  },
92
92
  render() {
@@ -196,8 +196,8 @@ export default defineComponent({
196
196
  onBeforeUnmount(() => {
197
197
  removeContainerElemScroll();
198
198
  });
199
- $xeAnchor.renderVN = renderVN;
200
199
  provide('$xeAnchor', $xeAnchor);
200
+ $xeAnchor.renderVN = renderVN;
201
201
  return $xeAnchor;
202
202
  },
203
203
  render() {
@@ -61,8 +61,8 @@ export default defineComponent({
61
61
  class: 'vxe-breadcrumb'
62
62
  }, defaultSlot ? defaultSlot({}) : renderItems());
63
63
  };
64
- $xeBreadcrumb.renderVN = renderVN;
65
64
  provide('$xeBreadcrumb', $xeBreadcrumb);
65
+ $xeBreadcrumb.renderVN = renderVN;
66
66
  return $xeBreadcrumb;
67
67
  },
68
68
  render() {
@@ -66,6 +66,9 @@ export default defineComponent({
66
66
  };
67
67
  $xeButtonGroup.renderVN = renderVN;
68
68
  provide('$xeButtonGroup', $xeButtonGroup);
69
- return renderVN;
69
+ return $xeButtonGroup;
70
+ },
71
+ render() {
72
+ return this.renderVN();
70
73
  }
71
74
  });
@@ -8,22 +8,46 @@ export default defineComponent({
8
8
  name: 'VxeCalendar',
9
9
  props: {
10
10
  modelValue: [String, Number, Date],
11
- type: { type: String, default: 'date' },
11
+ type: {
12
+ type: String,
13
+ default: 'date'
14
+ },
12
15
  className: String,
13
- size: { type: String, default: () => getConfig().calendar.size || getConfig().size },
16
+ size: {
17
+ type: String,
18
+ default: () => getConfig().calendar.size || getConfig().size
19
+ },
14
20
  multiple: Boolean,
15
21
  width: [String, Number],
16
22
  height: [String, Number],
17
23
  // date、week、month、quarter、year
18
- minDate: { type: [String, Number, Date], default: () => getConfig().calendar.minDate },
19
- maxDate: { type: [String, Number, Date], default: () => getConfig().calendar.maxDate },
20
- startDay: { type: [String, Number], default: () => getConfig().calendar.startDay },
24
+ minDate: {
25
+ type: [String, Number, Date],
26
+ default: () => getConfig().calendar.minDate
27
+ },
28
+ maxDate: {
29
+ type: [String, Number, Date],
30
+ default: () => getConfig().calendar.maxDate
31
+ },
32
+ startDay: {
33
+ type: [String, Number],
34
+ default: () => getConfig().calendar.startDay
35
+ },
21
36
  labelFormat: String,
22
37
  valueFormat: String,
23
- festivalMethod: { type: Function, default: () => getConfig().calendar.festivalMethod },
24
- disabledMethod: { type: Function, default: () => getConfig().calendar.disabledMethod },
38
+ festivalMethod: {
39
+ type: Function,
40
+ default: () => getConfig().calendar.festivalMethod
41
+ },
42
+ disabledMethod: {
43
+ type: Function,
44
+ default: () => getConfig().calendar.disabledMethod
45
+ },
25
46
  // week
26
- selectDay: { type: [String, Number], default: () => getConfig().calendar.selectDay }
47
+ selectDay: {
48
+ type: [String, Number],
49
+ default: () => getConfig().calendar.selectDay
50
+ }
27
51
  },
28
52
  emits: [
29
53
  'update:modelValue',
@@ -37,9 +61,6 @@ export default defineComponent({
37
61
  const { emit } = context;
38
62
  const xID = XEUtils.uniqueId();
39
63
  const { computeSize } = useSize(props);
40
- const yearSize = 12;
41
- const monthSize = 20;
42
- const quarterSize = 8;
43
64
  const reactData = reactive({
44
65
  selectValue: props.modelValue,
45
66
  inputValue: props.modelValue,
@@ -49,18 +70,12 @@ export default defineComponent({
49
70
  selectMonth: null,
50
71
  currentDate: null
51
72
  });
73
+ const internalData = {
74
+ yearSize: 12,
75
+ monthSize: 20,
76
+ quarterSize: 8
77
+ };
52
78
  const refElem = ref();
53
- const computeCalendarStyle = computed(() => {
54
- const { height, width } = props;
55
- const stys = {};
56
- if (width) {
57
- stys.width = toCssUnit(width);
58
- }
59
- if (height) {
60
- stys.height = toCssUnit(height);
61
- }
62
- return stys;
63
- });
64
79
  const refMaps = {
65
80
  refElem
66
81
  };
@@ -69,12 +84,21 @@ export default defineComponent({
69
84
  props,
70
85
  context,
71
86
  reactData,
87
+ internalData,
72
88
  getRefMaps: () => refMaps
73
89
  };
74
90
  let calendarMethods = {};
75
- const parseDate = (value, format) => {
76
- return XEUtils.toStringDate(value, format);
77
- };
91
+ const computeCalendarStyle = computed(() => {
92
+ const { height, width } = props;
93
+ const stys = {};
94
+ if (width) {
95
+ stys.width = toCssUnit(width);
96
+ }
97
+ if (height) {
98
+ stys.height = toCssUnit(height);
99
+ }
100
+ return stys;
101
+ });
78
102
  const computeIsDisabled = computed(() => {
79
103
  return false;
80
104
  });
@@ -167,6 +191,7 @@ export default defineComponent({
167
191
  });
168
192
  const computeYearList = computed(() => {
169
193
  const { selectMonth, currentDate } = reactData;
194
+ const { yearSize } = internalData;
170
195
  const years = [];
171
196
  if (selectMonth && currentDate) {
172
197
  const currFullYear = currentDate.getFullYear();
@@ -260,6 +285,7 @@ export default defineComponent({
260
285
  });
261
286
  const computeQuarterList = computed(() => {
262
287
  const { selectMonth, currentDate } = reactData;
288
+ const { quarterSize } = internalData;
263
289
  const quarters = [];
264
290
  if (selectMonth && currentDate) {
265
291
  const currFullYear = currentDate.getFullYear();
@@ -289,6 +315,7 @@ export default defineComponent({
289
315
  });
290
316
  const computeMonthList = computed(() => {
291
317
  const { selectMonth, currentDate } = reactData;
318
+ const { monthSize } = internalData;
292
319
  const months = [];
293
320
  if (selectMonth && currentDate) {
294
321
  const currFullYear = currentDate.getFullYear();
@@ -368,7 +395,10 @@ export default defineComponent({
368
395
  return [item].concat(list);
369
396
  });
370
397
  });
371
- const emitModel = (value, evnt) => {
398
+ const parseDate = (value, format) => {
399
+ return XEUtils.toStringDate(value, format);
400
+ };
401
+ const handleChange = (value, evnt) => {
372
402
  reactData.inputValue = value;
373
403
  emit('update:modelValue', value);
374
404
  if (XEUtils.toValueString(props.modelValue) !== value) {
@@ -449,16 +479,16 @@ export default defineComponent({
449
479
  const dateMultipleValue = computeDateMultipleValue.value;
450
480
  // 如果是日期类型
451
481
  if (dateMultipleValue.some(val => XEUtils.isEqual(val, inpVal))) {
452
- emitModel(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' });
482
+ handleChange(dateMultipleValue.filter(val => !XEUtils.isEqual(val, inpVal)).join(','), { type: 'update' });
453
483
  }
454
484
  else {
455
- emitModel(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' });
485
+ handleChange(dateMultipleValue.concat([inpVal]).join(','), { type: 'update' });
456
486
  }
457
487
  }
458
488
  else {
459
489
  // 如果为单选
460
490
  if (!XEUtils.isEqual(modelValue, inpVal)) {
461
- emitModel(inpVal, { type: 'update' });
491
+ handleChange(inpVal, { type: 'update' });
462
492
  }
463
493
  }
464
494
  };
@@ -483,6 +513,7 @@ export default defineComponent({
483
513
  const datePrevEvent = (evnt) => {
484
514
  const { type } = props;
485
515
  const { datePanelType, selectMonth } = reactData;
516
+ const { yearSize } = internalData;
486
517
  const isDisabledPrevDateBtn = computeIsDisabledPrevDateBtn.value;
487
518
  if (!isDisabledPrevDateBtn) {
488
519
  if (type === 'year') {
@@ -520,6 +551,7 @@ export default defineComponent({
520
551
  const dateNextEvent = (evnt) => {
521
552
  const { type } = props;
522
553
  const { datePanelType, selectMonth } = reactData;
554
+ const { yearSize } = internalData;
523
555
  const isDisabledNextDateBtn = computeIsDisabledNextDateBtn.value;
524
556
  if (!isDisabledNextDateBtn) {
525
557
  if (type === 'year') {
@@ -682,13 +714,13 @@ export default defineComponent({
682
714
  }]
683
715
  }, extraItem && extraItem.label
684
716
  ? [
685
- h('span', label),
717
+ h('span', `${label || ''}`),
686
718
  h('span', {
687
719
  class: ['vxe-calendar--date-label--extra', extraItem.important ? 'is-important' : '', extraItem.className],
688
720
  style: extraItem.style
689
721
  }, XEUtils.toValueString(extraItem.label))
690
722
  ]
691
- : label)
723
+ : [`${label || ''}`])
692
724
  ];
693
725
  const festivalLabel = festivalItem.label;
694
726
  if (festivalLabel) {
@@ -709,7 +741,7 @@ export default defineComponent({
709
741
  }
710
742
  return labels;
711
743
  }
712
- return label;
744
+ return `${label || ''}`;
713
745
  };
714
746
  const renderDateDayTable = () => {
715
747
  const { multiple } = props;
@@ -1,4 +1,5 @@
1
1
  import { defineComponent, ref, h, reactive, inject, watch, onMounted, onUnmounted } from 'vue';
2
+ import { createEvent } from '../../ui';
2
3
  import { assembleCarouselItem, destroyCarouselItem } from './util';
3
4
  import XEUtils from 'xe-utils';
4
5
  export default defineComponent({
@@ -10,7 +11,7 @@ export default defineComponent({
10
11
  },
11
12
  emits: [],
12
13
  setup(props, context) {
13
- const { slots } = context;
14
+ const { slots, emit } = context;
14
15
  const $xeCarousel = inject('$xeCarousel', null);
15
16
  const xID = XEUtils.uniqueId();
16
17
  const refElem = ref();
@@ -34,6 +35,14 @@ export default defineComponent({
34
35
  getRefMaps: () => refMaps,
35
36
  getComputeMaps: () => computeMaps
36
37
  };
38
+ const dispatchEvent = (type, params, evnt) => {
39
+ emit(type, createEvent(evnt, { $carouselItem: $xeCarouselItem }, params));
40
+ };
41
+ const carouselItemMethods = {
42
+ dispatchEvent
43
+ };
44
+ const carouselItemPrivateMethods = {};
45
+ Object.assign($xeCarouselItem, carouselItemMethods, carouselItemPrivateMethods);
37
46
  const renderVN = () => {
38
47
  return h('div', {
39
48
  ref: refElem
@@ -46,8 +55,9 @@ export default defineComponent({
46
55
  itemConfig.url = val;
47
56
  });
48
57
  onMounted(() => {
49
- if ($xeCarousel && refElem.value) {
50
- assembleCarouselItem($xeCarousel, refElem.value, itemConfig);
58
+ const elem = refElem.value;
59
+ if ($xeCarousel && elem) {
60
+ assembleCarouselItem($xeCarousel, elem, itemConfig);
51
61
  }
52
62
  });
53
63
  onUnmounted(() => {
@@ -54,6 +54,10 @@ export default defineComponent({
54
54
  itemWidth: 0,
55
55
  itemHeight: 0
56
56
  });
57
+ const internalData = {
58
+ apTimeout: undefined,
59
+ stopFlag: false
60
+ };
57
61
  const refMaps = {
58
62
  refElem
59
63
  };
@@ -78,6 +82,7 @@ export default defineComponent({
78
82
  props,
79
83
  context,
80
84
  reactData,
85
+ internalData,
81
86
  getRefMaps: () => refMaps,
82
87
  getComputeMaps: () => computeMaps
83
88
  };
@@ -181,20 +186,21 @@ export default defineComponent({
181
186
  emit('change', { value }, evnt);
182
187
  }
183
188
  };
184
- let apTimeout = null;
185
- let stopFlag = false;
186
189
  const stopAutoPlay = () => {
187
- stopFlag = true;
188
- if (apTimeout !== null) {
190
+ const { apTimeout } = internalData;
191
+ internalData.stopFlag = true;
192
+ if (apTimeout) {
189
193
  clearTimeout(apTimeout);
194
+ internalData.apTimeout = undefined;
190
195
  }
191
196
  };
192
197
  const handleAutoPlay = () => {
193
198
  const { autoPlay, interval } = props;
199
+ const { stopFlag } = internalData;
194
200
  stopAutoPlay();
195
201
  if (autoPlay) {
196
- stopFlag = false;
197
- apTimeout = setTimeout(() => {
202
+ internalData.stopFlag = false;
203
+ internalData.apTimeout = setTimeout(() => {
198
204
  if (!stopFlag) {
199
205
  handlePrevNext(true);
200
206
  }
@@ -294,7 +300,9 @@ export default defineComponent({
294
300
  height: toCssUnit(height)
295
301
  }
296
302
  : null
297
- }, renderItemWrapper(list)),
303
+ }, [
304
+ renderItemWrapper(list)
305
+ ]),
298
306
  showIndicators ? renderIndicators(list) : createCommentVNode(),
299
307
  h('div', {
300
308
  class: 'vxe-carousel--btn-wrapper'
@@ -325,7 +333,6 @@ export default defineComponent({
325
333
  })
326
334
  ]);
327
335
  };
328
- $xeCarousel.renderVN = renderVN;
329
336
  const optsFlag = ref(0);
330
337
  watch(() => props.options ? props.options.length : -1, () => {
331
338
  optsFlag.value++;
@@ -358,6 +365,7 @@ export default defineComponent({
358
365
  stopAutoPlay();
359
366
  });
360
367
  provide('$xeCarousel', $xeCarousel);
368
+ $xeCarousel.renderVN = renderVN;
361
369
  return $xeCarousel;
362
370
  },
363
371
  render() {
@@ -1,4 +1,4 @@
1
- import { defineComponent, h, computed, inject } from 'vue';
1
+ import { defineComponent, h, computed, inject, reactive } from 'vue';
2
2
  import XEUtils from 'xe-utils';
3
3
  import { getFuncText } from '../../ui/src/utils';
4
4
  import { getConfig, createEvent, useSize, getIcon } from '../../ui';
@@ -6,17 +6,29 @@ export default defineComponent({
6
6
  name: 'VxeCheckbox',
7
7
  props: {
8
8
  modelValue: [String, Number, Boolean],
9
- label: { type: [String, Number], default: null },
9
+ label: {
10
+ type: [String, Number],
11
+ default: null
12
+ },
10
13
  indeterminate: Boolean,
11
14
  title: [String, Number],
12
- checkedValue: { type: [String, Number, Boolean], default: true },
13
- uncheckedValue: { type: [String, Number, Boolean], default: false },
15
+ checkedValue: {
16
+ type: [String, Number, Boolean],
17
+ default: true
18
+ },
19
+ uncheckedValue: {
20
+ type: [String, Number, Boolean],
21
+ default: false
22
+ },
14
23
  content: [String, Number],
15
24
  disabled: {
16
25
  type: Boolean,
17
26
  default: null
18
27
  },
19
- size: { type: String, default: () => getConfig().checkbox.size || getConfig().size }
28
+ size: {
29
+ type: String,
30
+ default: () => getConfig().checkbox.size || getConfig().size
31
+ }
20
32
  },
21
33
  emits: [
22
34
  'update:modelValue',
@@ -28,10 +40,12 @@ export default defineComponent({
28
40
  const formItemInfo = inject('xeFormItemInfo', null);
29
41
  const $xeCheckboxGroup = inject('$xeCheckboxGroup', null);
30
42
  const xID = XEUtils.uniqueId();
43
+ const reactData = reactive({});
31
44
  const $xeCheckbox = {
32
45
  xID,
33
46
  props,
34
- context
47
+ context,
48
+ reactData
35
49
  };
36
50
  let checkboxMethods = {};
37
51
  const { computeSize } = useSize(props);
@@ -43,12 +57,13 @@ export default defineComponent({
43
57
  });
44
58
  const computeIsDisabled = computed(() => {
45
59
  const { disabled } = props;
60
+ const isChecked = computeIsChecked.value;
46
61
  if (disabled === null) {
47
62
  if ($xeCheckboxGroup) {
48
- const { computeIsDisabled, computeIsMaximize } = $xeCheckboxGroup.getComputeMaps();
49
- const isMaximize = computeIsMaximize.value;
50
- const isChecked = computeIsChecked.value;
51
- return computeIsDisabled.value || (isMaximize && !isChecked);
63
+ const { computeIsDisabled: computeIsGroupDisabled, computeIsMaximize: computeIsGroupMaximize } = $xeCheckboxGroup.getComputeMaps();
64
+ const isGroupDisabled = computeIsGroupDisabled.value;
65
+ const isGroupMaximize = computeIsGroupMaximize.value;
66
+ return isGroupDisabled || (isGroupMaximize && !isChecked);
52
67
  }
53
68
  }
54
69
  return disabled;
@@ -73,17 +88,18 @@ export default defineComponent({
73
88
  }
74
89
  }
75
90
  };
91
+ const dispatchEvent = (type, params, evnt) => {
92
+ emit(type, createEvent(evnt, { $checkbox: $xeCheckbox }, params));
93
+ };
76
94
  checkboxMethods = {
77
- dispatchEvent(type, params, evnt) {
78
- emit(type, createEvent(evnt, { $checkbox: $xeCheckbox }, params));
79
- }
95
+ dispatchEvent
80
96
  };
81
97
  Object.assign($xeCheckbox, checkboxMethods);
82
98
  const renderVN = () => {
83
99
  const vSize = computeSize.value;
84
100
  const isDisabled = computeIsDisabled.value;
85
101
  const isChecked = computeIsChecked.value;
86
- const indeterminate = props.indeterminate;
102
+ const indeterminate = !isChecked && props.indeterminate;
87
103
  return h('label', {
88
104
  class: ['vxe-checkbox', {
89
105
  [`size--${vSize}`]: vSize,
@@ -1,4 +1,4 @@
1
- import { defineComponent, h, provide, computed, inject } from 'vue';
1
+ import { defineComponent, h, provide, computed, inject, reactive } from 'vue';
2
2
  import { getConfig, createEvent, useSize } from '../../ui';
3
3
  import XEUtils from 'xe-utils';
4
4
  import VxeCheckboxComponent from './checkbox';
@@ -12,8 +12,14 @@ export default defineComponent({
12
12
  type: Boolean,
13
13
  default: null
14
14
  },
15
- max: { type: [String, Number], default: null },
16
- size: { type: String, default: () => getConfig().checkboxGroup.size || getConfig().size }
15
+ max: {
16
+ type: [String, Number],
17
+ default: null
18
+ },
19
+ size: {
20
+ type: String,
21
+ default: () => getConfig().checkboxGroup.size || getConfig().size
22
+ }
17
23
  },
18
24
  emits: [
19
25
  'update:modelValue',
@@ -24,6 +30,7 @@ export default defineComponent({
24
30
  const $xeForm = inject('$xeForm', null);
25
31
  const formItemInfo = inject('xeFormItemInfo', null);
26
32
  const xID = XEUtils.uniqueId();
33
+ const reactData = reactive({});
27
34
  const computeIsDisabled = computed(() => {
28
35
  const { disabled } = props;
29
36
  if (disabled === null) {
@@ -42,7 +49,7 @@ export default defineComponent({
42
49
  return false;
43
50
  });
44
51
  const computePropsOpts = computed(() => {
45
- return props.optionProps || {};
52
+ return Object.assign({}, props.optionProps);
46
53
  });
47
54
  const computeLabelField = computed(() => {
48
55
  const propsOpts = computePropsOpts.value;
@@ -64,13 +71,15 @@ export default defineComponent({
64
71
  xID,
65
72
  props,
66
73
  context,
74
+ reactData,
67
75
  getComputeMaps: () => computeMaps
68
76
  };
69
77
  useSize(props);
78
+ const dispatchEvent = (type, params, evnt) => {
79
+ emit(type, createEvent(evnt, { $checkboxGroup: $xeCheckboxGroup }, params));
80
+ };
70
81
  const checkboxGroupMethods = {
71
- dispatchEvent(type, params, evnt) {
72
- emit(type, createEvent(evnt, { $checkboxGroup: $xeCheckboxGroup }, params));
73
- }
82
+ dispatchEvent
74
83
  };
75
84
  const checkboxGroupPrivateMethods = {
76
85
  handleChecked(params, evnt) {
@@ -114,8 +123,8 @@ export default defineComponent({
114
123
  })
115
124
  : []));
116
125
  };
117
- $xeCheckboxGroup.renderVN = renderVN;
118
126
  provide('$xeCheckboxGroup', $xeCheckboxGroup);
127
+ $xeCheckboxGroup.renderVN = renderVN;
119
128
  return renderVN;
120
129
  }
121
130
  });
@@ -1,5 +1,5 @@
1
1
  import { VxeUI } from '@vxe-ui/core';
2
- import VxeCollapsePaneComponent from './src/collapse-pane';
2
+ import VxeCollapsePaneComponent from '../collapse/src/collapse-pane';
3
3
  import { dynamicApp } from '../dynamics';
4
4
  export const VxeCollapsePane = Object.assign({}, VxeCollapsePaneComponent, {
5
5
  install(app) {
@@ -203,7 +203,6 @@ export default defineComponent({
203
203
  : createCommentVNode()
204
204
  ]);
205
205
  };
206
- $xeCountdown.renderVN = renderVN;
207
206
  watch(() => props.modelValue, () => {
208
207
  updateCount();
209
208
  handleStop();
@@ -216,6 +215,7 @@ export default defineComponent({
216
215
  handleStart();
217
216
  });
218
217
  updateCount();
218
+ $xeCountdown.renderVN = renderVN;
219
219
  return $xeCountdown;
220
220
  },
221
221
  render() {