@ximatai/muyun-web-app 0.26.16 → 0.26.18

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 (126) hide show
  1. package/dist/{BusinessActivityLogView-DVM_GB5y.js → BusinessActivityLogView-CNW817Sf.js} +2 -2
  2. package/dist/BusinessLogListDrawer-YiJxOlnD.js +864 -0
  3. package/dist/CodeConfigurationView-DU8tjPMt.js +1667 -0
  4. package/dist/{ConfigurationTranslationView-B0FosDyz.js → ConfigurationTranslationView-CbBt5s1q.js} +51 -51
  5. package/dist/{LoginAuditLogView-3tAozKlC.js → LoginAuditLogView-CZF1Jfq_.js} +2 -2
  6. package/dist/{ModuleActionManagementView-CJRNShGg.js → ModuleActionManagementView-CaiXH1l_.js} +208 -208
  7. package/dist/{ModuleGovernanceView-DsqR_Sj7.js → ModuleGovernanceView-CcwGyO3x.js} +4331 -4475
  8. package/dist/{RequestErrorLogView-C4yH-TSX.js → RequestErrorLogView-DpudZrC2.js} +2 -2
  9. package/dist/RoleDetailWorkspaceView-DNMGsAJC.js +1435 -0
  10. package/dist/{RuntimeLogView-CoKKpJ39.js → RuntimeLogView-444BL_xs.js} +61 -61
  11. package/dist/WorkflowAdministrationView-C-VIjvwB.js +650 -0
  12. package/dist/WorkflowConfigurationView-DLFY2x7V.js +1110 -0
  13. package/dist/WorkflowWorkbenchView-Gr02dbBc.js +759 -0
  14. package/dist/codeConfiguration-ChJ6ktRR.js +208 -0
  15. package/dist/index.css +1 -1
  16. package/dist/index.js +624 -598
  17. package/dist/moduleMenuWorkspace-B8DKwC3L.js +626 -0
  18. package/dist/{platform-components-Cl5ZZiuU.js → platform-components-5AE0j2_3.js} +9579 -6839
  19. package/dist/{platform-workbench-CAHoriIf.js → platform-workbench-BhZPARiH.js} +6345 -6478
  20. package/dist/types/app/CurrentUserProfileDialog.vue.d.ts +1 -1
  21. package/dist/types/app/DevelopmentTopbarActions.vue.d.ts +9 -0
  22. package/dist/types/app/useAssistantAvailability.d.ts +8 -0
  23. package/dist/types/app/useCurrentUserProfile.d.ts +12 -0
  24. package/dist/types/app/workbenchRouteSync.d.ts +2 -0
  25. package/dist/types/consumer/AppWorkbenchShell.vue.d.ts +9 -3
  26. package/dist/types/consumer/index.d.ts +2 -1
  27. package/dist/types/dynamic-page-runtime/ModulePageBusinessSession.d.ts +8 -8
  28. package/dist/types/dynamic-page-runtime/ModulePageHostRuntime.vue.d.ts +214 -92
  29. package/dist/types/dynamic-page-runtime/assistantQueryCapabilities.d.ts +1 -0
  30. package/dist/types/dynamic-page-runtime/composables/useManagedDetailRelationRuntime.d.ts +2 -2
  31. package/dist/types/dynamic-page-runtime/composables/useNavigatorRuntime.d.ts +2 -2
  32. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +2 -2
  33. package/dist/types/dynamic-page-runtime/useModulePageSession.d.ts +4 -4
  34. package/dist/types/dynamic-page-runtime/useModuleRecordDataChanges.d.ts +4 -0
  35. package/dist/types/main.d.ts +0 -1
  36. package/dist/types/platform-admin-runtime/ModuleCodeConfigurationStatus.vue.d.ts +7 -0
  37. package/dist/types/platform-admin-runtime/moduleCodeConfiguration.d.ts +15 -0
  38. package/dist/types/platform-components/BusinessContentGenerationPanel.vue.d.ts +22 -0
  39. package/dist/types/platform-components/BusinessContentQueryNotice.vue.d.ts +17 -0
  40. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +2 -2
  41. package/dist/types/platform-components/DictionaryOptionDialog.vue.d.ts +4 -4
  42. package/dist/types/platform-components/DictionaryOptionDialogChoiceList.vue.d.ts +1 -1
  43. package/dist/types/platform-components/DictionaryPicker.vue.d.ts +4 -4
  44. package/dist/types/platform-components/ObjectPickerInput.vue.d.ts +2 -2
  45. package/dist/types/platform-components/QueryCriteriaGroupEditor.vue.d.ts +2 -2
  46. package/dist/types/platform-components/RecordContentSourceField.vue.d.ts +22 -0
  47. package/dist/types/platform-components/RecordContentTranslationField.vue.d.ts +26 -0
  48. package/dist/types/platform-components/RecordDataExchangeSurface.vue.d.ts +26 -0
  49. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +3 -2
  50. package/dist/types/platform-components/RecordFormFields.vue.d.ts +5 -2
  51. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +1 -1
  52. package/dist/types/platform-components/RecordQueryListCell.vue.d.ts +1 -0
  53. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +1 -1
  54. package/dist/types/platform-components/RecordQueryListSurface.vue.d.ts +1 -1
  55. package/dist/types/{dynamic-page-runtime/ModuleDataExchangeSurface.vue.d.ts → platform-components/RecordQuerySortSelector.vue.d.ts} +5 -9
  56. package/dist/types/platform-components/RecordRelationActionButton.vue.d.ts +16 -0
  57. package/dist/types/platform-components/RecordRelationValue.vue.d.ts +2 -0
  58. package/dist/types/platform-components/StaticManagementLayout.vue.d.ts +7 -2
  59. package/dist/types/{dynamic-page-runtime → platform-components}/TenantScopeExplorer.vue.d.ts +1 -1
  60. package/dist/types/platform-components/WorkflowRecordPanel.vue.d.ts +2 -0
  61. package/dist/types/platform-components/WorkflowTimeline.vue.d.ts +4 -0
  62. package/dist/types/platform-components/crudRecordListModel.d.ts +1 -0
  63. package/dist/types/platform-components/index.d.ts +3 -0
  64. package/dist/types/platform-components/loadExplorerRecords.d.ts +3 -0
  65. package/dist/types/platform-components/managementWorkspaceLayout.d.ts +10 -0
  66. package/dist/types/platform-components/recordDetailFieldModel.d.ts +2 -0
  67. package/dist/types/platform-components/recordFormFieldModel.d.ts +6 -0
  68. package/dist/types/platform-components/recordQueryListQueryController.d.ts +2 -0
  69. package/dist/types/platform-components/recordSurfaceActivity.d.ts +3 -0
  70. package/dist/types/platform-components/recycleBinState.d.ts +1 -0
  71. package/dist/types/platform-components/referencePickerModel.d.ts +6 -2
  72. package/dist/types/platform-components/scopedTreePickerModel.d.ts +4 -0
  73. package/dist/types/platform-components/useBusinessCodeForm.d.ts +36 -0
  74. package/dist/types/platform-workbench/Workbench.vue.d.ts +13 -4
  75. package/dist/types/platform-workbench/WorkbenchGlobalTools.vue.d.ts +28 -0
  76. package/dist/types/platform-workbench/WorkbenchLanguageSettings.vue.d.ts +11 -0
  77. package/dist/types/platform-workbench/WorkbenchPageTitle.vue.d.ts +10 -0
  78. package/dist/types/platform-workbench/menuGroupLayout.d.ts +5 -0
  79. package/dist/types/platform-workbench/menuTreeModel.d.ts +1 -2
  80. package/dist/types/platform-workbench/useAssistantConversation.d.ts +1 -1
  81. package/dist/types/platform-workbench/useAssistantConversationArchive.d.ts +1 -1
  82. package/dist/types/platform-workbench/useLanguagePreferenceSelection.d.ts +7 -0
  83. package/dist/types/views/CodeConfigurationView.vue.d.ts +8 -0
  84. package/dist/types/views/CodeRuleFormatEditor.vue.d.ts +17 -0
  85. package/dist/types/views/PageQuerySummaryEditor.vue.d.ts +4 -4
  86. package/dist/types/views/WorkflowSelectionFields.vue.d.ts +28 -0
  87. package/dist/types/views/codeConfiguration.d.ts +127 -0
  88. package/dist/types/views/codeConfigurationWorkspaceView.d.ts +5 -0
  89. package/dist/types/views/metadataEditorSession.d.ts +4 -0
  90. package/dist/types/views/metadataOrchestrationState.d.ts +3 -0
  91. package/dist/types/views/metadataWorkspace.d.ts +8 -0
  92. package/dist/types/views/moduleGovernanceWorkspaceView.d.ts +1 -1
  93. package/dist/types/vue-ui-antdv/components/UiDatePicker.vue.d.ts +33 -0
  94. package/dist/types/vue-ui-antdv/components/UiDropdown.vue.d.ts +1 -0
  95. package/dist/types/vue-ui-antdv/components/UiHelp.vue.d.ts +16 -0
  96. package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
  97. package/dist/types/vue-ui-antdv/components/UiModal.vue.d.ts +9 -6
  98. package/dist/types/vue-ui-antdv/components/UiPopover.vue.d.ts +12 -4
  99. package/dist/types/vue-ui-antdv/datePickerCalendar.d.ts +472 -0
  100. package/dist/types/vue-ui-antdv/datePickerValue.d.ts +6 -0
  101. package/dist/types/vue-ui-antdv/index.d.ts +3 -0
  102. package/dist/types/vue-ui-antdv/languageLocales.d.ts +2 -0
  103. package/dist/types/vue-ui-antdv/types.d.ts +2 -0
  104. package/dist/types/vue-ui-antdv/typography.d.ts +25 -0
  105. package/dist/types/web-contracts/index.d.ts +146 -1
  106. package/dist/types/web-contracts/workflow.d.ts +10 -0
  107. package/dist/types/web-core/assistantTurnClient.d.ts +2 -0
  108. package/dist/types/web-core/businessContent.d.ts +38 -0
  109. package/dist/types/web-core/businessContentLanguage.d.ts +18 -0
  110. package/dist/types/web-core/index.d.ts +5 -0
  111. package/dist/types/web-core/languagePreference.d.ts +2 -2
  112. package/dist/types/web-core/module/dataExchangeClient.d.ts +83 -1
  113. package/dist/types/web-core/module/staticModuleClient.d.ts +9 -3
  114. package/dist/types/web-core/presentationTexts.d.ts +5 -0
  115. package/dist/types/web-core/recordReadRefreshGuard.d.ts +7 -0
  116. package/dist/types/web-core/useBusinessContentGenerationBatch.d.ts +36 -0
  117. package/dist/types/web-core/useBusinessContentReading.d.ts +30 -0
  118. package/dist/types/web-core/workflow.d.ts +2 -1
  119. package/dist/{workspaceViews-BIYGPUAO.js → workspaceViews-DeBqozVb.js} +1062 -918
  120. package/package.json +4 -1
  121. package/dist/BusinessLogListDrawer-BciMLY9z.js +0 -864
  122. package/dist/RoleDetailWorkspaceView-BpOoGUwS.js +0 -1435
  123. package/dist/WorkflowAdministrationView-DmUV6vWS.js +0 -650
  124. package/dist/WorkflowConfigurationView-pghDbWEh.js +0 -975
  125. package/dist/WorkflowWorkbenchView-BwWxyDen.js +0 -747
  126. package/dist/moduleGovernanceWorkspaceView-DGEV3ZyT.js +0 -667
