@fecp/designer 5.3.13 → 5.3.15

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 (38) hide show
  1. package/es/designer.css +130 -52
  2. package/es/packages/designer/package.json.mjs +1 -1
  3. package/es/packages/designer/src/api/index.mjs +3 -3
  4. package/es/packages/designer/src/components/OnlyFLowConfigButton.vue2.mjs +8 -3
  5. package/es/packages/designer/src/packages/form/property/index.vue.mjs +6 -6
  6. package/es/packages/designer/src/packages/form/property/pageFooterBtn.vue.mjs +13 -1
  7. package/es/packages/designer/src/packages/form/property/subTable.vue.mjs +211 -57
  8. package/es/packages/designer/src/packages/form/property/widgets.vue.mjs +21 -4
  9. package/es/packages/vue/src/components/details/header/Header.vue.mjs +14 -6
  10. package/es/packages/vue/src/components/dialog/DialogRenderer.vue2.mjs +1 -1
  11. package/es/packages/vue/src/components/forms/checkbox/Checkbox.vue.mjs +2 -3
  12. package/es/packages/vue/src/components/forms/form/Form.vue.mjs +29 -4
  13. package/es/packages/vue/src/components/forms/radio/Radio.vue.mjs +2 -3
  14. package/es/packages/vue/src/components/forms/subTable/SubTable.vue.mjs +19 -22
  15. package/es/packages/vue/src/components/forms/text/Text.vue.mjs +1 -1
  16. package/es/packages/vue/src/components/table/Table.vue.mjs +15 -6
  17. package/es/packages/vue/src/components/table/TableColumn.vue.mjs +27 -17
  18. package/es/packages/vue/src/composables/usePageEvents.mjs +1 -1
  19. package/es/packages/vue/src/utils/datasource.mjs +1 -1
  20. package/lib/designer.css +130 -52
  21. package/lib/packages/designer/package.json.js +1 -1
  22. package/lib/packages/designer/src/api/index.js +3 -3
  23. package/lib/packages/designer/src/components/OnlyFLowConfigButton.vue2.js +8 -3
  24. package/lib/packages/designer/src/packages/form/property/pageFooterBtn.vue.js +13 -1
  25. package/lib/packages/designer/src/packages/form/property/subTable.vue.js +210 -56
  26. package/lib/packages/designer/src/packages/form/property/widgets.vue.js +44 -27
  27. package/lib/packages/vue/src/components/details/header/Header.vue.js +13 -5
  28. package/lib/packages/vue/src/components/dialog/DialogRenderer.vue2.js +1 -1
  29. package/lib/packages/vue/src/components/forms/checkbox/Checkbox.vue.js +2 -3
  30. package/lib/packages/vue/src/components/forms/form/Form.vue.js +29 -4
  31. package/lib/packages/vue/src/components/forms/radio/Radio.vue.js +2 -3
  32. package/lib/packages/vue/src/components/forms/subTable/SubTable.vue.js +19 -22
  33. package/lib/packages/vue/src/components/forms/text/Text.vue.js +1 -1
  34. package/lib/packages/vue/src/components/table/Table.vue.js +15 -6
  35. package/lib/packages/vue/src/components/table/TableColumn.vue.js +26 -16
  36. package/lib/packages/vue/src/composables/usePageEvents.js +1 -1
  37. package/lib/packages/vue/src/utils/datasource.js +1 -1
  38. package/package.json +1 -1
@@ -10,9 +10,9 @@ const index$2 = require("../forms/form/index.js");
10
10
  const parseRouteParams = require("../../utils/parseRouteParams.js");
11
11
  const calculate = require("../../utils/formulajs/calculate.js");
12
12
  const eventFlowHandler = require("../../utils/eventFlow/eventFlowHandler.js");
13
- ;/* empty css */
14
13
  ;/* empty css */
15
14
  ;/* empty css */
15
+ ;/* empty css */
16
16
  ;/* empty css */
17
17
  const _pluginVue_exportHelper = require("../../../../../_virtual/_plugin-vue_export-helper.js");
18
18
  ;/* empty css */
