@yuku123/z-team-component 0.2.52 → 0.2.53

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 (54) hide show
  1. package/dist/{ChangeLogView-nPAmM1X0.js → ChangeLogView-Dm7C3S14.js} +1 -1
  2. package/dist/{ComponentDoc-Cky9jCGu.js → ComponentDoc-y1NfPcHG.js} +506 -461
  3. package/dist/{InvitationManagementPage-BsbaIGvB.js → InvitationManagementPage-Btw9iVOl.js} +1 -1
  4. package/dist/{OnboardingPage-CHVgeBiO.js → OnboardingPage-wF0OrgfD.js} +2 -2
  5. package/dist/ScheduledTasks-CzzgG3n8.js +9417 -0
  6. package/dist/{SystemShell-4OiqvM11.js → SystemShell-BSCmnOxf.js} +1 -1
  7. package/dist/{admin-logs-D6HtRcK6.js → admin-logs-vR556ORQ.js} +2 -2
  8. package/dist/{api-BT968Uwc.js → api-Bs0qYxjL.js} +1 -1
  9. package/dist/{api-C78tCfne.js → api-Jfnj1ybB.js} +287 -270
  10. package/dist/createWorkspaceWsHandler-obuYWncQ.js +12820 -0
  11. package/dist/{index-BAY37t4f.js → index-B3LhKHBx.js} +4 -4
  12. package/dist/{index-CR3sbzOU.js → index-BNShjps9.js} +7 -7
  13. package/dist/{index-DxFZKDq-.js → index-BXiuxhgz.js} +6 -6
  14. package/dist/{index-CdlfWFvS.js → index-BbkE7r8M.js} +1 -1
  15. package/dist/index-BtWtVMgY.js +474 -0
  16. package/dist/{index-DpcrvKsK.js → index-C5WSr14Z.js} +1 -1
  17. package/dist/{index-D9AqC2O-.js → index-CYViRXQo.js} +1 -1
  18. package/dist/{index-Bdu31aRV.js → index-Ck_D109M.js} +2 -2
  19. package/dist/index-CnEWSsKt.js +582 -0
  20. package/dist/{index-B11_fFjX.js → index-CxrBnzg2.js} +1 -1
  21. package/dist/index-DRrBkbr_.js +100 -0
  22. package/dist/index-DUmgSTQu.js +9179 -0
  23. package/dist/index-DWsfQMp8.js +208 -0
  24. package/dist/{index-LwKUkzKI.js → index-Di_vaPxC.js} +3 -3
  25. package/dist/{index-B_C7H9WL.js → index-Dj5_8ulz.js} +5 -5
  26. package/dist/{index-qK6pyAGy.js → index-DmZdGNnh.js} +4 -4
  27. package/dist/index-DqUOCs_a.js +242 -0
  28. package/dist/{index-DFY3lzq0.js → index-DroZE6Bv.js} +3 -3
  29. package/dist/{index-BAK7UDvY.js → index-JLtVgwZv.js} +1 -1
  30. package/dist/index-Onqu_VQO.js +2828 -0
  31. package/dist/index-Pk7OkJrk.js +1133 -0
  32. package/dist/index-WIsi8fln.js +339 -0
  33. package/dist/{index-ClA0896K.js → index-gxEdw4X4.js} +4 -4
  34. package/dist/index-tADa82Fa.js +130 -0
  35. package/dist/{index-BX1Wd9x9.js → index-yS7XIUis.js} +3 -3
  36. package/dist/index.js +1 -1
  37. package/dist/{instance-D5dhjbgg.js → instance-B0DZJnee.js} +3 -3
  38. package/dist/pages.js +1 -1
  39. package/dist/schedule-D3jTrI1R.js +497 -0
  40. package/dist/{send-default-agent-team-message-C882sJLV.js → send-default-agent-team-message-CbqHaohM.js} +1 -1
  41. package/dist/{sso-user-Bi9_l9yi.js → sso-user-Dw_wwYa-.js} +1 -1
  42. package/dist/{training-Ba09KItE.js → training-CETtJBNQ.js} +1 -1
  43. package/dist/{useAppStore-ibJyVIAX.js → useAppStore-s-CLa-nF.js} +19 -19
  44. package/dist/webide-6j4OVoNA.js +7845 -0
  45. package/dist/z-team-component.css +2 -2
  46. package/package.json +1 -1
  47. package/dist/createWorkspaceWsHandler-mq-UTF2O.js +0 -13028
  48. package/dist/index-7nSly-MA.js +0 -405
  49. package/dist/index-B3-0eXYQ.js +0 -844
  50. package/dist/index-Cp3DAwNx.js +0 -13862
  51. package/dist/index-NaBR2aQE.js +0 -6685
  52. package/dist/index-UsGqMo11.js +0 -848
  53. package/dist/schedule-C-4ksDPw.js +0 -239
  54. package/dist/webide-RsFP9pHM.js +0 -8087
