@yuku123/z-team-component 0.2.78 → 0.2.80
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.
- package/dist/{menuPermission-CO2KgDX8.js → menuPermission-D9NGpBZP.js} +1 -1
- package/dist/pages.js +1 -1
- package/dist/z-team-component.css +2 -2
- package/package.json +1 -1
- package/dist/ChangeLogView-_bRZ55Yi.js +0 -542
- package/dist/ComponentDoc-Aw4QY8oI.js +0 -3998
- package/dist/InvitationManagementPage-Bv0ys--k.js +0 -495
- package/dist/OnboardingPage-B7274ITW.js +0 -393
- package/dist/ScheduledTasks-cc8n9giN.js +0 -9406
- package/dist/SystemShell-CPGtmxXl.js +0 -689
- package/dist/_commonjsHelpers-B52_cu2H.js +0 -26
- package/dist/api-B2APc1an.js +0 -20
- package/dist/api-CIhVblfa.js +0 -2155
- package/dist/browser-jb_PFvU3.js +0 -1538
- package/dist/createWorkspaceWsHandler-BWP5S5X3.js +0 -12951
- package/dist/ctc-sso-DtJHC-2M.js +0 -117
- package/dist/echarts-B1OU1xr4.js +0 -16
- package/dist/history-BlrA1eaW.js +0 -41
- package/dist/index-51d5011I.js +0 -178
- package/dist/index-62K6U_D_.js +0 -574
- package/dist/index-ACANAhdd.js +0 -242
- package/dist/index-B_LJRFsK.js +0 -339
- package/dist/index-BgIheStI.js +0 -133
- package/dist/index-BohoJQPr.js +0 -7631
- package/dist/index-Bpi_ysgC.js +0 -914
- package/dist/index-BwyN94l7.js +0 -9567
- package/dist/index-BydWNuk5.js +0 -1229
- package/dist/index-C6FYNbSB.js +0 -118
- package/dist/index-C815hPWS.js +0 -430
- package/dist/index-CNcX0oSU.js +0 -112
- package/dist/index-CUVdeb8y.js +0 -638
- package/dist/index-CijskN6t.js +0 -316
- package/dist/index-Cvx6rrxD.js +0 -956
- package/dist/index-Cwr5Slv1.js +0 -480
- package/dist/index-CxFAICql.js +0 -42050
- package/dist/index-D2cy0jVs.js +0 -1143
- package/dist/index-DGbL_CMP.js +0 -137
- package/dist/index-DK70mOTz.js +0 -143
- package/dist/index-DT80Pwa_.js +0 -5893
- package/dist/index-DWsfQMp8.js +0 -208
- package/dist/index-DhDdFRHC.js +0 -279
- package/dist/index-Dm3wmB0K.js +0 -435
- package/dist/index-DvBDj0ul.js +0 -93
- package/dist/index-DzS6-D3M.js +0 -1640
- package/dist/index-Xn84wLNu.js +0 -2700
- package/dist/index-_9zO-72Q.js +0 -2908
- package/dist/index-cdB5K3gx.js +0 -814
- package/dist/index-nU-V276i.js +0 -170
- package/dist/index-uF04Ucsi.js +0 -8
- package/dist/index.js +0 -10
- package/dist/index.module-CAa-2T7m.js +0 -72
- package/dist/index.module-UI0iz8K0.js +0 -42
|
@@ -1,689 +0,0 @@
|
|
|
1
|
-
import { jsxs as p, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { useNavigate as Q, useLocation as M, Navigate as l } from "react-router-dom";
|
|
3
|
-
import { useMemo as g, useState as z, Suspense as oe, lazy as u } from "react";
|
|
4
|
-
import { DownOutlined as L, RightOutlined as T, AppstoreOutlined as Y, UserOutlined as ce, SafetyCertificateOutlined as E, CloudOutlined as v, DeploymentUnitOutlined as x, AuditOutlined as j, CodeOutlined as f, FolderOpenOutlined as le, DesktopOutlined as Z, ThunderboltOutlined as se, BookOutlined as H, DashboardOutlined as S, ProfileOutlined as R, ApartmentOutlined as pe, FileImageOutlined as re, FileTextOutlined as A, CalendarOutlined as b, ApiOutlined as ie, ProjectOutlined as V, ClusterOutlined as me, DatabaseOutlined as ue, TeamOutlined as de, BarChartOutlined as q } from "@ant-design/icons";
|
|
5
|
-
import { f as he, M as be } from "./menuPermission-CO2KgDX8.js";
|
|
6
|
-
import { u as B } from "./useAppStore-BBr_Fwsz.js";
|
|
7
|
-
import { ProductApp as ge } from "@yuku123/z-product-component";
|
|
8
|
-
import { P as ke, R as _e } from "./index-DvBDj0ul.js";
|
|
9
|
-
import { b as ye } from "./ComponentDoc-Aw4QY8oI.js";
|
|
10
|
-
const Se = "_container_wbul9_7", Ae = "_sidebar_wbul9_17", we = "_menuList_wbul9_37", fe = "_menuGroup_wbul9_44", Pe = "_menuGroupHeader_wbul9_48", ve = "_menuGroupIcon_wbul9_66", De = "_menuGroupLabel_wbul9_75", Me = "_menuGroupArrow_wbul9_80", Ge = "_menuSubList_wbul9_87", Ie = "_menuSubItem_wbul9_93", Ce = "_menuSubItemActive_wbul9_110", Ne = "_menuSubItemIcon_wbul9_117", Oe = "_menuSubGroup_wbul9_132", ze = "_menuSubGroupHeader_wbul9_136", Le = "_menuSubGroupHeaderActive_wbul9_154", Te = "_menuSubGroupLabel_wbul9_158", Ee = "_main_wbul9_169", xe = "_detailPanel_wbul9_179", je = "_detailHeader_wbul9_189", He = "_detailIcon_wbul9_196", Re = "_detailTitle_wbul9_209", qe = "_detailDesc_wbul9_216", Be = "_detailAction_wbul9_223", $e = "_goBtn_wbul9_228", Ue = "_emptyState_wbul9_248", n = {
|
|
11
|
-
container: Se,
|
|
12
|
-
sidebar: Ae,
|
|
13
|
-
menuList: we,
|
|
14
|
-
menuGroup: fe,
|
|
15
|
-
menuGroupHeader: Pe,
|
|
16
|
-
menuGroupIcon: ve,
|
|
17
|
-
menuGroupLabel: De,
|
|
18
|
-
menuGroupArrow: Me,
|
|
19
|
-
menuSubList: Ge,
|
|
20
|
-
menuSubItem: Ie,
|
|
21
|
-
menuSubItemActive: Ce,
|
|
22
|
-
menuSubItemIcon: Ne,
|
|
23
|
-
menuSubGroup: Oe,
|
|
24
|
-
menuSubGroupHeader: ze,
|
|
25
|
-
menuSubGroupHeaderActive: Le,
|
|
26
|
-
menuSubGroupLabel: Te,
|
|
27
|
-
main: Ee,
|
|
28
|
-
detailPanel: xe,
|
|
29
|
-
detailHeader: je,
|
|
30
|
-
detailIcon: He,
|
|
31
|
-
detailTitle: Re,
|
|
32
|
-
detailDesc: qe,
|
|
33
|
-
detailAction: Be,
|
|
34
|
-
goBtn: $e,
|
|
35
|
-
emptyState: Ue
|
|
36
|
-
};
|
|
37
|
-
function D(o) {
|
|
38
|
-
return o.flatMap((s) => [s, ...D(s.children ?? [])]);
|
|
39
|
-
}
|
|
40
|
-
const We = {
|
|
41
|
-
title: "测试中心",
|
|
42
|
-
icon: /* @__PURE__ */ e(S, {}),
|
|
43
|
-
// 测试 Tab 的入口权限点 (顶栏 test mode 同码)。4A 普通用户角色 USER 持有 TEST_ENTRY
|
|
44
|
-
// ⇒ 全员可见; 未绑测试角色的账号看不到这一组。
|
|
45
|
-
permission: "TEST_ENTRY",
|
|
46
|
-
items: [
|
|
47
|
-
{
|
|
48
|
-
key: "test-dashboard",
|
|
49
|
-
label: "测试总览",
|
|
50
|
-
icon: /* @__PURE__ */ e(S, {}),
|
|
51
|
-
path: "/test/qa/dashboard",
|
|
52
|
-
desc: "测试统计、趋势与套件健康度"
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
key: "test-design",
|
|
56
|
-
label: "用例与编排",
|
|
57
|
-
icon: /* @__PURE__ */ e(A, {}),
|
|
58
|
-
children: [
|
|
59
|
-
{
|
|
60
|
-
key: "test-case",
|
|
61
|
-
label: "测试用例",
|
|
62
|
-
icon: /* @__PURE__ */ e(A, {}),
|
|
63
|
-
path: "/test/qa/cases",
|
|
64
|
-
desc: "接口用例与断言模板"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
key: "test-suite",
|
|
68
|
-
label: "测试套件",
|
|
69
|
-
icon: /* @__PURE__ */ e(me, {}),
|
|
70
|
-
path: "/test/qa/suites",
|
|
71
|
-
desc: "步骤编排与变量传递"
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
key: "test-plan",
|
|
75
|
-
label: "测试计划",
|
|
76
|
-
icon: /* @__PURE__ */ e(V, {}),
|
|
77
|
-
path: "/test/qa/plans",
|
|
78
|
-
desc: "套件组合与环境绑定"
|
|
79
|
-
}
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
key: "test-exec",
|
|
84
|
-
label: "执行与调度",
|
|
85
|
-
icon: /* @__PURE__ */ e(b, {}),
|
|
86
|
-
children: [
|
|
87
|
-
{
|
|
88
|
-
key: "test-run",
|
|
89
|
-
label: "执行记录",
|
|
90
|
-
icon: /* @__PURE__ */ e(b, {}),
|
|
91
|
-
path: "/test/qa/runs",
|
|
92
|
-
desc: "执行触发、状态与报告"
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
key: "test-schedule",
|
|
96
|
-
label: "定时调度",
|
|
97
|
-
icon: /* @__PURE__ */ e(b, {}),
|
|
98
|
-
path: "/test/qa/schedules",
|
|
99
|
-
desc: "cron 定时执行"
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
key: "test-e2e",
|
|
103
|
-
label: "E2E 测试",
|
|
104
|
-
icon: /* @__PURE__ */ e(Z, {}),
|
|
105
|
-
path: "/test/qa/e2e",
|
|
106
|
-
desc: "浏览器自动化测试"
|
|
107
|
-
}
|
|
108
|
-
]
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
key: "test-support",
|
|
112
|
-
label: "环境与工具",
|
|
113
|
-
icon: /* @__PURE__ */ e(v, {}),
|
|
114
|
-
children: [
|
|
115
|
-
{
|
|
116
|
-
key: "test-env",
|
|
117
|
-
label: "环境管理",
|
|
118
|
-
icon: /* @__PURE__ */ e(v, {}),
|
|
119
|
-
path: "/test/qa/envs",
|
|
120
|
-
desc: "多环境变量管理"
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
key: "test-mock",
|
|
124
|
-
label: "Mock 平台",
|
|
125
|
-
icon: /* @__PURE__ */ e(ue, {}),
|
|
126
|
-
path: "/test/mock",
|
|
127
|
-
desc: "API Mock 服务管理"
|
|
128
|
-
}
|
|
129
|
-
]
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
key: "test-eval",
|
|
133
|
-
label: "智能测评",
|
|
134
|
-
icon: /* @__PURE__ */ e(q, {}),
|
|
135
|
-
children: [
|
|
136
|
-
{
|
|
137
|
-
key: "test-eval-start",
|
|
138
|
-
label: "发起测评",
|
|
139
|
-
icon: /* @__PURE__ */ e(S, {}),
|
|
140
|
-
path: "/test/evaluation/start",
|
|
141
|
-
desc: "Agent 质量测评"
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
key: "test-eval-schedule",
|
|
145
|
-
label: "自动测评",
|
|
146
|
-
icon: /* @__PURE__ */ e(b, {}),
|
|
147
|
-
path: "/test/evaluation/schedule",
|
|
148
|
-
desc: "定时批量测评"
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
key: "test-eval-group",
|
|
152
|
-
label: "群聊评测",
|
|
153
|
-
icon: /* @__PURE__ */ e(de, {}),
|
|
154
|
-
path: "/test/evaluation/group",
|
|
155
|
-
desc: "群聊场景评测"
|
|
156
|
-
},
|
|
157
|
-
{
|
|
158
|
-
key: "test-eval-report",
|
|
159
|
-
label: "分析报告",
|
|
160
|
-
icon: /* @__PURE__ */ e(q, {}),
|
|
161
|
-
path: "/test/evaluation/report",
|
|
162
|
-
desc: "测评结果分析"
|
|
163
|
-
}
|
|
164
|
-
]
|
|
165
|
-
}
|
|
166
|
-
]
|
|
167
|
-
}, J = [
|
|
168
|
-
{
|
|
169
|
-
title: "认证与权限",
|
|
170
|
-
icon: /* @__PURE__ */ e(E, {}),
|
|
171
|
-
// 4A 授权中心自身的资源管理动作 (账号/角色/应用/租户/组织/权限分配)
|
|
172
|
-
// ⇒ 4A 权限管理域 PERMISSION_MANAGE。普通用户角色 USER 不含该码,
|
|
173
|
-
// 之前照样能点进这些页面 (进去就是 403 / 空白) —— 现在入口先收敛。
|
|
174
|
-
permission: "PERMISSION_MANAGE",
|
|
175
|
-
items: [
|
|
176
|
-
{
|
|
177
|
-
key: "4a-account",
|
|
178
|
-
label: "账号管理",
|
|
179
|
-
icon: /* @__PURE__ */ e(ce, {}),
|
|
180
|
-
path: "/ctc/4a/account",
|
|
181
|
-
desc: "用户账号创建、编辑与状态管理"
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
key: "4a-role",
|
|
185
|
-
label: "角色管理",
|
|
186
|
-
icon: /* @__PURE__ */ e(E, {}),
|
|
187
|
-
path: "/ctc/4a/role",
|
|
188
|
-
desc: "角色定义与权限分配"
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
key: "4a-app",
|
|
192
|
-
label: "应用管理",
|
|
193
|
-
icon: /* @__PURE__ */ e(Y, {}),
|
|
194
|
-
path: "/ctc/4a/application",
|
|
195
|
-
desc: "应用注册、资源与权限配置"
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
key: "4a-tenant",
|
|
199
|
-
label: "租户管理",
|
|
200
|
-
icon: /* @__PURE__ */ e(v, {}),
|
|
201
|
-
path: "/ctc/4a/tenant",
|
|
202
|
-
desc: "多租户管理与配置"
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
key: "4a-org",
|
|
206
|
-
label: "组织管理",
|
|
207
|
-
icon: /* @__PURE__ */ e(x, {}),
|
|
208
|
-
path: "/ctc/4a/org",
|
|
209
|
-
desc: "组织架构与部门管理"
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
key: "4a-permission",
|
|
213
|
-
label: "权限管理",
|
|
214
|
-
icon: /* @__PURE__ */ e(j, {}),
|
|
215
|
-
path: "/ctc/4a/permission",
|
|
216
|
-
desc: "细粒度权限控制与审批"
|
|
217
|
-
}
|
|
218
|
-
]
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
title: "开发与工具",
|
|
222
|
-
icon: /* @__PURE__ */ e(f, {}),
|
|
223
|
-
items: [
|
|
224
|
-
{
|
|
225
|
-
key: "script",
|
|
226
|
-
label: "脚本中心",
|
|
227
|
-
icon: /* @__PURE__ */ e(f, {}),
|
|
228
|
-
path: "/script/manage",
|
|
229
|
-
desc: "DSL 脚本注册与执行"
|
|
230
|
-
},
|
|
231
|
-
{ key: "lc", label: "研发中心", icon: /* @__PURE__ */ e(f, {}), path: "/lc/apps", desc: "低代码应用开发与管理" },
|
|
232
|
-
{
|
|
233
|
-
key: "tool-curl",
|
|
234
|
-
label: "短链管理",
|
|
235
|
-
icon: /* @__PURE__ */ e(le, {}),
|
|
236
|
-
path: "/z-tool/curl",
|
|
237
|
-
desc: "短链接创建与管理"
|
|
238
|
-
},
|
|
239
|
-
{
|
|
240
|
-
key: "tool-webide",
|
|
241
|
-
label: "WebIDE 容器",
|
|
242
|
-
icon: /* @__PURE__ */ e(Z, {}),
|
|
243
|
-
path: "/z-tool/webide",
|
|
244
|
-
desc: "在线 IDE 代码编辑器"
|
|
245
|
-
}
|
|
246
|
-
]
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
title: "产品认知",
|
|
250
|
-
icon: /* @__PURE__ */ e(R, {}),
|
|
251
|
-
items: [
|
|
252
|
-
{
|
|
253
|
-
// 工坊是「一个面板干完产品业务开发」的主入口:对话 + 小册子 + 产物 + 台账。
|
|
254
|
-
// 它和小册子库原先只注册在 z-product-component 的 menuItems 里,
|
|
255
|
-
// 而主壳导航用的是这份写死的清单 ⇒ 面板做好了却在界面上进不去。
|
|
256
|
-
key: "product-atelier",
|
|
257
|
-
label: "产品工坊",
|
|
258
|
-
icon: /* @__PURE__ */ e(se, {}),
|
|
259
|
-
path: "/z-product/atelier",
|
|
260
|
-
desc: "在一个面板里对话、沉淀产品稿与设计稿、渲染演示稿、建工程落地"
|
|
261
|
-
},
|
|
262
|
-
{
|
|
263
|
-
key: "product-booklets",
|
|
264
|
-
label: "小册子库",
|
|
265
|
-
icon: /* @__PURE__ */ e(H, {}),
|
|
266
|
-
path: "/z-product/booklets",
|
|
267
|
-
desc: "可被对话引用的方法、清单与规范"
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
key: "product-board",
|
|
271
|
-
label: "产品全景",
|
|
272
|
-
icon: /* @__PURE__ */ e(S, {}),
|
|
273
|
-
path: "/z-product/board",
|
|
274
|
-
desc: "业务/产品/研发三线可见的全量认知(术语·模型·链路·设计稿·缺口)"
|
|
275
|
-
},
|
|
276
|
-
{
|
|
277
|
-
key: "product-blueprint",
|
|
278
|
-
label: "产品蓝图",
|
|
279
|
-
icon: /* @__PURE__ */ e(R, {}),
|
|
280
|
-
path: "/z-product/blueprint",
|
|
281
|
-
desc: "AI 的唯一入口:后端实时投影的全量认知快照"
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
key: "product-glossary",
|
|
285
|
-
label: "统一语言",
|
|
286
|
-
icon: /* @__PURE__ */ e(H, {}),
|
|
287
|
-
path: "/z-product/glossary",
|
|
288
|
-
desc: "术语仲裁表:标准词/别名/适用范围/反例"
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
key: "product-concept",
|
|
292
|
-
label: "领域模型",
|
|
293
|
-
icon: /* @__PURE__ */ e(pe, {}),
|
|
294
|
-
path: "/z-product/concept-model",
|
|
295
|
-
desc: "概念与关系画布(四种投影)"
|
|
296
|
-
},
|
|
297
|
-
{
|
|
298
|
-
key: "product-scenarios",
|
|
299
|
-
label: "用户链路",
|
|
300
|
-
icon: /* @__PURE__ */ e(x, {}),
|
|
301
|
-
path: "/z-product/scenarios",
|
|
302
|
-
desc: "端到端场景:步骤引用领域概念"
|
|
303
|
-
},
|
|
304
|
-
{
|
|
305
|
-
key: "product-designs",
|
|
306
|
-
label: "设计稿 ⇄ 模型",
|
|
307
|
-
icon: /* @__PURE__ */ e(re, {}),
|
|
308
|
-
path: "/z-product/designs",
|
|
309
|
-
desc: "设计与认知的双向收敛回路"
|
|
310
|
-
}
|
|
311
|
-
]
|
|
312
|
-
},
|
|
313
|
-
{
|
|
314
|
-
title: "业务流程",
|
|
315
|
-
icon: /* @__PURE__ */ e(A, {}),
|
|
316
|
-
items: [
|
|
317
|
-
{
|
|
318
|
-
key: "workflow",
|
|
319
|
-
label: "流程中心",
|
|
320
|
-
icon: /* @__PURE__ */ e(j, {}),
|
|
321
|
-
path: "/workflow/dashboard",
|
|
322
|
-
desc: "工作流定义与审批管理"
|
|
323
|
-
},
|
|
324
|
-
{
|
|
325
|
-
key: "task",
|
|
326
|
-
label: "任务中心",
|
|
327
|
-
icon: /* @__PURE__ */ e(A, {}),
|
|
328
|
-
path: "/task/dashboard",
|
|
329
|
-
desc: "任务创建、分配与跟踪"
|
|
330
|
-
},
|
|
331
|
-
{
|
|
332
|
-
key: "schedule",
|
|
333
|
-
label: "调度中心",
|
|
334
|
-
icon: /* @__PURE__ */ e(b, {}),
|
|
335
|
-
// z-schedule-component 的路由只有 jobs / group / log,**没有 dashboard**:
|
|
336
|
-
// 原来写 /schedule/dashboard,点进去命中 /schedule/* 通配后组件内部匹配不到
|
|
337
|
-
// 任何路由 ⇒ 右侧一片空白。默认页取 jobs。
|
|
338
|
-
path: "/schedule/jobs",
|
|
339
|
-
desc: "定时任务调度与管理"
|
|
340
|
-
},
|
|
341
|
-
{
|
|
342
|
-
key: "subscribe",
|
|
343
|
-
label: "订阅中心",
|
|
344
|
-
icon: /* @__PURE__ */ e(ie, {}),
|
|
345
|
-
path: "/subscribe/list",
|
|
346
|
-
desc: "第三方数据订阅与拉取"
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
key: "project",
|
|
350
|
-
label: "项目中心",
|
|
351
|
-
icon: /* @__PURE__ */ e(V, {}),
|
|
352
|
-
path: "/project/list",
|
|
353
|
-
desc: "项目创建与进度管理"
|
|
354
|
-
}
|
|
355
|
-
]
|
|
356
|
-
}
|
|
357
|
-
], P = [...J, We];
|
|
358
|
-
function Ke({
|
|
359
|
-
activePathOverride: o,
|
|
360
|
-
menuOnly: s = !1,
|
|
361
|
-
visibleGroups: r
|
|
362
|
-
} = {}) {
|
|
363
|
-
const k = Q(), { pathname: G } = M(), w = g(
|
|
364
|
-
() => r ? P.filter((a) => r.includes(a.title)) : J,
|
|
365
|
-
[r]
|
|
366
|
-
), I = B((a) => a.permissionState), C = B((a) => a.currentUser), _ = g(
|
|
367
|
-
() => I === "failed" ? w : he(w, C),
|
|
368
|
-
[w, C, I]
|
|
369
|
-
), [X, ee] = z(
|
|
370
|
-
new Set(P.map((a) => a.title))
|
|
371
|
-
), [N, te] = z(
|
|
372
|
-
() => new Set(
|
|
373
|
-
P.flatMap((a) => a.items).filter((a) => a.children).map((a) => a.key)
|
|
374
|
-
)
|
|
375
|
-
), y = g(() => {
|
|
376
|
-
var i;
|
|
377
|
-
const a = o ?? G;
|
|
378
|
-
return ((i = _.flatMap((c) => D(c.items)).find(
|
|
379
|
-
(c) => c.path === a
|
|
380
|
-
)) == null ? void 0 : i.key) ?? null;
|
|
381
|
-
}, [o, G, _]), ae = (a) => {
|
|
382
|
-
ee((i) => {
|
|
383
|
-
const c = new Set(i);
|
|
384
|
-
return c.has(a) ? c.delete(a) : c.add(a), c;
|
|
385
|
-
});
|
|
386
|
-
}, ne = (a) => {
|
|
387
|
-
te((i) => {
|
|
388
|
-
const c = new Set(i);
|
|
389
|
-
return c.has(a) ? c.delete(a) : c.add(a), c;
|
|
390
|
-
});
|
|
391
|
-
}, O = (a) => {
|
|
392
|
-
a.path && k(a.path);
|
|
393
|
-
}, d = _.flatMap((a) => D(a.items)).find(
|
|
394
|
-
(a) => a.key === y
|
|
395
|
-
);
|
|
396
|
-
return /* @__PURE__ */ p("div", { className: n.container, children: [
|
|
397
|
-
/* @__PURE__ */ p("aside", { className: n.sidebar, children: [
|
|
398
|
-
/* @__PURE__ */ e(be, {}),
|
|
399
|
-
/* @__PURE__ */ e("nav", { className: n.menuList, children: _.map((a) => {
|
|
400
|
-
const i = X.has(a.title);
|
|
401
|
-
return /* @__PURE__ */ p("div", { className: n.menuGroup, children: [
|
|
402
|
-
/* @__PURE__ */ p(
|
|
403
|
-
"div",
|
|
404
|
-
{
|
|
405
|
-
className: n.menuGroupHeader,
|
|
406
|
-
onClick: () => ae(a.title),
|
|
407
|
-
children: [
|
|
408
|
-
/* @__PURE__ */ e("span", { className: n.menuGroupIcon, children: a.icon }),
|
|
409
|
-
/* @__PURE__ */ e("span", { className: n.menuGroupLabel, children: a.title }),
|
|
410
|
-
/* @__PURE__ */ e("span", { className: n.menuGroupArrow, children: i ? /* @__PURE__ */ e(L, {}) : /* @__PURE__ */ e(T, {}) })
|
|
411
|
-
]
|
|
412
|
-
}
|
|
413
|
-
),
|
|
414
|
-
i && /* @__PURE__ */ e("ul", { className: n.menuSubList, children: a.items.map(
|
|
415
|
-
(c) => c.children ? (
|
|
416
|
-
/* 子菜单分组头 — 可折叠; active 项落在其中时高亮 */
|
|
417
|
-
/* @__PURE__ */ p("li", { className: n.menuSubGroup, children: [
|
|
418
|
-
/* @__PURE__ */ p(
|
|
419
|
-
"div",
|
|
420
|
-
{
|
|
421
|
-
className: `${n.menuSubGroupHeader} ${c.children.some((m) => m.key === y) ? n.menuSubGroupHeaderActive : ""}`,
|
|
422
|
-
onClick: () => ne(c.key),
|
|
423
|
-
children: [
|
|
424
|
-
/* @__PURE__ */ e("span", { className: n.menuGroupIcon, children: c.icon }),
|
|
425
|
-
/* @__PURE__ */ e("span", { className: n.menuSubGroupLabel, children: c.label }),
|
|
426
|
-
/* @__PURE__ */ e("span", { className: n.menuGroupArrow, children: N.has(c.key) ? /* @__PURE__ */ e(L, {}) : /* @__PURE__ */ e(T, {}) })
|
|
427
|
-
]
|
|
428
|
-
}
|
|
429
|
-
),
|
|
430
|
-
N.has(c.key) && /* @__PURE__ */ e("ul", { className: n.menuSubList, children: c.children.map((m) => /* @__PURE__ */ p(
|
|
431
|
-
"li",
|
|
432
|
-
{
|
|
433
|
-
className: `${n.menuSubItem} ${y === m.key ? n.menuSubItemActive : ""}`,
|
|
434
|
-
onClick: () => O(m),
|
|
435
|
-
children: [
|
|
436
|
-
/* @__PURE__ */ e(
|
|
437
|
-
"span",
|
|
438
|
-
{
|
|
439
|
-
className: n.menuSubItemIcon,
|
|
440
|
-
children: m.icon
|
|
441
|
-
}
|
|
442
|
-
),
|
|
443
|
-
/* @__PURE__ */ e("span", { children: m.label })
|
|
444
|
-
]
|
|
445
|
-
},
|
|
446
|
-
m.key
|
|
447
|
-
)) })
|
|
448
|
-
] }, c.key)
|
|
449
|
-
) : /* @__PURE__ */ p(
|
|
450
|
-
"li",
|
|
451
|
-
{
|
|
452
|
-
className: `${n.menuSubItem} ${y === c.key ? n.menuSubItemActive : ""}`,
|
|
453
|
-
onClick: () => O(c),
|
|
454
|
-
children: [
|
|
455
|
-
/* @__PURE__ */ e("span", { className: n.menuSubItemIcon, children: c.icon }),
|
|
456
|
-
/* @__PURE__ */ e("span", { children: c.label })
|
|
457
|
-
]
|
|
458
|
-
},
|
|
459
|
-
c.key
|
|
460
|
-
)
|
|
461
|
-
) })
|
|
462
|
-
] }, a.title);
|
|
463
|
-
}) })
|
|
464
|
-
] }),
|
|
465
|
-
s ? null : /* @__PURE__ */ e("main", { className: n.main, children: d ? /* @__PURE__ */ p("div", { className: n.detailPanel, children: [
|
|
466
|
-
/* @__PURE__ */ p("div", { className: n.detailHeader, children: [
|
|
467
|
-
/* @__PURE__ */ e("div", { className: n.detailIcon, children: d.icon }),
|
|
468
|
-
/* @__PURE__ */ p("div", { children: [
|
|
469
|
-
/* @__PURE__ */ e("h2", { className: n.detailTitle, children: d.label }),
|
|
470
|
-
/* @__PURE__ */ e("p", { className: n.detailDesc, children: d.desc })
|
|
471
|
-
] })
|
|
472
|
-
] }),
|
|
473
|
-
/* @__PURE__ */ e("div", { className: n.detailAction, children: /* @__PURE__ */ p(
|
|
474
|
-
"button",
|
|
475
|
-
{
|
|
476
|
-
className: n.goBtn,
|
|
477
|
-
onClick: () => k(d.path),
|
|
478
|
-
children: [
|
|
479
|
-
"进入 ",
|
|
480
|
-
d.label
|
|
481
|
-
]
|
|
482
|
-
}
|
|
483
|
-
) })
|
|
484
|
-
] }) : /* @__PURE__ */ p("div", { className: n.emptyState, children: [
|
|
485
|
-
/* @__PURE__ */ e(Y, { style: { fontSize: 48, color: "#ccc" } }),
|
|
486
|
-
/* @__PURE__ */ e("p", { children: "点击左侧菜单进入对应功能模块" })
|
|
487
|
-
] }) })
|
|
488
|
-
] });
|
|
489
|
-
}
|
|
490
|
-
const Fe = "_shell_10jrt_6", Qe = "_main_10jrt_21", Ye = "_empty_10jrt_31", Ze = "_emptyIcon_10jrt_41", Ve = "_emptyText_10jrt_46", h = {
|
|
491
|
-
shell: Fe,
|
|
492
|
-
main: Qe,
|
|
493
|
-
empty: Ye,
|
|
494
|
-
emptyIcon: Ze,
|
|
495
|
-
emptyText: Ve
|
|
496
|
-
};
|
|
497
|
-
ye();
|
|
498
|
-
const t = (o, s) => u(() => o().then((r) => ({ default: r[s] }))), Je = t(() => import("@yuku123/z-ctc-component"), "AccountManagement"), Xe = t(() => import("@yuku123/z-ctc-component"), "ApplicationManagement"), et = t(() => import("@yuku123/z-ctc-component"), "AuditPage"), tt = t(() => import("@yuku123/z-ctc-component"), "CtcOverview"), at = t(() => import("@yuku123/z-ctc-component"), "DictPage"), nt = t(() => import("@yuku123/z-ctc-component"), "OrgPage"), ot = t(() => import("@yuku123/z-ctc-component"), "PermissionManagement"), ct = t(() => import("@yuku123/z-ctc-component"), "RoleManagement"), $ = t(() => import("@yuku123/z-ctc-component"), "SurlManagement"), lt = t(() => import("@yuku123/z-ctc-component"), "TenantManagement"), st = t(() => import("@yuku123/z-agent-component"), "AgentAppList"), pt = t(() => import("@yuku123/z-agent-component"), "AgentDashboard"), rt = t(() => import("@yuku123/z-agent-component"), "AkManage"), it = t(() => import("@yuku123/z-agent-component"), "BucketList"), mt = t(() => import("@yuku123/z-agent-component"), "LlmManage"), ut = t(() => import("@yuku123/z-agent-component"), "McpPage"), dt = t(() => import("@yuku123/z-agent-component"), "ObjectBrowser"), ht = t(() => import("@yuku123/z-agent-component"), "ScriptCenterPage"), bt = t(() => import("@yuku123/z-agent-component"), "ScriptProductizationPage"), gt = t(() => import("@yuku123/z-agent-component"), "SkillMarket"), kt = t(() => import("./index-51d5011I.js"), "AgentTeamIM"), U = t(() => import("./index-51d5011I.js"), "DebugPlayground"), _t = t(() => import("./index-51d5011I.js"), "Overview"), W = t(() => import("./index-51d5011I.js"), "Webide"), yt = u(() => import("./OnboardingPage-B7274ITW.js")), St = u(() => import("./InvitationManagementPage-Bv0ys--k.js")), At = t(() => import("@yuku123/z-config-component"), "ConfigApp"), wt = t(() => import("@yuku123/z-task-component"), "TaskApp"), ft = t(() => import("@yuku123/z-wf-component"), "WorkflowApp"), Pt = t(() => import("@yuku123/z-schedule-component"), "ScheduleApp"), vt = t(() => import("@yuku123/z-mist-component"), "MistApp"), Dt = t(() => import("@yuku123/z-meta-component"), "MetaApp"), Mt = t(() => import("@yuku123/z-msg-component"), "MsgApp"), Gt = t(() => import("@yuku123/z-rpc-component"), "RpcApp"), It = u(() => import("./ComponentDoc-Aw4QY8oI.js").then((o) => o.p)), Ct = u(() => import("./ComponentDoc-Aw4QY8oI.js").then((o) => o.q)), Nt = t(() => import("@yuku123/z-config-component"), "ComponentDocPage"), Ot = t(() => import("@yuku123/z-task-component"), "ComponentDocPage"), zt = t(() => import("@yuku123/z-wf-component"), "ComponentDocPage"), Lt = t(() => import("@yuku123/z-schedule-component"), "ComponentDocPage"), Tt = t(() => import("@yuku123/z-mist-component"), "ComponentDocPage"), Et = t(() => import("@yuku123/z-meta-component"), "ComponentDocPage"), xt = t(() => import("@yuku123/z-msg-component"), "ComponentDocPage"), jt = t(() => import("@yuku123/z-rpc-component"), "ComponentDocPage"), Ht = t(() => import("@yuku123/z-kb-component"), "ComponentDocPage"), Rt = t(() => import("@yuku123/z-product-component"), "ComponentDocPage"), qt = t(() => import("@yuku123/z-oss-component"), "ComponentDocPage"), Bt = t(() => import("@yuku123/z-vector-component"), "ComponentDocPage"), $t = t(() => import("@yuku123/z-graph-component"), "ComponentDocPage"), Ut = t(() => import("@yuku123/z-gw-component"), "ComponentDocPage"), Wt = t(() => import("@yuku123/z-cache-component"), "ComponentDocPage"), Kt = t(() => import("@yuku123/z-mq-component"), "ComponentDocPage"), Ft = t(() => import("@yuku123/z-ctc-component"), "ComponentDocPage"), Qt = t(() => import("@yuku123/z-agent-component"), "ComponentDocPage"), Yt = t(() => import("@yuku123/z-lc-component"), "ComponentDocPage"), Zt = t(() => import("@yuku123/z-qa-component"), "ComponentDocPage"), Vt = u(() => import("./ComponentDoc-Aw4QY8oI.js").then((o) => o.o)), K = u(() => import("@yuku123/z-qa-component"));
|
|
499
|
-
function Jt() {
|
|
500
|
-
return /* @__PURE__ */ p("div", { className: h.empty, children: [
|
|
501
|
-
/* @__PURE__ */ e("div", { className: h.emptyIcon, children: "📋" }),
|
|
502
|
-
/* @__PURE__ */ e("div", { className: h.emptyText, children: "请从左侧菜单选择模块" })
|
|
503
|
-
] });
|
|
504
|
-
}
|
|
505
|
-
function Xt() {
|
|
506
|
-
const { pathname: o } = M();
|
|
507
|
-
return /* @__PURE__ */ e(l, { to: o.replace(/^\/product/, "/z-product"), replace: !0 });
|
|
508
|
-
}
|
|
509
|
-
const F = [
|
|
510
|
-
// ─── 顶层 / 概览 ───
|
|
511
|
-
{ path: "/overview", element: /* @__PURE__ */ e(_t, {}) },
|
|
512
|
-
// ─── 4A 中心 (/ctc/*) ───
|
|
513
|
-
{ path: "/ctc", element: /* @__PURE__ */ e(l, { to: "/ctc/4a/account", replace: !0 }) },
|
|
514
|
-
{ path: "/ctc/4a/account", element: /* @__PURE__ */ e(Je, {}) },
|
|
515
|
-
{ path: "/ctc/4a/role", element: /* @__PURE__ */ e(ct, {}) },
|
|
516
|
-
{ path: "/ctc/4a/application", element: /* @__PURE__ */ e(Xe, {}) },
|
|
517
|
-
{ path: "/ctc/4a/tenant", element: /* @__PURE__ */ e(lt, {}) },
|
|
518
|
-
{ path: "/ctc/4a/org", element: /* @__PURE__ */ e(nt, {}) },
|
|
519
|
-
{ path: "/ctc/4a/permission", element: /* @__PURE__ */ e(ot, {}) },
|
|
520
|
-
{ path: "/ctc/4a/surl", element: /* @__PURE__ */ e($, {}) },
|
|
521
|
-
{ path: "/ctc/dict", element: /* @__PURE__ */ e(at, {}) },
|
|
522
|
-
{ path: "/ctc/overview", element: /* @__PURE__ */ e(tt, {}) },
|
|
523
|
-
{ path: "/ctc/audit", element: /* @__PURE__ */ e(et, {}) },
|
|
524
|
-
{ path: "/ctc/webide", element: /* @__PURE__ */ e(W, {}) },
|
|
525
|
-
{ path: "/ctc/agent-team", element: /* @__PURE__ */ e(kt, {}) },
|
|
526
|
-
{ path: "/ctc/invitation", element: /* @__PURE__ */ e(St, {}) },
|
|
527
|
-
{ path: "/onboarding", element: /* @__PURE__ */ e(yt, {}) },
|
|
528
|
-
// ─── 智能中心 (/ai/*) ───
|
|
529
|
-
{ path: "/ai", element: /* @__PURE__ */ e(l, { to: "/ai/agent/app", replace: !0 }) },
|
|
530
|
-
{ path: "/ai/agent", element: /* @__PURE__ */ e(l, { to: "/ai/agent/app", replace: !0 }) },
|
|
531
|
-
{ path: "/ai/agent/app", element: /* @__PURE__ */ e(st, {}) },
|
|
532
|
-
{ path: "/ai/llm", element: /* @__PURE__ */ e(mt, {}) },
|
|
533
|
-
{ path: "/ai/llm/provider", element: /* @__PURE__ */ e(l, { to: "/ai/llm", replace: !0 }) },
|
|
534
|
-
{ path: "/ai/llm/model", element: /* @__PURE__ */ e(l, { to: "/ai/llm", replace: !0 }) },
|
|
535
|
-
{ path: "/ai/usage", element: /* @__PURE__ */ e(l, { to: "/ai/llm", replace: !0 }) },
|
|
536
|
-
{ path: "/ai/ak", element: /* @__PURE__ */ e(rt, {}) },
|
|
537
|
-
{ path: "/ai/mcp", element: /* @__PURE__ */ e(ut, {}) },
|
|
538
|
-
{ path: "/ai/skill", element: /* @__PURE__ */ e(gt, {}) },
|
|
539
|
-
{ path: "/ai/oss", element: /* @__PURE__ */ e(l, { to: "/ai/oss/bucket", replace: !0 }) },
|
|
540
|
-
{ path: "/ai/oss/bucket", element: /* @__PURE__ */ e(it, {}) },
|
|
541
|
-
{ path: "/ai/oss/bucket/:bucketName", element: /* @__PURE__ */ e(dt, {}) },
|
|
542
|
-
{ path: "/ai/trace", element: /* @__PURE__ */ e(U, {}) },
|
|
543
|
-
{ path: "/ai/trace/debug", element: /* @__PURE__ */ e(U, {}) },
|
|
544
|
-
{ path: "/ai/dashboard", element: /* @__PURE__ */ e(pt, {}) },
|
|
545
|
-
// 多 Agent 实例 / 模板市场已下线 (2026-10-22): 模板并入 Agent 应用页,
|
|
546
|
-
// 旧深链重定向, 别再回到独立菜单
|
|
547
|
-
{ path: "/ai/template", element: /* @__PURE__ */ e(l, { to: "/ai/agent/app", replace: !0 }) },
|
|
548
|
-
{ path: "/ai/agent-instance", element: /* @__PURE__ */ e(l, { to: "/ai/agent/app", replace: !0 }) },
|
|
549
|
-
{ path: "/ai/agent/instances", element: /* @__PURE__ */ e(l, { to: "/ai/agent/app", replace: !0 }) },
|
|
550
|
-
// ─── 配置中心 ───
|
|
551
|
-
{ path: "/config/*", element: /* @__PURE__ */ e(At, {}) },
|
|
552
|
-
// ─── 任务中心 ───
|
|
553
|
-
// 模块根路径要重定向到默认页:通配 /task/* 匹配不到裸 /task(matchPattern 要求
|
|
554
|
-
// 前缀带斜杠),落到 SystemShellEmpty 就是一句"请从左侧菜单选择模块"的空壳。
|
|
555
|
-
{ path: "/task", element: /* @__PURE__ */ e(l, { to: "/task/dashboard", replace: !0 }) },
|
|
556
|
-
{ path: "/task/*", element: /* @__PURE__ */ e(wt, {}) },
|
|
557
|
-
// ─── 流程中心 ───
|
|
558
|
-
{ path: "/workflow", element: /* @__PURE__ */ e(l, { to: "/workflow/dashboard", replace: !0 }) },
|
|
559
|
-
{ path: "/workflow/*", element: /* @__PURE__ */ e(ft, {}) },
|
|
560
|
-
// ─── 调度中心 ───
|
|
561
|
-
// 默认页是 jobs:z-schedule-component 的路由只有 jobs / group / log,没有 dashboard。
|
|
562
|
-
{ path: "/schedule", element: /* @__PURE__ */ e(l, { to: "/schedule/jobs", replace: !0 }) },
|
|
563
|
-
{ path: "/schedule/*", element: /* @__PURE__ */ e(Pt, {}) },
|
|
564
|
-
// ─── 密钥中心 ───
|
|
565
|
-
{ path: "/mist/*", element: /* @__PURE__ */ e(vt, {}) },
|
|
566
|
-
// ─── 中间件孵化页 (大需求 004) — 主入口在运维工作台 (?mode=ops),此处兜住直链/刷新 ───
|
|
567
|
-
{ path: "/meta", element: /* @__PURE__ */ e(l, { to: "/meta/app", replace: !0 }) },
|
|
568
|
-
{ path: "/meta/*", element: /* @__PURE__ */ e(Dt, {}) },
|
|
569
|
-
{ path: "/msg", element: /* @__PURE__ */ e(l, { to: "/msg/inbox", replace: !0 }) },
|
|
570
|
-
{ path: "/msg/*", element: /* @__PURE__ */ e(Mt, {}) },
|
|
571
|
-
{ path: "/rpc", element: /* @__PURE__ */ e(l, { to: "/rpc/service", replace: !0 }) },
|
|
572
|
-
{ path: "/rpc/*", element: /* @__PURE__ */ e(Gt, {}) },
|
|
573
|
-
// ─── 订阅中心 ───
|
|
574
|
-
{ path: "/subscribe", element: /* @__PURE__ */ e(l, { to: "/subscribe/list", replace: !0 }) },
|
|
575
|
-
{ path: "/subscribe/*", element: /* @__PURE__ */ e(It, {}) },
|
|
576
|
-
// ─── 产品工作台 z-product (2026-10-21 接入) ───
|
|
577
|
-
// /z-product/* 由 z-product 组件自己的 ProductApp 渲染(内部按 manifest 的绝对路径手工匹配,
|
|
578
|
-
// 不用嵌套 <Routes>:这里没有 Route 父上下文,绝对路径不会被再拼一次父前缀)。
|
|
579
|
-
// §14:z-product 的菜单 key / 路由 path 一律带产品名前缀(/z-product/xxx),
|
|
580
|
-
// 避免 /board、/products 这类短路径跟宿主自己的同名路由撞车。
|
|
581
|
-
// 产品域的默认落地页是工坊:它是「一个面板干完产品业务开发」的入口,
|
|
582
|
-
// 全景/蓝图是看板,不是第一动作。
|
|
583
|
-
{ path: "/z-product", element: /* @__PURE__ */ e(l, { to: "/z-product/atelier", replace: !0 }) },
|
|
584
|
-
{ path: "/z-product/*", element: /* @__PURE__ */ e(ge, { basePath: "/z-product" }) },
|
|
585
|
-
// 旧前缀 /product/* → 新前缀 /z-product/*:§14 前缀化之前的老 URL 仍可达(书签 / 旧分享链接)。
|
|
586
|
-
{ path: "/product", element: /* @__PURE__ */ e(l, { to: "/z-product/atelier", replace: !0 }) },
|
|
587
|
-
{ path: "/product/*", element: /* @__PURE__ */ e(Xt, {}) },
|
|
588
|
-
// ─── 项目中心 ───
|
|
589
|
-
{ path: "/project", element: /* @__PURE__ */ e(l, { to: "/project/list", replace: !0 }) },
|
|
590
|
-
{ path: "/project/*", element: /* @__PURE__ */ e(Ct, {}) },
|
|
591
|
-
// ─── 脚本中心 (/script/*) — FEATURE052 ───
|
|
592
|
-
{ path: "/script", element: /* @__PURE__ */ e(l, { to: "/script/manage", replace: !0 }) },
|
|
593
|
-
{ path: "/script/manage", element: /* @__PURE__ */ e(ht, {}) },
|
|
594
|
-
{ path: "/script/productization", element: /* @__PURE__ */ e(bt, {}) },
|
|
595
|
-
// ─── 工具中心 (/z-tool/*) — FEATURE054 ───
|
|
596
|
-
{ path: "/z-tool", element: /* @__PURE__ */ e(l, { to: "/z-tool/curl", replace: !0 }) },
|
|
597
|
-
{ path: "/z-tool/curl", element: /* @__PURE__ */ e($, {}) },
|
|
598
|
-
{ path: "/z-tool/webide", element: /* @__PURE__ */ e(W, {}) },
|
|
599
|
-
// ─── 测试中心 (/test/*) — FEATURE061 ───
|
|
600
|
-
{ path: "/test", element: /* @__PURE__ */ e(l, { to: "/test/qa/dashboard", replace: !0 }) },
|
|
601
|
-
{ path: "/test/mock", element: /* @__PURE__ */ e(Vt, {}) },
|
|
602
|
-
// QAApp 内部用 <Routes> 相对路由, 通配匹配后由 QAApp 自己接管子路径
|
|
603
|
-
{ path: "/test/qa", element: /* @__PURE__ */ e(K, {}) },
|
|
604
|
-
{ path: "/test/qa/*", element: /* @__PURE__ */ e(K, {}) },
|
|
605
|
-
// ─── 低代码 ───
|
|
606
|
-
// /lc/* 刻意不在这里注册。它早就迁到 src/lc/(TS 重写), 挂载点是
|
|
607
|
-
// main.jsx 的 <Route path="/lc/*" element={<ZTeamApp forcedMode="dev"/>}/>,
|
|
608
|
-
// 由 DevWorkbench 把 pathname 原样交给 @/lc 自己的嵌套 <Routes>。
|
|
609
|
-
// 本表早先还挂着一行 {path:'/lc/*', element:<LcIndex/>}, 它的 import 写的是
|
|
610
|
-
// '@/pages/lc' —— 该别名解析到 src/zteam/pages/lc(不存在), 真身在 src/lc,
|
|
611
|
-
// 于是这行既解析不了、又因 main.jsx 先消费了 /lc/* 而永远不可达。
|
|
612
|
-
// /form/:entity 与 /form/_model 是 z-lc Phase 1 手写原型的两条 URL
|
|
613
|
-
// (LowCodeModel 实体字段编辑器 / LowCodeRuntime 通用 CRUD), 现已由
|
|
614
|
-
// @yuku123/z-lc-component 承接 —— 它是同一套 /api/lc 后端的完整前端客户,
|
|
615
|
-
// 能力严格更强(designer 模型编辑、workspace 七种视图 CRUD、admin 全套、
|
|
616
|
-
// db-import、AI 建模), 挂在 main.jsx 的 <Route path="/lc/*"> 下经
|
|
617
|
-
// DevWorkbench 的 <LcApp/> 渲染。
|
|
618
|
-
//
|
|
619
|
-
// 不做逐条映射: z-lc 的工作区路由是 /lc/{appCode}/{entityCode}/{viewType},
|
|
620
|
-
// 比 /form/{entityCode} 多一层 appCode, 旧 URL 里没有这个信息, 无法还原。
|
|
621
|
-
// 故统一重定向到应用列表, 由用户自行进入对应应用。
|
|
622
|
-
{ path: "/form/:entity", element: /* @__PURE__ */ e(l, { to: "/lc/apps", replace: !0 }) },
|
|
623
|
-
// ─── 各域组件文档(lead 008 §7)───
|
|
624
|
-
// 放在本表末尾即可:matchSystemPath 是「先全表精确匹配、再全表通配匹配」,
|
|
625
|
-
// 所以 /config/docs 这类精确路径**不会**被上面的 /config/* 吃掉。
|
|
626
|
-
//
|
|
627
|
-
// 为什么路径用宿主前缀(/config/docs)而不是各域 manifest 里的 /z-config/docs:
|
|
628
|
-
// manifest 的 routes 是给**独立壳**用的(suit 里 <Route path={r.path}> 直接铺);
|
|
629
|
-
// 工作台把各域挂在宿主前缀下(/config/* ⇒ ConfigApp 内部相对路由),
|
|
630
|
-
// 两套路径对不上 ⇒ manifest 的 routes 在工作台里不生效,文档页会 404。
|
|
631
|
-
// 这里统一按**宿主前缀**挂,各域自己的 manifest 路径仍然保留给独立壳用。
|
|
632
|
-
//
|
|
633
|
-
// §14 铁律(菜单 key 必须带产品名前缀)针对的是**同一宿主内多套件共存**的撞车问题;
|
|
634
|
-
// 这里每个域的宿主前缀本身就已经是产品名(/config / /task / /workflow …),
|
|
635
|
-
// 且各域之间前缀互不相同 ⇒ 不存在撞车,不需要再加 z- 前缀。
|
|
636
|
-
{ path: "/config/docs", element: /* @__PURE__ */ e(Nt, {}) },
|
|
637
|
-
{ path: "/task/docs", element: /* @__PURE__ */ e(Ot, {}) },
|
|
638
|
-
{ path: "/workflow/docs", element: /* @__PURE__ */ e(zt, {}) },
|
|
639
|
-
{ path: "/schedule/docs", element: /* @__PURE__ */ e(Lt, {}) },
|
|
640
|
-
{ path: "/mist/docs", element: /* @__PURE__ */ e(Tt, {}) },
|
|
641
|
-
{ path: "/meta/docs", element: /* @__PURE__ */ e(Et, {}) },
|
|
642
|
-
{ path: "/msg/docs", element: /* @__PURE__ */ e(xt, {}) },
|
|
643
|
-
{ path: "/rpc/docs", element: /* @__PURE__ */ e(jt, {}) },
|
|
644
|
-
{ path: "/kb/docs", element: /* @__PURE__ */ e(Ht, {}) },
|
|
645
|
-
{ path: "/z-product/docs", element: /* @__PURE__ */ e(Rt, {}) },
|
|
646
|
-
{ path: "/oss/docs", element: /* @__PURE__ */ e(qt, {}) },
|
|
647
|
-
{ path: "/vector/docs", element: /* @__PURE__ */ e(Bt, {}) },
|
|
648
|
-
{ path: "/graph/docs", element: /* @__PURE__ */ e($t, {}) },
|
|
649
|
-
{ path: "/gw/docs", element: /* @__PURE__ */ e(Ut, {}) },
|
|
650
|
-
{ path: "/cache/docs", element: /* @__PURE__ */ e(Wt, {}) },
|
|
651
|
-
{ path: "/mq/docs", element: /* @__PURE__ */ e(Kt, {}) },
|
|
652
|
-
{ path: "/ctc/docs", element: /* @__PURE__ */ e(Ft, {}) },
|
|
653
|
-
{ path: "/ai/docs", element: /* @__PURE__ */ e(Qt, {}) },
|
|
654
|
-
{ path: "/lc/docs", element: /* @__PURE__ */ e(Yt, {}) },
|
|
655
|
-
{ path: "/test/qa/docs", element: /* @__PURE__ */ e(Zt, {}) }
|
|
656
|
-
];
|
|
657
|
-
function ea(o) {
|
|
658
|
-
for (const s of F)
|
|
659
|
-
if (s.path === o) return s.element;
|
|
660
|
-
for (const s of F)
|
|
661
|
-
if (ta(s.path, o)) return s.element;
|
|
662
|
-
return /* @__PURE__ */ e(Jt, {});
|
|
663
|
-
}
|
|
664
|
-
function ta(o, s) {
|
|
665
|
-
if (!o.includes("*") && !o.includes(":")) return !1;
|
|
666
|
-
const r = "^" + o.replace(/[.+?^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*").replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g, "[^/]+") + "$";
|
|
667
|
-
return new RegExp(r).test(s);
|
|
668
|
-
}
|
|
669
|
-
function ma() {
|
|
670
|
-
Q();
|
|
671
|
-
const { pathname: o } = M(), s = o.startsWith("/test/"), r = g(() => o, [o]), k = g(() => ea(o), [o]);
|
|
672
|
-
return /* @__PURE__ */ p("div", { className: h.shell, children: [
|
|
673
|
-
/* @__PURE__ */ e(
|
|
674
|
-
Ke,
|
|
675
|
-
{
|
|
676
|
-
activePathOverride: r,
|
|
677
|
-
menuOnly: !0,
|
|
678
|
-
visibleGroups: s ? ["测试中心"] : void 0
|
|
679
|
-
}
|
|
680
|
-
),
|
|
681
|
-
/* @__PURE__ */ p("main", { className: h.main, children: [
|
|
682
|
-
/* @__PURE__ */ e(ke, {}),
|
|
683
|
-
/* @__PURE__ */ e(_e, { resetKey: o, children: /* @__PURE__ */ e(oe, { fallback: /* @__PURE__ */ e("div", { className: h.empty, children: "加载中…" }), children: k }) })
|
|
684
|
-
] })
|
|
685
|
-
] });
|
|
686
|
-
}
|
|
687
|
-
export {
|
|
688
|
-
ma as default
|
|
689
|
-
};
|