@fmdevui/fm-dev 1.0.75 → 1.0.77

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 (160) hide show
  1. package/es/_virtual/de-DE.mjs +1 -1
  2. package/es/_virtual/en-US.mjs +1 -1
  3. package/es/_virtual/es-ES.mjs +1 -1
  4. package/es/_virtual/fr-FR.mjs +1 -1
  5. package/es/_virtual/it-IT.mjs +1 -1
  6. package/es/_virtual/ja-JP.mjs +1 -1
  7. package/es/_virtual/ko-KR.mjs +1 -1
  8. package/es/_virtual/nb-NO.mjs +1 -1
  9. package/es/_virtual/pt-BR.mjs +1 -1
  10. package/es/_virtual/ru-RU.mjs +1 -1
  11. package/es/_virtual/th-TH.mjs +1 -1
  12. package/es/_virtual/vi-VN.mjs +1 -1
  13. package/es/_virtual/zh-CN.mjs +1 -1
  14. package/es/_virtual/zh-HK.mjs +1 -1
  15. package/es/_virtual/zh-TW.mjs +1 -1
  16. package/es/component.mjs +7 -2
  17. package/es/core/hook/useVxeTableOptionsHook.d.ts +39 -6
  18. package/es/core/ui/components/index.d.ts +807 -2
  19. package/es/core/ui/components/querycondition/index.vue.d.ts +88 -0
  20. package/es/core/ui/components/querycondition/moreChoose.vue.d.ts +30 -0
  21. package/es/core/ui/components/querycondition/renderComp.vue.d.ts +9 -0
  22. package/es/core/ui/components/querycondition/style/css.d.ts +1 -0
  23. package/es/core/ui/components/querycondition/style/index.d.ts +1 -0
  24. package/es/core/ui/components/querycondition/type.d.ts +21 -0
  25. package/es/core/ui/components/querycondition/useComputed.d.ts +28 -0
  26. package/es/core/ui/components/selecttable/ClickOutside.d.ts +3 -0
  27. package/es/core/ui/components/selecttable/index.vue.d.ts +190 -0
  28. package/es/core/ui/components/selecttable/renderCol.vue.d.ts +21 -0
  29. package/es/core/ui/components/selecttable/style/css.d.ts +1 -0
  30. package/es/core/ui/components/selecttable/style/index.d.ts +1 -0
  31. package/es/core/ui/components/selecttable/type.d.ts +56 -0
  32. package/es/core/ui/components/selecttable/useVirtualized.d.ts +11 -0
  33. package/es/core/utils/comm/gloabdata.d.ts +24 -0
  34. package/es/core/utils/comm/index.d.ts +1 -0
  35. package/es/index.mjs +2 -1
  36. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/de-DE.mjs +19 -1
  37. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/en-US.mjs +20 -2
  38. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/es-ES.mjs +19 -1
  39. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/fr-FR.mjs +19 -1
  40. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/it-IT.mjs +19 -1
  41. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ja-JP.mjs +19 -1
  42. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ko-KR.mjs +19 -1
  43. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/nb-NO.mjs +19 -1
  44. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/pt-BR.mjs +19 -1
  45. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ru-RU.mjs +19 -1
  46. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/th-TH.mjs +19 -1
  47. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/vi-VN.mjs +19 -1
  48. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-CHT.mjs +19 -1
  49. package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-CN.mjs +18 -0
  50. package/es/packages/core/index.mjs +2 -1
  51. package/es/packages/core/ui/components/index.mjs +18 -1
  52. package/es/packages/core/ui/components/querycondition/index.vue.mjs +5 -0
  53. package/es/packages/core/ui/components/querycondition/index.vue2.mjs +521 -0
  54. package/es/packages/core/ui/components/querycondition/moreChoose.vue.mjs +5 -0
  55. package/es/packages/core/ui/components/querycondition/moreChoose.vue2.mjs +237 -0
  56. package/es/packages/core/ui/components/querycondition/renderComp.vue.mjs +5 -0
  57. package/es/packages/core/ui/components/querycondition/renderComp.vue2.mjs +23 -0
  58. package/es/packages/core/ui/components/querycondition/style/css.mjs +1 -0
  59. package/es/packages/core/ui/components/querycondition/style/index.mjs +1 -0
  60. package/es/packages/core/ui/components/querycondition/type.mjs +1 -0
  61. package/es/packages/core/ui/components/querycondition/useComputed.mjs +104 -0
  62. package/es/packages/core/ui/components/selecttable/ClickOutside.mjs +69 -0
  63. package/es/packages/core/ui/components/selecttable/index.vue.mjs +5 -0
  64. package/es/packages/core/ui/components/selecttable/index.vue2.mjs +816 -0
  65. package/es/packages/core/ui/components/selecttable/renderCol.vue.mjs +5 -0
  66. package/es/packages/core/ui/components/selecttable/renderCol.vue2.mjs +28 -0
  67. package/es/packages/core/ui/components/selecttable/style/css.mjs +1 -0
  68. package/es/packages/core/ui/components/selecttable/style/index.mjs +1 -0
  69. package/es/packages/core/ui/components/selecttable/type.mjs +1 -0
  70. package/es/packages/core/ui/components/selecttable/useVirtualized.mjs +67 -0
  71. package/es/packages/core/utils/comm/gloabdata.mjs +29 -0
  72. package/es/packages/core/utils/comm/index.mjs +1 -0
  73. package/es/packages/core/utils/index.mjs +1 -0
  74. package/index.js +2194 -66
  75. package/index.min.js +30 -29
  76. package/index.min.mjs +27 -26
  77. package/index.mjs +2188 -68
  78. package/lib/_virtual/de-DE.js +1 -1
  79. package/lib/_virtual/en-US.js +1 -1
  80. package/lib/_virtual/es-ES.js +1 -1
  81. package/lib/_virtual/fr-FR.js +1 -1
  82. package/lib/_virtual/it-IT.js +1 -1
  83. package/lib/_virtual/ja-JP.js +1 -1
  84. package/lib/_virtual/ko-KR.js +1 -1
  85. package/lib/_virtual/nb-NO.js +1 -1
  86. package/lib/_virtual/pt-BR.js +1 -1
  87. package/lib/_virtual/ru-RU.js +1 -1
  88. package/lib/_virtual/th-TH.js +1 -1
  89. package/lib/_virtual/vi-VN.js +1 -1
  90. package/lib/_virtual/zh-CN.js +1 -1
  91. package/lib/_virtual/zh-HK.js +1 -1
  92. package/lib/_virtual/zh-TW.js +1 -1
  93. package/lib/component.js +6 -1
  94. package/lib/core/hook/useVxeTableOptionsHook.d.ts +39 -6
  95. package/lib/core/ui/components/index.d.ts +807 -2
  96. package/lib/core/ui/components/querycondition/index.vue.d.ts +88 -0
  97. package/lib/core/ui/components/querycondition/moreChoose.vue.d.ts +30 -0
  98. package/lib/core/ui/components/querycondition/renderComp.vue.d.ts +9 -0
  99. package/lib/core/ui/components/querycondition/style/css.d.ts +1 -0
  100. package/lib/core/ui/components/querycondition/style/index.d.ts +1 -0
  101. package/lib/core/ui/components/querycondition/type.d.ts +21 -0
  102. package/lib/core/ui/components/querycondition/useComputed.d.ts +28 -0
  103. package/lib/core/ui/components/selecttable/ClickOutside.d.ts +3 -0
  104. package/lib/core/ui/components/selecttable/index.vue.d.ts +190 -0
  105. package/lib/core/ui/components/selecttable/renderCol.vue.d.ts +21 -0
  106. package/lib/core/ui/components/selecttable/style/css.d.ts +1 -0
  107. package/lib/core/ui/components/selecttable/style/index.d.ts +1 -0
  108. package/lib/core/ui/components/selecttable/type.d.ts +56 -0
  109. package/lib/core/ui/components/selecttable/useVirtualized.d.ts +11 -0
  110. package/lib/core/utils/comm/gloabdata.d.ts +24 -0
  111. package/lib/core/utils/comm/index.d.ts +1 -0
  112. package/lib/index.js +9 -0
  113. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/de-DE.js +19 -1
  114. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/en-US.js +20 -2
  115. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/es-ES.js +19 -1
  116. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/fr-FR.js +19 -1
  117. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/it-IT.js +19 -1
  118. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ja-JP.js +19 -1
  119. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ko-KR.js +19 -1
  120. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/nb-NO.js +19 -1
  121. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/pt-BR.js +19 -1
  122. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/ru-RU.js +19 -1
  123. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/th-TH.js +19 -1
  124. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/vi-VN.js +19 -1
  125. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-CHT.js +19 -1
  126. package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-CN.js +18 -0
  127. package/lib/packages/core/index.js +9 -0
  128. package/lib/packages/core/ui/components/index.js +22 -0
  129. package/lib/packages/core/ui/components/querycondition/index.vue.js +9 -0
  130. package/lib/packages/core/ui/components/querycondition/index.vue2.js +525 -0
  131. package/lib/packages/core/ui/components/querycondition/moreChoose.vue.js +9 -0
  132. package/lib/packages/core/ui/components/querycondition/moreChoose.vue2.js +241 -0
  133. package/lib/packages/core/ui/components/querycondition/renderComp.vue.js +9 -0
  134. package/lib/packages/core/ui/components/querycondition/renderComp.vue2.js +27 -0
  135. package/lib/packages/core/ui/components/querycondition/style/css.js +4 -0
  136. package/lib/packages/core/ui/components/querycondition/style/index.js +4 -0
  137. package/lib/packages/core/ui/components/querycondition/type.js +2 -0
  138. package/lib/packages/core/ui/components/querycondition/useComputed.js +106 -0
  139. package/lib/packages/core/ui/components/selecttable/ClickOutside.js +73 -0
  140. package/lib/packages/core/ui/components/selecttable/index.vue.js +9 -0
  141. package/lib/packages/core/ui/components/selecttable/index.vue2.js +820 -0
  142. package/lib/packages/core/ui/components/selecttable/renderCol.vue.js +9 -0
  143. package/lib/packages/core/ui/components/selecttable/renderCol.vue2.js +32 -0
  144. package/lib/packages/core/ui/components/selecttable/style/css.js +4 -0
  145. package/lib/packages/core/ui/components/selecttable/style/index.js +4 -0
  146. package/lib/packages/core/ui/components/selecttable/type.js +2 -0
  147. package/lib/packages/core/ui/components/selecttable/useVirtualized.js +69 -0
  148. package/lib/packages/core/utils/comm/gloabdata.js +33 -0
  149. package/lib/packages/core/utils/comm/index.js +4 -0
  150. package/lib/packages/core/utils/index.js +4 -0
  151. package/package.json +1 -1
  152. package/theme-chalk/src/query-condition.scss +118 -0
  153. package/theme-chalk/src/select-table.scss +71 -0
  154. package/theme-chalk/t-query-condition.css +1 -0
  155. package/theme-chalk/t-select-table.css +1 -0
  156. /package/es/{component.css → make-installer.css} +0 -0
  157. /package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-HK.mjs +0 -0
  158. /package/es/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-TW.mjs +0 -0
  159. /package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-HK.js +0 -0
  160. /package/lib/node_modules/.pnpm/{vxe-table@4.14.2_vue@3.5.17_typescript@5.8.3_ → vxe-table@4.14.4_vue@3.5.17_typescript@5.8.3_}/node_modules/vxe-table/lib/locale/lang/zh-TW.js +0 -0
