@fmdevui/fm-dev 1.0.76 → 1.0.78

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 (85) hide show
  1. package/es/component.mjs +7 -2
  2. package/es/core/ui/components/index.d.ts +807 -2
  3. package/es/core/ui/components/querycondition/index.vue.d.ts +88 -0
  4. package/es/core/ui/components/querycondition/moreChoose.vue.d.ts +30 -0
  5. package/es/core/ui/components/querycondition/renderComp.vue.d.ts +9 -0
  6. package/es/core/ui/components/querycondition/style/css.d.ts +1 -0
  7. package/es/core/ui/components/querycondition/style/index.d.ts +1 -0
  8. package/es/core/ui/components/querycondition/type.d.ts +21 -0
  9. package/es/core/ui/components/querycondition/useComputed.d.ts +28 -0
  10. package/es/core/ui/components/selecttable/ClickOutside.d.ts +3 -0
  11. package/es/core/ui/components/selecttable/index.vue.d.ts +190 -0
  12. package/es/core/ui/components/selecttable/renderCol.vue.d.ts +21 -0
  13. package/es/core/ui/components/selecttable/style/css.d.ts +1 -0
  14. package/es/core/ui/components/selecttable/style/index.d.ts +1 -0
  15. package/es/core/ui/components/selecttable/type.d.ts +56 -0
  16. package/es/core/ui/components/selecttable/useVirtualized.d.ts +11 -0
  17. package/es/index.mjs +1 -1
  18. package/es/packages/core/index.mjs +1 -1
  19. package/es/packages/core/ui/components/index.mjs +18 -1
  20. package/es/packages/core/ui/components/querycondition/index.vue.mjs +5 -0
  21. package/es/packages/core/ui/components/querycondition/index.vue2.mjs +521 -0
  22. package/es/packages/core/ui/components/querycondition/moreChoose.vue.mjs +5 -0
  23. package/es/packages/core/ui/components/querycondition/moreChoose.vue2.mjs +237 -0
  24. package/es/packages/core/ui/components/querycondition/renderComp.vue.mjs +5 -0
  25. package/es/packages/core/ui/components/querycondition/renderComp.vue2.mjs +23 -0
  26. package/es/packages/core/ui/components/querycondition/style/css.mjs +1 -0
  27. package/es/packages/core/ui/components/querycondition/style/index.mjs +1 -0
  28. package/es/packages/core/ui/components/querycondition/type.mjs +1 -0
  29. package/es/packages/core/ui/components/querycondition/useComputed.mjs +104 -0
  30. package/es/packages/core/ui/components/selecttable/ClickOutside.mjs +69 -0
  31. package/es/packages/core/ui/components/selecttable/index.vue.mjs +5 -0
  32. package/es/packages/core/ui/components/selecttable/index.vue2.mjs +816 -0
  33. package/es/packages/core/ui/components/selecttable/renderCol.vue.mjs +5 -0
  34. package/es/packages/core/ui/components/selecttable/renderCol.vue2.mjs +28 -0
  35. package/es/packages/core/ui/components/selecttable/style/css.mjs +1 -0
  36. package/es/packages/core/ui/components/selecttable/style/index.mjs +1 -0
  37. package/es/packages/core/ui/components/selecttable/type.mjs +1 -0
  38. package/es/packages/core/ui/components/selecttable/useVirtualized.mjs +67 -0
  39. package/index.js +1897 -52
  40. package/index.min.js +30 -29
  41. package/index.min.mjs +27 -26
  42. package/index.mjs +1894 -54
  43. package/lib/component.js +6 -1
  44. package/lib/core/ui/components/index.d.ts +807 -2
  45. package/lib/core/ui/components/querycondition/index.vue.d.ts +88 -0
  46. package/lib/core/ui/components/querycondition/moreChoose.vue.d.ts +30 -0
  47. package/lib/core/ui/components/querycondition/renderComp.vue.d.ts +9 -0
  48. package/lib/core/ui/components/querycondition/style/css.d.ts +1 -0
  49. package/lib/core/ui/components/querycondition/style/index.d.ts +1 -0
  50. package/lib/core/ui/components/querycondition/type.d.ts +21 -0
  51. package/lib/core/ui/components/querycondition/useComputed.d.ts +28 -0
  52. package/lib/core/ui/components/selecttable/ClickOutside.d.ts +3 -0
  53. package/lib/core/ui/components/selecttable/index.vue.d.ts +190 -0
  54. package/lib/core/ui/components/selecttable/renderCol.vue.d.ts +21 -0
  55. package/lib/core/ui/components/selecttable/style/css.d.ts +1 -0
  56. package/lib/core/ui/components/selecttable/style/index.d.ts +1 -0
  57. package/lib/core/ui/components/selecttable/type.d.ts +56 -0
  58. package/lib/core/ui/components/selecttable/useVirtualized.d.ts +11 -0
  59. package/lib/index.js +5 -0
  60. package/lib/packages/core/index.js +5 -0
  61. package/lib/packages/core/ui/components/index.js +22 -0
  62. package/lib/packages/core/ui/components/querycondition/index.vue.js +9 -0
  63. package/lib/packages/core/ui/components/querycondition/index.vue2.js +525 -0
  64. package/lib/packages/core/ui/components/querycondition/moreChoose.vue.js +9 -0
  65. package/lib/packages/core/ui/components/querycondition/moreChoose.vue2.js +241 -0
  66. package/lib/packages/core/ui/components/querycondition/renderComp.vue.js +9 -0
  67. package/lib/packages/core/ui/components/querycondition/renderComp.vue2.js +27 -0
  68. package/lib/packages/core/ui/components/querycondition/style/css.js +4 -0
  69. package/lib/packages/core/ui/components/querycondition/style/index.js +4 -0
  70. package/lib/packages/core/ui/components/querycondition/type.js +2 -0
  71. package/lib/packages/core/ui/components/querycondition/useComputed.js +106 -0
  72. package/lib/packages/core/ui/components/selecttable/ClickOutside.js +73 -0
  73. package/lib/packages/core/ui/components/selecttable/index.vue.js +9 -0
  74. package/lib/packages/core/ui/components/selecttable/index.vue2.js +820 -0
  75. package/lib/packages/core/ui/components/selecttable/renderCol.vue.js +9 -0
  76. package/lib/packages/core/ui/components/selecttable/renderCol.vue2.js +32 -0
  77. package/lib/packages/core/ui/components/selecttable/style/css.js +4 -0
  78. package/lib/packages/core/ui/components/selecttable/style/index.js +4 -0
  79. package/lib/packages/core/ui/components/selecttable/type.js +2 -0
  80. package/lib/packages/core/ui/components/selecttable/useVirtualized.js +69 -0
  81. package/package.json +1 -1
  82. package/theme-chalk/src/query-condition.scss +118 -0
  83. package/theme-chalk/src/select-table.scss +71 -0
  84. package/theme-chalk/t-query-condition.css +1 -0
  85. package/theme-chalk/t-select-table.css +1 -0
package/index.js CHANGED
@@ -1,21 +1,21 @@
1
- /*! fm-dev v1.0.76 */
1
+ /*! fm-dev v1.0.78 */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('crypto'), require('url'), require('http'), require('https'), require('util'), require('stream'), require('assert'), require('zlib'), require('element-plus')) :
4
4
  typeof define === 'function' && define.amd ? define(['exports', 'vue', 'crypto', 'url', 'http', 'https', 'util', 'stream', 'assert', 'zlib', 'element-plus'], factory) :
