@fecp/designer 5.5.71 → 5.5.73

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 (59) hide show
  1. package/es/designer/package.json.mjs +1 -1
  2. package/es/designer/src/components/DocumentParam.vue.mjs +1 -1
  3. package/es/designer/src/components/OptionConfig.vue.mjs +2 -2
  4. package/es/designer/src/components/ParamsConfig.vue2.mjs +1 -1
  5. package/es/designer/src/layout/aside/HiddenFieldDialog.vue.mjs +1 -1
  6. package/es/designer/src/packages/advancedFilter/ValueInput.vue2.mjs +1 -1
  7. package/es/designer/src/packages/dataLinkage/index.vue.mjs +1 -1
  8. package/es/designer/src/packages/dialog/useDialogDialog.mjs +1 -1
  9. package/es/designer/src/packages/dialogGlobal/index.vue2.mjs +1 -1
  10. package/es/designer/src/packages/dialogGlobal/useDialogGlobalDialog.mjs +1 -1
  11. package/es/designer/src/packages/eventFlow/dialog/action/FormSubmit.vue2.mjs +17 -8
  12. package/es/designer/src/packages/eventFlow/dialog/action/RiskSch.vue.mjs +14 -5
  13. package/es/designer/src/packages/form/property/approvalHistory.vue.mjs +1 -1
  14. package/es/designer/src/packages/form/property/contract.vue.mjs +1 -1
  15. package/es/designer/src/packages/form/property/subForm.vue.mjs +1 -1
  16. package/es/designer/src/packages/form/property/widgets.vue.mjs +2 -2
  17. package/es/designer/src/packages/formulaEditor/core/calculate.mjs +0 -1
  18. package/es/designer/src/packages/prod/index.vue.mjs +1 -1
  19. package/es/designer/src/packages/table/headerBtn.vue.mjs +1 -1
  20. package/es/designer.css +228 -64
  21. package/es/packages/mobile/src/components/base/card/Card.vue.mjs +2 -2
  22. package/es/packages/mobile/src/components/navigation/actionBar/ActionBar.vue.mjs +4 -4
  23. package/es/packages/vue/src/components/bus/approvalHistory/ApproveIdea.vue.mjs +64 -0
  24. package/es/packages/vue/src/components/bus/approvalHistory/timeLine.vue.mjs +37 -46
  25. package/es/packages/vue/src/components/bus/contract/Contract.vue.mjs +6 -1
  26. package/es/packages/vue/src/components/bus/document/Document.vue.mjs +15 -1
  27. package/es/packages/vue/src/components/details/main/Main.vue.mjs +1 -1
  28. package/es/packages/vue/src/components/forms/form/Form.vue.mjs +46 -30
  29. package/es/packages/vue/src/utils/eventFlow/actionHandlers.mjs +32 -4
  30. package/lib/designer/package.json.js +1 -1
  31. package/lib/designer/src/components/DocumentParam.vue.js +1 -1
  32. package/lib/designer/src/components/OptionConfig.vue.js +2 -2
  33. package/lib/designer/src/components/ParamsConfig.vue2.js +1 -1
  34. package/lib/designer/src/layout/aside/HiddenFieldDialog.vue.js +1 -1
  35. package/lib/designer/src/packages/advancedFilter/ValueInput.vue2.js +1 -1
  36. package/lib/designer/src/packages/dataLinkage/index.vue.js +1 -1
  37. package/lib/designer/src/packages/dialog/useDialogDialog.js +1 -1
  38. package/lib/designer/src/packages/dialogGlobal/index.vue2.js +1 -1
  39. package/lib/designer/src/packages/dialogGlobal/useDialogGlobalDialog.js +1 -1
  40. package/lib/designer/src/packages/eventFlow/dialog/action/FormSubmit.vue2.js +17 -8
  41. package/lib/designer/src/packages/eventFlow/dialog/action/RiskSch.vue.js +14 -5
  42. package/lib/designer/src/packages/form/property/approvalHistory.vue.js +1 -1
  43. package/lib/designer/src/packages/form/property/contract.vue.js +1 -1
  44. package/lib/designer/src/packages/form/property/subForm.vue.js +1 -1
  45. package/lib/designer/src/packages/form/property/widgets.vue.js +2 -2
  46. package/lib/designer/src/packages/formulaEditor/core/calculate.js +0 -1
  47. package/lib/designer/src/packages/prod/index.vue.js +1 -1
  48. package/lib/designer/src/packages/table/headerBtn.vue.js +1 -1
  49. package/lib/designer.css +228 -64
  50. package/lib/packages/mobile/src/components/base/card/Card.vue.js +2 -2
  51. package/lib/packages/mobile/src/components/navigation/actionBar/ActionBar.vue.js +3 -3
  52. package/lib/packages/vue/src/components/bus/approvalHistory/ApproveIdea.vue.js +64 -0
  53. package/lib/packages/vue/src/components/bus/approvalHistory/timeLine.vue.js +37 -46
  54. package/lib/packages/vue/src/components/bus/contract/Contract.vue.js +6 -1
  55. package/lib/packages/vue/src/components/bus/document/Document.vue.js +15 -1
  56. package/lib/packages/vue/src/components/details/main/Main.vue.js +1 -1
  57. package/lib/packages/vue/src/components/forms/form/Form.vue.js +45 -29
  58. package/lib/packages/vue/src/utils/eventFlow/actionHandlers.js +32 -4
  59. package/package.json +1 -1
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const Vue = require("vue");
4
+ ;/* empty css */
5
+ const _pluginVue_exportHelper = require("../../../../../../_virtual/_plugin-vue_export-helper.js");
6
+ const _hoisted_1 = {
7
+ key: 0,
8
+ class: "app-content"
9
+ };
10
+ const _sfc_main = {
11
+ __name: "ApproveIdea",
12
+ props: {
13
+ approveDesc: {
14
+ type: String,
15
+ default: ""
16
+ },
17
+ uniqueKey: {
18
+ type: String,
19
+ required: true
20
+ }
21
+ },
22
+ setup(__props) {
23
+ const props = __props;
24
+ const ideaRef = Vue.ref(null);
25
+ const isExpanded = Vue.ref(false);
26
+ const isOverflow = Vue.ref(false);
27
+ const checkOverflow = () => {
28
+ if (!ideaRef.value) return;
29
+ Vue.nextTick(() => {
30
+ isOverflow.value = ideaRef.value.scrollHeight > ideaRef.value.offsetHeight;
31
+ });
32
+ };
33
+ const toggle = () => {
34
+ isExpanded.value = !isExpanded.value;
35
+ };
36
+ Vue.onMounted(() => {
37
+ checkOverflow();
38
+ });
39
+ Vue.watch(
40
+ () => props.approveDesc,
41
+ () => {
42
+ isExpanded.value = false;
43
+ checkOverflow();
44
+ }
45
+ );
46
+ return (_ctx, _cache) => {
47
+ return __props.approveDesc ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
48
+ Vue.createElementVNode("div", {
49
+ class: Vue.normalizeClass(["approveIdea", { "is-expanded": isExpanded.value || !isOverflow.value }]),
50
+ ref: (el) => {
51
+ if (el) ideaRef.value = el;
52
+ }
53
+ }, Vue.toDisplayString(__props.approveDesc), 3),
54
+ isOverflow.value ? (Vue.openBlock(), Vue.createElementBlock("div", {
55
+ key: 0,
56
+ class: "approve-toggle",
57
+ onClick: toggle
58
+ }, Vue.toDisplayString(isExpanded.value ? "收起" : "展开"), 1)) : Vue.createCommentVNode("", true)
59
+ ])) : Vue.createCommentVNode("", true);
60
+ };
61
+ }
62
+ };
63
+ const ApproveIdea = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-f893cd22"]]);
64
+ exports.default = ApproveIdea;
@@ -11,6 +11,7 @@ require("../../../../../../node_modules/element-plus/es/index.js");
11
11
  const Vue = require("vue");
