@fecp/vue 1.1.3 → 1.1.4

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 (119) hide show
  1. package/es/_virtual/bessel.mjs +7 -0
  2. package/es/_virtual/bessel2.mjs +4 -0
  3. package/es/_virtual/index.mjs +1 -1
  4. package/es/_virtual/index2.mjs +1 -1
  5. package/es/_virtual/jstat.mjs +7 -0
  6. package/es/_virtual/jstat2.mjs +4 -0
  7. package/es/node_modules/.pnpm/@formulajs_formulajs@4.5.6/node_modules/@formulajs/formulajs/lib/esm/index.mjs +7150 -0
  8. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/index.esm.mjs +1 -1
  9. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/clipboard.mjs +1 -1
  10. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/commands.mjs +1 -1
  11. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/config.mjs +1 -1
  12. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/event.mjs +1 -1
  13. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/formats.mjs +1 -1
  14. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18n.mjs +1 -1
  15. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/icon.mjs +1 -1
  16. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/interceptor.mjs +1 -1
  17. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/menus.mjs +1 -1
  18. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/permission.mjs +1 -1
  19. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/renderer.mjs +1 -1
  20. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/resize.mjs +1 -1
  21. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/store.mjs +1 -1
  22. package/es/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/vm.mjs +1 -1
  23. package/es/node_modules/.pnpm/bessel@1.0.2/node_modules/bessel/bessel.mjs +226 -0
  24. package/es/node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/container/index.mjs +7 -7
  25. package/es/node_modules/.pnpm/jstat@1.9.6/node_modules/jstat/dist/jstat.mjs +3853 -0
  26. package/es/packages/mobile/src/components/form/field/Field.vue.mjs +1 -1
  27. package/es/packages/mobile/src/utils/formatterUtil.mjs +1 -1
  28. package/es/packages/mobile/src/utils/optionUtil.mjs +1 -1
  29. package/es/packages/vue/index.mjs +4 -0
  30. package/es/packages/vue/src/components/all.mjs +4 -0
  31. package/es/packages/vue/src/components/details/header/Header.vue.mjs +1 -1
  32. package/es/packages/vue/src/components/forms/checkbox/Checkbox.vue.mjs +8 -2
  33. package/es/packages/vue/src/components/forms/date/Date.vue.mjs +6 -6
  34. package/es/packages/vue/src/components/forms/divider/Divider.vue.mjs +15 -20
  35. package/es/packages/vue/src/components/forms/divider/index.mjs +2 -2
  36. package/es/packages/vue/src/components/forms/form/Form.vue.mjs +281 -96
  37. package/es/packages/vue/src/components/forms/form/index.mjs +2 -2
  38. package/es/packages/vue/src/components/forms/formItem/FormItem.vue.mjs +76 -48
  39. package/es/packages/vue/src/components/forms/h2/H2.vue.mjs +16 -7
  40. package/es/packages/vue/src/components/forms/multipleSelection/MultipleSelection.vue.mjs +1 -1
  41. package/es/packages/vue/src/components/forms/number/Number.vue.mjs +18 -12
  42. package/es/packages/vue/src/components/forms/radio/Radio.vue.mjs +5 -3
  43. package/es/packages/vue/src/components/forms/select/Select.vue.mjs +6 -4
  44. package/es/packages/vue/src/components/forms/subForm/SubForm.vue.mjs +90 -0
  45. package/es/packages/vue/src/components/forms/subForm/index.mjs +7 -0
  46. package/es/packages/vue/src/components/forms/subTable/SubTable.vue.mjs +109 -0
  47. package/es/packages/vue/src/components/forms/subTable/index.mjs +7 -0
  48. package/es/packages/vue/src/components/forms/switch/Switch.vue.mjs +1 -1
  49. package/es/packages/vue/src/components/forms/text/Text.vue.mjs +6 -3
  50. package/es/packages/vue/src/components/forms/textarea/Textarea.vue.mjs +7 -4
  51. package/es/packages/vue/src/components/table/CustomButtons.vue.mjs +17 -17
  52. package/es/packages/vue/src/components/table/Table.vue.mjs +143 -77
  53. package/es/packages/vue/src/components/table/TableColumn.vue.mjs +37 -5
  54. package/es/packages/vue/src/components/table/TableFilter.vue.mjs +60 -21
  55. package/es/packages/vue/src/components/table/index.mjs +2 -2
  56. package/es/packages/vue/src/composables/usePageEvents.mjs +4 -5
  57. package/es/packages/vue/src/utils/common.mjs +5 -0
  58. package/es/packages/vue/src/utils/datasource.mjs +9 -1
  59. package/es/packages/vue/src/utils/formulajs/calculate.mjs +57 -0
  60. package/es/packages/vue/src/utils/formulajs/functionCore.mjs +17 -0
  61. package/es/vue.css +170 -61
  62. package/lib/_virtual/bessel.js +7 -0
  63. package/lib/_virtual/bessel2.js +4 -0
  64. package/lib/_virtual/index.js +1 -1
  65. package/lib/_virtual/index2.js +1 -1
  66. package/lib/_virtual/jstat.js +7 -0
  67. package/lib/_virtual/jstat2.js +4 -0
  68. package/lib/node_modules/.pnpm/@formulajs_formulajs@4.5.6/node_modules/@formulajs/formulajs/lib/esm/index.js +7150 -0
  69. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/index.esm.js +1 -1
  70. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/clipboard.js +1 -1
  71. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/commands.js +1 -1
  72. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/config.js +1 -1
  73. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/event.js +1 -1
  74. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/formats.js +1 -1
  75. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/i18n.js +1 -1
  76. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/icon.js +1 -1
  77. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/interceptor.js +1 -1
  78. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/menus.js +1 -1
  79. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/permission.js +1 -1
  80. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/renderer.js +1 -1
  81. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/resize.js +1 -1
  82. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/store.js +1 -1
  83. package/lib/node_modules/.pnpm/@vxe-ui_core@4.3.1_vue@3.5.13_typescript@5.7.3_/node_modules/@vxe-ui/core/es/src/vm.js +1 -1
  84. package/lib/node_modules/.pnpm/bessel@1.0.2/node_modules/bessel/bessel.js +226 -0
  85. package/lib/node_modules/.pnpm/jstat@1.9.6/node_modules/jstat/dist/jstat.js +3853 -0
  86. package/lib/packages/mobile/src/components/form/field/Field.vue.js +1 -1
  87. package/lib/packages/mobile/src/utils/formatterUtil.js +1 -1
  88. package/lib/packages/mobile/src/utils/optionUtil.js +1 -1
  89. package/lib/packages/vue/index.js +13 -9
  90. package/lib/packages/vue/src/components/all.js +10 -6
  91. package/lib/packages/vue/src/components/details/header/Header.vue.js +1 -1
  92. package/lib/packages/vue/src/components/forms/checkbox/Checkbox.vue.js +8 -2
  93. package/lib/packages/vue/src/components/forms/date/Date.vue.js +6 -6
  94. package/lib/packages/vue/src/components/forms/divider/Divider.vue.js +14 -19
  95. package/lib/packages/vue/src/components/forms/form/Form.vue.js +280 -95
  96. package/lib/packages/vue/src/components/forms/formItem/FormItem.vue.js +63 -35
  97. package/lib/packages/vue/src/components/forms/h2/H2.vue.js +15 -6
  98. package/lib/packages/vue/src/components/forms/multipleSelection/MultipleSelection.vue.js +1 -1
  99. package/lib/packages/vue/src/components/forms/number/Number.vue.js +18 -12
  100. package/lib/packages/vue/src/components/forms/radio/Radio.vue.js +5 -3
  101. package/lib/packages/vue/src/components/forms/select/Select.vue.js +6 -4
  102. package/lib/packages/vue/src/components/forms/subForm/SubForm.vue.js +90 -0
  103. package/lib/packages/vue/src/components/forms/subForm/index.js +7 -0
  104. package/lib/packages/vue/src/components/forms/subTable/SubTable.vue.js +109 -0
  105. package/lib/packages/vue/src/components/forms/subTable/index.js +7 -0
  106. package/lib/packages/vue/src/components/forms/switch/Switch.vue.js +1 -1
  107. package/lib/packages/vue/src/components/forms/text/Text.vue.js +6 -3
  108. package/lib/packages/vue/src/components/forms/textarea/Textarea.vue.js +7 -4
  109. package/lib/packages/vue/src/components/table/CustomButtons.vue.js +16 -16
  110. package/lib/packages/vue/src/components/table/Table.vue.js +145 -79
  111. package/lib/packages/vue/src/components/table/TableColumn.vue.js +37 -5
  112. package/lib/packages/vue/src/components/table/TableFilter.vue.js +82 -43
  113. package/lib/packages/vue/src/composables/usePageEvents.js +4 -5
  114. package/lib/packages/vue/src/utils/common.js +5 -0
  115. package/lib/packages/vue/src/utils/datasource.js +9 -1
  116. package/lib/packages/vue/src/utils/formulajs/calculate.js +57 -0
  117. package/lib/packages/vue/src/utils/formulajs/functionCore.js +17 -0
  118. package/lib/vue.css +170 -61
  119. package/package.json +1 -1