5
5
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.FmPlus = {}, global.Vue, global.crypto, global.require$$0, global.require$$1, global.require$$2, global.util, global.stream, global.require$$4, global.zlib, global.ElementPlus));
6
6
  })(this, (function (exports, vue, crypto, require$$0, require$$1, require$$2, util, stream, require$$4, zlib, elementPlus) { 'use strict';
7
7
 
8
- const _hoisted_1$5 = { class: "fm-transfer-panel" };
9
- const _hoisted_2$3 = { class: "fm-transfer-panel__header" };
10
- const _hoisted_3$2 = { class: "fm-transfer-panel__body" };
11
- const _hoisted_4$2 = { class: "fm-transfer-buttons__item" };
12
- const _hoisted_5$1 = { class: "fm-transfer-buttons__item" };
8
+ const _hoisted_1$7 = { class: "fm-transfer-panel" };
9
+ const _hoisted_2$5 = { class: "fm-transfer-panel__header" };
10
+ const _hoisted_3$4 = { class: "fm-transfer-panel__body" };
11
+ const _hoisted_4$4 = { class: "fm-transfer-buttons__item" };
12
+ const _hoisted_5$2 = { class: "fm-transfer-buttons__item" };
13
13
  const _hoisted_6 = { class: "fm-transfer-buttons__item" };
14
14
  const _hoisted_7 = { class: "fm-transfer-buttons__item" };
15
15
  const _hoisted_8 = { class: "fm-transfer-panel" };
16
16
  const _hoisted_9 = { class: "fm-transfer-panel__header" };
17
17
  const _hoisted_10 = { class: "fm-transfer-panel__body" };
18
- var _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
18
+ var _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
19
19
  ...{
20
20
  name: "FmTransfer"
21
21
  },
@@ -175,8 +175,8 @@
175
175
  default: vue.withCtx(() => [
176
176
  vue.createVNode(_component_el_col, { span: 10 }, {
177
177
  default: vue.withCtx(() => [
178
- vue.createElementVNode("div", _hoisted_1$5, [
179
- vue.createElementVNode("p", _hoisted_2$3, [
178
+ vue.createElementVNode("div", _hoisted_1$7, [
179
+ vue.createElementVNode("p", _hoisted_2$5, [
180
180
  vue.createVNode(_component_el_checkbox, {
181
181
  modelValue: state.leftAllChecked,
182
182
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.leftAllChecked = $event),
@@ -202,7 +202,7 @@
202
202
  /* TEXT */
203
203
  )
204
204
  ]),
205
- vue.createElementVNode("div", _hoisted_3$2, [
205
+ vue.createElementVNode("div", _hoisted_3$4, [
206
206
  vue.createVNode(_component_el_input, {
207
207
  class: "transfer-panel__filter",
208
208
  modelValue: state.leftKeyword,
@@ -253,7 +253,7 @@
253
253
  class: "fm-transfer-buttons"
254
254
  }, {
255
255
  default: vue.withCtx(() => [
256
- vue.createElementVNode("div", _hoisted_4$2, [
256
+ vue.createElementVNode("div", _hoisted_4$4, [
257
257
  vue.createVNode(_component_el_button, {
258
258
  type: "primary",
259
259
  style: {},
@@ -261,7 +261,7 @@
261
261
  onClick: toRight
262
262
  })
263
263
  ]),
264
- vue.createElementVNode("div", _hoisted_5$1, [
264
+ vue.createElementVNode("div", _hoisted_5$2, [
265
265
  vue.createVNode(_component_el_button, {
266
266
  type: "primary",
267
267
  style: {},
@@ -372,9 +372,9 @@
372
372
  }
373
373
  });
374
374
 
375
- const _hoisted_1$4 = { class: "notice-bar-warp-text-box" };
376
- const _hoisted_2$2 = ["innerHTML"];
377
- var _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
375
+ const _hoisted_1$6 = { class: "notice-bar-warp-text-box" };
376
+ const _hoisted_2$4 = ["innerHTML"];
377
+ var _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
378
378
  ...{
379
379
  name: "FmNoticeBar"
380
380
  },
@@ -465,7 +465,7 @@
465
465
  2
466
466
  /* CLASS */
467
467
  )) : vue.createCommentVNode("v-if", true),
468
- vue.createElementVNode("div", _hoisted_1$4, [
468
+ vue.createElementVNode("div", _hoisted_1$6, [
469
469
  vue.createElementVNode(
470
470
  "div",
471
471
  {
@@ -477,7 +477,7 @@
477
477
  vue.createElementVNode("div", {
478
478
  innerHTML: props.text,
479
479
  "data-slate-editor": ""
480
- }, null, 8, _hoisted_2$2)
480
+ }, null, 8, _hoisted_2$4)
481
481
  ],
482
482
  512
483
483
  /* NEED_PATCH */
@@ -497,7 +497,7 @@
497
497
  }
498
498
  });
499
499
 
500
- var _sfc_main$7 = {
500
+ var _sfc_main$c = {
501
501
  name: "dragVerify",
502
502
  props: {
503
503
  isPassing: {
@@ -770,18 +770,18 @@
770
770
  return target;
771
771
  };
772
772
 
773
- const _hoisted_1$3 = { class: "drag-verify-container" };
774
- const _hoisted_2$1 = ["src"];
775
- const _hoisted_3$1 = {
773
+ const _hoisted_1$5 = { class: "drag-verify-container" };
774
+ const _hoisted_2$3 = ["src"];
775
+ const _hoisted_3$3 = {
776
776
  key: 0,
777
777
  class: "tips success"
778
778
  };
779
- const _hoisted_4$1 = {
779
+ const _hoisted_4$3 = {
780
780
  key: 1,
781
781
  class: "tips danger"
782
782
  };
783
783
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
784
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
784
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
785
785
  vue.createElementVNode(
786
786
  "div",
787
787
  {
@@ -795,17 +795,17 @@
795
795
  onLoad: _cache[0] || (_cache[0] = (...args) => $options.checkimgLoaded && $options.checkimgLoaded(...args)),
796
796
  style: vue.normalizeStyle($data.imgStyle),
797
797
  alt: ""
798
- }, null, 46, _hoisted_2$1),
798
+ }, null, 46, _hoisted_2$3),
799
799
  $props.showTips && $props.isPassing ? (vue.openBlock(), vue.createElementBlock(
800
800
  "div",
801
- _hoisted_3$1,
801
+ _hoisted_3$3,
802
802
  vue.toDisplayString($props.successTip),
803
803
  1
804
804
  /* TEXT */
805
805
  )) : vue.createCommentVNode("v-if", true),
806
806
  $props.showTips && !$props.isPassing && $data.showErrorTip ? (vue.openBlock(), vue.createElementBlock(
807
807
  "div",
808
- _hoisted_4$1,
808
+ _hoisted_4$3,
809
809
  vue.toDisplayString($props.failTip),
810
810
  1
811
811
  /* TEXT */
@@ -879,9 +879,9 @@
879
879
  )
880
880
  ]);
881
881
  }
882
- var dragimg = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["render", _sfc_render], ["__scopeId", "data-v-9e8c9ed2"]]);
882
+ var dragimg = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render], ["__scopeId", "data-v-9e8c9ed2"]]);
883
883
 
884
- var _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
884
+ var _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
885
885
  ...{
886
886
  name: "Fmselect"
887
887
  },
@@ -23779,8 +23779,8 @@
23779
23779
  };
23780
23780
  };
23781
23781
 
23782
- const _hoisted_1$2 = { style: { "font-size": "14px", "line-height": "30px" } };
23783
- var _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
23782
+ const _hoisted_1$4 = { style: { "font-size": "14px", "line-height": "30px" } };
23783
+ var _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
23784
23784
  ...{
23785
23785
  name: "FmAutocomplete"
23786
23786
  },
@@ -23886,7 +23886,7 @@
23886
23886
  default: vue.withCtx(({ item }) => [
23887
23887
  vue.createElementVNode(
23888
23888
  "div",
23889
- _hoisted_1$2,
23889
+ _hoisted_1$4,
23890
23890
  vue.toDisplayString(item[__props.fName]),
23891
23891
  1
23892
23892
  /* TEXT */
@@ -36155,7 +36155,7 @@
36155
36155
  };
36156
36156
  });
36157
36157
 
36158
- var _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
36158
+ var _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
36159
36159
  ...{
36160
36160
  name: "Fminputdropdown"
36161
36161
  },
@@ -36328,12 +36328,12 @@
36328
36328
  }
36329
36329
  });
36330
36330
 
36331
- const _hoisted_1$1 = { style: { "padding": "5px" } };
36332
- const _hoisted_2 = { style: { "display": "flex", "align-items": "center", "gap": "8px", "flex-wrap": "nowrap", "overflow": "hidden" } };
36333
- const _hoisted_3 = { style: { "flex": "1 1 200px", "min-width": "0", "overflow": "hidden" } };
36334
- const _hoisted_4 = { style: { "display": "flex", "align-items": "center", "flex-shrink": "0", "white-space": "nowrap" } };
36335
- const _hoisted_5 = { style: { "margin-bottom": "45px" } };
36336
- var _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
36331
+ const _hoisted_1$3 = { style: { "padding": "5px" } };
36332
+ const _hoisted_2$2 = { style: { "display": "flex", "align-items": "center", "gap": "8px", "flex-wrap": "nowrap", "overflow": "hidden" } };
36333
+ const _hoisted_3$2 = { style: { "flex": "1 1 200px", "min-width": "0", "overflow": "hidden" } };
36334
+ const _hoisted_4$2 = { style: { "display": "flex", "align-items": "center", "flex-shrink": "0", "white-space": "nowrap" } };
36335
+ const _hoisted_5$1 = { style: { "margin-bottom": "45px" } };
36336
+ var _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
36337
36337
  ...{
36338
36338
  name: "FmTree"
36339
36339
  },
@@ -36440,9 +36440,9 @@
36440
36440
  style: { "height": "100%" }
36441
36441
  }, {
36442
36442
  header: vue.withCtx(() => [
36443
- vue.createElementVNode("div", _hoisted_1$1, [
36444
- vue.createElementVNode("div", _hoisted_2, [
36445
- vue.createElementVNode("div", _hoisted_3, [
36443
+ vue.createElementVNode("div", _hoisted_1$3, [
36444
+ vue.createElementVNode("div", _hoisted_2$2, [
36445
+ vue.createElementVNode("div", _hoisted_3$2, [
36446
36446
  vue.createVNode(_component_el_input, {
36447
36447
  "prefix-icon": vue.unref(search_default),
36448
36448
  modelValue: filterText.value,
@@ -36452,7 +36452,7 @@
36452
36452
  placeholder: "\u7C7B\u578B\u540D\u79F0"
36453
36453
  }, null, 8, ["prefix-icon", "modelValue"])
36454
36454
  ]),
36455
- vue.createElementVNode("div", _hoisted_4, [
36455
+ vue.createElementVNode("div", _hoisted_4$2, [
36456
36456
  !props.checkStrictly && state.isShowCheckbox ? (vue.openBlock(), vue.createBlock(_component_el_checkbox, {
36457
36457
  key: 0,
36458
36458
  modelValue: state.strictly,
@@ -36521,7 +36521,7 @@
36521
36521
  ])
36522
36522
  ]),
36523
36523
  default: vue.withCtx(() => [
36524
- vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
36524
+ vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_5$1, [
36525
36525
  vue.createVNode(_component_el_scrollbar, null, {
36526
36526
  default: vue.withCtx(() => [
36527
36527
  vue.createVNode(_component_el_tree, {
@@ -36564,7 +36564,7 @@
36564
36564
  }
36565
36565
  });
36566
36566
 
36567
- var _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
36567
+ var _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
36568
36568
  ...{
36569
36569
  name: "Fmdatepicker"
36570
36570
  },
@@ -36613,6 +36613,1836 @@
36613
36613
  }
36614
36614
  });
36615
36615
 
36616
+ var _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
36617
+ ...{
36618
+ name: "RenderComp"
36619
+ },
36620
+ __name: "renderComp",
36621
+ props: {
36622
+ render: Function,
36623
+ form: Object
36624
+ },
36625
+ setup(__props) {
36626
+ const props = __props;
36627
+ const renderComponent = () => {
36628
+ return props.render(props?.form);
36629
+ };
36630
+ return (_ctx, _cache) => {
36631
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(renderComponent));
36632
+ };
36633
+ }
36634
+ });
36635
+
36636
+ const _hoisted_1$2 = { class: "inside_box" };
36637
+ const _hoisted_2$1 = { class: "inside_box_title" };
36638
+ const _hoisted_3$1 = { class: "check-box" };
36639
+ const _hoisted_4$1 = { class: "more_dropdown_icon" };
36640
+ const _hoisted_5 = { class: "out_box" };
36641
+ var _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
36642
+ ...{
36643
+ name: "MoreChoose"
36644
+ },
36645
+ __name: "moreChoose",
36646
+ props: {
36647
+ // 以下拉方式展示更多条件---数据源
36648
+ moreCheckList: {
36649
+ type: Array,
36650
+ default: () => []
36651
+ },
36652
+ popoverAttrsBind: {
36653
+ type: Object,
36654
+ default: () => ({})
36655
+ }
36656
+ },
36657
+ emits: ["getCheckList"],
36658
+ setup(__props, { emit: __emit }) {
36659
+ const props = __props;
36660
+ const checkList = vue.ref([]);
36661
+ const isCheckList = vue.ref([]);
36662
+ const allcheckList = vue.ref(props.moreCheckList);
36663
+ const emit = __emit;
36664
+ vue.watch(
36665
+ () => props.moreCheckList,
36666
+ (list) => {
36667
+ allcheckList.value = list;
36668
+ },
36669
+ { deep: true }
36670
+ );
36671
+ vue.watch(
36672
+ () => checkList,
36673
+ (nval, oval) => {
36674
+ let list = [];
36675
+ oval.value.forEach((ele) => {
36676
+ if (!nval.value.some((val) => val == ele)) {
36677
+ list.push(ele);
36678
+ }
36679
+ });
36680
+ isCheckList.value.forEach((ele, j) => {
36681
+ if (list.filter((val) => val == ele.label)[0]) {
36682
+ delete isCheckList.value[j];
36683
+ }
36684
+ });
36685
+ },
36686
+ { deep: true }
36687
+ );
36688
+ const handlecheckAll = () => {
36689
+ const allList = JSON.parse(JSON.stringify(allcheckList.value));
36690
+ checkList.value = allList.map((item) => item.label);
36691
+ isCheckList.value = allList;
36692
+ const checkObj = analysisObj(isCheckList.value);
36693
+ emit("getCheckList", checkObj);
36694
+ };
36695
+ const handleReverseCheck = () => {
36696
+ const deepCheckList = JSON.parse(JSON.stringify(checkList.value));
36697
+ checkList.value = [];
36698
+ isCheckList.value = [];
36699
+ allcheckList.value.forEach((ele) => {
36700
+ if (!deepCheckList.filter((item1) => item1 == ele.label)[0]) {
36701
+ checkList.value.push(ele.label);
36702
+ isCheckList.value.push(ele);
36703
+ }
36704
+ });
36705
+ const checkObj = analysisObj(isCheckList.value);
36706
+ emit("getCheckList", checkObj);
36707
+ };
36708
+ const handleReset = () => {
36709
+ checkList.value = [];
36710
+ isCheckList.value = [];
36711
+ emit("getCheckList", {});
36712
+ };
36713
+ const getcheck = (val) => {
36714
+ isCheckList.value = [];
36715
+ allcheckList.value.forEach((ele, j) => {
36716
+ if (val.filter((item1) => item1 == ele.label)[0]) {
36717
+ isCheckList.value.push(ele);
36718
+ }
36719
+ });
36720
+ const checkObj = analysisObj(isCheckList.value);
36721
+ emit("getCheckList", checkObj);
36722
+ };
36723
+ const analysisObj = (val) => {
36724
+ return val.reduce((obj, item) => {
36725
+ obj[item.prop] = {
36726
+ label: item?.label,
36727
+ comp: item.comp,
36728
+ bind: item?.bind,
36729
+ list: item?.list,
36730
+ eventHandle: item?.eventHandle,
36731
+ changeEvent: item?.changeEvent,
36732
+ listTypeInfo: item?.listTypeInfo,
36733
+ arrLabel: item?.arrLabel,
36734
+ arrKey: item?.arrKey,
36735
+ slotName: item?.slotName,
36736
+ span: item?.span,
36737
+ type: item?.type,
36738
+ isSelfCom: item && item.isSelfCom || false,
36739
+ defaultVal: item?.defaultVal,
36740
+ placeholder: item?.placeholder,
36741
+ event: item?.event
36742
+ };
36743
+ return obj;
36744
+ }, {});
36745
+ };
36746
+ return (_ctx, _cache) => {
36747
+ const _component_el_button = vue.resolveComponent("el-button");
36748
+ const _component_el_checkbox = vue.resolveComponent("el-checkbox");
36749
+ const _component_el_checkbox_group = vue.resolveComponent("el-checkbox-group");
36750
+ const _component_el_icon = vue.resolveComponent("el-icon");
36751
+ const _component_el_popover = vue.resolveComponent("el-popover");
36752
+ return allcheckList.value.length > 0 ? (vue.openBlock(), vue.createBlock(_component_el_popover, {
36753
+ key: 0,
36754
+ "popper-class": "fm_query_condition_more",
36755
+ bind: __props.popoverAttrsBind,
36756
+ trigger: "click",
36757
+ width: "auto",
36758
+ ref: "popover"
36759
+ }, {
36760
+ reference: vue.withCtx(() => [
36761
+ vue.createElementVNode("div", _hoisted_4$1, [
36762
+ vue.createElementVNode(
36763
+ "span",
36764
+ _hoisted_5,
36765
+ vue.toDisplayString(__props.popoverAttrsBind.showTxt || "\u66F4\u591A"),
36766
+ 1
36767
+ /* TEXT */
36768
+ ),
36769
+ vue.createVNode(_component_el_icon, null, {
36770
+ default: vue.withCtx(() => [
36771
+ vue.createVNode(vue.unref(arrow_down_default))
36772
+ ]),
36773
+ _: 1
36774
+ /* STABLE */
36775
+ })
36776
+ ])
36777
+ ]),
36778
+ default: vue.withCtx(() => [
36779
+ vue.createElementVNode("div", _hoisted_1$2, [
36780
+ vue.createElementVNode("div", _hoisted_2$1, [
36781
+ vue.createElementVNode(
36782
+ "div",
36783
+ null,
36784
+ vue.toDisplayString(__props.popoverAttrsBind.title || "\u6240\u6709\u6761\u4EF6"),
36785
+ 1
36786
+ /* TEXT */
36787
+ ),
36788
+ vue.createElementVNode("div", _hoisted_3$1, [
36789
+ vue.createVNode(_component_el_button, {
36790
+ size: "small",
36791
+ link: "",
36792
+ onClick: handlecheckAll
36793
+ }, {
36794
+ default: vue.withCtx(() => [
36795
+ vue.createTextVNode(
36796
+ vue.toDisplayString(__props.popoverAttrsBind.allTxt || "\u5168\u9009"),
36797
+ 1
36798
+ /* TEXT */
36799
+ )
36800
+ ]),
36801
+ _: 1
36802
+ /* STABLE */
36803
+ }),
36804
+ vue.createVNode(_component_el_button, {
36805
+ size: "small",
36806
+ link: "",
36807
+ onClick: handleReset
36808
+ }, {
36809
+ default: vue.withCtx(() => [
36810
+ vue.createTextVNode(
36811
+ vue.toDisplayString(__props.popoverAttrsBind.clearTxt || "\u6E05\u7A7A"),
36812
+ 1
36813
+ /* TEXT */
36814
+ )
36815
+ ]),
36816
+ _: 1
36817
+ /* STABLE */
36818
+ }),
36819
+ vue.createVNode(_component_el_button, {
36820
+ size: "small",
36821
+ link: "",
36822
+ onClick: handleReverseCheck
36823
+ }, {
36824
+ default: vue.withCtx(() => [
36825
+ vue.createTextVNode(
36826
+ vue.toDisplayString(__props.popoverAttrsBind.reverseTxt || "\u53CD\u9009"),
36827
+ 1
36828
+ /* TEXT */
36829
+ )
36830
+ ]),
36831
+ _: 1
36832
+ /* STABLE */
36833
+ })
36834
+ ])
36835
+ ]),
36836
+ vue.createVNode(_component_el_checkbox_group, {
36837
+ modelValue: checkList.value,
36838
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => checkList.value = $event),
36839
+ class: "inside_box_main",
36840
+ onChange: getcheck
36841
+ }, {
36842
+ default: vue.withCtx(() => [
36843
+ (vue.openBlock(true), vue.createElementBlock(
36844
+ vue.Fragment,
36845
+ null,
36846
+ vue.renderList(allcheckList.value, (item, index) => {
36847
+ return vue.openBlock(), vue.createBlock(_component_el_checkbox, {
36848
+ key: index,
36849
+ label: item.label,
36850
+ value: item.label
36851
+ }, null, 8, ["label", "value"]);
36852
+ }),
36853
+ 128
36854
+ /* KEYED_FRAGMENT */
36855
+ ))
36856
+ ]),
36857
+ _: 1
36858
+ /* STABLE */
36859
+ }, 8, ["modelValue"])
36860
+ ])
36861
+ ]),
36862
+ _: 1
36863
+ /* STABLE */
36864
+ }, 8, ["bind"])) : vue.createCommentVNode("v-if", true);
36865
+ };
36866
+ }
36867
+ });
36868
+
36869
+ function useComputed() {
36870
+ const compChildName = vue.computed(() => {
36871
+ return (opt) => {
36872
+ switch (opt.type) {
36873
+ case "checkbox":
36874
+ return "el-checkbox";
36875
+ case "radio":
36876
+ return "el-radio";
36877
+ case "select-arr":
36878
+ case "select-obj":
36879
+ return "el-option";
36880
+ }
36881
+ };
36882
+ });
36883
+ const selectListType = vue.computed(() => {
36884
+ return (opt) => {
36885
+ if (opt.listTypeInfo) {
36886
+ return opt.listTypeInfo[opt.list];
36887
+ } else {
36888
+ return [];
36889
+ }
36890
+ };
36891
+ });
36892
+ const compChildLabel = vue.computed(() => {
36893
+ return (opt, value) => {
36894
+ switch (opt.type) {
36895
+ case "radio":
36896
+ case "checkbox":
36897
+ return value[opt.arrLabel || "label"];
36898
+ case "el-select-multiple":
36899
+ case "select-arr":
36900
+ return value[opt.arrLabel || "label"];
36901
+ case "select-obj":
36902
+ return value;
36903
+ }
36904
+ };
36905
+ });
36906
+ const compChildValue = vue.computed(() => {
36907
+ return (opt, value, key) => {
36908
+ switch (opt.type) {
36909
+ case "radio":
36910
+ case "checkbox":
36911
+ return value[opt.arrKey || "key"];
36912
+ case "el-select-multiple":
36913
+ case "select-arr":
36914
+ return value[opt.arrKey || "key"];
36915
+ case "select-obj":
36916
+ return key;
36917
+ }
36918
+ };
36919
+ });
36920
+ const compChildShowLabel = vue.computed(() => {
36921
+ return (opt, value) => {
36922
+ switch (opt.type) {
36923
+ case "radio":
36924
+ case "checkbox":
36925
+ return value[opt.arrLabel || "label"];
36926
+ case "el-select-multiple":
36927
+ case "select-arr":
36928
+ return value[opt.arrLabel || "label"];
36929
+ case "select-obj":
36930
+ return value;
36931
+ }
36932
+ };
36933
+ });
36934
+ const getPlaceholder = (row) => {
36935
+ let placeholder;
36936
+ if (row.comp && typeof row.comp == "string") {
36937
+ if (row.comp.includes("input")) {
36938
+ placeholder = "\u8BF7\u8F93\u5165" + row.label;
36939
+ } else if (row.comp.includes("select") || row.comp.includes("date")) {
36940
+ placeholder = "\u8BF7\u9009\u62E9" + row.label;
36941
+ } else {
36942
+ placeholder = row.label;
36943
+ }
36944
+ }
36945
+ return placeholder;
36946
+ };
36947
+ const getColLength = () => {
36948
+ const width = window.innerWidth;
36949
+ let colLength = 4;
36950
+ if (width > 1e3 && width < 1280) {
36951
+ colLength = 3;
36952
+ } else if (width > 768 && width <= 1e3) {
36953
+ colLength = 2;
36954
+ } else if (width <= 768) {
36955
+ colLength = 1;
36956
+ }
36957
+ return colLength;
36958
+ };
36959
+ return {
36960
+ compChildName,
36961
+ selectListType,
36962
+ compChildLabel,
36963
+ compChildValue,
36964
+ compChildShowLabel,
36965
+ getPlaceholder,
36966
+ getColLength
36967
+ };
36968
+ }
36969
+
36970
+ var _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
36971
+ ...{
36972
+ name: "FmQueryCondition"
36973
+ },
36974
+ __name: "index",
36975
+ props: {
36976
+ opts: { default: () => ({}) },
36977
+ labelWidth: { default: "120px" },
36978
+ btnCheckBind: { default: () => ({}) },
36979
+ btnResetBind: { default: () => ({}) },
36980
+ loading: { type: Boolean, default: false },
36981
+ reset: { type: Boolean, default: true },
36982
+ boolEnter: { type: Boolean, default: true },
36983
+ isShowOpen: { type: Boolean, default: true },
36984
+ isExpansion: { type: Boolean, default: false },
36985
+ maxVisibleRows: { default: 1 },
36986
+ packUpTxt: { default: "\u6536\u8D77" },
36987
+ unfoldTxt: { default: "\u5C55\u5F00" },
36988
+ isFooter: { type: Boolean, default: true },
36989
+ configChangedReset: { type: Boolean, default: false },
36990
+ isShowWidthSize: { type: Boolean, default: false },
36991
+ widthSize: { default: 4 },
36992
+ isDropDownSelectMore: { type: Boolean, default: false },
36993
+ moreCheckList: { default: () => [] },
36994
+ popoverAttrs: { default: () => ({}) }
36995
+ },
36996
+ emits: ["handleEvent", "submit", "reset", "getCheckList", "getRefs"],
36997
+ setup(__props, { expose: __expose, emit: __emit }) {
36998
+ const {
36999
+ compChildName,
37000
+ selectListType,
37001
+ compChildLabel,
37002
+ compChildValue,
37003
+ compChildShowLabel,
37004
+ getPlaceholder,
37005
+ getColLength
37006
+ } = useComputed();
37007
+ const props = __props;
37008
+ const slots = vue.useSlots();
37009
+ const isShow = (name) => {
37010
+ return Object.keys(slots).includes(name);
37011
+ };
37012
+ const popoverAttrsBind = vue.computed(() => {
37013
+ return {
37014
+ showTxt: "\u66F4\u591A",
37015
+ title: "\u6240\u6709\u6761\u4EF6",
37016
+ allTxt: "\u5168\u9009",
37017
+ reverseTxt: "\u53CD\u9009",
37018
+ clearTxt: "\u6E05\u7A7A",
37019
+ ...props.popoverAttrs
37020
+ };
37021
+ });
37022
+ let queryState = vue.reactive({
37023
+ form: Object.keys(props.opts).reduce((acc, field) => {
37024
+ acc[field] = props.opts[field].defaultVal ?? null;
37025
+ return acc;
37026
+ }, {})
37027
+ });
37028
+ let colLength = vue.ref(4);
37029
+ let showOpen = vue.ref(false);
37030
+ let open = vue.ref(false);
37031
+ const queryAttrs = vue.computed(() => {
37032
+ return {
37033
+ btnTxt: "\u67E5\u8BE2",
37034
+ ...props.btnCheckBind
37035
+ };
37036
+ });
37037
+ const resetAttrs = vue.computed(() => {
37038
+ return { btnTxt: "\u91CD\u7F6E", ...props.btnResetBind };
37039
+ });
37040
+ const originCellLength = vue.computed(() => {
37041
+ let length = 0;
37042
+ Object.keys(props.opts).forEach((key) => {
37043
+ let span = props.opts[key].span || 1;
37044
+ if (length % colLength.value + span > colLength.value) {
37045
+ length += colLength.value - length % colLength.value;
37046
+ }
37047
+ length += span;
37048
+ });
37049
+ return length;
37050
+ });
37051
+ const cOpts = vue.computed(() => {
37052
+ let renderSpan = 0;
37053
+ return Object.keys(props.opts).reduce((acc, field) => {
37054
+ let opt = {
37055
+ ...props.opts[field]
37056
+ };
37057
+ if (showOpen.value) {
37058
+ renderSpan += opt.span ?? 1;
37059
+ if (!open.value && renderSpan - 1 >= props.maxVisibleRows * colLength.value) {
37060
+ return acc;
37061
+ }
37062
+ }
37063
+ opt.dataIndex = field;
37064
+ acc[field] = opt;
37065
+ return acc;
37066
+ }, {});
37067
+ });
37068
+ const cellLength = vue.computed(() => {
37069
+ let length = 0;
37070
+ Object.keys(props.opts).forEach((key) => {
37071
+ let span = props.opts[key].span > 4 ? 4 : props.opts[key].span || 1;
37072
+ length += span;
37073
+ });
37074
+ return length;
37075
+ });
37076
+ const gridAreas = vue.computed(() => {
37077
+ const fields = Object.keys(cOpts.value);
37078
+ let rowIndex = 0;
37079
+ let rowSpan = 0;
37080
+ const areas = [[]];
37081
+ for (let fieldIndex = 0; fieldIndex < fields.length; fieldIndex++) {
37082
+ const field = fields[fieldIndex];
37083
+ const opt = cOpts.value[field];
37084
+ const span = Math.min(opt.span ?? 1, Math.min(colLength.value, 4));
37085
+ if (rowSpan + span > colLength.value) {
37086
+ while (rowSpan < colLength.value) {
37087
+ areas[rowIndex].push(".");
37088
+ rowSpan += 1;
37089
+ }
37090
+ rowSpan = 0;
37091
+ areas[++rowIndex] = [];
37092
+ }
37093
+ rowSpan += span;
37094
+ for (let index = 0; index < span; index++) {
37095
+ areas[rowIndex].push(field);
37096
+ }
37097
+ }
37098
+ if (areas[rowIndex].length === colLength.value) {
37099
+ areas.push(Array(colLength.value).fill("submit_btn"));
37100
+ } else {
37101
+ while (areas[rowIndex].length < colLength.value) {
37102
+ areas[rowIndex].push("submit_btn");
37103
+ }
37104
+ }
37105
+ return areas.reduce((acc, cur) => {
37106
+ acc += `'${cur.join(" ")}'
37107
+ `;
37108
+ return acc;
37109
+ }, "");
37110
+ });
37111
+ const cEvent = vue.computed(() => {
37112
+ return (opt) => {
37113
+ let event = { ...opt.eventHandle };
37114
+ let changeEvent = {};
37115
+ Object.keys(event).forEach((v) => {
37116
+ changeEvent[v] = (e) => {
37117
+ if (opt.comp.includes("select") || opt.comp.includes("picker") || opt.comp.includes("date")) {
37118
+ event[v] && event[v](e, queryState.form);
37119
+ } else {
37120
+ if (e) {
37121
+ event[v] && event[v](e, queryState.form);
37122
+ } else {
37123
+ event[v] && event[v](queryState.form);
37124
+ }
37125
+ }
37126
+ };
37127
+ });
37128
+ return { ...changeEvent };
37129
+ };
37130
+ });
37131
+ const initForm = (opts, keepVal = false) => {
37132
+ return Object.keys(opts).reduce((acc, field) => {
37133
+ if (keepVal && queryState.form) {
37134
+ acc[field] = queryState.form[field] ?? opts[field].defaultVal ?? null;
37135
+ } else {
37136
+ acc[field] = opts[field].defaultVal ?? null;
37137
+ }
37138
+ return acc;
37139
+ }, {});
37140
+ };
37141
+ const emits = __emit;
37142
+ const tselecttableref = vue.ref({});
37143
+ const handleRef = (el, opt, key) => {
37144
+ emits("getRefs", el, opt, key);
37145
+ if (el) {
37146
+ tselecttableref.value[`tselecttableref-${key}`] = el;
37147
+ }
37148
+ };
37149
+ const getRefs = (el, opt, index) => {
37150
+ emits("getRefs", el, opt, index);
37151
+ };
37152
+ const resetHandle = () => {
37153
+ queryState.form = initForm(props.opts);
37154
+ const refList = Object.keys(tselecttableref.value).filter(
37155
+ (item) => item.includes("tselecttableref")
37156
+ );
37157
+ if (refList.length > 0 && tselecttableref.value) {
37158
+ refList.map((val) => {
37159
+ tselecttableref.value[val].clear();
37160
+ });
37161
+ }
37162
+ emits("reset", queryState.form);
37163
+ checkHandle("reset");
37164
+ };
37165
+ const resetData = () => {
37166
+ queryState.form = initForm(props.opts);
37167
+ const refList = Object.keys(tselecttableref.value).filter(
37168
+ (item) => item.includes("tselecttableref")
37169
+ );
37170
+ if (refList.length > 0 && tselecttableref.value) {
37171
+ refList.map((val) => {
37172
+ tselecttableref.value[val].clear();
37173
+ });
37174
+ }
37175
+ };
37176
+ const handleEvent = ({ isChange = false, type, val }, dataIndex) => {
37177
+ if (!isChange) {
37178
+ emits("handleEvent", type, val, queryState.form);
37179
+ } else if (dataIndex) {
37180
+ queryState.form[dataIndex] = val;
37181
+ }
37182
+ };
37183
+ const checkHandle = (flagText = false) => {
37184
+ emits("submit", queryState.form, flagText);
37185
+ };
37186
+ vue.onMounted(() => {
37187
+ if (props.isShowOpen) {
37188
+ showOpen.value = true;
37189
+ } else {
37190
+ showOpen.value = false;
37191
+ }
37192
+ if (props.isExpansion) {
37193
+ open.value = true;
37194
+ } else {
37195
+ open.value = false;
37196
+ }
37197
+ if (props.isShowWidthSize) {
37198
+ colLength.value = props.widthSize;
37199
+ } else {
37200
+ colLength.value = getColLength();
37201
+ }
37202
+ if (props.boolEnter) {
37203
+ document.onkeyup = (e) => {
37204
+ let key = e.keyCode;
37205
+ let pagination = document.querySelectorAll(".el-pagination");
37206
+ let isPaginationInputFocus = false;
37207
+ if (pagination) {
37208
+ pagination.forEach((ele) => {
37209
+ let paginationInputList = ele.getElementsByTagName("input");
37210
+ let paginationInput = paginationInputList[paginationInputList.length - 1];
37211
+ if (paginationInput === document.activeElement) {
37212
+ isPaginationInputFocus = true;
37213
+ }
37214
+ });
37215
+ }
37216
+ if (isPaginationInputFocus) {
37217
+ return;
37218
+ }
37219
+ if (key === 13) {
37220
+ checkHandle();
37221
+ }
37222
+ };
37223
+ }
37224
+ if (isShow("footerBtn") || !props.isFooter) {
37225
+ open.value = true;
37226
+ }
37227
+ if (props.isDropDownSelectMore) {
37228
+ open.value = true;
37229
+ showOpen.value = false;
37230
+ }
37231
+ });
37232
+ vue.watch(
37233
+ () => props.widthSize,
37234
+ (val) => {
37235
+ colLength.value = val;
37236
+ }
37237
+ );
37238
+ vue.watch(
37239
+ () => props.opts,
37240
+ (opts) => {
37241
+ queryState.form = initForm(opts, !props.configChangedReset);
37242
+ },
37243
+ { deep: true }
37244
+ );
37245
+ __expose({
37246
+ queryState,
37247
+ props,
37248
+ colLength,
37249
+ resetData,
37250
+ resetHandle,
37251
+ checkHandle,
37252
+ handleEvent
37253
+ });
37254
+ return (_ctx, _cache) => {
37255
+ const _component_el_form_item = vue.resolveComponent("el-form-item");
37256
+ const _component_el_button = vue.resolveComponent("el-button");
37257
+ const _component_el_icon = vue.resolveComponent("el-icon");
37258
+ const _component_el_form = vue.resolveComponent("el-form");
37259
+ return vue.openBlock(), vue.createBlock(_component_el_form, vue.mergeProps({ id: "t_query_condition" }, _ctx.$attrs, {
37260
+ "label-width": _ctx.labelWidth,
37261
+ form: vue.unref(queryState).form,
37262
+ size: "default",
37263
+ class: "fm-query-condition",
37264
+ style: {
37265
+ "grid-template-areas": gridAreas.value,
37266
+ "grid-template-columns": `repeat(${vue.unref(colLength)}, minmax(0px, ${100 / vue.unref(colLength)}%))`
37267
+ },
37268
+ onSubmit: _cache[2] || (_cache[2] = vue.withModifiers(() => {
37269
+ }, ["prevent"]))
37270
+ }), {
37271
+ default: vue.withCtx(() => [
37272
+ (vue.openBlock(true), vue.createElementBlock(
37273
+ vue.Fragment,
37274
+ null,
37275
+ vue.renderList(cOpts.value, (opt, i) => {
37276
+ return vue.openBlock(), vue.createBlock(_component_el_form_item, vue.mergeProps({
37277
+ key: i,
37278
+ label: opt.label,
37279
+ "label-width": opt.labelWidth
37280
+ }, { ref_for: true }, _ctx.$attrs, {
37281
+ style: { gridArea: i },
37282
+ class: [opt.className, { render_label: opt.labelRender }]
37283
+ }), vue.createSlots({
37284
+ default: vue.withCtx(() => [
37285
+ opt.slotName ? vue.renderSlot(_ctx.$slots, opt.slotName, {
37286
+ key: 0,
37287
+ param: vue.unref(queryState).form,
37288
+ scope: vue.unref(queryState).form
37289
+ }) : vue.createCommentVNode("v-if", true),
37290
+ opt.isSelfCom ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(opt.comp), vue.mergeProps(
37291
+ {
37292
+ key: 1,
37293
+ ref_for: true,
37294
+ ref: opt.comp === "fm-select-table" ? (el) => handleRef(el, opt, i) : (el) => getRefs(el, opt, i),
37295
+ modelValue: vue.unref(queryState).form[opt.dataIndex],
37296
+ "onUpdate:modelValue": ($event) => vue.unref(queryState).form[opt.dataIndex] = $event,
37297
+ placeholder: opt.placeholder || vue.unref(getPlaceholder)(opt)
37298
+ },
37299
+ { ref_for: true },
37300
+ typeof opt.bind == "function" ? opt.bind(vue.unref(queryState).form) : { clearable: true, filterable: true, ..._ctx.$attrs, ...opt.bind },
37301
+ {
37302
+ style: { width: opt.width || "100%" },
37303
+ onChange: ($event) => handleEvent({ type: opt.event, val: vue.unref(queryState).form[opt.dataIndex] })
37304
+ },
37305
+ vue.toHandlers(cEvent.value(opt))
37306
+ ), null, 16, ["modelValue", "onUpdate:modelValue", "placeholder", "style", "onChange"])) : vue.createCommentVNode("v-if", true),
37307
+ !opt.isSelfCom && !opt.slotName ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(opt.comp), vue.mergeProps(
37308
+ {
37309
+ key: 2,
37310
+ ref_for: true
37311
+ },
37312
+ typeof opt.bind == "function" ? opt.bind(vue.unref(queryState).form) : { clearable: true, filterable: true, ..._ctx.$attrs, ...opt.bind },
37313
+ {
37314
+ placeholder: opt.placeholder || vue.unref(getPlaceholder)(opt),
37315
+ onChange: ($event) => handleEvent({ type: opt.event, val: vue.unref(queryState).form[opt.dataIndex] }),
37316
+ ref_for: true,
37317
+ ref: (el) => getRefs(el, opt, i)
37318
+ },
37319
+ vue.toHandlers(cEvent.value(opt)),
37320
+ {
37321
+ modelValue: vue.unref(queryState).form[opt.dataIndex],
37322
+ "onUpdate:modelValue": ($event) => vue.unref(queryState).form[opt.dataIndex] = $event
37323
+ }
37324
+ ), {
37325
+ default: vue.withCtx(() => [
37326
+ (vue.openBlock(true), vue.createElementBlock(
37327
+ vue.Fragment,
37328
+ null,
37329
+ vue.renderList(vue.unref(selectListType)(opt), (value, key, index) => {
37330
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(compChildName)(opt)), {
37331
+ key: index,
37332
+ disabled: value.disabled,
37333
+ label: vue.unref(compChildLabel)(opt, value),
37334
+ value: vue.unref(compChildValue)(opt, value, key)
37335
+ }, {
37336
+ default: vue.withCtx(() => [
37337
+ vue.createTextVNode(
37338
+ vue.toDisplayString(vue.unref(compChildShowLabel)(opt, value)),
37339
+ 1
37340
+ /* TEXT */
37341
+ )
37342
+ ]),
37343
+ _: 2
37344
+ /* DYNAMIC */
37345
+ }, 1032, ["disabled", "label", "value"]);
37346
+ }),
37347
+ 128
37348
+ /* KEYED_FRAGMENT */
37349
+ ))
37350
+ ]),
37351
+ _: 2
37352
+ /* DYNAMIC */
37353
+ }, 1040, ["placeholder", "onChange", "modelValue", "onUpdate:modelValue"])) : vue.createCommentVNode("v-if", true)
37354
+ ]),
37355
+ _: 2
37356
+ /* DYNAMIC */
37357
+ }, [
37358
+ opt.labelRender ? {
37359
+ name: "label",
37360
+ fn: vue.withCtx(() => [
37361
+ vue.createVNode(_sfc_main$6, {
37362
+ form: vue.unref(queryState).form,
37363
+ render: opt.labelRender
37364
+ }, null, 8, ["form", "render"])
37365
+ ]),
37366
+ key: "0"
37367
+ } : void 0
37368
+ ]), 1040, ["label", "label-width", "style", "class"]);
37369
+ }),
37370
+ 128
37371
+ /* KEYED_FRAGMENT */
37372
+ )),
37373
+ Object.keys(cOpts.value).length > 0 ? (vue.openBlock(), vue.createBlock(_component_el_form_item, {
37374
+ key: 0,
37375
+ "label-width": "0",
37376
+ style: { "grid-area": "submit_btn" },
37377
+ class: vue.normalizeClass([
37378
+ "btn",
37379
+ { flex_end: cellLength.value % vue.unref(colLength) === 0 },
37380
+ { btn_flex_end: Object.keys(cOpts.value).length === 4 || cellLength.value > 3 }
37381
+ ])
37382
+ }, {
37383
+ default: vue.withCtx(() => [
37384
+ _ctx.isFooter ? (vue.openBlock(), vue.createElementBlock(
37385
+ vue.Fragment,
37386
+ { key: 0 },
37387
+ [
37388
+ vue.renderSlot(_ctx.$slots, "footerBtn"),
37389
+ !vue.unref(slots).footerBtn ? (vue.openBlock(), vue.createElementBlock(
37390
+ vue.Fragment,
37391
+ { key: 0 },
37392
+ [
37393
+ vue.createVNode(_component_el_button, vue.mergeProps({
37394
+ class: "btn_check",
37395
+ onClick: checkHandle
37396
+ }, { type: "primary", ...queryAttrs.value }, { loading: _ctx.loading }), {
37397
+ default: vue.withCtx(() => [
37398
+ vue.createTextVNode(
37399
+ vue.toDisplayString(queryAttrs.value.btnTxt),
37400
+ 1
37401
+ /* TEXT */
37402
+ )
37403
+ ]),
37404
+ _: 1
37405
+ /* STABLE */
37406
+ }, 16, ["loading"]),
37407
+ _ctx.reset ? (vue.openBlock(), vue.createBlock(
37408
+ _component_el_button,
37409
+ vue.mergeProps({
37410
+ key: 0,
37411
+ class: "btn_reset"
37412
+ }, resetAttrs.value, { onClick: resetHandle }),
37413
+ {
37414
+ default: vue.withCtx(() => [
37415
+ vue.createTextVNode(
37416
+ vue.toDisplayString(resetAttrs.value.btnTxt),
37417
+ 1
37418
+ /* TEXT */
37419
+ )
37420
+ ]),
37421
+ _: 1
37422
+ /* STABLE */
37423
+ },
37424
+ 16
37425
+ /* FULL_PROPS */
37426
+ )) : vue.createCommentVNode("v-if", true),
37427
+ vue.renderSlot(_ctx.$slots, "querybar"),
37428
+ originCellLength.value > _ctx.maxVisibleRows * vue.unref(colLength) && vue.unref(showOpen) ? (vue.openBlock(), vue.createBlock(_component_el_button, {
37429
+ key: 1,
37430
+ onClick: _cache[0] || (_cache[0] = ($event) => vue.isRef(open) ? open.value = !vue.unref(open) : open = !vue.unref(open)),
37431
+ link: ""
37432
+ }, {
37433
+ default: vue.withCtx(() => [
37434
+ vue.createTextVNode(
37435
+ vue.toDisplayString(vue.unref(open) ? _ctx.packUpTxt : _ctx.unfoldTxt) + " ",
37436
+ 1
37437
+ /* TEXT */
37438
+ ),
37439
+ vue.unref(open) ? (vue.openBlock(), vue.createBlock(_component_el_icon, { key: 0 }, {
37440
+ default: vue.withCtx(() => [
37441
+ vue.createVNode(vue.unref(arrow_up_default))
37442
+ ]),
37443
+ _: 1
37444
+ /* STABLE */
37445
+ })) : (vue.openBlock(), vue.createBlock(_component_el_icon, { key: 1 }, {
37446
+ default: vue.withCtx(() => [
37447
+ vue.createVNode(vue.unref(arrow_down_default))
37448
+ ]),
37449
+ _: 1
37450
+ /* STABLE */
37451
+ }))
37452
+ ]),
37453
+ _: 1
37454
+ /* STABLE */
37455
+ })) : vue.createCommentVNode("v-if", true),
37456
+ vue.createVNode(_sfc_main$5, {
37457
+ isDropDownSelectMore: _ctx.isDropDownSelectMore,
37458
+ moreCheckList: _ctx.moreCheckList,
37459
+ popoverAttrsBind: popoverAttrsBind.value,
37460
+ onGetCheckList: _cache[1] || (_cache[1] = (event) => emits("getCheckList", event))
37461
+ }, null, 8, ["isDropDownSelectMore", "moreCheckList", "popoverAttrsBind"])
37462
+ ],
37463
+ 64
37464
+ /* STABLE_FRAGMENT */
37465
+ )) : vue.createCommentVNode("v-if", true)
37466
+ ],
37467
+ 64
37468
+ /* STABLE_FRAGMENT */
37469
+ )) : vue.createCommentVNode("v-if", true)
37470
+ ]),
37471
+ _: 3
37472
+ /* FORWARDED */
37473
+ }, 8, ["class"])) : vue.createCommentVNode("v-if", true)
37474
+ ]),
37475
+ _: 3
37476
+ /* FORWARDED */
37477
+ }, 16, ["label-width", "form", "style"]);
37478
+ };
37479
+ }
37480
+ });
37481
+
37482
+ var _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
37483
+ ...{
37484
+ name: "RenderCol"
37485
+ },
37486
+ __name: "renderCol",
37487
+ props: {
37488
+ row: Object,
37489
+ render: Function,
37490
+ index: Number,
37491
+ column: {
37492
+ type: Object,
37493
+ default: null
37494
+ }
37495
+ },
37496
+ setup(__props) {
37497
+ const props = __props;
37498
+ const renderComponent = () => {
37499
+ return props.render(props?.row[props?.column?.prop], props.row, props.index);
37500
+ };
37501
+ return (_ctx, _cache) => {
37502
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(renderComponent));
37503
+ };
37504
+ }
37505
+ });
37506
+
37507
+ const isClient = typeof window !== "undefined" && typeof document !== "undefined";
37508
+ typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
37509
+
37510
+ const nodeList = /* @__PURE__ */ new Map();
37511
+ let startClick;
37512
+ if (isClient) {
37513
+ document.addEventListener("mousedown", (e) => startClick = e);
37514
+ document.addEventListener("mouseup", (e) => {
37515
+ for (const handlers of nodeList.values()) {
37516
+ for (const { documentHandler } of handlers) {
37517
+ documentHandler(e, startClick);
37518
+ }
37519
+ }
37520
+ });
37521
+ }
37522
+ function createDocumentHandler(el, binding) {
37523
+ let excludes = [];
37524
+ if (Array.isArray(binding.arg)) {
37525
+ excludes = binding.arg;
37526
+ } else if (binding.arg instanceof HTMLElement) {
37527
+ excludes.push(binding.arg);
37528
+ }
37529
+ return function(mouseup, mousedown) {
37530
+ const popperRef = binding.instance.popperRef;
37531
+ const mouseUpTarget = mouseup.target;
37532
+ const mouseDownTarget = mousedown?.target;
37533
+ const isBound = !binding || !binding.instance;
37534
+ const isTargetExists = !mouseUpTarget || !mouseDownTarget;
37535
+ const isContainedByEl = el.contains(mouseUpTarget) || el.contains(mouseDownTarget);
37536
+ const isSelf = el === mouseUpTarget;
37537
+ const isTargetExcluded = excludes.length && excludes.some((item) => item?.contains(mouseUpTarget)) || excludes.length && excludes.includes(mouseDownTarget);
37538
+ const isContainedByPopper = popperRef && (popperRef.contains(mouseUpTarget) || popperRef.contains(mouseDownTarget));
37539
+ if (isBound || isTargetExists || isContainedByEl || isSelf || isTargetExcluded || isContainedByPopper) {
37540
+ return;
37541
+ }
37542
+ binding.value(mouseup, mousedown);
37543
+ };
37544
+ }
37545
+ const ClickOutside = {
37546
+ beforeMount(el, binding) {
37547
+ if (!nodeList.has(el)) {
37548
+ nodeList.set(el, []);
37549
+ }
37550
+ nodeList.get(el).push({
37551
+ documentHandler: createDocumentHandler(el, binding),
37552
+ bindingFn: binding.value
37553
+ });
37554
+ },
37555
+ updated(el, binding) {
37556
+ if (!nodeList.has(el)) {
37557
+ nodeList.set(el, []);
37558
+ }
37559
+ const handlers = nodeList.get(el);
37560
+ const oldHandlerIndex = handlers.findIndex((item) => item.bindingFn === binding.oldValue);
37561
+ const newHandler = {
37562
+ documentHandler: createDocumentHandler(el, binding),
37563
+ bindingFn: binding.value
37564
+ };
37565
+ if (oldHandlerIndex >= 0) {
37566
+ handlers.splice(oldHandlerIndex, 1, newHandler);
37567
+ } else {
37568
+ handlers.push(newHandler);
37569
+ }
37570
+ },
37571
+ unmounted(el) {
37572
+ nodeList.delete(el);
37573
+ }
37574
+ };
37575
+
37576
+ function useVirtualized() {
37577
+ const actualHeightContainerEl = vue.ref(null);
37578
+ const translateContainerEl = vue.ref(null);
37579
+ const scrollContainerEl = vue.ref(null);
37580
+ const isMultiple = vue.ref(false);
37581
+ const saveDATA = vue.ref([]);
37582
+ const RenderedItemsCache = {};
37583
+ const getDom = (props) => {
37584
+ const getElements = (className) => {
37585
+ actualHeightContainerEl.value = document.querySelector(`${className} .el-scrollbar__view`);
37586
+ translateContainerEl.value = document.querySelector(`${className} .el-table__body`);
37587
+ scrollContainerEl.value = document.querySelector(`${className} .el-scrollbar__wrap`);
37588
+ };
37589
+ isMultiple.value = props.multiple;
37590
+ if (props.multiple) {
37591
+ getElements(".fm_select_table_multiple");
37592
+ } else {
37593
+ getElements(".fm_select_table_radio");
37594
+ }
37595
+ };
37596
+ const getItemHeightFromCache = (index) => {
37597
+ const val = RenderedItemsCache[index];
37598
+ return val === void 0 ? 50 : val;
37599
+ };
37600
+ const updateActualHeight = () => {
37601
+ let actualHeight = 0;
37602
+ saveDATA.value.forEach((_, i) => {
37603
+ actualHeight += getItemHeightFromCache(i);
37604
+ });
37605
+ actualHeightContainerEl.value.style.height = actualHeight + "px";
37606
+ };
37607
+ const updateOffset = (offset) => {
37608
+ if (translateContainerEl.value && translateContainerEl.value.style) {
37609
+ translateContainerEl.value.style.transform = `translateY(${offset}px)`;
37610
+ }
37611
+ };
37612
+ const updateRenderedItemCache = (index) => {
37613
+ const shouldUpdate = Object.keys(RenderedItemsCache).length < saveDATA.value.length;
37614
+ if (!shouldUpdate) return;
37615
+ vue.nextTick(() => {
37616
+ const Items = Array.from(
37617
+ document.querySelectorAll(
37618
+ `${isMultiple.value ? `.fm_select_table_multiple` : `.fm_select_table_radio`} .el-table__row`
37619
+ )
37620
+ );
37621
+ Items.forEach((el) => {
37622
+ if (!RenderedItemsCache[index]) {
37623
+ RenderedItemsCache[index] = el.offsetHeight;
37624
+ }
37625
+ index++;
37626
+ });
37627
+ updateActualHeight();
37628
+ });
37629
+ };
37630
+ return {
37631
+ scrollContainerEl,
37632
+ updateRenderedItemCache,
37633
+ updateOffset,
37634
+ getDom,
37635
+ getItemHeightFromCache,
37636
+ saveDATA
37637
+ };
37638
+ }
37639
+
37640
+ const _hoisted_1$1 = {
37641
+ key: 0,
37642
+ class: "table_query_condition"
37643
+ };
37644
+ const _hoisted_2 = ["element-loading-text"];
37645
+ const _hoisted_3 = { key: 2 };
37646
+ const _hoisted_4 = {
37647
+ key: 0,
37648
+ class: "fm-table-select__page"
37649
+ };
37650
+ var _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
37651
+ ...{
37652
+ name: "TSelectTable"
37653
+ },
37654
+ __name: "index",
37655
+ props: {
37656
+ modelValue: { default: void 0 },
37657
+ inputValue: { default: void 0 },
37658
+ defaultSelectVal: { default: () => [] },
37659
+ radioSelectValLabel: { default: "" },
37660
+ table: { default: () => ({
37661
+ data: [],
37662
+ currentPage: 1,
37663
+ pageSize: 10,
37664
+ total: 0
37665
+ }) },
37666
+ keywords: { default: () => ({
37667
+ value: "value",
37668
+ label: "label"
37669
+ }) },
37670
+ value: {},
37671
+ columns: { default: () => [] },
37672
+ multiple: { type: Boolean, default: false },
37673
+ filterable: { type: Boolean, default: true },
37674
+ remote: { type: Boolean, default: false },
37675
+ remoteMethod: { type: Function, default: void 0 },
37676
+ filterMethod: { type: Function, default: void 0 },
37677
+ isShowInput: { type: Boolean, default: false },
37678
+ inputAttr: { default: () => ({}) },
37679
+ inputWidth: { default: 550 },
37680
+ selectWidth: { default: 550 },
37681
+ tableWidth: { default: 550 },
37682
+ isShowQuery: { type: Boolean, default: false },
37683
+ isShowBlurBtn: { type: Boolean, default: false },
37684
+ btnBind: { default: () => ({ btnTxt: "\u5173\u95ED\u4E0B\u62C9\u6846" }) },
37685
+ align: { default: "center" },
37686
+ reserveSelection: { type: Boolean, default: true },
37687
+ selectable: { type: Function, default: void 0 },
37688
+ multipleFixed: { type: [String, Boolean], default: true },
37689
+ radioTxt: { default: "\u5355\u9009" },
37690
+ radioFixed: { type: [String, Boolean], default: true },
37691
+ tableSize: { default: "default" },
37692
+ border: { type: Boolean, default: true },
37693
+ isShowFirstColumn: { type: Boolean, default: true },
37694
+ useVirtual: { type: Boolean, default: false },
37695
+ virtualShowSize: { default: 30 },
37696
+ isShowPagination: { type: Boolean, default: false },
37697
+ paginationSize: { default: "small" },
37698
+ selfExpanded: { type: Boolean, default: false },
37699
+ isClearQuery: { type: Boolean, default: false },
37700
+ isRadioEchoLabel: { type: Boolean, default: true },
37701
+ defaultValIsOpenRadioChange: { type: Boolean, default: false },
37702
+ radioSameIsCancel: { type: Boolean, default: true },
37703
+ rowClickRadio: { type: Boolean, default: true },
37704
+ isKeyup: { type: Boolean, default: false },
37705
+ isExpanded: { type: Boolean, default: false },
37706
+ multipleDisableDelete: { type: Boolean, default: true },
37707
+ tableLoading: { type: Boolean, default: false },
37708
+ loadingTxt: { default: "\u52A0\u8F7D\u4E2D..." }
37709
+ },
37710
+ emits: ["page-change", "selectionChange", "radioChange", "update:inputValue", "input-focus", "input-blur", "input-clear", "input-click"],
37711
+ setup(__props, { expose: __expose, emit: __emit }) {
37712
+ const {
37713
+ scrollContainerEl,
37714
+ updateRenderedItemCache,
37715
+ updateOffset,
37716
+ getDom,
37717
+ saveDATA,
37718
+ getItemHeightFromCache
37719
+ } = useVirtualized();
37720
+ const props = __props;
37721
+ const vClickOutside = ClickOutside;
37722
+ const emits = __emit;
37723
+ const slots = vue.useSlots();
37724
+ const isDefaultSelectVal = vue.ref(true);
37725
+ const forbidden = vue.ref(true);
37726
+ const isRadio = vue.ref(false);
37727
+ const isQueryVisible = vue.ref(false);
37728
+ const isVisible = vue.ref(false);
37729
+ const radioVal = vue.ref("");
37730
+ const isShowFirstRadio = vue.ref(props.isShowFirstColumn);
37731
+ const selectDefaultLabel = vue.ref(props.modelValue);
37732
+ const scrollTopNum = vue.ref(0);
37733
+ let selectInputVal = vue.computed({
37734
+ get() {
37735
+ return props.inputValue;
37736
+ },
37737
+ set(val) {
37738
+ emits("update:inputValue", val);
37739
+ }
37740
+ });
37741
+ const state = vue.reactive({
37742
+ defaultSelectValue: props.defaultSelectVal,
37743
+ // 默认选中
37744
+ tableData: props.table.data,
37745
+ // table数据
37746
+ defaultValue: props.value,
37747
+ ids: [],
37748
+ // 多选id集合
37749
+ tabularMap: {}
37750
+ // 存储下拉tale的所有name
37751
+ });
37752
+ const selectRef = vue.ref(null);
37753
+ const selectTable = vue.ref(null);
37754
+ const tQueryConditionRef = vue.ref(null);
37755
+ const nowIndex = vue.ref(-1);
37756
+ const tableDataLabelList = vue.computed(() => {
37757
+ return state.tableData.map((item) => item[props.keywords.label]);
37758
+ });
37759
+ vue.watch(
37760
+ () => props.table.data,
37761
+ (val) => {
37762
+ if (props.useVirtual) {
37763
+ saveDATA.value = val;
37764
+ updateRenderData(scrollTopNum.value);
37765
+ } else {
37766
+ state.tableData = val;
37767
+ if (props.multiple && props.multipleDisableDelete) {
37768
+ selectRef.value?.$el?.querySelectorAll(".el-tag").forEach((item) => {
37769
+ if (tableDataLabelList.value?.includes(
37770
+ item.querySelector(".el-select__tags-text")?.innerText
37771
+ )) {
37772
+ item.querySelector(".el-tag__close").style = "display: block";
37773
+ } else {
37774
+ item.querySelector(".el-tag__close").style = "display: none";
37775
+ }
37776
+ });
37777
+ }
37778
+ }
37779
+ vue.nextTick(() => {
37780
+ state.tableData && state.tableData.length > 0 && state.tableData.forEach((item) => {
37781
+ state.tabularMap[item[props.keywords.value]] = item[props.keywords.label];
37782
+ });
37783
+ });
37784
+ },
37785
+ { deep: true }
37786
+ );
37787
+ vue.watch(
37788
+ () => props.defaultSelectVal,
37789
+ (val) => {
37790
+ state.defaultSelectValue = val;
37791
+ if (val.length > 0) {
37792
+ if (props.multiple) {
37793
+ if (isDefaultSelectVal.value) {
37794
+ defaultSelect(state.defaultSelectValue);
37795
+ }
37796
+ } else {
37797
+ defaultSelect(state.defaultSelectValue);
37798
+ }
37799
+ }
37800
+ },
37801
+ { deep: true }
37802
+ );
37803
+ vue.watch(
37804
+ () => props.radioSelectValLabel,
37805
+ (val) => {
37806
+ if (val) findLabel();
37807
+ },
37808
+ { deep: true }
37809
+ );
37810
+ vue.onMounted(() => {
37811
+ if (state.defaultSelectValue && state.defaultSelectValue.length > 0 && isDefaultSelectVal.value) {
37812
+ defaultSelect(state.defaultSelectValue);
37813
+ }
37814
+ if (props.selfExpanded) {
37815
+ selectRef.value.expanded = true;
37816
+ }
37817
+ if (props.useVirtual) {
37818
+ saveDATA.value = props.table.data;
37819
+ isShowFirstRadio.value = false;
37820
+ getDom(props);
37821
+ scrollContainerEl.value?.addEventListener("scroll", handleScroll);
37822
+ }
37823
+ if (props.radioSelectValLabel) findLabel();
37824
+ });
37825
+ const updateRenderData = (scrollTop) => {
37826
+ let startIndex = 0;
37827
+ let offsetHeight = 0;
37828
+ for (let i = 0; i < saveDATA.value.length; i++) {
37829
+ offsetHeight += getItemHeightFromCache(i);
37830
+ if (offsetHeight >= scrollTop) {
37831
+ startIndex = i;
37832
+ break;
37833
+ }
37834
+ }
37835
+ state.tableData = saveDATA.value.slice(startIndex, startIndex + props.virtualShowSize);
37836
+ updateRenderedItemCache(startIndex);
37837
+ updateOffset(offsetHeight - getItemHeightFromCache(startIndex));
37838
+ };
37839
+ const handleScroll = (e) => {
37840
+ scrollTopNum.value = e.target.scrollTop;
37841
+ updateRenderData(scrollTopNum.value);
37842
+ };
37843
+ vue.onBeforeUnmount(() => {
37844
+ if (props.useVirtual) {
37845
+ scrollContainerEl.value?.removeEventListener("scroll", handleScroll);
37846
+ }
37847
+ });
37848
+ vue.onUpdated(() => {
37849
+ if (props.isShowQuery) {
37850
+ selectTable.value.doLayout();
37851
+ }
37852
+ });
37853
+ const visibleChange = (visible) => {
37854
+ isVisible.value = visible;
37855
+ if (isQueryVisible.value) {
37856
+ selectRef.value.expanded = true;
37857
+ }
37858
+ if (visible) {
37859
+ if (state.defaultSelectValue && state.defaultSelectValue.length > 0 && isDefaultSelectVal.value) {
37860
+ defaultSelect(state.defaultSelectValue);
37861
+ }
37862
+ initTableData();
37863
+ if (props.useVirtual) {
37864
+ saveDATA.value = props.table.data;
37865
+ updateRenderData(scrollTopNum.value);
37866
+ }
37867
+ } else {
37868
+ if (tQueryConditionRef.value && props.isShowQuery && props.isClearQuery && !selectRef.value.expanded && !props.selfExpanded) {
37869
+ tQueryConditionRef.value?.resetData();
37870
+ }
37871
+ findLabel();
37872
+ filterMethodHandle("");
37873
+ if (props.useVirtual) {
37874
+ state.tableData = [];
37875
+ saveDATA.value = [];
37876
+ }
37877
+ }
37878
+ if (props.selfExpanded) {
37879
+ selectRef.value.expanded = true;
37880
+ }
37881
+ };
37882
+ const handleEvent = () => {
37883
+ selectRef.value.expanded = true;
37884
+ };
37885
+ const queryVisibleChange = (val) => {
37886
+ isQueryVisible.value = val;
37887
+ };
37888
+ const closeBox = () => {
37889
+ if (tQueryConditionRef.value && props.isShowQuery) {
37890
+ selectRef.value.expanded = true;
37891
+ Object.values(tQueryConditionRef.value?.props?.opts).map((val) => {
37892
+ if (val.comp.includes("select") || val.comp.includes("picker") || val.comp.includes("date")) {
37893
+ val.eventHandle = {
37894
+ "visible-change": ($event) => queryVisibleChange($event)
37895
+ };
37896
+ selectRef.value.expanded = true;
37897
+ }
37898
+ });
37899
+ if (isVisible.value && props.isShowQuery) {
37900
+ selectRef.value.expanded = true;
37901
+ } else {
37902
+ selectRef.value.expanded = false;
37903
+ }
37904
+ }
37905
+ };
37906
+ const attrs = vue.useAttrs();
37907
+ const selectKeyup = (e) => {
37908
+ if (!props.multiple && props.isKeyup && state.tableData.length > 0) {
37909
+ const newIndex = nowIndex.value * 1;
37910
+ const nextIndex = e.keyCode === 40 ? newIndex + 1 : e.keyCode === 38 ? newIndex - 1 : newIndex;
37911
+ const rowHeight = selectTable.value.$el.querySelectorAll(".el-table__row")[0]?.clientHeight || 0;
37912
+ const headerHeight = selectTable.value.$el.querySelectorAll(".el-table__header")[0]?.clientHeight || 0;
37913
+ const attrsMaxHeight = (typeof (attrs["max-height"] || attrs["maxHeight"]) === "number" ? attrs["max-height"] || attrs["maxHeight"] : parseFloat(attrs["max-height"] || attrs["maxHeight"])) || 0;
37914
+ const maxHeight = attrsMaxHeight ? attrsMaxHeight - headerHeight : 0;
37915
+ const height = rowHeight * (nextIndex + 3);
37916
+ const scrollTop = height > maxHeight ? height - maxHeight : 0;
37917
+ if (attrsMaxHeight) {
37918
+ selectTable.value.setScrollTop(scrollTop);
37919
+ }
37920
+ const validNextIndex = Math.max(0, Math.min(nextIndex, state.tableData.length - 1));
37921
+ selectTable.value.setCurrentRow(state.tableData[validNextIndex]);
37922
+ nowIndex.value = validNextIndex;
37923
+ if (e.keyCode === 13) {
37924
+ rowClick(state.tableData[validNextIndex]);
37925
+ }
37926
+ }
37927
+ };
37928
+ const findLabel = () => {
37929
+ vue.nextTick(() => {
37930
+ if (props.multiple) {
37931
+ selectRef.value.selected?.forEach((item) => {
37932
+ item.currentLabel = item.value;
37933
+ });
37934
+ } else {
37935
+ if (props.isRadioEchoLabel) {
37936
+ selectDefaultLabel.value = state.defaultValue && state.defaultValue[props.keywords.label] || props.radioSelectValLabel;
37937
+ } else {
37938
+ selectDefaultLabel.value = state.defaultValue && state.defaultValue[props.keywords.label] || "";
37939
+ }
37940
+ }
37941
+ });
37942
+ };
37943
+ const handlesCurrentChange = (val) => {
37944
+ if (props.multiple) {
37945
+ if (!props.reserveSelection) {
37946
+ clear();
37947
+ }
37948
+ } else {
37949
+ reset();
37950
+ }
37951
+ emits("page-change", val);
37952
+ };
37953
+ const reset = () => {
37954
+ if (!props.multiple) {
37955
+ selectTable.value.setCurrentRow(-1);
37956
+ nowIndex.value = -1;
37957
+ radioVal.value = "";
37958
+ isDefaultSelectVal.value = true;
37959
+ forbidden.value = false;
37960
+ }
37961
+ };
37962
+ const defaultSelect = (defaultSelectVal) => {
37963
+ if (props.multiple) {
37964
+ const multipleList = defaultSelectVal.map((val) => state.tableData.find((row) => row[props.keywords.value] === val)).filter(Boolean);
37965
+ setTimeout(() => {
37966
+ state.defaultValue = multipleList.map((item) => item[props.keywords.label]);
37967
+ multipleList.forEach((row) => {
37968
+ selectTable.value.toggleRowSelection(row, true);
37969
+ });
37970
+ selectRef.value?.selected?.forEach((item) => {
37971
+ item.currentLabel = item.value;
37972
+ });
37973
+ }, 0);
37974
+ } else {
37975
+ setTimeout(() => {
37976
+ const row = state.tableData.find((item) => item[props.keywords.value] === defaultSelectVal[0]);
37977
+ if (row) {
37978
+ radioVal.value = state.tableData.indexOf(row) + 1;
37979
+ state.defaultValue = row;
37980
+ selectDefaultLabel.value = row[props.keywords.label];
37981
+ if (!props.defaultValIsOpenRadioChange) {
37982
+ emits("radioChange", row, row[props.keywords.value]);
37983
+ }
37984
+ }
37985
+ }, 0);
37986
+ }
37987
+ };
37988
+ const handlesSelectionChange = (val) => {
37989
+ isDefaultSelectVal.value = false;
37990
+ state.defaultValue = val.map((item) => item[props.keywords.label]);
37991
+ state.ids = val.map((item) => item[props.keywords.value]);
37992
+ if (val.length === 0) {
37993
+ isDefaultSelectVal.value = true;
37994
+ state.defaultSelectValue = [];
37995
+ }
37996
+ emits("selectionChange", val, state.ids);
37997
+ };
37998
+ const getRowClassName = ({ row }) => {
37999
+ if (!props.multiple && JSON.stringify(row) === JSON.stringify(state.defaultValue)) {
38000
+ return "selected_row_style";
38001
+ }
38002
+ return "";
38003
+ };
38004
+ const getRowKey = (row) => {
38005
+ return row[props.keywords.value];
38006
+ };
38007
+ const filterMethodHandle = (val) => {
38008
+ if (!props.filterable) return;
38009
+ if (props.filterable && props.remote && typeof props.remoteMethod === "function") {
38010
+ props.remoteMethod(val);
38011
+ return;
38012
+ }
38013
+ const tableData = JSON.parse(JSON.stringify(props.table?.data));
38014
+ if (!tableData || tableData.length === 0) return;
38015
+ if (!props.multiple) {
38016
+ if (val) {
38017
+ radioVal.value = "";
38018
+ } else {
38019
+ const defaultIndex = tableData.findIndex(
38020
+ (item) => item[props.keywords.label] === selectDefaultLabel.value
38021
+ );
38022
+ if (defaultIndex !== -1) {
38023
+ radioVal.value = defaultIndex + 1;
38024
+ }
38025
+ }
38026
+ }
38027
+ state.tableData = tableData.filter((item) => {
38028
+ return item[props.keywords.label]?.includes(val);
38029
+ });
38030
+ if (selectDefaultLabel.value) {
38031
+ const defaultIndex = state.tableData.findIndex(
38032
+ (item) => item[props.keywords.label] === selectDefaultLabel.value
38033
+ );
38034
+ if (defaultIndex !== -1) {
38035
+ radioVal.value = defaultIndex + 1;
38036
+ }
38037
+ }
38038
+ };
38039
+ const initTableData = () => {
38040
+ vue.nextTick(() => {
38041
+ if (props.multiple) {
38042
+ state.defaultValue?.forEach((row) => {
38043
+ const matchedRow = state.tableData.find(
38044
+ (item) => item[props.keywords.value] === row[props.keywords.value]
38045
+ );
38046
+ if (matchedRow) {
38047
+ selectTable.value.toggleRowSelection(matchedRow, true);
38048
+ }
38049
+ });
38050
+ } else {
38051
+ const matchedRow = state.tableData?.find(
38052
+ (item) => item[props.keywords.value] === selectDefaultLabel.value
38053
+ );
38054
+ if (matchedRow) {
38055
+ selectTable.value.setCurrentRow(matchedRow);
38056
+ }
38057
+ }
38058
+ });
38059
+ };
38060
+ const copyToClipboard = async (text) => {
38061
+ if (typeof text !== "string" || text.trim() === "") {
38062
+ throw new Error("\u65E0\u6548\u7684\u590D\u5236\u5185\u5BB9");
38063
+ }
38064
+ try {
38065
+ await navigator.clipboard.writeText(text);
38066
+ } catch (error) {
38067
+ if (error.name === "NotAllowedError" || error.name === "SecurityError") {
38068
+ throw new Error("\u590D\u5236\u5931\u8D25\uFF1A\u6743\u9650\u88AB\u62D2\u7EDD");
38069
+ } else {
38070
+ throw new Error("\u590D\u5236\u5931\u8D25\uFF1A\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u6216\u53D1\u751F\u672A\u77E5\u9519\u8BEF");
38071
+ }
38072
+ }
38073
+ };
38074
+ const showMessage = (type, message) => {
38075
+ if (type === "success") {
38076
+ elementPlus.ElMessage.success(message);
38077
+ } else {
38078
+ elementPlus.ElMessage.error(message);
38079
+ }
38080
+ };
38081
+ const cellDblclick = async (row, column) => {
38082
+ const value = row[column.property];
38083
+ try {
38084
+ await copyToClipboard(String(value));
38085
+ showMessage("success", "\u590D\u5236\u6210\u529F");
38086
+ } catch (error) {
38087
+ showMessage("error", error.message || "\u590D\u5236\u5931\u8D25");
38088
+ }
38089
+ };
38090
+ const radioChangeHandle = (event, row, index) => {
38091
+ event.preventDefault();
38092
+ if (row.isRadioDisabled) return;
38093
+ isDefaultSelectVal.value = false;
38094
+ radioClick(row, index);
38095
+ };
38096
+ const isForbidden = () => {
38097
+ forbidden.value = false;
38098
+ setTimeout(() => {
38099
+ forbidden.value = true;
38100
+ }, 0);
38101
+ };
38102
+ const radioClick = (row, index) => {
38103
+ forbidden.value = !forbidden.value;
38104
+ if (radioVal.value === index) {
38105
+ if (!props.radioSameIsCancel) return;
38106
+ clear();
38107
+ } else {
38108
+ updateState(row, index);
38109
+ }
38110
+ if (props.isExpanded && state.defaultValue) {
38111
+ selectDefaultLabel.value = state.defaultValue[props.keywords.label] || "";
38112
+ selectRef.value.expanded = true;
38113
+ } else {
38114
+ blur();
38115
+ }
38116
+ };
38117
+ const updateState = (row, index) => {
38118
+ isForbidden();
38119
+ radioVal.value = index;
38120
+ state.defaultValue = row;
38121
+ emits("radioChange", row, row[props.keywords.value]);
38122
+ };
38123
+ const rowClick = async (row) => {
38124
+ if (row.isRadioDisabled) return;
38125
+ if (!props.rowClickRadio) return;
38126
+ if (!props.multiple) {
38127
+ const rowIndex = props.table?.data.findIndex(
38128
+ (item) => item[props.keywords.value] === row[props.keywords.value]
38129
+ );
38130
+ if (rowIndex !== -1) {
38131
+ isDefaultSelectVal.value = false;
38132
+ await radioClick(row, rowIndex + 1);
38133
+ if (radioVal.value) {
38134
+ isRadio.value = true;
38135
+ } else {
38136
+ isRadio.value = false;
38137
+ }
38138
+ }
38139
+ }
38140
+ };
38141
+ const removeTag = (tag) => {
38142
+ const row = state.tableData.find(
38143
+ (item) => item[props.keywords.label] === tag
38144
+ );
38145
+ row && selectTable.value.toggleRowSelection(row, false);
38146
+ isDefaultSelectVal.value = true;
38147
+ };
38148
+ const clear = () => {
38149
+ const resetDefaultState = () => {
38150
+ isDefaultSelectVal.value = true;
38151
+ state.defaultSelectValue = [];
38152
+ state.defaultValue = props.multiple ? [] : null;
38153
+ };
38154
+ if (!selectTable.value) {
38155
+ console.warn("selectTable.value is not initialized");
38156
+ return;
38157
+ }
38158
+ if (props.multiple === true) {
38159
+ try {
38160
+ selectTable.value.clearSelection();
38161
+ } catch (error) {
38162
+ console.error("Failed to clear selection:", error);
38163
+ }
38164
+ resetDefaultState();
38165
+ } else if (props.multiple === false) {
38166
+ try {
38167
+ selectTable.value.setCurrentRow(-1);
38168
+ } catch (error) {
38169
+ console.error("Failed to set current row:", error);
38170
+ }
38171
+ nowIndex.value = -1;
38172
+ radioVal.value = "";
38173
+ forbidden.value = false;
38174
+ selectDefaultLabel.value = null;
38175
+ resetDefaultState();
38176
+ emits("radioChange", null, null);
38177
+ } else {
38178
+ console.warn("Invalid value for props.multiple:", props.multiple);
38179
+ }
38180
+ };
38181
+ const blur = () => {
38182
+ selectRef.value.blur();
38183
+ };
38184
+ const focus = () => {
38185
+ selectRef.value.focus();
38186
+ };
38187
+ const isShowSlot = (name) => {
38188
+ return Object.keys(slots).includes(name);
38189
+ };
38190
+ __expose({
38191
+ focus,
38192
+ blur,
38193
+ clear,
38194
+ props,
38195
+ state,
38196
+ tQueryConditionRef,
38197
+ selectRef,
38198
+ selectTable
38199
+ });
38200
+ return (_ctx, _cache) => {
38201
+ const _component_el_input = vue.resolveComponent("el-input");
38202
+ const _component_el_button = vue.resolveComponent("el-button");
38203
+ const _component_el_table_column = vue.resolveComponent("el-table-column");
38204
+ const _component_el_radio = vue.resolveComponent("el-radio");
38205
+ const _component_el_table = vue.resolveComponent("el-table");
38206
+ const _component_el_pagination = vue.resolveComponent("el-pagination");
38207
+ const _component_el_select = vue.resolveComponent("el-select");
38208
+ const _directive_loading = vue.resolveDirective("loading");
38209
+ return _ctx.isShowInput ? (vue.openBlock(), vue.createBlock(_component_el_input, vue.mergeProps({
38210
+ key: 0,
38211
+ modelValue: vue.unref(selectInputVal),
38212
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(selectInputVal) ? selectInputVal.value = $event : selectInputVal = $event)
38213
+ }, { clearable: true, ..._ctx.inputAttr }, {
38214
+ onFocus: _cache[1] || (_cache[1] = () => emits("input-focus")),
38215
+ onBlur: _cache[2] || (_cache[2] = () => emits("input-blur")),
38216
+ onClick: _cache[3] || (_cache[3] = () => emits("input-click")),
38217
+ onClear: _cache[4] || (_cache[4] = () => emits("input-clear")),
38218
+ style: { width: _ctx.inputWidth ? `${_ctx.inputWidth}px` : "100%" }
38219
+ }), vue.createSlots({
38220
+ _: 2
38221
+ /* DYNAMIC */
38222
+ }, [
38223
+ vue.renderList(vue.unref(slots), (_index, name) => {
38224
+ return {
38225
+ name,
38226
+ fn: vue.withCtx((data) => [
38227
+ vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(data)))
38228
+ ])
38229
+ };
38230
+ })
38231
+ ]), 1040, ["modelValue", "style"])) : vue.withDirectives((vue.openBlock(), vue.createBlock(_component_el_select, vue.mergeProps({
38232
+ key: 1,
38233
+ ref_key: "selectRef",
38234
+ ref: selectRef,
38235
+ "model-value": _ctx.multiple ? state.defaultValue : selectDefaultLabel.value,
38236
+ "popper-class": "fm-select-table",
38237
+ style: { width: _ctx.selectWidth ? `${_ctx.selectWidth}px` : "100%" },
38238
+ "value-key": _ctx.keywords.value,
38239
+ "filter-method": _ctx.filterMethod || filterMethodHandle,
38240
+ onVisibleChange: visibleChange,
38241
+ onRemoveTag: removeTag,
38242
+ onClear: clear,
38243
+ onKeyup: selectKeyup
38244
+ }, { clearable: true, multiple: _ctx.multiple, filterable: _ctx.filterable, remote: _ctx.remote, remoteMethod: _ctx.remoteMethod, ..._ctx.$attrs }), {
38245
+ empty: vue.withCtx(() => [
38246
+ vue.createElementVNode(
38247
+ "div",
38248
+ {
38249
+ class: "fm-table-select__table",
38250
+ style: vue.normalizeStyle({ width: _ctx.tableWidth ? `${_ctx.tableWidth}px` : "100%" })
38251
+ },
38252
+ [
38253
+ _ctx.isShowQuery ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
38254
+ vue.createVNode(
38255
+ _sfc_main$4,
38256
+ vue.mergeProps({
38257
+ ref_key: "tQueryConditionRef",
38258
+ ref: tQueryConditionRef,
38259
+ boolEnter: false,
38260
+ onHandleEvent: handleEvent
38261
+ }, _ctx.$attrs),
38262
+ vue.createSlots({
38263
+ _: 2
38264
+ /* DYNAMIC */
38265
+ }, [
38266
+ vue.renderList(vue.unref(slots), (_index, name) => {
38267
+ return {
38268
+ name,
38269
+ fn: vue.withCtx((data) => [
38270
+ vue.renderSlot(_ctx.$slots, name, vue.normalizeProps(vue.guardReactiveProps(data)))
38271
+ ])
38272
+ };
38273
+ }),
38274
+ _ctx.isShowBlurBtn ? {
38275
+ name: "querybar",
38276
+ fn: vue.withCtx(() => [
38277
+ vue.createVNode(
38278
+ _component_el_button,
38279
+ vue.mergeProps({ type: "danger", ..._ctx.btnBind }, { onClick: blur }),
38280
+ {
38281
+ default: vue.withCtx(() => [
38282
+ vue.createTextVNode(
38283
+ vue.toDisplayString(_ctx.btnBind.btnTxt || "\u5173\u95ED\u4E0B\u62C9\u6846"),
38284
+ 1
38285
+ /* TEXT */
38286
+ )
38287
+ ]),
38288
+ _: 1
38289
+ /* STABLE */
38290
+ },
38291
+ 16
38292
+ /* FULL_PROPS */
38293
+ ),
38294
+ vue.renderSlot(_ctx.$slots, "querybar")
38295
+ ]),
38296
+ key: "0"
38297
+ } : void 0
38298
+ ]),
38299
+ 1040
38300
+ /* FULL_PROPS, DYNAMIC_SLOTS */
38301
+ )
38302
+ ])) : vue.createCommentVNode("v-if", true),
38303
+ vue.createElementVNode(
38304
+ "div",
38305
+ {
38306
+ class: "header_wrap",
38307
+ style: vue.normalizeStyle({ paddingBottom: isShowSlot("toolbar") ? "10px" : 0 })
38308
+ },
38309
+ [
38310
+ vue.renderSlot(_ctx.$slots, "toolbar")
38311
+ ],
38312
+ 4
38313
+ /* STYLE */
38314
+ ),
38315
+ vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
38316
+ class: "table_content",
38317
+ "element-loading-text": _ctx.loadingTxt
38318
+ }, [
38319
+ vue.createVNode(_component_el_table, vue.mergeProps({
38320
+ ref_key: "selectTable",
38321
+ ref: selectTable,
38322
+ data: state.tableData,
38323
+ class: {
38324
+ radioStyle: !_ctx.multiple,
38325
+ highlightCurrentRow: isRadio.value,
38326
+ keyUpStyle: _ctx.isKeyup,
38327
+ fm_select_table_multiple: _ctx.useVirtual && _ctx.multiple,
38328
+ fm_select_table_radio: _ctx.useVirtual && !_ctx.multiple
38329
+ },
38330
+ "row-class-name": getRowClassName,
38331
+ "row-key": getRowKey,
38332
+ onRowClick: rowClick,
38333
+ onCellDblclick: cellDblclick,
38334
+ onSelectionChange: handlesSelectionChange
38335
+ }, { border: _ctx.border, size: _ctx.tableSize, "highlight-current-row": true, ..._ctx.$attrs }), {
38336
+ default: vue.withCtx(() => [
38337
+ _ctx.multiple ? (vue.openBlock(), vue.createBlock(_component_el_table_column, {
38338
+ key: 0,
38339
+ type: "selection",
38340
+ width: _ctx.tableSize === "large" ? 65 : 55,
38341
+ align: _ctx.align || "center",
38342
+ "reserve-selection": _ctx.reserveSelection,
38343
+ selectable: _ctx.selectable,
38344
+ fixed: _ctx.multipleFixed
38345
+ }, null, 8, ["width", "align", "reserve-selection", "selectable", "fixed"])) : vue.createCommentVNode("v-if", true),
38346
+ !_ctx.multiple && isShowFirstRadio.value ? (vue.openBlock(), vue.createBlock(_component_el_table_column, {
38347
+ key: 1,
38348
+ type: "radio",
38349
+ width: _ctx.tableSize === "large" ? 65 : 55,
38350
+ label: _ctx.radioTxt,
38351
+ fixed: _ctx.radioFixed,
38352
+ align: _ctx.align || "center"
38353
+ }, {
38354
+ default: vue.withCtx((scope) => [
38355
+ vue.createVNode(_component_el_radio, {
38356
+ modelValue: radioVal.value,
38357
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => radioVal.value = $event),
38358
+ label: scope.$index + 1,
38359
+ disabled: scope.row.isRadioDisabled,
38360
+ onClick: vue.withModifiers(($event) => radioChangeHandle($event, scope.row, scope.$index + 1), ["stop"])
38361
+ }, null, 8, ["modelValue", "label", "disabled", "onClick"])
38362
+ ]),
38363
+ _: 1
38364
+ /* STABLE */
38365
+ }, 8, ["width", "label", "fixed", "align"])) : vue.createCommentVNode("v-if", true),
38366
+ (vue.openBlock(true), vue.createElementBlock(
38367
+ vue.Fragment,
38368
+ null,
38369
+ vue.renderList(_ctx.columns, (item, index) => {
38370
+ return vue.openBlock(), vue.createBlock(_component_el_table_column, vue.mergeProps({
38371
+ key: index + "i",
38372
+ type: item.type,
38373
+ label: item.label,
38374
+ prop: item.prop,
38375
+ "min-width": item["min-width"] || item.minWidth,
38376
+ width: item.width,
38377
+ align: item.align || _ctx.align || "center",
38378
+ fixed: item.fixed
38379
+ }, { ref_for: true }, { "show-overflow-tooltip": true, ...item.bind }), {
38380
+ default: vue.withCtx((scope) => [
38381
+ vue.createCommentVNode(" render\u65B9\u5F0F "),
38382
+ item.render ? (vue.openBlock(), vue.createBlock(_sfc_main$3, {
38383
+ key: 0,
38384
+ column: item,
38385
+ row: scope.row,
38386
+ render: item.render,
38387
+ index: scope.$index
38388
+ }, null, 8, ["column", "row", "render", "index"])) : vue.createCommentVNode("v-if", true),
38389
+ vue.createCommentVNode(" \u4F5C\u7528\u57DF\u63D2\u69FD "),
38390
+ item.slotName ? vue.renderSlot(_ctx.$slots, item.slotName, {
38391
+ key: 1,
38392
+ scope
38393
+ }) : vue.createCommentVNode("v-if", true),
38394
+ !item.render && !item.slotName ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
38395
+ vue.createElementVNode(
38396
+ "span",
38397
+ null,
38398
+ vue.toDisplayString(scope.row[item.prop]),
38399
+ 1
38400
+ /* TEXT */
38401
+ )
38402
+ ])) : vue.createCommentVNode("v-if", true)
38403
+ ]),
38404
+ _: 2
38405
+ /* DYNAMIC */
38406
+ }, 1040, ["type", "label", "prop", "min-width", "width", "align", "fixed"]);
38407
+ }),
38408
+ 128
38409
+ /* KEYED_FRAGMENT */
38410
+ )),
38411
+ vue.renderSlot(_ctx.$slots, "default")
38412
+ ]),
38413
+ _: 3
38414
+ /* FORWARDED */
38415
+ }, 16, ["data", "class"]),
38416
+ _ctx.isShowPagination ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4, [
38417
+ vue.createVNode(_component_el_pagination, vue.mergeProps({
38418
+ "current-page": _ctx.table.currentPage,
38419
+ "onUpdate:currentPage": _cache[6] || (_cache[6] = ($event) => _ctx.table.currentPage = $event),
38420
+ "page-size": _ctx.table.pageSize,
38421
+ "onUpdate:pageSize": _cache[7] || (_cache[7] = ($event) => _ctx.table.pageSize = $event),
38422
+ onCurrentChange: handlesCurrentChange,
38423
+ layout: "total, prev, pager, next, jumper",
38424
+ "pager-count": _ctx.table["pager-count"] || 5,
38425
+ total: _ctx.table.total
38426
+ }, { background: true, size: _ctx.paginationSize || "small", ..._ctx.$attrs }), null, 16, ["current-page", "page-size", "pager-count", "total"])
38427
+ ])) : vue.createCommentVNode("v-if", true)
38428
+ ], 8, _hoisted_2)), [
38429
+ [_directive_loading, _ctx.tableLoading]
38430
+ ]),
38431
+ vue.renderSlot(_ctx.$slots, "footer")
38432
+ ],
38433
+ 4
38434
+ /* STYLE */
38435
+ )
38436
+ ]),
38437
+ _: 3
38438
+ /* FORWARDED */
38439
+ }, 16, ["model-value", "style", "value-key", "filter-method"])), [
38440
+ [vue.unref(vClickOutside), closeBox]
38441
+ ]);
38442
+ };
38443
+ }
38444
+ });
38445
+
36616
38446
  const _hoisted_1 = ["src"];