@@ -0,0 +1,208 @@
1
+ import { jsx as l, jsxs as f } from "react/jsx-runtime";
2
+ const d = typeof window < "u" && window.ZTEAM_DOWNLOAD_BASE || "", S = `${d}/latest-mac.json`, L = `${d}/latest-android.json`;
3
+ function T(a) {
4
+ return !a || a <= 0 ? "" : a < 1024 * 1024 ? `${(a / 1024).toFixed(0)} KB` : `${(a / (1024 * 1024)).toFixed(1)} MB`;
5
+ }
6
+ function A(a) {
7
+ if (!a) return "";
8
+ try {
9
+ const r = new Date(a);
10
+ return Number.isNaN(r.getTime()) ? a : `${r.getFullYear()}-${String(r.getMonth() + 1).padStart(
11
+ 2,
12
+ "0"
13
+ )}-${String(r.getDate()).padStart(2, "0")}`;
14
+ } catch {
15
+ return a;
16
+ }
17
+ }
18
+ async function E(a) {
19
+ if (!a) return null;
20
+ try {
21
+ const r = await fetch(a, {
22
+ headers: { Accept: "application/json" }
23
+ });
24
+ if (!r.ok) return null;
25
+ const t = await r.text();
26
+ if (!t.trim().startsWith("{")) return null;
27
+ const e = JSON.parse(t);
28
+ return !e || !e.version || !e.downloadUrl ? null : {
29
+ version: e.version,
30
+ arch: e.arch || "",
31
+ downloadUrl: e.downloadUrl,
32
+ fileName: e.fileName || "",
33
+ fileSize: Number(e.fileSize) || 0,
34
+ changelog: e.changelog || "",
35
+ releaseType: e.releaseType || "stable",
36
+ releaseTime: e.releaseTime || "",
37
+ ...e.windows ? {
38
+ windows: w(e.windows)
39
+ } : {}
40
+ };
41
+ } catch {
42
+ return null;
43
+ }
44
+ }
45
+ function w(a) {
46
+ return {
47
+ version: a.version || "",
48
+ arch: a.arch || "",
49
+ downloadUrl: a.downloadUrl || "",
50
+ fileName: a.fileName || "",
51
+ fileSize: Number(a.fileSize) || 0,
52
+ changelog: a.changelog || "",
53
+ releaseType: a.releaseType || "stable",
54
+ releaseTime: a.releaseTime || ""
55
+ };
56
+ }
57
+ function H(a, r) {
58
+ var t;
59
+ return a ? r === "windows" ? (t = a.windows) != null && t.downloadUrl ? a.windows : null : a.downloadUrl ? a : null : null;
60
+ }
61
+ const v = {
62
+ message: [
63
+ "M21 11.5a8.4 8.4 0 0 1-9 8.4 8.4 8.4 0 0 1-3.8-.9L3 21l1.9-5.2a8.4 8.4 0 0 1-.9-3.8 8.5 8.5 0 0 1 8.5-8.4h.5a8.5 8.5 0 0 1 8 8z"
64
+ ],
65
+ network: [
66
+ "M18 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",
67
+ "M6 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",
68
+ "M18 22a3 3 0 1 0 0-6 3 3 0 0 0 0 6z",
69
+ "M8.6 13.5l6.8 4",
70
+ "M15.4 6.5l-6.8 4"
71
+ ],
72
+ branch: [
73
+ "M6 3v12",
74
+ "M18 9a9 9 0 0 1-9 9"
75
+ ],
76
+ shield: [
77
+ "M20 13c0 5-3.5 7.5-7.7 9a1 1 0 0 1-.6 0C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.2-2.7a1.2 1.2 0 0 1 1.5 0C14.5 3.8 17 5 19 5a1 1 0 0 1 1 1z",
78
+ "m9 12 2 2 4-4"
79
+ ],
80
+ swap: ["M8 3 4 7l4 4", "M4 7h16", "m16 21 4-4-4-4", "M20 17H4"],
81
+ users: [
82
+ "M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",
83
+ "M22 21v-2a4 4 0 0 0-3-3.9",
84
+ "M16 3.1a4 4 0 0 1 0 7.8"
85
+ ],
86
+ book: [
87
+ "M12 7v14",
88
+ "M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"
89
+ ],
90
+ layers: [
91
+ "M12.8 2.2a2 2 0 0 0-1.6 0L2.6 6.1a1 1 0 0 0 0 1.8l8.6 3.9a2 2 0 0 0 1.6 0l8.6-3.9a1 1 0 0 0 0-1.8z",
92
+ "m22 12.5-9.2 4.2a2 2 0 0 1-1.6 0L2 12.5",
93
+ "m22 17.5-9.2 4.2a2 2 0 0 1-1.6 0L2 17.5"
94
+ ],
95
+ laptop: [
96
+ "M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v9H4z",
97
+ "M2 17h20l-1.5 1.8a1 1 0 0 1-1.3.4H4.8a1 1 0 0 1-1.3-.4z"
98
+ ],
99
+ phone: [
100
+ "M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z",
101
+ "M11 18h2"
102
+ ],
103
+ globe: [
104
+ "M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20z",
105
+ "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",
106
+ "M2 12h20"
107
+ ],
108
+ terminal: ["m4 17 6-6-6-6", "M12 19h8"],
109
+ bot: [
110
+ "M5 9h14a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2z",
111
+ "M12 9V5.5",
112
+ "M2.5 12v4",
113
+ "M21.5 12v4",
114
+ "M9.5 13h.01",
115
+ "M14.5 13h.01",
116
+ "M10 16.5h4"
117
+ ],
118
+ zap: ["M13 2 4 14h7l-1 8 9-12h-7z"],
119
+ server: [
120
+ "M4 4h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z",
121
+ "M4 14h16a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1z",
122
+ "M7 7h.01",
123
+ "M7 17h.01"
124
+ ],
125
+ wrench: ["M14.7 6.3a4 4 0 0 0 5 5l-9 9a2.8 2.8 0 0 1-4-4z"],
126
+ search: ["M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16z", "m21 21-4.3-4.3"],
127
+ download: ["M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4", "m7 10 5 5 5-5", "M12 15V3"],
128
+ check: ["M20 6 9 17l-5-5"],
129
+ arrow: ["M5 12h14", "m12 5 7 7-7 7"],
130
+ external: ["M15 3h6v6", "M10 14 21 3", "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"],
131
+ sparkle: ["M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z"]
132
+ }, m = {
133
+ windows: [
134
+ "M3 5.6 10 4.3v7.3H3z",
135
+ "M11 4.05 21 2.5v9.1H11z",
136
+ "M3 12.6h7v7.3l-7-1.3z",
137
+ "M11 12.6h10v9.1l-10-1.5z"
138
+ ]
139
+ }, z = {
140
+ branch: [
141
+ [18, 6, 3],
142
+ [6, 18, 3]
143
+ ]
144
+ }, g = {
145
+ bot: [[12, 3.6, 1.15]]
146
+ };
147
+ function N({
148
+ name: a,
149
+ size: r = 20,
150
+ strokeWidth: t = 1.7,
151
+ className: e,
152
+ style: u
153
+ }) {
154
+ const i = m[a], h = v[a], s = z[a], M = g[a];
155
+ return !i && !h ? /* @__PURE__ */ l(
156
+ "svg",
157
+ {
158
+ viewBox: "0 0 24 24",
159
+ width: r,
160
+ height: r,
161
+ className: e,
162
+ style: u,
163
+ "aria-hidden": "true",
164
+ children: /* @__PURE__ */ l("circle", { cx: "12", cy: "12", r: "3", fill: "currentColor" })
165
+ }
166
+ ) : /* @__PURE__ */ f(
167
+ "svg",
168
+ {
169
+ viewBox: "0 0 24 24",
170
+ width: r,
171
+ height: r,
172
+ className: e,
173
+ style: u,
174
+ fill: "none",
175
+ stroke: "currentColor",
176
+ strokeWidth: t,
177
+ strokeLinecap: "round",
178
+ strokeLinejoin: "round",
179
+ "aria-hidden": "true",
180
+ focusable: "false",
181
+ children: [
182
+ i == null ? void 0 : i.map((n) => /* @__PURE__ */ l("path", { d: n, fill: "currentColor", stroke: "none" }, n)),
183
+ h == null ? void 0 : h.map((n) => /* @__PURE__ */ l("path", { d: n }, n)),
184
+ s == null ? void 0 : s.map(([n, o, c]) => /* @__PURE__ */ l("circle", { cx: n, cy: o, r: c }, `${n}-${o}`)),
185
+ M == null ? void 0 : M.map(([n, o, c]) => /* @__PURE__ */ l(
186
+ "circle",
187
+ {
188
+ cx: n,
189
+ cy: o,
190
+ r: c,
191
+ fill: "currentColor",
192
+ stroke: "none"
193
+ },
194
+ `f-${n}-${o}`
195
+ ))
196
+ ]
197
+ }
198
+ );
199
+ }
200
+ export {
201
+ L as A,
202
+ N as L,
203
+ S as M,
204
+ T as a,
205
+ A as b,
206
+ E as f,
207
+ H as p
208
+ };
@@ -1,13 +1,13 @@
1
1
  import { jsxs as i, jsx as e, Fragment as le } from "react/jsx-runtime";
