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