@yuku123/z-team-component 0.2.36 → 0.2.38

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 (43) hide show
  1. package/dist/ChangeLogView-nPAmM1X0.js +542 -0
  2. package/dist/{ComponentDoc-B2qJmtU6.js → ComponentDoc-CSdxKqUS.js} +3 -3
  3. package/dist/{InvitationManagementPage-61uxWWwF.js → InvitationManagementPage-CffDsyab.js} +1 -1
  4. package/dist/{OnboardingPage-BBKst6Qf.js → OnboardingPage-2pc1hLlZ.js} +2 -2
  5. package/dist/SmartWorkbench.module-xRRmpTTw.js +85 -0
  6. package/dist/{SystemShell-C52BvjTM.js → SystemShell-Vb8zer_S.js} +160 -158
  7. package/dist/{admin-logs-Dv86pFvY.js → admin-logs-D6HtRcK6.js} +2 -2
  8. package/dist/{api-19TXED_O.js → api-C78tCfne.js} +156 -155
  9. package/dist/{api-Bf3E-c73.js → api-DjTLmeZp.js} +1 -1
  10. package/dist/{createWorkspaceWsHandler-CBk4DqP4.js → createWorkspaceWsHandler-mq-UTF2O.js} +4 -4
  11. package/dist/{index-DOPkM2W8.js → index-7nSly-MA.js} +6 -6
  12. package/dist/{index-BG755_pa.js → index-B3zpx3YB.js} +1 -1
  13. package/dist/{index-BoGVJ0hC.js → index-BAK7UDvY.js} +1 -1
  14. package/dist/{index-tDO0JBvI.js → index-BAY37t4f.js} +5 -5
  15. package/dist/{index-DHh0L9FB.js → index-BT3VobW1.js} +9 -9
  16. package/dist/{index-BTLD5gUt.js → index-BX1Wd9x9.js} +3 -3
  17. package/dist/{index-BIJnjJd5.js → index-Bdu31aRV.js} +2 -2
  18. package/dist/{index-ff3leJCK.js → index-BoBuTvFh.js} +3 -3
  19. package/dist/{index-7VAcVmtR.js → index-BtaRkt8l.js} +7 -7
  20. package/dist/{index-CFakyLYo.js → index-C52lmww8.js} +65 -56
  21. package/dist/{index-DYgD6BuB.js → index-ClA0896K.js} +4 -4
  22. package/dist/{index-B_EBV24V.js → index-D9AqC2O-.js} +1 -1
  23. package/dist/{index-BjqYiZpC.js → index-DFY3lzq0.js} +3 -3
  24. package/dist/{index-BEqPF6wm.js → index-Dn3Q_5em.js} +862 -863
  25. package/dist/{index-Bd57t_yF.js → index-DpcrvKsK.js} +1 -1
  26. package/dist/index-a4cM-7bG.js +1433 -0
  27. package/dist/{index-CEmwgW65.js → index-droRtYU6.js} +5 -5
  28. package/dist/{index-x4-W5ClM.js → index-qK6pyAGy.js} +4 -4
  29. package/dist/index.js +1 -1
  30. package/dist/{instance-D951fRuD.js → instance-D5dhjbgg.js} +1 -1
  31. package/dist/pages.js +1 -1
  32. package/dist/{schedule-DIlnA1uC.js → schedule-C-4ksDPw.js} +1 -1
  33. package/dist/{send-default-agent-team-message-Bbs2rMNf.js → send-default-agent-team-message-C882sJLV.js} +1 -1
  34. package/dist/{sso-user-BEY5ICaR.js → sso-user-Bi9_l9yi.js} +1 -1
  35. package/dist/{training-B-9tNFQw.js → training-Ba09KItE.js} +1 -1
  36. package/dist/{useAppStore-BQN-26ns.js → useAppStore-ibJyVIAX.js} +1 -1
  37. package/dist/{webide-mvUPb2k9.js → webide-BEHelWeW.js} +4 -4
  38. package/dist/z-team-component.css +1 -1
  39. package/package.json +1 -1
  40. package/dist/ChangeLogView-FLd1wS8H.js +0 -502
  41. package/dist/DebugPlayground-cxffrMgF.js +0 -15
  42. package/dist/SmartWorkbench.module-DzQskKT0.js +0 -85
  43. package/dist/index-Ddm63H7s.js +0 -1335