@@ -13,7 +13,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
13
13
  required: true
14
14
  },
15
15
  modelValue: {
16
- type: String,
16
+ type: [String, Number],
17
17
  default: ""
18
18
  },
19
19
  placeholder: {
@@ -45,7 +45,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
45
45
  default: false
46
46
  }
47
47
  },
48
- emits: ["update:modelValue", "change", "blur"],
48
+ emits: ["update:modelValue", "change"],
49
49
  setup(__props, { emit: __emit }) {
50
50
  const props = __props;
51
51
  const emit = __emit;
@@ -53,9 +53,11 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
53
53
  get: () => props.modelValue,
54
54
  set: (val) => {
55
55
  emit("update:modelValue", val);
56
- emit("change", val);
57
56
  }
58
57
  });
58
+ function handleChange(val) {
59
+ emit("change", val);
60
+ }
59
61
  return (_ctx, _cache) => {
60
62
  const _component_el_input = ElInput;
61
63
  return openBlock(), createElementBlock("div", _hoisted_1, [
@@ -72,7 +74,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
72
74
  rows: __props.rows,
73
75
  autosize: __props.autosize,
74
76
  clearable: "",
75
- resize: "none"
77
+ resize: "none",
78
+ onChange: handleChange
76
79
  }), null, 16, ["modelValue", "placeholder", "disabled", "readonly", "maxlength", "show-word-limit", "rows", "autosize"])