2
2
  import { useState as u, useEffect as re, useCallback as O } from "react";
3
- import { a as b, f as $, B, u as D } from "./api-C78tCfne.js";
4
- import { u as F } from "./useAppStore-ibJyVIAX.js";
3
+ import { a as b, f as $, B, u as D } from "./api-Jfnj1ybB.js";
4
+ import { u as F } from "./useAppStore-s-CLa-nF.js";
5
5
  import { SearchOutlined as Ce, ReloadOutlined as Se, PlusOutlined as Te, FileZipOutlined as Z, CloudDownloadOutlined as Y, EditOutlined as he, UserSwitchOutlined as Ue, ArrowLeftOutlined as fe, UserOutlined as be, CloudUploadOutlined as $e, PictureOutlined as de, EyeOutlined as Be } from "@ant-design/icons";
6
6
  import { message as U, Input as H, Tooltip as se, Button as g, Spin as ce, Empty as De, Popconfirm as pe, Tag as ie, Modal as Re, Select as Pe, Upload as me, Tabs as Le } from "antd";
7
7
  import ve from "react-markdown";
8
8
  import _e from "rehype-highlight";
9
9
  import ge from "remark-gfm";
10
- import { M as oa } from "./index-B_C7H9WL.js";
10
+ import { M as oa } from "./index-Dj5_8ulz.js";
11
11
  function j(a) {
12
12
  return a ? `?token=${encodeURIComponent(a)}` : "";
13
13
  }