@@ -0,0 +1,542 @@
1
+ import { jsxs as i, jsx as a, Fragment as te } from "react/jsx-runtime";
2
+ import { h as be, j as ae, r as Ne, k as Te } from "./api-C78tCfne.js";
3
+ import { message as ne, Button as V, DatePicker as De, Spin as j, Empty as ie, Tag as re } from "antd";
4
+ import S from "dayjs";
5
+ import "./echarts-B1OU1xr4.js";
6
+ import { useState as u, useCallback as x, useEffect as I, useMemo as H, useRef as se } from "react";
7
+ import * as Se from "echarts/core";
8
+ const we = "_screen_12g84_2", Ce = "_banner_12g84_14", Le = "_shareBtn_12g84_22", Be = "_bannerInner_12g84_50", xe = "_bannerLeft_12g84_59", Ie = "_bannerTitle_12g84_65", Re = "_bannerSubtitle_12g84_73", Ae = "_stats_12g84_79", He = "_statItem_12g84_86", Ee = "_statNum_12g84_93", Oe = "_statLabel_12g84_100", ke = "_statDivider_12g84_105", We = "_chartSection_12g84_112", $e = "_chartInner_12g84_118", Me = "_chartHeader_12g84_125", Ve = "_chartHeaderLeft_12g84_133", je = "_chartRangeWrap_12g84_139", ze = "_rangeBtns_12g84_146", Pe = "_rangeBtn_12g84_146", Ge = "_rangeBtnActive_12g84_170", qe = "_chartRangePicker_12g84_183", Fe = "_chartTitle_12g84_197", Ye = "_chartSubtitle_12g84_204", Ke = "_chartBody_12g84_210", Xe = "_chartLoading_12g84_214", Ze = "_chartEmpty_12g84_215", Je = "_main_12g84_225", Qe = "_timeline_12g84_236", Ue = "_timelineHeader_12g84_247", et = "_timelineScroll_12g84_256", tt = "_timelineItem_12g84_262", at = "_timelineItemActive_12g84_277", nt = "_timelineDot_12g84_282", it = "_timelineContent_12g84_297", rt = "_timelineTop_12g84_302", st = "_versionTag_12g84_309", ct = "_versionDate_12g84_315", lt = "_timelineSummary_12g84_320", ot = "_timelineMeta_12g84_330", dt = "_latestBadge_12g84_336", mt = "_detail_12g84_348", ht = "_detailHeader_12g84_359", gt = "_detailTitleRow_12g84_365", _t = "_detailVersion_12g84_371", pt = "_detailDate_12g84_377", ut = "_detailSummary_12g84_382", ft = "_detailScroll_12g84_389", yt = "_pointGrid_12g84_396", vt = "_pointCard_12g84_402", bt = "_pointHead_12g84_416", Nt = "_pointTitle_12g84_424", Tt = "_pointHeadRight_12g84_432", Dt = "_committerTag_12g84_441", St = "_pointTag_12g84_452", wt = "_pointDetail_12g84_458", Ct = "_loadingWrap_12g84_466", Lt = "_emptyWrap_12g84_473", Bt = "_authBox_12g84_483", xt = "_authHint_12g84_487", It = "_embedScreen_12g84_496", e = {
9
+ screen: we,
10
+ banner: Ce,
11
+ shareBtn: Le,
12
+ bannerInner: Be,
13
+ bannerLeft: xe,
14
+ bannerTitle: Ie,
15
+ bannerSubtitle: Re,
16
+ stats: Ae,
17
+ statItem: He,
18
+ statNum: Ee,
19
+ statLabel: Oe,
20
+ statDivider: ke,
21
+ chartSection: We,
22
+ chartInner: $e,
23
+ chartHeader: Me,
24
+ chartHeaderLeft: Ve,
25
+ chartRangeWrap: je,
26
+ rangeBtns: ze,
27
+ rangeBtn: Pe,
28
+ rangeBtnActive: Ge,
29
+ chartRangePicker: qe,
30
+ chartTitle: Fe,
31
+ chartSubtitle: Ye,
32
+ chartBody: Ke,
33
+ chartLoading: Xe,
34
+ chartEmpty: Ze,
35
+ main: Je,
36
+ timeline: Qe,
37
+ timelineHeader: Ue,
38
+ timelineScroll: et,
39
+ timelineItem: tt,
40
+ timelineItemActive: at,
41
+ timelineDot: nt,
42
+ timelineContent: it,
43
+ timelineTop: rt,
44
+ versionTag: st,
45
+ versionDate: ct,
46
+ timelineSummary: lt,
47
+ timelineMeta: ot,
48
+ latestBadge: dt,
49
+ detail: mt,
50
+ detailHeader: ht,
51
+ detailTitleRow: gt,
52
+ detailVersion: _t,
53
+ detailDate: pt,
54
+ detailSummary: ut,
55
+ detailScroll: ft,
56
+ pointGrid: yt,
57
+ pointCard: vt,
58
+ pointHead: bt,
59
+ pointTitle: Nt,
60
+ pointHeadRight: Tt,
61
+ committerTag: Dt,
62
+ pointTag: St,
63
+ pointDetail: wt,
64
+ loadingWrap: Ct,
65
+ emptyWrap: Lt,
66
+ authBox: Bt,
67
+ authHint: xt,
68
+ embedScreen: It
69
+ }, Rt = {
70
+ 新功能: "green",
71
+ 优化: "blue",
72
+ 修复: "orange",
73
+ 重构: "purple",
74
+ 其他: "default"
75
+ }, z = {
76
+ 新功能: "#52c41a",
77
+ 优化: "#2f70f1",
78
+ 修复: "#fa8c16",
79
+ 重构: "#722ed1",
80
+ 其他: "#8c8c8c"
81
+ }, ce = 8;
82
+ function At(g) {
83
+ const w = String((g == null ? void 0 : g.userMessage) || (g == null ? void 0 : g.message) || "");
84
+ return /未登录|Token无效|登录已失效|登录失效|登录过期|重新登录/.test(w);
85
+ }
86
+ function Ht({
87
+ option: g,
88
+ height: w = 320
89
+ }) {
90
+ const N = se(null), d = se(null);
91
+ return I(() => {
92
+ if (!N.current) return;
93
+ d.current || (d.current = Se.init(N.current)), d.current.setOption(g, !0);
94
+ const y = () => {
95
+ var v;
96
+ return (v = d.current) == null ? void 0 : v.resize();
97
+ };
98
+ return window.addEventListener("resize", y), () => window.removeEventListener("resize", y);
99
+ }, [g]), I(
100
+ () => () => {
101
+ var y;
102
+ (y = d.current) == null || y.dispose(), d.current = null;
103
+ },
104
+ []
105
+ ), /* @__PURE__ */ a("div", { ref: N, style: { width: "100%", height: `${w}px` } });
106
+ }
107
+ function Vt({
108
+ variant: g = "page"
109
+ }) {
110
+ const [w, N] = u(!1), [d, y] = u([]), [v, E] = u(null), [_, P] = u(null), [le, G] = u(!1), [O, oe] = u(
111
+ {}
112
+ ), [de, q] = u(!1), [C, F] = u(!1), [R, L] = u([
113
+ S().subtract(6, "day").startOf("day"),
114
+ S().endOf("day")
115
+ ]), [k, Y] = u("7"), K = x(async () => {
116
+ N(!0);
117
+ try {
118
+ const n = await be("z-team"), o = [...(Array.isArray(n) ? n : []).filter(
119
+ (c) => c && typeof c == "object"
120
+ )].sort(
121
+ (c, l) => new Date(l.commitDate).getTime() - new Date(c.commitDate).getTime()
122
+ );
123
+ y(o), F(!1), o.length > 0 ? E(o[0].id) : (E(null), P(null));
124
+ } catch (n) {
125
+ console.error("[ChangeLogView] load versions error:", n), At(n) && F(!0);
126
+ } finally {
127
+ N(!1);
128
+ }
129
+ }, []), X = x(async (n) => {
130
+ G(!0);
131
+ try {
132
+ const r = await ae(n, void 0, "z-team");
133
+ P(r && typeof r == "object" ? r : null);
134
+ } catch (r) {
135
+ console.error("[ChangeLogView] load detail error:", r);
136
+ } finally {
137
+ G(!1);
138
+ }
139
+ }, []);
140
+ I(() => {
141
+ K();
142
+ }, [K]), I(() => {
143
+ v != null && X(v);
144
+ }, [v, X]);
145
+ const W = H(() => {
146
+ const n = d.length, r = d.reduce(
147
+ (c, l) => c + (l.pointCount ?? 0),
148
+ 0
149
+ );
150
+ let o = 0;
151
+ if (d.length >= 2) {
152
+ const c = d.map((l) => new Date(l.commitDate).getTime()).filter((l) => !Number.isNaN(l));
153
+ c.length >= 2 && (o = Math.round(
154
+ (Math.max(...c) - Math.min(...c)) / 864e5
155
+ ));
156
+ }
157
+ return { versionCount: n, pointTotal: r, spanDays: o };
158
+ }, [d]), b = H(() => {
159
+ if (!R) return d;
160
+ const [n, r] = R, o = n.startOf("day").valueOf(), c = r.endOf("day").valueOf();
161
+ return d.filter((l) => {
162
+ const T = new Date(l.commitDate).getTime();
163
+ return !Number.isNaN(T) && T >= o && T <= c;
164
+ });
165
+ }, [d, R]);
166
+ I(() => {
167
+ if (b.length === 0) return;
168
+ let n = !1;
169
+ return q(!0), Promise.all(
170
+ b.map(
171
+ (r) => ae(r.id, void 0, "z-team").catch((o) => (console.warn(
172
+ `[ChangeLogView] failed to load detail for version ${r.version}`,
173
+ o
174
+ ), null))
175
+ )
176
+ ).then((r) => {
177
+ if (n) return;
178
+ const o = {};
179
+ r.forEach((c, l) => {
180
+ c && typeof c == "object" && b[l] && (o[b[l].id] = c);
181
+ }), oe(o);
182
+ }).finally(() => {
183
+ n || q(!1);
184
+ }), () => {
185
+ n = !0;
186
+ };
187
+ }, [b]);
188
+ const { chartOption: me, hasChartData: he } = H(() => {
189
+ const n = [...b].sort(
190
+ (t, s) => new Date(t.commitDate).getTime() - new Date(s.commitDate).getTime()
191
+ ), r = n.map((t) => t.commitDate), o = /* @__PURE__ */ new Set(), c = {};
192
+ Object.values(O).forEach((t) => {
193
+ (Array.isArray(t == null ? void 0 : t.items) ? t.items : []).forEach((m) => {
194
+ if (m.category ? o.add(m.category) : o.add("其他"), typeof m.committers == "string") {
195
+ const p = m.committers.split(",").map((h) => h.trim()).filter(Boolean);
196
+ if (p.length > 0) {
197
+ const h = 1 / p.length;
198
+ p.forEach((B) => {
199
+ c[B] = (c[B] || 0) + h;
200
+ });
201
+ }
202
+ }
203
+ });
204
+ });
205
+ const l = ["新功能", "优化", "修复", "重构", "其他"].filter(
206
+ (t) => o.has(t)
207
+ );
208
+ o.forEach((t) => {
209
+ l.includes(t) || l.push(t);
210
+ });
211
+ const T = Object.entries(c).sort((t, s) => s[1] - t[1]).map(([t]) => t), pe = T.slice(0, ce), Q = T.length > ce, D = {};
212
+ l.forEach(
213
+ (t) => D[t] = new Array(r.length).fill(0)
214
+ );
215
+ const f = {};
216
+ pe.forEach(
217
+ (t) => f[t] = new Array(r.length).fill(0)
218
+ ), Q && (f.其他 = new Array(r.length).fill(0)), n.forEach((t, s) => {
219
+ const m = O[t.id];
220
+ if (!m) return;
221
+ (Array.isArray(m.items) ? m.items : []).forEach((h) => {
222
+ const B = h.category || "其他";
223
+ if (D[B] && (D[B][s] += 1), typeof h.committers == "string") {
224
+ const M = h.committers.split(",").map((A) => A.trim()).filter(Boolean);
225
+ if (M.length > 0) {
226
+ const A = 1 / M.length;
227
+ M.forEach((ee) => {
228
+ f[ee] ? f[ee][s] += A : Q && (f.其他[s] += A);
229
+ });
230
+ }
231
+ }
232
+ });
233
+ });
234
+ const ue = n.reduce((t, s) => {
235
+ const m = t.length > 0 ? t[t.length - 1] : 0;
236
+ return t.push(m + (s.pointCount ?? 0)), t;
237
+ }, []), U = {};
238
+ l.forEach((t) => {
239
+ U[t] = D[t].reduce((s, m) => {
240
+ const p = s.length > 0 ? s[s.length - 1] : 0;
241
+ return s.push(p + m), s;
242
+ }, []);
243
+ });
244
+ const fe = [
245
+ ...l.map((t) => ({
246
+ name: t,
247
+ type: "bar",
248
+ stack: "category",
249
+ data: D[t],
250
+ itemStyle: { color: z[t] || "#8c8c8c" },
251
+ barMaxWidth: 40
252
+ })),
253
+ ...Object.keys(f).map((t) => ({
254
+ name: `@${t}`,
255
+ type: "bar",
256
+ stack: "committer",
257
+ data: f[t],
258
+ barMaxWidth: 40
259
+ })),
260
+ {
261
+ name: "要点累计",
262
+ type: "line",
263
+ yAxisIndex: 1,
264
+ data: ue,
265
+ smooth: !0,
266
+ symbol: "circle",
267
+ symbolSize: 6,
268
+ lineStyle: { color: "#2f70f1", width: 2 },
269
+ itemStyle: { color: "#2f70f1", borderWidth: 2 }
270
+ },
271
+ ...l.map((t) => ({
272
+ name: `${t}累计`,
273
+ type: "line",
274
+ yAxisIndex: 1,
275
+ data: U[t],
276
+ smooth: !0,
277
+ symbol: "circle",
278
+ symbolSize: 4,
279
+ lineStyle: {
280
+ color: z[t] || "#8c8c8c",
281
+ width: 2
282
+ },
283
+ itemStyle: { color: z[t] || "#8c8c8c" }
284
+ }))
285
+ ], ye = {
286
+ tooltip: {
287
+ trigger: "axis",
288
+ axisPointer: { type: "shadow" },
289
+ backgroundColor: "rgba(255,255,255,0.96)",
290
+ borderColor: "#f0f0f0",
291
+ textStyle: { color: "#262626" },
292
+ formatter: (t) => {
293
+ if (!Array.isArray(t) || t.length === 0) return "";
294
+ let m = `<div style="font-weight:600;margin-bottom:6px;">${t[0].axisValue}</div>`;
295
+ return t.forEach((p) => {
296
+ const h = Number(p.value) || 0;
297
+ h > 0 && (m += `<div style="display:flex;align-items:center;gap:8px;line-height:1.8;">
298
+ <span style="display:inline-block;width:10px;height:10px;border-radius:50%;background:${p.color};"></span>
299
+ <span style="flex:1;">${p.seriesName}</span>
300
+ <span style="font-weight:600;">${Number.isInteger(h) ? h : h.toFixed(2)}</span>
301
+ </div>`);
302
+ }), m;
303
+ }
304
+ },
305
+ legend: {
306
+ type: "scroll",
307
+ top: 0,
308
+ left: "center",
309
+ itemGap: 16,
310
+ textStyle: { color: "#595959" }
311
+ },
312
+ grid: {
313
+ left: 16,
314
+ right: 16,
315
+ bottom: 24,
316
+ top: 48,
317
+ containLabel: !0
318
+ },
319
+ xAxis: {
320
+ type: "category",
321
+ data: r,
322
+ axisLine: { lineStyle: { color: "#d9d9d9" } },
323
+ axisLabel: {
324
+ rotate: r.length > 12 ? 30 : 0,
325
+ formatter: (t) => {
326
+ const s = new Date(t).getDay();
327
+ return s >= 1 && s <= 5 ? `{weekday|${t}}` : `{weekend|${t}}`;
328
+ },
329
+ rich: {
330
+ weekday: { color: "#262626", fontWeight: 600 },
331
+ weekend: { color: "#bfbfbf" }
332
+ }
333
+ }
334
+ },
335
+ yAxis: [
336
+ {
337
+ type: "value",
338
+ splitLine: { lineStyle: { color: "#f0f0f0" } },
339
+ axisLabel: { color: "#8c8c8c" }
340
+ },
341
+ {
342
+ type: "value",
343
+ position: "right",
344
+ splitLine: { show: !1 },
345
+ axisLabel: { color: "#2f70f1" }
346
+ }
347
+ ],
348
+ series: fe,
349
+ animationDuration: 600
350
+ }, ve = n.length > 0 && (Object.values(D).some((t) => t.some((s) => s > 0)) || Object.values(f).some((t) => t.some((s) => s > 0)));
351
+ return { chartOption: ye, hasChartData: ve };
352
+ }, [b, O]), Z = x(() => {
353
+ try {
354
+ Ne();
355
+ } catch (n) {
356
+ console.error("[ChangeLogView] redirect to login failed:", n), window.location.href = "/login";
357
+ }
358
+ }, []), ge = x(async () => {
359
+ const n = window.location.href;
360
+ try {
361
+ await navigator.clipboard.writeText(n), ne.success("链接已复制,可直接发送");
362
+ } catch {
363
+ ne.error("复制失败,请手动复制地址栏链接");
364
+ }
365
+ }, []), $ = x((n) => {
366
+ Y(n), L(n === "7" ? [
367
+ S().subtract(6, "day").startOf("day"),
368
+ S().endOf("day")
369
+ ] : n === "30" ? [
370
+ S().subtract(29, "day").startOf("day"),
371
+ S().endOf("day")
372
+ ] : null);
373
+ }, []), _e = g === "embed", J = H(
374
+ () => Array.isArray(_ == null ? void 0 : _.items) ? _.items : [],
375
+ [_]
376
+ );
377
+ return /* @__PURE__ */ i("div", { className: _e ? `${e.screen} ${e.embedScreen}` : e.screen, children: [
378
+ /* @__PURE__ */ a("header", { className: e.banner, children: /* @__PURE__ */ i("div", { className: e.bannerInner, children: [
379
+ /* @__PURE__ */ i("div", { className: e.bannerLeft, children: [
380
+ /* @__PURE__ */ a("h1", { className: e.bannerTitle, children: "Z Team 产品迭代日志" }),
381
+ /* @__PURE__ */ a("p", { className: e.bannerSubtitle, children: "每一次代码提交背后,都是产品的进化" })
382
+ ] }),
383
+ /* @__PURE__ */ i("div", { className: e.stats, children: [
384
+ /* @__PURE__ */ i("div", { className: e.statItem, children: [
385
+ /* @__PURE__ */ a("div", { className: e.statNum, children: C ? "—" : W.versionCount }),
386
+ /* @__PURE__ */ a("div", { className: e.statLabel, children: "迭代版本" })
387
+ ] }),
388
+ /* @__PURE__ */ a("div", { className: e.statDivider }),
389
+ /* @__PURE__ */ i("div", { className: e.statItem, children: [
390
+ /* @__PURE__ */ a("div", { className: e.statNum, children: C ? "—" : W.pointTotal }),
391
+ /* @__PURE__ */ a("div", { className: e.statLabel, children: "产品要点" })
392
+ ] }),
393
+ /* @__PURE__ */ a("div", { className: e.statDivider }),
394
+ /* @__PURE__ */ i("div", { className: e.statItem, children: [
395
+ /* @__PURE__ */ a("div", { className: e.statNum, children: C ? "—" : W.spanDays }),
396
+ /* @__PURE__ */ a("div", { className: e.statLabel, children: "持续天数" })
397
+ ] })
398
+ ] }),
399
+ /* @__PURE__ */ a(
400
+ V,
401
+ {
402
+ className: e.shareBtn,
403
+ type: "default",
404
+ ghost: !0,
405
+ onClick: ge,
406
+ children: "分享链接"
407
+ }
408
+ )
409
+ ] }) }),
410
+ /* @__PURE__ */ a("section", { className: e.chartSection, children: /* @__PURE__ */ i("div", { className: e.chartInner, children: [
411
+ /* @__PURE__ */ i("div", { className: e.chartHeader, children: [
412
+ /* @__PURE__ */ i("div", { className: e.chartHeaderLeft, children: [
413
+ /* @__PURE__ */ a("h2", { className: e.chartTitle, children: "迭代节奏与贡献分布" }),
414
+ /* @__PURE__ */ a("p", { className: e.chartSubtitle, children: "两根柱:类型拆分 · 人员拆分(多人贡献均摊);折线:各类型/总量累计" })
415
+ ] }),
416
+ /* @__PURE__ */ i("div", { className: e.chartRangeWrap, children: [
417
+ /* @__PURE__ */ i("div", { className: e.rangeBtns, children: [
418
+ /* @__PURE__ */ a(
419
+ "button",
420
+ {
421
+ className: k === "7" ? e.rangeBtnActive : e.rangeBtn,
422
+ onClick: () => $("7"),
423
+ children: "近7天"
424
+ }
425
+ ),
426
+ /* @__PURE__ */ a(
427
+ "button",
428
+ {
429
+ className: k === "30" ? e.rangeBtnActive : e.rangeBtn,
430
+ onClick: () => $("30"),
431
+ children: "近30天"
432
+ }
433
+ ),
434
+ /* @__PURE__ */ a(
435
+ "button",
436
+ {
437
+ className: k === "all" ? e.rangeBtnActive : e.rangeBtn,
438
+ onClick: () => $("all"),
439
+ children: "全部"
440
+ }
441
+ )
442
+ ] }),
443
+ /* @__PURE__ */ a(
444
+ De.RangePicker,
445
+ {
446
+ className: e.chartRangePicker,
447
+ value: R,
448
+ allowClear: !0,
449
+ placeholder: ["开始日期", "结束日期"],
450
+ onChange: (n) => {
451
+ Y(""), n && n[0] && n[1] ? L([n[0], n[1]]) : L(null);
452
+ }
453
+ }
454
+ )
455
+ ] })
456
+ ] }),
457
+ /* @__PURE__ */ a("div", { className: e.chartBody, children: de ? /* @__PURE__ */ a("div", { className: e.chartLoading, children: /* @__PURE__ */ a(j, { description: "正在生成统计图表..." }) }) : he ? /* @__PURE__ */ a(Ht, { option: me, height: 360 }) : C ? /* @__PURE__ */ i("div", { className: `${e.chartEmpty} ${e.authBox}`, children: [
458
+ /* @__PURE__ */ a("div", { className: e.authHint, children: "登录后可查看完整的产品迭代日志" }),
459
+ /* @__PURE__ */ a(
460
+ V,
461
+ {
462
+ size: "small",
463
+ type: "primary",
464
+ onClick: Z,
465
+ children: "登录查看"
466
+ }
467
+ )
468
+ ] }) : /* @__PURE__ */ a("div", { className: e.chartEmpty, children: "暂无足够数据生成图表" }) })
469
+ ] }) }),
470
+ /* @__PURE__ */ i("main", { className: e.main, children: [
471
+ /* @__PURE__ */ i("aside", { className: e.timeline, children: [
472
+ /* @__PURE__ */ a("div", { className: e.timelineHeader, children: /* @__PURE__ */ a("span", { children: "迭代时间线" }) }),
473
+ /* @__PURE__ */ a("div", { className: e.timelineScroll, children: w ? /* @__PURE__ */ a("div", { className: e.loadingWrap, children: /* @__PURE__ */ a(j, { description: "加载中..." }) }) : d.length === 0 ? /* @__PURE__ */ a("div", { className: `${e.emptyWrap} ${e.authBox}`, children: C ? /* @__PURE__ */ i(te, { children: [
474
+ /* @__PURE__ */ a("div", { className: e.authHint, children: "登录后可查看完整的产品迭代日志" }),
475
+ /* @__PURE__ */ a(
476
+ V,
477
+ {
478
+ size: "small",
479
+ type: "primary",
480
+ onClick: Z,
481
+ children: "登录查看"
482
+ }
483
+ )
484
+ ] }) : "暂无迭代记录" }) : d.map((n, r) => /* @__PURE__ */ i(
485
+ "div",
486
+ {
487
+ className: `${e.timelineItem} ${Te(v, n.id) ? e.timelineItemActive : ""}`,
488
+ onClick: () => E(n.id),
489
+ children: [
490
+ /* @__PURE__ */ a("div", { className: e.timelineDot }),
491
+ /* @__PURE__ */ i("div", { className: e.timelineContent, children: [
492
+ /* @__PURE__ */ i("div", { className: e.timelineTop, children: [
493
+ /* @__PURE__ */ a("span", { className: e.versionTag, children: n.version }),
494
+ /* @__PURE__ */ a("span", { className: e.versionDate, children: n.commitDate })
495
+ ] }),
496
+ n.summary && /* @__PURE__ */ a("div", { className: e.timelineSummary, title: n.summary, children: n.summary }),
497
+ /* @__PURE__ */ a("div", { className: e.timelineMeta, children: /* @__PURE__ */ i("span", { children: [
498
+ n.pointCount ?? 0,
499
+ " 条产品要点"
500
+ ] }) })
501
+ ] }),
502
+ r === 0 && /* @__PURE__ */ a("span", { className: e.latestBadge, children: "最新" })
503
+ ]
504
+ },
505
+ n.id
506
+ )) })
507
+ ] }),
508
+ /* @__PURE__ */ a("section", { className: e.detail, children: le ? /* @__PURE__ */ a("div", { className: e.loadingWrap, children: /* @__PURE__ */ a(j, { description: "加载产品要点..." }) }) : _ ? /* @__PURE__ */ i(te, { children: [
509
+ /* @__PURE__ */ i("div", { className: e.detailHeader, children: [
510
+ /* @__PURE__ */ i("div", { className: e.detailTitleRow, children: [
511
+ /* @__PURE__ */ a("span", { className: e.detailVersion, children: _.version }),
512
+ /* @__PURE__ */ a("span", { className: e.detailDate, children: _.commitDate })
513
+ ] }),
514
+ _.summary && /* @__PURE__ */ a("div", { className: e.detailSummary, children: _.summary })
515
+ ] }),
516
+ /* @__PURE__ */ a("div", { className: e.detailScroll, children: J.length === 0 ? /* @__PURE__ */ a(ie, { description: "该版本下暂无产品迭代要点" }) : /* @__PURE__ */ a("div", { className: e.pointGrid, children: J.map((n) => /* @__PURE__ */ i("div", { className: e.pointCard, children: [
517
+ /* @__PURE__ */ i("div", { className: e.pointHead, children: [
518
+ /* @__PURE__ */ a("span", { className: e.pointTitle, children: n.pointTitle }),
519
+ /* @__PURE__ */ i("div", { className: e.pointHeadRight, children: [
520
+ typeof n.committers == "string" && n.committers.split(",").map((r) => /* @__PURE__ */ i(re, { className: e.committerTag, children: [
521
+ "@",
522
+ r.trim()
523
+ ] }, r)),
524
+ n.category && /* @__PURE__ */ a(
525
+ re,
526
+ {
527
+ className: e.pointTag,
528
+ color: Rt[n.category] || "default",
529
+ children: n.category
530
+ }
531
+ )
532
+ ] })
533
+ ] }),
534
+ n.pointDetail && /* @__PURE__ */ a("div", { className: e.pointDetail, children: n.pointDetail })
535
+ ] }, n.id)) }) })
536
+ ] }) : /* @__PURE__ */ a("div", { className: e.emptyWrap, children: /* @__PURE__ */ a(ie, { description: "选择左侧版本查看产品迭代要点" }) }) })
537
+ ] })
538
+ ] });
539
+ }
540
+ export {
541
+ Vt as C
542
+ };
@@ -9,9 +9,9 @@ import Ge from "axios";
9
9
  const X = (t) => {
10
10
  const i = xt(t);
11
11
  return (r) => /* @__PURE__ */ e(wt, { fallback: null, children: /* @__PURE__ */ e(i, { ...r }) });
12
- }, oe = X(() => import("./index-BEqPF6wm.js").then((t) => t.I)), Zt = X(() => import("./index-DOPkM2W8.js")), Jt = X(() => import("./index-BTLD5gUt.js")), Vt = X(() => import("./index-DYgD6BuB.js")), Wt = X(() => import("./index-x4-W5ClM.js")), Xt = X(() => import("./index-BIJnjJd5.js"));
13
- X(() => import("./index-7VAcVmtR.js"));
14
- const Yt = X(() => import("./index-C815hPWS.js")), Qt = X(() => import("./index-UsGqMo11.js")), en = X(() => import("./index-BkX0I2aB.js")), tn = X(() => import("./index-B_EBV24V.js")), nn = X(() => import("./index-Bd57t_yF.js")), rn = X(() => import("./index-BjqYiZpC.js"));
12
+ }, oe = X(() => import("./index-Dn3Q_5em.js").then((t) => t.I)), Zt = X(() => import("./index-7nSly-MA.js")), Jt = X(() => import("./index-BX1Wd9x9.js")), Vt = X(() => import("./index-ClA0896K.js")), Wt = X(() => import("./index-qK6pyAGy.js")), Xt = X(() => import("./index-Bdu31aRV.js"));
13
+ X(() => import("./index-BtaRkt8l.js"));
14
+ const Yt = X(() => import("./index-C815hPWS.js")), Qt = X(() => import("./index-UsGqMo11.js")), en = X(() => import("./index-BkX0I2aB.js")), tn = X(() => import("./index-D9AqC2O-.js")), nn = X(() => import("./index-DpcrvKsK.js")), rn = X(() => import("./index-DFY3lzq0.js"));
15
15
  function Qn({ forcedMode: t }) {
16
16
  const { pathname: i } = kt(), r = i.replace(/\/+$/, "") || "/";
17
17
  return t === "system" ? /* @__PURE__ */ e(oe, { forcedChatMode: "system" }) : t === "rpa" ? /* @__PURE__ */ e(oe, { forcedChatMode: "rpa" }) : t === "dev" ? /* @__PURE__ */ e(oe, { forcedChatMode: "dev" }) : r === "/workspace" ? /* @__PURE__ */ e(oe, {}) : r === "/workspace/phone" ? /* @__PURE__ */ e(Zt, {}) : r === "/workspace/from-ticket" ? /* @__PURE__ */ e(Jt, {}) : r === "/workspace/from-scenario" ? /* @__PURE__ */ e(Vt, {}) : r === "/workspace/build-by-form" ? /* @__PURE__ */ e(Wt, {}) : r === "/scenario" ? /* @__PURE__ */ e(Xt, {}) : r === "/admin" ? /* @__PURE__ */ e(oe, {}) : r === "/welcome" ? /* @__PURE__ */ e(Qt, {}) : r === "/portal" ? /* @__PURE__ */ e(en, {}) : r === "/chatdemo" ? /* @__PURE__ */ e(Yt, {}) : r === "/embed/chat" || r.startsWith("/embed/chat/") ? /* @__PURE__ */ e(rn, {}) : r === "/change-log" ? /* @__PURE__ */ e(tn, {}) : r === "/docs" ? /* @__PURE__ */ e(nn, {}) : /* @__PURE__ */ e(oe, {});
@@ -2,7 +2,7 @@ import { jsxs as i, jsx as e, Fragment as A } from "react/jsx-runtime";
2
2
  import { useState as o, useEffect as oe } from "react";
3
3
  import { Form as m, message as l, Button as d, Input as B, Row as ae, Col as z, Card as v, Statistic as O, Alert as T, Space as p, Typography as se, Tabs as de, Popconfirm as F, Tag as h, Tooltip as ce, Modal as he, Radio as S, Select as w, InputNumber as ue } from "antd";
4
4
  import { PlusOutlined as me, ClockCircleOutlined as _, CheckCircleOutlined as $, LinkOutlined as D, CopyOutlined as b, QrcodeOutlined as U, UserDeleteOutlined as K, TeamOutlined as pe, MailOutlined as j, DeleteOutlined as ye, UserAddOutlined as q, CloseCircleOutlined as N } from "@ant-design/icons";
5
- import { l as fe, b as ge, g as ve, c as we, d as be, e as Ce, f as xe } from "./api-Bf3E-c73.js";
5
+ import { l as fe, b as ge, g as ve, c as we, d as be, e as Ce, f as xe } from "./api-DjTLmeZp.js";
6
6
  import { PageHeader as Ie, TableToolbar as ke, ListTable as W } from "@yuku123/z-frontend-common/ui";
7
7
  const { Text: c } = se, Me = () => {
8
8
  const [C] = m.useForm(), [M, P] = o(!1), [y, G] = o([]), [L, H] = o([]), [J, Q] = o(null), [u, V] = o(""), [X, x] = o(!1), [Y, R] = o(!1), [a, E] = o(null), [r, Z] = o(localStorage.getItem("userInfo") && JSON.parse(localStorage.getItem("userInfo") || "{}").tenantCode || "");
@@ -3,8 +3,8 @@ import { useState as a, useMemo as oe, useEffect as W } from "react";
3
3
  import { useNavigate as le, useSearchParams as se } from "react-router-dom";
4
4
  import { Form as c, message as o, Spin as ce, Typography as de, Card as d, Tag as x, Empty as me, Row as he, Col as fe, Space as S, Avatar as ge, Pagination as pe, Button as T, Result as ue, Modal as E, Input as k, Alert as U } from "antd";
5
5
  import { RocketOutlined as q, ApartmentOutlined as ye, CheckCircleOutlined as Ce, PlusOutlined as z, KeyOutlined as m, GiftOutlined as ve, HomeOutlined as we, CrownOutlined as be } from "@ant-design/icons";
6
- import { g as xe, a as Se, s as Te, r as ke } from "./api-Bf3E-c73.js";
7
- import { a as ze } from "./ComponentDoc-B2qJmtU6.js";
6
+ import { g as xe, a as Se, s as Te, r as ke } from "./api-DjTLmeZp.js";
7
+ import { a as ze } from "./ComponentDoc-CSdxKqUS.js";
8
8
  const { Title: u, Text: O, Paragraph: Oe } = de, y = 12, Me = () => {
9
9
  const L = le(), [H] = se(), [_, I] = a(!0), [i, $] = a(null), [l, G] = a([]), [A, F] = a(0), [h, B] = a(""), [C, K] = a(1), X = oe(() => {
10
10
  const e = (C - 1) * y;
@@ -0,0 +1,85 @@
1
+ const a = "_container_16zxg_7", e = "_sidebar_16zxg_16", t = "_menuList_16zxg_26", o = "_menuItem_16zxg_35", _ = "_menuItemActive_16zxg_53", n = "_menuIcon_16zxg_59", s = "_panelArea_16zxg_66", c = "_modelMgmtHeader_16zxg_78", r = "_modelMgmtTitle_16zxg_82", l = "_modelMgmtSubtitle_16zxg_89", d = "_modelGrid_16zxg_95", g = "_modelCard_16zxg_101", m = "_modelCardSelected_16zxg_130", k = "_modelCardHeader_16zxg_135", i = "_modelIconWrap_16zxg_142", x = "_modelCardInfo_16zxg_155", z = "_modelName_16zxg_160", B = "_modelTags_16zxg_169", u = "_modelEndpoint_16zxg_185", C = "_modelCardFooter_16zxg_194", h = "_modelCheckbox_16zxg_202", I = "_modelActionBar_16zxg_209", w = "_modelSelectionCount_16zxg_223", S = "_chatContainer_16zxg_232", M = "_chatHeader_16zxg_239", T = "_chatTitle_16zxg_247", p = "_chatPanels_16zxg_254", P = "_chatPanel_16zxg_254", U = "_chatPanelHeader_16zxg_281", b = "_chatPanelClose_16zxg_291", A = "_chatPanelBody_16zxg_303", R = "_chatMsgUser_16zxg_312", y = "_chatMsgAI_16zxg_324", E = "_chatMsgError_16zxg_337", H = "_chatStreamingCursor_16zxg_347", L = "_chatUsageBar_16zxg_366", v = "_chatThinkBlock_16zxg_376", F = "_chatInputBar_16zxg_425", G = "_chatInput_16zxg_425", f = "_addPanelBtn_16zxg_438", N = "_akContainer_16zxg_467", D = "_akIntegrationPanel_16zxg_473", V = "_akIntegrationTitle_16zxg_480", W = "_akIntegrationGrid_16zxg_487", j = "_akCodeBlock_16zxg_493", q = "_akCodeLabel_16zxg_505", J = "_akCard_16zxg_512", K = "_akCardRow_16zxg_530", O = "_akTitle_16zxg_537", Q = "_akPrefixSmall_16zxg_547", X = "_akStatus_16zxg_553", Y = "_akStatusActive_16zxg_559", Z = "_akStatusRevoked_16zxg_565", $ = "_akCardActions_16zxg_571", aa = "_akCardRow2_16zxg_578", ea = "_akMiniBar_16zxg_584", ta = "_akMiniBarFill_16zxg_593", oa = "_akUsageText_16zxg_600", _a = "_akMetaText_16zxg_607", na = "_akEmpty_16zxg_613", sa = "_akBaseUrlRow_16zxg_621", ca = "_akBaseUrlItem_16zxg_627", ra = "_akBaseUrlLabel_16zxg_637", la = "_akBaseUrlValue_16zxg_643", da = "_akCopyIcon_16zxg_653", ga = "_usageDrawerContent_16zxg_667", ma = "_usageStatsGrid_16zxg_673", ka = "_usageSection_16zxg_679", ia = "_usageSectionTitle_16zxg_683", xa = "_usageBarChart_16zxg_693", za = "_usageBarCol_16zxg_702", Ba = "_usageBar_16zxg_693", ua = "_usageBarLabel_16zxg_725", Ca = "_modelBreakdown_16zxg_733", ha = "_modelBreakdownRow_16zxg_739", Ia = "_modelBreakdownName_16zxg_745", wa = "_modelBreakdownBar_16zxg_755", Sa = "_modelBreakdownFill_16zxg_763", Ma = "_modelBreakdownCount_16zxg_770", Ta = "_usageEmpty_16zxg_777", pa = {
2
+ container: a,
3
+ sidebar: e,
4
+ menuList: t,
5
+ menuItem: o,
6
+ menuItemActive: _,
7
+ menuIcon: n,
8
+ panelArea: s,
9
+ modelMgmtHeader: c,
10
+ modelMgmtTitle: r,
11
+ modelMgmtSubtitle: l,
12
+ modelGrid: d,
13
+ modelCard: g,
14
+ modelCardSelected: m,
15
+ modelCardHeader: k,
16
+ modelIconWrap: i,
17
+ modelCardInfo: x,
18
+ modelName: z,
19
+ modelTags: B,
20
+ modelEndpoint: u,
21
+ modelCardFooter: C,
22
+ modelCheckbox: h,
23
+ modelActionBar: I,
24
+ modelSelectionCount: w,
25
+ chatContainer: S,
26
+ chatHeader: M,
27
+ chatTitle: T,
28
+ chatPanels: p,
29
+ chatPanel: P,
30
+ chatPanelHeader: U,
31
+ chatPanelClose: b,
32
+ chatPanelBody: A,
33
+ chatMsgUser: R,
34
+ chatMsgAI: y,
35
+ chatMsgError: E,
36
+ chatStreamingCursor: H,
37
+ chatUsageBar: L,
38
+ chatThinkBlock: v,
39
+ chatInputBar: F,
40
+ chatInput: G,
41
+ addPanelBtn: f,
42
+ akContainer: N,
43
+ akIntegrationPanel: D,
44
+ akIntegrationTitle: V,
45
+ akIntegrationGrid: W,
46
+ akCodeBlock: j,
47
+ akCodeLabel: q,
48
+ akCard: J,
49
+ akCardRow: K,
50
+ akTitle: O,
51
+ akPrefixSmall: Q,
52
+ akStatus: X,
53
+ akStatusActive: Y,
54
+ akStatusRevoked: Z,
55
+ akCardActions: $,
56
+ akCardRow2: aa,
57
+ akMiniBar: ea,
58
+ akMiniBarFill: ta,
59
+ akUsageText: oa,
60
+ akMetaText: _a,
61
+ akEmpty: na,
62
+ akBaseUrlRow: sa,
63
+ akBaseUrlItem: ca,
64
+ akBaseUrlLabel: ra,
65
+ akBaseUrlValue: la,
66
+ akCopyIcon: da,
67
+ usageDrawerContent: ga,
68
+ usageStatsGrid: ma,
69
+ usageSection: ka,
70
+ usageSectionTitle: ia,
71
+ usageBarChart: xa,
72
+ usageBarCol: za,
73
+ usageBar: Ba,
74
+ usageBarLabel: ua,
75
+ modelBreakdown: Ca,
76
+ modelBreakdownRow: ha,
77
+ modelBreakdownName: Ia,
78
+ modelBreakdownBar: wa,
79
+ modelBreakdownFill: Sa,
80
+ modelBreakdownCount: Ma,
81
+ usageEmpty: Ta
82
+ };
83
+ export {
84
+ pa as s
85
+ };