36617
38447
  var _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
36618
38448
  ...{
@@ -36712,14 +38542,19 @@
36712
38542
  }
36713
38543
  }
36714
38544
 
36715
- const FmTransfer = _sfc_main$9;
36716
- const FmNoticeBar = _sfc_main$8;
38545
+ const FmTransfer = _sfc_main$e;
38546
+ const FmNoticeBar = _sfc_main$d;
36717
38547
  const FmDragImg = dragimg;
36718
- const Fmselect = _sfc_main$6;
36719
- const FmAutocomplete = _sfc_main$5;
36720
- const Fminputdropdown = _sfc_main$4;
36721
- const Fmdatepicker = _sfc_main$2;
36722
- const FmTree = _sfc_main$3;
38548
+ const Fmselect = _sfc_main$b;
38549
+ const FmAutocomplete = _sfc_main$a;
38550
+ const Fminputdropdown = _sfc_main$9;
38551
+ const Fmdatepicker = _sfc_main$7;
38552
+ const FmTree = _sfc_main$8;
38553
+ const FmQueryCondition = _sfc_main$4;
38554
+ const FmMoreChoose = _sfc_main$5;
38555
+ const FmRenderComp = _sfc_main$6;
38556
+ const FmSelectTable = _sfc_main$2;
38557
+ const FmRenderCol = _sfc_main$3;
36723
38558
 