@@ -0,0 +1,820 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ require('../querycondition/index.vue.js');
7
+ require('./renderCol.vue.js');
8
+ var elementPlus = require('element-plus');
9
+ var ClickOutside = require('./ClickOutside.js');
10
+ var useVirtualized = require('./useVirtualized.js');
11
+ var index_vue_vue_type_script_setup_true_lang = require('../querycondition/index.vue2.js');
12
+ var renderCol_vue_vue_type_script_setup_true_lang = require('./renderCol.vue2.js');
13
+
14
+ const _hoisted_1 = {
15
+ key: 0,
16
+ class: "table_query_condition"
17
+ };
18
+ const _hoisted_2 = ["element-loading-text"];
19
+ const _hoisted_3 = { key: 2 };
20
+ const _hoisted_4 = {
21
+ key: 0,
22
+ class: "fm-table-select__page"
23
+ };
24
+ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
25
+ ...{
26
+ name: "TSelectTable"
27
+ },
28
+ __name: "index",
29
+ props: {
30
+ modelValue: { default: void 0 },
31
+ inputValue: { default: void 0 },
32
+ defaultSelectVal: { default: () => [] },
33
+ radioSelectValLabel: { default: "" },
34
+ table: { default: () => ({
35
+ data: [],
36
+ currentPage: 1,
37
+ pageSize: 10,
38
+ total: 0
39
+ }) },
40
+ keywords: { default: () => ({
41
+ value: "value",
42
+ label: "label"
43
+ }) },
44
+ value: {},
45
+ columns: { default: () => [] },
46
+ multiple: { type: Boolean, default: false },
47
+ filterable: { type: Boolean, default: true },
48
+ remote: { type: Boolean, default: false },
49
+ remoteMethod: { type: Function, default: void 0 },
50
+ filterMethod: { type: Function, default: void 0 },
51
+ isShowInput: { type: Boolean, default: false },
52
+ inputAttr: { default: () => ({}) },
53
+ inputWidth: { default: 550 },
54
+ selectWidth: { default: 550 },
55
+ tableWidth: { default: 550 },
56
+ isShowQuery: { type: Boolean, default: false },
57
+ isShowBlurBtn: { type: Boolean, default: false },
58
+ btnBind: { default: () => ({ btnTxt: "\u5173\u95ED\u4E0B\u62C9\u6846" }) },
59
+ align: { default: "center" },
60
+ reserveSelection: { type: Boolean, default: true },
61
+ selectable: { type: Function, default: void 0 },
62
+ multipleFixed: { type: [String, Boolean], default: true },
63
+ radioTxt: { default: "\u5355\u9009" },
64
+ radioFixed: { type: [String, Boolean], default: true },
65
+ tableSize: { default: "default" },
66
+ border: { type: Boolean, default: true },
67
+ isShowFirstColumn: { type: Boolean, default: true },
68
+ useVirtual: { type: Boolean, default: false },
69
+ virtualShowSize: { default: 30 },
70
+ isShowPagination: { type: Boolean, default: false },
71
+ paginationSize: { default: "small" },
72
+ selfExpanded: { type: Boolean, default: false },
73
+ isClearQuery: { type: Boolean, default: false },
74
+ isRadioEchoLabel: { type: Boolean, default: true },
75
+ defaultValIsOpenRadioChange: { type: Boolean, default: false },
76
+ radioSameIsCancel: { type: Boolean, default: true },
77
+ rowClickRadio: { type: Boolean, default: true },
78
+ isKeyup: { type: Boolean, default: false },
79
+ isExpanded: { type: Boolean, default: false },
80
+ multipleDisableDelete: { type: Boolean, default: true },
81
+ tableLoading: { type: Boolean, default: false },
82
+ loadingTxt: { default: "\u52A0\u8F7D\u4E2D..." }
83
+ },
84
+ emits: ["page-change", "selectionChange", "radioChange", "update:inputValue", "input-focus", "input-blur", "input-clear", "input-click"],
85
+ setup(__props, { expose: __expose, emit: __emit }) {
86
+ const {
87
+ scrollContainerEl,
88
+ updateRenderedItemCache,
89
+ updateOffset,
90
+ getDom,
91
+ saveDATA,
92
+ getItemHeightFromCache
93
+ } = useVirtualized.useVirtualized();
94
+ const props = __props;
95
+ const vClickOutside = ClickOutside.default;
96
+ const emits = __emit;
97
+ const slots = vue.useSlots();
98
+ const isDefaultSelectVal = vue.ref(true);
99
+ const forbidden = vue.ref(true);
100
+ const isRadio = vue.ref(false);
101
+ const isQueryVisible = vue.ref(false);
102
+ const isVisible = vue.ref(false);
103
+ const radioVal = vue.ref("");
104
+ const isShowFirstRadio = vue.ref(props.isShowFirstColumn);
105
+ const selectDefaultLabel = vue.ref(props.modelValue);
106
+ const scrollTopNum = vue.ref(0);
107
+ let selectInputVal = vue.computed({
108
+ get() {
109
+ return props.inputValue;
110
+ },
111
+ set(val) {
112
+ emits("update:inputValue", val);
113
+ }
114
+ });
115
+ const state = vue.reactive({
116
+ defaultSelectValue: props.defaultSelectVal,
117
+ // 默认选中
118
+ tableData: props.table.data,
119
+ // table数据
120
+ defaultValue: props.value,
121
+ ids: [],
122
+ // 多选id集合
123
+ tabularMap: {}
124
+ // 存储下拉tale的所有name
125
+ });
126
+ const selectRef = vue.ref(null);
127
+ const selectTable = vue.ref(null);
128
+ const tQueryConditionRef = vue.ref(null);
129
+ const nowIndex = vue.ref(-1);
130
+ const tableDataLabelList = vue.computed(() => {
131
+ return state.tableData.map((item) => item[props.keywords.label]);
132
+ });
133
+ vue.watch(
134
+ () => props.table.data,
135
+ (val) => {
136
+ if (props.useVirtual) {
137
+ saveDATA.value = val;
138
+ updateRenderData(scrollTopNum.value);
139
+ } else {
140
+ state.tableData = val;
141
+ if (props.multiple && props.multipleDisableDelete) {
142
+ selectRef.value?.$el?.querySelectorAll(".el-tag").forEach((item) => {
143
+ if (tableDataLabelList.value?.includes(
144
+ item.querySelector(".el-select__tags-text")?.innerText
145
+ )) {
146
+ item.querySelector(".el-tag__close").style = "display: block";
147
+ } else {
148
+ item.querySelector(".el-tag__close").style = "display: none";
149
+ }
150
+ });
151
+ }
152
+ }
153
+ vue.nextTick(() => {
154
+ state.tableData && state.tableData.length > 0 && state.tableData.forEach((item) => {
155
+ state.tabularMap[item[props.keywords.value]] = item[props.keywords.label];
156
+ });
157
+ });
158
+ },
159
+ { deep: true }
160
+ );
161
+ vue.watch(
162
+ () => props.defaultSelectVal,
163
+ (val) => {
164
+ state.defaultSelectValue = val;
165
+ if (val.length > 0) {
166
+ if (props.multiple) {
167
+ if (isDefaultSelectVal.value) {
168
+ defaultSelect(state.defaultSelectValue);
169
+ }
170
+ } else {
171
+ defaultSelect(state.defaultSelectValue);
172
+ }
173
+ }
174
+ },
175
+ { deep: true }
176
+ );
177
+ vue.watch(
178
+ () => props.radioSelectValLabel,
179
+ (val) => {
180
+ if (val) findLabel();
181
+ },
182
+ { deep: true }
183
+ );
184
+ vue.onMounted(() => {
185
+ if (state.defaultSelectValue && state.defaultSelectValue.length > 0 && isDefaultSelectVal.value) {
186
+ defaultSelect(state.defaultSelectValue);
187
+ }
188
+ if (props.selfExpanded) {
189
+ selectRef.value.expanded = true;
190
+ }
191
+ if (props.useVirtual) {
192
+ saveDATA.value = props.table.data;
193
+ isShowFirstRadio.value = false;
194
+ getDom(props);
195
+ scrollContainerEl.value?.addEventListener("scroll", handleScroll);
196
+ }
197
+ if (props.radioSelectValLabel) findLabel();
198
+ });
199
+ const updateRenderData = (scrollTop) => {
200
+ let startIndex = 0;
201
+ let offsetHeight = 0;
202
+ for (let i = 0; i < saveDATA.value.length; i++) {
203
+ offsetHeight += getItemHeightFromCache(i);
204
+ if (offsetHeight >= scrollTop) {
205
+ startIndex = i;
206
+ break;
207
+ }
208
+ }
209
+ state.tableData = saveDATA.value.slice(startIndex, startIndex + props.virtualShowSize);
210
+ updateRenderedItemCache(startIndex);
211
+ updateOffset(offsetHeight - getItemHeightFromCache(startIndex));
212
+ };
213
+ const handleScroll = (e) => {
214
+ scrollTopNum.value = e.target.scrollTop;
215
+ updateRenderData(scrollTopNum.value);
216
+ };
217
+ vue.onBeforeUnmount(() => {
218
+ if (props.useVirtual) {
219
+ scrollContainerEl.value?.removeEventListener("scroll", handleScroll);
220
+ }
221
+ });
222
+ vue.onUpdated(() => {
223
+ if (props.isShowQuery) {
224
+ selectTable.value.doLayout();
225
+ }
226
+ });
227
+ const visibleChange = (visible) => {
228
+ isVisible.value = visible;
229
+ if (isQueryVisible.value) {
230
+ selectRef.value.expanded = true;
231
+ }
232
+ if (visible) {
233
+ if (state.defaultSelectValue && state.defaultSelectValue.length > 0 && isDefaultSelectVal.value) {
234
+ defaultSelect(state.defaultSelectValue);
235
+ }
236
+ initTableData();
237
+ if (props.useVirtual) {
238
+ saveDATA.value = props.table.data;
239
+ updateRenderData(scrollTopNum.value);
240
+ }
241
+ } else {
242
+ if (tQueryConditionRef.value && props.isShowQuery && props.isClearQuery && !selectRef.value.expanded && !props.selfExpanded) {
243
+ tQueryConditionRef.value?.resetData();
244
+ }
245
+ findLabel();
246
+ filterMethodHandle("");
247
+ if (props.useVirtual) {
248
+ state.tableData = [];
249
+ saveDATA.value = [];
250
+ }
251
+ }
252
+ if (props.selfExpanded) {
253
+ selectRef.value.expanded = true;
254
+ }
255
+ };
256
+ const handleEvent = () => {
257
+ selectRef.value.expanded = true;
258
+ };
259
+ const queryVisibleChange = (val) => {
260
+ isQueryVisible.value = val;
261
+ };
262
+ const closeBox = () => {
263
+ if (tQueryConditionRef.value && props.isShowQuery) {
264
+ selectRef.value.expanded = true;
265
+ Object.values(tQueryConditionRef.value?.props?.opts).map((val) => {
266
+ if (val.comp.includes("select") || val.comp.includes("picker") || val.comp.includes("date")) {
267
+ val.eventHandle = {
268
+ "visible-change": ($event) => queryVisibleChange($event)
269
+ };
270
+ selectRef.value.expanded = true;
271
+ }
272
+ });
273
+ if (isVisible.value && props.isShowQuery) {
274
+ selectRef.value.expanded = true;
275
+ } else {
276
+ selectRef.value.expanded = false;
277
+ }
278
+ }
279
+ };
280
+ const attrs = vue.useAttrs();
281
+ const selectKeyup = (e) => {
282
+ if (!props.multiple && props.isKeyup && state.tableData.length > 0) {
283
+ const newIndex = nowIndex.value * 1;
284
+ const nextIndex = e.keyCode === 40 ? newIndex + 1 : e.keyCode === 38 ? newIndex - 1 : newIndex;
285
+ const rowHeight = selectTable.value.$el.querySelectorAll(".el-table__row")[0]?.clientHeight || 0;
286
+ const headerHeight = selectTable.value.$el.querySelectorAll(".el-table__header")[0]?.clientHeight || 0;
287
+ const attrsMaxHeight = (typeof (attrs["max-height"] || attrs["maxHeight"]) === "number" ? attrs["max-height"] || attrs["maxHeight"] : parseFloat(attrs["max-height"] || attrs["maxHeight"])) || 0;
288
+ const maxHeight = attrsMaxHeight ? attrsMaxHeight - headerHeight : 0;
289
+ const height = rowHeight * (nextIndex + 3);
290
+ const scrollTop = height > maxHeight ? height - maxHeight : 0;
291
+ if (attrsMaxHeight) {
292
+ selectTable.value.setScrollTop(scrollTop);
293
+ }
294
+ const validNextIndex = Math.max(0, Math.min(nextIndex, state.tableData.length - 1));
295
+ selectTable.value.setCurrentRow(state.tableData[validNextIndex]);
296
+ nowIndex.value = validNextIndex;
297
+ if (e.keyCode === 13) {
298
+ rowClick(state.tableData[validNextIndex]);
299
+ }
300
+ }
301
+ };
302
+ const findLabel = () => {
303
+ vue.nextTick(() => {
304
+ if (props.multiple) {
305
+ selectRef.value.selected?.forEach((item) => {
306
+ item.currentLabel = item.value;
307
+ });
308
+ } else {
309
+ if (props.isRadioEchoLabel) {
310
+ selectDefaultLabel.value = state.defaultValue && state.defaultValue[props.keywords.label] || props.radioSelectValLabel;
311
+ } else {
312
+ selectDefaultLabel.value = state.defaultValue && state.defaultValue[props.keywords.label] || "";
313
+ }
314
+ }
315
+ });
316
+ };
317
+ const handlesCurrentChange = (val) => {
318
+ if (props.multiple) {
319
+ if (!props.reserveSelection) {
320
+ clear();
321
+ }
322
+ } else {
323
+ reset();
324
+ }
325
+ emits("page-change", val);
326
+ };
327
+ const reset = () => {
328
+ if (!props.multiple) {
329
+ selectTable.value.setCurrentRow(-1);
330
+ nowIndex.value = -1;
331
+ radioVal.value = "";
332
+ isDefaultSelectVal.value = true;
333
+ forbidden.value = false;
334
+ }
335
+ };
336
+ const defaultSelect = (defaultSelectVal) => {
337
+ if (props.multiple) {
338
+ const multipleList = defaultSelectVal.map((val) => state.tableData.find((row) => row[props.keywords.value] === val)).filter(Boolean);
339
+ setTimeout(() => {
340
+ state.defaultValue = multipleList.map((item) => item[props.keywords.label]);
341
+ multipleList.forEach((row) => {
342
+ selectTable.value.toggleRowSelection(row, true);
343
+ });
344
+ selectRef.value?.selected?.forEach((item) => {
345
+ item.currentLabel = item.value;
346
+ });
347
+ }, 0);
348
+ } else {
349
+ setTimeout(() => {
350
+ const row = state.tableData.find((item) => item[props.keywords.value] === defaultSelectVal[0]);
351
+ if (row) {
352
+ radioVal.value = state.tableData.indexOf(row) + 1;
353
+ state.defaultValue = row;
354
+ selectDefaultLabel.value = row[props.keywords.label];
355
+ if (!props.defaultValIsOpenRadioChange) {
356
+ emits("radioChange", row, row[props.keywords.value]);
357
+ }
358
+ }
359
+ }, 0);
360
+ }
361
+ };
362
+ const handlesSelectionChange = (val) => {
363
+ isDefaultSelectVal.value = false;
364
+ state.defaultValue = val.map((item) => item[props.keywords.label]);
365
+ state.ids = val.map((item) => item[props.keywords.value]);
366
+ if (val.length === 0) {
367
+ isDefaultSelectVal.value = true;
368
+ state.defaultSelectValue = [];
369
+ }
370
+ emits("selectionChange", val, state.ids);
371
+ };
372
+ const getRowClassName = ({ row }) => {
373
+ if (!props.multiple && JSON.stringify(row) === JSON.stringify(state.defaultValue)) {
374
+ return "selected_row_style";
375
+ }
376
+ return "";
377
+ };
378
+ const getRowKey = (row) => {
379
+ return row[props.keywords.value];
380
+ };
381
+ const filterMethodHandle = (val) => {
382
+ if (!props.filterable) return;
383
+ if (props.filterable && props.remote && typeof props.remoteMethod === "function") {
384
+ props.remoteMethod(val);
385
+ return;
386
+ }
387
+ const tableData = JSON.parse(JSON.stringify(props.table?.data));
388
+ if (!tableData || tableData.length === 0) return;
389
+ if (!props.multiple) {
390
+ if (val) {
391
+ radioVal.value = "";
392
+ } else {
393
+ const defaultIndex = tableData.findIndex(
394
+ (item) => item[props.keywords.label] === selectDefaultLabel.value
395
+ );
396
+ if (defaultIndex !== -1) {
397
+ radioVal.value = defaultIndex + 1;
398
+ }
399
+ }
400
+ }
401
+ state.tableData = tableData.filter((item) => {
402
+ return item[props.keywords.label]?.includes(val);
403
+ });
404
+ if (selectDefaultLabel.value) {
405
+ const defaultIndex = state.tableData.findIndex(
406
+ (item) => item[props.keywords.label] === selectDefaultLabel.value
407
+ );
408
+ if (defaultIndex !== -1) {
409
+ radioVal.value = defaultIndex + 1;
410
+ }
411
+ }
412
+ };
413
+ const initTableData = () => {
414
+ vue.nextTick(() => {
415
+ if (props.multiple) {
416
+ state.defaultValue?.forEach((row) => {
417
+ const matchedRow = state.tableData.find(
418
+ (item) => item[props.keywords.value] === row[props.keywords.value]
419
+ );
420
+ if (matchedRow) {
421
+ selectTable.value.toggleRowSelection(matchedRow, true);
422
+ }
423
+ });
424
+ } else {
425
+ const matchedRow = state.tableData?.find(
426
+ (item) => item[props.keywords.value] === selectDefaultLabel.value
427
+ );
428
+ if (matchedRow) {
429
+ selectTable.value.setCurrentRow(matchedRow);
430
+ }
431
+ }
432
+ });
433
+ };
434
+ const copyToClipboard = async (text) => {
435
+ if (typeof text !== "string" || text.trim() === "") {
436
+ throw new Error("\u65E0\u6548\u7684\u590D\u5236\u5185\u5BB9");
437
+ }
438
+ try {
439
+ await navigator.clipboard.writeText(text);
440
+ } catch (error) {
441
+ if (error.name === "NotAllowedError" || error.name === "SecurityError") {
442
+ throw new Error("\u590D\u5236\u5931\u8D25\uFF1A\u6743\u9650\u88AB\u62D2\u7EDD");
443
+ } else {
444
+ throw new Error("\u590D\u5236\u5931\u8D25\uFF1A\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u6216\u53D1\u751F\u672A\u77E5\u9519\u8BEF");
445
+ }
446
+ }
447
+ };
448
+ const showMessage = (type, message) => {
449
+ if (type === "success") {
450
+ elementPlus.ElMessage.success(message);
451
+ } else {
452
+ elementPlus.ElMessage.error(message);
453
+ }
454
+ };
455
+ const cellDblclick = async (row, column) => {
456
+ const value = row[column.property];
457
+ try {
458
+ await copyToClipboard(String(value));
459
+ showMessage("success", "\u590D\u5236\u6210\u529F");
460
+ } catch (error) {
461
+ showMessage("error", error.message || "\u590D\u5236\u5931\u8D25");
462
+ }
463
+ };
464
+ const radioChangeHandle = (event, row, index) => {
465
+ event.preventDefault();
466
+ if (row.isRadioDisabled) return;
467
+ isDefaultSelectVal.value = false;
468
+ radioClick(row, index);
469
+ };
470
+ const isForbidden = () => {
471
+ forbidden.value = false;
472
+ setTimeout(() => {
473
+ forbidden.value = true;
474
+ }, 0);
475
+ };
476
+ const radioClick = (row, index) => {
477
+ forbidden.value = !forbidden.value;
478
+ if (radioVal.value === index) {
479
+ if (!props.radioSameIsCancel) return;
480
+ clear();
481
+ } else {
482
+ updateState(row, index);
483
+ }
484
+ if (props.isExpanded && state.defaultValue) {
485
+ selectDefaultLabel.value = state.defaultValue[props.keywords.label] || "";
486
+ selectRef.value.expanded = true;
487
+ } else {
488
+ blur();
489
+ }
490
+ };
491
+ const updateState = (row, index) => {
492
+ isForbidden();
493
+ radioVal.value = index;
494
+ state.defaultValue = row;
495
+ emits("radioChange", row, row[props.keywords.value]);
496
+ };
497
+ const rowClick = async (row) => {
498
+ if (row.isRadioDisabled) return;
499
+ if (!props.rowClickRadio) return;
500
+ if (!props.multiple) {
501
+ const rowIndex = props.table?.data.findIndex(
502
+ (item) => item[props.keywords.value] === row[props.keywords.value]
503
+ );
504
+ if (rowIndex !== -1) {
505
+ isDefaultSelectVal.value = false;
506
+ await radioClick(row, rowIndex + 1);
507
+ if (radioVal.value) {
508
+ isRadio.value = true;
509
+ } else {
510
+ isRadio.value = false;
511
+ }
512
+ }
513
+ }
514
+ };
515
+ const removeTag = (tag) => {
516
+ const row = state.tableData.find(
517
+ (item) => item[props.keywords.label] === tag
518
+ );
519
+ row && selectTable.value.toggleRowSelection(row, false);
520
+ isDefaultSelectVal.value = true;
521
+ };
522
+ const clear = () => {
523
+ const resetDefaultState = () => {
524
+ isDefaultSelectVal.value = true;
525
+ state.defaultSelectValue = [];
526
+ state.defaultValue = props.multiple ? [] : null;
527
+ };
528
+ if (!selectTable.value) {
529
+ console.warn("selectTable.value is not initialized");
530
+ return;
531
+ }
532
+ if (props.multiple === true) {
533
+ try {
534
+ selectTable.value.clearSelection();
535
+ } catch (error) {
536
+ console.error("Failed to clear selection:", error);
537
+ }
538
+ resetDefaultState();
539
+ } else if (props.multiple === false) {
540
+ try {
541
+ selectTable.value.setCurrentRow(-1);
542
+ } catch (error) {
543
+ console.error("Failed to set current row:", error);
544
+ }
545
+ nowIndex.value = -1;
546
+ radioVal.value = "";
547
+ forbidden.value = false;
548
+ selectDefaultLabel.value = null;
549
+ resetDefaultState();
550
+ emits("radioChange", null, null);
551
+ } else {
552
+ console.warn("Invalid value for props.multiple:", props.multiple);
553
+ }
554
+ };
555
+ const blur = () => {
556
+ selectRef.value.blur();
557
+ };
558
+ const focus = () => {
559
+ selectRef.value.focus();
560
+ };
561
+ const isShowSlot = (name) => {
562
+ return Object.keys(slots).includes(name);
563
+ };
564
+ __expose({
565
+ focus,
566
+ blur,
567
+ clear,
568
+ props,
569
+ state,
570
+ tQueryConditionRef,
571
+ selectRef,
572
+ selectTable
573
+ });
574
+ return (_ctx, _cache) => {
575
+ const _component_el_input = vue.resolveComponent("el-input");
576
+ const _component_el_button = vue.resolveComponent("el-button");
577
+ const _component_el_table_column = vue.resolveComponent("el-table-column");
578
+ const _component_el_radio = vue.resolveComponent("el-radio");
579
+ const _component_el_table = vue.resolveComponent("el-table");
580
+ const _component_el_pagination = vue.resolveComponent("el-pagination");
581
+ const _component_el_select = vue.resolveComponent("el-select");
582
+ const _directive_loading = vue.resolveDirective("loading");
583
+ return _ctx.isShowInput ? (vue.openBlock(), vue.createBlock(_component_el_input, vue.mergeProps({
584
+ key: 0,
585
+ modelValue: vue.unref(selectInputVal),
586
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(selectInputVal) ? selectInputVal.value = $event : selectInputVal = $event)
587
+ }, { clearable: true, ..._ctx.inputAttr }, {
588
+ onFocus: _cache[1] || (_cache[1] = () => emits("input-focus")),
589
+ onBlur: _cache[2] || (_cache[2] = () => emits("input-blur")),
590
+ onClick: _cache[3] || (_cache[3] = () => emits("input-click")),
591
+ onClear: _cache[4] || (_cache[4] = () => emits("input-clear")),
592
+ style: { width: _ctx.inputWidth ? `${_ctx.inputWidth}px` : "100%" }
593
+ }), vue.createSlots({
594
+ _: 2
595
+ /* DYNAMIC */
596
+ }, [
597
+ vue.renderList(vue.unref(slots), (_index, name) => {
598
+ return {
599
+ name,
600
+ fn: vue.withCtx((data) => [
601
+ vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(data)))
602
+ ])
603
+ };
604
+ })
605
+ ]), 1040, ["modelValue", "style"])) : vue.withDirectives((vue.openBlock(), vue.createBlock(_component_el_select, vue.mergeProps({
606
+ key: 1,
607
+ ref_key: "selectRef",
608
+ ref: selectRef,
609
+ "model-value": _ctx.multiple ? state.defaultValue : selectDefaultLabel.value,
610
+ "popper-class": "fm-select-table",
611
+ style: { width: _ctx.selectWidth ? `${_ctx.selectWidth}px` : "100%" },
612
+ "value-key": _ctx.keywords.value,
613
+ "filter-method": _ctx.filterMethod || filterMethodHandle,
614
+ onVisibleChange: visibleChange,
615
+ onRemoveTag: removeTag,
616
+ onClear: clear,
617
+ onKeyup: selectKeyup
618
+ }, { clearable: true, multiple: _ctx.multiple, filterable: _ctx.filterable, remote: _ctx.remote, remoteMethod: _ctx.remoteMethod, ..._ctx.$attrs }), {
619
+ empty: vue.withCtx(() => [
620
+ vue.createElementVNode(
621
+ "div",
622
+ {
623
+ class: "fm-table-select__table",
624
+ style: vue.normalizeStyle({ width: _ctx.tableWidth ? `${_ctx.tableWidth}px` : "100%" })
625
+ },
626
+ [
627
+ _ctx.isShowQuery ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
628
+ vue.createVNode(
629
+ index_vue_vue_type_script_setup_true_lang.default,
630
+ vue.mergeProps({
631
+ ref_key: "tQueryConditionRef",
632
+ ref: tQueryConditionRef,
633
+ boolEnter: false,
634
+ onHandleEvent: handleEvent
635
+ }, _ctx.$attrs),
636
+ vue.createSlots({
637
+ _: 2
638
+ /* DYNAMIC */
639
+ }, [
640
+ vue.renderList(vue.unref(slots), (_index, name) => {
641
+ return {
642
+ name,
643
+ fn: vue.withCtx((data) => [
644
+ vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(data)))
645
+ ])
646
+ };
647
+ }),
648
+ _ctx.isShowBlurBtn ? {
649
+ name: "querybar",
650
+ fn: vue.withCtx(() => [
651
+ vue.createVNode(
652
+ _component_el_button,
653
+ vue.mergeProps({ type: "danger", ..._ctx.btnBind }, { onClick: blur }),
654
+ {
655
+ default: vue.withCtx(() => [
656
+ vue.createTextVNode(
657
+ vue.toDisplayString(_ctx.btnBind.btnTxt || "\u5173\u95ED\u4E0B\u62C9\u6846"),
658
+ 1
659
+ /* TEXT */
660
+ )
661
+ ]),
662
+ _: 1
663
+ /* STABLE */
664
+ },
665
+ 16
666
+ /* FULL_PROPS */
667
+ ),
668
+ vue.renderSlot(_ctx.$slots, "querybar")
669
+ ]),
670
+ key: "0"
671
+ } : void 0
672
+ ]),
673
+ 1040
674
+ /* FULL_PROPS, DYNAMIC_SLOTS */
675
+ )
676
+ ])) : vue.createCommentVNode("v-if", true),
677
+ vue.createElementVNode(
678
+ "div",
679
+ {
680
+ class: "header_wrap",
681
+ style: vue.normalizeStyle({ paddingBottom: isShowSlot("toolbar") ? "10px" : 0 })
682
+ },
683
+ [
684
+ vue.renderSlot(_ctx.$slots, "toolbar")
685
+ ],
686
+ 4
687
+ /* STYLE */
688
+ ),
689
+ vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
690
+ class: "table_content",
691
+ "element-loading-text": _ctx.loadingTxt
692
+ }, [
693
+ vue.createVNode(_component_el_table, vue.mergeProps({
694
+ ref_key: "selectTable",
695
+ ref: selectTable,
696
+ data: state.tableData,
697
+ class: {
698
+ radioStyle: !_ctx.multiple,
699
+ highlightCurrentRow: isRadio.value,
700
+ keyUpStyle: _ctx.isKeyup,
701
+ fm_select_table_multiple: _ctx.useVirtual && _ctx.multiple,
702
+ fm_select_table_radio: _ctx.useVirtual && !_ctx.multiple
703
+ },
704
+ "row-class-name": getRowClassName,
705
+ "row-key": getRowKey,
706
+ onRowClick: rowClick,
707
+ onCellDblclick: cellDblclick,
708
+ onSelectionChange: handlesSelectionChange
709
+ }, { border: _ctx.border, size: _ctx.tableSize, "highlight-current-row": true, ..._ctx.$attrs }), {
710
+ default: vue.withCtx(() => [
711
+ _ctx.multiple ? (vue.openBlock(), vue.createBlock(_component_el_table_column, {
712
+ key: 0,
713
+ type: "selection",
714
+ width: _ctx.tableSize === "large" ? 65 : 55,
715
+ align: _ctx.align || "center",
716
+ "reserve-selection": _ctx.reserveSelection,
717
+ selectable: _ctx.selectable,
718
+ fixed: _ctx.multipleFixed
719
+ }, null, 8, ["width", "align", "reserve-selection", "selectable", "fixed"])) : vue.createCommentVNode("v-if", true),
720
+ !_ctx.multiple && isShowFirstRadio.value ? (vue.openBlock(), vue.createBlock(_component_el_table_column, {
721
+ key: 1,
722
+ type: "radio",
723
+ width: _ctx.tableSize === "large" ? 65 : 55,
724
+ label: _ctx.radioTxt,
725
+ fixed: _ctx.radioFixed,
726
+ align: _ctx.align || "center"
727
+ }, {
728
+ default: vue.withCtx((scope) => [
729
+ vue.createVNode(_component_el_radio, {
730
+ modelValue: radioVal.value,
731
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => radioVal.value = $event),
732
+ label: scope.$index + 1,
733
+ disabled: scope.row.isRadioDisabled,
734
+ onClick: vue.withModifiers(($event) => radioChangeHandle($event, scope.row, scope.$index + 1), ["stop"])
735
+ }, null, 8, ["modelValue", "label", "disabled", "onClick"])
736
+ ]),
737
+ _: 1
738
+ /* STABLE */
739
+ }, 8, ["width", "label", "fixed", "align"])) : vue.createCommentVNode("v-if", true),
740
+ (vue.openBlock(true), vue.createElementBlock(
741
+ vue.Fragment,
742
+ null,
743
+ vue.renderList(_ctx.columns, (item, index) => {
744
+ return vue.openBlock(), vue.createBlock(_component_el_table_column, vue.mergeProps({
745
+ key: index + "i",
746
+ type: item.type,
747
+ label: item.label,
748
+ prop: item.prop,
749
+ "min-width": item["min-width"] || item.minWidth,
750
+ width: item.width,
751
+ align: item.align || _ctx.align || "center",
752
+ fixed: item.fixed
753
+ }, { ref_for: true }, { "show-overflow-tooltip": true, ...item.bind }), {
754
+ default: vue.withCtx((scope) => [
755
+ vue.createCommentVNode(" render\u65B9\u5F0F "),
756
+ item.render ? (vue.openBlock(), vue.createBlock(renderCol_vue_vue_type_script_setup_true_lang.default, {
757
+ key: 0,
758
+ column: item,
759
+ row: scope.row,
760
+ render: item.render,
761
+ index: scope.$index
762
+ }, null, 8, ["column", "row", "render", "index"])) : vue.createCommentVNode("v-if", true),
763
+ vue.createCommentVNode(" \u4F5C\u7528\u57DF\u63D2\u69FD "),
764
+ item.slotName ? vue.renderSlot(_ctx.$slots, item.slotName, {
765
+ key: 1,
766
+ scope
767
+ }) : vue.createCommentVNode("v-if", true),
768
+ !item.render && !item.slotName ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
769
+ vue.createElementVNode(
770
+ "span",
771
+ null,
772
+ vue.toDisplayString(scope.row[item.prop]),
773
+ 1
774
+ /* TEXT */
775
+ )
776
+ ])) : vue.createCommentVNode("v-if", true)
777
+ ]),
778
+ _: 2
779
+ /* DYNAMIC */
780
+ }, 1040, ["type", "label", "prop", "min-width", "width", "align", "fixed"]);
781
+ }),
782
+ 128
783
+ /* KEYED_FRAGMENT */
784
+ )),
785
+ vue.renderSlot(_ctx.$slots, "default")
786
+ ]),
787
+ _: 3
788
+ /* FORWARDED */
789
+ }, 16, ["data", "class"]),
790
+ _ctx.isShowPagination ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
791
+ vue.createVNode(_component_el_pagination, vue.mergeProps({
792
+ "current-page": _ctx.table.currentPage,
793
+ "onUpdate:currentPage": _cache[6] || (_cache[6] = ($event) => _ctx.table.currentPage = $event),
794
+ "page-size": _ctx.table.pageSize,
795
+ "onUpdate:pageSize": _cache[7] || (_cache[7] = ($event) => _ctx.table.pageSize = $event),
796
+ onCurrentChange: handlesCurrentChange,
797
+ layout: "total, prev, pager, next, jumper",
798
+ "pager-count": _ctx.table["pager-count"] || 5,
799
+ total: _ctx.table.total
800
+ }, { background: true, size: _ctx.paginationSize || "small", ..._ctx.$attrs }), null, 16, ["current-page", "page-size", "pager-count", "total"])
801
+ ])) : vue.createCommentVNode("v-if", true)
802
+ ], 8, _hoisted_2)), [
803
+ [_directive_loading, _ctx.tableLoading]
804
+ ]),
805
+ vue.renderSlot(_ctx.$slots, "footer")
806
+ ],
807
+ 4
808
+ /* STYLE */
809
+ )
810
+ ]),
811
+ _: 3
812
+ /* FORWARDED */
813
+ }, 16, ["model-value", "style", "value-key", "filter-method"])), [
814
+ [vue.unref(vClickOutside), closeBox]
815
+ ]);
816
+ };
817
+ }
818
+ });
819
+
820
+ exports.default = _sfc_main;