@fecp/designer 5.6.9 → 5.6.11

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 (39) hide show
  1. package/es/designer/package.json.mjs +1 -1
  2. package/es/designer/src/components/FieldSetMapping.vue2.mjs +11 -3
  3. package/es/designer/src/packages/dialog/useDialogDialog.mjs +1 -1
  4. package/es/designer/src/packages/dialogGlobal/index.vue.mjs +2 -1
  5. package/es/designer/src/packages/dialogGlobal/useDialogGlobalDialog.mjs +1 -1
  6. package/es/designer/src/packages/eventFlow/dialog/action/TableSelection.vue2.mjs +64 -0
  7. package/es/designer/src/packages/eventFlow/dialog/action/config.mjs +10 -0
  8. package/es/designer/src/packages/form/property/widgets.vue.mjs +2 -2
  9. package/es/designer/src/packages/table/headerBtn.vue.mjs +1 -0
  10. package/es/designer.css +153 -123
  11. package/es/packages/vue/src/components/dialog/DialogRenderer.vue2.mjs +13 -10
  12. package/es/packages/vue/src/components/forms/formItem/FormItem.vue.mjs +83 -89
  13. package/es/packages/vue/src/components/forms/roleSelect/RoleSelect.vue.mjs +28 -31
  14. package/es/packages/vue/src/components/forms/text/Text.vue.mjs +10 -11
  15. package/es/packages/vue/src/components/forms/userSelect/UserSelect.vue.mjs +28 -31
  16. package/es/packages/vue/src/components/table/Table.vue.mjs +23 -3
  17. package/es/packages/vue/src/utils/datasource.mjs +18 -9
  18. package/es/packages/vue/src/utils/eventFlow/actionHandlers.mjs +43 -0
  19. package/es/packages/vue/src/utils/importantDataChange.mjs +1 -15
  20. package/lib/designer/package.json.js +1 -1
  21. package/lib/designer/src/components/FieldSetMapping.vue2.js +11 -3
  22. package/lib/designer/src/packages/dialog/useDialogDialog.js +1 -1
  23. package/lib/designer/src/packages/dialogGlobal/index.vue.js +2 -1
  24. package/lib/designer/src/packages/dialogGlobal/useDialogGlobalDialog.js +1 -1
  25. package/lib/designer/src/packages/eventFlow/dialog/action/TableSelection.vue2.js +64 -0
  26. package/lib/designer/src/packages/eventFlow/dialog/action/config.js +10 -0
  27. package/lib/designer/src/packages/form/property/widgets.vue.js +2 -2
  28. package/lib/designer/src/packages/table/headerBtn.vue.js +1 -0
  29. package/lib/designer.css +153 -123
  30. package/lib/packages/vue/src/components/dialog/DialogRenderer.vue2.js +12 -9
  31. package/lib/packages/vue/src/components/forms/formItem/FormItem.vue.js +88 -94
  32. package/lib/packages/vue/src/components/forms/roleSelect/RoleSelect.vue.js +27 -30
  33. package/lib/packages/vue/src/components/forms/text/Text.vue.js +9 -10
  34. package/lib/packages/vue/src/components/forms/userSelect/UserSelect.vue.js +27 -30
  35. package/lib/packages/vue/src/components/table/Table.vue.js +23 -3
  36. package/lib/packages/vue/src/utils/datasource.js +18 -9
  37. package/lib/packages/vue/src/utils/eventFlow/actionHandlers.js +43 -0
  38. package/lib/packages/vue/src/utils/importantDataChange.js +1 -15
  39. package/package.json +1 -1
@@ -390,6 +390,47 @@ async function handleTableChildSelection(node, data, fields, context) {
390
390
  };
391
391
  }
392
392
  }