77
80
  ]);
78
81
  };
@@ -1,16 +1,13 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
- import { computed, createElementBlock, createCommentVNode, openBlock, createVNode, unref, withCtx, Fragment, renderList, createBlock, createTextVNode, toDisplayString } from "vue";
3
+ import { computed, createElementBlock, openBlock, createBlock, createCommentVNode, unref, withCtx, Fragment, renderList, createTextVNode, toDisplayString } from "vue";
4
4
  import "../../../../../node_modules/.pnpm/vxe-table@4.17.47_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/components.mjs";
5
5
  import { Search as search_default, Edit as edit_default, Delete as delete_default, Plus as plus_default, Setting as setting_default, Download as download_default, Refresh as refresh_default } from "../../../../../node_modules/.pnpm/@element-plus_icons-vue@2.3.2_vue@3.5.13_typescript@5.7.3_/node_modules/@element-plus/icons-vue/dist/index.mjs";
6
6
  /* empty css */
7
7
  import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.mjs";
8
8
  import { VxeToolbar } from "../../../../../node_modules/.pnpm/vxe-table@4.17.47_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/toolbar/index.mjs";
9
9
  import { ElButton } from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/button/index.mjs";
10
- const _hoisted_1 = {
11
- key: 0,
12
- class: "custom-buttons"
13
- };
10
+ const _hoisted_1 = { class: "custom-buttons" };
14
11
  const _sfc_main = {
15
12
  __name: "CustomButtons",
16
13
  props: {
@@ -37,13 +34,13 @@ const _sfc_main = {
37
34
  });
38
35
  const getBtnIcon = (btnType) => {
39
36
  const iconMap = {
40
- "refresh": refresh_default,
41
- "export": download_default,
42
- "personalize": setting_default,
43
- "add": plus_default,
44
- "delete": delete_default,
45
- "edit": edit_default,
46
- "search": search_default
37
+ refresh: refresh_default,
38
+ export: download_default,
39
+ personalize: setting_default,
40
+ add: plus_default,
41
+ delete: delete_default,
42
+ edit: edit_default,
43
+ search: search_default
47
44
  };
48
45
  return iconMap[btnType] || null;
49
46
  };
@@ -62,8 +59,11 @@ const _sfc_main = {
62
59
  };
63
60
  return (_ctx, _cache) => {
64
61
  const _component_el_button = ElButton;
65
- return hasButtons.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
66
- createVNode(unref(VxeToolbar), { ref: "toolbarRef" }, {
62
+ return openBlock(), createElementBlock("div", _hoisted_1, [
63
+ hasButtons.value ? (openBlock(), createBlock(unref(VxeToolbar), {
64
+ key: 0,
65
+ ref: "toolbarRef"
66
+ }, {
67
67
  buttons: withCtx(() => [
68
68
  leftButtons.value.length ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(leftButtons.value, (btn) => {
69
69
  return openBlock(), createBlock(_component_el_button, {
@@ -95,12 +95,12 @@ const _sfc_main = {
95
95
  }), 128)) : createCommentVNode("", true)
96
96
  ]),
97
97
  _: 1
98
- }, 512)
99
- ])) : createCommentVNode("", true);
98
+ }, 512)) : createCommentVNode("", true)
99
+ ]);
100
100
  };
