yc-pro-components 0.0.42 → 0.0.44

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 (207) hide show
  1. package/es/component.mjs +2 -0
  2. package/es/components/check-card/index.d.ts +61 -61
  3. package/es/components/check-card/src/index.vue.d.ts +4 -4
  4. package/es/components/check-card-group/index.d.ts +43 -43
  5. package/es/components/check-card-group/src/index.vue.d.ts +3 -3
  6. package/es/components/date-picker/index.d.ts +20 -20
  7. package/es/components/date-picker/src/index.vue.d.ts +12 -12
  8. package/es/components/dialog/index.d.ts +26 -26
  9. package/es/components/dialog/src/index.vue.d.ts +2 -2
  10. package/es/components/dialog-form/index.d.ts +31 -31
  11. package/es/components/dialog-form/src/index.vue.d.ts +9 -9
  12. package/es/components/display-item/index.d.ts +41 -41
  13. package/es/components/display-item/src/index.vue.d.ts +22 -22
  14. package/es/components/drawer-form/index.d.ts +65 -65
  15. package/es/components/drawer-form/src/index.vue.d.ts +15 -15
  16. package/es/components/form/index.d.ts +45 -45
  17. package/es/components/form/src/form-content.vue.d.ts +20 -20
  18. package/es/components/form/src/index.vue.d.ts +17 -17
  19. package/es/components/form-item/index.d.ts +48 -48
  20. package/es/components/form-item/src/index.vue.d.ts +14 -14
  21. package/es/components/header/index.d.ts +19 -19
  22. package/es/components/header/src/index.vue.d.ts +1 -1
  23. package/es/components/index.d.ts +1 -0
  24. package/es/components/index.mjs +4 -0
  25. package/es/components/input-tag/index.d.ts +15 -15
  26. package/es/components/input-tag/src/index.vue.d.ts +3 -3
  27. package/es/components/layout/index.d.ts +50 -50
  28. package/es/components/layout/src/index.vue.d.ts +11 -11
  29. package/es/components/page/index.d.ts +4166 -2538
  30. package/es/components/page/src/index.vue.d.ts +712 -137
  31. package/es/components/page/src/index.vue2.mjs +120 -31
  32. package/es/components/pagination/index.d.ts +42 -42
  33. package/es/components/pagination/src/index.vue.d.ts +3 -3
  34. package/es/components/radio/index.d.ts +35 -35
  35. package/es/components/radio/src/index.vue.d.ts +27 -27
  36. package/es/components/render/index.d.ts +3 -3
  37. package/es/components/render/src/index.vue.d.ts +1 -1
  38. package/es/components/search/index.d.ts +154 -154
  39. package/es/components/search/src/index.vue.d.ts +50 -50
  40. package/es/components/sidebar/index.d.ts +15 -15
  41. package/es/components/sidebar/src/index.vue.d.ts +5 -5
  42. package/es/components/steps-form/index.d.ts +23 -23
  43. package/es/components/steps-form/src/index.vue.d.ts +2 -2
  44. package/es/components/table/src/table-column.vue.d.ts +37 -37
  45. package/es/components/utils/index.d.ts +2 -2
  46. package/es/components/virtual-table/index.d.ts +646 -0
  47. package/es/components/virtual-table/index.mjs +8 -0
  48. package/es/components/virtual-table/src/index.vue.d.ts +139 -0
  49. package/es/components/virtual-table/src/index.vue.mjs +6 -0
  50. package/es/components/virtual-table/src/index.vue2.mjs +327 -0
  51. package/es/components/virtual-table/src/type.d.ts +295 -0
  52. package/es/components/virtual-table/src/type.mjs +1 -0
  53. package/es/components/virtual-table/src/use-column-adapter.d.ts +40 -0
  54. package/es/components/virtual-table/src/use-column-adapter.mjs +137 -0
  55. package/es/components/virtual-table/src/use-virtual-scroll.d.ts +35 -0
  56. package/es/components/virtual-table/src/use-virtual-scroll.mjs +71 -0
  57. package/es/components/virtual-table/src/use-virtual-selection.d.ts +40 -0
  58. package/es/components/virtual-table/src/use-virtual-selection.mjs +112 -0
  59. package/es/components/virtual-table/src/virtual-table-action-bar.d.ts +11 -0
  60. package/es/components/virtual-table/src/virtual-table-action-bar.mjs +121 -0
  61. package/es/components/virtual-table/src/virtual-table-cell-renderer.d.ts +16 -0
  62. package/es/components/virtual-table/src/virtual-table-cell-renderer.mjs +170 -0
  63. package/es/components/virtual-table/src/virtual-table-header-renderer.d.ts +10 -0
  64. package/es/components/virtual-table/src/virtual-table-header-renderer.mjs +51 -0
  65. package/es/components/virtual-table/style/css.d.ts +3 -0
  66. package/es/components/virtual-table/style/css.mjs +1 -0
  67. package/es/components/virtual-table/style/index.d.ts +12 -0
  68. package/es/components/virtual-table/style/index.mjs +1 -0
  69. package/es/components/yc-dialog/index.d.ts +24 -24
  70. package/es/components/yc-download-dialog/index.d.ts +19 -19
  71. package/es/components/yc-download-dialog/src/index.vue.d.ts +1 -1
  72. package/es/components/yc-form-container-header/index.d.ts +12 -12
  73. package/es/components/yc-more-actions/index.d.ts +46 -46
  74. package/es/components/yc-more-actions/src/index.vue.d.ts +3 -3
  75. package/es/components/yc-plus-page/src/index.vue.d.ts +2445 -1430
  76. package/es/components/yc-plus-page/src/index.vue.mjs +1 -1
  77. package/es/components/yc-plus-page/src/type.d.ts +8 -2
  78. package/es/components/yc-segmented/index.d.ts +2 -2
  79. package/es/components/yc-segmented/src/index.d.ts +2 -2
  80. package/es/components/yc-select-v2/src/index.vue.d.ts +3 -3
  81. package/es/components/yc-status-dialog/src/index.vue.d.ts +1 -1
  82. package/es/components/yc-tabs-with-filter/index.d.ts +16 -16
  83. package/es/components/yc-text/src/index.vue.d.ts +2 -2
  84. package/es/hooks/usePlusFormReset.d.ts +238 -238
  85. package/es/index.css +20 -1
  86. package/es/index.d.ts +1 -0
  87. package/es/index.mjs +4 -0
  88. package/es/yc-components/index.d.ts +1 -0
  89. package/index.css +111 -6
  90. package/index.js +1141 -149
  91. package/index.min.css +2 -1
  92. package/index.min.js +13 -10
  93. package/index.min.mjs +13 -10
  94. package/index.mjs +1139 -151
  95. package/lib/component.js +42 -40
  96. package/lib/components/check-card/index.d.ts +61 -61
  97. package/lib/components/check-card/src/index.vue.d.ts +4 -4
  98. package/lib/components/check-card-group/index.d.ts +43 -43
  99. package/lib/components/check-card-group/src/index.vue.d.ts +3 -3
  100. package/lib/components/date-picker/index.d.ts +20 -20
  101. package/lib/components/date-picker/src/index.vue.d.ts +12 -12
  102. package/lib/components/dialog/index.d.ts +26 -26
  103. package/lib/components/dialog/src/index.vue.d.ts +2 -2
  104. package/lib/components/dialog-form/index.d.ts +31 -31
  105. package/lib/components/dialog-form/src/index.vue.d.ts +9 -9
  106. package/lib/components/display-item/index.d.ts +41 -41
  107. package/lib/components/display-item/src/index.vue.d.ts +22 -22
  108. package/lib/components/drawer-form/index.d.ts +65 -65
  109. package/lib/components/drawer-form/src/index.vue.d.ts +15 -15
  110. package/lib/components/form/index.d.ts +45 -45
  111. package/lib/components/form/src/form-content.vue.d.ts +20 -20
  112. package/lib/components/form/src/index.vue.d.ts +17 -17
  113. package/lib/components/form-item/index.d.ts +48 -48
  114. package/lib/components/form-item/src/index.vue.d.ts +14 -14
  115. package/lib/components/header/index.d.ts +19 -19
  116. package/lib/components/header/src/index.vue.d.ts +1 -1
  117. package/lib/components/index.d.ts +1 -0
  118. package/lib/components/index.js +98 -90
  119. package/lib/components/input-tag/index.d.ts +15 -15
  120. package/lib/components/input-tag/src/index.vue.d.ts +3 -3
  121. package/lib/components/layout/index.d.ts +50 -50
  122. package/lib/components/layout/src/index.vue.d.ts +11 -11
  123. package/lib/components/page/index.d.ts +4166 -2538
  124. package/lib/components/page/src/index.vue.d.ts +712 -137
  125. package/lib/components/page/src/index.vue2.js +125 -36
  126. package/lib/components/pagination/index.d.ts +42 -42
  127. package/lib/components/pagination/src/index.vue.d.ts +3 -3
  128. package/lib/components/radio/index.d.ts +35 -35
  129. package/lib/components/radio/src/index.vue.d.ts +27 -27
  130. package/lib/components/render/index.d.ts +3 -3
  131. package/lib/components/render/src/index.vue.d.ts +1 -1
  132. package/lib/components/search/index.d.ts +154 -154
  133. package/lib/components/search/src/index.vue.d.ts +50 -50
  134. package/lib/components/sidebar/index.d.ts +15 -15
  135. package/lib/components/sidebar/src/index.vue.d.ts +5 -5
  136. package/lib/components/steps-form/index.d.ts +23 -23
  137. package/lib/components/steps-form/src/index.vue.d.ts +2 -2
  138. package/lib/components/table/src/table-column.vue.d.ts +37 -37
  139. package/lib/components/utils/index.d.ts +2 -2
  140. package/lib/components/virtual-table/index.d.ts +646 -0
  141. package/lib/components/virtual-table/index.js +13 -0
  142. package/lib/components/virtual-table/src/index.vue.d.ts +139 -0
  143. package/lib/components/virtual-table/src/index.vue.js +10 -0
  144. package/lib/components/virtual-table/src/index.vue2.js +331 -0
  145. package/lib/components/virtual-table/src/type.d.ts +295 -0
  146. package/lib/components/virtual-table/src/type.js +2 -0
  147. package/lib/components/virtual-table/src/use-column-adapter.d.ts +40 -0
  148. package/lib/components/virtual-table/src/use-column-adapter.js +139 -0
  149. package/lib/components/virtual-table/src/use-virtual-scroll.d.ts +35 -0
  150. package/lib/components/virtual-table/src/use-virtual-scroll.js +73 -0
  151. package/lib/components/virtual-table/src/use-virtual-selection.d.ts +40 -0
  152. package/lib/components/virtual-table/src/use-virtual-selection.js +114 -0
  153. package/lib/components/virtual-table/src/virtual-table-action-bar.d.ts +11 -0
  154. package/lib/components/virtual-table/src/virtual-table-action-bar.js +123 -0
  155. package/lib/components/virtual-table/src/virtual-table-cell-renderer.d.ts +16 -0
  156. package/lib/components/virtual-table/src/virtual-table-cell-renderer.js +172 -0
  157. package/lib/components/virtual-table/src/virtual-table-header-renderer.d.ts +10 -0
  158. package/lib/components/virtual-table/src/virtual-table-header-renderer.js +53 -0
  159. package/lib/components/virtual-table/style/css.d.ts +3 -0
  160. package/lib/components/virtual-table/style/css.js +2 -0
  161. package/lib/components/virtual-table/style/index.d.ts +12 -0
  162. package/lib/components/virtual-table/style/index.js +2 -0
  163. package/lib/components/yc-dialog/index.d.ts +24 -24
  164. package/lib/components/yc-download-dialog/index.d.ts +19 -19
  165. package/lib/components/yc-download-dialog/src/index.vue.d.ts +1 -1
  166. package/lib/components/yc-form-container-header/index.d.ts +12 -12
  167. package/lib/components/yc-more-actions/index.d.ts +46 -46
  168. package/lib/components/yc-more-actions/src/index.vue.d.ts +3 -3
  169. package/lib/components/yc-plus-page/src/index.vue.d.ts +2445 -1430
  170. package/lib/components/yc-plus-page/src/index.vue.js +1 -1
  171. package/lib/components/yc-plus-page/src/type.d.ts +8 -2
  172. package/lib/components/yc-segmented/index.d.ts +2 -2
  173. package/lib/components/yc-segmented/src/index.d.ts +2 -2
  174. package/lib/components/yc-select-v2/src/index.vue.d.ts +3 -3
  175. package/lib/components/yc-status-dialog/src/index.vue.d.ts +1 -1
  176. package/lib/components/yc-tabs-with-filter/index.d.ts +16 -16
  177. package/lib/components/yc-text/src/index.vue.d.ts +2 -2
  178. package/lib/hooks/usePlusFormReset.d.ts +238 -238
  179. package/lib/index.css +20 -1
  180. package/lib/index.d.ts +1 -0
  181. package/lib/index.js +143 -135
  182. package/lib/yc-components/index.d.ts +1 -0
  183. package/locale/en.js +1 -1
  184. package/locale/en.min.js +1 -1
  185. package/locale/en.min.mjs +1 -1
  186. package/locale/en.mjs +1 -1
  187. package/locale/ja.js +1 -1
  188. package/locale/ja.min.js +1 -1
  189. package/locale/ja.min.mjs +1 -1
  190. package/locale/ja.mjs +1 -1
  191. package/locale/ko.js +1 -1
  192. package/locale/ko.min.js +1 -1
  193. package/locale/ko.min.mjs +1 -1
  194. package/locale/ko.mjs +1 -1
  195. package/locale/zh-cn.js +1 -1
  196. package/locale/zh-cn.min.js +1 -1
  197. package/locale/zh-cn.min.mjs +1 -1
  198. package/locale/zh-cn.mjs +1 -1
  199. package/locale/zh-tw.js +1 -1
  200. package/locale/zh-tw.min.js +1 -1
  201. package/locale/zh-tw.min.mjs +1 -1
  202. package/locale/zh-tw.mjs +1 -1
  203. package/package.json +1 -1
  204. package/theme-chalk/index.css +1 -1
  205. package/theme-chalk/plus-virtual-table.css +1 -0
  206. package/theme-chalk/src/index.scss +3 -0
  207. package/theme-chalk/src/virtual-table.scss +128 -0
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! yc-pro-components v0.0.42 */
1
+ /*! yc-pro-components v0.0.44 */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('element-plus')) :
4
4
  typeof define === 'function' && define.amd ? define(['exports', 'vue', 'element-plus'], factory) :
