@yuku123/z-team-component 0.2.58 → 0.2.60
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/{ChangeLogView-Cstbioyw.js → ChangeLogView-VRWVzP0r.js} +1 -1
- package/dist/{ComponentDoc-MWEULbua.js → ComponentDoc-DjfucAFW.js} +1497 -1387
- package/dist/{InvitationManagementPage-DHomiF0D.js → InvitationManagementPage-BQ_4HcPk.js} +1 -1
- package/dist/{OnboardingPage-D4ccf9Rj.js → OnboardingPage-DM8emo6P.js} +2 -2
- package/dist/{ScheduledTasks-xjtP-eIJ.js → ScheduledTasks-BYxdbsSa.js} +8 -8
- package/dist/SystemShell-BEdMWZ8d.js +670 -0
- package/dist/{admin-logs-B9KS6VJz.js → admin-logs-DCYof_u5.js} +2 -2
- package/dist/{api-BAOITIl4.js → api-Bz4pq8m7.js} +1 -1
- package/dist/{api-CALqShkO.js → api-DWt94BcM.js} +584 -572
- package/dist/{createWorkspaceWsHandler-DP30xvug.js → createWorkspaceWsHandler-3aHkBZE9.js} +4 -4
- package/dist/{index-4YxdJwFm.js → index-4LNRkvy6.js} +3 -3
- package/dist/{index-CDFDjyHa.js → index-BHUK6MwQ.js} +1794 -1784
- package/dist/{index-C2Wkg1b5.js → index-BIdcTXZW.js} +3 -3
- package/dist/index-BVEvns4M.js +2858 -0
- package/dist/{index-m8V5TniT.js → index-BVh0W8ck.js} +15861 -15586
- package/dist/{index-C4-Sn2rx.js → index-C0rbeCoZ.js} +12 -12
- package/dist/{index-8gCovDDT.js → index-C6jp_1-U.js} +6 -6
- package/dist/index-CQSTQAPg.js +112 -0
- package/dist/{index-lftFkqfI.js → index-CTKf6h2u.js} +4 -4
- package/dist/{index-Ot_5dG_I.js → index-Cf7WJqfM.js} +20 -16
- package/dist/{index-Bw0a0nRQ.js → index-Cip94Q-G.js} +3 -3
- package/dist/{index-DKeYG0Fu.js → index-CrIIInfs.js} +4 -4
- package/dist/{index-UjMCPXHz.js → index-DbEvwIck.js} +3 -3
- package/dist/{index-CLWgeKwr.js → index-DtVBFjaJ.js} +2 -2
- package/dist/{index-CGWttFLb.js → index-Dvhocfyo.js} +4 -4
- package/dist/index-DyE5noq6.js +118 -0
- package/dist/{index-DHXxiZa9.js → index-KqKj9E7y.js} +3 -3
- package/dist/{index-aw72ID7y.js → index-NPxrK-81.js} +1 -1
- package/dist/{index-CinRd7Nz.js → index-VY-pgcyl.js} +1 -1
- package/dist/{index-DJOyOVn_.js → index-VxO9i5r6.js} +1 -1
- package/dist/{index-DniCNHNJ.js → index-_gGu4e-w.js} +1 -1
- package/dist/{index-C3B7CbHo.js → index-bsGAZKaU.js} +624 -613
- package/dist/{index-Dtm6ORr2.js → index-eGX5rkV8.js} +5 -5
- package/dist/{index-DET70T3j.js → index-i6Ejgpao.js} +1 -1
- package/dist/index-ncjLe3A0.js +93 -0
- package/dist/index.js +1 -1
- package/dist/{instance-f3C-1qYl.js → instance-CbkHlDr4.js} +1 -1
- package/dist/menuPermission-BWqugXIc.js +60 -0
- package/dist/pages.js +1 -1
- package/dist/schedule-BRvmKoDG.js +587 -0
- package/dist/{send-default-agent-team-message-d_ECdczr.js → send-default-agent-team-message-8wnVWO7H.js} +1 -1
- package/dist/{sso-user-HcsSzg8P.js → sso-user-QZNVhjpR.js} +1 -1
- package/dist/{training-DnNQN0An.js → training-DYo1pvX7.js} +1 -1
- package/dist/{useAppStore-kRZEA5WZ.js → useAppStore-BGOxWep2.js} +6 -2
- package/dist/{webide-BcRzJX-h.js → webide-CWTbQs4I.js} +4 -4
- package/dist/z-team-component.css +2 -2
- package/package.json +1 -1
- package/dist/SystemShell-XnTCunV0.js +0 -907
- package/dist/index-BPOiMJa1.js +0 -2841
- package/dist/index-C0EIMJI2.js +0 -112
- package/dist/index-DRrBkbr_.js +0 -100
- package/dist/schedule-DfkgwPdE.js +0 -497
|
@@ -1,907 +0,0 @@
|
|
|
1
|
-
import { jsxs as u, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { useNavigate as ne, useLocation as E, Navigate as d } from "react-router-dom";
|
|
3
|
-
import re, { useMemo as v, useState as M, useEffect as H, Suspense as le, lazy as A } from "react";
|
|
4
|
-
import { DownOutlined as K, RightOutlined as U, AppstoreOutlined as ae, UserOutlined as pe, SafetyCertificateOutlined as B, CloudOutlined as j, DeploymentUnitOutlined as F, AuditOutlined as W, CodeOutlined as z, FolderOpenOutlined as ue, DesktopOutlined as oe, DashboardOutlined as L, ProfileOutlined as X, BookOutlined as me, ApartmentOutlined as de, FileImageOutlined as he, FileTextOutlined as T, CalendarOutlined as I, ApiOutlined as be, ProjectOutlined as ce, ClusterOutlined as ge, DatabaseOutlined as _e, TeamOutlined as ye, BarChartOutlined as Q } from "@ant-design/icons";
|
|
5
|
-
import { ProductApp as ke } from "@yuku123/z-product-component";
|
|
6
|
-
const fe = "_container_wbul9_7", we = "_sidebar_wbul9_17", Se = "_menuList_wbul9_37", ve = "_menuGroup_wbul9_44", Ae = "_menuGroupHeader_wbul9_48", De = "_menuGroupIcon_wbul9_66", Ne = "_menuGroupLabel_wbul9_75", Pe = "_menuGroupArrow_wbul9_80", Ce = "_menuSubList_wbul9_87", Ie = "_menuSubItem_wbul9_93", Me = "_menuSubItemActive_wbul9_110", Ge = "_menuSubItemIcon_wbul9_117", Oe = "_menuSubGroup_wbul9_132", Le = "_menuSubGroupHeader_wbul9_136", Te = "_menuSubGroupHeaderActive_wbul9_154", Ee = "_menuSubGroupLabel_wbul9_158", ze = "_main_wbul9_169", $e = "_detailPanel_wbul9_179", xe = "_detailHeader_wbul9_189", Re = "_detailIcon_wbul9_196", He = "_detailTitle_wbul9_209", je = "_detailDesc_wbul9_216", qe = "_detailAction_wbul9_223", Ke = "_goBtn_wbul9_228", Ue = "_emptyState_wbul9_248", s = {
|
|
7
|
-
container: fe,
|
|
8
|
-
sidebar: we,
|
|
9
|
-
menuList: Se,
|
|
10
|
-
menuGroup: ve,
|
|
11
|
-
menuGroupHeader: Ae,
|
|
12
|
-
menuGroupIcon: De,
|
|
13
|
-
menuGroupLabel: Ne,
|
|
14
|
-
menuGroupArrow: Pe,
|
|
15
|
-
menuSubList: Ce,
|
|
16
|
-
menuSubItem: Ie,
|
|
17
|
-
menuSubItemActive: Me,
|
|
18
|
-
menuSubItemIcon: Ge,
|
|
19
|
-
menuSubGroup: Oe,
|
|
20
|
-
menuSubGroupHeader: Le,
|
|
21
|
-
menuSubGroupHeaderActive: Te,
|
|
22
|
-
menuSubGroupLabel: Ee,
|
|
23
|
-
main: ze,
|
|
24
|
-
detailPanel: $e,
|
|
25
|
-
detailHeader: xe,
|
|
26
|
-
detailIcon: Re,
|
|
27
|
-
detailTitle: He,
|
|
28
|
-
detailDesc: je,
|
|
29
|
-
detailAction: qe,
|
|
30
|
-
goBtn: Ke,
|
|
31
|
-
emptyState: Ue
|
|
32
|
-
};
|
|
33
|
-
function q(n) {
|
|
34
|
-
return n.flatMap((t) => [t, ...q(t.children ?? [])]);
|
|
35
|
-
}
|
|
36
|
-
const Be = {
|
|
37
|
-
title: "测试中心",
|
|
38
|
-
icon: /* @__PURE__ */ e(L, {}),
|
|
39
|
-
items: [
|
|
40
|
-
{
|
|
41
|
-
key: "test-dashboard",
|
|
42
|
-
label: "测试总览",
|
|
43
|
-
icon: /* @__PURE__ */ e(L, {}),
|
|
44
|
-
path: "/test/qa/dashboard",
|
|
45
|
-
desc: "测试统计、趋势与套件健康度"
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
key: "test-design",
|
|
49
|
-
label: "用例与编排",
|
|
50
|
-
icon: /* @__PURE__ */ e(T, {}),
|
|
51
|
-
children: [
|
|
52
|
-
{
|
|
53
|
-
key: "test-case",
|
|
54
|
-
label: "测试用例",
|
|
55
|
-
icon: /* @__PURE__ */ e(T, {}),
|
|
56
|
-
path: "/test/qa/cases",
|
|
57
|
-
desc: "接口用例与断言模板"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
key: "test-suite",
|
|
61
|
-
label: "测试套件",
|
|
62
|
-
icon: /* @__PURE__ */ e(ge, {}),
|
|
63
|
-
path: "/test/qa/suites",
|
|
64
|
-
desc: "步骤编排与变量传递"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
key: "test-plan",
|
|
68
|
-
label: "测试计划",
|
|
69
|
-
icon: /* @__PURE__ */ e(ce, {}),
|
|
70
|
-
path: "/test/qa/plans",
|
|
71
|
-
desc: "套件组合与环境绑定"
|
|
72
|
-
}
|
|
73
|
-
]
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
key: "test-exec",
|
|
77
|
-
label: "执行与调度",
|
|
78
|
-
icon: /* @__PURE__ */ e(I, {}),
|
|
79
|
-
children: [
|
|
80
|
-
{
|
|
81
|
-
key: "test-run",
|
|
82
|
-
label: "执行记录",
|
|
83
|
-
icon: /* @__PURE__ */ e(I, {}),
|
|
84
|
-
path: "/test/qa/runs",
|
|
85
|
-
desc: "执行触发、状态与报告"
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
key: "test-schedule",
|
|
89
|
-
label: "定时调度",
|
|
90
|
-
icon: /* @__PURE__ */ e(I, {}),
|
|
91
|
-
path: "/test/qa/schedules",
|
|
92
|
-
desc: "cron 定时执行"
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
key: "test-e2e",
|
|
96
|
-
label: "E2E 测试",
|
|
97
|
-
icon: /* @__PURE__ */ e(oe, {}),
|
|
98
|
-
path: "/test/qa/e2e",
|
|
99
|
-
desc: "浏览器自动化测试"
|
|
100
|
-
}
|
|
101
|
-
]
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
key: "test-support",
|
|
105
|
-
label: "环境与工具",
|
|
106
|
-
icon: /* @__PURE__ */ e(j, {}),
|
|
107
|
-
children: [
|
|
108
|
-
{
|
|
109
|
-
key: "test-env",
|
|
110
|
-
label: "环境管理",
|
|
111
|
-
icon: /* @__PURE__ */ e(j, {}),
|
|
112
|
-
path: "/test/qa/envs",
|
|
113
|
-
desc: "多环境变量管理"
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
key: "test-mock",
|
|
117
|
-
label: "Mock 平台",
|
|
118
|
-
icon: /* @__PURE__ */ e(_e, {}),
|
|
119
|
-
path: "/test/mock",
|
|
120
|
-
desc: "API Mock 服务管理"
|
|
121
|
-
}
|
|
122
|
-
]
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
key: "test-eval",
|
|
126
|
-
label: "智能测评",
|
|
127
|
-
icon: /* @__PURE__ */ e(Q, {}),
|
|
128
|
-
children: [
|
|
129
|
-
{
|
|
130
|
-
key: "test-eval-start",
|
|
131
|
-
label: "发起测评",
|
|
132
|
-
icon: /* @__PURE__ */ e(L, {}),
|
|
133
|
-
path: "/test/evaluation/start",
|
|
134
|
-
desc: "Agent 质量测评"
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
key: "test-eval-schedule",
|
|
138
|
-
label: "自动测评",
|
|
139
|
-
icon: /* @__PURE__ */ e(I, {}),
|
|
140
|
-
path: "/test/evaluation/schedule",
|
|
141
|
-
desc: "定时批量测评"
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
key: "test-eval-group",
|
|
145
|
-
label: "群聊评测",
|
|
146
|
-
icon: /* @__PURE__ */ e(ye, {}),
|
|
147
|
-
path: "/test/evaluation/group",
|
|
148
|
-
desc: "群聊场景评测"
|
|
149
|
-
},
|
|
150
|
-
{
|
|
151
|
-
key: "test-eval-report",
|
|
152
|
-
label: "分析报告",
|
|
153
|
-
icon: /* @__PURE__ */ e(Q, {}),
|
|
154
|
-
path: "/test/evaluation/report",
|
|
155
|
-
desc: "测评结果分析"
|
|
156
|
-
}
|
|
157
|
-
]
|
|
158
|
-
}
|
|
159
|
-
]
|
|
160
|
-
}, se = [
|
|
161
|
-
{
|
|
162
|
-
title: "认证与权限",
|
|
163
|
-
icon: /* @__PURE__ */ e(B, {}),
|
|
164
|
-
items: [
|
|
165
|
-
{
|
|
166
|
-
key: "4a-account",
|
|
167
|
-
label: "账号管理",
|
|
168
|
-
icon: /* @__PURE__ */ e(pe, {}),
|
|
169
|
-
path: "/ctc/4a/account",
|
|
170
|
-
desc: "用户账号创建、编辑与状态管理"
|
|
171
|
-
},
|
|
172
|
-
{
|
|
173
|
-
key: "4a-role",
|
|
174
|
-
label: "角色管理",
|
|
175
|
-
icon: /* @__PURE__ */ e(B, {}),
|
|
176
|
-
path: "/ctc/4a/role",
|
|
177
|
-
desc: "角色定义与权限分配"
|
|
178
|
-
},
|
|
179
|
-
{
|
|
180
|
-
key: "4a-app",
|
|
181
|
-
label: "应用管理",
|
|
182
|
-
icon: /* @__PURE__ */ e(ae, {}),
|
|
183
|
-
path: "/ctc/4a/application",
|
|
184
|
-
desc: "应用注册、资源与权限配置"
|
|
185
|
-
},
|
|
186
|
-
{
|
|
187
|
-
key: "4a-tenant",
|
|
188
|
-
label: "租户管理",
|
|
189
|
-
icon: /* @__PURE__ */ e(j, {}),
|
|
190
|
-
path: "/ctc/4a/tenant",
|
|
191
|
-
desc: "多租户管理与配置"
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
key: "4a-org",
|
|
195
|
-
label: "组织管理",
|
|
196
|
-
icon: /* @__PURE__ */ e(F, {}),
|
|
197
|
-
path: "/ctc/4a/org",
|
|
198
|
-
desc: "组织架构与部门管理"
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
key: "4a-permission",
|
|
202
|
-
label: "权限管理",
|
|
203
|
-
icon: /* @__PURE__ */ e(W, {}),
|
|
204
|
-
path: "/ctc/4a/permission",
|
|
205
|
-
desc: "细粒度权限控制与审批"
|
|
206
|
-
}
|
|
207
|
-
]
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
title: "开发与工具",
|
|
211
|
-
icon: /* @__PURE__ */ e(z, {}),
|
|
212
|
-
items: [
|
|
213
|
-
{
|
|
214
|
-
key: "script",
|
|
215
|
-
label: "脚本中心",
|
|
216
|
-
icon: /* @__PURE__ */ e(z, {}),
|
|
217
|
-
path: "/script/manage",
|
|
218
|
-
desc: "DSL 脚本注册与执行"
|
|
219
|
-
},
|
|
220
|
-
{ key: "lc", label: "研发中心", icon: /* @__PURE__ */ e(z, {}), path: "/lc/apps", desc: "低代码应用开发与管理" },
|
|
221
|
-
{
|
|
222
|
-
key: "tool-curl",
|
|
223
|
-
label: "短链管理",
|
|
224
|
-
icon: /* @__PURE__ */ e(ue, {}),
|
|
225
|
-
path: "/z-tool/curl",
|
|
226
|
-
desc: "短链接创建与管理"
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
key: "tool-webide",
|
|
230
|
-
label: "WebIDE 容器",
|
|
231
|
-
icon: /* @__PURE__ */ e(oe, {}),
|
|
232
|
-
path: "/z-tool/webide",
|
|
233
|
-
desc: "在线 IDE 代码编辑器"
|
|
234
|
-
}
|
|
235
|
-
]
|
|
236
|
-
},
|
|
237
|
-
{
|
|
238
|
-
title: "产品认知",
|
|
239
|
-
icon: /* @__PURE__ */ e(X, {}),
|
|
240
|
-
items: [
|
|
241
|
-
{
|
|
242
|
-
key: "product-board",
|
|
243
|
-
label: "产品全景",
|
|
244
|
-
icon: /* @__PURE__ */ e(L, {}),
|
|
245
|
-
path: "/z-product/board",
|
|
246
|
-
desc: "业务/产品/研发三线可见的全量认知(术语·模型·链路·设计稿·缺口)"
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
key: "product-blueprint",
|
|
250
|
-
label: "产品蓝图",
|
|
251
|
-
icon: /* @__PURE__ */ e(X, {}),
|
|
252
|
-
path: "/z-product/blueprint",
|
|
253
|
-
desc: "AI 的唯一入口:后端实时投影的全量认知快照"
|
|
254
|
-
},
|
|
255
|
-
{
|
|
256
|
-
key: "product-glossary",
|
|
257
|
-
label: "统一语言",
|
|
258
|
-
icon: /* @__PURE__ */ e(me, {}),
|
|
259
|
-
path: "/z-product/glossary",
|
|
260
|
-
desc: "术语仲裁表:标准词/别名/适用范围/反例"
|
|
261
|
-
},
|
|
262
|
-
{
|
|
263
|
-
key: "product-concept",
|
|
264
|
-
label: "领域模型",
|
|
265
|
-
icon: /* @__PURE__ */ e(de, {}),
|
|
266
|
-
path: "/z-product/concept-model",
|
|
267
|
-
desc: "概念与关系画布(四种投影)"
|
|
268
|
-
},
|
|
269
|
-
{
|
|
270
|
-
key: "product-scenarios",
|
|
271
|
-
label: "用户链路",
|
|
272
|
-
icon: /* @__PURE__ */ e(F, {}),
|
|
273
|
-
path: "/z-product/scenarios",
|
|
274
|
-
desc: "端到端场景:步骤引用领域概念"
|
|
275
|
-
},
|
|
276
|
-
{
|
|
277
|
-
key: "product-designs",
|
|
278
|
-
label: "设计稿 ⇄ 模型",
|
|
279
|
-
icon: /* @__PURE__ */ e(he, {}),
|
|
280
|
-
path: "/z-product/designs",
|
|
281
|
-
desc: "设计与认知的双向收敛回路"
|
|
282
|
-
}
|
|
283
|
-
]
|
|
284
|
-
},
|
|
285
|
-
{
|
|
286
|
-
title: "业务流程",
|
|
287
|
-
icon: /* @__PURE__ */ e(T, {}),
|
|
288
|
-
items: [
|
|
289
|
-
{
|
|
290
|
-
key: "workflow",
|
|
291
|
-
label: "流程中心",
|
|
292
|
-
icon: /* @__PURE__ */ e(W, {}),
|
|
293
|
-
path: "/workflow/dashboard",
|
|
294
|
-
desc: "工作流定义与审批管理"
|
|
295
|
-
},
|
|
296
|
-
{
|
|
297
|
-
key: "task",
|
|
298
|
-
label: "任务中心",
|
|
299
|
-
icon: /* @__PURE__ */ e(T, {}),
|
|
300
|
-
path: "/task/dashboard",
|
|
301
|
-
desc: "任务创建、分配与跟踪"
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
key: "schedule",
|
|
305
|
-
label: "调度中心",
|
|
306
|
-
icon: /* @__PURE__ */ e(I, {}),
|
|
307
|
-
path: "/schedule/dashboard",
|
|
308
|
-
desc: "定时任务调度与管理"
|
|
309
|
-
},
|
|
310
|
-
{
|
|
311
|
-
key: "subscribe",
|
|
312
|
-
label: "订阅中心",
|
|
313
|
-
icon: /* @__PURE__ */ e(be, {}),
|
|
314
|
-
path: "/subscribe/list",
|
|
315
|
-
desc: "第三方数据订阅与拉取"
|
|
316
|
-
},
|
|
317
|
-
{
|
|
318
|
-
key: "project",
|
|
319
|
-
label: "项目中心",
|
|
320
|
-
icon: /* @__PURE__ */ e(ce, {}),
|
|
321
|
-
path: "/project/list",
|
|
322
|
-
desc: "项目创建与进度管理"
|
|
323
|
-
}
|
|
324
|
-
]
|
|
325
|
-
}
|
|
326
|
-
], $ = [...se, Be];
|
|
327
|
-
function Fe({
|
|
328
|
-
activePathOverride: n,
|
|
329
|
-
menuOnly: t = !1,
|
|
330
|
-
visibleGroups: o
|
|
331
|
-
} = {}) {
|
|
332
|
-
const p = ne(), { pathname: b } = E(), r = v(
|
|
333
|
-
() => o ? $.filter((c) => o.includes(c.title)) : se,
|
|
334
|
-
[o]
|
|
335
|
-
), [g, _] = M(
|
|
336
|
-
new Set($.map((c) => c.title))
|
|
337
|
-
), [l, h] = M(
|
|
338
|
-
() => new Set(
|
|
339
|
-
$.flatMap((c) => c.items).filter((c) => c.children).map((c) => c.key)
|
|
340
|
-
)
|
|
341
|
-
), m = v(() => {
|
|
342
|
-
var k;
|
|
343
|
-
const c = n ?? b;
|
|
344
|
-
return ((k = r.flatMap((i) => q(i.items)).find(
|
|
345
|
-
(i) => i.path === c
|
|
346
|
-
)) == null ? void 0 : k.key) ?? null;
|
|
347
|
-
}, [n, b, r]), N = (c) => {
|
|
348
|
-
_((k) => {
|
|
349
|
-
const i = new Set(k);
|
|
350
|
-
return i.has(c) ? i.delete(c) : i.add(c), i;
|
|
351
|
-
});
|
|
352
|
-
}, P = (c) => {
|
|
353
|
-
h((k) => {
|
|
354
|
-
const i = new Set(k);
|
|
355
|
-
return i.has(c) ? i.delete(c) : i.add(c), i;
|
|
356
|
-
});
|
|
357
|
-
}, C = (c) => {
|
|
358
|
-
c.path && p(c.path);
|
|
359
|
-
}, S = r.flatMap((c) => q(c.items)).find(
|
|
360
|
-
(c) => c.key === m
|
|
361
|
-
);
|
|
362
|
-
return /* @__PURE__ */ u("div", { className: s.container, children: [
|
|
363
|
-
/* @__PURE__ */ e("aside", { className: s.sidebar, children: /* @__PURE__ */ e("nav", { className: s.menuList, children: r.map((c) => {
|
|
364
|
-
const k = g.has(c.title);
|
|
365
|
-
return /* @__PURE__ */ u("div", { className: s.menuGroup, children: [
|
|
366
|
-
/* @__PURE__ */ u(
|
|
367
|
-
"div",
|
|
368
|
-
{
|
|
369
|
-
className: s.menuGroupHeader,
|
|
370
|
-
onClick: () => N(c.title),
|
|
371
|
-
children: [
|
|
372
|
-
/* @__PURE__ */ e("span", { className: s.menuGroupIcon, children: c.icon }),
|
|
373
|
-
/* @__PURE__ */ e("span", { className: s.menuGroupLabel, children: c.title }),
|
|
374
|
-
/* @__PURE__ */ e("span", { className: s.menuGroupArrow, children: k ? /* @__PURE__ */ e(K, {}) : /* @__PURE__ */ e(U, {}) })
|
|
375
|
-
]
|
|
376
|
-
}
|
|
377
|
-
),
|
|
378
|
-
k && /* @__PURE__ */ e("ul", { className: s.menuSubList, children: c.items.map(
|
|
379
|
-
(i) => i.children ? (
|
|
380
|
-
/* 子菜单分组头 — 可折叠; active 项落在其中时高亮 */
|
|
381
|
-
/* @__PURE__ */ u("li", { className: s.menuSubGroup, children: [
|
|
382
|
-
/* @__PURE__ */ u(
|
|
383
|
-
"div",
|
|
384
|
-
{
|
|
385
|
-
className: `${s.menuSubGroupHeader} ${i.children.some((f) => f.key === m) ? s.menuSubGroupHeaderActive : ""}`,
|
|
386
|
-
onClick: () => P(i.key),
|
|
387
|
-
children: [
|
|
388
|
-
/* @__PURE__ */ e("span", { className: s.menuGroupIcon, children: i.icon }),
|
|
389
|
-
/* @__PURE__ */ e("span", { className: s.menuSubGroupLabel, children: i.label }),
|
|
390
|
-
/* @__PURE__ */ e("span", { className: s.menuGroupArrow, children: l.has(i.key) ? /* @__PURE__ */ e(K, {}) : /* @__PURE__ */ e(U, {}) })
|
|
391
|
-
]
|
|
392
|
-
}
|
|
393
|
-
),
|
|
394
|
-
l.has(i.key) && /* @__PURE__ */ e("ul", { className: s.menuSubList, children: i.children.map((f) => /* @__PURE__ */ u(
|
|
395
|
-
"li",
|
|
396
|
-
{
|
|
397
|
-
className: `${s.menuSubItem} ${m === f.key ? s.menuSubItemActive : ""}`,
|
|
398
|
-
onClick: () => C(f),
|
|
399
|
-
children: [
|
|
400
|
-
/* @__PURE__ */ e(
|
|
401
|
-
"span",
|
|
402
|
-
{
|
|
403
|
-
className: s.menuSubItemIcon,
|
|
404
|
-
children: f.icon
|
|
405
|
-
}
|
|
406
|
-
),
|
|
407
|
-
/* @__PURE__ */ e("span", { children: f.label })
|
|
408
|
-
]
|
|
409
|
-
},
|
|
410
|
-
f.key
|
|
411
|
-
)) })
|
|
412
|
-
] }, i.key)
|
|
413
|
-
) : /* @__PURE__ */ u(
|
|
414
|
-
"li",
|
|
415
|
-
{
|
|
416
|
-
className: `${s.menuSubItem} ${m === i.key ? s.menuSubItemActive : ""}`,
|
|
417
|
-
onClick: () => C(i),
|
|
418
|
-
children: [
|
|
419
|
-
/* @__PURE__ */ e("span", { className: s.menuSubItemIcon, children: i.icon }),
|
|
420
|
-
/* @__PURE__ */ e("span", { children: i.label })
|
|
421
|
-
]
|
|
422
|
-
},
|
|
423
|
-
i.key
|
|
424
|
-
)
|
|
425
|
-
) })
|
|
426
|
-
] }, c.title);
|
|
427
|
-
}) }) }),
|
|
428
|
-
t ? null : /* @__PURE__ */ e("main", { className: s.main, children: S ? /* @__PURE__ */ u("div", { className: s.detailPanel, children: [
|
|
429
|
-
/* @__PURE__ */ u("div", { className: s.detailHeader, children: [
|
|
430
|
-
/* @__PURE__ */ e("div", { className: s.detailIcon, children: S.icon }),
|
|
431
|
-
/* @__PURE__ */ u("div", { children: [
|
|
432
|
-
/* @__PURE__ */ e("h2", { className: s.detailTitle, children: S.label }),
|
|
433
|
-
/* @__PURE__ */ e("p", { className: s.detailDesc, children: S.desc })
|
|
434
|
-
] })
|
|
435
|
-
] }),
|
|
436
|
-
/* @__PURE__ */ e("div", { className: s.detailAction, children: /* @__PURE__ */ u(
|
|
437
|
-
"button",
|
|
438
|
-
{
|
|
439
|
-
className: s.goBtn,
|
|
440
|
-
onClick: () => p(S.path),
|
|
441
|
-
children: [
|
|
442
|
-
"进入 ",
|
|
443
|
-
S.label
|
|
444
|
-
]
|
|
445
|
-
}
|
|
446
|
-
) })
|
|
447
|
-
] }) : /* @__PURE__ */ u("div", { className: s.emptyState, children: [
|
|
448
|
-
/* @__PURE__ */ e(ae, { style: { fontSize: 48, color: "#ccc" } }),
|
|
449
|
-
/* @__PURE__ */ e("p", { children: "点击左侧菜单进入对应功能模块" })
|
|
450
|
-
] }) })
|
|
451
|
-
] });
|
|
452
|
-
}
|
|
453
|
-
const We = 30, Xe = ["/api/", "/kapi/", "/z-team/", "/auth/", "/sso/"], G = "__zteam_api_error_monitor__", O = globalThis;
|
|
454
|
-
function x(n) {
|
|
455
|
-
return n.startsWith(location.origin) && (n = n.slice(location.origin.length)), Xe.some((t) => n.includes(t));
|
|
456
|
-
}
|
|
457
|
-
function R(n) {
|
|
458
|
-
const t = O[G];
|
|
459
|
-
if (!t) return;
|
|
460
|
-
t.failures.push(n), t.failures.length > We && t.failures.shift();
|
|
461
|
-
const o = [...t.failures];
|
|
462
|
-
t.listeners.forEach((p) => p(o));
|
|
463
|
-
}
|
|
464
|
-
function Qe() {
|
|
465
|
-
var n;
|
|
466
|
-
return ((n = O[G]) == null ? void 0 : n.failures) ?? [];
|
|
467
|
-
}
|
|
468
|
-
function Ye(n) {
|
|
469
|
-
const t = O[G];
|
|
470
|
-
return t ? (t.listeners.add(n), n(t.failures), () => t.listeners.delete(n)) : () => {
|
|
471
|
-
};
|
|
472
|
-
}
|
|
473
|
-
function Y(n) {
|
|
474
|
-
return n >= 400 && n !== 401;
|
|
475
|
-
}
|
|
476
|
-
function Ze() {
|
|
477
|
-
if (O[G]) return;
|
|
478
|
-
const n = { failures: [], listeners: /* @__PURE__ */ new Set() };
|
|
479
|
-
O[G] = n;
|
|
480
|
-
const t = window.fetch.bind(window);
|
|
481
|
-
window.fetch = async (...b) => {
|
|
482
|
-
var l;
|
|
483
|
-
const r = b[0], g = typeof r == "string" ? r : r instanceof URL ? r.href : r.url, _ = (((l = b[1]) == null ? void 0 : l.method) ?? (typeof r == "object" && r && "method" in r ? r.method : void 0) ?? "GET").toUpperCase();
|
|
484
|
-
try {
|
|
485
|
-
const h = await t(...b);
|
|
486
|
-
return Y(h.status) && x(g) && R({ method: _, url: g, status: h.status, route: location.pathname, at: Date.now() }), h;
|
|
487
|
-
} catch (h) {
|
|
488
|
-
throw x(g) && R({ method: _, url: g, status: 0, route: location.pathname, at: Date.now() }), h;
|
|
489
|
-
}
|
|
490
|
-
};
|
|
491
|
-
const o = XMLHttpRequest.prototype.open, p = XMLHttpRequest.prototype.send;
|
|
492
|
-
XMLHttpRequest.prototype.open = function(b, r, ...g) {
|
|
493
|
-
const _ = o.call(this, b, r, ...g);
|
|
494
|
-
return this.__url = String(r), this.__method = String(b || "GET").toUpperCase(), _;
|
|
495
|
-
}, XMLHttpRequest.prototype.send = function(...b) {
|
|
496
|
-
const r = p.apply(this, b), g = this, _ = g.__url;
|
|
497
|
-
if (_ && x(_)) {
|
|
498
|
-
const l = g.__method ?? "GET";
|
|
499
|
-
this.addEventListener("loadend", () => {
|
|
500
|
-
Y(this.status) && R({ method: l, url: _, status: this.status, route: location.pathname, at: Date.now() });
|
|
501
|
-
});
|
|
502
|
-
}
|
|
503
|
-
return r;
|
|
504
|
-
};
|
|
505
|
-
}
|
|
506
|
-
const Ve = "_banner_2v7mc_1", Je = "_dot_2v7mc_18", et = "_text_2v7mc_26", tt = "_retry_2v7mc_31", nt = "_dismiss_2v7mc_44", at = "_details_2v7mc_57", ot = "_method_2v7mc_85", ct = "_status_2v7mc_86", st = "_statusNet_2v7mc_87", it = "_url_2v7mc_88", w = {
|
|
507
|
-
banner: Ve,
|
|
508
|
-
dot: Je,
|
|
509
|
-
text: et,
|
|
510
|
-
retry: tt,
|
|
511
|
-
dismiss: nt,
|
|
512
|
-
details: at,
|
|
513
|
-
method: ot,
|
|
514
|
-
status: ct,
|
|
515
|
-
statusNet: st,
|
|
516
|
-
url: it
|
|
517
|
-
}, rt = () => {
|
|
518
|
-
const { pathname: n } = E(), [t, o] = M(Qe()), [p, b] = M(0);
|
|
519
|
-
H(() => Ye(o), []), H(() => {
|
|
520
|
-
b(0);
|
|
521
|
-
}, [n]);
|
|
522
|
-
const r = v(
|
|
523
|
-
() => t.filter((l) => l.route === n && l.at >= p),
|
|
524
|
-
[t, n, p]
|
|
525
|
-
), g = v(() => {
|
|
526
|
-
const l = /* @__PURE__ */ new Map();
|
|
527
|
-
return r.forEach((h) => {
|
|
528
|
-
const m = l.get(h.status) ?? { status: h.status, count: 0, urls: [] };
|
|
529
|
-
m.count += 1, m.urls.includes(h.url) || m.urls.push(h.url), l.set(h.status, m);
|
|
530
|
-
}), [...l.values()].sort((h, m) => h.status - m.status);
|
|
531
|
-
}, [r]);
|
|
532
|
-
if (r.length === 0) return null;
|
|
533
|
-
const _ = g.map((l) => `${l.status === 0 ? "网络错误" : l.status} ×${l.count}`).join(" · ");
|
|
534
|
-
return /* @__PURE__ */ u("div", { className: w.banner, role: "alert", "data-testid": "page-api-error-notice", children: [
|
|
535
|
-
/* @__PURE__ */ e("span", { className: w.dot }),
|
|
536
|
-
/* @__PURE__ */ u("span", { className: w.text, children: [
|
|
537
|
-
"本页有 ",
|
|
538
|
-
r.length,
|
|
539
|
-
" 个接口失败(",
|
|
540
|
-
_,
|
|
541
|
-
"),页面可能不完整。"
|
|
542
|
-
] }),
|
|
543
|
-
/* @__PURE__ */ e("button", { type: "button", className: w.retry, onClick: () => location.reload(), children: "重试" }),
|
|
544
|
-
/* @__PURE__ */ u("details", { className: w.details, children: [
|
|
545
|
-
/* @__PURE__ */ e("summary", { children: "失败明细" }),
|
|
546
|
-
/* @__PURE__ */ e("ul", { children: r.map((l, h) => /* @__PURE__ */ u("li", { children: [
|
|
547
|
-
/* @__PURE__ */ e("span", { className: w.method, children: l.method }),
|
|
548
|
-
/* @__PURE__ */ e("span", { className: l.status === 0 ? w.statusNet : w.status, children: l.status === 0 ? "网络" : l.status }),
|
|
549
|
-
/* @__PURE__ */ e("span", { className: w.url, children: l.url })
|
|
550
|
-
] }, `${l.at}-${h}`)) })
|
|
551
|
-
] }),
|
|
552
|
-
/* @__PURE__ */ e(
|
|
553
|
-
"button",
|
|
554
|
-
{
|
|
555
|
-
type: "button",
|
|
556
|
-
className: w.dismiss,
|
|
557
|
-
title: "本页浏览期间不再显示",
|
|
558
|
-
onClick: () => b(Date.now() + 1),
|
|
559
|
-
children: "忽略"
|
|
560
|
-
}
|
|
561
|
-
)
|
|
562
|
-
] });
|
|
563
|
-
}, lt = "_wrap_2gcw5_1", pt = "_card_2gcw5_9", ut = "_badge_2gcw5_19", mt = "_title_2gcw5_41", dt = "_desc_2gcw5_48", ht = "_actions_2gcw5_55", bt = "_primary_2gcw5_63", gt = "_secondary_2gcw5_75", _t = "_details_2gcw5_90", yt = "_pre_2gcw5_102", kt = "_copy_2gcw5_117", ft = "_compact_2gcw5_127", y = {
|
|
564
|
-
wrap: lt,
|
|
565
|
-
card: pt,
|
|
566
|
-
badge: ut,
|
|
567
|
-
title: mt,
|
|
568
|
-
desc: dt,
|
|
569
|
-
actions: ht,
|
|
570
|
-
primary: bt,
|
|
571
|
-
secondary: gt,
|
|
572
|
-
details: _t,
|
|
573
|
-
pre: yt,
|
|
574
|
-
copy: kt,
|
|
575
|
-
compact: ft
|
|
576
|
-
};
|
|
577
|
-
function ie(n) {
|
|
578
|
-
const t = n, o = `${(t == null ? void 0 : t.name) ?? ""} ${(t == null ? void 0 : t.message) ?? ""} ${typeof n == "string" ? n : ""}`;
|
|
579
|
-
return /ChunkLoadError|Loading chunk|Failed to fetch dynamically imported module|Importing a module script failed|error loading dynamically imported module/i.test(o);
|
|
580
|
-
}
|
|
581
|
-
function wt(n) {
|
|
582
|
-
const { status: t, error: o } = n;
|
|
583
|
-
return t === 401 ? {
|
|
584
|
-
kind: "unauthorized",
|
|
585
|
-
status: t,
|
|
586
|
-
badge: "401",
|
|
587
|
-
title: "登录已失效",
|
|
588
|
-
description: "当前会话已过期或未建立,请重新登录后继续。重登后会回到这个页面。"
|
|
589
|
-
} : t === 403 ? {
|
|
590
|
-
kind: "forbidden",
|
|
591
|
-
status: t,
|
|
592
|
-
badge: "403",
|
|
593
|
-
title: "没有访问权限",
|
|
594
|
-
description: "当前账号无权访问该功能。如需开通,请联系管理员分配权限。"
|
|
595
|
-
} : t === 404 ? {
|
|
596
|
-
kind: "not-found",
|
|
597
|
-
status: t,
|
|
598
|
-
badge: "404",
|
|
599
|
-
title: "功能接口未就绪",
|
|
600
|
-
description: "这个页面要用的后端接口还没有部署,或前后端路径对不上。可以重试;若持续如此,请把技术详情发给运维确认版本。"
|
|
601
|
-
} : t && t >= 500 ? {
|
|
602
|
-
kind: "server",
|
|
603
|
-
status: t,
|
|
604
|
-
badge: String(t),
|
|
605
|
-
title: "服务暂时不可用",
|
|
606
|
-
description: "后端返回了错误。稍后重试;如果反复出现,请把技术详情发给运维。"
|
|
607
|
-
} : t === 0 ? {
|
|
608
|
-
kind: "network",
|
|
609
|
-
status: t,
|
|
610
|
-
badge: "!",
|
|
611
|
-
title: "网络不可用",
|
|
612
|
-
description: "请求没有到达后端。请检查网络,或确认本地后端服务是否已启动。"
|
|
613
|
-
} : ie(o) ? {
|
|
614
|
-
kind: "chunk",
|
|
615
|
-
badge: "⟳",
|
|
616
|
-
title: "页面资源加载失败",
|
|
617
|
-
description: "可能刚发布了新版本,旧页面资源已被替换。刷新页面即可拿到新资源。"
|
|
618
|
-
} : o != null ? {
|
|
619
|
-
kind: "render",
|
|
620
|
-
badge: "!",
|
|
621
|
-
title: "页面渲染出错",
|
|
622
|
-
description: "这个页面遇到了未预期的错误,已被拦截,不影响其他页面。可以重试;仍然失败请把技术详情发给研发。"
|
|
623
|
-
} : {
|
|
624
|
-
kind: "unknown",
|
|
625
|
-
badge: "!",
|
|
626
|
-
title: "页面加载失败",
|
|
627
|
-
description: "发生了未知错误。请重试,或返回首页换个入口再试。"
|
|
628
|
-
};
|
|
629
|
-
}
|
|
630
|
-
function St(n, t) {
|
|
631
|
-
const o = [];
|
|
632
|
-
if (o.push(`页面:${typeof location < "u" ? location.pathname + location.search : "-"}`), o.push(`时间:${(/* @__PURE__ */ new Date()).toISOString()}`), n != null && o.push(`HTTP:${n}`), t != null) {
|
|
633
|
-
const p = t;
|
|
634
|
-
p != null && p.name && o.push(`错误名:${String(p.name)}`), p != null && p.message && o.push(`消息:${String(p.message)}`), p != null && p.stack ? o.push(`堆栈:
|
|
635
|
-
${String(p.stack)}`) : typeof t != "object" && o.push(`原文:${String(t)}`);
|
|
636
|
-
}
|
|
637
|
-
return o.join(`
|
|
638
|
-
`).slice(0, 4e3);
|
|
639
|
-
}
|
|
640
|
-
const vt = ({
|
|
641
|
-
status: n,
|
|
642
|
-
error: t,
|
|
643
|
-
title: o,
|
|
644
|
-
description: p,
|
|
645
|
-
retry: b,
|
|
646
|
-
retryText: r,
|
|
647
|
-
extra: g,
|
|
648
|
-
showHome: _ = !0,
|
|
649
|
-
compact: l = !1,
|
|
650
|
-
className: h
|
|
651
|
-
}) => {
|
|
652
|
-
const m = v(() => wt({ status: n, error: t }), [n, t]), [N, P] = M(!1), C = v(() => St(n, t), [n, t]);
|
|
653
|
-
H(() => {
|
|
654
|
-
if (!N) return;
|
|
655
|
-
const f = setTimeout(() => P(!1), 2e3);
|
|
656
|
-
return () => clearTimeout(f);
|
|
657
|
-
}, [N]);
|
|
658
|
-
const S = async () => {
|
|
659
|
-
try {
|
|
660
|
-
await navigator.clipboard.writeText(C), P(!0);
|
|
661
|
-
} catch {
|
|
662
|
-
P(!1);
|
|
663
|
-
}
|
|
664
|
-
}, c = () => {
|
|
665
|
-
const f = encodeURIComponent(location.pathname + location.search);
|
|
666
|
-
location.assign(`/login?redirect=${f}`);
|
|
667
|
-
}, k = () => b ? /* @__PURE__ */ e("button", { type: "button", className: y.primary, onClick: b, children: r || "重试" }) : m.kind === "chunk" ? /* @__PURE__ */ e("button", { type: "button", className: y.primary, onClick: () => location.reload(), children: "刷新页面" }) : m.kind === "unauthorized" ? /* @__PURE__ */ e("button", { type: "button", className: y.primary, onClick: c, children: "重新登录" }) : null, i = t != null || n != null;
|
|
668
|
-
return /* @__PURE__ */ e(
|
|
669
|
-
"div",
|
|
670
|
-
{
|
|
671
|
-
className: [y.wrap, l ? y.compact : "", h || ""].filter(Boolean).join(" "),
|
|
672
|
-
role: "alert",
|
|
673
|
-
"data-error-kind": m.kind,
|
|
674
|
-
children: /* @__PURE__ */ u("div", { className: y.card, children: [
|
|
675
|
-
/* @__PURE__ */ e("div", { className: y.badge, "data-kind": m.kind, children: m.badge }),
|
|
676
|
-
/* @__PURE__ */ e("h2", { className: y.title, children: o || m.title }),
|
|
677
|
-
/* @__PURE__ */ e("p", { className: y.desc, children: p || m.description }),
|
|
678
|
-
/* @__PURE__ */ u("div", { className: y.actions, children: [
|
|
679
|
-
k(),
|
|
680
|
-
g,
|
|
681
|
-
_ && m.kind !== "unauthorized" && /* @__PURE__ */ e("a", { className: y.secondary, href: "/", children: "返回首页" })
|
|
682
|
-
] }),
|
|
683
|
-
i && /* @__PURE__ */ u("details", { className: y.details, children: [
|
|
684
|
-
/* @__PURE__ */ e("summary", { children: "技术详情" }),
|
|
685
|
-
/* @__PURE__ */ e("pre", { className: y.pre, children: C }),
|
|
686
|
-
/* @__PURE__ */ e("button", { type: "button", className: y.copy, onClick: S, children: N ? "已复制" : "复制详情" })
|
|
687
|
-
] })
|
|
688
|
-
] })
|
|
689
|
-
}
|
|
690
|
-
);
|
|
691
|
-
};
|
|
692
|
-
class At extends re.Component {
|
|
693
|
-
constructor() {
|
|
694
|
-
super(...arguments), this.state = { error: null, resetKey: this.props.resetKey };
|
|
695
|
-
}
|
|
696
|
-
static getDerivedStateFromError(t) {
|
|
697
|
-
return { error: t };
|
|
698
|
-
}
|
|
699
|
-
static getDerivedStateFromProps(t, o) {
|
|
700
|
-
return o.error && t.resetKey !== o.resetKey ? { error: null, resetKey: t.resetKey } : t.resetKey !== o.resetKey ? { resetKey: t.resetKey } : null;
|
|
701
|
-
}
|
|
702
|
-
render() {
|
|
703
|
-
const { error: t } = this.state;
|
|
704
|
-
if (t) {
|
|
705
|
-
const o = ie(t);
|
|
706
|
-
return /* @__PURE__ */ e(
|
|
707
|
-
vt,
|
|
708
|
-
{
|
|
709
|
-
error: t,
|
|
710
|
-
retry: () => this.setState({ error: null }),
|
|
711
|
-
retryText: o ? "重试加载" : "重试渲染"
|
|
712
|
-
}
|
|
713
|
-
);
|
|
714
|
-
}
|
|
715
|
-
return this.props.children;
|
|
716
|
-
}
|
|
717
|
-
}
|
|
718
|
-
const Dt = "_shell_10jrt_6", Nt = "_main_10jrt_21", Pt = "_empty_10jrt_31", Ct = "_emptyIcon_10jrt_41", It = "_emptyText_10jrt_46", D = {
|
|
719
|
-
shell: Dt,
|
|
720
|
-
main: Nt,
|
|
721
|
-
empty: Pt,
|
|
722
|
-
emptyIcon: Ct,
|
|
723
|
-
emptyText: It
|
|
724
|
-
};
|
|
725
|
-
Ze();
|
|
726
|
-
const a = (n, t) => A(() => n().then((o) => ({ default: o[t] }))), Mt = a(() => import("@yuku123/z-ctc-component"), "AccountManagement"), Gt = a(() => import("@yuku123/z-ctc-component"), "ApplicationManagement"), Ot = a(() => import("@yuku123/z-ctc-component"), "AuditPage"), Lt = a(() => import("@yuku123/z-ctc-component"), "CtcOverview"), Tt = a(() => import("@yuku123/z-ctc-component"), "DictPage"), Et = a(() => import("@yuku123/z-ctc-component"), "OrgPage"), zt = a(() => import("@yuku123/z-ctc-component"), "PermissionManagement"), $t = a(() => import("@yuku123/z-ctc-component"), "RoleManagement"), Z = a(() => import("@yuku123/z-ctc-component"), "SurlManagement"), xt = a(() => import("@yuku123/z-ctc-component"), "TenantManagement"), Rt = a(() => import("@yuku123/z-agent-component"), "AgentAppList"), Ht = a(() => import("@yuku123/z-agent-component"), "AgentDashboard"), jt = a(() => import("@yuku123/z-agent-component"), "AkManage"), qt = a(() => import("@yuku123/z-agent-component"), "BucketList"), Kt = a(() => import("@yuku123/z-agent-component"), "LlmManage"), Ut = a(() => import("@yuku123/z-agent-component"), "McpPage"), Bt = a(() => import("@yuku123/z-agent-component"), "ObjectBrowser"), Ft = a(() => import("@yuku123/z-agent-component"), "ScriptCenterPage"), Wt = a(() => import("@yuku123/z-agent-component"), "ScriptProductizationPage"), Xt = a(() => import("@yuku123/z-agent-component"), "SkillMarket"), Qt = a(() => import("./index-C4-Sn2rx.js"), "AgentTeamIM"), V = a(() => import("./index-C4-Sn2rx.js"), "DebugPlayground"), Yt = a(() => import("./index-C4-Sn2rx.js"), "Overview"), J = a(() => import("./index-C4-Sn2rx.js"), "Webide"), Zt = A(() => import("./OnboardingPage-D4ccf9Rj.js")), Vt = A(() => import("./InvitationManagementPage-DHomiF0D.js")), Jt = a(() => import("@yuku123/z-config-component"), "ConfigApp"), en = a(() => import("@yuku123/z-task-component"), "TaskApp"), tn = a(() => import("@yuku123/z-wf-component"), "WorkflowApp"), nn = a(() => import("@yuku123/z-schedule-component"), "ScheduleApp"), an = a(() => import("@yuku123/z-mist-component"), "MistApp"), on = a(() => import("@yuku123/z-meta-component"), "MetaApp"), cn = a(() => import("@yuku123/z-msg-component"), "MsgApp"), sn = a(() => import("@yuku123/z-rpc-component"), "RpcApp"), rn = A(() => import("./ComponentDoc-MWEULbua.js").then((n) => n.m)), ln = A(() => import("./ComponentDoc-MWEULbua.js").then((n) => n.n)), pn = a(() => import("@yuku123/z-config-component"), "ComponentDocPage"), un = a(() => import("@yuku123/z-task-component"), "ComponentDocPage"), mn = a(() => import("@yuku123/z-wf-component"), "ComponentDocPage"), dn = a(() => import("@yuku123/z-schedule-component"), "ComponentDocPage"), hn = a(() => import("@yuku123/z-mist-component"), "ComponentDocPage"), bn = a(() => import("@yuku123/z-meta-component"), "ComponentDocPage"), gn = a(() => import("@yuku123/z-msg-component"), "ComponentDocPage"), _n = a(() => import("@yuku123/z-rpc-component"), "ComponentDocPage"), yn = a(() => import("@yuku123/z-kb-component"), "ComponentDocPage"), kn = a(() => import("@yuku123/z-product-component"), "ComponentDocPage"), fn = a(() => import("@yuku123/z-oss-component"), "ComponentDocPage"), wn = a(() => import("@yuku123/z-vector-component"), "ComponentDocPage"), Sn = a(() => import("@yuku123/z-graph-component"), "ComponentDocPage"), vn = a(() => import("@yuku123/z-gw-component"), "ComponentDocPage"), An = a(() => import("@yuku123/z-cache-component"), "ComponentDocPage"), Dn = a(() => import("@yuku123/z-mq-component"), "ComponentDocPage"), Nn = a(() => import("@yuku123/z-ctc-component"), "ComponentDocPage"), Pn = a(() => import("@yuku123/z-agent-component"), "ComponentDocPage"), Cn = a(() => import("@yuku123/z-lc-component"), "ComponentDocPage"), In = a(() => import("@yuku123/z-qa-component"), "ComponentDocPage"), Mn = A(() => import("./ComponentDoc-MWEULbua.js").then((n) => n.l)), ee = A(() => import("@yuku123/z-qa-component"));
|
|
727
|
-
function Gn() {
|
|
728
|
-
return /* @__PURE__ */ u("div", { className: D.empty, children: [
|
|
729
|
-
/* @__PURE__ */ e("div", { className: D.emptyIcon, children: "📋" }),
|
|
730
|
-
/* @__PURE__ */ e("div", { className: D.emptyText, children: "请从左侧菜单选择模块" })
|
|
731
|
-
] });
|
|
732
|
-
}
|
|
733
|
-
function On() {
|
|
734
|
-
const { pathname: n } = E();
|
|
735
|
-
return /* @__PURE__ */ e(d, { to: n.replace(/^\/product/, "/z-product"), replace: !0 });
|
|
736
|
-
}
|
|
737
|
-
const te = [
|
|
738
|
-
// ─── 顶层 / 概览 ───
|
|
739
|
-
{ path: "/overview", element: /* @__PURE__ */ e(Yt, {}) },
|
|
740
|
-
// ─── 4A 中心 (/ctc/*) ───
|
|
741
|
-
{ path: "/ctc", element: /* @__PURE__ */ e(d, { to: "/ctc/4a/account", replace: !0 }) },
|
|
742
|
-
{ path: "/ctc/4a/account", element: /* @__PURE__ */ e(Mt, {}) },
|
|
743
|
-
{ path: "/ctc/4a/role", element: /* @__PURE__ */ e($t, {}) },
|
|
744
|
-
{ path: "/ctc/4a/application", element: /* @__PURE__ */ e(Gt, {}) },
|
|
745
|
-
{ path: "/ctc/4a/tenant", element: /* @__PURE__ */ e(xt, {}) },
|
|
746
|
-
{ path: "/ctc/4a/org", element: /* @__PURE__ */ e(Et, {}) },
|
|
747
|
-
{ path: "/ctc/4a/permission", element: /* @__PURE__ */ e(zt, {}) },
|
|
748
|
-
{ path: "/ctc/4a/surl", element: /* @__PURE__ */ e(Z, {}) },
|
|
749
|
-
{ path: "/ctc/dict", element: /* @__PURE__ */ e(Tt, {}) },
|
|
750
|
-
{ path: "/ctc/overview", element: /* @__PURE__ */ e(Lt, {}) },
|
|
751
|
-
{ path: "/ctc/audit", element: /* @__PURE__ */ e(Ot, {}) },
|
|
752
|
-
{ path: "/ctc/webide", element: /* @__PURE__ */ e(J, {}) },
|
|
753
|
-
{ path: "/ctc/agent-team", element: /* @__PURE__ */ e(Qt, {}) },
|
|
754
|
-
{ path: "/ctc/invitation", element: /* @__PURE__ */ e(Vt, {}) },
|
|
755
|
-
{ path: "/onboarding", element: /* @__PURE__ */ e(Zt, {}) },
|
|
756
|
-
// ─── 智能中心 (/ai/*) ───
|
|
757
|
-
{ path: "/ai", element: /* @__PURE__ */ e(d, { to: "/ai/agent/app", replace: !0 }) },
|
|
758
|
-
{ path: "/ai/agent", element: /* @__PURE__ */ e(d, { to: "/ai/agent/app", replace: !0 }) },
|
|
759
|
-
{ path: "/ai/agent/app", element: /* @__PURE__ */ e(Rt, {}) },
|
|
760
|
-
{ path: "/ai/llm", element: /* @__PURE__ */ e(Kt, {}) },
|
|
761
|
-
{ path: "/ai/llm/provider", element: /* @__PURE__ */ e(d, { to: "/ai/llm", replace: !0 }) },
|
|
762
|
-
{ path: "/ai/llm/model", element: /* @__PURE__ */ e(d, { to: "/ai/llm", replace: !0 }) },
|
|
763
|
-
{ path: "/ai/usage", element: /* @__PURE__ */ e(d, { to: "/ai/llm", replace: !0 }) },
|
|
764
|
-
{ path: "/ai/ak", element: /* @__PURE__ */ e(jt, {}) },
|
|
765
|
-
{ path: "/ai/mcp", element: /* @__PURE__ */ e(Ut, {}) },
|
|
766
|
-
{ path: "/ai/skill", element: /* @__PURE__ */ e(Xt, {}) },
|
|
767
|
-
{ path: "/ai/oss", element: /* @__PURE__ */ e(d, { to: "/ai/oss/bucket", replace: !0 }) },
|
|
768
|
-
{ path: "/ai/oss/bucket", element: /* @__PURE__ */ e(qt, {}) },
|
|
769
|
-
{ path: "/ai/oss/bucket/:bucketName", element: /* @__PURE__ */ e(Bt, {}) },
|
|
770
|
-
{ path: "/ai/trace", element: /* @__PURE__ */ e(V, {}) },
|
|
771
|
-
{ path: "/ai/trace/debug", element: /* @__PURE__ */ e(V, {}) },
|
|
772
|
-
{ path: "/ai/dashboard", element: /* @__PURE__ */ e(Ht, {}) },
|
|
773
|
-
// 多 Agent 实例 / 模板市场已下线 (2026-10-22): 模板并入 Agent 应用页,
|
|
774
|
-
// 旧深链重定向, 别再回到独立菜单
|
|
775
|
-
{ path: "/ai/template", element: /* @__PURE__ */ e(d, { to: "/ai/agent/app", replace: !0 }) },
|
|
776
|
-
{ path: "/ai/agent-instance", element: /* @__PURE__ */ e(d, { to: "/ai/agent/app", replace: !0 }) },
|
|
777
|
-
{ path: "/ai/agent/instances", element: /* @__PURE__ */ e(d, { to: "/ai/agent/app", replace: !0 }) },
|
|
778
|
-
// ─── 配置中心 ───
|
|
779
|
-
{ path: "/config/*", element: /* @__PURE__ */ e(Jt, {}) },
|
|
780
|
-
// ─── 任务中心 ───
|
|
781
|
-
{ path: "/task/*", element: /* @__PURE__ */ e(en, {}) },
|
|
782
|
-
// ─── 流程中心 ───
|
|
783
|
-
{ path: "/workflow/*", element: /* @__PURE__ */ e(tn, {}) },
|
|
784
|
-
// ─── 调度中心 ───
|
|
785
|
-
{ path: "/schedule/*", element: /* @__PURE__ */ e(nn, {}) },
|
|
786
|
-
// ─── 密钥中心 ───
|
|
787
|
-
{ path: "/mist/*", element: /* @__PURE__ */ e(an, {}) },
|
|
788
|
-
// ─── 中间件孵化页 (大需求 004) — 主入口在运维工作台 (?mode=ops),此处兜住直链/刷新 ───
|
|
789
|
-
{ path: "/meta", element: /* @__PURE__ */ e(d, { to: "/meta/app", replace: !0 }) },
|
|
790
|
-
{ path: "/meta/*", element: /* @__PURE__ */ e(on, {}) },
|
|
791
|
-
{ path: "/msg", element: /* @__PURE__ */ e(d, { to: "/msg/inbox", replace: !0 }) },
|
|
792
|
-
{ path: "/msg/*", element: /* @__PURE__ */ e(cn, {}) },
|
|
793
|
-
{ path: "/rpc", element: /* @__PURE__ */ e(d, { to: "/rpc/service", replace: !0 }) },
|
|
794
|
-
{ path: "/rpc/*", element: /* @__PURE__ */ e(sn, {}) },
|
|
795
|
-
// ─── 订阅中心 ───
|
|
796
|
-
{ path: "/subscribe/*", element: /* @__PURE__ */ e(rn, {}) },
|
|
797
|
-
// ─── 产品工作台 z-product (2026-10-21 接入) ───
|
|
798
|
-
// /z-product/* 由 z-product 组件自己的 ProductApp 渲染(内部按 manifest 的绝对路径手工匹配,
|
|
799
|
-
// 不用嵌套 <Routes>:这里没有 Route 父上下文,绝对路径不会被再拼一次父前缀)。
|
|
800
|
-
// §14:z-product 的菜单 key / 路由 path 一律带产品名前缀(/z-product/xxx),
|
|
801
|
-
// 避免 /board、/products 这类短路径跟宿主自己的同名路由撞车。
|
|
802
|
-
{ path: "/z-product", element: /* @__PURE__ */ e(d, { to: "/z-product/board", replace: !0 }) },
|
|
803
|
-
{ path: "/z-product/*", element: /* @__PURE__ */ e(ke, { basePath: "/z-product" }) },
|
|
804
|
-
// 旧前缀 /product/* → 新前缀 /z-product/*:§14 前缀化之前的老 URL 仍可达(书签 / 旧分享链接)。
|
|
805
|
-
{ path: "/product", element: /* @__PURE__ */ e(d, { to: "/z-product/board", replace: !0 }) },
|
|
806
|
-
{ path: "/product/*", element: /* @__PURE__ */ e(On, {}) },
|
|
807
|
-
// ─── 项目中心 ───
|
|
808
|
-
{ path: "/project/*", element: /* @__PURE__ */ e(ln, {}) },
|
|
809
|
-
// ─── 脚本中心 (/script/*) — FEATURE052 ───
|
|
810
|
-
{ path: "/script", element: /* @__PURE__ */ e(d, { to: "/script/manage", replace: !0 }) },
|
|
811
|
-
{ path: "/script/manage", element: /* @__PURE__ */ e(Ft, {}) },
|
|
812
|
-
{ path: "/script/productization", element: /* @__PURE__ */ e(Wt, {}) },
|
|
813
|
-
// ─── 工具中心 (/z-tool/*) — FEATURE054 ───
|
|
814
|
-
{ path: "/z-tool", element: /* @__PURE__ */ e(d, { to: "/z-tool/curl", replace: !0 }) },
|
|
815
|
-
{ path: "/z-tool/curl", element: /* @__PURE__ */ e(Z, {}) },
|
|
816
|
-
{ path: "/z-tool/webide", element: /* @__PURE__ */ e(J, {}) },
|
|
817
|
-
// ─── 测试中心 (/test/*) — FEATURE061 ───
|
|
818
|
-
{ path: "/test", element: /* @__PURE__ */ e(d, { to: "/test/qa/dashboard", replace: !0 }) },
|
|
819
|
-
{ path: "/test/mock", element: /* @__PURE__ */ e(Mn, {}) },
|
|
820
|
-
// QAApp 内部用 <Routes> 相对路由, 通配匹配后由 QAApp 自己接管子路径
|
|
821
|
-
{ path: "/test/qa", element: /* @__PURE__ */ e(ee, {}) },
|
|
822
|
-
{ path: "/test/qa/*", element: /* @__PURE__ */ e(ee, {}) },
|
|
823
|
-
// ─── 低代码 ───
|
|
824
|
-
// /lc/* 刻意不在这里注册。它早就迁到 src/lc/(TS 重写), 挂载点是
|
|
825
|
-
// main.jsx 的 <Route path="/lc/*" element={<ZTeamApp forcedMode="dev"/>}/>,
|
|
826
|
-
// 由 DevWorkbench 把 pathname 原样交给 @/lc 自己的嵌套 <Routes>。
|
|
827
|
-
// 本表早先还挂着一行 {path:'/lc/*', element:<LcIndex/>}, 它的 import 写的是
|
|
828
|
-
// '@/pages/lc' —— 该别名解析到 src/zteam/pages/lc(不存在), 真身在 src/lc,
|
|
829
|
-
// 于是这行既解析不了、又因 main.jsx 先消费了 /lc/* 而永远不可达。
|
|
830
|
-
// /form/:entity 与 /form/_model 是 z-lc Phase 1 手写原型的两条 URL
|
|
831
|
-
// (LowCodeModel 实体字段编辑器 / LowCodeRuntime 通用 CRUD), 现已由
|
|
832
|
-
// @yuku123/z-lc-component 承接 —— 它是同一套 /api/lc 后端的完整前端客户,
|
|
833
|
-
// 能力严格更强(designer 模型编辑、workspace 七种视图 CRUD、admin 全套、
|
|
834
|
-
// db-import、AI 建模), 挂在 main.jsx 的 <Route path="/lc/*"> 下经
|
|
835
|
-
// DevWorkbench 的 <LcApp/> 渲染。
|
|
836
|
-
//
|
|
837
|
-
// 不做逐条映射: z-lc 的工作区路由是 /lc/{appCode}/{entityCode}/{viewType},
|
|
838
|
-
// 比 /form/{entityCode} 多一层 appCode, 旧 URL 里没有这个信息, 无法还原。
|
|
839
|
-
// 故统一重定向到应用列表, 由用户自行进入对应应用。
|
|
840
|
-
{ path: "/form/:entity", element: /* @__PURE__ */ e(d, { to: "/lc/apps", replace: !0 }) },
|
|
841
|
-
// ─── 各域组件文档(lead 008 §7)───
|
|
842
|
-
// 放在本表末尾即可:matchSystemPath 是「先全表精确匹配、再全表通配匹配」,
|
|
843
|
-
// 所以 /config/docs 这类精确路径**不会**被上面的 /config/* 吃掉。
|
|
844
|
-
//
|
|
845
|
-
// 为什么路径用宿主前缀(/config/docs)而不是各域 manifest 里的 /z-config/docs:
|
|
846
|
-
// manifest 的 routes 是给**独立壳**用的(suit 里 <Route path={r.path}> 直接铺);
|
|
847
|
-
// 工作台把各域挂在宿主前缀下(/config/* ⇒ ConfigApp 内部相对路由),
|
|
848
|
-
// 两套路径对不上 ⇒ manifest 的 routes 在工作台里不生效,文档页会 404。
|
|
849
|
-
// 这里统一按**宿主前缀**挂,各域自己的 manifest 路径仍然保留给独立壳用。
|
|
850
|
-
//
|
|
851
|
-
// §14 铁律(菜单 key 必须带产品名前缀)针对的是**同一宿主内多套件共存**的撞车问题;
|
|
852
|
-
// 这里每个域的宿主前缀本身就已经是产品名(/config / /task / /workflow …),
|
|
853
|
-
// 且各域之间前缀互不相同 ⇒ 不存在撞车,不需要再加 z- 前缀。
|
|
854
|
-
{ path: "/config/docs", element: /* @__PURE__ */ e(pn, {}) },
|
|
855
|
-
{ path: "/task/docs", element: /* @__PURE__ */ e(un, {}) },
|
|
856
|
-
{ path: "/workflow/docs", element: /* @__PURE__ */ e(mn, {}) },
|
|
857
|
-
{ path: "/schedule/docs", element: /* @__PURE__ */ e(dn, {}) },
|
|
858
|
-
{ path: "/mist/docs", element: /* @__PURE__ */ e(hn, {}) },
|
|
859
|
-
{ path: "/meta/docs", element: /* @__PURE__ */ e(bn, {}) },
|
|
860
|
-
{ path: "/msg/docs", element: /* @__PURE__ */ e(gn, {}) },
|
|
861
|
-
{ path: "/rpc/docs", element: /* @__PURE__ */ e(_n, {}) },
|
|
862
|
-
{ path: "/kb/docs", element: /* @__PURE__ */ e(yn, {}) },
|
|
863
|
-
{ path: "/z-product/docs", element: /* @__PURE__ */ e(kn, {}) },
|
|
864
|
-
{ path: "/oss/docs", element: /* @__PURE__ */ e(fn, {}) },
|
|
865
|
-
{ path: "/vector/docs", element: /* @__PURE__ */ e(wn, {}) },
|
|
866
|
-
{ path: "/graph/docs", element: /* @__PURE__ */ e(Sn, {}) },
|
|
867
|
-
{ path: "/gw/docs", element: /* @__PURE__ */ e(vn, {}) },
|
|
868
|
-
{ path: "/cache/docs", element: /* @__PURE__ */ e(An, {}) },
|
|
869
|
-
{ path: "/mq/docs", element: /* @__PURE__ */ e(Dn, {}) },
|
|
870
|
-
{ path: "/ctc/docs", element: /* @__PURE__ */ e(Nn, {}) },
|
|
871
|
-
{ path: "/ai/docs", element: /* @__PURE__ */ e(Pn, {}) },
|
|
872
|
-
{ path: "/lc/docs", element: /* @__PURE__ */ e(Cn, {}) },
|
|
873
|
-
{ path: "/test/qa/docs", element: /* @__PURE__ */ e(In, {}) }
|
|
874
|
-
];
|
|
875
|
-
function Ln(n) {
|
|
876
|
-
for (const t of te)
|
|
877
|
-
if (t.path === n) return t.element;
|
|
878
|
-
for (const t of te)
|
|
879
|
-
if (Tn(t.path, n)) return t.element;
|
|
880
|
-
return /* @__PURE__ */ e(Gn, {});
|
|
881
|
-
}
|
|
882
|
-
function Tn(n, t) {
|
|
883
|
-
if (!n.includes("*") && !n.includes(":")) return !1;
|
|
884
|
-
const o = "^" + n.replace(/[.+?^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*").replace(/:([a-zA-Z_][a-zA-Z0-9_]*)/g, "[^/]+") + "$";
|
|
885
|
-
return new RegExp(o).test(t);
|
|
886
|
-
}
|
|
887
|
-
function Hn() {
|
|
888
|
-
ne();
|
|
889
|
-
const { pathname: n } = E(), t = n.startsWith("/test/"), o = v(() => n, [n]), p = v(() => Ln(n), [n]);
|
|
890
|
-
return /* @__PURE__ */ u("div", { className: D.shell, children: [
|
|
891
|
-
/* @__PURE__ */ e(
|
|
892
|
-
Fe,
|
|
893
|
-
{
|
|
894
|
-
activePathOverride: o,
|
|
895
|
-
menuOnly: !0,
|
|
896
|
-
visibleGroups: t ? ["测试中心"] : void 0
|
|
897
|
-
}
|
|
898
|
-
),
|
|
899
|
-
/* @__PURE__ */ u("main", { className: D.main, children: [
|
|
900
|
-
/* @__PURE__ */ e(rt, {}),
|
|
901
|
-
/* @__PURE__ */ e(At, { resetKey: n, children: /* @__PURE__ */ e(le, { fallback: /* @__PURE__ */ e("div", { className: D.empty, children: "加载中…" }), children: p }) })
|
|
902
|
-
] })
|
|
903
|
-
] });
|
|
904
|
-
}
|
|
905
|
-
export {
|
|
906
|
-
Hn as default
|
|
907
|
-
};
|