@@ -6,10 +6,10 @@ import { useState as F, useRef as fp, useEffect as Y, useMemo as Wp, useCallback
6
6
  import Vp, { defaultUrlTransform as KA } from "react-markdown";
7
7
  import gp from "rehype-highlight";
8
8
  import Jp from "remark-gfm";
9
- import { ag as xa, ah as jA } from "./api-C78tCfne.js";
10
- import { u as Dp } from "./useAppStore-ibJyVIAX.js";
11
- import { f as ia, u as oA, c as fA, r as lA, a as xA, b as iA, d as cA, e as TA, g as vA, w as up, i as Yp, h as mp, t as yp, j as Ip, k as FA, l as dA, m as OA, n as XA } from "./index-NaBR2aQE.js";
12
- import { u as RA, a as NA, f as kA, b as WA, d as Cp, e as DA, g as qA, r as uA, h as mA, i as wA, j as BA, k as GA, l as LA, m as zA, n as VA } from "./createWorkspaceWsHandler-mq-UTF2O.js";
9
+ import { ap as xa, aq as jA } from "./api-Jfnj1ybB.js";
10
+ import { u as Dp } from "./useAppStore-s-CLa-nF.js";
11
+ import { u as ia, v as oA, w as fA, x as lA, i as xA, y as iA, z as cA, B as TA, E as vA, G as up, H as Yp, I as mp, J as yp, K as Ip, M as FA, N as dA, O as OA, Q as XA } from "./index-DUmgSTQu.js";
12
+ import { u as RA, b as NA, f as kA, d as WA, e as Cp, g as DA, h as qA, r as uA, i as mA, j as wA, k as BA, l as GA, m as LA, n as zA, o as VA } from "./createWorkspaceWsHandler-obuYWncQ.js";
13
13
  import { h as r } from "./index.module-CAa-2T7m.js";
14
14
  const gA = "_editorView_as93v_7", JA = "_editorTopBar_as93v_16", bA = "_backBtn_as93v_25", MA = "_titleInput_as93v_39", sA = "_summaryBar_as93v_50", QA = "_summaryInput_as93v_55", hA = "_mdToolbar_as93v_67", YA = "_mdBtn_as93v_77", yA = "_mdSep_as93v_84", IA = "_editorBody_as93v_93", CA = "_tocPanel_as93v_100", ZA = "_tocHeader_as93v_108", EA = "_tocList_as93v_117", _A = "_tocItem_as93v_122", $A = "_tocEmpty_as93v_137", pt = "_textarea_as93v_144", at = "_half_as93v_160", At = "_preview_as93v_163", tt = "_markdown_as93v_173", et = "_videoEmbed_as93v_185", w = {
15
15
  editorView: gA,
@@ -1682,7 +1682,7 @@ const Rt = [
1682
1682
  draftDeleteBtn: T0,
1683
1683
  markdown: v0
1684
1684
  }, F0 = HA(
1685
- () => import("./index-LwKUkzKI.js").then((a) => ({ default: a.MarketContent }))
1685
+ () => import("./index-Di_vaPxC.js").then((a) => ({ default: a.MarketContent }))
1686
1686
  );
1687
1687
  function d0(a) {
1688
1688
  const n = [], x = a.split(`
@@ -1,17 +1,17 @@
1
1
  import { jsx as t, jsxs as l } from "react/jsx-runtime";
2
2
  import { f as ie, r as z } from "./ctc-sso-DtJHC-2M.js";
3
- import { r as ne, h as X, s as oe } from "./sso-user-Bi9_l9yi.js";
3
+ import { r as ne, h as X, s as oe } from "./sso-user-Dw_wwYa-.js";
4
4
  import { CheckCircleFilled as le, QuestionCircleOutlined as ce, CloseOutlined as me } from "@ant-design/icons";
5
5
  import { message as k, Result as de, Button as D, Spin as G, Input as ue, Image as fe } from "antd";
6
6
  import pe from "query-string";
7
7
  import { useState as f, useRef as Y, useMemo as K, useCallback as w, useEffect as V } from "react";
8
8
  import { useLocation as ge } from "react-router-dom";
9
9
  import { h as W } from "./history-BlrA1eaW.js";
10
- import { q as he, d as be, e as _e } from "./api-C78tCfne.js";
11
- import { u as c } from "./useAppStore-ibJyVIAX.js";
10
+ import { l as he, d as be, e as _e } from "./api-Jfnj1ybB.js";
11
+ import { u as c } from "./useAppStore-s-CLa-nF.js";
12
12
  /* empty css */
13
13
  import { b as ye } from "./mobile-client-O3yr9h6t.js";
14
- import { a as ve, s as we } from "./send-default-agent-team-message-C882sJLV.js";
14
+ import { a as ve, s as we } from "./send-default-agent-team-message-CbqHaohM.js";
15
15
  const Ne = 5e3, E = 9, Ce = 10 * 1024 * 1024, Se = /^image\//i, Ie = /\.(png|jpe?g|gif|bmp|webp)$/i;
16
16
  function Pe(a) {
17
17
  return a.type && Se.test(a.type) ? !0 : Ie.test(a.name || "");
@@ -0,0 +1,242 @@
1
+ import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
+ import { Navigate as i, useLocation as b } from "react-router-dom";
3
+ import { Alert as u } from "antd";
4
+ import { DashboardOutlined as v, ClusterOutlined as r, ContainerOutlined as y, CloudServerOutlined as l, BranchesOutlined as O, RocketOutlined as g, AlertOutlined as k, FileTextOutlined as S, DatabaseOutlined as c, CloudOutlined as f, DeploymentUnitOutlined as z } from "@ant-design/icons";
5
+ import { W as P } from "./index-DRrBkbr_.js";
6
+ import { M as D } from "./ComponentDoc-y1NfPcHG.js";
7
+ import "./index-DUmgSTQu.js";
8
+ const a = "K8s 管理面的数据源在**独立运维平台 z-ops**:/z-team/ops/k8s/** 由 z-ops 仓的 z-ops-web 提供(K8sController 注册 /z-team/ops/k8s,HpaController 注册 /z-team/ops/k8s/hpa)。**z-opc 主壳不承载它**:主壳制品 BOOT-INF/lib 里 0 个 z-ops-*,主壳 nginx 路由总表里也没有^/z-team/ops 这条反代规则 ⇒ 实测 GET /z-team/ops/k8s/nodes 得到的是 SPA 兜底页(HTTP 200 + text/html + 451B,与必假路径逐字节相同),不是后端 JSON。该页面的真实入口在 z-ops 独立平台(集群内端口 8886,其前端路由 /ops/k8s)。", E = [
9
+ {
10
+ title: "DevOps 运维",
11
+ icon: /* @__PURE__ */ e(r, {}),
12
+ items: [
13
+ {
14
+ key: "devops-dashboard",
15
+ label: "运维总览",
16
+ icon: /* @__PURE__ */ e(v, {}),
17
+ path: "/ops/devops/dashboard",
18
+ desc: "集群概览与资源统计"
19
+ },
20
+ {
21
+ key: "devops-nodes",
22
+ label: "节点管理",
23
+ icon: /* @__PURE__ */ e(r, {}),
24
+ path: "/ops/devops/nodes",
25
+ desc: "K8s 节点列表与状态"
26
+ },
27
+ {
28
+ key: "devops-pods",
29
+ label: "Pod 管理",
30
+ icon: /* @__PURE__ */ e(y, {}),
31
+ path: "/ops/devops/pods",
32
+ desc: "Pod 列表、日志、终端"
33
+ },
34
+ {
35
+ key: "devops-hpa",
36
+ label: "弹性伸缩",
37
+ icon: /* @__PURE__ */ e(l, {}),
38
+ path: "/ops/devops/hpa",
39
+ desc: "HPA 自动扩缩容策略"
40
+ },
41
+ {
42
+ key: "devops-registry",
43
+ label: "镜像仓库",
44
+ icon: /* @__PURE__ */ e(l, {}),
45
+ path: "/ops/devops/registry",
46
+ desc: "容器镜像统一管理"
47
+ },
48
+ {
49
+ key: "devops-pipeline",
50
+ label: "流水线",
51
+ icon: /* @__PURE__ */ e(O, {}),
52
+ path: "/ops/devops/pipeline",
53
+ desc: "CI/CD 流水线编排"
54
+ },
55
+ {
56
+ key: "devops-release",
57
+ label: "发布管理",
58
+ icon: /* @__PURE__ */ e(g, {}),
59
+ path: "/ops/devops/release",
60
+ desc: "应用发布与回滚"
61
+ },
62
+ {
63
+ key: "devops-monitor",
64
+ label: "监控告警",
65
+ icon: /* @__PURE__ */ e(k, {}),
66
+ path: "/ops/devops/monitor",
67
+ desc: "Prometheus/Grafana 监控"
68
+ },
69
+ {
70
+ key: "devops-logs",
71
+ label: "日志管理",
72
+ icon: /* @__PURE__ */ e(S, {}),
73
+ path: "/ops/devops/logs",
74
+ desc: "Loki 集中日志查询"
75
+ },
76
+ {
77
+ key: "devops-dba",
78
+ label: "DBA 工单",
79
+ icon: /* @__PURE__ */ e(c, {}),
80
+ path: "/ops/devops/dba",
81
+ desc: "数据库运维工单"
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ title: "基础设施",
87
+ icon: /* @__PURE__ */ e(r, {}),
88
+ items: [
89
+ {
90
+ key: "ops-channel",
91
+ label: "渠道管理",
92
+ icon: /* @__PURE__ */ e(f, {}),
93
+ path: "/ops/channel",
94
+ desc: "部署渠道配置与管理"
95
+ },
96
+ {
97
+ key: "ops-env",
98
+ label: "环境管理",
99
+ icon: /* @__PURE__ */ e(l, {}),
100
+ path: "/ops/delivery",
101
+ desc: "运行环境配置与管理"
102
+ },
103
+ {
104
+ key: "ops-deploy",
105
+ label: "部署管理",
106
+ icon: /* @__PURE__ */ e(z, {}),
107
+ path: "/ops/deployment",
108
+ desc: "应用部署与发布管理"
109
+ },
110
+ {
111
+ key: "ops-repo",
112
+ label: "仓库管理",
113
+ icon: /* @__PURE__ */ e(c, {}),
114
+ path: "/ops/repo-mgmt",
115
+ desc: "代码仓库与镜像管理"
116
+ }
117
+ ]
118
+ },
119
+ {
120
+ title: "资源管理",
121
+ icon: /* @__PURE__ */ e(l, {}),
122
+ items: [
123
+ {
124
+ key: "resource",
125
+ label: "资源管理",
126
+ icon: /* @__PURE__ */ e(l, {}),
127
+ path: "/resource/domain",
128
+ desc: "域名、ECS、RDS、OSS 管理"
129
+ }
130
+ ]
131
+ }
132
+ ];
133
+ function p({ label: o }) {
134
+ return /* @__PURE__ */ n("div", { style: { padding: 40, textAlign: "center", color: "#999" }, children: [
135
+ /* @__PURE__ */ n("h2", { children: [
136
+ "🚧 ",
137
+ o
138
+ ] }),
139
+ /* @__PURE__ */ e("p", { children: "功能开发中..." })
140
+ ] });
141
+ }
142
+ function t({ label: o, reason: d, message: h = "该页面未孵化,因为后端接口尚不可用" }) {
143
+ return /* @__PURE__ */ n("div", { style: { padding: 40, maxWidth: 720, margin: "0 auto" }, children: [
144
+ /* @__PURE__ */ n("h2", { style: { textAlign: "center" }, children: [
145
+ "🧪 ",
146
+ o
147
+ ] }),
148
+ /* @__PURE__ */ e(
149
+ u,
150
+ {
151
+ type: "warning",
152
+ showIcon: !0,
153
+ message: h,
154
+ description: d
155
+ }
156
+ )
157
+ ] });
158
+ }
159
+ function s({ label: o }) {
160
+ return /* @__PURE__ */ e(
161
+ t,
162
+ {
163
+ label: o,
164
+ message: "该页面未孵化,因为组件从来不在本仓",
165
+ reason: "组件从未迁进本仓:z-opc 的 src 目录下没有这个组件,历史上也没有任何提交 import 过它(OPS_ROUTES 里留着一个解析不到的标识符)。要恢复这一页,得先把组件从 z-ops 迁进来并接上它自己的后端;在那之前这里刻意不放假表格。"
166
+ }
167
+ );
168
+ }
169
+ function m() {
170
+ const { pathname: o } = b();
171
+ return /* @__PURE__ */ e(i, { to: `${o}?mode=middleware`, replace: !0 });
172
+ }
173
+ const A = [...D, "/script"], T = [
174
+ // ─── 运维中心 ───
175
+ // ⚠ 这一族路由的组件从来没有从 z-ops 迁进来(见 UnmigratedPage 注释)。原先直接写
176
+ // <ChannelPage/> 之类会在**模块求值期**抛 ReferenceError 并白屏整个前端,不是只坏这一页。
177
+ { path: "/ops", element: /* @__PURE__ */ e(i, { to: "/ops/devops", replace: !0 }) },
178
+ { path: "/ops/channel", element: /* @__PURE__ */ e(s, { label: "渠道管理" }) },
179
+ { path: "/ops/delivery", element: /* @__PURE__ */ e(s, { label: "环境管理" }) },
180
+ { path: "/ops/deployment", element: /* @__PURE__ */ e(s, { label: "部署管理" }) },
181
+ { path: "/ops/deployment/:id", element: /* @__PURE__ */ e(s, { label: "部署管理" }) },
182
+ { path: "/ops/repo-mgmt", element: /* @__PURE__ */ e(s, { label: "仓库管理" }) },
183
+ { path: "/ops/git-platform", element: /* @__PURE__ */ e(s, { label: "仓库管理" }) },
184
+ // ─── DevOps 子路由(K8s 管理面:**本宿主不承载** ⇒ 显式占位,见 DEVOPS_MIGRATED_NOTE)───
185
+ // ⚠ 这 4 条原先挂的是真组件(OpsDashboard / K8sNodeList / K8sPodList / K8sHpaList),
186
+ // 而它们的 API_BASE = '/z-team/ops/k8s'(OpsK8s/api.ts)——
187
+ // **该前缀的 handler 在 z-ops 仓的 z-ops-web 里**(K8sController @RequestMapping("/z-team/ops/k8s")
188
+ // / HpaController @RequestMapping("/z-team/ops/k8s/hpa")),**不在 z-opc 主壳**:
189
+ // ① 主壳 boot jar 的 BOOT-INF/lib 里 0 个 z-ops-*;
190
+ // ② 主壳 nginx 路由总表里没有 `^/z-team/ops` 这条反代规则;
191
+ // ⇒ 生产实测 GET /z-team/ops/k8s/nodes → HTTP 200 + text/html + 451B
192
+ // (sha16 92c38b6b20edc50d,与必假路径逐字节相同)= **SPA 兜底页**。
193
+ // ⇒ 这 4 条是「菜单项点进去是页面、数据源在后端不存在」的**断头路**
194
+ // (卡 TASK-20261023-056 · ops-001~004)。
195
+ // ⇒ 修法 = **撤菜单项的落地形态**:不再渲染真组件、不再发任何打到 /z-team/ops 的请求,
196
+ // 改渲染显式占位并写明**实测到的堵点**与归属平台(口径见 003_辅助能力/
197
+ // frontend-incubation-audit/SKILL.md:占位不许写成空表/全 0 的假绿)。
198
+ // ⚠ 菜单项**保留**(不删条目):深链进来要有明确去处,而不是白屏或落回 SPA 兜底。
199
+ { path: "/ops/devops", element: /* @__PURE__ */ e(t, { label: "DevOps 运维", reason: a, message: "该页面已迁至独立运维平台 z-ops,本宿主不承载" }) },
200
+ { path: "/ops/devops/dashboard", element: /* @__PURE__ */ e(t, { label: "运维总览", reason: a, message: "该页面已迁至独立运维平台 z-ops,本宿主不承载" }) },
201
+ { path: "/ops/devops/nodes", element: /* @__PURE__ */ e(t, { label: "节点管理", reason: a, message: "该页面已迁至独立运维平台 z-ops,本宿主不承载" }) },
202
+ { path: "/ops/devops/pods", element: /* @__PURE__ */ e(t, { label: "Pod 管理", reason: a, message: "该页面已迁至独立运维平台 z-ops,本宿主不承载" }) },
203
+ { path: "/ops/devops/hpa", element: /* @__PURE__ */ e(t, { label: "弹性伸缩", reason: a, message: "该页面已迁至独立运维平台 z-ops,本宿主不承载" }) },
204
+ { path: "/ops/devops/registry", element: /* @__PURE__ */ e(p, { label: "镜像仓库" }) },
205
+ { path: "/ops/devops/pipeline", element: /* @__PURE__ */ e(p, { label: "流水线" }) },
206
+ { path: "/ops/devops/release", element: /* @__PURE__ */ e(p, { label: "发布管理" }) },
207
+ { path: "/ops/devops/monitor", element: /* @__PURE__ */ e(p, { label: "监控告警" }) },
208
+ { path: "/ops/devops/logs", element: /* @__PURE__ */ e(p, { label: "日志管理" }) },
209
+ { path: "/ops/devops/dba", element: /* @__PURE__ */ e(p, { label: "DBA 工单" }) },
210
+ // ─── 资源管理 ───
211
+ { path: "/resource", element: /* @__PURE__ */ e(i, { to: "/resource/domain", replace: !0 }) },
212
+ { path: "/resource/domain", element: /* @__PURE__ */ e(s, { label: "域名管理" }) },
213
+ { path: "/resource/ecs", element: /* @__PURE__ */ e(s, { label: "ECS 管理" }) },
214
+ { path: "/resource/rds", element: /* @__PURE__ */ e(s, { label: "RDS 管理" }) },
215
+ { path: "/resource/oss", element: /* @__PURE__ */ e(s, { label: "OSS 管理" }) },
216
+ // ─── 已迁到中间件面的前缀 → 旧深链交还中间件面 ───
217
+ // ⚠ 必须排在最后:matchWorkbenchPath 先全表精确、再全表通配,
218
+ // 但本面自己的 /ops/* 与 /resource/* 都在前面,不会被这几条吃掉。
219
+ ...A.flatMap((o) => [
220
+ { path: o, element: /* @__PURE__ */ e(m, {}) },
221
+ { path: `${o}/*`, element: /* @__PURE__ */ e(m, {}) }
222
+ ])
223
+ ];
224
+ function U({
225
+ activePathOverride: o,
226
+ menuOnly: d = !1
227
+ } = {}) {
228
+ return /* @__PURE__ */ e(
229
+ P,
230
+ {
231
+ groups: E,
232
+ routes: T,
233
+ mode: "ops",
234
+ emptyText: "请从左侧菜单选择运维模块",
235
+ activePathOverride: o,
236
+ menuOnly: d
237
+ }
238
+ );
239
+ }
240
+ export {
241
+ U as default
242
+ };
@@ -1,14 +1,14 @@
1
1
  import { jsx as s, jsxs as C } from "react/jsx-runtime";