101
101
  }
102
102
  };
103
- const CustomButtons = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-ec4454c7"]]);
103
+ const CustomButtons = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-cc2d93b0"]]);
104
104
  export {
105
105
  CustomButtons as default
106
106
  };
@@ -1,6 +1,11 @@
1
1
  /* empty css */
2
2
  /* empty css */
3
- import { ref, getCurrentInstance, computed, reactive, watch, onMounted, onUnmounted, createElementBlock, createCommentVNode, openBlock, createVNode, createElementVNode, createBlock, withDirectives, unref, withCtx, createSlots, renderList, renderSlot, normalizeProps, guardReactiveProps } from "vue";
3
+ /* empty css */
4
+ /* empty css */
5
+ /* empty css */
6
+ /* empty css */
7
+ /* empty css */
8
+ import { ref, getCurrentInstance, computed, reactive, watch, onMounted, onUnmounted, createBlock, openBlock, withCtx, createElementBlock, createCommentVNode, normalizeStyle, createElementVNode, withDirectives, unref, createVNode, createSlots, renderList, renderSlot, normalizeProps, guardReactiveProps } from "vue";
4
9
  import "../../../../../node_modules/.pnpm/vxe-table@4.17.47_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/components.mjs";
5
10
  /* empty css */
6
11
  import { createDataSource } from "../../utils/datasource.mjs";
@@ -19,6 +24,7 @@ import { useEventFlow } from "../../utils/eventFlow/eventFlowHandler.mjs";
19
24
  import getJsonAsyncUtil from "../../utils/getJsonAsyncUtil.mjs";
20
25
  /* empty css */
21
26
  import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.mjs";
27
+ import { ElContainer } from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/container/index.mjs";
22
28
  import { VxeTable } from "../../../../../node_modules/.pnpm/vxe-table@4.17.47_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/table/index.mjs";
23
29
  import vLoading from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/loading/src/directive.mjs";
24
30
  import { ElMessage } from "../../../../../node_modules/.pnpm/element-plus@2.13.2_vue@3.5.13_typescript@5.7.3_/node_modules/element-plus/es/components/message/index.mjs";
@@ -37,15 +43,39 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
37
43
  type: String,
38
44
  default: ""
39
45
  },