393
+ async function handleTableSelection(node, data, fields, context) {
394
+ var _a, _b, _c, _d, _e;
395
+ const basic = node.basic || {};
396
+ debugger;
397
+ const tableComponent = (_a = context.components) == null ? void 0 : _a.table;
398
+ const setFormDataMethod = (_c = (_b = tableComponent == null ? void 0 : tableComponent.$) == null ? void 0 : _b.exposed) == null ? void 0 : _c.setFormData;
399
+ const getSelectionMethod = (_e = (_d = tableComponent == null ? void 0 : tableComponent.$) == null ? void 0 : _d.exposed) == null ? void 0 : _e.getSelection;
400
+ if (typeof getSelectionMethod === "function") {
401
+ const rows = await getSelectionMethod();
402
+ const fieldMapping = basic.tableSelectionFieldMapping;
403
+ if (fieldMapping && Array.isArray(fieldMapping)) {
404
+ let formData = {};
405
+ fieldMapping.forEach((mapping) => {
406
+ const { field, value } = mapping;
407
+ const targetField = fields.find((item) => item.id == field);
408
+ if (!targetField) {
409
+ return {
410
+ success: false,
411
+ message: `未找到字段: ${field}`
412
+ };
413
+ }
414
+ const values = rows.map((row) => row[value]);
415
+ formData[targetField.fieldName] = values.join(",");
416
+ });
417
+ if (typeof setFormDataMethod === "function") {
418
+ setFormDataMethod(formData);
419
+ return {
420
+ success: true,
421
+ message: "赋值成功"
422
+ };
423
+ } else {
424
+ console.error("未找到列表组件的 setFormData 方法");
425
+ return {
426
+ success: false,
427
+ message: "列表组件未正确配置或 setFormData 方法未暴露",
428
+ shouldShowError: true
429
+ };
430
+ }
431
+ }
432
+ }
433
+ }
393
434
  async function handleTableRowDelete(node, data, fields, context) {
394
435
  var _a, _b, _c;
395
436
  console.log("[EventFlow] 执行表格行删除:", node.basic);
@@ -830,6 +871,7 @@ const defaultActionHandlers = {
830
871
  "table-row-delete": handleTableRowDelete,
831
872
  "table-child-refresh": handleTableChildRefresh,
832
873
  "table-child-selection": handleTableChildSelection,
874
+ "table-selection": handleTableSelection,
833
875
  "form-setValue": handleFormSetValue,
834
876
  "form-submit": handleFormSubmit,
835
877
  custom: handleCustomAction,
@@ -852,5 +894,6 @@ export {
852
894
  handleTableChildSelection,
853
895
  handleTableRefresh,
854
896
  handleTableRowDelete,
897
+ handleTableSelection,
855
898
  handleUpload
856
899
  };
@@ -7,7 +7,7 @@ function camelToColumn(fieldName) {
7
7
  if (!fieldName) return "";
8
8
  return fieldName.replace(/([A-Z])/g, "_$1").toUpperCase();
9
9
  }
10
- const MOCK_DATA = [
10
+ [
11
11
  {
12
12
  logId: "67edd238e0d1eabf032c456adef6b215",
13
13
  tableName: "LEASE_INIT_APPLY",
@@ -51,12 +51,6 @@ const MOCK_DATA = [
51
51
  runTime: 69
52
52
  }
53
53
  ];
54
- async function mockFetchChanges(params) {
55
- await new Promise((resolve) => setTimeout(resolve, 200));
56
- return MOCK_DATA.filter(
57
- (item) => item.tableName === params.tableName && item.keyName === params.keyName && item.keyValue === params.keyValue
58
- );
59
- }
60
54
  class ImportantDataChangeManager {
61
55
  /**
62
56
  * @param {Array} configList - 配置组 [{ tableName, keyField: { type, value } }]
@@ -96,7 +90,6 @@ class ImportantDataChangeManager {
96
90
  * TODO: 替换 mock API 为真实后端接口
97
91
  */
98
92
  async fetchChanges() {
99
- var _a;
100
93
  const allRecords = [];
101
94
  for (const config of this.configList) {
102
95
  const keyName = this._getKeyName(config.keyField);
@@ -107,13 +100,6 @@ class ImportantDataChangeManager {
107
100
  keyName,
108
101
  keyValue
109
102
  });
110
- debugger;
111
- await mockFetchChanges({
112
- tableName: (_a = config.tableName) == null ? void 0 : _a.toUpperCase(),
113
- keyName,
114
- keyValue
115
- });
116
- debugger;
117
103
  allRecords.push(...records);
118
104
  }
119
105
  this.changeRecords = allRecords;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const version = "5.6.9";
3
+ const version = "5.6.11";
4
4
  const packageJson = {
5
5
  version
6
6
  };
@@ -69,6 +69,14 @@ const _sfc_main = {
69
69
  type: Boolean,
70
70
  default: false
71
71
  },
72
+ hasField: {
73
+ type: Boolean,
74
+ default: true
75
+ },
76
+ hasHidden: {
77
+ type: Boolean,
78
+ default: true
79
+ },
72
80
  size: {
73
81
  type: String,
74
82
  default: ""
@@ -278,7 +286,7 @@ const _sfc_main = {
278
286
  filterable: ""
279
287
  }, {
280
288
  default: Vue.withCtx(() => [
281
- Vue.unref(formFields).length > 0 ? (Vue.openBlock(), Vue.createBlock(_component_el_option_group, {
289
+ __props.hasField && Vue.unref(formFields).length > 0 ? (Vue.openBlock(), Vue.createBlock(_component_el_option_group, {
282
290
  key: 0,
283
291
  label: "表单字段"
284
292
  }, {
@@ -293,7 +301,7 @@ const _sfc_main = {
293
301
  ]),
294
302
  _: 1
295
303
  })) : Vue.createCommentVNode("", true),
296
- Vue.unref(hiddenFields).length > 0 ? (Vue.openBlock(), Vue.createBlock(_component_el_option_group, {
304
+ __props.hasHidden && Vue.unref(hiddenFields).length > 0 ? (Vue.openBlock(), Vue.createBlock(_component_el_option_group, {
297
305
  key: 1,
298
306
  label: "隐藏域"
299
307
  }, {
@@ -406,5 +414,5 @@ const _sfc_main = {
406
414
  };
407
415
  }
408
416
  };
409
- const FieldSetMapping = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-15f7f3da"]]);
417
+ const FieldSetMapping = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-f3c710c3"]]);
410
418
  exports.default = FieldSetMapping;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./index.vue2.js");
3
+ const index = require("./index.vue.js");
4
4
  const Vue = require("vue");
5
5
  function useDialogDialog() {
6
6
  const dialogDialogVisible = Vue.ref(false);
@@ -76,6 +76,7 @@ const widgets = require("../table/property/widgets.vue.js");
76
76
  ;/* empty css */
77
77
  ;/* empty css */
78
78
  ;/* empty css */
79
+ ;/* empty css */
79
80
  ;/* empty css */
80
81
  ;/* empty css */
81
82
  ;/* empty css */
@@ -86,7 +87,7 @@ const widgets = require("../table/property/widgets.vue.js");
86
87
  require("../../../../node_modules/element-plus/theme-chalk/el-tab-pane.css.js");
87
88
  ;/* empty css */
88
89
  ;/* empty css */
89
- ;/* empty css */
90
+ ;/* empty css */
90
91
  ;/* empty css */
91
92
  ;/* empty css */
92
93
  ;/* empty css */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./index.vue2.js");
3
+ const index = require("./index.vue.js");
4
4
  const Vue = require("vue");
5
5
  function useDialogGlobalDialog() {
6
6
  const dialogGlobalDialogVisible = Vue.ref(false);
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ require("../../../../../../node_modules/element-plus/es/index.js");
4
+ ;/* empty css */
5
+ ;/* empty css */
6
+ const Vue = require("vue");
7
+ const FieldSetMapping = require("../../../../components/FieldSetMapping.vue2.js");
8
+ const common = require("../../../utils/common.js");
9
+ const index = require("../../../../api/index.js");
10
+ ;/* empty css */
11
+ const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
12
+ const index$1 = require("../../../../../../node_modules/element-plus/es/components/form/index.js");
13
+ const _sfc_main = {
14
+ __name: "TableSelection",
15
+ props: {
16
+ formData: Object
17
+ },
18
+ setup(__props) {
19
+ const currentInstance = Vue.getCurrentInstance();
20
+ const ctx = currentInstance.proxy;
21
+ const props = __props;
22
+ const fieldList = Vue.computed(() => {
23
+ const fieldList2 = common.getEditConfigDataFields();
24
+ const editConfigData = common.getEditConfigData();
25
+ const hiddenFields = (editConfigData == null ? void 0 : editConfigData.hiddenFields) || [];
26
+ return [...fieldList2, ...hiddenFields];
27
+ });
28
+ const subTableOptions = Vue.ref({});
29
+ Vue.watch(
30
+ () => props.formData.selectSubTableFieldId,
31
+ (id) => {
32
+ const fieldItem = common.getEditConfigDataFields().find((item) => item.id == id);
33
+ if (fieldItem) {
34
+ const subTableId = fieldItem.subTableId;
35
+ index.default.getById(ctx.$http, subTableId).then((data) => {
36
+ subTableOptions.value = JSON.parse(data.context);
37
+ });
38
+ }
39
+ },
40
+ {
41
+ immediate: true
42
+ }
43
+ );
44
+ return (_ctx, _cache) => {
45
+ const _component_el_form_item = index$1.ElFormItem;
46
+ return Vue.openBlock(), Vue.createBlock(_component_el_form_item, { label: "选取后隐藏域赋值映射" }, {
47
+ default: Vue.withCtx(() => [
48
+ Vue.createVNode(FieldSetMapping.default, {
49
+ modelValue: __props.formData.tableSelectionFieldMapping,
50
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => __props.formData.tableSelectionFieldMapping = $event),
51
+ fieldLabel: "赋值隐藏域字段",
52
+ valueLabel: "列表字段",
53
+ valueOptions: Vue.unref(fieldList),
54
+ hasField: false,
55
+ valueSelectMode: ""
56
+ }, null, 8, ["modelValue", "valueOptions"])
57
+ ]),
58
+ _: 1
59
+ });
60
+ };
61
+ }
62
+ };
63
+ const TableSelection = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-de74c7a5"]]);
64
+ exports.default = TableSelection;
@@ -13,6 +13,7 @@ const TableRowDelete = require("./TableRowDelete.vue2.js");
13
13
  const Dialog = require("./Dialog.vue.js");
14
14
  const Upload = require("./Upload.vue2.js");
15
15
  const TableChildSelection = require("./TableChildSelection.vue2.js");
16
+ const TableSelection = require("./TableSelection.vue2.js");
16
17
  const RiskSch = require("./RiskSch.vue.js");
17
18
  const menuData = [
18
19
  {
@@ -166,6 +167,15 @@ const menuData = [
166
167
  resetTableAfterDelete: true
167
168
  }
168
169
  },
170
+ {
171
+ index: "table-selection",
172
+ label: "列表勾选数据赋值",
173
+ desc: "将列表勾选的数据赋值到隐藏域字段",
174
+ component: TableSelection.default,
175
+ default: {
176
+ tableSelectionFieldMapping: []
177
+ }
178
+ },
169
179
  {
170
180
  index: "table-child-refresh",
171
181
  label: "子列表数据刷新",
@@ -54,8 +54,8 @@ const _pluginVue_exportHelper = require("../../../../../_virtual/_plugin-vue_exp
54
54
  require("../../../components/TemplateSelector.vue.js");
55
55
  require("../../table/default.js");
56
56
  ;/* empty css */
57
- ;/* empty css */
58
- ;/* empty css */
57
+ ;/* empty css */
58
+ ;/* empty css */
59
59
  require("../../../store/index.js");
60
60
  ;/* empty css */
61
61
  const index$2 = require("../../../../../node_modules/element-plus/es/components/collapse/index.js");
@@ -78,6 +78,7 @@ const useDialogGlobalDialog = require("../dialogGlobal/useDialogGlobalDialog.js"
78
78
  ;/* empty css */
79
79
  ;/* empty css */
80
80
  ;/* empty css */
81
+ ;/* empty css */
81
82
  ;/* empty css */
82
83
  ;/* empty css */
83
84
  ;/* empty css */