@ximatai/muyun-web-app 0.26.4 → 0.26.6

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 (92) hide show
  1. package/dist/{EmployeeDetailWorkspaceView-BySbWjCV.js → EmployeeDetailWorkspaceView-DHZ4arBj.js} +1 -1
  2. package/dist/{EmployeeManagementView-DvmDPxzN.js → EmployeeManagementView-BfGb_ssB.js} +336 -336
  3. package/dist/MetadataOrchestrationView-BLxigKBh.js +655 -0
  4. package/dist/{ModuleActionManagementView-DRtYMXOK.js → ModuleActionManagementView-ByJzNkQs.js} +102 -102
  5. package/dist/{RoleAuthorizationView-CK6Vfdup.js → RoleAuthorizationView-DJSWY3fu.js} +62 -62
  6. package/dist/{RoleDetailWorkspaceView-BPZcZy-r.js → RoleDetailWorkspaceView-Dfdigf04.js} +1 -1
  7. package/dist/{RoleManagementView-B7TzzVOm.js → RoleManagementView-D0e9nLwW.js} +295 -295
  8. package/dist/{SystemUserDetailWorkspaceView-BtEDyU-k.js → SystemUserDetailWorkspaceView-D-UPhCmD.js} +1 -1
  9. package/dist/{SystemUserManagementView-TKqj92zG.js → SystemUserManagementView-DNKRvmDk.js} +198 -198
  10. package/dist/{UserDetailWorkspaceView-B6fGrnQ7.js → UserDetailWorkspaceView-BCSCLNSz.js} +1 -1
  11. package/dist/{UserManagementView-4IJeDSQS.js → UserManagementView-aY2AeeWK.js} +287 -287
  12. package/dist/index.css +1 -1
  13. package/dist/index.js +2384 -2410
  14. package/dist/pageRealtime-Be2xkeKK.js +225 -0
  15. package/dist/{platform-components-CgMBopmF.js → platform-components-DuAohqJO.js} +2732 -1546
  16. package/dist/types/app/workbenchRouteSync.d.ts +13 -0
  17. package/dist/types/consumer/index.d.ts +10 -2
  18. package/dist/types/dynamic-page-runtime/DynamicModuleHost.vue.d.ts +8 -1
  19. package/dist/types/dynamic-page-runtime/dynamicModuleDetailStateModel.d.ts +12 -0
  20. package/dist/types/dynamic-page-runtime/index.d.ts +5 -0
  21. package/dist/types/dynamic-page-runtime/modulePageEnhancements.d.ts +126 -0
  22. package/dist/types/dynamic-page-runtime/modulePageListRefresh.d.ts +12 -0
  23. package/dist/types/dynamic-page-runtime/modulePageNavigation.d.ts +11 -0
  24. package/dist/types/platform-admin-runtime/PlatformAdminOutlet.vue.d.ts +1 -0
  25. package/dist/types/platform-admin-runtime/backendHttp.d.ts +1 -1
  26. package/dist/types/platform-admin-runtime/index.d.ts +3 -0
  27. package/dist/types/platform-admin-runtime/realtime.d.ts +9 -5
  28. package/dist/types/platform-admin-runtime/workspaceViewContract.d.ts +1 -36
  29. package/dist/types/platform-admin-runtime/workspaceViewHost.d.ts +2 -10
  30. package/dist/types/platform-admin-runtime/workspaceViews.d.ts +1 -17
  31. package/dist/types/platform-components/CrudRecordListExplorer.vue.d.ts +2 -2
  32. package/dist/types/platform-components/DateTimeText.vue.d.ts +1 -1
  33. package/dist/types/platform-components/FileSizeText.vue.d.ts +10 -0
  34. package/dist/types/platform-components/FileTransferUploader.vue.d.ts +51 -0
  35. package/dist/types/platform-components/RecordDetailExtensionSection.vue.d.ts +16 -0
  36. package/dist/types/platform-components/RecordDetailFields.vue.d.ts +1 -1
  37. package/dist/types/platform-components/RecordFileReferenceTransfer.vue.d.ts +19 -0
  38. package/dist/types/platform-components/RecordFormFields.vue.d.ts +4 -0
  39. package/dist/types/platform-components/RecordListExplorer.vue.d.ts +2 -2
  40. package/dist/types/platform-components/RecordModeDrawer.vue.d.ts +15 -0
  41. package/dist/types/platform-components/RecordMultiPicker.vue.d.ts +33 -0
  42. package/dist/types/platform-components/RecordPanelButton.vue.d.ts +33 -0
  43. package/dist/types/platform-components/RecordPanelState.vue.d.ts +11 -0
  44. package/dist/types/platform-components/RecordPicker.vue.d.ts +1 -1
  45. package/dist/types/platform-components/RecordQueryListPanel.vue.d.ts +47 -2
  46. package/dist/types/platform-components/RecordStatusTag.vue.d.ts +6 -1
  47. package/dist/types/platform-components/RecordTagList.vue.d.ts +7 -0
  48. package/dist/types/platform-components/TreeRecordExplorer.vue.d.ts +2 -2
  49. package/dist/types/platform-components/fileReferenceTransfer.d.ts +17 -0
  50. package/dist/types/platform-components/fileTransferUpload.d.ts +43 -0
  51. package/dist/types/platform-components/index.d.ts +14 -1
  52. package/dist/types/platform-components/platformErrorFeedback.d.ts +2 -0
  53. package/dist/types/platform-components/platformFileSize.d.ts +10 -0
  54. package/dist/types/platform-components/recordActionBarModel.d.ts +6 -1
  55. package/dist/types/platform-components/recordFormFieldModel.d.ts +21 -3
  56. package/dist/types/platform-workbench/Workbench.vue.d.ts +2 -2
  57. package/dist/types/platform-workbench/WorkbenchBrandControl.vue.d.ts +21 -0
  58. package/dist/types/platform-workbench/WorkbenchMenu.vue.d.ts +15 -1
  59. package/dist/types/platform-workbench/WorkbenchMenuTree.vue.d.ts +2 -0
  60. package/dist/types/platform-workbench/WorkspaceViewOutlet.vue.d.ts +7 -0
  61. package/dist/types/platform-workbench/index.d.ts +7 -0
  62. package/dist/types/platform-workbench/menuPointerAim.d.ts +11 -0
  63. package/dist/types/platform-workbench/workbenchLayout.d.ts +1 -0
  64. package/dist/types/platform-workbench/workspaceViewContract.d.ts +20 -0
  65. package/dist/types/platform-workbench/workspaceViewHost.d.ts +8 -0
  66. package/dist/types/platform-workbench/workspaceViews.d.ts +21 -0
  67. package/dist/types/views/employeeDetailWorkspaceView.d.ts +1 -1
  68. package/dist/types/views/metadataOrchestrationWorkspaceView.d.ts +1 -1
  69. package/dist/types/views/moduleActionManagementWorkspaceView.d.ts +1 -1
  70. package/dist/types/views/roleAuthorizationWorkspaceView.d.ts +1 -1
  71. package/dist/types/views/roleDetailWorkspaceView.d.ts +1 -1
  72. package/dist/types/views/systemUserDetailWorkspaceView.d.ts +1 -1
  73. package/dist/types/views/userDetailWorkspaceView.d.ts +1 -1
  74. package/dist/types/vue-ui-antdv/components/UiColorPicker.vue.d.ts +14 -0
  75. package/dist/types/vue-ui-antdv/components/UiIcon.vue.d.ts +1 -1
  76. package/dist/types/vue-ui-antdv/components/UiRecordExplorerItem.vue.d.ts +3 -3
  77. package/dist/types/vue-ui-antdv/components/UiSelect.vue.d.ts +1 -1
  78. package/dist/types/vue-ui-antdv/components/UiTagList.vue.d.ts +17 -0
  79. package/dist/types/vue-ui-antdv/components/UiTree.vue.d.ts +3 -3
  80. package/dist/types/vue-ui-antdv/components/UiTreeSelect.vue.d.ts +1 -1
  81. package/dist/types/vue-ui-antdv/index.d.ts +3 -0
  82. package/dist/types/vue-ui-antdv/types.d.ts +3 -9
  83. package/dist/types/web-contracts/index.d.ts +111 -1
  84. package/dist/types/web-core/clients.d.ts +6 -1
  85. package/dist/types/web-core/http.d.ts +12 -1
  86. package/dist/types/web-core/module/staticModuleClient.d.ts +1 -0
  87. package/dist/{useUserSessionRows-DHsyr2Vy.js → useUserSessionRows-DX9qYU5r.js} +2 -2
  88. package/dist/workspaceViewSessions-C3GP1UGp.js +2639 -0
  89. package/package.json +1 -1
  90. package/dist/MetadataOrchestrationView-2JxJkFEC.js +0 -655
  91. package/dist/pageRealtime-CJriNmzP.js +0 -140
  92. package/dist/workspaceViewSessions-BMbyO9O4.js +0 -1571