40
- // 表格数据(优先级高于数据源)
46
+ // 表格数据
41
47
  tableData: {
42
48
  type: Array,
43
49
  default: () => []
44
50
  },
51
+ initSearchData: {
52
+ type: Object,
53
+ default: {}
54
+ },
55
+ canLoadBySearchData: {
56
+ type: Boolean,
57
+ default: false
58
+ },
45
59
  initOption: {
46
60
  type: Object,
47
61
  default: () => {
48
62
  }
63
+ },
64
+ isSubTable: {
65
+ type: Boolean,
66
+ default: false
67
+ },
68
+ hasPagination: {
69
+ type: Boolean,
70
+ default: false
71
+ },
72
+ height: {
73
+ type: Number,
74
+ default: null
75
+ },
76
+ readonly: {
77
+ type: Boolean,
78
+ default: false
49
79
  }
50
80
  },
51
81
  emits: [
@@ -54,7 +84,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
54
84
  "opt-click",
55
85
  "selection-change",
56
86
  "sort-change",
57
- "page-change"
87
+ "page-change",
88
+ "loaded"
58
89
  ],
59
90
  setup(__props, { expose: __expose, emit: __emit }) {
60
91
  const props = __props;
@@ -83,6 +114,14 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
83
114
  }
84
115
  return ((_a = dataSourceManager.value) == null ? void 0 : _a.getLoading()) || false;
85
116
  });
117
+ const isPagination = computed(() => {
118
+ var _a;
119
+ if (props.isSubTable) {
120
+ return props.hasPagination;
121
+ } else {
122
+ return (_a = localConfig.value.paginationConfig) == null ? void 0 : _a.enabled;
123
+ }
124
+ });
86
125
  const displayPagination = computed(() => {
87
126
  var _a, _b, _c;
88
127
  if (props.tableData && props.tableData.length > 0) {
@@ -113,13 +152,15 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
113
152
  if (!((_a = localConfig.value.dataSources) == null ? void 0 : _a.length)) return;
114
153
  dataSourceManager.value = createDataSource({
115
154
  http: ctx.$http,
155
+ initSearchData: props.initSearchData,
116
156
  dataSources: localConfig.value.dataSources,
117
157
  currentDataSourceId: localConfig.value.dataSourceId,
118
158
  pagination: {
119
159
  pageNo: 1,
120
- pageSize: ((_b = localConfig.value.paginationConfig) == null ? void 0 : _b.pageSize) || 10
160
+ pageSize: isPagination.value ? (_b = localConfig.value.paginationConfig) == null ? void 0 : _b.pageSize : 0
121
161
  },
122
- sortRules: localConfig.value.sortRules
162
+ sortRules: localConfig.value.sortRules,
163
+ templateId: localConfig.value.templateKey
123
164
  });
124
165
  dataSourceManager.value.on("loaded", (data) => {
125
166
  emit("data-loaded", data);
@@ -387,6 +428,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
387
428
  props.initOption
388
429
  );
389
430
  localConfig.value = option;
431
+ emit("loaded", option);
390
432
  } catch (error) {
391
433
  console.error("加载配置失败:", error);
392
434
  ElMessage.error("加载配置失败");
@@ -399,6 +441,16 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
399
441
  initDataSourceManager();
400
442
  });
401
443
  });