12
12
  const index = require("./api/index.js");
13
13
  const getInstance = require("../../../utils/getInstance.js");
14
+ const ApproveIdea = require("./ApproveIdea.vue.js");
14
15
  ;/* empty css */
15
16
  const index$1 = require("../../../../../../node_modules/element-plus/es/components/scrollbar/index.js");
16
17
  const index$2 = require("../../../../../../node_modules/element-plus/es/components/timeline/index.js");
@@ -61,40 +62,30 @@ const _hoisted_21 = {
61
62
  const _hoisted_22 = { class: "app-header" };
62
63
  const _hoisted_23 = { class: "approveType" };
63
64
  const _hoisted_24 = { class: "duration" };
64
- const _hoisted_25 = {
65
- key: 0,
66
- class: "app-content"
67
- };
68
- const _hoisted_26 = { class: "approveIdea" };
69
- const _hoisted_27 = { class: "app-footer" };
70
- const _hoisted_28 = { class: "endTime" };
71
- const _hoisted_29 = {
65
+ const _hoisted_25 = { class: "app-footer" };
66
+ const _hoisted_26 = { class: "endTime" };
67
+ const _hoisted_27 = {
72
68
  key: 0,
73
69
  class: "assignee"
74
70
  };
75
- const _hoisted_30 = { class: "assignee-name" };
76
- const _hoisted_31 = {
71
+ const _hoisted_28 = { class: "assignee-name" };
72
+ const _hoisted_29 = {
77
73
  key: 1,
78
74
  class: "assignee"
79
75
  };
80
- const _hoisted_32 = {
76
+ const _hoisted_30 = {
81
77
  key: 1,
82
78
  class: "signContent"
83
79
  };
84
- const _hoisted_33 = { class: "content" };
85
- const _hoisted_34 = { class: "app-header" };
86
- const _hoisted_35 = { class: "approveType" };
87
- const _hoisted_36 = { class: "duration" };
88
- const _hoisted_37 = {
89
- key: 0,
90
- class: "app-content"
91
- };
92
- const _hoisted_38 = { class: "approveIdea" };
93
- const _hoisted_39 = { class: "app-footer" };
94
- const _hoisted_40 = { class: "endTime" };
95
- const _hoisted_41 = { class: "assignee" };
96
- const _hoisted_42 = { class: "assignee-name" };
97
- const _hoisted_43 = {
80
+ const _hoisted_31 = { class: "content" };
81
+ const _hoisted_32 = { class: "app-header" };
82
+ const _hoisted_33 = { class: "approveType" };
83
+ const _hoisted_34 = { class: "duration" };
84
+ const _hoisted_35 = { class: "app-footer" };
85
+ const _hoisted_36 = { class: "endTime" };
86
+ const _hoisted_37 = { class: "assignee" };
87
+ const _hoisted_38 = { class: "assignee-name" };
88
+ const _hoisted_39 = {
98
89
  key: 1,
99
90
  class: "content"
100
91
  };
@@ -259,19 +250,19 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
259
250
  Vue.createElementVNode("span", _hoisted_23, Vue.toDisplayString(node.approveName || "办理完成"), 1),
260
251
  Vue.createElementVNode("span", _hoisted_24, "耗时:" + Vue.toDisplayString(node.duration), 1)
261
252
  ]),
262
- node.approveDesc ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_25, [
263
- Vue.createElementVNode("div", _hoisted_26, Vue.toDisplayString(node.approveDesc), 1)
264
- ])) : Vue.createCommentVNode("", true),
265
- Vue.createElementVNode("div", _hoisted_27, [
266
- Vue.createElementVNode("span", _hoisted_28, [
253
+ Vue.createVNode(ApproveIdea.default, {
254
+ approveDesc: node.approveDesc
255
+ }, null, 8, ["approveDesc"]),
256
+ Vue.createElementVNode("div", _hoisted_25, [
257
+ Vue.createElementVNode("span", _hoisted_26, [
267
258
  _cache[3] || (_cache[3] = Vue.createElementVNode("i", { class: "el-icon-time" }, null, -1)),
268
259
  Vue.createTextVNode(Vue.toDisplayString(node.endTime), 1)
269
260
  ]),
270
- node.taskType == "task" ? (Vue.openBlock(), Vue.createElementBlock("span", _hoisted_29, [
261
+ node.taskType == "task" ? (Vue.openBlock(), Vue.createElementBlock("span", _hoisted_27, [
271
262
  _cache[4] || (_cache[4] = Vue.createTextVNode("处理人:")),
272
- Vue.createElementVNode("span", _hoisted_30, Vue.toDisplayString(node.assigneeName), 1)
263
+ Vue.createElementVNode("span", _hoisted_28, Vue.toDisplayString(node.assigneeName), 1)
273
264
  ])) : Vue.createCommentVNode("", true),
274
- node.taskType == "callActivity" ? (Vue.openBlock(), Vue.createElementBlock("span", _hoisted_31, [
265
+ node.taskType == "callActivity" ? (Vue.openBlock(), Vue.createElementBlock("span", _hoisted_29, [
275
266
  Vue.createVNode(_component_el_button, {
276
267
  type: "primary",
277
268
  link: "",
@@ -287,29 +278,29 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
287
278
  _cache[6] || (_cache[6] = Vue.createElementVNode("div", { class: "addNodeList" }, null, -1))
288
279
  ])
289
280
  ])) : Vue.createCommentVNode("", true),
290
- node.taskType == "signTask" ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_32, [
281
+ node.taskType == "signTask" ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_30, [
291
282
  node.signTaskList && node.signTaskList.length > 0 ? (Vue.openBlock(true), Vue.createElementBlock(Vue.Fragment, { key: 0 }, Vue.renderList(node.signTaskList, (sign) => {
292
- return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_33, [
293
- Vue.createElementVNode("div", _hoisted_34, [
294
- Vue.createElementVNode("span", _hoisted_35, Vue.toDisplayString(sign.approveName || "办理完成"), 1),
295
- Vue.createElementVNode("span", _hoisted_36, "耗时:" + Vue.toDisplayString(sign.duration), 1)
283
+ return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_31, [
284
+ Vue.createElementVNode("div", _hoisted_32, [
285
+ Vue.createElementVNode("span", _hoisted_33, Vue.toDisplayString(sign.approveName || "办理完成"), 1),
286
+ Vue.createElementVNode("span", _hoisted_34, "耗时:" + Vue.toDisplayString(sign.duration), 1)
296
287
  ]),
297
- sign.approveDesc ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_37, [
298
- Vue.createElementVNode("div", _hoisted_38, Vue.toDisplayString(sign.approveDesc), 1)
299
- ])) : Vue.createCommentVNode("", true),
300
- Vue.createElementVNode("div", _hoisted_39, [
301
- Vue.createElementVNode("span", _hoisted_40, [
288
+ Vue.createVNode(ApproveIdea.default, {
289
+ approveDesc: sign.approveDesc
290
+ }, null, 8, ["approveDesc"]),
291
+ Vue.createElementVNode("div", _hoisted_35, [
292
+ Vue.createElementVNode("span", _hoisted_36, [
302
293
  _cache[7] || (_cache[7] = Vue.createElementVNode("i", { class: "el-icon-time" }, null, -1)),
303
294
  Vue.createTextVNode(Vue.toDisplayString(sign.endTime), 1)
304
295
  ]),
305
- Vue.createElementVNode("span", _hoisted_41, [
296
+ Vue.createElementVNode("span", _hoisted_37, [
306
297
  _cache[8] || (_cache[8] = Vue.createTextVNode("处理人:")),
307
- Vue.createElementVNode("span", _hoisted_42, Vue.toDisplayString(sign.assigneeName), 1)
298
+ Vue.createElementVNode("span", _hoisted_38, Vue.toDisplayString(sign.assigneeName), 1)
308
299
  ]),
309
300
  _cache[9] || (_cache[9] = Vue.createElementVNode("div", { class: "addNodeList" }, null, -1))
310
301
  ])
311
302
  ]);
312
- }), 256)) : (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_43, _cache[10] || (_cache[10] = [
303
+ }), 256)) : (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_39, _cache[10] || (_cache[10] = [
313
304
  Vue.createElementVNode("div", { class: "approve" }, [
314
305
  Vue.createElementVNode("span", { class: "point" }),
315
306
  Vue.createElementVNode("span", { class: "iconfont icon-flow-default approveIcon approve_color_11" }),
@@ -5,6 +5,7 @@ require("../../forms/h2/index.js");
5
5
  const getInstance = require("../../../utils/getInstance.js");
6
6
  const parseRouteParams = require("../../../utils/parseRouteParams.js");
7
7
  const common = require("../../../utils/common.js");
8
+ const eventBus = require("../../../utils/eventBus.js");
8
9
  const _hoisted_1 = { class: "contract-content" };
9
10
  const path = "/tech/ctr/components/DocCtrInfoComponent";
10
11
  const _sfc_main = /* @__PURE__ */ Object.assign({
@@ -60,7 +61,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
60
61
  Vue.onMounted(() => {
61
62
  common.loadComponentByPath(path, ctx.$router, currentComponent);
62
63
  });
63
- function loaded(dom) {
64
+ function loaded(dom, visibleData) {
64
65
  const foundItem = props.localConfig.fieldsData.find(
65
66
  (item) => item.id == props.config.id
66
67
  );
@@ -70,6 +71,10 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
70
71
  foundItem.h = dom.offsetHeight + titleHeight;
71
72
  setFormItemHeight(props.config.id, true, dom.offsetHeight + titleHeight);
72
73
  }
74
+ eventBus.default.emit("onSubTableDataLoaded", {
75
+ subTableConfig: props.config,
76
+ visibleData
77
+ });
73
78
  }
74
79
  return (_ctx, _cache) => {
75
80
  return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
@@ -29,7 +29,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
29
29
  default: ""
30
30
  }
31
31
  },
32
- setup(__props) {
32
+ setup(__props, { expose: __expose }) {
33
33
  const props = __props;
34
34
  const ctx = getInstance.getCurrentVueInstance();
35
35
  Vue.ref("");
@@ -115,6 +115,18 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
115
115
  setFormItemHeight(props.config.id, true, dom.offsetHeight + titleHeight);
116
116
  }
117
117
  }
118
+ const docRef = Vue.ref();
119
+ function validate() {
120
+ var _a;
121
+ if (currentComponent.value) {
122
+ return (_a = docRef.value) == null ? void 0 : _a.validateFile();
123
+ } else {
124
+ return Promise.resolve();
125
+ }
126
+ }
127
+ __expose({
128
+ validate
129
+ });
118
130
  return (_ctx, _cache) => {
119
131
  return Vue.openBlock(), Vue.createElementBlock(Vue.Fragment, null, [
120
132
  __props.config.titleMode != "none" ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
@@ -128,6 +140,8 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
128
140
  ])) : Vue.createCommentVNode("", true),
129
141
  Vue.createElementVNode("div", _hoisted_2, [
130
142
  (Vue.openBlock(), Vue.createBlock(Vue.resolveDynamicComponent(Vue.unref(currentComponent)), {
143
+ ref_key: "docRef",
144
+ ref: docRef,
131
145
  isEdit: __props.formMode != "query",
132
146
  isSupplement: __props.config.isSupplement,
133
147
  multiple: __props.config.multiple,
@@ -54,5 +54,5 @@ const _sfc_main = {
54
54
  };
55
55
  }
56
56
  };
57
- const component = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-3ba17464"]]);
57
+ const component = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-29804f13"]]);
58
58
  exports.default = component;
@@ -98,6 +98,10 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
98
98
  isApproval: {
99
99
  type: Boolean,
100
100
  default: false
101
+ },
102
+ class: {
103
+ type: String,
104
+ default: ""
101
105
  }
102
106
  },
103
107
  emits: [
@@ -660,6 +664,15 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
660
664
  subFormPromises.push((_a = formRef.value) == null ? void 0 : _a.validate());
661
665
  return Promise.all(subFormPromises).then(() => getFormData());
662
666
  };
667
+ const docValidate = () => {
668
+ const documentComps = gridLayoutFieldsData.value.filter((item) => item.component.fieldType == "document").map((item) => item.component);
669
+ const compPromises = documentComps.map((comp) => {
670
+ var _a;
671
+ const compRef = getFormItemRef(String(comp.id));
672
+ return ((_a = compRef == null ? void 0 : compRef.validate) == null ? void 0 : _a.call(compRef)) || Promise.resolve();
673
+ });
674
+ return Promise.all(compPromises);
675
+ };
663
676
  const resetFields = () => {
664
677
  var _a, _b;
665
678
  (_a = formRef.value) == null ? void 0 : _a.clearValidate();
@@ -851,10 +864,6 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
851
864
  };
852
865
  const applyLinkageEffectsForChangedFields = (changedFieldNames) => {
853
866
  var _a;
854
- console.log(
855
- "🚀 ~ applyLinkageEffectsForChangedFields ~ 变化的字段:",
856
- changedFieldNames
857
- );
858
867
  const linkedConfig = localConfig.value.linkedConfig || {};
859
868
  const fields = [...fieldsData.value, ...hiddenFields.value];
860
869
  const relevantConfigs = filterRelevantLinkageConfigs(
@@ -930,40 +939,46 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
930
939
  rules[fieldName] = prodRules.value[fieldName];
931
940
  }
932
941
  formRules.value = rules;
933
- relevantConfigs.readonly.forEach((item) => {
934
- const dataLinkFieldList = item.dataLinkFieldList || [];
935
- dataLinkFieldList.forEach((fieldId) => {
936
- const layoutFieldItem = updatedLayoutData.find((g) => g.id == fieldId);
937
- if (layoutFieldItem) {
938
- layoutFieldItem.component.readOnly = false;
939
- }
940
- });
941
- if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
942
+ if (formMode.value != "query") {
943
+ relevantConfigs.readonly.forEach((item) => {
944
+ const dataLinkFieldList = item.dataLinkFieldList || [];
942
945
  dataLinkFieldList.forEach((fieldId) => {
943
946
  const layoutFieldItem = updatedLayoutData.find((g) => g.id == fieldId);
944
947
  if (layoutFieldItem) {
945
- layoutFieldItem.component.readOnly = true;
948
+ layoutFieldItem.component.readOnly = false;
946
949
  }
947
950
  });
948
- }
949
- });
950
- relevantConfigs.disabled.forEach((item) => {
951
- const dataLinkFieldList = item.dataLinkFieldList || [];
952
- dataLinkFieldList.forEach((fieldId) => {
953
- const layoutFieldItem = updatedLayoutData.find((g) => g.id == fieldId);
954
- if (layoutFieldItem) {
955
- layoutFieldItem.component.disabled = false;
951
+ if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
952
+ dataLinkFieldList.forEach((fieldId) => {
953
+ const layoutFieldItem = updatedLayoutData.find(
954
+ (g) => g.id == fieldId
955
+ );
956
+ if (layoutFieldItem) {
957
+ layoutFieldItem.component.readOnly = true;
958
+ }
959
+ });
956
960
  }
957
961
  });
958
- if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
962
+ relevantConfigs.disabled.forEach((item) => {
963
+ const dataLinkFieldList = item.dataLinkFieldList || [];
959
964
  dataLinkFieldList.forEach((fieldId) => {
960
965
  const layoutFieldItem = updatedLayoutData.find((g) => g.id == fieldId);
961
966
  if (layoutFieldItem) {
962
- layoutFieldItem.component.disabled = true;
967
+ layoutFieldItem.component.disabled = false;
963
968
  }
964
969
  });
965
- }
966
- });
970
+ if (parseFilterConfig.checkFilterMatch(item.filterConfig, formData.value, fields)) {
971
+ dataLinkFieldList.forEach((fieldId) => {
972
+ const layoutFieldItem = updatedLayoutData.find(
973
+ (g) => g.id == fieldId
974
+ );
975
+ if (layoutFieldItem) {
976
+ layoutFieldItem.component.disabled = true;
977
+ }
978
+ });
979
+ }
980
+ });
981
+ }
967
982
  const fieldsConfigArr = updatedLayoutData.filter((item) => !item.hidden);
968
983
  gridLayoutFieldsData.value = sortLayoutItems(fieldsConfigArr);
969
984
  (_a = gridLayout == null ? void 0 : gridLayout.value) == null ? void 0 : _a.resizeEvent();
@@ -1079,6 +1094,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
1079
1094
  Vue.provide("getFormData", getFormData);
1080
1095
  __expose({
1081
1096
  validate,
1097
+ docValidate,
1082
1098
  resetFields,
1083
1099
  getFormData,
1084
1100
  setFormData,
@@ -1095,7 +1111,7 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
1095
1111
  const _directive_fec_layout = Vue.resolveDirective("fec-layout");
1096
1112
  return !configLoading.value ? Vue.withDirectives((Vue.openBlock(), Vue.createBlock(_component_el_container, {
1097
1113
  key: 0,
1098
- class: "fec-form",
1114
+ class: Vue.normalizeClass(["fec-form", __props.class]),
1099
1115
  "data-id": localConfig.value.templateKey,
1100
1116
  "data-name": localConfig.value.templateName,
1101
1117
  "data-pkId": localConfig.value.pkId,
@@ -1209,11 +1225,11 @@ const _sfc_main = /* @__PURE__ */ Object.assign({
1209
1225
  })) : Vue.createCommentVNode("", true)
1210
1226
  ]),
1211
1227
  _: 1
1212
- }, 8, ["data-id", "data-name", "data-pkId"])), [
1228
+ }, 8, ["class", "data-id", "data-name", "data-pkId"])), [
1213
1229
  [_directive_fec_layout]
1214
1230
  ]) : Vue.createCommentVNode("", true);
1215
1231
  };
1216
1232
  }
1217
1233
  });
1218
- const _Form = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-c86c3354"]]);
1234
+ const _Form = /* @__PURE__ */ _pluginVue_exportHelper.default(_sfc_main, [["__scopeId", "data-v-d3057435"]]);
1219
1235
  exports.default = _Form;
@@ -500,7 +500,7 @@ async function handleFormSetValue(node, data, fields, context) {
500
500
  }
501
501
  }
502
502
  async function handleFormSubmit(node, data, fields, context) {
503
- var _a, _b, _c, _d, _e, _f, _g, _h;
503
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
504
504
  const basic = node.basic || {};
505
505
  if (!(basic == null ? void 0 : basic.dataSourceId)) {
506
506
  console.error("form-setValue: 缺少 dataSourceId 配置");
@@ -529,6 +529,27 @@ async function handleFormSubmit(node, data, fields, context) {
529
529
  };
530
530
  }
531
531
  }
532
+ if (basic == null ? void 0 : basic.docValidate) {
533
+ const docValidateMethod = (_g = (_f = formComponent == null ? void 0 : formComponent.$) == null ? void 0 : _f.exposed) == null ? void 0 : _g.docValidate;
534
+ try {
535
+ if (typeof docValidateMethod === "function") {
536
+ await docValidateMethod();
537
+ } else {
538
+ console.error("未找到表单组件的 docValidate 方法");
539
+ return {
540
+ success: false,
541
+ message: "表单组件未正确配置或 docValidate 方法未暴露",
542
+ shouldShowError: true
543
+ };
544
+ }
545
+ } catch (error) {
546
+ return {
547
+ success: false,
548
+ message: "要件校验失败!",
549
+ shouldShowError: false
550
+ };
551
+ }
552
+ }
532
553
  if (typeof getFormDataMethod === "function") {
533
554
  try {
534
555
  let formData = getFormDataMethod();
@@ -555,8 +576,8 @@ async function handleFormSubmit(node, data, fields, context) {
555
576
  formData = common.removeEmptyValues(result.data || {});
556
577
  delete formData.pageNo;
557
578
  delete formData.pageSize;
558
- const formComponent2 = (_f = context.components) == null ? void 0 : _f.form;
559
- const setFormDataMethod = (_h = (_g = formComponent2 == null ? void 0 : formComponent2.$) == null ? void 0 : _g.exposed) == null ? void 0 : _h.setFormData;
579
+ const formComponent2 = (_h = context.components) == null ? void 0 : _h.form;
580
+ const setFormDataMethod = (_j = (_i = formComponent2 == null ? void 0 : formComponent2.$) == null ? void 0 : _i.exposed) == null ? void 0 : _j.setFormData;
560
581
  if (typeof setFormDataMethod === "function") {
561
582
  setFormDataMethod(formData);
562
583
  } else {
@@ -642,7 +663,7 @@ async function handleDialog(node, data, fields, context) {
642
663
  }
643
664
  }
644
665
  async function handleRiskSchDialog(node, data, fields, context) {
645
- var _a, _b, _c;
666
+ var _a, _b, _c, _d, _e, _f;
646
667
  const basic = node.basic || {};
647
668
  if (!(basic == null ? void 0 : basic.schNo)) {
648
669
  console.error("风险拦截校验: 缺少 schNo 配置");
@@ -659,6 +680,13 @@ async function handleRiskSchDialog(node, data, fields, context) {
659
680
  await validateMethod();
660
681
  }
661
682
  }
683
+ if (basic == null ? void 0 : basic.docValidate) {
684
+ const formComponent = (_d = context.components) == null ? void 0 : _d.form;
685
+ const docValidateMethod = (_f = (_e = formComponent == null ? void 0 : formComponent.$) == null ? void 0 : _e.exposed) == null ? void 0 : _f.docValidate;
686
+ if (typeof docValidateMethod === "function") {
687
+ await docValidateMethod();
688
+ }
689
+ }
662
690
  const schNo = basic.schNo;
663
691
  const paramList = parseRouteParams.parseRouteParams(basic == null ? void 0 : basic.params, data, fields);
664
692
  const busNo = parseRouteParams.parseSingleParamValue(basic.busNo, data, fields);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fecp/designer",
3
- "version": "5.5.71",
3
+ "version": "5.5.73",
4
4
  "main": "lib/designer/index.js",
5
5
  "module": "es/designer/index.mjs",
6
6
  "files": [