@@ -71,9 +71,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
71
71
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(options.value, (option) => {
72
72
  return vue.openBlock(), vue.createBlock(_component_el_checkbox, {
73
73
  value: option.value,
74
- label: option.label,
75
- disabled: option.disabled
76
- }, null, 8, ["value", "label", "disabled"]);
74
+ label: option.label
75
+ }, null, 8, ["value", "label"]);
77
76
  }), 256))
78
77
  ]),
79
78
  _: 1
@@ -80,6 +80,10 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
80
80
  initFormMode: {
81
81
  type: String,
82
82
  default: ""
83
+ },
84
+ isApproval: {
85
+ type: Boolean,
86
+ default: false
83
87
  }
84
88
  },
85
89
  emits: [
@@ -555,6 +559,24 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
555
559
  (_a = button.eventConfig) == null ? void 0 : _a.find((item) => item.name == "Click")
556
560
  );
557
561
  };
562
+ const handleApprovalEvent = () => {
563
+ return new Promise((resolve, reject) => {
564
+ var _a, _b;
565
+ const actions = ((_a = localConfig.value.pageFooterConfig) == null ? void 0 : _a.actions) || [];
566
+ const approvalAction = actions.find((item) => item.isApproval);
567
+ if (approvalAction) {
568
+ handleEvent.value(
569
+ formData.value,
570
+ approvalAction,
571
+ (_b = approvalAction.eventConfig) == null ? void 0 : _b.find((item) => item.name == "Click")
572
+ ).then(() => {
573
+ resolve();
574
+ }).catch((error) => {
575
+ reject(error);
576
+ });
577
+ }
578
+ });
579
+ };
558
580
  const validate = () => {
559
581
  var _a;
560
582
  return (_a = formRef.value) == null ? void 0 : _a.validate();
@@ -891,6 +913,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
891
913
  vue.provide("gridLayoutFieldsData", gridLayoutFieldsData);
892
914
  vue.provide("setFormItemHeight", setFormItemHeight);
893
915
  vue.provide("formCtx", ctx);
916
+ vue.provide("handleEvent", handleEvent);
894
917
  __expose({
895
918
  validate,
896
919
  resetFields,
@@ -898,7 +921,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
898
921
  setFormData,
899
922
  getFormItemRef,
900
923
  formRef,
901
- localConfig
924
+ localConfig,
925
+ handleApprovalEvent
902
926
  });
903
927
  return (_ctx, _cache) => {
904
928
  const _component_el_form = index$5.ElForm;
@@ -914,8 +938,9 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
914
938
  default: vue.withCtx(() => [
915
939
  !configLoading.value && !__props.isSubForm && !__props.isDialog ? (vue.openBlock(), vue.createBlock(vue.unref(index$3.header), {
916
940
  key: 0,
941
+ isApproval: __props.isApproval,
917
942
  pageHeaderConfig: localConfig.value.pageHeaderConfig
918
- }, null, 8, ["pageHeaderConfig"])) : vue.createCommentVNode("", true),
943
+ }, null, 8, ["isApproval", "pageHeaderConfig"])) : vue.createCommentVNode("", true),
919
944
  vue.createVNode(vue.unref(index$4.main), null, {
920
945
  default: vue.withCtx(() => [
921
946
  vue.createVNode(_component_el_form, {
@@ -970,7 +995,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
970
995
  ]),
971
996
  _: 1
972
997
  }),
973
- !__props.isSubForm && !__props.isDialog ? (vue.openBlock(), vue.createBlock(vue.unref(index$6.footer), {
998
+ !__props.isSubForm && !__props.isDialog && !__props.isApproval ? (vue.openBlock(), vue.createBlock(vue.unref(index$6.footer), {
974
999
  key: 1,
975
1000
  formMode: formMode.value,
976
1001
  pageFooterConfig: localConfig.value.pageFooterConfig,
@@ -982,5 +1007,5 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
982
1007
  };
983
1008
  }
984
1009
  });
985
- const _Form = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-884f35d8"]]);
1010
+ const _Form = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-bf001c7c"]]);
986
1011
  exports.default = _Form;
@@ -66,9 +66,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
66
66
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(options.value, (option) => {
67
67
  return vue.openBlock(), vue.createBlock(_component_el_radio, {
68
68
  value: option.value,
69
- label: option.label,
70
- disabled: option.disabled
71
- }, null, 8, ["value", "label", "disabled"]);
69
+ label: option.label
70
+ }, null, 8, ["value", "label"]);
72
71
  }), 256))
73
72
  ]),
