@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ximatai/muyun-web-app",
3
- "version": "0.26.4",
3
+ "version": "0.26.6",
4
4
  "description": "MuYunSpring workbench and standard module runtime for business applications",
5
5
  "type": "module",
6
6
  "files": [
@@ -1,655 +0,0 @@
1
- import { $t as e, Dt as t, Et as n, G as r, Gt as i, Ht as a, Jt as o, Lt as s, Mt as c, Pt as l, Qt as u, R as d, S as f, Vt as p, Xt as m, Yt as h, Zt as g, _t as _, it as v, mt as y, on as b, rt as x, un as S, x as C } from "./platform-components-CgMBopmF.js";
2
- import { Fragment as w, computed as T, createBlock as E, createCommentVNode as ee, createElementBlock as te, 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 re, withCtx as F, withModifiers as I } from "vue";
3
- //#region src/views/metadataOrchestrationState.ts
4
- function ie() {
5
- let e = M([]), t = M({}), n = M(), r = M([]), i = M([]), a = M("view"), o = M(L()), s = M(B()), c = T(() => e.value.find((e) => e.id === n.value)), l = T(() => c.value?.metadataId ? t.value[c.value.metadataId] : void 0), u = T(() => e.value.some((e) => e.relationRole === "MAIN")), d = T(() => a.value === "create-main"), f = T(() => a.value === "create-field" || a.value === "edit-field"), p = T(() => U(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 = H(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 = L(), a.value = "create-main";
31
- }
32
- function x() {
33
- l.value?.id && (s.value = B(), a.value = "create-field");
34
- }
35
- function S(e) {
36
- l.value?.id && (s.value = V(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 L() {
69
- return {
70
- alias: "",
71
- title: "",
72
- schemaName: "",
73
- tableName: "",
74
- dataScopeEnabled: !1
75
- };
76
- }
77
- function R(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 z(e) {
87
- return !!(e.alias.trim() && e.title.trim());
88
- }
89
- function B() {
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 V(e) {
106
- return { ...e };
107
- }
108
- function ae(e) {
109
- return !!(e.fieldName?.trim() && e.columnName?.trim() && e.fieldSpecAlias);
110
- }
111
- function oe(e) {
112
- return {
113
- ...e,
114
- fieldName: e.fieldName?.trim(),
115
- columnName: e.columnName?.trim(),
116
- title: e.title?.trim()
117
- };
118
- }
119
- function H(e) {
120
- return e.filter((e) => e.fieldOwnership === "BUSINESS" && e.fieldForm === "PHYSICAL" && e.systemManaged !== !0);
121
- }
122
- function U(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 W(e, t) {
129
- return t?.title ?? e.relationAlias ?? "未命名实体";
130
- }
131
- function G(e) {
132
- if (e === "MAIN") return "主实体";
133
- if (e === "CHILD") return "子实体";
134
- }
135
- function K(e, t) {
136
- let n = W(e, t), r = t?.alias ?? e.relationAlias;
137
- return {
138
- title: n,
139
- secondary: r && r !== n ? r : void 0,
140
- tag: G(e.relationRole),
141
- muted: t?.enabled === !1 ? !0 : void 0
142
- };
143
- }
144
- function se(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 ce = { class: "entity-overview" }, le = { class: "field-section" }, ue = { class: "orchestration-form-flags" }, q = 200, J = /*#__PURE__*/ e(/* @__PURE__ */ A({
152
- name: "MetadataOrchestrationView",
153
- __name: "MetadataOrchestrationView",
154
- props: {
155
- moduleAlias: {},
156
- moduleTitle: {},
157
- title: {}
158
- },
159
- setup(e) {
160
- let T = e, A = b({ moduleAlias: "platform.module" }), L = S(A.http, "/platform.metadata"), B = ie(), V = M(!1), H = M(!1), U = M(""), G = [
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
- re(() => T.moduleAlias, () => void J(), { immediate: !0 }), ne(() => void de());
187
- async function J() {
188
- V.value = !0;
189
- try {
190
- B.handleRelationsLoaded(await $(Q("/query"))), await Y();
191
- } catch (e) {
192
- n(e, {
193
- source: "metadata-orchestration",
194
- phase: "load"
195
- });
196
- } finally {
197
- V.value = !1;
198
- }
199
- }
200
- async function de() {
201
- try {
202
- B.handleFieldSpecsLoaded(await $("/platform.field_spec/query"));
203
- } catch (e) {
204
- n(e, {
205
- source: "metadata-orchestration",
206
- phase: "load"
207
- });
208
- }
209
- }
210
- async function fe(e) {
211
- B.selectRelation(e) && await Y();
212
- }
213
- async function Y() {
214
- let e = B.selectedRelation.value?.metadataId;
215
- if (B.handleFieldsLoaded([]), e) try {
216
- let t = await L.view(e);
217
- B.handleMetadataLoaded(t), B.handleFieldsLoaded(await $(`/platform.metadata/${encodeURIComponent(e)}/fields/query`));
218
- } catch (e) {
219
- n(e, {
220
- source: "metadata-orchestration",
221
- phase: "load"
222
- });
223
- }
224
- }
225
- async function X() {
226
- let e = R(B.mainMetadataDraft.value);
227
- if (!z(e)) {
228
- t("请填写实体 alias 和名称", {
229
- source: "metadata-orchestration",
230
- phase: "validation"
231
- });
232
- return;
233
- }
234
- H.value = !0;
235
- try {
236
- let t = await A.http.request({
237
- method: "POST",
238
- path: Q("/create-main-metadata"),
239
- body: e
240
- });
241
- B.cancelEditor(), await J(), B.focusRelation(t.relation.id), await Y(), await _({
242
- success: !0,
243
- message: "主实体已创建"
244
- }, { source: "metadata-orchestration" });
245
- } catch (e) {
246
- n(e, {
247
- source: "metadata-orchestration",
248
- phase: "action"
249
- });
250
- } finally {
251
- H.value = !1;
252
- }
253
- }
254
- async function Z() {
255
- let e = B.selectedMetadata.value?.id;
256
- if (!e) return;
257
- let r = oe(B.fieldDraft.value);
258
- if (!ae(r)) {
259
- t("请填写字段名、物理列名和字段规格", {
260
- source: "metadata-orchestration",
261
- phase: "validation"
262
- });
263
- return;
264
- }
265
- H.value = !0;
266
- try {
267
- let t = {
268
- ...r,
269
- metadataId: e,
270
- fieldOwnership: "BUSINESS",
271
- fieldForm: "PHYSICAL"
272
- };
273
- t.id ? await A.http.request({
274
- method: "POST",
275
- path: `/platform.metadata/${encodeURIComponent(e)}/fields/update/${encodeURIComponent(t.id)}`,
276
- body: t
277
- }) : await A.http.request({
278
- method: "POST",
279
- path: `/platform.metadata/${encodeURIComponent(e)}/fields/insert`,
280
- body: t
281
- }), B.cancelEditor(), await Y(), await _({
282
- success: !0,
283
- message: "字段已保存"
284
- }, { source: "metadata-orchestration" });
285
- } catch (e) {
286
- n(e, {
287
- source: "metadata-orchestration",
288
- phase: "action"
289
- });
290
- } finally {
291
- H.value = !1;
292
- }
293
- }
294
- async function pe(e) {
295
- let t = B.selectedMetadata.value?.id;
296
- if (!(!t || !e.id || !await l({
297
- title: "删除字段",
298
- content: `确认删除字段“${e.title ?? e.fieldName}”?`,
299
- okText: "删除",
300
- danger: !0
301
- }))) {
302
- H.value = !0;
303
- try {
304
- await A.http.request({
305
- method: "POST",
306
- path: `/platform.metadata/${encodeURIComponent(t)}/fields/delete/${encodeURIComponent(e.id)}`,
307
- body: { version: e.version }
308
- }), await Y();
309
- } catch (e) {
310
- n(e, {
311
- source: "metadata-orchestration",
312
- phase: "action"
313
- });
314
- } finally {
315
- H.value = !1;
316
- }
317
- }
318
- }
319
- async function me() {
320
- let e = B.selectedRelation.value;
321
- if (e?.id) {
322
- H.value = !0;
323
- try {
324
- await A.http.request({
325
- method: "POST",
326
- path: Q(`/${encodeURIComponent(e.id)}/fields/ensure`)
327
- }), await _({
328
- success: !0,
329
- message: "模块字段配置已同步"
330
- }, { source: "metadata-orchestration" });
331
- } catch (e) {
332
- n(e, {
333
- source: "metadata-orchestration",
334
- phase: "action"
335
- });
336
- } finally {
337
- H.value = !1;
338
- }
339
- }
340
- }
341
- function Q(e) {
342
- return `/platform.module/${encodeURIComponent(T.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: q
353
- } }
354
- });
355
- if (t.push(...r.records), r.totalKnown ? n >= r.pages : r.records.length < q) return t;
356
- }
357
- }
358
- function he(e) {
359
- return e.metadataId ? B.metadataById.value[e.metadataId] : void 0;
360
- }
361
- function ge(e) {
362
- let t = e;
363
- return K(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 (t, n) => (j(), te(w, null, [
370
- k(P(v), {
371
- class: "metadata-orchestration-workspace",
372
- "explorer-count": 1
373
- }, {
374
- default: F(() => [k(P(x), null, {
375
- default: F(() => [k(P(d), {
376
- "search-keyword": U.value,
377
- "onUpdate:searchKeyword": n[0] ||= (e) => U.value = e,
378
- title: "实体",
379
- "search-placeholder": "搜索实体名称或 alias",
380
- onRefresh: J
381
- }, {
382
- actions: F(() => [P(B).hasMainMetadata.value ? ee("v-if", !0) : (j(), E(P(u), {
383
- key: 0,
384
- class: "record-panel-create-button",
385
- type: "primary",
386
- "icon-name": "plus",
387
- title: "新建主实体",
388
- disabled: V.value || H.value,
389
- onClick: P(B).startCreateMain
390
- }, null, 8, ["disabled", "onClick"]))]),
391
- default: F(() => [V.value ? (j(), E(P(s), {
392
- key: 0,
393
- tip: "加载实体"
394
- })) : P(B).relations.value.length ? (j(), E(P(c), {
395
- key: 2,
396
- records: P(B).relations.value,
397
- "selected-id": P(B).selectedRelationId.value,
398
- keyword: U.value,
399
- "empty-description": "暂无实体",
400
- "item-of": ge,
401
- onSelect: fe
402
- }, null, 8, [
403
- "records",
404
- "selected-id",
405
- "keyword"
406
- ])) : (j(), E(P(a), {
407
- key: 1,
408
- description: "请先创建动态模块的主实体"
409
- }))]),
410
- _: 1
411
- }, 8, ["search-keyword"])]),
412
- _: 1
413
- }), P(B).selectedMetadata.value && P(B).selectedRelation.value ? (j(), E(P(r), {
414
- key: 0,
415
- title: P(W)(P(B).selectedRelation.value, P(B).selectedMetadata.value),
416
- subtitle: P(se)(P(B).selectedMetadata.value)
417
- }, {
418
- actions: F(() => [k(P(g), {
419
- emphasis: "quiet",
420
- disabled: H.value || V.value,
421
- onClick: me
422
- }, {
423
- default: F(() => [...n[16] ||= [O(" 同步模块字段配置 ", -1)]]),
424
- _: 1
425
- }, 8, ["disabled"]), k(P(g), {
426
- emphasis: "primary",
427
- disabled: H.value || V.value,
428
- onClick: P(B).startCreateField
429
- }, {
430
- default: F(() => [...n[17] ||= [O(" 新增字段 ", -1)]]),
431
- _: 1
432
- }, 8, ["disabled", "onClick"])]),
433
- default: F(() => [
434
- D("dl", ce, [
435
- D("div", null, [n[18] ||= D("dt", null, "实体 alias", -1), D("dd", null, N(P(B).selectedMetadata.value.alias ?? "-"), 1)]),
436
- D("div", null, [n[19] ||= D("dt", null, "物理表", -1), D("dd", null, N(P(B).selectedMetadata.value.tableName ? `${P(B).selectedMetadata.value.schemaName ?? "public"}.${P(B).selectedMetadata.value.tableName}` : "-"), 1)]),
437
- D("div", null, [n[20] ||= D("dt", null, "数据权限范围", -1), D("dd", null, N(P(B).selectedMetadata.value.dataScopeEnabled ? "已启用" : "未启用"), 1)])
438
- ]),
439
- D("section", le, [n[23] ||= D("header", { class: "field-section-header" }, [D("h3", null, "业务字段")], -1), V.value ? (j(), E(P(s), {
440
- key: 0,
441
- tip: "加载字段"
442
- })) : P(B).fields.value.length ? (j(), E(P(p), {
443
- key: 2,
444
- columns: G,
445
- rows: P(B).fields.value,
446
- "show-action-column": "",
447
- "action-column-title": "操作"
448
- }, {
449
- cell: F(({ column: e, record: t }) => [O(N(_e(e, t)), 1)]),
450
- rowActions: F(({ record: e }) => [k(P(g), {
451
- emphasis: "quiet",
452
- density: "compact",
453
- onClick: (t) => P(B).startEditField(e)
454
- }, {
455
- default: F(() => [...n[21] ||= [O(" 编辑 ", -1)]]),
456
- _: 1
457
- }, 8, ["onClick"]), k(P(g), {
458
- emphasis: "quiet",
459
- density: "compact",
460
- intent: "danger",
461
- disabled: H.value,
462
- onClick: (t) => pe(e)
463
- }, {
464
- default: F(() => [...n[22] ||= [O(" 删除 ", -1)]]),
465
- _: 1
466
- }, 8, ["disabled", "onClick"])]),
467
- _: 1
468
- }, 8, ["rows"])) : (j(), E(P(a), {
469
- key: 1,
470
- description: "暂无业务字段,点击右上角新增字段"
471
- }))]),
472
- k(P(f), { record: P(B).selectedMetadata.value }, null, 8, ["record"])
473
- ]),
474
- _: 1
475
- }, 8, ["title", "subtitle"])) : (j(), E(P(r), {
476
- key: 1,
477
- title: "字段编排"
478
- }, {
479
- default: F(() => [k(P(a), { description: "从左侧选择实体后开始字段编排" })]),
480
- _: 1
481
- }))]),
482
- _: 1
483
- }),
484
- k(P(C), {
485
- open: P(B).mainEditorOpen.value,
486
- title: "新建主实体",
487
- subtitle: e.moduleTitle ?? e.moduleAlias,
488
- mode: "create",
489
- onClose: P(B).cancelEditor
490
- }, {
491
- form: F(() => [D("form", {
492
- class: "orchestration-form",
493
- onSubmit: I(X, ["prevent"])
494
- }, [
495
- D("label", null, [n[24] ||= D("span", null, "实体 alias", -1), k(P(o), {
496
- value: P(B).mainMetadataDraft.value.alias,
497
- "onUpdate:value": n[1] ||= (e) => P(B).mainMetadataDraft.value.alias = e,
498
- placeholder: "例如 customer"
499
- }, null, 8, ["value"])]),
500
- D("label", null, [n[25] ||= D("span", null, "实体名称", -1), k(P(o), {
501
- value: P(B).mainMetadataDraft.value.title,
502
- "onUpdate:value": n[2] ||= (e) => P(B).mainMetadataDraft.value.title = e,
503
- placeholder: "例如 客户"
504
- }, null, 8, ["value"])]),
505
- D("label", null, [n[26] ||= D("span", null, "Schema(可选)", -1), k(P(o), {
506
- value: P(B).mainMetadataDraft.value.schemaName,
507
- "onUpdate:value": n[3] ||= (e) => P(B).mainMetadataDraft.value.schemaName = e,
508
- placeholder: "默认 public"
509
- }, null, 8, ["value"])]),
510
- D("label", null, [n[27] ||= D("span", null, "物理表名(可选)", -1), k(P(o), {
511
- value: P(B).mainMetadataDraft.value.tableName,
512
- "onUpdate:value": n[4] ||= (e) => P(B).mainMetadataDraft.value.tableName = e,
513
- placeholder: "默认按应用和 alias 生成"
514
- }, null, 8, ["value"])]),
515
- k(P(m), {
516
- checked: P(B).mainMetadataDraft.value.dataScopeEnabled,
517
- "onUpdate:checked": n[5] ||= (e) => P(B).mainMetadataDraft.value.dataScopeEnabled = e
518
- }, {
519
- default: F(() => [...n[28] ||= [O(" 启用数据权限范围 ", -1)]]),
520
- _: 1
521
- }, 8, ["checked"])
522
- ], 32)]),
523
- operation: F(() => [k(P(y), null, {
524
- default: F(() => [k(P(g), {
525
- disabled: H.value,
526
- onClick: P(B).cancelEditor
527
- }, {
528
- default: F(() => [...n[29] ||= [O("取消", -1)]]),
529
- _: 1
530
- }, 8, ["disabled", "onClick"]), k(P(g), {
531
- emphasis: "primary",
532
- submit: "",
533
- loading: H.value,
534
- onClick: X
535
- }, {
536
- default: F(() => [...n[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(C), {
548
- open: P(B).fieldEditorOpen.value,
549
- title: P(B).mode.value === "edit-field" ? "编辑字段" : "新增字段",
550
- subtitle: P(B).selectedMetadata.value?.title,
551
- mode: "create",
552
- onClose: P(B).cancelEditor
553
- }, {
554
- form: F(() => [D("form", {
555
- class: "orchestration-form",
556
- onSubmit: I(Z, ["prevent"])
557
- }, [
558
- D("label", null, [n[31] ||= D("span", null, "字段名称", -1), k(P(o), {
559
- value: P(B).fieldDraft.value.fieldName,
560
- "onUpdate:value": n[6] ||= (e) => P(B).fieldDraft.value.fieldName = e,
561
- disabled: !!P(B).fieldDraft.value.id,
562
- placeholder: "例如 customerName"
563
- }, null, 8, ["value", "disabled"])]),
564
- D("label", null, [n[32] ||= D("span", null, "物理列名", -1), k(P(o), {
565
- value: P(B).fieldDraft.value.columnName,
566
- "onUpdate:value": n[7] ||= (e) => P(B).fieldDraft.value.columnName = e,
567
- disabled: !!P(B).fieldDraft.value.id,
568
- placeholder: "例如 customer_name"
569
- }, null, 8, ["value", "disabled"])]),
570
- D("label", null, [n[33] ||= D("span", null, "显示名称", -1), k(P(o), {
571
- value: P(B).fieldDraft.value.title,
572
- "onUpdate:value": n[8] ||= (e) => P(B).fieldDraft.value.title = e,
573
- placeholder: "例如 客户名称"
574
- }, null, 8, ["value"])]),
575
- D("label", null, [n[34] ||= D("span", null, "字段规格", -1), k(P(h), {
576
- value: P(B).fieldDraft.value.fieldSpecAlias,
577
- "onUpdate:value": n[9] ||= (e) => P(B).fieldDraft.value.fieldSpecAlias = e,
578
- options: P(B).fieldSpecOptions.value,
579
- placeholder: "选择字段规格",
580
- style: { width: "100%" }
581
- }, null, 8, ["value", "options"])]),
582
- D("div", ue, [
583
- k(P(m), {
584
- checked: P(B).fieldDraft.value.required,
585
- "onUpdate:checked": n[10] ||= (e) => P(B).fieldDraft.value.required = e
586
- }, {
587
- default: F(() => [...n[35] ||= [O("必填", -1)]]),
588
- _: 1
589
- }, 8, ["checked"]),
590
- k(P(m), {
591
- checked: P(B).fieldDraft.value.uniqueField,
592
- "onUpdate:checked": n[11] ||= (e) => P(B).fieldDraft.value.uniqueField = e
593
- }, {
594
- default: F(() => [...n[36] ||= [O("唯一", -1)]]),
595
- _: 1
596
- }, 8, ["checked"]),
597
- k(P(m), {
598
- checked: P(B).fieldDraft.value.indexed,
599
- "onUpdate:checked": n[12] ||= (e) => P(B).fieldDraft.value.indexed = e
600
- }, {
601
- default: F(() => [...n[37] ||= [O("建立索引", -1)]]),
602
- _: 1
603
- }, 8, ["checked"]),
604
- k(P(m), {
605
- checked: P(B).fieldDraft.value.sortableField,
606
- "onUpdate:checked": n[13] ||= (e) => P(B).fieldDraft.value.sortableField = e
607
- }, {
608
- default: F(() => [...n[38] ||= [O("排序字段", -1)]]),
609
- _: 1
610
- }, 8, ["checked"]),
611
- k(P(m), {
612
- checked: P(B).fieldDraft.value.titleField,
613
- "onUpdate:checked": n[14] ||= (e) => P(B).fieldDraft.value.titleField = e
614
- }, {
615
- default: F(() => [...n[39] ||= [O("标题字段", -1)]]),
616
- _: 1
617
- }, 8, ["checked"]),
618
- k(P(i), {
619
- checked: P(B).fieldDraft.value.enabled,
620
- "onUpdate:checked": n[15] ||= (e) => P(B).fieldDraft.value.enabled = e,
621
- "checked-children": "启用",
622
- "un-checked-children": "停用"
623
- }, null, 8, ["checked"])
624
- ])
625
- ], 32)]),
626
- operation: F(() => [k(P(y), null, {
627
- default: F(() => [k(P(g), {
628
- disabled: H.value,
629
- onClick: P(B).cancelEditor
630
- }, {
631
- default: F(() => [...n[40] ||= [O("取消", -1)]]),
632
- _: 1
633
- }, 8, ["disabled", "onClick"]), k(P(g), {
634
- emphasis: "primary",
635
- submit: "",
636
- loading: H.value,
637
- onClick: Z
638
- }, {
639
- default: F(() => [...n[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 { J as default };