444
+ watch(
445
+ () => props.initSearchData,
446
+ (val) => {
447
+ if (props.canLoadBySearchData && dataSourceManager.value) {
448
+ dataSourceManager.value.updateInitSearchData(val);
449
+ refresh();
450
+ }
451
+ },
452
+ { deep: true }
453
+ );
402
454
  onUnmounted(() => {
403
455
  if (dataSourceManager.value) {
404
456
  dataSourceManager.value.destroy();
@@ -414,82 +466,96 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
414
466
  exportData: handleExport
415
467
  });
416
468
  return (_ctx, _cache) => {
417
- var _a;
469
+ const _component_el_container = ElContainer;
418
470
  const _directive_loading = vLoading;
419
- return !configLoading.value ? (openBlock(), createElementBlock("div", {
420
- key: 0,
421
- ref_key: "tableContainer",
422
- ref: tableContainer,
423
- class: "fec-table-container"
424
- }, [
425
- createVNode(TableFilter, {
426
- "query-config": localConfig.value.queryConfig,
427
- "fields-data": localConfig.value.fieldsData,
428
- onSearch: handleFilterSearch,
429
- onReset: handleFilterReset
430
- }, null, 8, ["query-config", "fields-data"]),
431
- createVNode(CustomButtons, {
432
- "custom-btns": localConfig.value.customBtns,
433
- onClick: handleCustomBtnClick
434
- }, null, 8, ["custom-btns"]),
435
- createElementVNode("div", _hoisted_1, [
436
- withDirectives((openBlock(), createBlock(unref(VxeTable), {
437
- ref_key: "tableRef",
438
- ref: tableRef,
439
- data: displayData.value,
440
- "auto-resize": autoResize.value,
441
- height: tableHeight.value,
442
- "empty-text": "暂无数据",
443
- "export-config": unref(exportConfig),
444
- "cell-config": { height: 40 },
445
- onSortChange: handleSortChange,
446
- onCheckboxChange: handleCheckboxChange,
447
- onCheckboxAll: handleCheckboxAll,
448
- onRadioChange: handleRadioChange
449
- }, {
450
- default: withCtx(() => {
451
- var _a2;
452
- return [
453
- createVNode(TableColumn, {
454
- "fields-data": localConfig.value.fieldsData,
455
- "show-index": localConfig.value.showIndex,
456
- "select-mode": localConfig.value.selectMode,
457
- "is-opt-btns": localConfig.value.isOptBtns,
458
- "opt-btns": localConfig.value.optBtns,
459
- "mode-key": currentMode.value,
460
- modes: localConfig.value.mode,
461
- "data-source-options": dataSourceOptions.value,
462
- "dictionary-options": dictionaryOptions.value,
463
- "data-sources": localConfig.value.dataSources,
464
- "table-ref": (_a2 = unref(instance)) == null ? void 0 : _a2.proxy
465
- }, createSlots({ _: 2 }, [
466
- renderList(localConfig.value.fieldsData, (field) => {
467
- return {
468
- name: `cell-${field.fieldName}`,
469
- fn: withCtx((scope) => [
470
- renderSlot(_ctx.$slots, `cell-${field.fieldName}`, normalizeProps(guardReactiveProps(scope)), void 0, true)
471
- ])
472
- };
473
- })
474
- ]), 1032, ["fields-data", "show-index", "select-mode", "is-opt-btns", "opt-btns", "mode-key", "modes", "data-source-options", "dictionary-options", "data-sources", "table-ref"])
475
- ];
476
- }),
477
- _: 3
478
- }, 8, ["data", "auto-resize", "height", "export-config"])), [
479
- [_directive_loading, loading.value]
480
- ])
471
+ return openBlock(), createBlock(_component_el_container, {
472
+ direction: "vertical",
473
+ style: { "height": "100%" }
474
+ }, {
475
+ default: withCtx(() => [
476
+ !configLoading.value ? (openBlock(), createElementBlock("div", {
477
+ key: 0,
478
+ ref_key: "tableContainer",
479
+ ref: tableContainer,
480
+ class: "fec-table-container",
481
+ style: normalizeStyle(
482
+ props.height && props.height > 0 ? { height: `${props.height}px` } : {}
483
+ )
484
+ }, [
485
+ !__props.isSubTable ? (openBlock(), createBlock(TableFilter, {
486
+ key: 0,
487
+ "query-config": localConfig.value.queryConfig,
488
+ "fields-data": localConfig.value.fieldsData,
489
+ onSearch: handleFilterSearch,
490
+ onReset: handleFilterReset
491
+ }, null, 8, ["query-config", "fields-data"])) : createCommentVNode("", true),
492
+ !__props.readonly ? (openBlock(), createBlock(CustomButtons, {
493
+ key: 1,
494
+ "custom-btns": localConfig.value.customBtns,
495
+ onClick: handleCustomBtnClick
496
+ }, null, 8, ["custom-btns"])) : createCommentVNode("", true),
497
+ createElementVNode("div", _hoisted_1, [
498
+ withDirectives((openBlock(), createBlock(unref(VxeTable), {
499
+ ref_key: "tableRef",
500
+ ref: tableRef,
501
+ data: displayData.value,
502
+ "auto-resize": autoResize.value,
503
+ height: tableHeight.value,
504
+ "empty-text": "暂无数据",
505
+ "export-config": unref(exportConfig),
506
+ "cell-config": { height: 40 },
507
+ onSortChange: handleSortChange,
508
+ onCheckboxChange: handleCheckboxChange,
509
+ onCheckboxAll: handleCheckboxAll,
510
+ onRadioChange: handleRadioChange
511
+ }, {
512
+ default: withCtx(() => {
513
+ var _a;
514
+ return [
515
+ createVNode(TableColumn, {
516
+ "fields-data": localConfig.value.fieldsData,
517
+ "show-index": localConfig.value.showIndex,
518
+ "select-mode": localConfig.value.selectMode,
519
+ "is-opt-btns": localConfig.value.isOptBtns,
520
+ "opt-btns": localConfig.value.optBtns,
521
+ "mode-key": currentMode.value,
522
+ modes: localConfig.value.mode,
523
+ "data-source-options": dataSourceOptions.value,
524
+ "dictionary-options": dictionaryOptions.value,
525
+ "data-sources": localConfig.value.dataSources,
526
+ "table-ref": (_a = unref(instance)) == null ? void 0 : _a.proxy,
527
+ "table-data": displayData.value
528
+ }, createSlots({ _: 2 }, [
529
+ renderList(localConfig.value.fieldsData, (field) => {
530
+ return {
531
+ name: `cell-${field.fieldName}`,
532
+ fn: withCtx((scope) => [
533
+ renderSlot(_ctx.$slots, `cell-${field.fieldName}`, normalizeProps(guardReactiveProps(scope)), void 0, true)
534
+ ])
535
+ };
536
+ })
537
+ ]), 1032, ["fields-data", "show-index", "select-mode", "is-opt-btns", "opt-btns", "mode-key", "modes", "data-source-options", "dictionary-options", "data-sources", "table-ref", "table-data"])
538
+ ];
539
+ }),
540
+ _: 3
541
+ }, 8, ["data", "auto-resize", "height", "export-config"])), [
542
+ [_directive_loading, loading.value]
543
+ ])
544
+ ]),
545
+ isPagination.value ? (openBlock(), createBlock(Pagination, {
546
+ key: 2,
547
+ config: localConfig.value.paginationConfig,
548
+ pagination: displayPagination.value,
549
+ onChange: handlePageChange
550
+ }, null, 8, ["config", "pagination"])) : createCommentVNode("", true)
551
+ ], 4)) : createCommentVNode("", true)
481
552
  ]),
482
- ((_a = localConfig.value.paginationConfig) == null ? void 0 : _a.enabled) ? (openBlock(), createBlock(Pagination, {
483
- key: 0,
484
- config: localConfig.value.paginationConfig,
485
- pagination: displayPagination.value,
486
- onChange: handlePageChange
487
- }, null, 8, ["config", "pagination"])) : createCommentVNode("", true)
488
- ], 512)) : createCommentVNode("", true);
553
+ _: 3
554
+ });
489
555
  };
490
556
  }
491
557
  });