74
73
  _: 1
@@ -30,26 +30,6 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
30
30
  type: String,
31
31
  default: ""
32
32
  }
33
- // subFormId: {
34
- // type: String,
35
- // required: true,
36
- // },
37
- // subFormKey: {
38
- // type: String,
39
- // default: "",
40
- // },
41
- // subFormName: {
42
- // type: String,
43
- // default: "",
44
- // },
45
- // dataSourceFrom: {
46
- // type: String,
47
- // default: "",
48
- // },
49
- // triggerSubFormPageEvent: {
50
- // type: Boolean,
51
- // default: false,
52
- // },
53
33
  },
54
34
  setup(__props, { expose: __expose }) {
55
35
  const props = __props;
@@ -57,6 +37,22 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
57
37
  vue.inject("rowHeight");
58
38
  vue.inject("gridLayout");
59
39
  const setFormItemHeight = vue.inject("setFormItemHeight");
40
+ const handleEvent = vue.inject("handleEvent");
41
+ const btnRollbackEvent = vue.computed(() => {
42
+ const btnRollback = props.config.btnRollback || [];
43
+ const data = {};
44
+ for (const item of btnRollback) {
45
+ const handleFunc = () => {
46
+ handleEvent.value(
47
+ formData.value,
48
+ {},
49
+ { eventFlow: item.callbackEventConfig }
50
+ );
51
+ };
52
+ data[item.id] = handleFunc;
53
+ }
54
+ return data;
55
+ });
60
56
  const subTableData = vue.computed(() => {
61
57
  if (props.config.dataSourceFrom == "main") {
62
58
  return formData.value[props.config.fieldName];
@@ -204,8 +200,9 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
204
200
  tableData: vue.unref(subTableData),
205
201
  initHiddenData: vue.unref(initHiddenData),
206
202
  canLoadBySearchData: __props.config.reloadOnParamsChange,
207
- readonly: __props.config.isSubTableReadOnly || __props.formMode == "query"
208
- }, null, 8, ["templateKey", "mode", "titleMode", "hasPagination", "height", "tableData", "initHiddenData", "canLoadBySearchData", "readonly"])
203
+ readonly: __props.config.isSubTableReadOnly || __props.formMode == "query",
204
+ btnRollbackEvent: vue.unref(btnRollbackEvent)
205
+ }, null, 8, ["templateKey", "mode", "titleMode", "hasPagination", "height", "tableData", "initHiddenData", "canLoadBySearchData", "readonly", "btnRollbackEvent"])
209
206
  ], 64);
210
207
  };
211
208
  }
@@ -4,9 +4,9 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
4
4
  ;/* empty css */
5
5
  ;/* empty css */
6
6
  const vue = require("vue");
7
- ;/* empty css */
8
7
  ;/* empty css */
9
8
  ;/* empty css */
9
+ ;/* empty css */
10
10
  const index$3 = require("../../dialog/index.js");
11
11
  const index$2 = require("../../../api/index.js");
12
12
  ;/* empty css */
@@ -100,6 +100,10 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
100
100
  initHiddenData: {
101
101
  type: Object,
102
102
  default: {}
103
+ },
104
+ btnRollbackEvent: {
105
+ type: Object,
106
+ default: {}
103
107
  }
104
108
  },
105
109
  emits: [
@@ -293,7 +297,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
293
297
  }
294
298
  };
295
299
  const handleFlowEvent = vue.ref(null);