@@ -0,0 +1,655 @@
1
+ import { $ as e, C as t, Ct as n, Et as r, J as i, K as a, L as o, Lt as s, Nt as c, O as l, R as u, St as d, Tt as f, _ as p, at as m, ct as h, g, mt as _, pt as v, rt as y, tt as b, vt as x, wt as S, xt as C } from "./platform-components-DuAohqJO.js";
2
+ import { Fragment as ee, computed as w, createBlock as T, createCommentVNode as te, createElementBlock as E, createElementVNode as D, createTextVNode as O, createVNode as k, defineComponent as A, onMounted as ne, openBlock as j, ref as M, toDisplayString as N, unref as P, watch as F, withCtx as I, withModifiers as L } from "vue";
3
+ //#region src/views/metadataOrchestrationState.ts
4
+ function re() {
5
+ let e = M([]), t = M({}), n = M(), r = M([]), i = M([]), a = M("view"), o = M(R()), s = M(z()), c = w(() => e.value.find((e) => e.id === n.value)), l = w(() => c.value?.metadataId ? t.value[c.value.metadataId] : void 0), u = w(() => e.value.some((e) => e.relationRole === "MAIN")), d = w(() => a.value === "create-main"), f = w(() => a.value === "create-field" || a.value === "edit-field"), p = w(() => H(i.value));
6
+ function m(t) {
7
+ e.value = t;
8
+ let r = new Set(t.map((e) => e.id).filter(Boolean));
9
+ (!n.value || !r.has(n.value)) && (n.value = t[0]?.id);
10
+ }
11
+ function h(e) {
12
+ e.id && (t.value = {
13
+ ...t.value,
14
+ [e.id]: e
15
+ });
16
+ }
17
+ function g(e) {
18
+ r.value = V(e);
19
+ }
20
+ function _(e) {
21
+ i.value = e;
22
+ }
23
+ function v(e) {
24
+ return a.value = "view", !e.id || e.id === n.value ? !1 : (n.value = e.id, r.value = [], !0);
25
+ }
26
+ function y(e) {
27
+ e && (n.value = e, a.value = "view", r.value = []);
28
+ }
29
+ function b() {
30
+ o.value = R(), a.value = "create-main";
31
+ }
32
+ function x() {
33
+ l.value?.id && (s.value = z(), a.value = "create-field");
34
+ }
35
+ function S(e) {
36
+ l.value?.id && (s.value = B(e), a.value = "edit-field");
37
+ }
38
+ function C() {
39
+ a.value = "view";
40
+ }
41
+ return {
42
+ relations: e,
43
+ metadataById: t,
44
+ selectedRelationId: n,
45
+ fields: r,
46
+ fieldSpecs: i,
47
+ mode: a,
48
+ mainMetadataDraft: o,
49
+ fieldDraft: s,
50
+ selectedRelation: c,
51
+ selectedMetadata: l,
52
+ hasMainMetadata: u,
53
+ mainEditorOpen: d,
54
+ fieldEditorOpen: f,
55
+ fieldSpecOptions: p,
56
+ handleRelationsLoaded: m,
57
+ handleMetadataLoaded: h,
58
+ handleFieldsLoaded: g,
59
+ handleFieldSpecsLoaded: _,
60
+ selectRelation: v,
61
+ focusRelation: y,
62
+ startCreateMain: b,
63
+ startCreateField: x,
64
+ startEditField: S,
65
+ cancelEditor: C
66
+ };
67
+ }
68
+ function R() {
69
+ return {
70
+ alias: "",
71
+ title: "",
72
+ schemaName: "",
73
+ tableName: "",
74
+ dataScopeEnabled: !1
75
+ };
76
+ }
77
+ function ie(e) {
78
+ return {
79
+ ...e,
80
+ alias: e.alias.trim(),
81
+ title: e.title.trim(),
82
+ schemaName: e.schemaName.trim(),
83
+ tableName: e.tableName.trim()
84
+ };
85
+ }
86
+ function ae(e) {
87
+ return !!(e.alias.trim() && e.title.trim());
88
+ }
89
+ function z() {
90
+ return {
91
+ fieldName: "",
92
+ columnName: "",
93
+ title: "",
94
+ fieldSpecAlias: void 0,
95
+ fieldOwnership: "BUSINESS",
96
+ fieldForm: "PHYSICAL",
97
+ required: !1,
98
+ uniqueField: !1,
99
+ indexed: !1,
100
+ sortableField: !1,
101
+ titleField: !1,
102
+ enabled: !0
103
+ };
104
+ }
105
+ function B(e) {
106
+ return { ...e };
107
+ }
108
+ function oe(e) {
109
+ return !!(e.fieldName?.trim() && e.columnName?.trim() && e.fieldSpecAlias);
110
+ }
111
+ function se(e) {
112
+ return {
113
+ ...e,
114
+ fieldName: e.fieldName?.trim(),
115
+ columnName: e.columnName?.trim(),
116
+ title: e.title?.trim()
117
+ };
118
+ }
119
+ function V(e) {
120
+ return e.filter((e) => e.fieldOwnership === "BUSINESS" && e.fieldForm === "PHYSICAL" && e.systemManaged !== !0);
121
+ }
122
+ function H(e) {
123
+ return e.filter((e) => e.enabled !== !1).map((e) => ({
124
+ value: e.alias ?? e.id ?? "",
125
+ label: e.title ?? e.alias ?? e.id ?? "未命名字段规格"
126
+ })).filter((e) => e.value);
127
+ }
128
+ function U(e, t) {
129
+ return t?.title ?? e.relationAlias ?? "未命名实体";
130
+ }
131
+ function W(e) {
132
+ if (e === "MAIN") return "主实体";
133
+ if (e === "CHILD") return "子实体";
134
+ }
135
+ function G(e, t) {
136
+ let n = U(e, t), r = t?.alias ?? e.relationAlias;
137
+ return {
138
+ title: n,
139
+ secondary: r && r !== n ? r : void 0,
140
+ tag: W(e.relationRole),
141
+ muted: t?.enabled === !1 ? !0 : void 0
142
+ };
143
+ }
144
+ function ce(e) {
145
+ if (!e) return;
146
+ let t = e.tableName ? `${e.schemaName ?? "public"}.${e.tableName}` : void 0;
147
+ return [e.alias, t].filter(Boolean).join(" · ") || void 0;
148
+ }
149
+ //#endregion
150
+ //#region src/views/MetadataOrchestrationView.vue?vue&type=script&setup=true&lang.ts
151
+ var le = { class: "entity-overview" }, ue = { class: "field-section" }, de = { class: "orchestration-form-flags" }, K = 200, q = /*#__PURE__*/ r(/* @__PURE__ */ A({
152
+ name: "MetadataOrchestrationView",
153
+ __name: "MetadataOrchestrationView",
154
+ props: {
155
+ moduleAlias: {},
156
+ moduleTitle: {},
157
+ title: {}
158
+ },
159
+ setup(r) {
160
+ let w = r, A = c({ moduleAlias: "platform.module" }), R = s(A.http, "/platform.metadata"), z = re(), B = M(!1), V = M(!1), H = M(""), W = [
161
+ {
162
+ key: "title",
163
+ title: "字段"
164
+ },
165
+ {
166
+ key: "fieldName",
167
+ title: "字段名",
168
+ width: 150
169
+ },
170
+ {
171
+ key: "fieldSpecAlias",
172
+ title: "字段规格",
173
+ width: 140
174
+ },
175
+ {
176
+ key: "required",
177
+ title: "必填",
178
+ width: 70
179
+ },
180
+ {
181
+ key: "enabled",
182
+ title: "状态",
183
+ width: 70
184
+ }
185
+ ];
186
+ F(() => w.moduleAlias, () => void q(), { immediate: !0 }), ne(() => void fe());
187
+ async function q() {
188
+ B.value = !0;
189
+ try {
190
+ z.handleRelationsLoaded(await $(Q("/query"))), await J();
191
+ } catch (t) {
192
+ e(t, {
193
+ source: "metadata-orchestration",
194
+ phase: "load"
195
+ });
196
+ } finally {
197
+ B.value = !1;
198
+ }
199
+ }
200
+ async function fe() {
201
+ try {
202
+ z.handleFieldSpecsLoaded(await $("/platform.field_spec/query"));
203
+ } catch (t) {
204
+ e(t, {
205
+ source: "metadata-orchestration",
206
+ phase: "load"
207
+ });
208
+ }
209
+ }
210
+ async function pe(e) {
211
+ z.selectRelation(e) && await J();
212
+ }
213
+ async function J() {
214
+ let t = z.selectedRelation.value?.metadataId;
215
+ if (z.handleFieldsLoaded([]), t) try {
216
+ let e = await R.view(t);
217
+ z.handleMetadataLoaded(e), z.handleFieldsLoaded(await $(`/platform.metadata/${encodeURIComponent(t)}/fields/query`));
218
+ } catch (t) {
219
+ e(t, {
220
+ source: "metadata-orchestration",
221
+ phase: "load"
222
+ });
223
+ }
224
+ }
225
+ async function Y() {
226
+ let t = ie(z.mainMetadataDraft.value);
227
+ if (!ae(t)) {
228
+ b("请填写实体 alias 和名称", {
229
+ source: "metadata-orchestration",
230
+ phase: "validation"
231
+ });
232
+ return;
233
+ }
234
+ V.value = !0;
235
+ try {
236
+ let e = await A.http.request({
237
+ method: "POST",
238
+ path: Q("/create-main-metadata"),
239
+ body: t
240
+ });
241
+ z.cancelEditor(), await q(), z.focusRelation(e.relation.id), await J(), await i({
242
+ success: !0,
243
+ message: "主实体已创建"
244
+ }, { source: "metadata-orchestration" });
245
+ } catch (t) {
246
+ e(t, {
247
+ source: "metadata-orchestration",
248
+ phase: "action"
249
+ });
250
+ } finally {
251
+ V.value = !1;
252
+ }
253
+ }
254
+ async function X() {
255
+ let t = z.selectedMetadata.value?.id;
256
+ if (!t) return;
257
+ let n = se(z.fieldDraft.value);
258
+ if (!oe(n)) {
259
+ b("请填写字段名、物理列名和字段规格", {
260
+ source: "metadata-orchestration",
261
+ phase: "validation"
262
+ });
263
+ return;
264
+ }
265
+ V.value = !0;
266
+ try {
267
+ let e = {
268
+ ...n,
269
+ metadataId: t,
270
+ fieldOwnership: "BUSINESS",
271
+ fieldForm: "PHYSICAL"
272
+ };
273
+ e.id ? await A.http.request({
274
+ method: "POST",
275
+ path: `/platform.metadata/${encodeURIComponent(t)}/fields/update/${encodeURIComponent(e.id)}`,
276
+ body: e
277
+ }) : await A.http.request({
278
+ method: "POST",
279
+ path: `/platform.metadata/${encodeURIComponent(t)}/fields/insert`,
280
+ body: e
281
+ }), z.cancelEditor(), await J(), await i({
282
+ success: !0,
283
+ message: "字段已保存"
284
+ }, { source: "metadata-orchestration" });
285
+ } catch (t) {
286
+ e(t, {
287
+ source: "metadata-orchestration",
288
+ phase: "action"
289
+ });
290
+ } finally {
291
+ V.value = !1;
292
+ }
293
+ }
294
+ async function Z(t) {
295
+ let n = z.selectedMetadata.value?.id;
296
+ if (!(!n || !t.id || !await m({
297
+ title: "删除字段",
298
+ content: `确认删除字段“${t.title ?? t.fieldName}”?`,
299
+ okText: "删除",
300
+ danger: !0
301
+ }))) {
302
+ V.value = !0;
303
+ try {
304
+ await A.http.request({
305
+ method: "POST",
306
+ path: `/platform.metadata/${encodeURIComponent(n)}/fields/delete/${encodeURIComponent(t.id)}`,
307
+ body: { version: t.version }
308
+ }), await J();
309
+ } catch (t) {
310
+ e(t, {
311
+ source: "metadata-orchestration",
312
+ phase: "action"
313
+ });
314
+ } finally {
315
+ V.value = !1;
316
+ }
317
+ }
318
+ }
319
+ async function me() {
320
+ let t = z.selectedRelation.value;
321
+ if (t?.id) {
322
+ V.value = !0;
323
+ try {
324
+ await A.http.request({
325
+ method: "POST",
326
+ path: Q(`/${encodeURIComponent(t.id)}/fields/ensure`)
327
+ }), await i({
328
+ success: !0,
329
+ message: "模块字段配置已同步"
330
+ }, { source: "metadata-orchestration" });
331
+ } catch (t) {
332
+ e(t, {
333
+ source: "metadata-orchestration",
334
+ phase: "action"
335
+ });
336
+ } finally {
337
+ V.value = !1;
338
+ }
339
+ }
340
+ }
341
+ function Q(e) {
342
+ return `/platform.module/${encodeURIComponent(w.moduleAlias)}/metadata-relations${e}`;
343
+ }
344
+ async function $(e) {
345
+ let t = [];
346
+ for (let n = 1;; n += 1) {
347
+ let r = await A.http.request({
348
+ method: "POST",
349
+ path: e,
350
+ body: { page: {
351
+ pageNum: n,
352
+ pageSize: K
353
+ } }
354
+ });
355
+ if (t.push(...r.records), r.totalKnown ? n >= r.pages : r.records.length < K) return t;
356
+ }
357
+ }
358
+ function he(e) {
359
+ return e.metadataId ? z.metadataById.value[e.metadataId] : void 0;
360
+ }
361
+ function ge(e) {
362
+ let t = e;
363
+ return G(t, he(t));
364
+ }
365
+ function _e(e, t) {
366
+ let n = t;
367
+ return e.key === "required" ? n.required ? "是" : "否" : e.key === "enabled" ? n.enabled === !1 ? "停用" : "启用" : String(n[e.key] ?? "");
368
+ }
369
+ return (e, i) => (j(), E(ee, null, [
370
+ k(P(u), {
371
+ class: "metadata-orchestration-workspace",
372
+ "explorer-count": 1
373
+ }, {
374
+ default: I(() => [k(P(o), null, {
375
+ default: I(() => [k(P(t), {
376
+ "search-keyword": H.value,
377
+ "onUpdate:searchKeyword": i[0] ||= (e) => H.value = e,
378
+ title: "实体",
379
+ "search-placeholder": "搜索实体名称或 alias",
380
+ onRefresh: q
381
+ }, {
382
+ actions: I(() => [P(z).hasMainMetadata.value ? te("v-if", !0) : (j(), T(P(f), {
383
+ key: 0,
384
+ class: "record-panel-create-button",
385
+ type: "primary",
386
+ "icon-name": "plus",
387
+ title: "新建主实体",
388
+ disabled: B.value || V.value,
389
+ onClick: P(z).startCreateMain
390
+ }, null, 8, ["disabled", "onClick"]))]),
391
+ default: I(() => [B.value ? (j(), T(P(h), {
392
+ key: 0,
393
+ tip: "加载实体"
394
+ })) : P(z).relations.value.length ? (j(), T(P(y), {
395
+ key: 2,
396
+ records: P(z).relations.value,
397
+ "selected-id": P(z).selectedRelationId.value,
398
+ keyword: H.value,
399
+ "empty-description": "暂无实体",
400
+ "item-of": ge,
401
+ onSelect: pe
402
+ }, null, 8, [
403
+ "records",
404
+ "selected-id",
405
+ "keyword"
406
+ ])) : (j(), T(P(_), {
407
+ key: 1,
408
+ description: "请先创建动态模块的主实体"
409
+ }))]),
410
+ _: 1
411
+ }, 8, ["search-keyword"])]),
412
+ _: 1
413
+ }), P(z).selectedMetadata.value && P(z).selectedRelation.value ? (j(), T(P(l), {
414
+ key: 0,
415
+ title: P(U)(P(z).selectedRelation.value, P(z).selectedMetadata.value),
416
+ subtitle: P(ce)(P(z).selectedMetadata.value)
417
+ }, {
418
+ actions: I(() => [k(P(S), {
419
+ emphasis: "quiet",
420
+ disabled: V.value || B.value,
421
+ onClick: me
422
+ }, {
423
+ default: I(() => [...i[16] ||= [O(" 同步模块字段配置 ", -1)]]),
424
+ _: 1
425
+ }, 8, ["disabled"]), k(P(S), {
426
+ emphasis: "primary",
427
+ disabled: V.value || B.value,
428
+ onClick: P(z).startCreateField
429
+ }, {
430
+ default: I(() => [...i[17] ||= [O(" 新增字段 ", -1)]]),
431
+ _: 1
432
+ }, 8, ["disabled", "onClick"])]),
433
+ default: I(() => [
434
+ D("dl", le, [
435
+ D("div", null, [i[18] ||= D("dt", null, "实体 alias", -1), D("dd", null, N(P(z).selectedMetadata.value.alias ?? "-"), 1)]),
436
+ D("div", null, [i[19] ||= D("dt", null, "物理表", -1), D("dd", null, N(P(z).selectedMetadata.value.tableName ? `${P(z).selectedMetadata.value.schemaName ?? "public"}.${P(z).selectedMetadata.value.tableName}` : "-"), 1)]),
437
+ D("div", null, [i[20] ||= D("dt", null, "数据权限范围", -1), D("dd", null, N(P(z).selectedMetadata.value.dataScopeEnabled ? "已启用" : "未启用"), 1)])
438
+ ]),
439
+ D("section", ue, [i[23] ||= D("header", { class: "field-section-header" }, [D("h3", null, "业务字段")], -1), B.value ? (j(), T(P(h), {
440
+ key: 0,
441
+ tip: "加载字段"
442
+ })) : P(z).fields.value.length ? (j(), T(P(v), {
443
+ key: 2,
444
+ columns: W,
445
+ rows: P(z).fields.value,
446
+ "show-action-column": "",
447
+ "action-column-title": "操作"
448
+ }, {
449
+ cell: I(({ column: e, record: t }) => [O(N(_e(e, t)), 1)]),
450
+ rowActions: I(({ record: e }) => [k(P(S), {
451
+ emphasis: "quiet",
452
+ density: "compact",
453
+ onClick: (t) => P(z).startEditField(e)
454
+ }, {
455
+ default: I(() => [...i[21] ||= [O(" 编辑 ", -1)]]),
456
+ _: 1
457
+ }, 8, ["onClick"]), k(P(S), {
458
+ emphasis: "quiet",
459
+ density: "compact",
460
+ intent: "danger",
461
+ disabled: V.value,
462
+ onClick: (t) => Z(e)
463
+ }, {
464
+ default: I(() => [...i[22] ||= [O(" 删除 ", -1)]]),
465
+ _: 1
466
+ }, 8, ["disabled", "onClick"])]),
467
+ _: 1
468
+ }, 8, ["rows"])) : (j(), T(P(_), {
469
+ key: 1,
470
+ description: "暂无业务字段,点击右上角新增字段"
471
+ }))]),
472
+ k(P(p), { record: P(z).selectedMetadata.value }, null, 8, ["record"])
473
+ ]),
474
+ _: 1
475
+ }, 8, ["title", "subtitle"])) : (j(), T(P(l), {
476
+ key: 1,
477
+ title: "字段编排"
478
+ }, {
479
+ default: I(() => [k(P(_), { description: "从左侧选择实体后开始字段编排" })]),
480
+ _: 1
481
+ }))]),
482
+ _: 1
483
+ }),
484
+ k(P(g), {
485
+ open: P(z).mainEditorOpen.value,
486
+ title: "新建主实体",
487
+ subtitle: r.moduleTitle ?? r.moduleAlias,
488
+ mode: "create",
489
+ onClose: P(z).cancelEditor
490
+ }, {
491
+ form: I(() => [D("form", {
492
+ class: "orchestration-form",
493
+ onSubmit: L(Y, ["prevent"])
494
+ }, [
495
+ D("label", null, [i[24] ||= D("span", null, "实体 alias", -1), k(P(C), {
496
+ value: P(z).mainMetadataDraft.value.alias,
497
+ "onUpdate:value": i[1] ||= (e) => P(z).mainMetadataDraft.value.alias = e,
498
+ placeholder: "例如 customer"
499
+ }, null, 8, ["value"])]),
500
+ D("label", null, [i[25] ||= D("span", null, "实体名称", -1), k(P(C), {
501
+ value: P(z).mainMetadataDraft.value.title,
502
+ "onUpdate:value": i[2] ||= (e) => P(z).mainMetadataDraft.value.title = e,
503
+ placeholder: "例如 客户"
504
+ }, null, 8, ["value"])]),
505
+ D("label", null, [i[26] ||= D("span", null, "Schema(可选)", -1), k(P(C), {
506
+ value: P(z).mainMetadataDraft.value.schemaName,
507
+ "onUpdate:value": i[3] ||= (e) => P(z).mainMetadataDraft.value.schemaName = e,
508
+ placeholder: "默认 public"
509
+ }, null, 8, ["value"])]),
510
+ D("label", null, [i[27] ||= D("span", null, "物理表名(可选)", -1), k(P(C), {
511
+ value: P(z).mainMetadataDraft.value.tableName,
512
+ "onUpdate:value": i[4] ||= (e) => P(z).mainMetadataDraft.value.tableName = e,
513
+ placeholder: "默认按应用和 alias 生成"
514
+ }, null, 8, ["value"])]),
515
+ k(P(n), {
516
+ checked: P(z).mainMetadataDraft.value.dataScopeEnabled,
517
+ "onUpdate:checked": i[5] ||= (e) => P(z).mainMetadataDraft.value.dataScopeEnabled = e
518
+ }, {
519
+ default: I(() => [...i[28] ||= [O(" 启用数据权限范围 ", -1)]]),
520
+ _: 1
521
+ }, 8, ["checked"])
522
+ ], 32)]),
523
+ operation: I(() => [k(P(a), null, {
524
+ default: I(() => [k(P(S), {
525
+ disabled: V.value,
526
+ onClick: P(z).cancelEditor
527
+ }, {
528
+ default: I(() => [...i[29] ||= [O("取消", -1)]]),
529
+ _: 1
530
+ }, 8, ["disabled", "onClick"]), k(P(S), {
531
+ emphasis: "primary",
532
+ submit: "",
533
+ loading: V.value,
534
+ onClick: Y
535
+ }, {
536
+ default: I(() => [...i[30] ||= [O(" 创建 ", -1)]]),
537
+ _: 1
538
+ }, 8, ["loading"])]),
539
+ _: 1
540
+ })]),
541
+ _: 1
542
+ }, 8, [
543
+ "open",
544
+ "subtitle",
545
+ "onClose"
546
+ ]),
547
+ k(P(g), {
548
+ open: P(z).fieldEditorOpen.value,
549
+ title: P(z).mode.value === "edit-field" ? "编辑字段" : "新增字段",
550
+ subtitle: P(z).selectedMetadata.value?.title,
551
+ mode: "create",
552
+ onClose: P(z).cancelEditor
553
+ }, {
554
+ form: I(() => [D("form", {
555
+ class: "orchestration-form",
556
+ onSubmit: L(X, ["prevent"])
557
+ }, [
558
+ D("label", null, [i[31] ||= D("span", null, "字段名称", -1), k(P(C), {
559
+ value: P(z).fieldDraft.value.fieldName,
560
+ "onUpdate:value": i[6] ||= (e) => P(z).fieldDraft.value.fieldName = e,
561
+ disabled: !!P(z).fieldDraft.value.id,
562
+ placeholder: "例如 customerName"
563
+ }, null, 8, ["value", "disabled"])]),
564
+ D("label", null, [i[32] ||= D("span", null, "物理列名", -1), k(P(C), {
565
+ value: P(z).fieldDraft.value.columnName,
566
+ "onUpdate:value": i[7] ||= (e) => P(z).fieldDraft.value.columnName = e,
567
+ disabled: !!P(z).fieldDraft.value.id,
568
+ placeholder: "例如 customer_name"
569
+ }, null, 8, ["value", "disabled"])]),
570
+ D("label", null, [i[33] ||= D("span", null, "显示名称", -1), k(P(C), {
571
+ value: P(z).fieldDraft.value.title,
572
+ "onUpdate:value": i[8] ||= (e) => P(z).fieldDraft.value.title = e,
573
+ placeholder: "例如 客户名称"
574
+ }, null, 8, ["value"])]),
575
+ D("label", null, [i[34] ||= D("span", null, "字段规格", -1), k(P(d), {
576
+ value: P(z).fieldDraft.value.fieldSpecAlias,
577
+ "onUpdate:value": i[9] ||= (e) => P(z).fieldDraft.value.fieldSpecAlias = e,
578
+ options: P(z).fieldSpecOptions.value,
579
+ placeholder: "选择字段规格",
580
+ style: { width: "100%" }
581
+ }, null, 8, ["value", "options"])]),
582
+ D("div", de, [
583
+ k(P(n), {
584
+ checked: P(z).fieldDraft.value.required,
585
+ "onUpdate:checked": i[10] ||= (e) => P(z).fieldDraft.value.required = e
586
+ }, {
587
+ default: I(() => [...i[35] ||= [O("必填", -1)]]),
588
+ _: 1
589
+ }, 8, ["checked"]),
590
+ k(P(n), {
591
+ checked: P(z).fieldDraft.value.uniqueField,
592
+ "onUpdate:checked": i[11] ||= (e) => P(z).fieldDraft.value.uniqueField = e
593
+ }, {
594
+ default: I(() => [...i[36] ||= [O("唯一", -1)]]),
595
+ _: 1
596
+ }, 8, ["checked"]),
597
+ k(P(n), {
598
+ checked: P(z).fieldDraft.value.indexed,
599
+ "onUpdate:checked": i[12] ||= (e) => P(z).fieldDraft.value.indexed = e
600
+ }, {
601
+ default: I(() => [...i[37] ||= [O("建立索引", -1)]]),
602
+ _: 1
603
+ }, 8, ["checked"]),
604
+ k(P(n), {
605
+ checked: P(z).fieldDraft.value.sortableField,
606
+ "onUpdate:checked": i[13] ||= (e) => P(z).fieldDraft.value.sortableField = e
607
+ }, {
608
+ default: I(() => [...i[38] ||= [O("排序字段", -1)]]),
609
+ _: 1
610
+ }, 8, ["checked"]),
611
+ k(P(n), {
612
+ checked: P(z).fieldDraft.value.titleField,
613
+ "onUpdate:checked": i[14] ||= (e) => P(z).fieldDraft.value.titleField = e
614
+ }, {
615
+ default: I(() => [...i[39] ||= [O("标题字段", -1)]]),
616
+ _: 1
617
+ }, 8, ["checked"]),
618
+ k(P(x), {
619
+ checked: P(z).fieldDraft.value.enabled,
620
+ "onUpdate:checked": i[15] ||= (e) => P(z).fieldDraft.value.enabled = e,
621
+ "checked-children": "启用",
622
+ "un-checked-children": "停用"
623
+ }, null, 8, ["checked"])
624
+ ])
625
+ ], 32)]),
626
+ operation: I(() => [k(P(a), null, {
627
+ default: I(() => [k(P(S), {
628
+ disabled: V.value,
629
+ onClick: P(z).cancelEditor
630
+ }, {
631
+ default: I(() => [...i[40] ||= [O("取消", -1)]]),
632
+ _: 1
633
+ }, 8, ["disabled", "onClick"]), k(P(S), {
634
+ emphasis: "primary",
635
+ submit: "",
636
+ loading: V.value,
637
+ onClick: X
638
+ }, {
639
+ default: I(() => [...i[41] ||= [O("保存", -1)]]),
640
+ _: 1
641
+ }, 8, ["loading"])]),
642
+ _: 1
643
+ })]),
644
+ _: 1
645
+ }, 8, [
646
+ "open",
647
+ "title",
648
+ "subtitle",
649
+ "onClose"
650
+ ])
651
+ ], 64));
652
+ }
653
+ }), [["__scopeId", "data-v-2746e768"]]);
654
+ //#endregion
655
+ export { q as default };