@yuku123/z-team-component 0.2.91 → 0.2.92
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-DagOxr6O.js → ChangeLogView-DMVBdFFX.js} +12 -12
- package/dist/ComponentDoc-Boc9n2c_.js +8035 -0
- package/dist/{InvitationManagementPage-DYoqQA0v.js → InvitationManagementPage-B4UJQBrv.js} +1 -1
- package/dist/{OnboardingPage-D2Gm8MRd.js → OnboardingPage-BuDvSKMx.js} +2 -2
- package/dist/{ScheduledTasks-DB3VxAnb.js → ScheduledTasks-DY4iYtX3.js} +4341 -4337
- package/dist/{SystemShell-D3jHItxY.js → SystemShell-UVZjsfJs.js} +11 -12
- package/dist/admin-logs-OIyOdfuC.js +198 -0
- package/dist/{api-DYsAzJJo.js → api-mJ7FvgsR.js} +1 -1
- package/dist/createWorkspaceWsHandler-9k7O4P-D.js +13135 -0
- package/dist/{index-B5dDwxhs.js → index-BMt6Z1yA.js} +1 -1
- package/dist/{index-Cw6MIoNv.js → index-Bi6mbk7-.js} +6 -7
- package/dist/{index-E4Q6JmzX.js → index-BxRNZbw5.js} +3 -3
- package/dist/{index-CgWa7RFv.js → index-C2LwqjZQ.js} +23 -24
- package/dist/{index-BZ12pY96.js → index-COLSSd6V.js} +2 -2
- package/dist/{index-BfzgRKii.js → index-CYe2nfiG.js} +90 -91
- package/dist/{index-BYe87pnq.js → index-CeYCMcgX.js} +11 -12
- package/dist/index-Ckpc_Z6-.js +3495 -0
- package/dist/{index-BMQ6XkO3.js → index-CpA8ev3a.js} +1 -1
- package/dist/{index-VGtET31b.js → index-CpwvgQ3b.js} +1 -1
- package/dist/{index-W_4faD_M.js → index-CsHpsX_P.js} +2 -2
- package/dist/{index-CYyFYmlZ.js → index-CwNtNKwX.js} +8 -9
- package/dist/index-D1odHNMR.js +316 -0
- package/dist/{index-DyQ9YnMd.js → index-D74FCwtx.js} +3629 -3473
- package/dist/{index-Dwqa30HZ.js → index-D83QI-17.js} +4 -4
- package/dist/{index-Cggl78j7.js → index-DeHC7MtX.js} +5 -6
- package/dist/{index-ues0LW7p.js → index-FAhDAnIy.js} +1257 -1258
- package/dist/{index-C8cR7lJw.js → index-GHQ4Tl6H.js} +10 -11
- package/dist/{index-BaCqZeiw.js → index-Gk-5X-GO.js} +1 -1
- package/dist/{index-CZyFAmEq.js → index-Hm6ZaRmP.js} +10 -11
- package/dist/{index-CLfhHxPf.js → index-TW4txhve.js} +1 -1
- package/dist/{index-DE82vM_4.js → index-kwnNAAM0.js} +19 -18
- package/dist/{index-CSpckSHg.js → index-r4IxoITP.js} +23 -23
- package/dist/{index-CLD5lLa6.js → index-s5yeUpMA.js} +19 -19
- package/dist/{index-152G-_4j.js → index-zEqjsTFh.js} +5 -6
- package/dist/index.js +1 -1
- package/dist/{instance-CI6-4BZ6.js → instance-BpY3BXci.js} +1 -1
- package/dist/{menuPermission-C33I6ujb.js → menuPermission-DX8KlB6K.js} +11 -11
- package/dist/pages.js +8 -8
- package/dist/{send-default-agent-team-message-c5oKdQQA.js → send-default-agent-team-message-DVFuAdE9.js} +1 -1
- package/dist/{sso-user-DToM5dPy.js → sso-user-BBkFFo35.js} +1 -1
- package/dist/{training-B38tnwLL.js → training-BCi9cA6O.js} +1 -1
- package/dist/webide-MQ5gD1Go.js +5233 -0
- package/dist/z-team-component.css +1 -26
- package/package.json +3 -2
- package/dist/ComponentDoc-Bqfu128t.js +0 -3998
- package/dist/admin-logs-ogvMwS4O.js +0 -302
- package/dist/api-BftpestH.js +0 -2156
- package/dist/createWorkspaceWsHandler-D8h5BEzH.js +0 -13030
- package/dist/index-CUVdeb8y.js +0 -638
- package/dist/index-DVaTGA2z.js +0 -3488
- package/dist/schedule-ChO2xIGd.js +0 -625
- package/dist/useAppStore-uc8v8XZC.js +0 -1920
- package/dist/webide-BuUYLPSp.js +0 -8399
|
@@ -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 "./
|
|
5
|
+
import { a as A, B as R, u as E } from "./ComponentDoc-Boc9n2c_.js";
|
|
6
6
|
function B(a) {
|
|
7
7
|
const l = new URLSearchParams();
|
|
8
8
|
Object.entries(a).forEach(([N, s]) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as n, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { useState as b, useRef as N, useEffect as r, useCallback as h } from "react";
|
|
3
3
|
import { h as o } from "./history-BlrA1eaW.js";
|
|
4
|
-
import { C as A } from "./ChangeLogView-
|
|
4
|
+
import { C as A } from "./ChangeLogView-DMVBdFFX.js";
|
|
5
5
|
const T = "_docs_lzhu5_12", v = "_bgLayer_lzhu5_59", p = "_bgGrid_lzhu5_70", f = "_navbar_lzhu5_87", y = "_navLeft_lzhu5_103", z = "_navBack_lzhu5_110", k = "_navBrand_lzhu5_132", I = "_navLogo_lzhu5_139", B = "_navTitle_lzhu5_154", q = "_navLink_lzhu5_164", L = "_layout_lzhu5_191", C = "_sidebar_lzhu5_202", S = "_sidebarInner_lzhu5_213", G = "_sidebarTitle_lzhu5_217", D = "_tocItem_lzhu5_227", E = "_tocActive_lzhu5_249", K = "_tocNum_lzhu5_260", w = "_content_lzhu5_275", F = "_section_lzhu5_285", O = "_secTitle_lzhu5_290", R = "_subTitle_lzhu5_301", x = "_lead_lzhu5_309", W = "_list_lzhu5_329", M = "_olist_lzhu5_360", Z = "_callout_lzhu5_397", Q = "_calloutBlue_lzhu5_398", $ = "_calloutGreen_lzhu5_399", P = "_calloutRed_lzhu5_400", U = "_inlineCode_lzhu5_441", V = "_codeBlock_lzhu5_454", H = "_tableWrap_lzhu5_470", j = "_table_lzhu5_470", Y = "_tableKey_lzhu5_512", J = "_tableIcon_lzhu5_517", X = "_statusDot_lzhu5_523", ee = "_tone_pending_lzhu5_532", le = "_tone_running_lzhu5_536", ne = "_tone_suspended_lzhu5_541", ce = "_tone_done_lzhu5_546", ie = "_tone_failed_lzhu5_551", te = "_tone_cancelled_lzhu5_556", ae = "_markGood_lzhu5_562", se = "_markBad_lzhu5_563", de = "_faqList_lzhu5_577", re = "_faqItem_lzhu5_583", he = "_faqQ_lzhu5_597", oe = "_faqA_lzhu5_604", me = "_changelogEmbed_lzhu5_611", ge = "_changelogTip_lzhu5_619", ue = "_changelogLink_lzhu5_625", _e = "_docFooter_lzhu5_637", be = "_backBtn_lzhu5_648", Ne = "_docFooterText_lzhu5_671", l = {
|
|
6
6
|
docs: T,
|
|
7
7
|
bgLayer: v,
|
|
@@ -3,8 +3,8 @@ import { useState as y, useMemo as d } from "react";
|
|
|
3
3
|
import { useNavigate as G, useLocation as k } from "react-router-dom";
|
|
4
4
|
import { CodeOutlined as L, DownOutlined as N, RightOutlined as O, AppstoreOutlined as v, TableOutlined as A, DatabaseOutlined as w, RobotOutlined as H, FunctionOutlined as M, ApartmentOutlined as W, EyeOutlined as C, BranchesOutlined as $, DeploymentUnitOutlined as p, SafetyCertificateOutlined as g } from "@ant-design/icons";
|
|
5
5
|
import R from "@yuku123/z-lc-component";
|
|
6
|
-
import { f as U, M as x } from "./menuPermission-
|
|
7
|
-
import {
|
|
6
|
+
import { f as U, M as x } from "./menuPermission-DX8KlB6K.js";
|
|
7
|
+
import { d as b } from "./ComponentDoc-Boc9n2c_.js";
|
|
8
8
|
const D = "_shell_1n5c7_7", E = "_sidebar_1n5c7_15", P = "_sidebarHeader_1n5c7_26", j = "_menuList_1n5c7_37", K = "_menuGroup_1n5c7_43", T = "_menuGroupHeader_1n5c7_47", B = "_menuGroupLabel_1n5c7_65", F = "_menuGroupArrow_1n5c7_69", q = "_menuSubList_1n5c7_74", z = "_menuSubItemWrap_1n5c7_80", J = "_menuSubItem_1n5c7_80", Q = "_menuSubItemActive_1n5c7_101", V = "_menuSubItemIcon_1n5c7_108", X = "_menuSubItemLabel_1n5c7_113", Y = "_main_1n5c7_118", t = {
|
|
9
9
|
shell: D,
|
|
10
10
|
sidebar: E,
|
|
@@ -1,24 +1,23 @@
|
|
|
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-
|
|
3
|
+
import { r as L, h as N, s as T } from "./sso-user-BBkFFo35.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 {
|
|
11
|
-
import { u as m } from "./useAppStore-uc8v8XZC.js";
|
|
10
|
+
import { d as m, e as Y, j as B } from "./ComponentDoc-Boc9n2c_.js";
|
|
12
11
|
/* empty css */
|
|
13
12
|
import { b as G } from "./mobile-client-O3yr9h6t.js";
|
|
14
|
-
function
|
|
13
|
+
function oe() {
|
|
15
14
|
const i = F(), g = W.parse(i.search), S = P(
|
|
16
15
|
() => String(g.name ?? "WebIDE 在线咨询").trim(),
|
|
17
16
|
[i.search]
|
|
18
17
|
), _ = P(
|
|
19
18
|
() => String(g.source ?? "z-team-webide").trim(),
|
|
20
19
|
[i.search]
|
|
21
|
-
), [b, E] = p(!1), [I, y] = p("正在登录…"), [w, M] = p([]), [
|
|
20
|
+
), [b, E] = p(!1), [I, y] = p("正在登录…"), [w, M] = p([]), [j, x] = p(""), { currentUser: d, updateCurrentUser: u, expandProject: $ } = m(), f = A((e, o) => {
|
|
22
21
|
M((a) => [...a, e]), y(o);
|
|
23
22
|
}, []);
|
|
24
23
|
return U(() => {
|
|
@@ -85,7 +84,7 @@ function ne() {
|
|
|
85
84
|
},
|
|
86
85
|
a.token
|
|
87
86
|
);
|
|
88
|
-
if (e || (f("群组已创建", "正在初始化工作区…"), await
|
|
87
|
+
if (e || (f("群组已创建", "正在初始化工作区…"), await $(l), e)) return;
|
|
89
88
|
const t = m.getState();
|
|
90
89
|
if (t.currentProject && await t.refreshProjectPanels(
|
|
91
90
|
t.currentProject.id,
|
|
@@ -109,10 +108,10 @@ function ne() {
|
|
|
109
108
|
d,
|
|
110
109
|
S,
|
|
111
110
|
_,
|
|
112
|
-
|
|
111
|
+
$,
|
|
113
112
|
f,
|
|
114
113
|
i.search
|
|
115
|
-
]),
|
|
114
|
+
]), j ? /* @__PURE__ */ s("div", { className: "embed-chat-page embed-chat-page--error", children: /* @__PURE__ */ s("p", { children: j }) }) : /* @__PURE__ */ s("div", { className: "embed-chat-page embed-chat-page--loading", children: /* @__PURE__ */ C("div", { className: "embed-chat-page__panel", children: [
|
|
116
115
|
/* @__PURE__ */ s(R, { size: "large" }),
|
|
117
116
|
/* @__PURE__ */ s("p", { className: "embed-chat-page__step", children: I }),
|
|
118
117
|
w.length > 0 ? /* @__PURE__ */ s("ul", { className: "embed-chat-page__done-list", children: w.filter((e) => e.trim().length > 0).map((e, o) => /* @__PURE__ */ C(
|
|
@@ -129,5 +128,5 @@ function ne() {
|
|
|
129
128
|
] }) });
|
|
130
129
|
}
|
|
131
130
|
export {
|
|
132
|
-
|
|
131
|
+
oe as default
|
|
133
132
|
};
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import { a as h, f as _, B as N, v as A, t as g } from "./ComponentDoc-Boc9n2c_.js";
|
|
2
|
+
import { jsx as p, jsxs as I } from "react/jsx-runtime";
|
|
3
|
+
import { useMemo as S, useState as C, useEffect as G, Component as L } from "react";
|
|
4
|
+
function $(t) {
|
|
5
|
+
if (t == null) return !0;
|
|
6
|
+
const e = String(t).trim();
|
|
7
|
+
return e === "" || e === "0";
|
|
8
|
+
}
|
|
9
|
+
function b(t) {
|
|
10
|
+
const e = (i) => {
|
|
11
|
+
if (typeof i != "string" || !i.trim()) return [];
|
|
12
|
+
try {
|
|
13
|
+
const s = JSON.parse(i);
|
|
14
|
+
return Array.isArray(s) ? s.filter((d) => typeof d == "string") : [];
|
|
15
|
+
} catch {
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
}, n = (i) => {
|
|
19
|
+
if (typeof i != "string" || !i.trim()) return [];
|
|
20
|
+
try {
|
|
21
|
+
const s = JSON.parse(i);
|
|
22
|
+
return Array.isArray(s) ? s.filter(
|
|
23
|
+
(d) => !!d && typeof d == "object" && typeof d.type == "string"
|
|
24
|
+
) : [];
|
|
25
|
+
} catch {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
}, r = () => {
|
|
29
|
+
const i = t.assigneeUserIds;
|
|
30
|
+
let s = null;
|
|
31
|
+
if (Array.isArray(i))
|
|
32
|
+
s = i;
|
|
33
|
+
else if (typeof i == "string" && i.trim())
|
|
34
|
+
try {
|
|
35
|
+
const o = JSON.parse(i);
|
|
36
|
+
s = Array.isArray(o) ? o : null;
|
|
37
|
+
} catch {
|
|
38
|
+
s = i.split(",");
|
|
39
|
+
}
|
|
40
|
+
if (s) {
|
|
41
|
+
const o = s.map((u) => String(u ?? "").trim()).filter(Boolean);
|
|
42
|
+
if (o.length > 0) return Array.from(new Set(o));
|
|
43
|
+
}
|
|
44
|
+
const d = t.assigneeUserId == null ? "" : String(t.assigneeUserId);
|
|
45
|
+
return d.trim() ? [d.trim()] : [];
|
|
46
|
+
}, c = (i) => {
|
|
47
|
+
const s = t.assignees, d = Array.isArray(s) ? s.map((o) => {
|
|
48
|
+
const u = o ?? {}, m = String(u.userId ?? "").trim();
|
|
49
|
+
return m ? { userId: m, name: String(u.name ?? "").trim() || m } : null;
|
|
50
|
+
}).filter((o) => o != null) : [];
|
|
51
|
+
return d.length > 0 ? d : i.map((o) => ({ userId: o, name: o }));
|
|
52
|
+
}, l = r();
|
|
53
|
+
return {
|
|
54
|
+
id: g(t.id),
|
|
55
|
+
projectId: t.projectId == null ? null : g(t.projectId),
|
|
56
|
+
userId: String(t.userId ?? ""),
|
|
57
|
+
title: String(t.title ?? ""),
|
|
58
|
+
detail: t.detail == null ? null : String(t.detail),
|
|
59
|
+
status: t.status ?? "TODO",
|
|
60
|
+
priority: t.priority ?? "MEDIUM",
|
|
61
|
+
dueDate: t.dueDate == null ? null : String(t.dueDate).slice(0, 10),
|
|
62
|
+
assigneeUserId: l[0] ?? null,
|
|
63
|
+
assigneeUserIds: l,
|
|
64
|
+
assignees: c(l),
|
|
65
|
+
projectTitle: t.projectTitle == null || !String(t.projectTitle).trim() ? null : String(t.projectTitle),
|
|
66
|
+
tags: e(t.tags),
|
|
67
|
+
links: n(t.links),
|
|
68
|
+
parentId: $(t.parentId) ? "" : g(t.parentId),
|
|
69
|
+
sortOrder: t.sortOrder == null ? 0 : Number(t.sortOrder),
|
|
70
|
+
completedAt: t.completedAt == null ? null : String(t.completedAt),
|
|
71
|
+
completedBy: t.completedBy == null ? null : String(t.completedBy),
|
|
72
|
+
createByName: t.createByName == null ? null : String(t.createByName),
|
|
73
|
+
updateTime: t.updateTime == null ? null : String(t.updateTime),
|
|
74
|
+
agentId: t.agentId == null ? null : g(t.agentId),
|
|
75
|
+
agentSessionId: t.agentSessionId == null ? null : g(t.agentSessionId)
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function B(t) {
|
|
79
|
+
const e = t ?? {};
|
|
80
|
+
return {
|
|
81
|
+
id: g(e.id),
|
|
82
|
+
userId: String(e.userId ?? ""),
|
|
83
|
+
title: String(e.title ?? ""),
|
|
84
|
+
icon: e.icon == null ? null : String(e.icon),
|
|
85
|
+
description: e.description == null ? null : String(e.description),
|
|
86
|
+
visibility: e.visibility === "shared" ? "shared" : "private",
|
|
87
|
+
sortOrder: e.sortOrder == null ? 0 : Number(e.sortOrder),
|
|
88
|
+
extraInfo: e.extraInfo == null ? null : String(e.extraInfo),
|
|
89
|
+
createByName: e.createByName == null ? null : String(e.createByName)
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function O(t) {
|
|
93
|
+
const e = t ?? {}, n = Array.isArray(e.memberDetails) ? e.memberDetails : [];
|
|
94
|
+
return {
|
|
95
|
+
...B(e),
|
|
96
|
+
openCount: e.openCount == null ? 0 : Number(e.openCount),
|
|
97
|
+
memberDetails: n.map((r) => {
|
|
98
|
+
const c = r ?? {}, l = String(c.userId ?? "").trim();
|
|
99
|
+
return l ? { userId: l, userName: String(c.userName ?? "").trim() || l } : null;
|
|
100
|
+
}).filter((r) => r != null)
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
async function et(t = "") {
|
|
104
|
+
const e = t ? `?token=${encodeURIComponent(t)}` : "", n = await h(`${N}/todo/projects${e}`, _), r = await A(n, "获取待办项目失败");
|
|
105
|
+
return {
|
|
106
|
+
owned: ((r == null ? void 0 : r.owned) ?? []).map(O),
|
|
107
|
+
joined: ((r == null ? void 0 : r.joined) ?? []).map(O)
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
async function nt(t = {}, e = "") {
|
|
111
|
+
const n = new URLSearchParams();
|
|
112
|
+
e && n.set("token", e), t.view && n.set("view", t.view), t.projectId != null && n.set("projectId", String(t.projectId)), t.status && n.set("status", t.status), t.keyword && n.set("keyword", t.keyword);
|
|
113
|
+
const r = n.toString() ? `?${n.toString()}` : "", c = await h(`${N}/todo/items${r}`, _);
|
|
114
|
+
return (await A(
|
|
115
|
+
c,
|
|
116
|
+
"获取事项失败"
|
|
117
|
+
) ?? []).map(b);
|
|
118
|
+
}
|
|
119
|
+
async function rt(t, e = "") {
|
|
120
|
+
const n = e ? `?token=${encodeURIComponent(e)}` : "", r = await h(`${N}/todo/items${n}`, {
|
|
121
|
+
..._,
|
|
122
|
+
method: "POST",
|
|
123
|
+
headers: { "Content-Type": "application/json" },
|
|
124
|
+
body: JSON.stringify(t)
|
|
125
|
+
}), c = await A(r, "新建事项失败");
|
|
126
|
+
return b(c);
|
|
127
|
+
}
|
|
128
|
+
const D = {
|
|
129
|
+
RUNTIME_MONITOR_VIEW: ["RUNTIME_MONITOR_MANAGE"],
|
|
130
|
+
EVALUATION_VIEW: ["EVALUATION_MANAGE"],
|
|
131
|
+
COLLABORATION_VIEW: [
|
|
132
|
+
"AGENT_MANAGE",
|
|
133
|
+
"SKILL_MANAGE",
|
|
134
|
+
"SCENARIO_MANAGE",
|
|
135
|
+
"PROFILE_MANAGE",
|
|
136
|
+
"TAG_MANAGE",
|
|
137
|
+
"TOOL_MANAGE"
|
|
138
|
+
],
|
|
139
|
+
EVOLUTION_VIEW: ["EVOLUTION_MANAGE"],
|
|
140
|
+
OPS_CONFIG_VIEW: [
|
|
141
|
+
"OPS_CONFIG_MANAGE",
|
|
142
|
+
"ONCALL_MANAGE",
|
|
143
|
+
"ANNOUNCEMENT_MANAGE",
|
|
144
|
+
"OPS_REPORT_MANAGE"
|
|
145
|
+
],
|
|
146
|
+
KNOWLEDGE_VIEW: ["KNOWLEDGE_MANAGE"],
|
|
147
|
+
WEBIDE_VIEW: ["WEBIDE_MANAGE"]
|
|
148
|
+
};
|
|
149
|
+
function it(t, e) {
|
|
150
|
+
var r;
|
|
151
|
+
if (!t) return !1;
|
|
152
|
+
if (t.is_global_admin || (r = t.permissions) != null && r.includes(e)) return !0;
|
|
153
|
+
const n = D[e];
|
|
154
|
+
return !!(n != null && n.some((c) => {
|
|
155
|
+
var l;
|
|
156
|
+
return (l = t.permissions) == null ? void 0 : l.includes(c);
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
const P = "_wrap_2gcw5_1", U = "_card_2gcw5_9", R = "_badge_2gcw5_19", V = "_title_2gcw5_41", W = "_desc_2gcw5_48", v = "_actions_2gcw5_55", x = "_primary_2gcw5_63", z = "_secondary_2gcw5_75", F = "_details_2gcw5_90", J = "_pre_2gcw5_102", w = "_copy_2gcw5_117", K = "_compact_2gcw5_127", a = {
|
|
160
|
+
wrap: P,
|
|
161
|
+
card: U,
|
|
162
|
+
badge: R,
|
|
163
|
+
title: V,
|
|
164
|
+
desc: W,
|
|
165
|
+
actions: v,
|
|
166
|
+
primary: x,
|
|
167
|
+
secondary: z,
|
|
168
|
+
details: F,
|
|
169
|
+
pre: J,
|
|
170
|
+
copy: w,
|
|
171
|
+
compact: K
|
|
172
|
+
};
|
|
173
|
+
function H(t) {
|
|
174
|
+
const e = t, n = `${(e == null ? void 0 : e.name) ?? ""} ${(e == null ? void 0 : e.message) ?? ""} ${typeof t == "string" ? t : ""}`;
|
|
175
|
+
return /ChunkLoadError|Loading chunk|Failed to fetch dynamically imported module|Importing a module script failed|error loading dynamically imported module/i.test(n);
|
|
176
|
+
}
|
|
177
|
+
function Y(t) {
|
|
178
|
+
const { status: e, error: n } = t;
|
|
179
|
+
return e === 401 ? {
|
|
180
|
+
kind: "unauthorized",
|
|
181
|
+
status: e,
|
|
182
|
+
badge: "401",
|
|
183
|
+
title: "登录已失效",
|
|
184
|
+
description: "当前会话已过期或未建立,请重新登录后继续。重登后会回到这个页面。"
|
|
185
|
+
} : e === 403 ? {
|
|
186
|
+
kind: "forbidden",
|
|
187
|
+
status: e,
|
|
188
|
+
badge: "403",
|
|
189
|
+
title: "没有访问权限",
|
|
190
|
+
description: "当前账号无权访问该功能。如需开通,请联系管理员分配权限。"
|
|
191
|
+
} : e === 404 ? {
|
|
192
|
+
kind: "not-found",
|
|
193
|
+
status: e,
|
|
194
|
+
badge: "404",
|
|
195
|
+
title: "功能接口未就绪",
|
|
196
|
+
description: "这个页面要用的后端接口还没有部署,或前后端路径对不上。可以重试;若持续如此,请把技术详情发给运维确认版本。"
|
|
197
|
+
} : e && e >= 500 ? {
|
|
198
|
+
kind: "server",
|
|
199
|
+
status: e,
|
|
200
|
+
badge: String(e),
|
|
201
|
+
title: "服务暂时不可用",
|
|
202
|
+
description: "后端返回了错误。稍后重试;如果反复出现,请把技术详情发给运维。"
|
|
203
|
+
} : e === 0 ? {
|
|
204
|
+
kind: "network",
|
|
205
|
+
status: e,
|
|
206
|
+
badge: "!",
|
|
207
|
+
title: "网络不可用",
|
|
208
|
+
description: "请求没有到达后端。请检查网络,或确认本地后端服务是否已启动。"
|
|
209
|
+
} : H(n) ? {
|
|
210
|
+
kind: "chunk",
|
|
211
|
+
badge: "⟳",
|
|
212
|
+
title: "页面资源加载失败",
|
|
213
|
+
description: "可能刚发布了新版本,旧页面资源已被替换。刷新页面即可拿到新资源。"
|
|
214
|
+
} : n != null ? {
|
|
215
|
+
kind: "render",
|
|
216
|
+
badge: "!",
|
|
217
|
+
title: "页面渲染出错",
|
|
218
|
+
description: "这个页面遇到了未预期的错误,已被拦截,不影响其他页面。可以重试;仍然失败请把技术详情发给研发。"
|
|
219
|
+
} : {
|
|
220
|
+
kind: "unknown",
|
|
221
|
+
badge: "!",
|
|
222
|
+
title: "页面加载失败",
|
|
223
|
+
description: "发生了未知错误。请重试,或返回首页换个入口再试。"
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
function Q(t, e) {
|
|
227
|
+
const n = [];
|
|
228
|
+
if (n.push(`页面:${typeof location < "u" ? location.pathname + location.search : "-"}`), n.push(`时间:${(/* @__PURE__ */ new Date()).toISOString()}`), t != null && n.push(`HTTP:${t}`), e != null) {
|
|
229
|
+
const r = e;
|
|
230
|
+
r != null && r.name && n.push(`错误名:${String(r.name)}`), r != null && r.message && n.push(`消息:${String(r.message)}`), r != null && r.stack ? n.push(`堆栈:
|
|
231
|
+
${String(r.stack)}`) : typeof e != "object" && n.push(`原文:${String(e)}`);
|
|
232
|
+
}
|
|
233
|
+
return n.join(`
|
|
234
|
+
`).slice(0, 4e3);
|
|
235
|
+
}
|
|
236
|
+
const X = ({
|
|
237
|
+
status: t,
|
|
238
|
+
error: e,
|
|
239
|
+
title: n,
|
|
240
|
+
description: r,
|
|
241
|
+
retry: c,
|
|
242
|
+
retryText: l,
|
|
243
|
+
extra: i,
|
|
244
|
+
showHome: s = !0,
|
|
245
|
+
compact: d = !1,
|
|
246
|
+
className: o
|
|
247
|
+
}) => {
|
|
248
|
+
const u = S(() => Y({ status: t, error: e }), [t, e]), [m, f] = C(!1), E = S(() => Q(t, e), [t, e]);
|
|
249
|
+
G(() => {
|
|
250
|
+
if (!m) return;
|
|
251
|
+
const y = setTimeout(() => f(!1), 2e3);
|
|
252
|
+
return () => clearTimeout(y);
|
|
253
|
+
}, [m]);
|
|
254
|
+
const T = async () => {
|
|
255
|
+
try {
|
|
256
|
+
await navigator.clipboard.writeText(E), f(!0);
|
|
257
|
+
} catch {
|
|
258
|
+
f(!1);
|
|
259
|
+
}
|
|
260
|
+
}, k = () => {
|
|
261
|
+
const y = encodeURIComponent(location.pathname + location.search);
|
|
262
|
+
location.assign(`/login?redirect=${y}`);
|
|
263
|
+
}, M = () => c ? /* @__PURE__ */ p("button", { type: "button", className: a.primary, onClick: c, children: l || "重试" }) : u.kind === "chunk" ? /* @__PURE__ */ p("button", { type: "button", className: a.primary, onClick: () => location.reload(), children: "刷新页面" }) : u.kind === "unauthorized" ? /* @__PURE__ */ p("button", { type: "button", className: a.primary, onClick: k, children: "重新登录" }) : null, j = e != null || t != null;
|
|
264
|
+
return /* @__PURE__ */ p(
|
|
265
|
+
"div",
|
|
266
|
+
{
|
|
267
|
+
className: [a.wrap, d ? a.compact : "", o || ""].filter(Boolean).join(" "),
|
|
268
|
+
role: "alert",
|
|
269
|
+
"data-error-kind": u.kind,
|
|
270
|
+
children: /* @__PURE__ */ I("div", { className: a.card, children: [
|
|
271
|
+
/* @__PURE__ */ p("div", { className: a.badge, "data-kind": u.kind, children: u.badge }),
|
|
272
|
+
/* @__PURE__ */ p("h2", { className: a.title, children: n || u.title }),
|
|
273
|
+
/* @__PURE__ */ p("p", { className: a.desc, children: r || u.description }),
|
|
274
|
+
/* @__PURE__ */ I("div", { className: a.actions, children: [
|
|
275
|
+
M(),
|
|
276
|
+
i,
|
|
277
|
+
s && u.kind !== "unauthorized" && /* @__PURE__ */ p("a", { className: a.secondary, href: "/", children: "返回首页" })
|
|
278
|
+
] }),
|
|
279
|
+
j && /* @__PURE__ */ I("details", { className: a.details, children: [
|
|
280
|
+
/* @__PURE__ */ p("summary", { children: "技术详情" }),
|
|
281
|
+
/* @__PURE__ */ p("pre", { className: a.pre, children: E }),
|
|
282
|
+
/* @__PURE__ */ p("button", { type: "button", className: a.copy, onClick: T, children: m ? "已复制" : "复制详情" })
|
|
283
|
+
] })
|
|
284
|
+
] })
|
|
285
|
+
}
|
|
286
|
+
);
|
|
287
|
+
};
|
|
288
|
+
class st extends L {
|
|
289
|
+
constructor(e) {
|
|
290
|
+
super(e), this.state = { hasError: !1, error: null };
|
|
291
|
+
}
|
|
292
|
+
static getDerivedStateFromError(e) {
|
|
293
|
+
return { hasError: !0, error: e };
|
|
294
|
+
}
|
|
295
|
+
componentDidCatch(e, n) {
|
|
296
|
+
console.error("[ErrorBoundary]", e, n.componentStack);
|
|
297
|
+
}
|
|
298
|
+
render() {
|
|
299
|
+
return this.state.hasError ? this.props.fallback ? this.props.fallback : /* @__PURE__ */ p(
|
|
300
|
+
X,
|
|
301
|
+
{
|
|
302
|
+
error: this.state.error,
|
|
303
|
+
retry: () => this.setState({ hasError: !1, error: null })
|
|
304
|
+
}
|
|
305
|
+
) : this.props.children;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
export {
|
|
309
|
+
st as E,
|
|
310
|
+
X as P,
|
|
311
|
+
nt as a,
|
|
312
|
+
rt as c,
|
|
313
|
+
et as f,
|
|
314
|
+
it as h,
|
|
315
|
+
H as i
|
|
316
|
+
};
|