296
- const handleCustomBtnClick = ({ btn, event, type }) => {
300
+ const handleCustomBtnClick = async ({ btn, event, type }) => {
297
301
  var _a, _b;
298
302
  switch (btn.btnType) {
299
303
  case "refresh":
@@ -306,12 +310,16 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
306
310
  handlePersonalize();
307
311
  break;
308
312
  default:
309
- (_b = handleFlowEvent.value) == null ? void 0 : _b.call(
313
+ await ((_b = handleFlowEvent.value) == null ? void 0 : _b.call(
310
314
  handleFlowEvent,
311
315
  hiddenFormData.value,
312
316
  btn,
313
317
  (_a = btn.eventConfig) == null ? void 0 : _a.find((item) => item.name == "Click")
314
- );
318
+ ));
319
+ const handleFunc = props.btnRollbackEvent[btn.id];
320
+ if (handleFunc && typeof handleFunc == "function") {
321
+ handleFunc();
322
+ }
315
323
  }
316
324
  };
317
325
  const handleSortChange = ({ property, order }) => {
@@ -624,7 +632,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
624
632
  "table-data": displayData.value,
625
633
  readonly: __props.readonly,
626
634
  isDialog: __props.isDialog,
627
- hiddenFormData: hiddenFormData.value
635
+ hiddenFormData: hiddenFormData.value,
636
+ btnRollbackEvent: __props.btnRollbackEvent
628
637
  }, vue.createSlots({ _: 2 }, [
629
638
  vue.renderList(fieldsData.value, (field) => {
630
639
  return {
@@ -634,7 +643,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
634
643
  ])
635
644
  };
636
645
  })
637
- ]), 1032, ["fields-data", "show-index", "select-mode", "is-opt-btns", "opt-btns", "mode-key", "modes", "data-source-options", "dictionary-options", "localConfig", "table-ref", "table-data", "readonly", "isDialog", "hiddenFormData"])
646
+ ]), 1032, ["fields-data", "show-index", "select-mode", "is-opt-btns", "opt-btns", "mode-key", "modes", "data-source-options", "dictionary-options", "localConfig", "table-ref", "table-data", "readonly", "isDialog", "hiddenFormData", "btnRollbackEvent"])
638
647
  ];
639
648
  }),
640
649
  _: 3
@@ -653,5 +662,5 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
653
662
  };
654
663
  }
655
664
  });
656
- const _Table = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-fa5e2171"]]);
665
+ const _Table = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-3c129bed"]]);
657
666
  exports.default = _Table;
@@ -8,9 +8,9 @@ require("../../../../../node_modules/.pnpm/vxe-table@4.17.47_vue@3.5.13_typescri
8
8
  const index$3 = require("../../../../../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.js");
9
9
  const parseFilterConfig = require("../../utils/parseFilterConfig.js");
10
10
  const common = require("../../utils/common.js");
11
- ;/* empty css */
12
11
  ;/* empty css */
13
12
  ;/* empty css */
13
+ ;/* empty css */
14
14
  ;/* empty css */
15
15
  ;/* empty css */
16
16
  require("./index.js");
@@ -105,6 +105,10 @@ const _sfc_main = {
105
105
  hiddenFormData: {
106
106
  type: Object,
107
107
  default: {}
108
+ },
109
+ btnRollbackEvent: {
110
+ type: Object,
111
+ default: {}
108
112
  }
109
113
  },
110
114
  setup(__props) {
@@ -271,7 +275,7 @@ const _sfc_main = {
271
275
  );
272
276
  return Math.max(maxVisibleBtns, 1) * btnWidth + padding;
273
277
  });
