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
@@ -7,34 +7,73 @@ import VxeInputComponent from '../../input/src/input';
7
7
  export default defineComponent({
8
8
  name: 'VxePager',
9
9
  props: {
10
- size: { type: String, default: () => getConfig().pager.size || getConfig().size },
10
+ size: {
11
+ type: String,
12
+ default: () => getConfig().pager.size || getConfig().size
13
+ },
11
14
  // 自定义布局
12
- layouts: { type: Array, default: () => getConfig().pager.layouts || ['PrevJump', 'PrevPage', 'Jump', 'PageCount', 'NextPage', 'NextJump', 'Sizes', 'Total'] },
15
+ layouts: {
16
+ type: Array,
17
+ default: () => getConfig().pager.layouts || ['PrevJump', 'PrevPage', 'Jump', 'PageCount', 'NextPage', 'NextJump', 'Sizes', 'Total']
18
+ },
13
19
  // 当前页
14
- currentPage: { type: Number, default: 1 },
20
+ currentPage: {
21
+ type: Number,
22
+ default: 1
23
+ },
15
24
  // 加载中
16
25
  loading: Boolean,
17
26
  // 每页大小
18
- pageSize: { type: Number, default: () => getConfig().pager.pageSize || 10 },
27
+ pageSize: {
28
+ type: Number,
29
+ default: () => getConfig().pager.pageSize || 10
30
+ },
19
31
  // 总条数
20
32
  total: { type: Number, default: 0 },
21
33
  // 显示页码按钮的数量
22
- pagerCount: { type: Number, default: () => getConfig().pager.pagerCount || 7 },
34
+ pagerCount: {
35
+ type: Number,
36
+ default: () => getConfig().pager.pagerCount || 7
37
+ },
23
38
  // 每页大小选项列表
24
- pageSizes: { type: Array, default: () => getConfig().pager.pageSizes || [10, 15, 20, 50, 100] },
39
+ pageSizes: {
40
+ type: Array,
41
+ default: () => getConfig().pager.pageSizes || [10, 15, 20, 50, 100]
42
+ },
25
43
  // 列对其方式
26
- align: { type: String, default: () => getConfig().pager.align },
44
+ align: {
45
+ type: String,
46
+ default: () => getConfig().pager.align
47
+ },
27
48
  // 带边框
28
- border: { type: Boolean, default: () => getConfig().pager.border },
49
+ border: {
50
+ type: Boolean,
51
+ default: () => getConfig().pager.border
52
+ },
29
53
  // 带背景颜色
30
- background: { type: Boolean, default: () => getConfig().pager.background },
54
+ background: {
55
+ type: Boolean,
56
+ default: () => getConfig().pager.background
57
+ },
31
58
  // 配套的样式
32
- perfect: { type: Boolean, default: () => getConfig().pager.perfect },
59
+ perfect: {
60
+ type: Boolean,
61
+ default: () => getConfig().pager.perfect
62
+ },
33
63
  // 当只有一页时隐藏
34
- autoHidden: { type: Boolean, default: () => getConfig().pager.autoHidden },
35
- transfer: { type: Boolean, default: () => getConfig().pager.transfer },
64
+ autoHidden: {
65
+ type: Boolean,
66
+ default: () => getConfig().pager.autoHidden
67
+ },
68
+ transfer: {
69
+ type: Boolean,
70
+ default: () => getConfig().pager.transfer
71
+ },
36
72
  className: [String, Function],
37
- pageSizePlacement: { type: String, default: () => getConfig().pager.pageSizePlacement },
73
+ pageSizePlacement: {
74
+ type: String,
75
+ default: () => getConfig().pager.pageSizePlacement
76
+ },
38
77
  // 自定义图标
39
78
  iconPrevPage: String,
40
79
  iconJumpPrev: String,
@@ -61,6 +100,33 @@ export default defineComponent({
61
100
  const refMaps = {
62
101
  refElem
63
102
  };
103
+ const computePageCount = computed(() => {
104
+ return getPageCount(props.total, props.pageSize);
105
+ });
106
+ const computeNumList = computed(() => {
107
+ const { pagerCount } = props;
108
+ const pageCount = computePageCount.value;
109
+ const len = pageCount > pagerCount ? pagerCount - 2 : pagerCount;
110
+ const rest = [];
111
+ for (let index = 0; index < len; index++) {
112
+ rest.push(index);
113
+ }
114
+ return rest;
115
+ });
116
+ const computeOffsetNumber = computed(() => {
117
+ return Math.floor((props.pagerCount - 2) / 2);
118
+ });
119
+ const computeSizeList = computed(() => {
120
+ return props.pageSizes.map((item) => {
121
+ if (XEUtils.isNumber(item)) {
122
+ return {
123
+ value: item,
124
+ label: `${getI18n('vxe.pager.pagesize', [item])}`
125
+ };
126
+ }
127
+ return Object.assign({ value: '', label: '' }, item);
128
+ });
129
+ });
64
130
  const $xePager = {
65
131
  xID,
66
132
  props,
@@ -72,9 +138,6 @@ export default defineComponent({
72
138
  const getPageCount = (total, size) => {
73
139
  return Math.max(Math.ceil(total / size), 1);
74
140
  };
75
- const computePageCount = computed(() => {
76
- return getPageCount(props.total, props.pageSize);
77
- });
78
141
  const jumpPageEvent = (evnt, currentPage) => {
79
142
  emit('update:currentPage', currentPage);
80
143
  if (evnt && currentPage !== props.currentPage) {
@@ -98,30 +161,6 @@ export default defineComponent({
98
161
  reactData.inpCurrPage = currPage;
99
162
  changeCurrentPage(current, $event);
100
163
  };
101
- const computeNumList = computed(() => {
102
- const { pagerCount } = props;
103
- const pageCount = computePageCount.value;
104
- const len = pageCount > pagerCount ? pagerCount - 2 : pagerCount;
105
- const rest = [];
106
- for (let index = 0; index < len; index++) {
107
- rest.push(index);
108
- }
109
- return rest;
110
- });
111
- const computeOffsetNumber = computed(() => {
112
- return Math.floor((props.pagerCount - 2) / 2);
113
- });
114
- const computeSizeList = computed(() => {
115
- return props.pageSizes.map((item) => {
116
- if (XEUtils.isNumber(item)) {
117
- return {
118
- value: item,
119
- label: `${getI18n('vxe.pager.pagesize', [item])}`
120
- };
121
- }
122
- return Object.assign({ value: '', label: '' }, item);
123
- });
124
- });
125
164
  const handleHomePage = (evnt) => {
126
165
  const { currentPage } = props;
127
166
  if (currentPage > 1) {
@@ -313,7 +352,7 @@ export default defineComponent({
313
352
  class: 'vxe-pager--num-btn',
314
353
  type: 'button',
315
354
  onClick: (evnt) => jumpPageEvent(evnt, 1)
316
- }, 1), renderPrevJump('span'));
355
+ }, '1'), renderPrevJump('span'));
317
356
  }
318
357
  numList.forEach((item, index) => {
319
358
  const number = startNumber + index;
@@ -325,7 +364,7 @@ export default defineComponent({
325
364
  }],
326
365
  type: 'button',
327
366
  onClick: (evnt) => jumpPageEvent(evnt, number)
328
- }, number));
367
+ }, `${number}`));
329
368
  }
330
369
  });
331
370
  if (showJump && isGt) {
@@ -410,10 +449,11 @@ export default defineComponent({
410
449
  class: 'vxe-pager--total'
411
450
  }, getI18n('vxe.pager.total', [props.total]));
412
451
  };
452
+ const dispatchEvent = (type, params, evnt) => {
453
+ emit(type, createEvent(evnt, { $pager: $xePager }, params));
454
+ };
413
455
  pagerMethods = {
414
- dispatchEvent(type, params, evnt) {
415
- emit(type, createEvent(evnt, { $pager: $xePager }, params));
416
- },
456
+ dispatchEvent,
417
457
  homePage() {
418
458
  handleHomePage();
419
459
  return nextTick();
@@ -99,7 +99,7 @@ export default defineComponent({
99
99
  const value = inputElem.value;
100
100
  emitInputEvent(value, evnt);
101
101
  };
102
- const emitModel = (value, evnt) => {
102
+ const handleChange = (value, evnt) => {
103
103
  reactData.inputValue = value;
104
104
  emit('update:modelValue', value);
105
105
  passwordInputMethods.dispatchEvent('input', { value }, evnt);
@@ -140,7 +140,7 @@ export default defineComponent({
140
140
  };
141
141
  const clearValueEvent = (evnt, value) => {
142
142
  focus();
143
- emitModel('', evnt);
143
+ handleChange('', evnt);
144
144
  passwordInputMethods.dispatchEvent('clear', { value }, evnt);
145
145
  };
146
146
  const clickSuffixEvent = (evnt) => {
@@ -1,12 +1,13 @@
1
1
  import { defineComponent, ref, h, reactive, inject, onMounted, onUnmounted, createCommentVNode } from 'vue';
2
2
  import XEUtils from 'xe-utils';
3
+ import { createEvent } from '../../ui';
3
4
  import { assemblePageBreak, destroyPageBreak } from './util';
4
5
  export default defineComponent({
5
6
  name: 'VxePrintPageBreak',
6
7
  props: {},
7
8
  emits: [],
8
9
  setup(props, context) {
9
- const { slots } = context;
10
+ const { slots, emit } = context;
10
11
  const xID = XEUtils.uniqueId();
11
12
  const $xePrint = inject('$xePrint', null);
12
13
  const refElem = ref();
@@ -27,6 +28,14 @@ export default defineComponent({
27
28
  getRefMaps: () => refMaps,
28
29
  getComputeMaps: () => computeMaps
29
30
  };
31
+ const dispatchEvent = (type, params, evnt) => {
32
+ emit(type, createEvent(evnt, { $print: $xePrint }, params));
33
+ };
34
+ const printPageBreakMethods = {
35
+ dispatchEvent
36
+ };
37
+ const printPageBreakPrivateMethods = {};
38
+ Object.assign($xePrintPageBreak, printPageBreakMethods, printPageBreakPrivateMethods);
30
39
  if (!$xePrint) {
31
40
  $xePrintPageBreak.renderVN = () => {
32
41
  return createCommentVNode();
@@ -38,7 +47,6 @@ export default defineComponent({
38
47
  ref: refElem
39
48
  });
40
49
  };
41
- $xePrintPageBreak.renderVN = renderVN;
42
50
  onMounted(() => {
43
51
  const elem = refElem.value;
44
52
  if ($xePrint && elem) {
@@ -50,6 +58,7 @@ export default defineComponent({
50
58
  destroyPageBreak($xePrint, pageBreakConfig);
51
59
  }
52
60
  });
61
+ $xePrintPageBreak.renderVN = renderVN;
53
62
  return $xePrintPageBreak;
54
63
  },
55
64
  render() {
@@ -61,10 +61,11 @@ export default defineComponent({
61
61
  getRefMaps: () => refMaps,
62
62
  getComputeMaps: () => computeMaps
63
63
  };
64
+ const dispatchEvent = (type, params, evnt) => {
65
+ emit(type, createEvent(evnt, { $print: $xePrint }, params));
66
+ };
64
67
  const printMethods = {
65
- dispatchEvent(type, params, evnt) {
66
- emit(type, createEvent(evnt, { $print: $xePrint }, params));
67
- },
68
+ dispatchEvent,
68
69
  print() {
69
70
  const elem = refElem.value;
70
71
  return printHtml(Object.assign({}, props, {
@@ -73,7 +74,8 @@ export default defineComponent({
73
74
  }));
74
75
  }
75
76
  };
76
- Object.assign($xePrint, printMethods);
77
+ const printPrivateMethods = {};
78
+ Object.assign($xePrint, printMethods, printPrivateMethods);
77
79
  const renderPageConfigLayouts = () => {
78
80
  const { title, showPageNumber, showAllPageTitle, align, headerAlign, footerAlign } = props;
79
81
  const pageBreaks = props.pageBreaks || [];
@@ -39,6 +39,7 @@ export default defineComponent({
39
39
  setup(props, context) {
40
40
  const { slots, emit } = context;
41
41
  const $xeModal = inject('$xeModal', null);
42
+ const $xeDrawer = inject('$xeDrawer', null);
42
43
  const $xeTable = inject('$xeTable', null);
43
44
  const $xeForm = inject('$xeForm', null);
44
45
  const xID = XEUtils.uniqueId();
@@ -46,15 +47,18 @@ export default defineComponent({
46
47
  const reactData = reactive({
47
48
  initialized: false,
48
49
  panelIndex: 0,
49
- panelStyle: null,
50
+ panelStyle: {},
50
51
  panelPlacement: null,
51
52
  visiblePanel: false,
52
53
  visibleAnimate: false,
53
54
  isActivated: false
54
55
  });
56
+ const internalData = {
57
+ hpTimeout: undefined
58
+ };
55
59
  const refElem = ref();
56
- const refPulldowContent = ref();
57
- const refPulldowPnanel = ref();
60
+ const refPulldownContent = ref();
61
+ const refPulldownPanel = ref();
58
62
  const computeBtnTransfer = computed(() => {
59
63
  const { transfer } = props;
60
64
  if (transfer === null) {
@@ -62,7 +66,7 @@ export default defineComponent({
62
66
  if (XEUtils.isBoolean(globalTransfer)) {
63
67
  return globalTransfer;
64
68
  }
65
- if ($xeTable || $xeModal || $xeForm) {
69
+ if ($xeTable || $xeModal || $xeDrawer || $xeForm) {
66
70
  return true;
67
71
  }
68
72
  }
@@ -76,6 +80,7 @@ export default defineComponent({
76
80
  props,
77
81
  context,
78
82
  reactData,
83
+ internalData,
79
84
  getRefMaps: () => refMaps
80
85
  };
81
86
  let pulldownMethods = {};
@@ -96,8 +101,8 @@ export default defineComponent({
96
101
  const { panelIndex, visiblePanel } = reactData;
97
102
  const btnTransfer = computeBtnTransfer.value;
98
103
  if (visiblePanel) {
99
- const targetElem = refPulldowContent.value;
100
- const panelElem = refPulldowPnanel.value;
104
+ const targetElem = refPulldownContent.value;
105
+ const panelElem = refPulldownPanel.value;
101
106
  if (panelElem && targetElem) {
102
107
  const targetHeight = targetElem.offsetHeight;
103
108
  const targetWidth = targetElem.offsetWidth;
@@ -165,7 +170,6 @@ export default defineComponent({
165
170
  return nextTick();
166
171
  });
167
172
  };
168
- let hidePanelTimeout;
169
173
  /**
170
174
  * 显示下拉面板
171
175
  */
@@ -175,7 +179,9 @@ export default defineComponent({
175
179
  }
176
180
  return new Promise(resolve => {
177
181
  if (!props.disabled) {
178
- clearTimeout(hidePanelTimeout);
182
+ if (internalData.hpTimeout) {
183
+ clearTimeout(internalData.hpTimeout);
184
+ }
179
185
  reactData.isActivated = true;
180
186
  reactData.visibleAnimate = true;
181
187
  setTimeout(() => {
@@ -203,7 +209,7 @@ export default defineComponent({
203
209
  emit('update:modelValue', false);
204
210
  return new Promise(resolve => {
205
211
  if (reactData.visibleAnimate) {
206
- hidePanelTimeout = window.setTimeout(() => {
212
+ internalData.hpTimeout = window.setTimeout(() => {
207
213
  reactData.visibleAnimate = false;
208
214
  nextTick(() => {
209
215
  resolve();
@@ -247,7 +253,7 @@ export default defineComponent({
247
253
  const handleGlobalMousewheelEvent = (evnt) => {
248
254
  const { disabled } = props;
249
255
  const { visiblePanel } = reactData;
250
- const panelElem = refPulldowPnanel.value;
256
+ const panelElem = refPulldownPanel.value;
251
257
  if (!disabled) {
252
258
  if (visiblePanel) {
253
259
  if (getEventTargetNode(evnt, panelElem).flag) {
@@ -264,7 +270,7 @@ export default defineComponent({
264
270
  const { disabled } = props;
265
271
  const { visiblePanel } = reactData;
266
272
  const el = refElem.value;
267
- const panelElem = refPulldowPnanel.value;
273
+ const panelElem = refPulldownPanel.value;
268
274
  if (!disabled) {
269
275
  reactData.isActivated = getEventTargetNode(evnt, el).flag || getEventTargetNode(evnt, panelElem).flag;
270
276
  if (visiblePanel && !reactData.isActivated) {
@@ -343,7 +349,7 @@ export default defineComponent({
343
349
  }]
344
350
  }, [
345
351
  h('div', {
346
- ref: refPulldowContent,
352
+ ref: refPulldownContent,
347
353
  class: 'vxe-pulldown--content',
348
354
  onClick: clickTargetEvent
349
355
  }, defaultSlot ? defaultSlot({ $pulldown: $xePulldown }) : []),
@@ -352,7 +358,7 @@ export default defineComponent({
352
358
  disabled: btnTransfer ? !initialized : true
353
359
  }, [
354
360
  h('div', {
355
- ref: refPulldowPnanel,
361
+ ref: refPulldownPanel,
356
362
  class: ['vxe-table--ignore-clear vxe-pulldown--panel', popupClassName ? (XEUtils.isFunction(popupClassName) ? popupClassName({ $pulldown: $xePulldown }) : popupClassName) : '', {
357
363
  [`size--${vSize}`]: vSize,
358
364
  'is--shadow': showPopupShadow,
@@ -102,7 +102,7 @@ export default defineComponent({
102
102
  const vSize = computeSize.value;
103
103
  const isDisabled = computeIsDisabled.value;
104
104
  const name = computeName.value;
105
- const checked = computeChecked.value;
105
+ const isChecked = computeChecked.value;
106
106
  return h('label', {
107
107
  class: ['vxe-radio', 'vxe-radio-button', {
108
108
  [`size--${vSize}`]: vSize,
@@ -114,7 +114,7 @@ export default defineComponent({
114
114
  class: 'vxe-radio--input',
115
115
  type: 'radio',
116
116
  name,
117
- checked,
117
+ checked: isChecked,
118
118
  disabled: isDisabled,
119
119
  onChange: changeEvent,
120
120
  onClick: clickEvent
@@ -78,11 +78,12 @@ export default defineComponent({
78
78
  };
79
79
  const radioGroupPrivateMethods = {
80
80
  handleChecked(params, evnt) {
81
- emit('update:modelValue', params.label);
81
+ const value = params.label;
82
+ emit('update:modelValue', value);
82
83
  dispatchEvent('change', params, evnt);
83
84
  // 自动更新校验状态
84
85
  if ($xeForm && formItemInfo) {
85
- $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, params.label);
86
+ $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
86
87
  }
87
88
  }
88
89
  };
@@ -108,8 +109,11 @@ export default defineComponent({
108
109
  })
109
110
  : []));
110
111
  };
111
- $xeRadioGroup.renderVN = renderVN;
112
112
  provide('$xeRadioGroup', $xeRadioGroup);
113
- return renderVN;
113
+ $xeRadioGroup.renderVN = renderVN;
114
+ return $xeRadioGroup;
115
+ },
116
+ render() {
117
+ return this.renderVN();
114
118
  }
115
119
  });
package/es/row/src/row.js CHANGED
@@ -84,8 +84,8 @@ export default defineComponent({
84
84
  onClick: clickEvent
85
85
  }, defaultSlot ? defaultSlot({}) : []);
86
86
  };
87
- $xeRow.renderVN = renderVN;
88
87
  provide('$xeRow', $xeRow);
88
+ $xeRow.renderVN = renderVN;
89
89
  return $xeRow;
90
90
  },
91
91
  render() {
@@ -3,29 +3,38 @@ import { createOption, watchOption, destroyOption, assembleOption } from './util
3
3
  export default defineComponent({
4
4
  name: 'VxeOptgroup',
5
5
  props: {
6
- label: { type: [String, Number, Boolean], default: '' },
7
- visible: { type: Boolean, default: null },
6
+ label: {
7
+ type: [String, Number, Boolean],
8
+ default: ''
9
+ },
10
+ visible: {
11
+ type: Boolean,
12
+ default: null
13
+ },
8
14
  className: [String, Function],
9
15
  disabled: Boolean
10
16
  },
17
+ emits: [],
11
18
  setup(props, { slots }) {
12
19
  const elem = ref();
13
20
  const $xeSelect = inject('$xeSelect', {});
14
- const option = createOption($xeSelect, props);
15
- const xeOption = { option };
16
- option.options = [];
17
- provide('xeoptgroup', xeOption);
18
- watchOption(props, option);
21
+ const optionConfig = createOption($xeSelect, props);
22
+ const $xeOptgroup = { optionConfig };
23
+ optionConfig.options = [];
24
+ provide('$xeOptgroup', $xeOptgroup);
25
+ watchOption(props, optionConfig);
19
26
  onMounted(() => {
20
- assembleOption($xeSelect, elem.value, option);
27
+ const el = elem.value;
28
+ assembleOption($xeSelect, el, optionConfig);
21
29
  });
22
30
  onUnmounted(() => {
23
- destroyOption($xeSelect, option);
31
+ destroyOption($xeSelect, optionConfig);
24
32
  });
25
33
  return () => {
34
+ const defaultSlot = slots.default;
26
35
  return h('div', {
27
36
  ref: elem
28
- }, slots.default ? slots.default() : []);
37
+ }, defaultSlot ? defaultSlot({}) : []);
29
38
  };
30
39
  }
31
40
  });
@@ -3,24 +3,32 @@ import { createOption, watchOption, destroyOption, assembleOption } from './util
3
3
  export default defineComponent({
4
4
  name: 'VxeOption',
5
5
  props: {
6
- value: null,
7
- label: { type: [String, Number, Boolean], default: '' },
8
- visible: { type: Boolean, default: null },
6
+ value: [String, Number, Boolean],
7
+ label: {
8
+ type: [String, Number, Boolean],
9
+ default: ''
10
+ },
11
+ visible: {
12
+ type: Boolean,
13
+ default: null
14
+ },
9
15
  className: [String, Function],
10
16
  disabled: Boolean
11
17
  },
18
+ emits: [],
12
19
  setup(props, { slots }) {
13
20
  const elem = ref();
14
21
  const $xeSelect = inject('$xeSelect', {});
15
- const optGroup = inject('xeoptgroup', null);
16
- const option = createOption($xeSelect, props);
17
- option.slots = slots;
18
- watchOption(props, option);
22
+ const $xeOptgroup = inject('$xeOptgroup', null);
23
+ const optionConfig = createOption($xeSelect, props);
24
+ optionConfig.slots = slots;
25
+ watchOption(props, optionConfig);
19
26
  onMounted(() => {
20
- assembleOption($xeSelect, elem.value, option, optGroup);
27
+ const el = elem.value;
28
+ assembleOption($xeSelect, el, optionConfig, $xeOptgroup);
21
29
  });
22
30
  onUnmounted(() => {
23
- destroyOption($xeSelect, option);
31
+ destroyOption($xeSelect, optionConfig);
24
32
  });
25
33
  return () => {
26
34
  return h('div', {