2
2
  import { f as z, r as v } from "./ctc-sso-DtJHC-2M.js";
3
- import { r as L, h as N, s as T } from "./sso-user-Bi9_l9yi.js";
3
+ import { r as L, h as N, s as T } from "./sso-user-Dw_wwYa-.js";
4
4
  import { CheckCircleFilled as q } from "@ant-design/icons";
5
5
  import { Spin as R } from "antd";
6
6
  import W from "query-string";
7
7
  import { useMemo as P, useState as p, useCallback as A, useEffect as U } from "react";
8
8
  import { useLocation as F } from "react-router-dom";
9
9
  import { h as H } from "./history-BlrA1eaW.js";
10
- import { c as Y, e as B } from "./api-C78tCfne.js";
11
- import { u as m } from "./useAppStore-ibJyVIAX.js";
10
+ import { c as Y, e as B } from "./api-Jfnj1ybB.js";
11
+ import { u as m } from "./useAppStore-s-CLa-nF.js";
12
12
  /* empty css */
13
13
  import { b as G } from "./mobile-client-O3yr9h6t.js";
14
14
  function ne() {
@@ -2,7 +2,7 @@ import { jsxs as r, jsx as n, Fragment as H } from "react/jsx-runtime";
2
2
  import { BookOutlined as V, ReloadOutlined as Ne, SearchOutlined as fe, CloseOutlined as ge, CaretDownOutlined as ve, CaretRightOutlined as Te } from "@ant-design/icons";
3
3
  import { message as Se, Spin as F } from "antd";
4
4
  import { useState as k, useRef as M, useEffect as G, useCallback as C } from "react";
5
- import { a as A, B as R, u as E } from "./api-C78tCfne.js";
5
+ import { a as A, B as R, u as E } from "./api-Jfnj1ybB.js";
6
6
  function B(a) {
7
7
  const l = new URLSearchParams();
8
8
  Object.entries(a).forEach(([N, s]) => {