492
- const _Table = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d11bb28c"]]);
558
+ const Table = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-42f50d67"]]);
493
559
  export {
494
- _Table as default
560
+ Table as default
495
561
  };
@@ -12,6 +12,7 @@ import { checkFilterMatch } from "../../utils/parseFilterConfig.mjs";
12
12
  /* empty css */
13
13
  import { useEventFlow } from "../../utils/eventFlow/eventFlowHandler.mjs";
14
14
  import { getCurrentVueInstance } from "../../utils/getInstance.mjs";
15
+ import { Decimal } from "../../../../../node_modules/.pnpm/decimal.js@10.6.0/node_modules/decimal.js/decimal.mjs";
15
16
  /* empty css */
16
17
  import _export_sfc from "../../../../../_virtual/_plugin-vue_export-helper.mjs";
17
18
  import { VxeColumn } from "../../../../../node_modules/.pnpm/vxe-table@4.17.47_vue@3.5.13_typescript@5.7.3_/node_modules/vxe-table/es/column/index.mjs";
@@ -76,6 +77,11 @@ const _sfc_main = {
76
77
  tableRef: {
77
78
  type: Object,
78
79
  default: null
80
+ },
81
+ // 表格数据
82
+ tableData: {
83
+ type: Array,
84
+ default: () => []
79
85
  }
80
86
  },