@@ -4671,7 +4671,7 @@
4671
4671
  if (!date) return "";
4672
4672
  return elementPlus.dayjs(date || /* @__PURE__ */ new Date()).format(format);
4673
4673
  }
4674
- function formatMoney(val, format = "\uFFE5", decimal = 2) {
4674
+ function formatMoney$1(val, format = "\uFFE5", decimal = 2) {
4675
4675
  if (!val) return "";
4676
4676
  return `${format}${Number(val).toFixed(decimal)}`;
4677
4677
  }
@@ -4763,7 +4763,7 @@
4763
4763
  };
4764
4764
  const versionIsLessThan260 = compareVersion(version$2, "2.6.0") < 0;
4765
4765
  const versionIsLessThan299 = compareVersion(version$2, "2.9.9") < 0;
4766
- const getLabel = (label) => label ? vue.unref(label) : "";
4766
+ const getLabel$1 = (label) => label ? vue.unref(label) : "";
4767
4767
  const removeChildrenField = (item) => {
4768
4768
  const { children, ...rest } = item;
4769
4769
  const data = { ...rest, __children: children };
@@ -8589,8 +8589,8 @@
8589
8589
  vue.provide(DictStoreInjectionKey, dictStore);
8590
8590
  }
8591
8591
 
8592
- const _hoisted_1$s = { class: "plus-dialog-body" };
8593
- var _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
8592
+ const _hoisted_1$t = { class: "plus-dialog-body" };
8593
+ var _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
8594
8594
  ...{
8595
8595
  name: "PlusDialog",
8596
8596
  inheritAttrs: false
@@ -8673,7 +8673,7 @@
8673
8673
  style: mergedDialogStyle.value
8674
8674
  }, filteredAttrs.value), vue.createSlots({
8675
8675
  default: vue.withCtx(() => [
8676
- vue.createElementVNode("div", _hoisted_1$s, [
8676
+ vue.createElementVNode("div", _hoisted_1$t, [
8677
8677
  vue.renderSlot(_ctx.$slots, "default")
8678
8678
  ])
8679
8679
  ]),
@@ -8745,25 +8745,25 @@
8745
8745
  return target;
8746
8746
  };
8747
8747
 
8748
- var Dialog = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__file", "index.vue"]]);
8748
+ var Dialog = /* @__PURE__ */ _export_sfc(_sfc_main$M, [["__file", "index.vue"]]);
8749
8749
 
8750
8750
  const PlusDialog = Dialog;
8751
8751
 
8752
- const _hoisted_1$r = /* @__PURE__ */ vue.createElementVNode(
8752
+ const _hoisted_1$s = /* @__PURE__ */ vue.createElementVNode(
8753
8753
  "span",
8754
8754
  null,
8755
8755
  null,
8756
8756
  -1
8757
8757
  /* HOISTED */
8758
8758
  );
8759
- const _hoisted_2$h = /* @__PURE__ */ vue.createElementVNode(
8759
+ const _hoisted_2$i = /* @__PURE__ */ vue.createElementVNode(
8760
8760
  "span",
8761
8761
  null,
8762
8762
  null,
8763
8763
  -1
8764
8764
  /* HOISTED */
8765
8765
  );
8766
- var _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
8766
+ var _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
8767
8767
  ...{
8768
8768
  name: "PlusPagination"
8769
8769
  },
@@ -8805,7 +8805,7 @@
8805
8805
  },
8806
8806
  [
8807
8807
  _ctx.align === "right" || _ctx.align === "center" ? vue.renderSlot(_ctx.$slots, "pagination-left", { key: 0 }, () => [
8808
- _hoisted_1$r
8808
+ _hoisted_1$s
8809
8809
  ]) : vue.createCommentVNode("v-if", true),
8810
8810
  vue.createVNode(vue.unref(elementPlus.ElPagination), vue.mergeProps({
8811
8811
  layout: "total, sizes, prev, pager, next, jumper",
@@ -8819,7 +8819,7 @@
8819
8819
  onCurrentChange: handleCurrentChange
8820
8820
  }), null, 16, ["current-page", "page-size", "total", "page-sizes"]),
8821
8821
  _ctx.align === "left" || _ctx.align === "center" ? vue.renderSlot(_ctx.$slots, "pagination-right", { key: 1 }, () => [
8822
- _hoisted_2$h
8822
+ _hoisted_2$i
8823
8823
  ]) : vue.createCommentVNode("v-if", true)
8824
8824
  ],
8825
8825
  2
@@ -8829,11 +8829,11 @@
8829
8829
  }
8830
8830
  });
8831
8831
 
8832
- var Pagination = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__file", "index.vue"]]);
8832
+ var Pagination = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__file", "index.vue"]]);
8833
8833
 
8834
8834
  const PlusPagination = Pagination;
8835
8835
 
8836
- var _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
8836
+ var _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
8837
8837
  ...{
8838
8838
  name: "PlusRadio"
8839
8839
  },
@@ -9018,7 +9018,7 @@
9018
9018
  }
9019
9019
  });
9020
9020
 
9021
- var Radio = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__file", "index.vue"]]);
9021
+ var Radio = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__file", "index.vue"]]);
9022
9022
 
9023
9023
  const PlusRadio = Radio;
9024
9024
 
@@ -15080,13 +15080,13 @@
15080
15080
  ZoomOut: zoom_out_default
15081
15081
  });
15082
15082
 
15083
- const _hoisted_1$q = {
15083
+ const _hoisted_1$r = {
15084
15084
  key: 0,
15085
15085
  class: "plus-table-action-bar__dropdown__link"
15086
15086
  };
15087
- const _hoisted_2$g = { class: "plus-table-action-bar__dropdown__link" };
15088
- const _hoisted_3$c = { class: "plus-table-action-bar__more-text" };
15089
- var _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
15087
+ const _hoisted_2$h = { class: "plus-table-action-bar__dropdown__link" };
15088
+ const _hoisted_3$d = { class: "plus-table-action-bar__more-text" };
15089
+ var _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
15090
15090
  ...{
15091
15091
  name: "PlusTableActionBar"
15092
15092
  },
@@ -15402,7 +15402,7 @@
15402
15402
  )
15403
15403
  ]),