@@ -1,975 +0,0 @@
1
- import { T as e } from "./platform-workbench-CAHoriIf.js";
2
- import { $n as t, Bn as n, Bt as r, Gn as i, Hn as a, It as o, J as s, Kt as ee, Ot as te, R as ne, Tt as re, Vn as ie, Xn as ae, Y as oe, a as se, cr as ce, dr as le, hn as ue, i as de, ln as fe, mn as c, mr as pe, n as me, na as he, nn as l, on as ge, qn as _e, r as ve, s as ye, t as be, u as xe, zt as Se } from "./platform-components-Cl5ZZiuU.js";
3
- import { Fragment as u, computed as d, createBlock as Ce, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as h, createVNode as g, defineComponent as _, normalizeClass as we, onMounted as Te, openBlock as v, ref as y, renderList as Ee, toDisplayString as b, unref as x, watch as De, withCtx as S, withModifiers as Oe } from "vue";
4
- //#region src/platform-components/workflowDesignEditing.ts
5
- function C(e, t) {
6
- return {
7
- nodeKey: e,
8
- nodeType: "approval",
9
- title: t,
10
- approvalMode: "all",
11
- participantPolicyText: "{\"rules\":[]}",
12
- allowReject: !0
13
- };
14
- }
15
- function ke(e, t, n) {
16
- let r = e.links.find((e) => e.routeKey === t);
17
- if (!r) throw Error("请选择需要插入分支的路径");
18
- let i = `${n}_join`, a = [
19
- {
20
- nodeKey: n,
21
- nodeType: "branch",
22
- title: "条件分支",
23
- routeMode: "auto",
24
- convergeNodeKey: i
25
- },
26
- C(`${n}_path1`, "分支审批1"),
27
- C(`${n}_path2`, "分支审批2"),
28
- {
29
- nodeKey: i,
30
- nodeType: "converge",
31
- title: "分支汇聚",
32
- convergeMode: "all"
33
- }
34
- ];
35
- if (a.some((t) => e.nodes.some((e) => e.nodeKey === t.nodeKey))) throw Error("节点标识已存在");
36
- let o = [...[1, 2].flatMap((e) => [{
37
- routeKey: `${n}_exit${e}`,
38
- sourceNodeKey: n,
39
- targetNodeKey: `${n}_path${e}`,
40
- title: `路径${e}`
41
- }, {
42
- routeKey: `${n}_return${e}`,
43
- sourceNodeKey: `${n}_path${e}`,
44
- targetNodeKey: i,
45
- title: "汇聚"
46
- }]), {
47
- routeKey: `${n}_next`,
48
- sourceNodeKey: i,
49
- targetNodeKey: r.targetNodeKey,
50
- title: "继续"
51
- }];
52
- return {
53
- ...e,
54
- nodes: [...e.nodes, ...a],
55
- links: [...e.links.map((e) => e === r ? {
56
- ...e,
57
- targetNodeKey: n
58
- } : e), ...o]
59
- };
60
- }
61
- function Ae(e, t, n) {
62
- let r = e.nodes.find((e) => e.nodeKey === t && e.nodeType === "branch"), i = e.nodes.find((e) => e.nodeKey === r?.convergeNodeKey && e.nodeType === "converge");
63
- if (!r || !i) throw Error("分支必须绑定有效汇聚节点");
64
- if (e.nodes.some((e) => e.nodeKey === n)) throw Error("节点标识已存在");
65
- let a = e.links.filter((e) => e.sourceNodeKey === t).length + 1;
66
- return {
67
- ...e,
68
- nodes: [...e.nodes, C(n, `分支审批${a}`)],
69
- links: [
70
- ...e.links,
71
- {
72
- routeKey: `${n}_in`,
73
- sourceNodeKey: t,
74
- targetNodeKey: n,
75
- title: `路径${a}`
76
- },
77
- {
78
- routeKey: `${n}_out`,
79
- sourceNodeKey: n,
80
- targetNodeKey: i.nodeKey,
81
- title: "汇聚"
82
- }
83
- ]
84
- };
85
- }
86
- function je(e, t) {
87
- let n = e.nodes.find((e) => e.nodeKey === t && e.nodeType === "branch"), r = e.nodes.find((e) => e.nodeKey === n?.convergeNodeKey && e.nodeType === "converge");
88
- if (!n || !r) throw Error("分支必须绑定有效汇聚节点");
89
- let i = /* @__PURE__ */ new Set([t]);
90
- function a(t, n = /* @__PURE__ */ new Set()) {
91
- if (t === r.nodeKey) return;
92
- if (n.has(t)) throw Error("分支内存在循环,请先修正路径");
93
- let o = e.links.filter((e) => e.sourceNodeKey === t);
94
- if (!o.length) throw Error("分支路径未到达配对汇聚节点");
95
- i.add(t), o.forEach((e) => a(e.targetNodeKey, /* @__PURE__ */ new Set([...n, t])));
96
- }
97
- a(t), i.add(r.nodeKey);
98
- let o = e.links.filter((e) => !i.has(e.sourceNodeKey) && i.has(e.targetNodeKey)), s = e.links.filter((e) => i.has(e.sourceNodeKey) && !i.has(e.targetNodeKey));
99
- if (o.length !== 1 || o[0]?.targetNodeKey !== t || s.length !== 1 || s[0]?.sourceNodeKey !== r.nodeKey) throw Error("分支包含外部交叉路径,不能整体删除");
100
- return {
101
- ...e,
102
- nodes: e.nodes.filter((e) => !i.has(e.nodeKey)),
103
- links: e.links.filter((e) => !i.has(e.sourceNodeKey) && (!i.has(e.targetNodeKey) || e === o[0])).map((e) => e === o[0] ? {
104
- ...e,
105
- targetNodeKey: s[0].targetNodeKey
106
- } : e)
107
- };
108
- }
109
- function Me(e, t, n) {
110
- let r = e.links.find((e) => e.routeKey === t);
111
- if (!r) throw Error("路径不存在");
112
- return {
113
- ...e,
114
- links: e.links.map((e) => e === r ? {
115
- ...e,
116
- ...n,
117
- ...n.defaultRoute === !0 ? { conditionExpression: void 0 } : {}
118
- } : n.defaultRoute === !0 && e.sourceNodeKey === r.sourceNodeKey ? {
119
- ...e,
120
- defaultRoute: !1
121
- } : e)
122
- };
123
- }
124
- function Ne(e, t, n) {
125
- let r = e.links.find((e) => e.routeKey === t);
126
- if (!r) throw Error("请选择需要插入节点的路径");
127
- if (e.nodes.some((e) => e.nodeKey === n.nodeKey)) throw Error("节点标识已存在");
128
- return {
129
- ...e,
130
- nodes: [...e.nodes, n],
131
- links: [...e.links.map((e) => e === r ? {
132
- ...e,
133
- targetNodeKey: n.nodeKey
134
- } : e), {
135
- routeKey: `${n.nodeKey}_next`,
136
- sourceNodeKey: n.nodeKey,
137
- targetNodeKey: r.targetNodeKey,
138
- title: "继续"
139
- }]
140
- };
141
- }
142
- function Pe(e, t) {
143
- let n = e.nodes.find((e) => e.nodeKey === t);
144
- if (!n || ["start", "end"].includes(n.nodeType)) throw Error("开始和结束节点必须保留");
145
- let r = e.links.filter((e) => e.targetNodeKey === t), i = e.links.filter((e) => e.sourceNodeKey === t);
146
- if (r.length !== 1 || i.length !== 1 || i[0]?.conditionExpression) throw Error("该节点包含分支或复杂路径,请先调整连线,确保删除后路径含义明确");
147
- return {
148
- ...e,
149
- nodes: e.nodes.filter((e) => e.nodeKey !== t),
150
- links: e.links.filter((e) => e.sourceNodeKey !== t).map((e) => e.targetNodeKey === t ? {
151
- ...e,
152
- targetNodeKey: i[0].targetNodeKey
153
- } : e)
154
- };
155
- }
156
- function Fe(e) {
157
- let t = [
158
- {
159
- nodeKey: "start",
160
- nodeType: "start",
161
- title: "提交"
162
- },
163
- {
164
- ...C("approval", "审批"),
165
- requireRejectReason: !0,
166
- allowRejectReturnToMe: !0,
167
- allowRollback: !0,
168
- requireRollbackReason: !0,
169
- allowAddSign: !0
170
- },
171
- ...e ? [{
172
- nodeKey: "approved",
173
- nodeType: "milestone",
174
- title: "审批完成",
175
- milestoneType: "approval_completed"
176
- }] : [],
177
- {
178
- nodeKey: "end",
179
- nodeType: "end",
180
- title: "完成"
181
- }
182
- ];
183
- return {
184
- nodes: t,
185
- links: t.slice(1).map((e, n) => ({
186
- routeKey: `route_${n + 1}`,
187
- sourceNodeKey: t[n].nodeKey,
188
- targetNodeKey: e.nodeKey,
189
- title: "继续"
190
- }))
191
- };
192
- }
193
- //#endregion
194
- //#region src/views/WorkflowConfigurationView.vue?vue&type=script&setup=true&lang.ts
195
- var Ie = { class: "workflow-configuration" }, Le = { class: "workflow-field" }, Re = { class: "workflow-field" }, ze = { class: "workflow-field" }, Be = { class: "workflow-field" }, Ve = { class: "workflow-field" }, He = { class: "workflow-field" }, Ue = { class: "workflow-field" }, We = { class: "workflow-field" }, Ge = { class: "workflow-field" }, Ke = { key: 1 }, qe = { key: 2 }, Je = { class: "toolbar" }, Ye = { key: 2 }, Xe = { class: "publish-nodes" }, Ze = { key: 0 }, Qe = { key: 0 }, $e = { key: 1 }, et = { key: 0 }, w = /*#__PURE__*/ _e(/* @__PURE__ */ _({
196
- name: "WorkflowConfigurationView",
197
- __name: "WorkflowConfigurationView",
198
- props: {
199
- moduleAlias: {},
200
- moduleTitle: {}
201
- },
202
- setup(_e) {
203
- let _ = he();
204
- function w(e) {
205
- return xe(e, _);
206
- }
207
- let tt = _e, T = le({ moduleAlias: "platform.workflow.definition" }), E = t(T.http, tt.moduleAlias), nt = ce({
208
- http: T.http,
209
- language: _,
210
- moduleAlias: tt.moduleAlias,
211
- runtimeAccess: "VIEW"
212
- }), rt = ce({
213
- http: T.http,
214
- language: _,
215
- moduleAlias: "iam.organization",
216
- runtimeAccess: "REFERENCE"
217
- });
218
- e({
219
- moduleAlias: tt.moduleAlias,
220
- predicate: (e) => e.type === "configuration-translations-changed",
221
- handler: async () => {
222
- try {
223
- await nt.runtime.refreshTexts?.();
224
- } catch (e) {
225
- l(e, {
226
- source: "workflow-design",
227
- phase: "load"
228
- });
229
- }
230
- }
231
- });
232
- let it = d(() => pe(nt.runtime)), D = d(() => [...re(it.value?.uiDescriptor)].map(([e, t]) => ({
233
- name: e,
234
- label: t.label ?? e,
235
- valueType: t.valueType,
236
- referenceModule: t.reference?.targetModuleAlias
237
- }))), O = y({
238
- tasks: [],
239
- queries: [],
240
- generations: [],
241
- associations: []
242
- }), at = d(() => (it.value?.actions ?? []).map((e) => ({
243
- value: e.actionCode,
244
- label: e.title ?? w(e.actionCode)
245
- })));
246
- async function ot(e) {
247
- O.value = await E.catalog(e);
248
- }
249
- let k = y(!1), A = y(!1), j = y(!1);
250
- async function st() {
251
- try {
252
- await nt.runtime.ready;
253
- } catch (e) {
254
- l(e, {
255
- source: "workflow-design",
256
- phase: "load"
257
- });
258
- }
259
- }
260
- let ct = d(() => [
261
- {
262
- key: "save",
263
- title: _.t("platform.screen.WorkflowConfigurationView.save-draft", "保存草稿"),
264
- level: "primary",
265
- disabled: !X.value || !B.value
266
- },
267
- {
268
- key: "validate",
269
- title: _.t("platform.screen.WorkflowConfigurationView.validate-workflow", "校验流程"),
270
- disabled: !X.value
271
- },
272
- {
273
- key: "publish",
274
- title: F.value?.publishStatus === "published" ? _.t("platform.screen.WorkflowConfigurationView.enable-published", "启用已发布版本") : _.t("platform.screen.WorkflowConfigurationView.publish-workflow", "发布流程"),
275
- disabled: !F.value || z.value || j.value
276
- },
277
- {
278
- key: "upgrade",
279
- title: _.t("platform.screen.WorkflowConfigurationView.create-version", "创建新版本"),
280
- level: "secondary",
281
- disabled: z.value || B.value || j.value
282
- },
283
- {
284
- key: "selection",
285
- title: _.t("platform.screen.WorkflowConfigurationView.matching-rules", "匹配规则"),
286
- level: "secondary",
287
- disabled: z.value || B.value
288
- },
289
- {
290
- key: "disable",
291
- title: _.t("platform.screen.WorkflowConfigurationView.disable", "停用"),
292
- level: "secondary",
293
- danger: !0,
294
- disabled: z.value || B.value || j.value
295
- },
296
- {
297
- key: "archive",
298
- title: _.t("platform.screen.WorkflowConfigurationView.archive", "归档"),
299
- level: "secondary",
300
- danger: !0,
301
- disabled: z.value || B.value || j.value
302
- }
303
- ]);
304
- function lt(e) {
305
- e === "save" ? St() : e === "validate" ? Ct() : e === "publish" ? A.value = !0 : e === "upgrade" ? Tt() : e === "selection" ? bt() : Et(e);
306
- }
307
- function ut(e) {
308
- try {
309
- return se(e).map((e) => ({
310
- INITIATOR_SELF: _.t("platform.workflow-participant.initiator", "提交人本人"),
311
- USER: _.t("platform.workflow-participant.named-accounts", "指定账号"),
312
- ROLE: _.t("platform.workflow-participant.role-members", "角色成员"),
313
- DEPT: _.t("platform.workflow-participant.department-members", "部门成员"),
314
- ORG: _.t("platform.workflow-participant.organization-members", "组织成员"),
315
- FIELD: _.t("platform.workflow-participant.participant-field", "业务人员字段"),
316
- RELATIVE: _.t("platform.workflow-participant.relative-participants", "相对人员")
317
- }[e.type] ?? e.type) + (e.ids?.length ? _.t("platform.workflow-config.target-count", "({count} 个目标)", { count: e.ids.length }) : e.fieldName ? `(${D.value.find((t) => t.name === e.fieldName)?.label ?? e.fieldName})` : "")).join("、") || _.t("platform.workflow-config.empty-participants", "尚未配置参与人");
318
- } catch {
319
- return _.t("platform.workflow-config.invalid-participants", "人员配置格式无效");
320
- }
321
- }
322
- let M = y([]), N = y([]), P = y(), F = y(), I = y({
323
- nodes: [],
324
- links: []
325
- }), L = y(""), R = y(""), z = y(!1), B = y(!1), V = y(!1), H = y(!1), U = y(""), W = y(""), G = y(""), K = y(""), q = y("0"), J = y(!1), Y = y(!0), dt = d(() => ["published", "archived"].includes(F.value?.publishStatus ?? "")), X = d(() => F.value?.publishStatus === "draft" && !z.value), Z = d(() => I.value.nodes.find((e) => e.nodeKey === L.value)), ft = d(() => I.value.links.find((e) => e.routeKey === R.value));
326
- function pt(e) {
327
- let t = I.value.nodes.find((t) => t.nodeKey === e.convergeNodeKey), n = {
328
- all: _.t("platform.workflow-config.all-arrive", "全部到达"),
329
- any: _.t("platform.workflow-config.any-arrive", "任一到达"),
330
- ratio: _.t("platform.workflow-config.ratio-arrive", "比例到达")
331
- }, r = t?.convergeMode ?? "all";
332
- return `${n[r]}${r === "ratio" ? ` ${t?.convergeRatio ?? 100}%` : ""}`;
333
- }
334
- ae(() => _.t("platform.workflow-config.configuration", "流程配置"), () => B.value || j.value, () => z.value), De([
335
- W,
336
- G,
337
- K,
338
- q,
339
- J
340
- ], () => {
341
- (H.value || V.value) && (j.value = !0);
342
- }), Te(() => {
343
- mt(), st();
344
- });
345
- async function Q(e) {
346
- if (!z.value) {
347
- z.value = !0;
348
- try {
349
- await e();
350
- } catch (e) {
351
- l(e, {
352
- source: "workflow-design",
353
- phase: "action"
354
- });
355
- } finally {
356
- z.value = !1;
357
- }
358
- }
359
- }
360
- async function mt() {
361
- await Q(async () => {
362
- M.value = await E.query();
363
- });
364
- }
365
- async function ht(e) {
366
- if (B.value || j.value) {
367
- l(Error(_.t("platform.workflow-config.save-first", "请先保存流程设计")), {
368
- source: "workflow-design",
369
- phase: "validation"
370
- });
371
- return;
372
- }
373
- j.value = !1, await Q(async () => {
374
- P.value = e, await ot(e.id), H.value = !1, W.value = e.title ?? e.alias, G.value = e.organizationId ?? "", K.value = e.matchExpression ?? "", q.value = String(e.matchPriority ?? 0), J.value = e.defaultDefinition === !0, V.value = !1, N.value = (await E.versions(e.id)).sort((e, t) => t.versionNo - e.versionNo);
375
- let t = N.value[0];
376
- t ? await gt(t) : (F.value = void 0, I.value = {
377
- nodes: [],
378
- links: []
379
- });
380
- });
381
- }
382
- async function gt(e) {
383
- F.value = e, I.value = await E.design(P.value.id, e.id), B.value = !1, L.value = I.value.nodes[0]?.nodeKey ?? "", R.value = "", k.value = !1;
384
- }
385
- async function _t(e) {
386
- if (B.value || j.value) return;
387
- let t = N.value.find((t) => t.id === e);
388
- t && await Q(() => gt(t));
389
- }
390
- async function vt() {
391
- U.value.trim() && W.value.trim() && await Q(async () => {
392
- let e = await E.create({
393
- alias: U.value.trim(),
394
- title: W.value.trim(),
395
- approvalEnabled: Y.value,
396
- organizationId: G.value || null,
397
- matchExpression: K.value || null,
398
- matchPriority: Number(q.value),
399
- defaultDefinition: J.value,
400
- enabled: !0
401
- });
402
- P.value = e, M.value.push(e), await ot(e.id), V.value = !1, j.value = !1;
403
- let t = await E.upgrade(e.id);
404
- N.value = [t], F.value = t, I.value = Fe(Y.value), B.value = !0, $("approval");
405
- });
406
- }
407
- async function yt() {
408
- (!j.value || await ue({
409
- title: _.t("platform.workflow-config.discard-confirm", "放弃未保存的流程设置?"),
410
- danger: !0,
411
- okText: _.t("platform.workflow-config.discard", "放弃修改")
412
- }, _)) && (V.value = !1, H.value = !1, j.value = !1, P.value && (W.value = P.value.title ?? P.value.alias, G.value = P.value.organizationId ?? "", K.value = P.value.matchExpression ?? "", q.value = String(P.value.matchPriority ?? 0), J.value = P.value.defaultDefinition === !0));
413
- }
414
- async function bt() {
415
- if (H.value) {
416
- await yt();
417
- return;
418
- }
419
- H.value = !0;
420
- }
421
- async function xt() {
422
- !z.value && P.value && await Q(async () => {
423
- let e = await E.saveSelection(P.value.id, {
424
- version: P.value.version,
425
- title: W.value,
426
- organizationId: G.value || null,
427
- matchExpression: K.value || null,
428
- matchPriority: Number(q.value),
429
- defaultDefinition: J.value
430
- });
431
- M.value = M.value.map((t) => t.id === e.id ? e : t), P.value = e, H.value = !1, j.value = !1, c(_.t("platform.workflow-config.matching-saved", "流程匹配规则已保存,后续提交生效"));
432
- });
433
- }
434
- async function St() {
435
- F.value && P.value && await Q(async () => {
436
- F.value = await E.saveDesign(P.value.id, F.value.id, F.value.version, I.value), N.value = N.value.map((e) => e.id === F.value.id ? F.value : e), B.value = !1, c(_.t("platform.workflow-config.draft-saved", "流程草稿已保存"));
437
- });
438
- }
439
- async function Ct() {
440
- B.value && await St(), !B.value && F.value && await Q(async () => {
441
- await E.validate(P.value.id, F.value.id), c(_.t("platform.workflow-config.validated", "流程发布校验通过"));
442
- });
443
- }
444
- async function wt() {
445
- if (I.value.nodes.some((e) => ["approval", "task"].includes(e.nodeType) && !de(e.participantPolicyText))) {
446
- l(Error(_.t("platform.workflow-config.participants-required", "请为每个审批或业务任务节点明确配置参与人")), {
447
- source: "workflow-design",
448
- phase: "validation"
449
- });
450
- return;
451
- }
452
- B.value && await St(), !B.value && P.value && F.value && (await Q(async () => {
453
- F.value = await E.publish(P.value.id, F.value.id, P.value.version, F.value.version), N.value = N.value.map((e) => e.id === F.value.id ? F.value : e), P.value = await E.view(P.value.id), B.value = !1, A.value = !1, c(_.t("platform.workflow-config.published", "流程已发布,后续新申请使用该版本"));
454
- }), await mt());
455
- }
456
- async function Tt() {
457
- P.value && await Q(async () => {
458
- let e = await E.upgrade(P.value.id);
459
- N.value = [e, ...N.value.filter((t) => t.id !== e.id)], await gt(e), I.value.nodes.length || (I.value = Fe(P.value.approvalEnabled), B.value = !0, $("approval"));
460
- });
461
- }
462
- async function Et(e) {
463
- P.value && await ue({
464
- title: e === "archive" ? _.t("platform.workflow-config.archive-confirm", "归档此流程?") : _.t("platform.workflow-config.disable-confirm", "停用此流程?"),
465
- content: _.t("platform.workflow-config.future-only", "此操作影响后续新申请,已有实例继续使用冻结版本。"),
466
- danger: !0
467
- }, _) && (await Q(async () => {
468
- P.value = await E.changeStatus(P.value.id, e, P.value.version), c(_.t("platform.workflow-config.status-updated", "流程状态已更新"));
469
- }), await mt());
470
- }
471
- function $(e) {
472
- L.value = e, R.value = "", k.value = !!e;
473
- }
474
- function Dt(e) {
475
- R.value = e, L.value = "", k.value = !!e;
476
- }
477
- function Ot(e) {
478
- X.value && I.value.layoutJson !== e && (I.value = {
479
- ...I.value,
480
- layoutJson: e
481
- }, B.value = !0);
482
- }
483
- function kt(e) {
484
- Z.value && X.value && (Object.assign(Z.value, e), B.value = !0);
485
- }
486
- function At(e) {
487
- ft.value && X.value && (I.value = Me(I.value, ft.value.routeKey, e), B.value = !0);
488
- }
489
- function jt() {
490
- let e = I.value.links.filter((e) => e.sourceNodeKey === L.value);
491
- return R.value || (e.length === 1 ? e[0]?.routeKey : void 0) || "";
492
- }
493
- function Mt() {
494
- if (!X.value) return;
495
- let e = `branch_${Date.now().toString(36)}`;
496
- try {
497
- I.value = ke(I.value, jt(), e), B.value = !0, $(e);
498
- } catch (e) {
499
- l(e, {
500
- source: "workflow-design",
501
- phase: "validation"
502
- });
503
- }
504
- }
505
- function Nt() {
506
- if (X.value) try {
507
- I.value = Ae(I.value, L.value, `path_${Date.now().toString(36)}`), B.value = !0;
508
- } catch (e) {
509
- l(e, {
510
- source: "workflow-design",
511
- phase: "validation"
512
- });
513
- }
514
- }
515
- async function Pt() {
516
- if (X.value) try {
517
- let e = je(I.value, L.value);
518
- if (!await ue({
519
- title: _.t("platform.workflow-config.delete-branch-confirm", "删除整个分支?"),
520
- content: _.t("platform.workflow-config.delete-branch-detail", "将删除分支、配对汇聚及其中 {count} 个节点,并连接前后路径。", { count: I.value.nodes.length - e.nodes.length - 2 }),
521
- danger: !0,
522
- okText: _.t("platform.workflow-config.delete-branch", "删除分支")
523
- }, _)) return;
524
- I.value = e, B.value = !0, L.value = "", k.value = !1;
525
- } catch (e) {
526
- l(e, {
527
- source: "workflow-design",
528
- phase: "validation"
529
- });
530
- }
531
- }
532
- function Ft() {
533
- if (!X.value) return;
534
- let e = I.value.links.filter((e) => e.sourceNodeKey === L.value), t = R.value || (e.length === 1 ? e[0]?.routeKey : void 0), n = `node_${Date.now().toString(36)}`;
535
- try {
536
- I.value = Ne(I.value, t ?? "", C(n, "新审批节点")), B.value = !0, $(n);
537
- } catch (e) {
538
- l(e, {
539
- source: "workflow-design",
540
- phase: "validation"
541
- });
542
- }
543
- }
544
- function It() {
545
- if (X.value) try {
546
- I.value = Pe(I.value, L.value), B.value = !0, L.value = "", k.value = !1;
547
- } catch (e) {
548
- l(e, {
549
- source: "workflow-design",
550
- phase: "validation"
551
- });
552
- }
553
- }
554
- function Lt() {
555
- X.value && (I.value.links = I.value.links.filter((e) => e.routeKey !== R.value), R.value = "", B.value = !0);
556
- }
557
- function Rt() {
558
- if (!X.value) return;
559
- let e = I.value.nodes[0], t = I.value.nodes.find((e) => e.nodeType === "end");
560
- if (!e || !t) return;
561
- let n = `route_${Date.now().toString(36)}`;
562
- I.value.links.push({
563
- routeKey: n,
564
- sourceNodeKey: Z.value?.nodeKey ?? e.nodeKey,
565
- targetNodeKey: t.nodeKey,
566
- title: "新路径"
567
- }), R.value = n, L.value = "", k.value = !0, B.value = !0;
568
- }
569
- return (e, t) => (v(), p("section", Ie, [g(x(r), {
570
- "explorer-count": 1,
571
- editing: B.value || j.value || z.value
572
- }, {
573
- default: S(() => [g(x(Se), null, {
574
- default: S(() => [g(x(s), {
575
- title: x(_).t("platform.screen.WorkflowConfigurationView.approval-workflow", "审批流程"),
576
- searchable: !1,
577
- "refresh-disabled": z.value || B.value,
578
- onRefresh: mt
579
- }, {
580
- actions: S(() => [g(x(i), {
581
- disabled: z.value || B.value || j.value,
582
- onClick: t[0] ||= (e) => {
583
- V.value = !0, W.value = "", U.value = "";
584
- }
585
- }, {
586
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.new-workflow", "新建流程")), 1)]),
587
- _: 1
588
- }, 8, ["disabled"])]),
589
- default: S(() => [g(x(ge), {
590
- records: M.value,
591
- "selected-id": P.value?.id,
592
- "title-of": (e) => String(e.title ?? e.alias ?? ""),
593
- "code-of": (e) => String(e.alias ?? ""),
594
- "tag-of": (e) => w(String(e.definitionStatus ?? "")),
595
- onSelect: t[1] ||= (e) => ht(M.value.find((t) => t.id === e.id))
596
- }, null, 8, [
597
- "records",
598
- "selected-id",
599
- "title-of",
600
- "code-of",
601
- "tag-of"
602
- ])]),
603
- _: 1
604
- }, 8, ["title", "refresh-disabled"])]),
605
- _: 1
606
- }), g(x(ne), { title: P.value?.title ?? x(_).t("platform.workflow-config.configuration", "流程配置") }, {
607
- default: S(() => [V.value ? (v(), p("form", {
608
- key: 0,
609
- class: "property-form",
610
- onSubmit: Oe(vt, ["prevent"])
611
- }, [
612
- m("h3", null, b(x(_).t("platform.screen.WorkflowConfigurationView.new-workflow", "新建流程")), 1),
613
- m("label", Le, [g(x(ee), { required: "" }, {
614
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.workflow-name", "流程名称")), 1)]),
615
- _: 1
616
- }), g(x(n), {
617
- disabled: z.value,
618
- value: W.value,
619
- "onUpdate:value": t[2] ||= (e) => W.value = e,
620
- "aria-label": x(_).t("platform.screen.WorkflowConfigurationView.workflow-name", "流程名称")
621
- }, null, 8, [
622
- "disabled",
623
- "value",
624
- "aria-label"
625
- ])]),
626
- m("label", Re, [g(x(ee), { required: "" }, {
627
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.workflow-code", "流程编码")), 1)]),
628
- _: 1
629
- }), g(x(n), {
630
- disabled: z.value,
631
- value: U.value,
632
- "onUpdate:value": t[3] ||= (e) => U.value = e,
633
- "aria-label": x(_).t("platform.screen.WorkflowConfigurationView.workflow-code", "流程编码")
634
- }, null, 8, [
635
- "disabled",
636
- "value",
637
- "aria-label"
638
- ])]),
639
- g(x(a), {
640
- disabled: z.value,
641
- checked: Y.value,
642
- "onUpdate:checked": t[4] ||= (e) => Y.value = e
643
- }, {
644
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.govern-business-approval-status", "驱动业务审批状态")), 1)]),
645
- _: 1
646
- }, 8, ["disabled", "checked"]),
647
- m("label", ze, [h(b(x(_).t("platform.screen.WorkflowConfigurationView.applicable-organization", "适用组织")), 1), g(x(oe), {
648
- value: G.value || void 0,
649
- context: x(rt),
650
- disabled: z.value,
651
- mode: "tree",
652
- "onUpdate:value": t[5] ||= (e) => G.value = e ?? ""
653
- }, null, 8, [
654
- "value",
655
- "context",
656
- "disabled"
657
- ])]),
658
- m("label", Be, [h(b(x(_).t("platform.screen.WorkflowConfigurationView.matching-condition", "匹配条件")), 1), g(x(fe), {
659
- disabled: z.value,
660
- value: K.value,
661
- "onUpdate:value": t[6] ||= (e) => K.value = e,
662
- fields: D.value,
663
- placeholder: x(_).t("platform.screen.WorkflowConfigurationView.leave-empty-to-match-all-records", "留空匹配所有记录")
664
- }, null, 8, [
665
- "disabled",
666
- "value",
667
- "fields",
668
- "placeholder"
669
- ])]),
670
- m("label", Ve, [h(b(x(_).t("platform.screen.WorkflowConfigurationView.priority", "优先级")), 1), g(x(n), {
671
- disabled: z.value,
672
- value: q.value,
673
- "onUpdate:value": t[7] ||= (e) => q.value = e,
674
- type: "number"
675
- }, null, 8, ["disabled", "value"])]),
676
- g(x(a), {
677
- disabled: z.value,
678
- checked: J.value,
679
- "onUpdate:checked": t[8] ||= (e) => J.value = e
680
- }, {
681
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.use-as-the-fallback-workflow-for-this", "作为当前组织范围的兜底流程")), 1)]),
682
- _: 1
683
- }, 8, ["disabled", "checked"]),
684
- g(x(i), {
685
- type: "primary",
686
- loading: z.value,
687
- disabled: z.value || !W.value.trim() || !U.value.trim(),
688
- onClick: vt
689
- }, {
690
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.create-workflow-draft", "创建流程草稿")), 1)]),
691
- _: 1
692
- }, 8, ["loading", "disabled"]),
693
- g(x(i), {
694
- disabled: z.value,
695
- onClick: yt
696
- }, {
697
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.cancel-creation", "取消新建")), 1)]),
698
- _: 1
699
- }, 8, ["disabled"])
700
- ], 32)) : P.value ? (v(), p(u, { key: 1 }, [
701
- m("div", { class: we(["toolbar", { "configuration-toolbar--properties": k.value }]) }, [g(x(ie), {
702
- value: F.value?.id,
703
- options: N.value.map((e) => ({
704
- value: e.id,
705
- label: x(_).t("platform.screen.WorkflowConfigurationView.version-value-value", "版本 {value1} · {value2}", {
706
- value1: e.versionNo,
707
- value2: w(e.publishStatus)
708
- })
709
- })),
710
- disabled: z.value || B.value,
711
- "onUpdate:value": t[9] ||= (e) => _t(String(e))
712
- }, null, 8, [
713
- "value",
714
- "options",
715
- "disabled"
716
- ]), g(x(o), {
717
- class: "configuration-action-bar",
718
- actions: ct.value,
719
- onAction: t[10] ||= (e) => lt(e.key)
720
- }, null, 8, ["actions"])], 2),
721
- H.value ? (v(), p("form", {
722
- key: 0,
723
- class: "property-form",
724
- onSubmit: Oe(xt, ["prevent"])
725
- }, [
726
- m("h3", null, b(x(_).t("platform.screen.WorkflowConfigurationView.workflow-matching-rules", "流程匹配规则")), 1),
727
- m("label", He, [g(x(ee), { required: "" }, {
728
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.workflow-name", "流程名称")), 1)]),
729
- _: 1
730
- }), g(x(n), {
731
- disabled: z.value,
732
- value: W.value,
733
- "onUpdate:value": t[11] ||= (e) => W.value = e
734
- }, null, 8, ["disabled", "value"])]),
735
- m("label", Ue, [h(b(x(_).t("platform.screen.WorkflowConfigurationView.applicable-organization", "适用组织")), 1), g(x(oe), {
736
- value: G.value || void 0,
737
- context: x(rt),
738
- disabled: z.value,
739
- mode: "tree",
740
- "onUpdate:value": t[12] ||= (e) => G.value = e ?? ""
741
- }, null, 8, [
742
- "value",
743
- "context",
744
- "disabled"
745
- ])]),
746
- m("label", We, [h(b(x(_).t("platform.screen.WorkflowConfigurationView.matching-condition", "匹配条件")), 1), g(x(fe), {
747
- disabled: z.value,
748
- value: K.value,
749
- "onUpdate:value": t[13] ||= (e) => K.value = e,
750
- fields: D.value
751
- }, null, 8, [
752
- "disabled",
753
- "value",
754
- "fields"
755
- ])]),
756
- m("label", Ge, [h(b(x(_).t("platform.screen.WorkflowConfigurationView.priority", "优先级")), 1), g(x(n), {
757
- disabled: z.value,
758
- value: q.value,
759
- "onUpdate:value": t[14] ||= (e) => q.value = e,
760
- type: "number"
761
- }, null, 8, ["disabled", "value"])]),
762
- g(x(a), {
763
- disabled: z.value,
764
- checked: J.value,
765
- "onUpdate:checked": t[15] ||= (e) => J.value = e
766
- }, {
767
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.use-as-the-fallback-workflow-for-this", "作为当前组织范围的兜底流程")), 1)]),
768
- _: 1
769
- }, 8, ["disabled", "checked"]),
770
- m("p", null, b(x(_).t("platform.screen.WorkflowConfigurationView.changes-affect-future-submissions-existing-instances-retain", "调整仅影响后续提交,已有实例保留原发布版本和分派快照。")), 1),
771
- g(x(i), {
772
- type: "primary",
773
- loading: z.value,
774
- disabled: z.value,
775
- onClick: xt
776
- }, {
777
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.save-matching-rules", "保存匹配规则")), 1)]),
778
- _: 1
779
- }, 8, ["loading", "disabled"]),
780
- g(x(i), {
781
- disabled: z.value,
782
- onClick: yt
783
- }, {
784
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.cancel-changes", "取消修改")), 1)]),
785
- _: 1
786
- }, 8, ["disabled"])
787
- ], 32)) : f("v-if", !0),
788
- dt.value ? (v(), p("p", Ke, b(x(_).t("platform.screen.WorkflowConfigurationView.this-version-is-frozen-create-a-new", "此版本已冻结。修改流程请创建新版本;已有实例继续使用原版本。")), 1)) : f("v-if", !0),
789
- B.value ? (v(), p("p", qe, b(x(_).t("platform.screen.WorkflowConfigurationView.the-draft-has-unsaved-changes", "草稿有未保存的修改")), 1)) : f("v-if", !0),
790
- m("div", { class: we(["configuration-design", { "configuration-design--properties": k.value }]) }, [(v(), Ce(x(ye), {
791
- key: F.value?.id,
792
- nodes: I.value.nodes,
793
- routes: I.value.links,
794
- "selected-node-key": L.value,
795
- "selected-route-key": R.value,
796
- "layout-json": I.value.layoutJson,
797
- editable: X.value,
798
- interactive: "",
799
- onSelect: $,
800
- onSelectRoute: Dt,
801
- onLayoutChange: Ot
802
- }, null, 8, [
803
- "nodes",
804
- "routes",
805
- "selected-node-key",
806
- "selected-route-key",
807
- "layout-json",
808
- "editable"
809
- ])), m("div", Je, [
810
- g(x(i), {
811
- disabled: !X.value,
812
- onClick: Ft
813
- }, {
814
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.insert-approval-node", "插入审批节点")), 1)]),
815
- _: 1
816
- }, 8, ["disabled"]),
817
- g(x(i), {
818
- disabled: !X.value,
819
- onClick: Mt
820
- }, {
821
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.insert-branch-and-convergence", "插入分支与汇聚")), 1)]),
822
- _: 1
823
- }, 8, ["disabled"]),
824
- g(x(i), {
825
- disabled: !X.value,
826
- onClick: Rt
827
- }, {
828
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.add-link", "添加连线")), 1)]),
829
- _: 1
830
- }, 8, ["disabled"]),
831
- g(x(ie), {
832
- value: R.value || void 0,
833
- placeholder: x(_).t("platform.screen.WorkflowConfigurationView.select-link", "选择连线"),
834
- options: I.value.links.map((e) => ({
835
- value: e.routeKey,
836
- label: `${e.title ?? x(_).t("platform.workflow-config.route", "路径")}:${I.value.nodes.find((t) => t.nodeKey === e.sourceNodeKey)?.title} → ${I.value.nodes.find((t) => t.nodeKey === e.targetNodeKey)?.title}`
837
- })),
838
- "onUpdate:value": t[16] ||= (e) => Dt(String(e))
839
- }, null, 8, [
840
- "value",
841
- "placeholder",
842
- "options"
843
- ])
844
- ])], 2),
845
- g(x(te), {
846
- width: "wide",
847
- open: k.value,
848
- title: Z.value?.title ? x(_).t("platform.workflow-config.node-properties", "节点属性 · {title}", { title: Z.value.title }) : x(_).t("platform.workflow-config.route-properties", "路径属性"),
849
- onClose: t[18] ||= (e) => k.value = !1
850
- }, {
851
- operation: S(() => [g(x(i), {
852
- disabled: z.value,
853
- onClick: t[17] ||= (e) => k.value = !1
854
- }, {
855
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.finish-configuration", "完成配置")), 1)]),
856
- _: 1
857
- }, 8, ["disabled"])]),
858
- default: S(() => [g(x(be), {
859
- design: I.value,
860
- "node-key": L.value,
861
- "route-key": R.value,
862
- editable: X.value,
863
- http: x(T).http,
864
- "module-alias": _e.moduleAlias,
865
- fields: D.value,
866
- catalog: O.value,
867
- actions: at.value,
868
- onUpdateNode: kt,
869
- onUpdateRoute: At,
870
- onSelectRoute: Dt,
871
- onRemoveNode: It,
872
- onRemoveRoute: Lt,
873
- onAppendBranchPath: Nt,
874
- onDeleteBranch: Pt
875
- }, null, 8, [
876
- "design",
877
- "node-key",
878
- "route-key",
879
- "editable",
880
- "http",
881
- "module-alias",
882
- "fields",
883
- "catalog",
884
- "actions"
885
- ])]),
886
- _: 1
887
- }, 8, ["open", "title"])
888
- ], 64)) : (v(), p("p", Ye, b(x(_).t("platform.screen.WorkflowConfigurationView.select-or-create-a-workflow-to-configure", "选择或新建流程,配置节点、参与人、路径和业务完成条件。")), 1))]),
889
- _: 1
890
- }, 8, ["title"])]),
891
- _: 1
892
- }, 8, ["editing"]), g(x(te), {
893
- width: "extraWide",
894
- open: A.value,
895
- title: x(_).t("platform.screen.WorkflowConfigurationView.confirm-workflow-publication", "确认发布流程"),
896
- onClose: t[19] ||= (e) => A.value = !1
897
- }, {
898
- operation: S(() => [g(x(i), {
899
- type: "primary",
900
- loading: z.value,
901
- onClick: wt
902
- }, {
903
- default: S(() => [h(b(x(_).t("platform.screen.WorkflowConfigurationView.confirm-publication", "确认发布")), 1)]),
904
- _: 1
905
- }, 8, ["loading"])]),
906
- default: S(() => [
907
- m("p", null, b(x(_).t("platform.workflow-config.publication-frozen", "流程:{title} · 版本 {version}。发布后配置冻结;已有实例继续使用原版本。", {
908
- title: P.value?.title,
909
- version: F.value?.versionNo
910
- })), 1),
911
- m("p", null, b(x(_).t("platform.workflow-config.matching-scope", "匹配范围")) + ":" + b(P.value?.organizationId ? x(_).t("platform.workflow-config.scoped-organizations", "指定组织及下级组织") : x(_).t("platform.workflow-config.all-organizations", "模块内全部组织")) + "; " + b(x(_).t("platform.workflow-config.priority", "优先级")) + " " + b(P.value?.matchPriority ?? 0) + ";" + b(P.value?.defaultDefinition ? x(_).t("platform.workflow-config.default-workflow", "作为默认兜底流程") : x(_).t("platform.workflow-config.conditional-workflow", "按匹配条件选择")) + "。 " + b(P.value?.matchExpression ? x(_).t("platform.workflow-config.matching-expression", "匹配条件:{expression}", { expression: P.value.matchExpression }) : x(_).t("platform.workflow-config.no-matching-condition", "未设置额外条件")), 1),
912
- m("ul", Xe, [(v(!0), p(u, null, Ee(I.value.nodes.filter((e) => ["approval", "task"].includes(e.nodeType)), (e) => (v(), p("li", { key: e.nodeKey }, [
913
- m("strong", null, b(e.title), 1),
914
- h(" · " + b(ut(e.participantPolicyText)) + " ", 1),
915
- m("details", null, [m("summary", null, b(x(_).t("platform.screen.WorkflowConfigurationView.view-complete-participant-rules", "查看完整人员规则")), 1), g(x(ve), {
916
- value: e.participantPolicyText,
917
- http: x(T).http,
918
- fields: D.value,
919
- disabled: ""
920
- }, null, 8, [
921
- "value",
922
- "http",
923
- "fields"
924
- ])]),
925
- e.nodeType === "task" ? (v(), p("details", Ze, [
926
- m("summary", null, b(x(_).t("platform.screen.WorkflowConfigurationView.view-business-task-checks-and-instructions", "查看业务任务检查与办理指引")), 1),
927
- e.taskDefinitionId ? (v(), p("p", Qe, b(x(_).t("platform.workflow-config.referenced-task", "引用任务")) + ":" + b(O.value.tasks.find((t) => t.id === e.taskDefinitionId)?.title ?? e.taskDefinitionId), 1)) : f("v-if", !0),
928
- g(x(me), {
929
- value: e.nodeConfigText,
930
- "module-alias": _e.moduleAlias,
931
- fields: D.value,
932
- catalog: O.value,
933
- actions: at.value,
934
- associations: O.value.associations.map((e) => ({
935
- value: e.id,
936
- label: e.title
937
- })),
938
- disabled: ""
939
- }, null, 8, [
940
- "value",
941
- "module-alias",
942
- "fields",
943
- "catalog",
944
- "actions",
945
- "associations"
946
- ])
947
- ])) : f("v-if", !0),
948
- e.participantPolicyText?.includes("INITIATOR_SELF") ? (v(), p("p", $e, b(x(_).t("platform.screen.WorkflowConfigurationView.the-submitter-processes-this-node-confirm-that", "此节点由提交人本人办理,请确认符合业务要求。")), 1)) : f("v-if", !0)
949
- ]))), 128))]),
950
- (v(!0), p(u, null, Ee(I.value.nodes.filter((e) => e.nodeType === "branch"), (e) => (v(), p("div", { key: e.nodeKey }, [
951
- m("strong", null, b(e.title) + " · " + b(e.routeMode === "manual" ? x(_).t("platform.workflow-config.manual-route", "人工单选") : x(_).t("platform.workflow-config.auto-route", "自动判定(全部命中出口)")), 1),
952
- e.routeMode === "manual" ? (v(), p("p", et, b(x(_).t("platform.workflow-config.selector-summary", "由{title}的实际办理人选路;{reason}。", {
953
- title: I.value.nodes.find((t) => t.nodeKey === e.selectorNodeKey)?.title ?? x(_).t("platform.workflow-config.missing-selector", "未配置选择节点"),
954
- reason: e.requireManualSelectionReason ? x(_).t("platform.workflow-config.reason-required", "必须填写原因") : x(_).t("platform.workflow-config.reason-optional", "原因选填")
955
- })), 1)) : f("v-if", !0),
956
- m("ul", null, [(v(!0), p(u, null, Ee(I.value.links.filter((t) => t.sourceNodeKey === e.nodeKey), (e) => (v(), p("li", { key: e.routeKey }, b(e.title ?? x(_).t("platform.workflow-config.exit", "出口")) + ":" + b(e.defaultRoute ? x(_).t("platform.workflow-config.fallback-exit", "默认兜底") : e.conditionExpression || x(_).t("platform.workflow-config.unconditional", "无条件(始终命中)")), 1))), 128))]),
957
- m("p", null, b(x(_).t("platform.workflow-config.convergence-counting", "汇聚:{summary},只计算有效出口。", { summary: pt(e) })), 1)
958
- ]))), 128)),
959
- m("details", null, [m("summary", null, b(x(_).t("platform.screen.WorkflowConfigurationView.view-published-workflow", "查看发布流程图")), 1), g(x(ye), {
960
- presentation: "detail",
961
- nodes: I.value.nodes,
962
- routes: I.value.links,
963
- "layout-json": I.value.layoutJson
964
- }, null, 8, [
965
- "nodes",
966
- "routes",
967
- "layout-json"
968
- ])])
969
- ]),
970
- _: 1
971
- }, 8, ["open", "title"])]));
972
- }
973
- }), [["__scopeId", "data-v-bd98fa2a"]]);
974
- //#endregion
975
- export { w as default };