81
87
  setup(__props) {
@@ -103,10 +109,30 @@ const _sfc_main = {
103
109
  if (value === null || value === void 0) return "";
104
110
  switch (field.fieldType) {
105
111
  case "number":
112
+ let numValue = Number(value);
113
+ if (isNaN(numValue)) return value;
114
+ switch (field.format) {
115
+ case "wan":
116
+ numValue = new Decimal(numValue).div(new Decimal(1e4)).toNumber();
117
+ break;
118
+ case "million":
119
+ numValue = new Decimal(numValue).div(new Decimal(1e6)).toNumber();
120
+ break;
121
+ case "percentage":
122
+ numValue = new Decimal(numValue).mul(new Decimal(100)).toNumber();
123
+ break;
124
+ }
106
125
  if (field.hasDecimalPlaces && field.decimalPlaces !== void 0) {
107
- return Number(value).toFixed(field.decimalPlaces);
126
+ numValue = Number(numValue.toFixed(field.decimalPlaces));
108
127
  }
109
- return value;
128
+ if (field.showThousandsSeparator) {
129
+ const formatted = numValue.toLocaleString("en-US", {
130
+ minimumFractionDigits: field.hasDecimalPlaces && field.decimalPlaces !== void 0 ? field.decimalPlaces : 0,
131
+ maximumFractionDigits: field.hasDecimalPlaces && field.decimalPlaces !== void 0 ? field.decimalPlaces : 20
132
+ });
133
+ return formatted;
134
+ }
135
+ return numValue;
110
136
  case "select":
111
137
  case "multipleSelection":
112
138
  if (field.optionConfig) {
@@ -189,11 +215,17 @@ const _sfc_main = {
189
215
  });
190
216
  };
191
217
  const getVisibleOptBtns = (row) => {
192
- return props.optBtns.filter((item) => {
218
+ const btnList = props.optBtns.filter((item) => {
193
219
  if (!item.showCondition) return true;
194
220
  return checkFilterMatch(item.showCondition, row, props.fieldsData);
195
221
  });
222
+ return btnList;
196
223
  };
224
+ const shouldShowOptColumn = computed(() => {
225
+ if (!props.isOptBtns || !props.optBtns.length) return false;
226
+ if (!props.tableData || props.tableData.length === 0) return true;
227
+ return props.tableData.some((row) => getVisibleOptBtns(row).length > 0);
228
+ });
197
229
  const isBtnDisabled = (row, item) => {
198
230
  if (!item.disableCondition) return false;
199
231
  return checkFilterMatch(item.disableCondition, row, props.fieldsData);
@@ -279,7 +311,7 @@ const _sfc_main = {
279
311
  _: 2
280
312
  }, 1032, ["field", "title", "width", "min-width", "fixed", "align", "header-align", "sortable"]);
281
313
  }), 128)),
282
- __props.isOptBtns && __props.optBtns.length ? (openBlock(), createBlock(unref(VxeColumn), {
314
+ !_ctx.readonly && shouldShowOptColumn.value ? (openBlock(), createBlock(unref(VxeColumn), {
283
315
  key: 3,
284
316
  title: "操作",
285
317
  width: __props.optBtns.length * 80 + 20,
@@ -307,7 +339,7 @@ const _sfc_main = {
307
339
  };
308
340
  }
309
341
  };
310
- const TableColumn = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c7ca0774"]]);
342
+ const TableColumn = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c1f83204"]]);
311
343
  export {
312
344
  TableColumn as default
313
345
  };