36724
38559
  const makeInstaller = (components = []) => {
36725
38560
  const install = (app) => {
@@ -36772,7 +38607,12 @@
36772
38607
  FmAutocomplete,
36773
38608
  Fminputdropdown,
36774
38609
  FmTree,
36775
- Fmdatepicker
38610
+ Fmdatepicker,
38611
+ FmQueryCondition,
38612
+ FmMoreChoose,
38613
+ FmRenderComp,
38614
+ FmSelectTable,
38615
+ FmRenderCol
36776
38616
  ];
36777
38617
 
36778
38618
  var installer = makeInstaller([...plugins]);
@@ -53603,7 +55443,12 @@
53603
55443
  exports.FmAutocomplete = FmAutocomplete;
53604
55444
  exports.FmDragImg = FmDragImg;
53605
55445
  exports.FmLogin = FmLogin;
55446
+ exports.FmMoreChoose = FmMoreChoose;
53606
55447
  exports.FmNoticeBar = FmNoticeBar;
55448
+ exports.FmQueryCondition = FmQueryCondition;
55449
+ exports.FmRenderCol = FmRenderCol;
55450
+ exports.FmRenderComp = FmRenderComp;
55451
+ exports.FmSelectTable = FmSelectTable;
53607
55452
  exports.FmTransfer = FmTransfer;
53608
55453
  exports.FmTree = FmTree;
53609
55454
  exports.Fmdatepicker = Fmdatepicker;