15404
15404
  default: vue.withCtx(() => [
15405
- _ctx.moreType === "icon" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$q, [
15405
+ _ctx.moreType === "icon" ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$r, [
15406
15406
  vue.renderSlot(_ctx.$slots, "action-bar-more-icon", {}, () => [
15407
15407
  vue.createVNode(vue.unref(elementPlus.ElIcon), null, {
15408
15408
  default: vue.withCtx(() => [
@@ -15417,10 +15417,10 @@
15417
15417
  { key: 1 },
15418
15418
  [
15419
15419
  vue.createCommentVNode(" \u9ED8\u8BA4 "),
15420
- vue.createElementVNode("span", _hoisted_2$g, [
15420
+ vue.createElementVNode("span", _hoisted_2$h, [
15421
15421
  vue.createElementVNode(
15422
15422
  "span",
15423
- _hoisted_3$c,
15423
+ _hoisted_3$d,
15424
15424
  vue.toDisplayString(vue.unref(t)("plus.table.more")),
15425
15425
  1
15426
15426
  /* TEXT */
@@ -15451,9 +15451,9 @@
15451
15451
  }
15452
15452
  });
15453
15453
 
15454
- var PlusTableActionBar = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__file", "table-action-bar.vue"]]);
15454
+ var PlusTableActionBar = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__file", "table-action-bar.vue"]]);
15455
15455
 
15456
- var _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
15456
+ var _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
15457
15457
  ...{
15458
15458
  name: "PlusRender"
15459
15459
  },
@@ -15521,12 +15521,12 @@
15521
15521
  }
15522
15522
  });
15523
15523
 
15524
- var Render = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__file", "index.vue"]]);
15524
+ var Render = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__file", "index.vue"]]);
15525
15525
 
15526
15526
  const PlusRender = Render;
15527
15527
 
15528
- const _hoisted_1$p = { class: "plus-date-picker__middle" };
15529
- var _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
15528
+ const _hoisted_1$q = { class: "plus-date-picker__middle" };
15529
+ var _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
15530
15530
  ...{
15531
15531
  name: "PlusDatePicker"
15532
15532
  },
@@ -15631,7 +15631,7 @@
15631
15631
  }), null, 16, ["modelValue", "type", "value-format", "placeholder", "disabled"]),
15632
15632
  vue.createElementVNode(
15633
15633
  "span",
15634
- _hoisted_1$p,
15634
+ _hoisted_1$q,
15635
15635
  vue.toDisplayString(_ctx.rangeSeparator),
15636
15636
  1
15637
15637
  /* TEXT */
@@ -15662,11 +15662,11 @@
15662
15662
  }
15663
15663
  });
15664
15664
 
15665
- var DatePicker = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__file", "index.vue"]]);
15665
+ var DatePicker = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__file", "index.vue"]]);
15666
15666
 
15667
15667
  const PlusDatePicker = DatePicker;
15668
15668
 
15669
- var _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
15669
+ var _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
15670
15670
  ...{
15671
15671
  name: "PlusInputTag"
15672
15672
  },
@@ -15803,7 +15803,7 @@
15803
15803
  }
15804
15804
  });
15805
15805
 
15806
- var InputTag = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__file", "index.vue"]]);
15806
+ var InputTag = /* @__PURE__ */ _export_sfc(_sfc_main$G, [["__file", "index.vue"]]);
15807
15807
 
15808
15808
  const PlusInputTag = InputTag;
15809
15809
 
@@ -15897,17 +15897,17 @@
15897
15897
  );
15898
15898
  const getFieldComponent = (valueType) => Reflect.get(FieldComponentMap, valueType) || {};
15899
15899
 
15900
- const _hoisted_1$o = { class: "el-form-item__error" };
15901
- const _hoisted_2$f = { class: "plus-form-item__label" };
15902
- const _hoisted_3$b = {
15900
+ const _hoisted_1$p = { class: "el-form-item__error" };
15901
+ const _hoisted_2$g = { class: "plus-form-item__label" };
15902
+ const _hoisted_3$c = {
15903
15903
  key: 0,
15904
15904
  class: "plus-form-item-field"
15905
15905
  };
15906
- const _hoisted_4$8 = {
15906
+ const _hoisted_4$9 = {
15907
15907
  key: 1,
15908
15908
  class: "plus-form-item-field"
15909
15909
  };
15910
- var _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
15910
+ var _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
15911
15911
  ...{
15912
15912
  name: "PlusFormItem"
15913
15913
  },
@@ -15952,7 +15952,7 @@
15952
15952
  const state = vue.ref();
15953
15953
  const customFieldPropsIsReady = vue.ref(false);
15954
15954
  const valueIsReady = vue.ref(false);
15955
- const labelValue = vue.computed(() => getLabel(props.label));
15955
+ const labelValue = vue.computed(() => getLabel$1(props.label));
15956
15956
  const formFieldRefs = vue.inject(TableFormFieldRefInjectionKey, {});
15957
15957
  const tableRowInfo = vue.inject(TableFormRowInfoInjectionKey, {});
15958
15958
  const params = vue.computed(() => ({
@@ -16121,7 +16121,7 @@
16121
16121
  "label-width": _ctx.hasLabel ? (_a = customFormItemProps.value) == null ? void 0 : _a.labelWidth : "0px"
16122
16122
  }), vue.createSlots({
16123
16123
  default: vue.withCtx(() => [
16124
- _ctx.renderField && vue.unref(isFunction)(_ctx.renderField) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$b, [
16124
+ _ctx.renderField && vue.unref(isFunction)(_ctx.renderField) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$c, [
16125
16125
  valueIsReady.value ? (vue.openBlock(), vue.createBlock(vue.unref(PlusRender), {
16126
16126
  key: 0,
16127
16127
  render: _ctx.renderField,
@@ -16131,7 +16131,7 @@
16131
16131
  "render-type": "form",
16132
16132
  "handle-change": handleChange
16133
16133
  }, null, 8, ["render", "params", "callback-value", "custom-field-props"])) : vue.createCommentVNode("v-if", true)
16134
- ])) : _ctx.$slots[vue.unref(getFieldSlotName)(_ctx.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$8, [
16134
+ ])) : _ctx.$slots[vue.unref(getFieldSlotName)(_ctx.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$9, [
16135
16135
  vue.renderSlot(_ctx.$slots, vue.unref(getFieldSlotName)(_ctx.prop), vue.mergeProps(params.value, { column: props }))
16136
16136
  ])) : _ctx.valueType === "select" && customFieldProps.value.multiple === true ? (vue.openBlock(), vue.createBlock(vue.unref(ElSelect), vue.mergeProps({
16137
16137
  key: 2,
@@ -16458,7 +16458,7 @@
16458
16458
  vue.unref(isFunction)(_ctx.renderErrorMessage) ? {
16459
16459
  name: "error",
16460
16460
  fn: vue.withCtx(({ error }) => [
16461
- vue.createElementVNode("div", _hoisted_1$o, [
16461
+ vue.createElementVNode("div", _hoisted_1$p, [
16462
16462
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.renderErrorMessage), vue.mergeProps(props, {
16463
16463
  value: state.value,
16464
16464
  error,
@@ -16471,7 +16471,7 @@
16471
16471
  _ctx.hasLabel ? {
16472
16472
  name: "label",
16473
16473
  fn: vue.withCtx(({ label: currentLabel }) => [
16474
- vue.createElementVNode("span", _hoisted_2$f, [
16474
+ vue.createElementVNode("span", _hoisted_2$g, [
16475
16475
  _ctx.renderLabel && vue.unref(isFunction)(_ctx.renderLabel) ? (vue.openBlock(), vue.createElementBlock(
16476
16476
  vue.Fragment,
16477
16477
  { key: 0 },
@@ -16529,11 +16529,11 @@
16529
16529
  }
16530
16530
  });
16531
16531
 
16532
- var FormItem = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__file", "index.vue"]]);
16532
+ var FormItem = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__file", "index.vue"]]);
16533
16533
 
16534
16534
  const PlusFormItem = FormItem;
16535
16535
 
16536
- var _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
16536
+ var _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
16537
16537
  ...{
16538
16538
  name: "PlusCollapseTransition"
16539
16539
  },
@@ -16584,17 +16584,17 @@
16584
16584
  }
16585
16585
  });
16586
16586
 
16587
- var PlusCollapseTransition = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__file", "collapse-transition.vue"]]);
16587
+ var PlusCollapseTransition = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__file", "collapse-transition.vue"]]);
16588
16588
 
16589
- const _hoisted_1$n = {
16589
+ const _hoisted_1$o = {
16590
16590
  key: 0,
16591
16591
  class: "plus-form-item-previous"
16592
16592
  };
16593
- const _hoisted_2$e = {
16593
+ const _hoisted_2$f = {
16594
16594
  key: 1,
16595
16595
  class: "plus-form-item-extra"
16596
16596
  };
16597
- var _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
16597
+ var _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
16598
16598
  ...{
16599
16599
  name: "PlusFormContent"
16600
16600
  },
@@ -16675,7 +16675,7 @@
16675
16675
  }), {
16676
16676
  default: vue.withCtx(() => [
16677
16677
  vue.createCommentVNode(" el-form-item\u4E0A\u4E00\u884C\u7684\u5185\u5BB9 "),
16678
- item.renderPrevious || _ctx.$slots[vue.unref(getPreviousSlotName)(item.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
16678
+ item.renderPrevious || _ctx.$slots[vue.unref(getPreviousSlotName)(item.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$o, [
16679
16679
  vue.unref(isFunction)(item.renderPrevious) ? (vue.openBlock(), vue.createBlock(
16680
16680
  vue.resolveDynamicComponent(item.renderPrevious),
16681
16681
  vue.normalizeProps(vue.mergeProps({ key: 0 }, item)),
@@ -16717,7 +16717,7 @@
16717
16717
  } : void 0
16718
16718
  ]), 1040, ["model-value", "clearable", "has-label", "onChange"]),
16719
16719
  vue.createCommentVNode(" el-form-item \u4E0B\u4E00\u884C\u989D\u5916\u7684\u5185\u5BB9 "),
16720
- item.renderExtra || _ctx.$slots[vue.unref(getExtraSlotName)(item.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$e, [
16720
+ item.renderExtra || _ctx.$slots[vue.unref(getExtraSlotName)(item.prop)] ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$f, [
16721
16721
  item.renderExtra && vue.unref(isFunction)(item.renderExtra) ? (vue.openBlock(), vue.createBlock(
16722
16722
  vue.resolveDynamicComponent(item.renderExtra),
16723
16723
  vue.normalizeProps(vue.mergeProps({ key: 0 }, item)),
@@ -16748,10 +16748,10 @@
16748
16748
  }
16749
16749
  });
16750
16750
 
16751
- var PlusFormContent = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__file", "form-content.vue"]]);
16751
+ var PlusFormContent = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__file", "form-content.vue"]]);
16752
16752
 
16753
- const _hoisted_1$m = { class: "plus-form__group__item__icon" };
16754
- var _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
16753
+ const _hoisted_1$n = { class: "plus-form__group__item__icon" };
16754
+ var _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
16755
16755
  ...{
16756
16756
  name: "PlusForm",
16757
16757
  inheritAttrs: false
@@ -16916,7 +16916,7 @@
16916
16916
  icon: groupItem.icon,
16917
16917
  index
16918
16918
  }, () => [
16919
- vue.createElementVNode("div", _hoisted_1$m, [
16919
+ vue.createElementVNode("div", _hoisted_1$n, [
16920
16920
  groupItem.icon ? (vue.openBlock(), vue.createBlock(
16921
16921
  vue.unref(elementPlus.ElIcon),
16922
16922
  { key: 0 },
@@ -17063,7 +17063,7 @@
17063
17063
  }
17064
17064
  });
17065
17065
 
17066
- var Form = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__file", "index.vue"]]);
17066
+ var Form = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__file", "index.vue"]]);
17067
17067
 
17068
17068
  const PlusForm = Form;
17069
17069
 
@@ -17096,7 +17096,7 @@
17096
17096
  },
17097
17097
  money: {
17098
17098
  component: "span",
17099
- format: formatMoney
17099
+ format: formatMoney$1
17100
17100
  },
17101
17101
  code: {
17102
17102
  component: "span",
@@ -17106,9 +17106,9 @@
17106
17106
  const hasDisplayComponent = (valueType) => Object.keys(DisplayComponentMap).includes(valueType);
17107
17107
  const getDisplayComponent = (valueType) => Reflect.get(DisplayComponentMap, valueType) || {};
17108
17108
 
17109
- const _hoisted_1$l = ["innerHTML"];
17110
- const _hoisted_2$d = { class: "plus-display-item" };
17111
- const _hoisted_3$a = /* @__PURE__ */ vue.createElementVNode(
17109
+ const _hoisted_1$m = ["innerHTML"];
17110
+ const _hoisted_2$e = { class: "plus-display-item" };
17111
+ const _hoisted_3$b = /* @__PURE__ */ vue.createElementVNode(
17112
17112
  "svg",
17113
17113
  {
17114
17114
  fill: "none",
@@ -17127,7 +17127,7 @@
17127
17127
  -1
17128
17128
  /* HOISTED */
17129
17129
  );
17130
- var _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
17130
+ var _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
17131
17131
  ...{
17132
17132
  name: "PlusDisplayItem"
17133
17133
  },
@@ -17517,7 +17517,7 @@
17517
17517
  vue.createElementVNode("span", {
17518
17518
  class: "plus-display-item",
17519
17519
  innerHTML: _ctx.column.renderHTML(displayValue.value, renderParams.value)
17520
- }, null, 8, _hoisted_1$l)
17520
+ }, null, 8, _hoisted_1$m)
17521
17521
  ],
17522
17522
  2112
17523
17523
  /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
@@ -17623,7 +17623,7 @@
17623
17623
  { key: 5 },
17624
17624
  [
17625
17625
  vue.createCommentVNode(" \u590D\u5236 "),
17626
- vue.createElementVNode("span", _hoisted_2$d, [
17626
+ vue.createElementVNode("span", _hoisted_2$e, [
17627
17627
  vue.createTextVNode(
17628
17628
  vue.toDisplayString(formatterValue.value) + " ",
17629
17629
  1
@@ -17749,7 +17749,7 @@
17749
17749
  "pointer-events": "none"
17750
17750
  }, {
17751
17751
  default: vue.withCtx(() => [
17752
- _hoisted_3$a
17752
+ _hoisted_3$b
17753
17753
  ]),
17754
17754
  _: 1
17755
17755
  /* STABLE */
@@ -17763,13 +17763,13 @@
17763
17763
  }
17764
17764
  });
17765
17765
 
17766
- var DisplayItem = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__file", "index.vue"]]);
17766
+ var DisplayItem = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__file", "index.vue"]]);
17767
17767
 
17768
17768
  const PlusDisplayItem = DisplayItem;
17769
17769
 
17770
- const _hoisted_1$k = { class: "plus-table-column__header-text" };
17771
- const _hoisted_2$c = { class: "plus-table-column__header-text" };
17772
- var _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
17770
+ const _hoisted_1$l = { class: "plus-table-column__header-text" };
17771
+ const _hoisted_2$d = { class: "plus-table-column__header-text" };
17772
+ var _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
17773
17773
  ...{
17774
17774
  name: "PlusTableColumn"
17775
17775
  },
@@ -17878,7 +17878,7 @@
17878
17878
  key: 0,
17879
17879
  render: item.renderHeader,
17880
17880
  params: { ...scoped, ...item, cellIndex: index },
17881
- "callback-value": vue.unref(getLabel)(item.label)
17881
+ "callback-value": vue.unref(getLabel$1)(item.label)
17882
17882
  }, null, 8, ["render", "params", "callback-value"])) : (vue.openBlock(), vue.createElementBlock(
17883
17883
  vue.Fragment,
17884
17884
  { key: 1 },
@@ -17886,7 +17886,7 @@
17886
17886
  vue.createCommentVNode("\u8868\u683C\u5355\u5143\u683CHeader\u7684\u63D2\u69FD "),
17887
17887
  vue.renderSlot(_ctx.$slots, vue.unref(getTableHeaderSlotName)(item.prop), vue.mergeProps({
17888
17888
  prop: item.prop,
17889
- label: vue.unref(getLabel)(item.label),
17889
+ label: vue.unref(getLabel$1)(item.label),
17890
17890
  fieldProps: item.fieldProps,
17891
17891
  valueType: item.valueType,
17892
17892
  cellIndex: index
@@ -17896,15 +17896,15 @@
17896
17896
  vue.createCommentVNode(" \u542F\u7528\u7701\u7565 + tooltip \u65F6 "),
17897
17897
  shouldShowHeaderTooltip(item) ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElTooltip), {
17898
17898
  key: 0,
17899
- content: vue.unref(getLabel)(item.label),
17899
+ content: vue.unref(getLabel$1)(item.label),
17900
17900
  placement: "top",
17901
17901
  "show-after": 300
17902
17902
  }, {
17903
17903
  default: vue.withCtx(() => [
17904
17904
  vue.createElementVNode(
17905
17905
  "span",
17906
- _hoisted_1$k,
17907
- vue.toDisplayString(vue.unref(getLabel)(item.label)),
17906
+ _hoisted_1$l,
17907
+ vue.toDisplayString(vue.unref(getLabel$1)(item.label)),
17908
17908
  1
17909
17909
  /* TEXT */
17910
17910
  )
@@ -17918,8 +17918,8 @@
17918
17918
  vue.createCommentVNode(" \u542F\u7528\u7701\u7565\u4F46\u7981\u7528 tooltip \u65F6 "),
17919
17919
  vue.createElementVNode(
17920
17920
  "span",
17921
- _hoisted_2$c,
17922
- vue.toDisplayString(vue.unref(getLabel)(item.label)),
17921
+ _hoisted_2$d,
17922
+ vue.toDisplayString(vue.unref(getLabel$1)(item.label)),
17923
17923
  1
17924
17924
  /* TEXT */
17925
17925
  )
@@ -17932,7 +17932,7 @@
17932
17932
  [
17933
17933
  vue.createCommentVNode(" \u9ED8\u8BA4\u4E0D\u7701\u7565 "),
17934
17934
  vue.createTextVNode(
17935
- vue.toDisplayString(vue.unref(getLabel)(item.label)),
17935
+ vue.toDisplayString(vue.unref(getLabel$1)(item.label)),
17936
17936
  1
17937
17937
  /* TEXT */
17938
17938
  )
@@ -18047,9 +18047,9 @@
18047
18047
  }
18048
18048
  });
18049
18049
 
18050
- var PlusTableColumn = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__file", "table-column.vue"]]);
18050
+ var PlusTableColumn = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__file", "table-column.vue"]]);
18051
18051
 
18052
- var _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
18052
+ var _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
18053
18053
  ...{
18054
18054
  name: "PlusTableTableColumnIndex"
18055
18055
  },
@@ -18123,10 +18123,10 @@
18123
18123
  }
18124
18124
  });
18125
18125
 
18126
- var PlusTableTableColumnIndex = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__file", "table-column-index.vue"]]);
18126
+ var PlusTableTableColumnIndex = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__file", "table-column-index.vue"]]);
18127
18127
 
18128
- const _hoisted_1$j = { class: "plus-table-column-drag-icon" };
18129
- var _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
18128
+ const _hoisted_1$k = { class: "plus-table-column-drag-icon" };
18129
+ var _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
18130
18130
  ...{
18131
18131
  name: "PlusTableColumnDragSort"
18132
18132
  },
@@ -18177,7 +18177,7 @@
18177
18177
  "class-name": "plus-table-column-drag-sort"
18178
18178
  }, _ctx.dragSortableTableColumnProps), {
18179
18179
  default: vue.withCtx(() => [
18180
- vue.createElementVNode("span", _hoisted_1$j, [
18180
+ vue.createElementVNode("span", _hoisted_1$k, [
18181
18181
  vue.renderSlot(_ctx.$slots, "drag-sort-icon", {}, () => [
18182
18182
  vue.createTextVNode("\u2637")
18183
18183
  ])
@@ -18190,13 +18190,13 @@
18190
18190
  }
18191
18191
  });
18192
18192
 
18193
- var PlusTableColumnDragSort = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__file", "table-column-drag-sort.vue"]]);
18193
+ var PlusTableColumnDragSort = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__file", "table-column-drag-sort.vue"]]);
18194
18194
 
18195
- const _hoisted_1$i = {
18195
+ const _hoisted_1$j = {
18196
18196
  key: 0,
18197
18197
  style: { "padding-top": "12px" }
18198
18198
  };
18199
- var _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
18199
+ var _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
18200
18200
  ...{
18201
18201
  name: "PlusPopover"
18202
18202
  },
@@ -18255,7 +18255,7 @@
18255
18255
  ]),
18256
18256
  default: vue.withCtx(() => [
18257
18257
  vue.renderSlot(_ctx.$slots, "default"),
18258
- _ctx.hasShowBottomButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
18258
+ _ctx.hasShowBottomButton ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
18259
18259
  vue.createVNode(vue.unref(elementPlus.ElButton), {
18260
18260
  size: "small",
18261
18261
  plain: "",
@@ -18296,14 +18296,14 @@
18296
18296
  }
18297
18297
  });
18298
18298
 
18299
- var Popover = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__file", "index.vue"]]);
18299
+ var Popover = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__file", "index.vue"]]);
18300
18300
 
18301
18301
  const PlusPopover = Popover;
18302
18302
 
18303
- const _hoisted_1$h = { class: "plus-table-title-bar" };
18304
- const _hoisted_2$b = { class: "plus-table-title-bar__title" };
18305
- const _hoisted_3$9 = { class: "plus-table-title-bar__toolbar" };
18306
- const _hoisted_4$7 = { class: "plus-table-title-bar__toolbar__density" };
18303
+ const _hoisted_1$i = { class: "plus-table-title-bar" };
18304
+ const _hoisted_2$c = { class: "plus-table-title-bar__title" };
18305
+ const _hoisted_3$a = { class: "plus-table-title-bar__toolbar" };
18306
+ const _hoisted_4$8 = { class: "plus-table-title-bar__toolbar__density" };
18307
18307
  const _hoisted_5$7 = /* @__PURE__ */ vue.createElementVNode(
18308
18308
  "svg",
18309
18309
  {
@@ -18326,7 +18326,7 @@
18326
18326
  };
18327
18327
  const _hoisted_8$2 = { key: 1 };
18328
18328
  const _hoisted_9$2 = { key: 1 };
18329
- var _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
18329
+ var _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
18330
18330
  ...{
18331
18331
  name: "PlusTableToolbar"
18332
18332
  },
@@ -18433,7 +18433,7 @@
18433
18433
  emit("refresh");
18434
18434
  };
18435
18435
  const getLabelValue = (label) => {
18436
- const tempLabel = getLabel(label);
18436
+ const tempLabel = getLabel$1(label);
18437
18437
  if (tempLabel && (tempLabel == null ? void 0 : tempLabel.length) <= overflowLabelLength.value) {
18438
18438
  return tempLabel;
18439
18439
  }
@@ -18477,8 +18477,8 @@
18477
18477
  });
18478
18478
  return (_ctx, _cache) => {
18479
18479
  var _a, _b, _c;
18480
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
18481
- vue.createElementVNode("div", _hoisted_2$b, [
18480
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
18481
+ vue.createElementVNode("div", _hoisted_2$c, [
18482
18482
  vue.renderSlot(_ctx.$slots, "title", {}, () => [
18483
18483
  vue.createTextVNode(
18484
18484
  vue.toDisplayString(titleBarConfig.value.title),
@@ -18487,7 +18487,7 @@
18487
18487
  )
18488
18488
  ])
18489
18489
  ]),
18490
- vue.createElementVNode("div", _hoisted_3$9, [
18490
+ vue.createElementVNode("div", _hoisted_3$a, [
18491
18491
  vue.renderSlot(_ctx.$slots, "toolbar"),
18492
18492
  ((_a = titleBarConfig.value) == null ? void 0 : _a.refresh) === true ? (vue.openBlock(), vue.createElementBlock("span", {
18493
18493
  key: 0,
@@ -18552,7 +18552,7 @@
18552
18552
  }, 8, ["content"])
18553
18553
  ]),
18554
18554
  default: vue.withCtx(() => [
18555
- vue.createElementVNode("div", _hoisted_4$7, [
18555
+ vue.createElementVNode("div", _hoisted_4$8, [
18556
18556
  (vue.openBlock(), vue.createElementBlock(
18557
18557
  vue.Fragment,
18558
18558
  null,
@@ -18691,9 +18691,9 @@
18691
18691
  class: "plus-table-title-bar__toolbar__checkbox__item"
18692
18692
  }, {
18693
18693
  default: vue.withCtx(() => [
18694
- vue.unref(getLabel)(item.label).length > overflowLabelLength.value ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElTooltip), {
18694
+ vue.unref(getLabel$1)(item.label).length > overflowLabelLength.value ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElTooltip), {
18695
18695
  key: 0,
18696
- content: vue.unref(getLabel)(item.label),
18696
+ content: vue.unref(getLabel$1)(item.label),
18697
18697
  placement: "right-start"
18698
18698
  }, {
18699
18699
  default: vue.withCtx(() => [
@@ -18726,9 +18726,9 @@
18726
18726
  class: "plus-table-title-bar__toolbar__checkbox__item"
18727
18727
  }, {
18728
18728
  default: vue.withCtx(() => [
18729
- vue.unref(getLabel)(item.label).length > overflowLabelLength.value ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElTooltip), {
18729
+ vue.unref(getLabel$1)(item.label).length > overflowLabelLength.value ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElTooltip), {
18730
18730
  key: 0,
18731
- content: vue.unref(getLabel)(item.label),
18731
+ content: vue.unref(getLabel$1)(item.label),
18732
18732
  placement: "right-start"
18733
18733
  }, {
18734
18734
  default: vue.withCtx(() => [
@@ -18779,10 +18779,10 @@
18779
18779
  }
18780
18780
  });
18781
18781
 
18782
- var PlusTableTitleBar = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__file", "table-title-bar.vue"]]);
18782
+ var PlusTableTitleBar = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__file", "table-title-bar.vue"]]);
18783
18783
 
18784
- const _hoisted_1$g = { class: "plus-table-expand-col" };
18785
- var _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
18784
+ const _hoisted_1$h = { class: "plus-table-expand-col" };
18785
+ var _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
18786
18786
  ...{
18787
18787
  name: "PlusTable",
18788
18788
  inheritAttrs: false
@@ -19135,7 +19135,7 @@
19135
19135
  }, _ctx.expandTableColumnProps),
19136
19136
  {
19137
19137
  default: vue.withCtx((scoped) => [
19138
- vue.createElementVNode("div", _hoisted_1$g, [
19138
+ vue.createElementVNode("div", _hoisted_1$h, [
19139
19139
  vue.renderSlot(_ctx.$slots, "expand", vue.mergeProps({
19140
19140
  index: scoped.$index
19141
19141
  }, scoped))
@@ -19238,11 +19238,11 @@
19238
19238
  }
19239
19239
  });
19240
19240
 
19241
- var _Table = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__file", "index.vue"]]);
19241
+ var _Table = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__file", "index.vue"]]);
19242
19242
 
19243
19243
  const PlusTable = _Table;
19244
19244
 
19245
- var _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
19245
+ var _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
19246
19246
  ...{
19247
19247
  name: "PlusDescriptions"
19248
19248
  },
@@ -19345,14 +19345,14 @@
19345
19345
  var _a, _b;
19346
19346
  return vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElDescriptionsItem), vue.mergeProps({
19347
19347
  key: item.prop,
19348
- label: vue.unref(getLabel)(item.label),
19348
+ label: vue.unref(getLabel$1)(item.label),
19349
19349
  "class-name": (((_a = item.descriptionsItemProps) == null ? void 0 : _a.className) || "") + " plus-description__name plus-description__content",
19350
19350
  "label-class-name": (((_b = item.descriptionsItemProps) == null ? void 0 : _b.labelClassName) || "") + " plus-description__label" + (getIsRequired(item, index) ? " is-required" : "")
19351
19351
  }, item.descriptionsItemProps || _ctx.descriptionsItemProps), {
19352
19352
  label: vue.withCtx(() => [
19353
19353
  item.renderDescriptionsLabel && vue.unref(isFunction)(item.renderDescriptionsLabel) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(item.renderDescriptionsLabel), {
19354
19354
  key: 0,
19355
- label: vue.unref(getLabel)(item.label),
19355
+ label: vue.unref(getLabel$1)(item.label),
19356
19356
  column: item,
19357
19357
  row: _ctx.data
19358
19358
  }, null, 8, ["label", "column", "row"])) : _ctx.$slots[vue.unref(getDescLabelSlotName)(item.prop)] ? (vue.openBlock(), vue.createElementBlock(
@@ -19363,7 +19363,7 @@
19363
19363
  vue.renderSlot(_ctx.$slots, vue.unref(getDescLabelSlotName)(item.prop), {
19364
19364
  column: item,
19365
19365
  row: _ctx.data,
19366
- label: vue.unref(getLabel)(item.label)
19366
+ label: vue.unref(getLabel$1)(item.label)
19367
19367
  })
19368
19368
  ],
19369
19369
  64
@@ -19374,7 +19374,7 @@
19374
19374
  [
19375
19375
  vue.createCommentVNode(" normal "),
19376
19376
  vue.createTextVNode(
19377
- vue.toDisplayString(vue.unref(getLabel)(item.label)),
19377
+ vue.toDisplayString(vue.unref(getLabel$1)(item.label)),
19378
19378
  1
19379
19379
  /* TEXT */
19380
19380
  )
@@ -19450,11 +19450,11 @@
19450
19450
  }
19451
19451
  });
19452
19452
 
19453
- var Descriptions = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__file", "index.vue"]]);
19453
+ var Descriptions = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__file", "index.vue"]]);
19454
19454
 
19455
19455
  const PlusDescriptions = Descriptions;
19456
19456
 
19457
- var _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
19457
+ var _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
19458
19458
  ...{
19459
19459
  name: "PlusSearch"
19460
19460
  },
@@ -19669,11 +19669,11 @@
19669
19669
  }
19670
19670
  });
19671
19671
 
19672
- var Search = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__file", "index.vue"]]);
19672
+ var Search = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__file", "index.vue"]]);
19673
19673
 
19674
19674
  const PlusSearch = Search;
19675
19675
 
19676
- var _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
19676
+ var _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
19677
19677
  ...{
19678
19678
  name: "PlusDialogForm"
19679
19679
  },
@@ -19835,12 +19835,12 @@
19835
19835
  }
19836
19836
  });
19837
19837
 
19838
- var DialogForm = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__file", "index.vue"]]);
19838
+ var DialogForm = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__file", "index.vue"]]);
19839
19839
 
19840
19840
  const PlusDialogForm = DialogForm;
19841
19841
 
19842
- const _hoisted_1$f = { class: "plus-drawer-form__footer" };
19843
- var _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
19842
+ const _hoisted_1$g = { class: "plus-drawer-form__footer" };
19843
+ var _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
19844
19844
  ...{
19845
19845
  name: "PlusDrawerForm"
19846
19846
  },
@@ -19995,7 +19995,7 @@
19995
19995
  _ctx.hasFooter ? {
19996
19996
  name: "footer",
19997
19997
  fn: vue.withCtx(() => [
19998
- vue.createElementVNode("div", _hoisted_1$f, [
19998
+ vue.createElementVNode("div", _hoisted_1$g, [
19999
19999
  vue.renderSlot(_ctx.$slots, "drawer-footer", vue.normalizeProps(vue.guardReactiveProps({ handleConfirm, handleCancel })), () => [
20000
20000
  vue.createVNode(vue.unref(elementPlus.ElButton), { onClick: handleCancel }, {
20001
20001
  default: vue.withCtx(() => [
@@ -20033,10 +20033,909 @@
20033
20033
  }
20034
20034
  });
20035
20035
 
20036
- var DrawerForm = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__file", "index.vue"]]);
20036
+ var DrawerForm = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__file", "index.vue"]]);
20037
20037
 
20038
20038
  const PlusDrawerForm = DrawerForm;
20039
20039
 
20040
+ function isEmpty(value) {
20041
+ return value === null || value === void 0 || value === "";
20042
+ }
20043
+ function findOptionByValue(options, value) {
20044
+ const arr = vue.unref(options);
20045
+ if (!Array.isArray(arr)) return void 0;
20046
+ return arr.find((opt) => opt.value === value);
20047
+ }
20048
+ function renderOptionStatus(option) {
20049
+ const { label, color, type: statusType } = option;
20050
+ const colorMap = {
20051
+ success: "#67c23a",
20052
+ warning: "#e6a23c",
20053
+ info: "#909399",
20054
+ primary: "#409eff",
20055
+ danger: "#f56c6c"
20056
+ };
20057
+ const dotColor = color || (statusType ? colorMap[statusType] : void 0);
20058
+ if (dotColor) {
20059
+ return /* @__PURE__ */ React.createElement("span", { class: "plus-table-column-status" }, /* @__PURE__ */ React.createElement(
20060
+ "span",
20061
+ {
20062
+ class: "plus-table-column-status__dot",
20063
+ style: { backgroundColor: dotColor }
20064
+ }
20065
+ ), /* @__PURE__ */ React.createElement("span", { class: "plus-table-column-status__text" }, label != null ? label : ""));
20066
+ }
20067
+ return /* @__PURE__ */ React.createElement("span", null, label != null ? label : "");
20068
+ }
20069
+ function renderByValueType(valueType, value, column, _row) {
20070
+ var _a;
20071
+ switch (valueType) {
20072
+ case "img": {
20073
+ const imgProps = {
20074
+ src: value,
20075
+ "preview-src-list": [value],
20076
+ fit: "cover",
20077
+ class: "plus-display-item__image",
20078
+ style: { width: "40px", height: "40px" }
20079
+ };
20080
+ return /* @__PURE__ */ React.createElement(elementPlus.ElImage, { ...imgProps });
20081
+ }
20082
+ case "link": {
20083
+ const linkProps = {
20084
+ href: value,
20085
+ type: "primary",
20086
+ class: "plus-display-item__link"
20087
+ };
20088
+ return /* @__PURE__ */ React.createElement(elementPlus.ElLink, { ...linkProps }, column.linkText || value);
20089
+ }
20090
+ case "tag": {
20091
+ const tagOption = findOptionByValue(column.options, value);
20092
+ if (tagOption) {
20093
+ const tagProps = { type: tagOption.type || "" };
20094
+ return /* @__PURE__ */ React.createElement(elementPlus.ElTag, { ...tagProps }, (_a = tagOption.label) != null ? _a : value);
20095
+ }
20096
+ return /* @__PURE__ */ React.createElement(elementPlus.ElTag, null, String(value != null ? value : ""));
20097
+ }
20098
+ case "money":
20099
+ return /* @__PURE__ */ React.createElement("span", null, formatMoney(value));
20100
+ case "progress": {
20101
+ const progressProps = { percentage: Number(value) || 0 };
20102
+ return /* @__PURE__ */ React.createElement(elementPlus.ElProgress, { ...progressProps });
20103
+ }
20104
+ case "avatar": {
20105
+ const avatarProps = { src: value };
20106
+ return /* @__PURE__ */ React.createElement(elementPlus.ElAvatar, { ...avatarProps });
20107
+ }
20108
+ case "code":
20109
+ return /* @__PURE__ */ React.createElement("span", { class: "plus-display-item__pre" }, String(value != null ? value : ""));
20110
+ default:
20111
+ return String(value != null ? value : "");
20112
+ }
20113
+ }
20114
+ function formatMoney(value) {
20115
+ if (isEmpty(value)) return "";
20116
+ const num = Number(value);
20117
+ if (isNaN(num)) return String(value);
20118
+ return num.toLocaleString("zh-CN", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
20119
+ }
20120
+ function createCellRenderer(plusColumn, globalEmptyText = "-") {
20121
+ var _a;
20122
+ const emptyText = (_a = plusColumn.emptyText) != null ? _a : globalEmptyText;
20123
+ return (params) => {
20124
+ const { rowData, rowIndex } = params;
20125
+ const value = rowData[plusColumn.prop];
20126
+ if (plusColumn.render && typeof plusColumn.render === "function") {
20127
+ return plusColumn.render(value, {
20128
+ row: rowData,
20129
+ column: plusColumn,
20130
+ index: rowIndex
20131
+ });
20132
+ }
20133
+ if (plusColumn.renderHTML && typeof plusColumn.renderHTML === "function") {
20134
+ const html = plusColumn.renderHTML(value, {
20135
+ row: rowData,
20136
+ column: plusColumn,
20137
+ index: rowIndex
20138
+ });
20139
+ return /* @__PURE__ */ React.createElement("span", { innerHTML: html });
20140
+ }
20141
+ if (plusColumn.formatter && typeof plusColumn.formatter === "function") {
20142
+ const formatted = plusColumn.formatter(value, {
20143
+ row: rowData,
20144
+ column: plusColumn,
20145
+ index: rowIndex
20146
+ });
20147
+ return /* @__PURE__ */ React.createElement("span", null, isEmpty(formatted) ? emptyText : formatted);
20148
+ }
20149
+ if (plusColumn.valueType) {
20150
+ if (isEmpty(value)) return /* @__PURE__ */ React.createElement("span", null, emptyText);
20151
+ return renderByValueType(
20152
+ plusColumn.valueType,
20153
+ value,
20154
+ plusColumn);
20155
+ }
20156
+ if (plusColumn.options) {
20157
+ const option = findOptionByValue(plusColumn.options, value);
20158
+ if (option) {
20159
+ return renderOptionStatus(option);
20160
+ }
20161
+ }
20162
+ if (isEmpty(value)) {
20163
+ return /* @__PURE__ */ React.createElement("span", { class: "plus-table-column-empty" }, emptyText);
20164
+ }
20165
+ return /* @__PURE__ */ React.createElement("span", null, String(value));
20166
+ };
20167
+ }
20168
+
20169
+ function resolveTooltip(tooltip) {
20170
+ if (!tooltip) return null;
20171
+ const resolved = vue.unref(tooltip);
20172
+ if (typeof resolved === "string") {
20173
+ return { content: resolved };
20174
+ }
20175
+ if (typeof resolved === "object" && resolved !== null) {
20176
+ return resolved;
20177
+ }
20178
+ return null;
20179
+ }
20180
+ function getLabel(label) {
20181
+ var _a;
20182
+ if (typeof label === "string") return label;
20183
+ return String((_a = vue.unref(label)) != null ? _a : "");
20184
+ }
20185
+ function createHeaderRenderer(plusColumn) {
20186
+ return (_params) => {
20187
+ const label = getLabel(plusColumn.label);
20188
+ if (plusColumn.renderHeader && typeof plusColumn.renderHeader === "function") {
20189
+ return plusColumn.renderHeader(label, plusColumn);
20190
+ }
20191
+ const tooltipConfig = resolveTooltip(plusColumn.tooltip);
20192
+ if (tooltipConfig) {
20193
+ const tooltipProps = { placement: "top", ...tooltipConfig };
20194
+ const iconProps = { class: "plus-table-column__header__icon", size: 16 };
20195
+ return /* @__PURE__ */ React.createElement("span", { class: "plus-table-column__header" }, /* @__PURE__ */ React.createElement("span", null, label), /* @__PURE__ */ React.createElement(elementPlus.ElTooltip, { ...tooltipProps }, /* @__PURE__ */ React.createElement(elementPlus.ElIcon, { ...iconProps }, /* @__PURE__ */ React.createElement(question_filled_default, null))));
20196
+ }
20197
+ return /* @__PURE__ */ React.createElement("span", null, label);
20198
+ };
20199
+ }
20200
+
20201
+ function resolveButtonText(button, row, index) {
20202
+ var _a, _b;
20203
+ const { text } = button;
20204
+ if (typeof text === "function") {
20205
+ return String((_a = vue.unref(text(row, index, button))) != null ? _a : "");
20206
+ }
20207
+ return String((_b = vue.unref(text)) != null ? _b : "");
20208
+ }
20209
+ function resolveButtonShow(button, row, index) {
20210
+ const { show } = button;
20211
+ if (show === void 0) return true;
20212
+ if (typeof show === "function") {
20213
+ return !!vue.unref(show(row, index, button));
20214
+ }
20215
+ return !!vue.unref(show);
20216
+ }
20217
+ function resolveButtonProps(button, row, index) {
20218
+ const { props } = button;
20219
+ if (!props) return {};
20220
+ if (typeof props === "function") {
20221
+ return props(row, index, button) || {};
20222
+ }
20223
+ return vue.unref(props) || {};
20224
+ }
20225
+ function createActionBarColumn(actionBar, onClickAction) {
20226
+ const label = typeof actionBar.label === "string" ? actionBar.label : vue.unref(actionBar.label) || "\u64CD\u4F5C\u680F";
20227
+ const width = typeof actionBar.width === "number" ? actionBar.width : parseInt(String(actionBar.width || "200"), 10) || 200;
20228
+ const showNumber = typeof actionBar.showNumber === "number" ? actionBar.showNumber : 3;
20229
+ const buttons = actionBar.buttons || [];
20230
+ return {
20231
+ key: "__action__",
20232
+ dataKey: "__action__",
20233
+ title: label,
20234
+ width,
20235
+ fixed: actionBar.fixed === "right" || actionBar.fixed === void 0 ? elementPlus.TableV2FixedDir.RIGHT : void 0,
20236
+ align: "center",
20237
+ cellRenderer: (params) => {
20238
+ const { rowData, rowIndex } = params;
20239
+ const visibleButtons = buttons.filter(
20240
+ (btn) => resolveButtonShow(btn, rowData, rowIndex)
20241
+ );
20242
+ if (visibleButtons.length === 0) return "";
20243
+ const currentShowNumber = typeof actionBar.showNumber === "function" ? actionBar.showNumber(rowData, rowIndex) : showNumber;
20244
+ const directButtons = visibleButtons.slice(0, currentShowNumber);
20245
+ const moreButtons = visibleButtons.slice(currentShowNumber);
20246
+ const handleClick = (button, e) => {
20247
+ var _a;
20248
+ const callbackParams = {
20249
+ row: rowData,
20250
+ index: rowIndex,
20251
+ rowIndex,
20252
+ buttonRow: button,
20253
+ text: resolveButtonText(button, rowData, rowIndex),
20254
+ e,
20255
+ column: {},
20256
+ cellIndex: 0,
20257
+ store: {},
20258
+ expanded: false,
20259
+ _self: {}
20260
+ };
20261
+ (_a = button.onClick) == null ? void 0 : _a.call(button, callbackParams);
20262
+ onClickAction == null ? void 0 : onClickAction(callbackParams);
20263
+ };
20264
+ const renderButton = (button, idx) => {
20265
+ var _a;
20266
+ const text = resolveButtonText(button, rowData, rowIndex);
20267
+ const btnProps = resolveButtonProps(button, rowData, rowIndex);
20268
+ return vue.h(elementPlus.ElButton, {
20269
+ key: (_a = button.code) != null ? _a : idx,
20270
+ link: true,
20271
+ type: "primary",
20272
+ size: "small",
20273
+ ...btnProps,
20274
+ onClick: (e) => handleClick(button, e)
20275
+ }, () => text);
20276
+ };
20277
+ const nodes = directButtons.map(renderButton);
20278
+ if (moreButtons.length > 0) {
20279
+ const dropdownNode = vue.h(
20280
+ elementPlus.ElDropdown,
20281
+ { trigger: "hover" },
20282
+ {
20283
+ default: () => vue.h(elementPlus.ElButton, { link: true, type: "primary", size: "small" }, () => "\u66F4\u591A"),
20284
+ dropdown: () => vue.h(
20285
+ elementPlus.ElDropdownMenu,
20286
+ null,
20287
+ () => moreButtons.map((btn, idx) => {
20288
+ var _a;
20289
+ const text = resolveButtonText(btn, rowData, rowIndex);
20290
+ return vue.h(
20291
+ elementPlus.ElDropdownItem,
20292
+ {
20293
+ key: (_a = btn.code) != null ? _a : `more-${idx}`,
20294
+ onClick: (e) => handleClick(btn, e)
20295
+ },
20296
+ () => text
20297
+ );
20298
+ })
20299
+ )
20300
+ }
20301
+ );
20302
+ nodes.push(dropdownNode);
20303
+ }
20304
+ return vue.h("div", {
20305
+ class: "plus-virtual-table-action-bar",
20306
+ style: { display: "flex", alignItems: "center", justifyContent: "center", gap: "4px" }
20307
+ }, nodes);
20308
+ }
20309
+ };
20310
+ }
20311
+
20312
+ function resolveFixed(column) {
20313
+ var _a;
20314
+ const fixed = (_a = column.tableColumnProps) == null ? void 0 : _a.fixed;
20315
+ if (!fixed) return void 0;
20316
+ if (fixed === true || fixed === "left") return elementPlus.TableV2FixedDir.LEFT;
20317
+ if (fixed === "right") return elementPlus.TableV2FixedDir.RIGHT;
20318
+ return void 0;
20319
+ }
20320
+ function resolveWidth(column, defaultWidth) {
20321
+ var _a;
20322
+ const w = (_a = column.width) != null ? _a : column.minWidth;
20323
+ if (typeof w === "number") return w;
20324
+ if (typeof w === "string") {
20325
+ const parsed = parseInt(w, 10);
20326
+ if (!isNaN(parsed)) return parsed;
20327
+ }
20328
+ return defaultWidth;
20329
+ }
20330
+ function isFlexColumn(column) {
20331
+ return column.width === void 0;
20332
+ }
20333
+ function distributeRemainingWidth(columns, flexIndices, containerWidth, scrollbarWidth = 0) {
20334
+ if (flexIndices.length === 0 || containerWidth <= 0) return;
20335
+ const totalFixedWidth = columns.reduce((sum, col) => sum + col.width, 0);
20336
+ const availableWidth = containerWidth - scrollbarWidth;
20337
+ const remaining = availableWidth - totalFixedWidth;
20338
+ if (remaining <= 0) return;
20339
+ const totalMinWidth = flexIndices.reduce(
20340
+ (sum, idx) => sum + columns[idx].width,
20341
+ 0
20342
+ );
20343
+ if (totalMinWidth <= 0) return;
20344
+ for (const idx of flexIndices) {
20345
+ const col = columns[idx];
20346
+ const currentWidth = col.width;
20347
+ const extraShare = Math.floor(remaining * (currentWidth / totalMinWidth));
20348
+ col.width = currentWidth + extraShare;
20349
+ }
20350
+ }
20351
+ function resolveAlign(column) {
20352
+ var _a;
20353
+ const align = (_a = column.tableColumnProps) == null ? void 0 : _a.align;
20354
+ if (align === "left" || align === "center" || align === "right") return align;
20355
+ return "left";
20356
+ }
20357
+ function adaptColumn(column, defaultWidth, columnsEmptyText) {
20358
+ const prop = column.prop || "";
20359
+ const label = typeof column.label === "string" ? column.label : vue.unref(column.label) || "";
20360
+ const adapted = {
20361
+ key: prop,
20362
+ dataKey: prop,
20363
+ title: label,
20364
+ width: resolveWidth(column, defaultWidth),
20365
+ align: resolveAlign(column),
20366
+ fixed: resolveFixed(column),
20367
+ _plusColumn: column
20368
+ };
20369
+ adapted.cellRenderer = createCellRenderer(column, columnsEmptyText);
20370
+ if (column.renderHeader || column.tooltip) {
20371
+ adapted.headerCellRenderer = createHeaderRenderer(column);
20372
+ }
20373
+ return adapted;
20374
+ }
20375
+ function createIndexColumn(width, pageInfo) {
20376
+ return {
20377
+ key: "__index__",
20378
+ dataKey: "__index__",
20379
+ title: "#",
20380
+ width,
20381
+ fixed: elementPlus.TableV2FixedDir.LEFT,
20382
+ align: "center",
20383
+ cellRenderer: ({ rowIndex }) => {
20384
+ const offset = pageInfo ? (pageInfo.page - 1) * pageInfo.pageSize : 0;
20385
+ return `${offset + rowIndex + 1}`;
20386
+ }
20387
+ };
20388
+ }
20389
+ function useColumnAdapter(config) {
20390
+ const virtualColumns = vue.computed(() => {
20391
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
20392
+ const rawColumns = config.columns();
20393
+ const isSelection = (_b = (_a = config.isSelection) == null ? void 0 : _a.call(config)) != null ? _b : false;
20394
+ const hasIndexColumn = (_d = (_c = config.hasIndexColumn) == null ? void 0 : _c.call(config)) != null ? _d : false;
20395
+ const actionBar = (_e = config.actionBar) == null ? void 0 : _e.call(config);
20396
+ const defaultWidth = (_g = (_f = config.defaultColumnWidth) == null ? void 0 : _f.call(config)) != null ? _g : 150;
20397
+ const emptyText = (_i = (_h = config.columnsEmptyText) == null ? void 0 : _h.call(config)) != null ? _i : "-";
20398
+ const pageInfo = (_j = config.pageInfo) == null ? void 0 : _j.call(config);
20399
+ const selectionWidth = (_l = (_k = config.selectionColumnWidth) == null ? void 0 : _k.call(config)) != null ? _l : 50;
20400
+ const indexWidth = (_n = (_m = config.indexColumnWidth) == null ? void 0 : _m.call(config)) != null ? _n : 60;
20401
+ const cWidth = (_p = (_o = config.containerWidth) == null ? void 0 : _o.call(config)) != null ? _p : 0;
20402
+ const result = [];
20403
+ const flexIndices = [];
20404
+ if (isSelection) {
20405
+ const selectionCol = {
20406
+ key: "__selection__",
20407
+ dataKey: "__selection__",
20408
+ title: "",
20409
+ width: selectionWidth,
20410
+ fixed: elementPlus.TableV2FixedDir.LEFT,
20411
+ align: "center"
20412
+ };
20413
+ const cellRenderer = (_q = config.selectionCellRenderer) == null ? void 0 : _q.call(config);
20414
+ const headerRenderer = (_r = config.selectionHeaderRenderer) == null ? void 0 : _r.call(config);
20415
+ if (cellRenderer) selectionCol.cellRenderer = cellRenderer;
20416
+ if (headerRenderer) selectionCol.headerCellRenderer = headerRenderer;
20417
+ result.push(selectionCol);
20418
+ }
20419
+ if (hasIndexColumn) {
20420
+ result.push(createIndexColumn(indexWidth, pageInfo));
20421
+ }
20422
+ const visibleColumns = rawColumns.filter(
20423
+ (col) => vue.unref(col.hideInTable) !== true
20424
+ );
20425
+ for (const col of visibleColumns) {
20426
+ const idx = result.length;
20427
+ result.push(adaptColumn(col, defaultWidth, emptyText));
20428
+ if (isFlexColumn(col)) {
20429
+ flexIndices.push(idx);
20430
+ }
20431
+ }
20432
+ if (actionBar) {
20433
+ const actionCol = createActionBarColumn(actionBar, config.onClickAction);
20434
+ result.push(actionCol);
20435
+ }
20436
+ distributeRemainingWidth(result, flexIndices, cWidth);
20437
+ return result;
20438
+ });
20439
+ return { virtualColumns };
20440
+ }
20441
+
20442
+ function useVirtualSelection(options) {
20443
+ const selectedKeys = vue.ref(/* @__PURE__ */ new Set());
20444
+ const getRowKey = (row) => {
20445
+ const key = options.rowKey();
20446
+ return row[key];
20447
+ };
20448
+ const dataLength = vue.computed(() => options.data().length);
20449
+ const isAllSelected = vue.computed(() => {
20450
+ if (dataLength.value === 0) return false;
20451
+ return selectedKeys.value.size === dataLength.value;
20452
+ });
20453
+ const isIndeterminate = vue.computed(() => {
20454
+ const size = selectedKeys.value.size;
20455
+ return size > 0 && size < dataLength.value;
20456
+ });
20457
+ const getSelectionRows = () => {
20458
+ const data = options.data();
20459
+ const keys = selectedKeys.value;
20460
+ if (keys.size === 0) return [];
20461
+ return data.filter((row) => keys.has(getRowKey(row)));
20462
+ };
20463
+ const clearSelection = () => {
20464
+ var _a;
20465
+ selectedKeys.value = /* @__PURE__ */ new Set();
20466
+ (_a = options.onSelectionChange) == null ? void 0 : _a.call(options, []);
20467
+ };
20468
+ const toggleRowSelection = (row, selected) => {
20469
+ var _a, _b;
20470
+ const key = getRowKey(row);
20471
+ const newSet = new Set(selectedKeys.value);
20472
+ const shouldSelect = selected != null ? selected : !newSet.has(key);
20473
+ if (shouldSelect) {
20474
+ newSet.add(key);
20475
+ } else {
20476
+ newSet.delete(key);
20477
+ }
20478
+ selectedKeys.value = newSet;
20479
+ const selection = getSelectionRows();
20480
+ (_a = options.onSelect) == null ? void 0 : _a.call(options, selection, row);
20481
+ (_b = options.onSelectionChange) == null ? void 0 : _b.call(options, selection);
20482
+ };
20483
+ const toggleAllSelection = (selected) => {
20484
+ var _a, _b;
20485
+ const shouldSelectAll = selected != null ? selected : !isAllSelected.value;
20486
+ if (shouldSelectAll) {
20487
+ const data = options.data();
20488
+ selectedKeys.value = new Set(data.map((row) => getRowKey(row)));
20489
+ } else {
20490
+ selectedKeys.value = /* @__PURE__ */ new Set();
20491
+ }
20492
+ const selection = getSelectionRows();
20493
+ (_a = options.onSelectAll) == null ? void 0 : _a.call(options, selection);
20494
+ (_b = options.onSelectionChange) == null ? void 0 : _b.call(options, selection);
20495
+ };
20496
+ vue.watch(
20497
+ () => options.data(),
20498
+ (newData) => {
20499
+ var _a;
20500
+ if (selectedKeys.value.size === 0) return;
20501
+ const currentKeys = new Set(newData.map((row) => getRowKey(row)));
20502
+ const filtered = /* @__PURE__ */ new Set();
20503
+ for (const key of selectedKeys.value) {
20504
+ if (currentKeys.has(key)) {
20505
+ filtered.add(key);
20506
+ }
20507
+ }
20508
+ if (filtered.size !== selectedKeys.value.size) {
20509
+ selectedKeys.value = filtered;
20510
+ (_a = options.onSelectionChange) == null ? void 0 : _a.call(options, getSelectionRows());
20511
+ }
20512
+ }
20513
+ );
20514
+ const selectionCellRenderer = (params) => {
20515
+ const row = params.rowData;
20516
+ const key = getRowKey(row);
20517
+ const checked = selectedKeys.value.has(key);
20518
+ return vue.h(elementPlus.ElCheckbox, {
20519
+ modelValue: checked,
20520
+ onChange: (value) => {
20521
+ toggleRowSelection(row, !!value);
20522
+ },
20523
+ onClick: (e) => {
20524
+ e.stopPropagation();
20525
+ }
20526
+ });
20527
+ };
20528
+ const selectionHeaderRenderer = (_params) => {
20529
+ return vue.h(elementPlus.ElCheckbox, {
20530
+ modelValue: isAllSelected.value,
20531
+ indeterminate: isIndeterminate.value,
20532
+ onChange: (value) => {
20533
+ toggleAllSelection(!!value);
20534
+ }
20535
+ });
20536
+ };
20537
+ return {
20538
+ selectedKeys,
20539
+ isAllSelected,
20540
+ isIndeterminate,
20541
+ getSelectionRows,
20542
+ clearSelection,
20543
+ toggleRowSelection,
20544
+ toggleAllSelection,
20545
+ selectionCellRenderer,
20546
+ selectionHeaderRenderer
20547
+ };
20548
+ }
20549
+
20550
+ function useVirtualScroll(options = {}) {
20551
+ const tableRef = vue.shallowRef(null);
20552
+ const wrapperRef = vue.shallowRef(null);
20553
+ const containerWidth = vue.ref(0);
20554
+ let resizeObserver = null;
20555
+ const observeWidth = (el) => {
20556
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
20557
+ if (!el) return;
20558
+ containerWidth.value = el.clientWidth;
20559
+ resizeObserver = new ResizeObserver((entries) => {
20560
+ for (const entry of entries) {
20561
+ containerWidth.value = entry.contentRect.width;
20562
+ }
20563
+ });
20564
+ resizeObserver.observe(el);
20565
+ };
20566
+ vue.watch(wrapperRef, (el) => {
20567
+ observeWidth(el);
20568
+ });
20569
+ vue.onMounted(() => {
20570
+ if (wrapperRef.value) observeWidth(wrapperRef.value);
20571
+ });
20572
+ vue.onBeforeUnmount(() => {
20573
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
20574
+ });
20575
+ const rowHeight = vue.computed(() => {
20576
+ var _a, _b;
20577
+ return (_b = (_a = options.rowHeight) == null ? void 0 : _a.call(options)) != null ? _b : 50;
20578
+ });
20579
+ const headerHeight = vue.computed(() => {
20580
+ var _a, _b;
20581
+ return (_b = (_a = options.headerHeight) == null ? void 0 : _a.call(options)) != null ? _b : 50;
20582
+ });
20583
+ const useAutoResizer = vue.computed(() => {
20584
+ var _a;
20585
+ const h = (_a = options.height) == null ? void 0 : _a.call(options);
20586
+ return h === void 0 || h === null || h === "";
20587
+ });
20588
+ const containerStyle = vue.computed(() => {
20589
+ var _a, _b;
20590
+ if (useAutoResizer.value) {
20591
+ return {
20592
+ width: "100%"
20593
+ };
20594
+ }
20595
+ const h = (_a = options.height) == null ? void 0 : _a.call(options);
20596
+ const w = (_b = options.width) == null ? void 0 : _b.call(options);
20597
+ return {
20598
+ width: typeof w === "number" ? `${w}px` : w || "100%",
20599
+ height: typeof h === "number" ? `${h}px` : h || "400px"
20600
+ };
20601
+ });
20602
+ const scrollToRow = (rowIndex) => {
20603
+ var _a;
20604
+ (_a = tableRef.value) == null ? void 0 : _a.scrollToRow(rowIndex);
20605
+ };
20606
+ return {
20607
+ tableRef,
20608
+ wrapperRef,
20609
+ scrollToRow,
20610
+ useAutoResizer,
20611
+ containerStyle,
20612
+ rowHeight,
20613
+ headerHeight,
20614
+ containerWidth
20615
+ };
20616
+ }
20617
+
20618
+ const _hoisted_1$f = {
20619
+ key: 0,
20620
+ class: "plus-virtual-table__title-bar"
20621
+ };
20622
+ const _hoisted_2$b = { class: "plus-virtual-table__title-bar__left" };
20623
+ const _hoisted_3$9 = {
20624
+ key: 0,
20625
+ class: "plus-virtual-table__title-bar__text"
20626
+ };
20627
+ const _hoisted_4$7 = { class: "plus-virtual-table__title-bar__right" };
20628
+ var _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
20629
+ ...{
20630
+ name: "PlusVirtualTable",
20631
+ inheritAttrs: false
20632
+ },
20633
+ __name: "index",
20634
+ props: {
20635
+ columns: { default: () => [] },
20636
+ tableData: { default: () => [] },
20637
+ data: { default: () => [] },
20638
+ pagination: { type: [Boolean, Object], default: false },
20639
+ actionBar: { type: [Boolean, Object], default: false },
20640
+ hasIndexColumn: { type: Boolean, default: false },
20641
+ isSelection: { type: Boolean, default: false },
20642
+ loadingStatus: { type: Boolean, default: false },
20643
+ height: {},
20644
+ width: {},
20645
+ headerCellStyle: {},
20646
+ rowKey: { default: "id" },
20647
+ defaultSize: { default: "default" },
20648
+ rowHeight: { default: 50 },
20649
+ headerHeight: { default: 50 },
20650
+ fixed: { type: Boolean, default: true },
20651
+ defaultColumnWidth: { default: 150 },
20652
+ columnsEmptyText: { default: "-" },
20653
+ rowClass: {},
20654
+ rowStyle: {},
20655
+ scrollbarAlwaysOn: { type: Boolean, default: true },
20656
+ titleBar: { type: [Boolean, Object], default: false },
20657
+ selectionColumnWidth: { default: 50 },
20658
+ indexColumnWidth: { default: 60 },
20659
+ stripe: { type: Boolean, default: false },
20660
+ border: { type: Boolean, default: false }
20661
+ },
20662
+ emits: ["paginationChange", "clickAction", "selection-change", "select", "select-all", "refresh", "row-click", "sort-change"],
20663
+ setup(__props, { expose: __expose, emit: __emit }) {
20664
+ var _a;
20665
+ const props = __props;
20666
+ const emit = __emit;
20667
+ const tableData = vue.computed(() => {
20668
+ var _a2;
20669
+ return ((_a2 = props.tableData) == null ? void 0 : _a2.length) ? props.tableData : props.data;
20670
+ });
20671
+ const state = vue.reactive({
20672
+ subPageInfo: {
20673
+ ...((_a = props.pagination) == null ? void 0 : _a.modelValue) || DefaultPageInfo
20674
+ }
20675
+ });
20676
+ vue.watch(
20677
+ () => {
20678
+ var _a2;
20679
+ return (_a2 = props.pagination) == null ? void 0 : _a2.modelValue;
20680
+ },
20681
+ (newVal) => {
20682
+ if (newVal) {
20683
+ Object.assign(state.subPageInfo, newVal);
20684
+ }
20685
+ },
20686
+ { deep: true }
20687
+ );
20688
+ const {
20689
+ tableRef,
20690
+ wrapperRef,
20691
+ scrollToRow,
20692
+ useAutoResizer,
20693
+ containerStyle,
20694
+ rowHeight,
20695
+ headerHeight,
20696
+ containerWidth
20697
+ } = useVirtualScroll({
20698
+ height: () => props.height,
20699
+ width: () => props.width,
20700
+ rowHeight: () => props.rowHeight,
20701
+ headerHeight: () => props.headerHeight
20702
+ });
20703
+ const selectionComposable = useVirtualSelection({
20704
+ rowKey: () => props.rowKey,
20705
+ data: () => tableData.value,
20706
+ onSelectionChange: (selection) => {
20707
+ emit("selection-change", selection);
20708
+ },
20709
+ onSelect: (selection, row) => {
20710
+ emit("select", selection, row);
20711
+ },
20712
+ onSelectAll: (selection) => {
20713
+ emit("select-all", selection);
20714
+ }
20715
+ });
20716
+ const { virtualColumns } = useColumnAdapter({
20717
+ columns: () => props.columns,
20718
+ isSelection: () => props.isSelection,
20719
+ hasIndexColumn: () => props.hasIndexColumn,
20720
+ actionBar: () => props.actionBar,
20721
+ rowKey: () => props.rowKey,
20722
+ defaultColumnWidth: () => props.defaultColumnWidth,
20723
+ columnsEmptyText: () => props.columnsEmptyText,
20724
+ containerWidth: () => containerWidth.value,
20725
+ pageInfo: () => {
20726
+ if (!props.pagination) return void 0;
20727
+ return state.subPageInfo;
20728
+ },
20729
+ selectionColumnWidth: () => props.selectionColumnWidth,
20730
+ indexColumnWidth: () => props.indexColumnWidth,
20731
+ selectionCellRenderer: () => selectionComposable.selectionCellRenderer,
20732
+ selectionHeaderRenderer: () => selectionComposable.selectionHeaderRenderer,
20733
+ onClickAction: (params) => {
20734
+ emit("clickAction", params);
20735
+ }
20736
+ });
20737
+ const showTitleBar = vue.computed(() => !!props.titleBar);
20738
+ const titleBarConfig = vue.computed(() => {
20739
+ if (typeof props.titleBar === "object") {
20740
+ return props.titleBar;
20741
+ }
20742
+ return { refresh: false };
20743
+ });
20744
+ const fixedWidth = vue.computed(() => {
20745
+ const w = props.width;
20746
+ if (typeof w === "number") return w;
20747
+ if (typeof w === "string") return parseInt(w, 10) || 700;
20748
+ return 700;
20749
+ });
20750
+ const fixedHeight = vue.computed(() => {
20751
+ const h = props.height;
20752
+ if (typeof h === "number") return h;
20753
+ if (typeof h === "string") return parseInt(h, 10) || 400;
20754
+ return 400;
20755
+ });
20756
+ const rowEventHandlers = vue.computed(() => ({
20757
+ onClick: (params) => {
20758
+ emit("row-click", params.rowData, params.rowIndex);
20759
+ }
20760
+ }));
20761
+ const wrapperClass = vue.computed(() => [
20762
+ "plus-virtual-table",
20763
+ {
20764
+ "plus-virtual-table--striped": props.stripe,
20765
+ "plus-virtual-table--border": props.border
20766
+ }
20767
+ ]);
20768
+ const mergedRowClass = vue.computed(() => {
20769
+ return (params) => {
20770
+ const classes = [];
20771
+ if (props.stripe && params.rowIndex % 2 === 1) {
20772
+ classes.push("plus-virtual-table__row--striped");
20773
+ }
20774
+ const userClass = props.rowClass;
20775
+ if (typeof userClass === "string") {
20776
+ classes.push(userClass);
20777
+ } else if (typeof userClass === "function") {
20778
+ const result = userClass(params);
20779
+ if (result) classes.push(result);
20780
+ }
20781
+ return classes.join(" ");
20782
+ };
20783
+ });
20784
+ const headerClass = vue.computed(() => "plus-virtual-table__header");
20785
+ const handlePaginationChange = () => {
20786
+ emit("paginationChange", { ...state.subPageInfo });
20787
+ };
20788
+ const handleRefresh = () => {
20789
+ emit("refresh");
20790
+ };
20791
+ const { subPageInfo } = vue.toRefs(state);
20792
+ __expose({
20793
+ getSelectionRows: selectionComposable.getSelectionRows,
20794
+ clearSelection: selectionComposable.clearSelection,
20795
+ toggleRowSelection: selectionComposable.toggleRowSelection,
20796
+ toggleAllSelection: selectionComposable.toggleAllSelection,
20797
+ scrollToRow,
20798
+ data: tableData,
20799
+ tableRef
20800
+ });
20801
+ return (_ctx, _cache) => {
20802
+ return vue.openBlock(), vue.createElementBlock(
20803
+ "div",
20804
+ {
20805
+ ref_key: "wrapperRef",
20806
+ ref: wrapperRef,
20807
+ class: vue.normalizeClass(wrapperClass.value)
20808
+ },
20809
+ [
20810
+ vue.createCommentVNode(" \u6807\u9898\u680F\uFF08\u7B80\u5316\u7248\uFF09 "),
20811
+ showTitleBar.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
20812
+ vue.createElementVNode("div", _hoisted_2$b, [
20813
+ vue.renderSlot(_ctx.$slots, "title", {}, () => [
20814
+ titleBarConfig.value.title ? (vue.openBlock(), vue.createElementBlock(
20815
+ "span",
20816
+ _hoisted_3$9,
20817
+ vue.toDisplayString(titleBarConfig.value.title),
20818
+ 1
20819
+ /* TEXT */
20820
+ )) : vue.createCommentVNode("v-if", true)
20821
+ ])
20822
+ ]),
20823
+ vue.createElementVNode("div", _hoisted_4$7, [
20824
+ vue.renderSlot(_ctx.$slots, "toolbar"),
20825
+ titleBarConfig.value.refresh ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElIcon), {
20826
+ key: 0,
20827
+ class: "plus-virtual-table__title-bar__refresh",
20828
+ size: 16,
20829
+ onClick: handleRefresh
20830
+ }, {
20831
+ default: vue.withCtx(() => [
20832
+ vue.createVNode(vue.unref(refresh_default))
20833
+ ]),
20834
+ _: 1
20835
+ /* STABLE */
20836
+ })) : vue.createCommentVNode("v-if", true)
20837
+ ])
20838
+ ])) : vue.createCommentVNode("v-if", true),
20839
+ vue.createCommentVNode(" \u8868\u683C\u4E3B\u4F53 "),
20840
+ vue.withDirectives((vue.openBlock(), vue.createElementBlock(
20841
+ "div",
20842
+ {
20843
+ class: "plus-virtual-table__body",
20844
+ style: vue.normalizeStyle(vue.unref(containerStyle))
20845
+ },
20846
+ [
20847
+ vue.createCommentVNode(" \u81EA\u9002\u5E94\u6A21\u5F0F\uFF1A\u4F7F\u7528 AutoResizer \u81EA\u52A8\u83B7\u53D6\u7236\u5BB9\u5668\u5C3A\u5BF8 "),
20848
+ vue.unref(useAutoResizer) ? (vue.openBlock(), vue.createBlock(vue.unref(elementPlus.ElAutoResizer), { key: 0 }, {
20849
+ default: vue.withCtx(({ height: autoHeight, width: autoWidth }) => [
20850
+ vue.createVNode(vue.unref(elementPlus.ElTableV2), {
20851
+ ref_key: "tableRef",
20852
+ ref: tableRef,
20853
+ columns: vue.unref(virtualColumns),
20854
+ data: tableData.value,
20855
+ width: autoWidth,
20856
+ height: autoHeight,
20857
+ fixed: _ctx.fixed,
20858
+ "row-key": _ctx.rowKey,
20859
+ "row-height": vue.unref(rowHeight),
20860
+ "header-height": vue.unref(headerHeight),
20861
+ "row-class": mergedRowClass.value,
20862
+ "row-event-handlers": rowEventHandlers.value,
20863
+ "scrollbar-always-on": _ctx.scrollbarAlwaysOn,
20864
+ "header-class": headerClass.value
20865
+ }, null, 8, ["columns", "data", "width", "height", "fixed", "row-key", "row-height", "header-height", "row-class", "row-event-handlers", "scrollbar-always-on", "header-class"])
20866
+ ]),
20867
+ _: 1
20868
+ /* STABLE */
20869
+ })) : (vue.openBlock(), vue.createElementBlock(
20870
+ vue.Fragment,
20871
+ { key: 1 },
20872
+ [
20873
+ vue.createCommentVNode(" \u56FA\u5B9A\u5C3A\u5BF8\u6A21\u5F0F\uFF1A\u76F4\u63A5\u4F7F\u7528\u6307\u5B9A\u7684\u5BBD\u9AD8 "),
20874
+ vue.createVNode(vue.unref(elementPlus.ElTableV2), {
20875
+ ref_key: "tableRef",
20876
+ ref: tableRef,
20877
+ columns: vue.unref(virtualColumns),
20878
+ data: tableData.value,
20879
+ width: fixedWidth.value,
20880
+ height: fixedHeight.value,
20881
+ fixed: _ctx.fixed,
20882
+ "row-key": _ctx.rowKey,
20883
+ "row-height": vue.unref(rowHeight),
20884
+ "header-height": vue.unref(headerHeight),
20885
+ "row-class": mergedRowClass.value,
20886
+ "row-event-handlers": rowEventHandlers.value,
20887
+ "scrollbar-always-on": _ctx.scrollbarAlwaysOn,
20888
+ "header-class": headerClass.value
20889
+ }, null, 8, ["columns", "data", "width", "height", "fixed", "row-key", "row-height", "header-height", "row-class", "row-event-handlers", "scrollbar-always-on", "header-class"])
20890
+ ],
20891
+ 2112
20892
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
20893
+ ))
20894
+ ],
20895
+ 4
20896
+ /* STYLE */
20897
+ )), [
20898
+ [vue.unref(elementPlus.vLoading), _ctx.loadingStatus]
20899
+ ]),
20900
+ vue.createCommentVNode(" \u5206\u9875 "),
20901
+ _ctx.pagination ? (vue.openBlock(), vue.createBlock(vue.unref(PlusPagination), vue.mergeProps({
20902
+ key: 1,
20903
+ modelValue: vue.unref(subPageInfo),
20904
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(subPageInfo) ? subPageInfo.value = $event : null)
20905
+ }, _ctx.pagination, {
20906
+ class: "plus-virtual-table__pagination",
20907
+ onChange: handlePaginationChange
20908
+ }), vue.createSlots({
20909
+ _: 2
20910
+ /* DYNAMIC */
20911
+ }, [
20912
+ _ctx.$slots["pagination-left"] ? {
20913
+ name: "pagination-left",
20914
+ fn: vue.withCtx(() => [
20915
+ vue.renderSlot(_ctx.$slots, "pagination-left")
20916
+ ]),
20917
+ key: "0"
20918
+ } : void 0,
20919
+ _ctx.$slots["pagination-right"] ? {
20920
+ name: "pagination-right",
20921
+ fn: vue.withCtx(() => [
20922
+ vue.renderSlot(_ctx.$slots, "pagination-right")
20923
+ ]),
20924
+ key: "1"
20925
+ } : void 0
20926
+ ]), 1040, ["modelValue"])) : vue.createCommentVNode("v-if", true)
20927
+ ],
20928
+ 2
20929
+ /* CLASS */
20930
+ );
20931
+ };
20932
+ }
20933
+ });
20934
+
20935
+ var _VirtualTable = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__file", "index.vue"]]);
20936
+
20937
+ const PlusVirtualTable = _VirtualTable;
20938
+
20040
20939
  const _hoisted_1$e = { class: "plus-page" };
20041
20940
  var _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
20042
20941
  ...{
@@ -20098,7 +20997,35 @@
20098
20997
  const { tableData, pageInfo, total, loadingStatus } = useTable(computedDefaultPageInfo);
20099
20998
  const plusSearchInstance = vue.ref(null);
20100
20999
  const plusTableInstance = vue.ref(null);
21000
+ const plusVirtualTableInstance = vue.ref(null);
20101
21001
  const values = vue.ref({ ...(_a = props.search) == null ? void 0 : _a.defaultValues });
21002
+ const isVirtualMode = vue.computed(() => {
21003
+ var _a2;
21004
+ return !!((_a2 = props.table) == null ? void 0 : _a2.useVirtual);
21005
+ });
21006
+ const virtualTableProps = vue.computed(() => {
21007
+ if (!isVirtualMode.value) return {};
21008
+ const { useVirtual: _, ...rest } = props.table || {};
21009
+ return rest;
21010
+ });
21011
+ const virtualColumns = vue.computed(() => {
21012
+ if (!isVirtualMode.value) return props.columns;
21013
+ return props.columns.map((col) => {
21014
+ const prop = col.prop;
21015
+ if (!prop) return col;
21016
+ const headerSlotName = `plus-header-${prop}`;
21017
+ const headerSlot = slots[headerSlotName];
21018
+ if (headerSlot && !col.renderHeader) {
21019
+ return {
21020
+ ...col,
21021
+ renderHeader: (label, column) => {
21022
+ return headerSlot({ label, column });
21023
+ }
21024
+ };
21025
+ }
21026
+ return col;
21027
+ });
21028
+ });
20102
21029
  const renderWrapper = () => {
20103
21030
  if (props.isCard) {
20104
21031
  return {
@@ -20180,6 +21107,7 @@
20180
21107
  __expose({
20181
21108
  plusSearchInstance,
20182
21109
  plusTableInstance,
21110
+ plusVirtualTableInstance,
20183
21111
  getList,
20184
21112
  handleReset,
20185
21113
  /**
@@ -20245,14 +21173,15 @@
20245
21173
  class: "plus-page__table_wrapper"
20246
21174
  }, {
20247
21175
  default: vue.withCtx(() => [
20248
- vue.createVNode(vue.unref(PlusTable), vue.mergeProps({
20249
- ref_key: "plusTableInstance",
20250
- ref: plusTableInstance,
20251
- "title-bar": { refresh: true }
20252
- }, _ctx.table, {
21176
+ vue.createCommentVNode("\n \u865A\u62DF\u8868\u683C\u6A21\u5F0F\uFF1A\u5F53 table.useVirtual \u4E3A true \u65F6\u4F7F\u7528 PlusVirtualTable\n \u4F7F\u7528 el-table-v2 \u5B9E\u73B0\u865A\u62DF\u6EDA\u52A8\uFF0C\u9002\u7528\u4E8E\u5927\u6570\u636E\u91CF\u573A\u666F\uFF08500+ \u884C\uFF09\n "),
21177
+ isVirtualMode.value ? (vue.openBlock(), vue.createBlock(vue.unref(PlusVirtualTable), vue.mergeProps({
21178
+ key: 0,
21179
+ ref_key: "plusVirtualTableInstance",
21180
+ ref: plusVirtualTableInstance
21181
+ }, virtualTableProps.value, {
20253
21182
  "table-data": vue.unref(tableData),
20254
21183
  "loading-status": vue.unref(loadingStatus),
20255
- columns: _ctx.columns,
21184
+ columns: virtualColumns.value,
20256
21185
  "columns-empty-text": _ctx.columnsEmptyText,
20257
21186
  pagination: _ctx.pagination === false ? void 0 : {
20258
21187
  ..._ctx.pagination,
@@ -20280,36 +21209,94 @@
20280
21209
  ]),
20281
21210
  key: "1"
20282
21211
  } : void 0,
20283
- _ctx.$slots["table-expand"] ? {
20284
- name: "expand",
20285
- fn: vue.withCtx((data) => [
20286
- vue.renderSlot(_ctx.$slots, "table-expand", vue.normalizeProps(vue.guardReactiveProps(data)))
21212
+ _ctx.$slots["pagination-left"] ? {
21213
+ name: "pagination-left",
21214
+ fn: vue.withCtx(() => [
21215
+ vue.renderSlot(_ctx.$slots, "pagination-left")
20287
21216
  ]),
20288
21217
  key: "2"
20289
21218
  } : void 0,
20290
- _ctx.$slots["table-append"] ? {
20291
- name: "append",
21219
+ _ctx.$slots["pagination-right"] ? {
21220
+ name: "pagination-right",
20292
21221
  fn: vue.withCtx(() => [
20293
- vue.renderSlot(_ctx.$slots, "table-append")
21222
+ vue.renderSlot(_ctx.$slots, "pagination-right")
20294
21223
  ]),
20295
21224
  key: "3"
20296
- } : void 0,
20297
- _ctx.$slots["table-empty"] ? {
20298
- name: "empty",
20299
- fn: vue.withCtx(() => [
20300
- vue.renderSlot(_ctx.$slots, "table-empty")
20301
- ]),
20302
- key: "4"
20303
- } : void 0,
20304
- vue.renderList(tableSlots.value, (_, key) => {
20305
- return {
20306
- name: key,
20307
- fn: vue.withCtx((data) => [
20308
- vue.renderSlot(_ctx.$slots, key, vue.normalizeProps(vue.guardReactiveProps(data)))
20309
- ])
20310
- };
20311
- })
20312
- ]), 1040, ["table-data", "loading-status", "columns", "columns-empty-text", "pagination"])
21225
+ } : void 0
21226
+ ]), 1040, ["table-data", "loading-status", "columns", "columns-empty-text", "pagination"])) : (vue.openBlock(), vue.createElementBlock(
21227
+ vue.Fragment,
21228
+ { key: 1 },
21229
+ [
21230
+ vue.createCommentVNode(" \u6807\u51C6\u8868\u683C\u6A21\u5F0F\uFF1A\u4F7F\u7528 el-table \u7684 PlusTable "),
21231
+ vue.createVNode(vue.unref(PlusTable), vue.mergeProps({
21232
+ ref_key: "plusTableInstance",
21233
+ ref: plusTableInstance,
21234
+ "title-bar": { refresh: true }
21235
+ }, _ctx.table, {
21236
+ "table-data": vue.unref(tableData),
21237
+ "loading-status": vue.unref(loadingStatus),
21238
+ columns: _ctx.columns,
21239
+ "columns-empty-text": _ctx.columnsEmptyText,
21240
+ pagination: _ctx.pagination === false ? void 0 : {
21241
+ ..._ctx.pagination,
21242
+ total: vue.unref(total),
21243
+ modelValue: vue.unref(pageInfo),
21244
+ pageSizeList: computedDefaultPageSizeList.value
21245
+ },
21246
+ onPaginationChange: handlePaginationChange,
21247
+ onRefresh: handleRefresh
21248
+ }), vue.createSlots({
21249
+ _: 2
21250
+ /* DYNAMIC */
21251
+ }, [
21252
+ _ctx.$slots["table-title"] ? {
21253
+ name: "title",
21254
+ fn: vue.withCtx(() => [
21255
+ vue.renderSlot(_ctx.$slots, "table-title")
21256
+ ]),
21257
+ key: "0"
21258
+ } : void 0,
21259
+ _ctx.$slots["table-toolbar"] ? {
21260
+ name: "toolbar",
21261
+ fn: vue.withCtx(() => [
21262
+ vue.renderSlot(_ctx.$slots, "table-toolbar")
21263
+ ]),
21264
+ key: "1"
21265
+ } : void 0,
21266
+ _ctx.$slots["table-expand"] ? {
21267
+ name: "expand",
21268
+ fn: vue.withCtx((data) => [
21269
+ vue.renderSlot(_ctx.$slots, "table-expand", vue.normalizeProps(vue.guardReactiveProps(data)))
21270
+ ]),
21271
+ key: "2"
21272
+ } : void 0,
21273
+ _ctx.$slots["table-append"] ? {
21274
+ name: "append",
21275
+ fn: vue.withCtx(() => [
21276
+ vue.renderSlot(_ctx.$slots, "table-append")
21277
+ ]),
21278
+ key: "3"
21279
+ } : void 0,
21280
+ _ctx.$slots["table-empty"] ? {
21281
+ name: "empty",
21282
+ fn: vue.withCtx(() => [
21283
+ vue.renderSlot(_ctx.$slots, "table-empty")
21284
+ ]),
21285
+ key: "4"
21286
+ } : void 0,
21287
+ vue.renderList(tableSlots.value, (_, key) => {
21288
+ return {
21289
+ name: key,
21290
+ fn: vue.withCtx((data) => [
21291
+ vue.renderSlot(_ctx.$slots, key, vue.normalizeProps(vue.guardReactiveProps(data)))
21292
+ ])
21293
+ };
21294
+ })
21295
+ ]), 1040, ["table-data", "loading-status", "columns", "columns-empty-text", "pagination"])
21296
+ ],
21297
+ 2112
21298
+ /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */
21299
+ ))
20313
21300
  ]),
20314
21301
  _: 3
20315
21302
  /* FORWARDED */
@@ -32181,7 +33168,7 @@
32181
33168
  }
32182
33169
  });
32183
33170
 
32184
- var YcPlusPageComponent = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-0a41b082"], ["__file", "index.vue"]]);
33171
+ var YcPlusPageComponent = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-7430d4ed"], ["__file", "index.vue"]]);
32185
33172
 
32186
33173
  const YcPlusPage = YcPlusPageComponent;
32187
33174
  const YcTableHeaderFilterCell = YcTableHeaderFilterCellComponent;
@@ -60791,6 +61778,7 @@
60791
61778
  PlusLayout,
60792
61779
  PlusCheckCard,
60793
61780
  PlusCheckCardGroup,
61781
+ PlusVirtualTable,
60794
61782
  // Yc 组件
60795
61783
  YcConfigProvider,
60796
61784
  YcPlusPage,
@@ -61789,6 +62777,7 @@
61789
62777
  exports.PlusSidebarItem = PlusSidebarItem;
61790
62778
  exports.PlusStepsForm = PlusStepsForm;
61791
62779
  exports.PlusTable = PlusTable;
62780
+ exports.PlusVirtualTable = PlusVirtualTable;
61792
62781
  exports.ReAnimateSelector = YcAnimateSelector;
61793
62782
  exports.ReAuth = YcAuth;
61794
62783
  exports.ReCard = YcCard;
@@ -61875,6 +62864,7 @@
61875
62864
  exports.reorderSiblingNodes = reorderSiblingNodes;
61876
62865
  exports.selectValueTypeList = selectValueTypeList;
61877
62866
  exports.updateDrawer = updateDrawer;
62867
+ exports.useColumnAdapter = useColumnAdapter;
61878
62868
  exports.useDialogFormConfig = useDialogFormConfig;
61879
62869
  exports.useDictInjection = useDictInjection;
61880
62870
  exports.useDrawerFormConfig = useDrawerFormConfig;
@@ -61889,6 +62879,8 @@
61889
62879
  exports.useSelectWithPagination = useSelectWithPagination;
61890
62880
  exports.useSortableDrag = useSortableDrag$1;
61891
62881
  exports.useTable = useTable;
62882
+ exports.useVirtualScroll = useVirtualScroll;
62883
+ exports.useVirtualSelection = useVirtualSelection;
61892
62884
  exports.useYcAuth = useYcAuth;
61893
62885
  exports.useYcCdn = useYcCdn;
61894
62886
  exports.useYcCdnUrl = useYcCdnUrl;