274
- const { getEventHandlers: createEventHandlers } = eventFlowHandler.useEventFlow({
278
+ const { handleEvent } = eventFlowHandler.useEventFlow({
275
279
  fields: props.fieldsData,
276
280
  instance,
277
281
  localConfig: props.localConfig,
@@ -279,13 +283,17 @@ const _sfc_main = {
279
283
  table: props.tableRef
280
284
  }
281
285
  });
282
- const getEventHandlers = (row, item, eventConfig) => {
283
- return createEventHandlers(
284
- item,
286
+ async function handleButtonClick(row, btn, eventConfig) {
287
+ await handleEvent(
285
288
  { ...row, ...common.removeEmptyValues(props.hiddenFormData) },
286
- eventConfig
289
+ btn,
290
+ eventConfig == null ? void 0 : eventConfig.find((item) => item.name == "Click")
287
291
  );
288
- };
292
+ const handleFunc = props.btnRollbackEvent[btn.id];
293
+ if (handleFunc && typeof handleFunc == "function") {
294
+ handleFunc();
295
+ }
296
+ }
289
297
  return (_ctx, _cache) => {
290
298
  const _component_el_link = index$1.ElLink;
291
299
  const _component_el_icon = index$2.ElIcon;
@@ -335,15 +343,16 @@ const _sfc_main = {
335
343
  field
336
344
  }, () => [
337
345
  field.prefix ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(field.prefix), 1)) : vue.createCommentVNode("", true),
338
- field.isLink ? (vue.openBlock(), vue.createBlock(_component_el_link, vue.mergeProps({
346
+ field.isLink ? (vue.openBlock(), vue.createBlock(_component_el_link, {
339
347
  key: 1,
340
- type: "primary"
341
- }, vue.toHandlers(getEventHandlers(row, field, field.linkConfig))), {
348
+ type: "primary",
349
+ onClick: ($event) => handleButtonClick(row, field, field.linkConfig)
350
+ }, {
342
351
  default: vue.withCtx(() => [
343
352
  vue.createTextVNode(vue.toDisplayString(formatCellValue(row, field)), 1)
344
353
  ]),
345
354
  _: 2
346
- }, 1040)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
355
+ }, 1032, ["onClick"])) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
347
356
  vue.createTextVNode(vue.toDisplayString(formatCellValue(row, field)), 1)
348
357
  ], 64)),
349
358
  field.suffix ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3, vue.toDisplayString(field.suffix), 1)) : vue.createCommentVNode("", true),
@@ -371,17 +380,18 @@ const _sfc_main = {
371
380
  }, {
372
381
  default: vue.withCtx(({ row }) => [
373
382
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getVisibleOptBtns(row), (btn) => {
374
- return vue.openBlock(), vue.createBlock(_component_el_button, vue.mergeProps({
383
+ return vue.openBlock(), vue.createBlock(_component_el_button, {
375
384
  key: btn.id,
376
385
  type: "primary",
377
386
  link: "",
378
- disabled: isBtnDisabled(row, btn)
379
- }, vue.toHandlers(getEventHandlers(row, btn, btn.eventConfig))), {
387
+ disabled: isBtnDisabled(row, btn),
388
+ onClick: ($event) => handleButtonClick(row, btn, btn.eventConfig)
389
+ }, {
380
390
  default: vue.withCtx(() => [
381
391
  vue.createTextVNode(vue.toDisplayString(btn.label), 1)
382
392
  ]),
383
393
  _: 2
384
- }, 1040, ["disabled"]);
394
+ }, 1032, ["disabled", "onClick"]);
385
395
  }), 128))
386
396
  ]),
387
397
  _: 1
@@ -390,5 +400,5 @@ const _sfc_main = {
390
400
  };
391
401
  }
392
402
  };
393
- const TableColumn = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-2352d631"]]);
403
+ const TableColumn = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-77ad8323"]]);
394
404
  exports.default = TableColumn;
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("vue");
4
4
  ;/* empty css */
5
- ;/* empty css */
6
5
  ;/* empty css */
7
6
  ;/* empty css */
7
+ ;/* empty css */
8
8
  ;/* empty css */
9
9
  ;/* empty css */
10
10
  ;/* empty css */
@@ -3,9 +3,9 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const vue = require("vue");
4
4
  const parseRouteParams = require("./parseRouteParams.js");
5
5
  ;/* empty css */
6
- ;/* empty css */
7
6
  ;/* empty css */
8
7
  ;/* empty css */
8
+ ;/* empty css */
9
9
  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/loading/index.js");
10
10
  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");
11
11
  class DataSourceManager {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fecp/designer",
3
- "version": "5.3.13",
3
+ "version": "5.3.15",
4
4
  "main": "lib/packages/designer/index.js",
5
5
  "module": "es/packages/designer/index.mjs",
6
6
  "files": [