@sim-design/training 1.0.0

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 (46) hide show
  1. package/README.md +33 -0
  2. package/dist/ArrowLeftOutlined-CiSQq3bL.js +12 -0
  3. package/dist/AssessmentPlugin-Bx4VrBdV.js +607 -0
  4. package/dist/CaseAnalysisPlugin-CQvF9_zr.js +416 -0
  5. package/dist/CharacterDialoguePanel-Bvdab3qj.js +776 -0
  6. package/dist/CheckCircleFilled-Byo8CDfW.js +12 -0
  7. package/dist/CustomLayoutRenderer--rnQrqQ2.js +122524 -0
  8. package/dist/DecisionSelectPlugin-DtQ2KV34.js +863 -0
  9. package/dist/DecisionShared-Dh9oeQFT.js +65 -0
  10. package/dist/DialogueFormPlugin-C9ssnVMr.js +959 -0
  11. package/dist/DialoguePlugin-DU00QpmQ.js +416 -0
  12. package/dist/DocumentReviewPlugin-HNOZY1T4.js +977 -0
  13. package/dist/EyeOutlined-XvOAKlLs.js +12 -0
  14. package/dist/FormFillingPlugin-DURWsioi.js +445 -0
  15. package/dist/ModelEditor-BPJsPR0S.js +8264 -0
  16. package/dist/PluginHeader-B-GESJmT.js +87 -0
  17. package/dist/ProcessOperationPlugin-IijngDlX.js +88 -0
  18. package/dist/QAPlugin-Bh_UjK1N.js +184 -0
  19. package/dist/RadarChart-C5ZM0kWt.js +24963 -0
  20. package/dist/ReloadOutlined-Daor2m11.js +12 -0
  21. package/dist/SettingOutlined-CLEOgXB-.js +92 -0
  22. package/dist/StrategyLabPlugin-DGeZsr_7.js +14361 -0
  23. package/dist/ThunderboltOutlined-nH_FO_4A.js +44 -0
  24. package/dist/ToolOutlined-DtuNJDB2.js +28 -0
  25. package/dist/TrainingModelContainer-DpW-uB8O.js +11883 -0
  26. package/dist/UndoOutlined-ChUQYUul.js +84 -0
  27. package/dist/WarningFilled-1Rc4hr0C.js +12 -0
  28. package/dist/WarningOutlined-5g1d66hO.js +164 -0
  29. package/dist/adapters-D1FFZFoA.js +51 -0
  30. package/dist/analysisTools-CXyOvSZT.js +237 -0
  31. package/dist/creator.js +5 -0
  32. package/dist/index-CYjdXPgc.js +6568 -0
  33. package/dist/index-XuBVjlmu.js +44651 -0
  34. package/dist/index.js +11 -0
  35. package/dist/judgement-D_9i7x9S.js +20 -0
  36. package/dist/runtime.js +4 -0
  37. package/dist/types.js +8 -0
  38. package/dist/useDialogueLogic-IHELcN3X.js +368 -0
  39. package/dist-types/client/src/lib/adapters.d.ts +10 -0
  40. package/dist-types/client/src/lib/creator.d.ts +3 -0
  41. package/dist-types/client/src/lib/creatorIntegrationContext.d.ts +8 -0
  42. package/dist-types/client/src/lib/index.d.ts +5 -0
  43. package/dist-types/client/src/lib/public-types.d.ts +2 -0
  44. package/dist-types/client/src/lib/runtime.d.ts +3 -0
  45. package/dist-types/client/src/lib/types.d.ts +301 -0
  46. package/package.json +83 -0
@@ -0,0 +1,863 @@
1
+ import { u as ee, a as re, r as u, j as r, R as J, b as se } from "./RadarChart-C5ZM0kWt.js";
2
+ import te, { useState as w, useMemo as m } from "react";
3
+ import { Input as oe, message as ne } from "antd";
4
+ import { n as ie, f as le, b as de, a as ae } from "./judgement-D_9i7x9S.js";
5
+ import { b as ce, a as t, g as W } from "./DecisionShared-Dh9oeQFT.js";
6
+ import { u as pe } from "./TrainingModelContainer-DpW-uB8O.js";
7
+ import { R as C } from "./WarningFilled-1Rc4hr0C.js";
8
+ import { R } from "./CheckCircleFilled-Byo8CDfW.js";
9
+ import { R as ge } from "./EyeOutlined-XvOAKlLs.js";
10
+ const we = ({ initData: o, checkRules: z, onFinish: P }) => {
11
+ var Y;
12
+ const [x, q] = w(null), [$, G] = w(""), [K, Q] = w(0), [M, A] = w(!1), [F, E] = w(!1), U = pe((s) => s.getStepEvidence), { currentCase: N } = ee(), a = re((s) => s.filledData);
13
+ te.useEffect(() => {
14
+ const s = "decision-plugin-styles";
15
+ if (!document.getElementById(s)) {
16
+ const i = document.createElement("style");
17
+ i.id = s, i.textContent = `
18
+ @keyframes shimmer {
19
+ 0% { transform: translateX(-100%); }
20
+ 100% { transform: translateX(100%); }
21
+ }
22
+ .decision-scroll::-webkit-scrollbar {
23
+ width: 6px;
24
+ height: 6px;
25
+ }
26
+ .decision-scroll::-webkit-scrollbar-track {
27
+ background: rgba(0, 0, 0, 0.02);
28
+ border-radius: 3px;
29
+ }
30
+ .decision-scroll::-webkit-scrollbar-thumb {
31
+ background: rgba(0, 0, 0, 0.1);
32
+ border-radius: 3px;
33
+ }
34
+ .decision-scroll::-webkit-scrollbar-thumb:hover {
35
+ background: rgba(0, 0, 0, 0.15);
36
+ }
37
+ `, document.head.appendChild(i);
38
+ }
39
+ return () => {
40
+ const i = document.getElementById(s);
41
+ i && document.head.removeChild(i);
42
+ };
43
+ }, []);
44
+ const e = m(() => {
45
+ var s;
46
+ return ce((s = o == null ? void 0 : o.uiConfig) == null ? void 0 : s.theme);
47
+ }, [(Y = o == null ? void 0 : o.uiConfig) == null ? void 0 : Y.theme]), V = m(() => ie(o == null ? void 0 : o.decisionMode, o), [o]), c = m(() => N || {}, [N]), L = m(
48
+ () => ((o == null ? void 0 : o.options) || []).map((s) => ({
49
+ ...s,
50
+ id: typeof s.id == "string" ? u(s.id, c, a) : s.id,
51
+ value: typeof s.value == "string" ? u(s.value, c, a) : s.value,
52
+ name: u(s.name || "", c, a),
53
+ label: u(s.label || "", c, a),
54
+ description: u(s.description || "", c, a),
55
+ riskLevel: u(s.riskLevel || "", c, a),
56
+ term: u(s.term || "", c, a),
57
+ expectedReturn: u(s.expectedReturn || "", c, a),
58
+ minAmount: u(s.minAmount || "", c, a),
59
+ features: Array.isArray(s.features) ? s.features.map((i) => u(i, c, a)) : s.features
60
+ })),
61
+ [o == null ? void 0 : o.options, c, a]
62
+ ), S = m(() => (o == null ? void 0 : o.previousEvidence) || [], [o]), b = m(() => le(S, "decision-making"), [S]), p = m(
63
+ () => (b == null ? void 0 : b.conclusion) || u((o == null ? void 0 : o.customerRiskLevel) || "", c, a),
64
+ [b == null ? void 0 : b.conclusion, o == null ? void 0 : o.customerRiskLevel, c, a]
65
+ ), I = m(
66
+ () => u((o == null ? void 0 : o.stepName) || "决策选择", c, a),
67
+ [o == null ? void 0 : o.stepName, c, a]
68
+ ), h = m(() => de(S), [S]), Z = h.some((s) => s.result === "warning"), g = L.find((s) => (s.id || s.value) === x), H = (s) => s.id || s.value || s.name, B = (s) => s.name || s.label || "未命名", T = Math.min(K, Math.max(0, h.length - 1)), n = h[T] ?? null, j = n != null && n.stepId ? U(n.stepId) : null, D = () => {
69
+ const s = H(g), i = B(g), d = g != null && g.riskLevel && p ? g.riskLevel === p : !0;
70
+ if (z != null && z.mustMatchRiskLevel && !d) {
71
+ ne.error("所选选项的风险等级与客户风险等级不匹配");
72
+ return;
73
+ }
74
+ const l = ae({
75
+ sourceStepId: (o == null ? void 0 : o.stepId) || "unknown",
76
+ sourceStepName: I,
77
+ sourceType: "decision-making",
78
+ title: `${I}结果`,
79
+ summary: `已选择 ${i}${p ? `,依据风险等级 ${p}` : ""}。`,
80
+ keyFacts: [
81
+ { label: "决策模式", value: V },
82
+ ...p ? [{ label: "客户风险等级", value: p }] : [],
83
+ { label: "选择结果", value: i },
84
+ ...g != null && g.riskLevel ? [{ label: "选项风险等级", value: g.riskLevel }] : []
85
+ ],
86
+ riskFlags: d ? [] : ["风险等级不匹配"],
87
+ conclusion: s || "unselected"
88
+ });
89
+ P({
90
+ stepId: (o == null ? void 0 : o.stepId) || "unknown",
91
+ operationType: "decision-select",
92
+ operationData: { selectedOption: g, customerRiskLevel: p, reason: $, matchedRiskLevel: d },
93
+ operationLog: [{ action: "option-selected", option: g, reason: $, matchedRiskLevel: d, timestamp: Date.now() }],
94
+ timestamp: Date.now(),
95
+ evidenceSummary: l
96
+ });
97
+ };
98
+ return /* @__PURE__ */ r.jsxs("div", { style: {
99
+ height: "100%",
100
+ background: "linear-gradient(to bottom, #F8F9FC 0%, #FFFFFF 100%)",
101
+ borderRadius: e.radius.md,
102
+ border: `1px solid ${e.border}`,
103
+ overflow: "auto"
104
+ }, children: [
105
+ /* @__PURE__ */ r.jsxs("div", { style: {
106
+ padding: "16px 24px",
107
+ background: "linear-gradient(135deg, #667EEA 0%, #764BA2 100%)",
108
+ borderBottom: `2px solid ${t(e.primary, 0.2)}`,
109
+ position: "relative",
110
+ overflow: "hidden"
111
+ }, children: [
112
+ /* @__PURE__ */ r.jsx("div", { style: {
113
+ position: "absolute",
114
+ top: 0,
115
+ right: 0,
116
+ width: "200px",
117
+ height: "200px",
118
+ background: "radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 70%)",
119
+ borderRadius: "50%",
120
+ transform: "translate(30%, -30%)"
121
+ } }),
122
+ /* @__PURE__ */ r.jsxs("div", { style: { position: "relative", zIndex: 1 }, children: [
123
+ /* @__PURE__ */ r.jsx("div", { style: {
124
+ fontSize: 18,
125
+ fontWeight: 700,
126
+ color: "#FFFFFF",
127
+ letterSpacing: "0.5px",
128
+ marginBottom: 4
129
+ }, children: I }),
130
+ /* @__PURE__ */ r.jsxs("div", { style: {
131
+ fontSize: 13,
132
+ color: "rgba(255,255,255,0.85)",
133
+ display: "flex",
134
+ alignItems: "center",
135
+ gap: 6
136
+ }, children: [
137
+ /* @__PURE__ */ r.jsx("span", { style: {
138
+ width: 4,
139
+ height: 4,
140
+ borderRadius: "50%",
141
+ background: "rgba(255,255,255,0.6)"
142
+ } }),
143
+ "综合评估左侧依据信息,做出最优决策"
144
+ ] })
145
+ ] })
146
+ ] }),
147
+ /* @__PURE__ */ r.jsxs("div", { style: { display: "flex", height: "600px" }, children: [
148
+ /* @__PURE__ */ r.jsxs(
149
+ "div",
150
+ {
151
+ className: "decision-scroll",
152
+ style: {
153
+ width: "38%",
154
+ flexShrink: 0,
155
+ background: "linear-gradient(to bottom, #F0F4FF 0%, #FAFBFF 100%)",
156
+ borderRight: `2px solid ${t(e.primary, 0.15)}`,
157
+ display: "flex",
158
+ flexDirection: "column",
159
+ position: "relative",
160
+ height: "100%",
161
+ overflowY: "auto",
162
+ overflowX: "hidden"
163
+ },
164
+ children: [
165
+ /* @__PURE__ */ r.jsx("div", { style: {
166
+ position: "absolute",
167
+ left: 0,
168
+ top: 0,
169
+ bottom: 0,
170
+ width: "3px",
171
+ background: `linear-gradient(to bottom, ${e.primary} 0%, ${e.success} 100%)`
172
+ } }),
173
+ p && (() => {
174
+ var i;
175
+ const s = W(p, (i = o == null ? void 0 : o.uiConfig) == null ? void 0 : i.theme);
176
+ return /* @__PURE__ */ r.jsxs("div", { style: {
177
+ background: "#FFFFFF",
178
+ borderBottom: `1px solid ${t(e.border, 0.5)}`,
179
+ padding: "20px 20px 18px",
180
+ position: "relative"
181
+ }, children: [
182
+ /* @__PURE__ */ r.jsx("div", { style: {
183
+ position: "absolute",
184
+ top: 0,
185
+ right: 0,
186
+ width: "120px",
187
+ height: "120px",
188
+ background: `radial-gradient(circle, ${t(s.color, 0.08)} 0%, transparent 70%)`,
189
+ borderRadius: "50%",
190
+ transform: "translate(40%, -40%)"
191
+ } }),
192
+ /* @__PURE__ */ r.jsxs("div", { style: {
193
+ position: "relative",
194
+ zIndex: 1
195
+ }, children: [
196
+ /* @__PURE__ */ r.jsxs("div", { style: {
197
+ fontSize: 11,
198
+ color: e.textMuted,
199
+ marginBottom: 10,
200
+ fontWeight: 600,
201
+ textTransform: "uppercase",
202
+ letterSpacing: "1px",
203
+ display: "flex",
204
+ alignItems: "center",
205
+ gap: 6
206
+ }, children: [
207
+ /* @__PURE__ */ r.jsx("span", { style: {
208
+ width: 6,
209
+ height: 6,
210
+ borderRadius: "50%",
211
+ background: s.color
212
+ } }),
213
+ "风险评估等级"
214
+ ] }),
215
+ /* @__PURE__ */ r.jsxs("div", { style: {
216
+ display: "flex",
217
+ alignItems: "baseline",
218
+ gap: 12,
219
+ marginBottom: 12
220
+ }, children: [
221
+ /* @__PURE__ */ r.jsx("span", { style: {
222
+ fontSize: 42,
223
+ fontWeight: 800,
224
+ color: s.color,
225
+ letterSpacing: "1px",
226
+ lineHeight: 1,
227
+ textShadow: `0 2px 8px ${t(s.color, 0.2)}`
228
+ }, children: p }),
229
+ /* @__PURE__ */ r.jsx("span", { style: {
230
+ fontSize: 13,
231
+ color: s.color,
232
+ background: s.bg,
233
+ border: `1.5px solid ${s.border}`,
234
+ borderRadius: 6,
235
+ padding: "4px 10px",
236
+ fontWeight: 600
237
+ }, children: b ? "前序评估" : "默认配置" })
238
+ ] }),
239
+ /* @__PURE__ */ r.jsx("div", { style: {
240
+ display: "flex",
241
+ gap: 2,
242
+ marginTop: 8
243
+ }, children: ["R1", "R2", "R3", "R4"].map((d) => {
244
+ var v;
245
+ const l = d === p, f = W(d, (v = o == null ? void 0 : o.uiConfig) == null ? void 0 : v.theme);
246
+ return /* @__PURE__ */ r.jsx(
247
+ "div",
248
+ {
249
+ style: {
250
+ flex: 1,
251
+ height: l ? 6 : 4,
252
+ borderRadius: 3,
253
+ background: l ? f.color : t(f.color, 0.2),
254
+ transition: "all 0.2s ease"
255
+ }
256
+ },
257
+ d
258
+ );
259
+ }) })
260
+ ] })
261
+ ] });
262
+ })(),
263
+ h.length > 0 && /* @__PURE__ */ r.jsxs("div", { style: { flex: 1, display: "flex", flexDirection: "column", padding: "16px 16px 12px" }, children: [
264
+ /* @__PURE__ */ r.jsxs("div", { style: {
265
+ display: "flex",
266
+ alignItems: "center",
267
+ gap: 8,
268
+ marginBottom: 14
269
+ }, children: [
270
+ /* @__PURE__ */ r.jsx("div", { style: {
271
+ width: 32,
272
+ height: 32,
273
+ borderRadius: "50%",
274
+ background: `linear-gradient(135deg, ${e.primary} 0%, ${t(e.primary, 0.7)} 100%)`,
275
+ display: "flex",
276
+ alignItems: "center",
277
+ justifyContent: "center",
278
+ boxShadow: `0 2px 8px ${t(e.primary, 0.25)}`
279
+ }, children: /* @__PURE__ */ r.jsx(J, { style: { color: "#fff", fontSize: 15 } }) }),
280
+ /* @__PURE__ */ r.jsxs("div", { style: { flex: 1 }, children: [
281
+ /* @__PURE__ */ r.jsx("div", { style: { fontSize: 15, fontWeight: 700, color: e.text }, children: "决策依据" }),
282
+ /* @__PURE__ */ r.jsxs("div", { style: { fontSize: 11, color: e.textLight }, children: [
283
+ "共 ",
284
+ h.length,
285
+ " 条评估记录"
286
+ ] })
287
+ ] }),
288
+ Z && /* @__PURE__ */ r.jsx("span", { style: {
289
+ fontSize: 11,
290
+ color: e.warning,
291
+ background: e.warningLight,
292
+ border: `1px solid ${e.warningBorder}`,
293
+ borderRadius: 4,
294
+ padding: "3px 8px",
295
+ fontWeight: 600
296
+ }, children: "⚠ 含风险" })
297
+ ] }),
298
+ /* @__PURE__ */ r.jsxs("div", { style: { position: "relative", marginBottom: 12 }, children: [
299
+ /* @__PURE__ */ r.jsxs(
300
+ "button",
301
+ {
302
+ onClick: () => E((s) => !s),
303
+ style: {
304
+ width: "100%",
305
+ display: "flex",
306
+ alignItems: "center",
307
+ justifyContent: "space-between",
308
+ padding: "12px 14px",
309
+ background: "#FFFFFF",
310
+ border: `2px solid ${F ? e.primary : t(e.border, 0.6)}`,
311
+ borderRadius: 8,
312
+ cursor: "pointer",
313
+ fontSize: 14,
314
+ color: e.text,
315
+ boxShadow: F ? `0 4px 12px ${t(e.primary, 0.15)}` : "0 2px 4px rgba(0,0,0,0.06)",
316
+ transition: "all 0.2s ease"
317
+ },
318
+ children: [
319
+ /* @__PURE__ */ r.jsxs("div", { style: { display: "flex", alignItems: "center", gap: 10, flex: 1 }, children: [
320
+ /* @__PURE__ */ r.jsx("div", { style: {
321
+ width: 24,
322
+ height: 24,
323
+ borderRadius: "50%",
324
+ background: (n == null ? void 0 : n.result) === "warning" ? e.warningLight : e.successLight,
325
+ border: `1.5px solid ${(n == null ? void 0 : n.result) === "warning" ? e.warningBorder : e.successBorder}`,
326
+ display: "flex",
327
+ alignItems: "center",
328
+ justifyContent: "center",
329
+ flexShrink: 0
330
+ }, children: (n == null ? void 0 : n.result) === "warning" ? /* @__PURE__ */ r.jsx(C, { style: { color: e.warning, fontSize: 12 } }) : /* @__PURE__ */ r.jsx(R, { style: { color: e.success, fontSize: 12 } }) }),
331
+ /* @__PURE__ */ r.jsxs("div", { style: { flex: 1, textAlign: "left" }, children: [
332
+ /* @__PURE__ */ r.jsx("div", { style: {
333
+ fontWeight: 600,
334
+ color: (n == null ? void 0 : n.result) === "warning" ? e.warning : e.success,
335
+ fontSize: 13
336
+ }, children: (n == null ? void 0 : n.label) ?? "请选择依据" }),
337
+ /* @__PURE__ */ r.jsxs("div", { style: { fontSize: 11, color: e.textLight, marginTop: 1 }, children: [
338
+ "第 ",
339
+ T + 1,
340
+ " / ",
341
+ h.length,
342
+ " 条"
343
+ ] })
344
+ ] })
345
+ ] }),
346
+ /* @__PURE__ */ r.jsx("span", { style: {
347
+ fontSize: 20,
348
+ color: e.textMuted,
349
+ transform: F ? "rotate(180deg)" : "none",
350
+ transition: "transform 0.25s ease",
351
+ display: "inline-block",
352
+ lineHeight: 1
353
+ }, children: "▾" })
354
+ ]
355
+ }
356
+ ),
357
+ F && /* @__PURE__ */ r.jsx("div", { style: {
358
+ position: "absolute",
359
+ top: "calc(100% + 4px)",
360
+ left: 0,
361
+ right: 0,
362
+ background: "#FFFFFF",
363
+ border: `2px solid ${e.primary}`,
364
+ borderRadius: 8,
365
+ boxShadow: `0 8px 24px ${t(e.primary, 0.2)}`,
366
+ zIndex: 10,
367
+ overflow: "hidden",
368
+ maxHeight: "280px",
369
+ overflowY: "auto"
370
+ }, children: h.map((s, i) => {
371
+ const d = T === i, l = s.result === "warning";
372
+ return /* @__PURE__ */ r.jsxs(
373
+ "button",
374
+ {
375
+ onClick: () => {
376
+ Q(i), A(!1), E(!1);
377
+ },
378
+ style: {
379
+ width: "100%",
380
+ display: "flex",
381
+ alignItems: "center",
382
+ gap: 10,
383
+ padding: "12px 14px",
384
+ background: d ? `linear-gradient(to right, ${e.primaryLight} 0%, ${t(e.primary, 0.05)} 100%)` : "#FFFFFF",
385
+ border: "none",
386
+ borderBottom: i < h.length - 1 ? `1px solid ${t(e.border, 0.5)}` : "none",
387
+ cursor: "pointer",
388
+ fontSize: 13,
389
+ color: d ? e.primary : e.text,
390
+ fontWeight: d ? 600 : 400,
391
+ textAlign: "left",
392
+ transition: "all 0.15s ease"
393
+ },
394
+ onMouseEnter: (f) => {
395
+ d || (f.currentTarget.style.background = t(e.primaryLight, 0.3));
396
+ },
397
+ onMouseLeave: (f) => {
398
+ d || (f.currentTarget.style.background = "#FFFFFF");
399
+ },
400
+ children: [
401
+ /* @__PURE__ */ r.jsx("div", { style: {
402
+ width: 20,
403
+ height: 20,
404
+ borderRadius: "50%",
405
+ background: l ? e.warningLight : e.successLight,
406
+ border: `1.5px solid ${l ? e.warningBorder : e.successBorder}`,
407
+ display: "flex",
408
+ alignItems: "center",
409
+ justifyContent: "center",
410
+ flexShrink: 0
411
+ }, children: l ? /* @__PURE__ */ r.jsx(C, { style: { color: e.warning, fontSize: 11 } }) : /* @__PURE__ */ r.jsx(R, { style: { color: e.success, fontSize: 11 } }) }),
412
+ /* @__PURE__ */ r.jsx("span", { style: { flex: 1 }, children: s.label }),
413
+ d && /* @__PURE__ */ r.jsx("span", { style: {
414
+ fontSize: 10,
415
+ color: e.primary,
416
+ background: t(e.primary, 0.1),
417
+ borderRadius: 3,
418
+ padding: "2px 6px",
419
+ fontWeight: 600
420
+ }, children: "当前" })
421
+ ]
422
+ },
423
+ s.id
424
+ );
425
+ }) })
426
+ ] }),
427
+ n && /* @__PURE__ */ r.jsxs("div", { style: {
428
+ flex: 1,
429
+ background: "#FFFFFF",
430
+ border: `2px solid ${n.result === "warning" ? e.warningBorder : e.successBorder}`,
431
+ borderLeft: `5px solid ${n.result === "warning" ? e.warning : e.success}`,
432
+ borderRadius: 10,
433
+ padding: "16px",
434
+ display: "flex",
435
+ flexDirection: "column",
436
+ gap: 12,
437
+ boxShadow: `0 4px 12px ${t(n.result === "warning" ? e.warning : e.success, 0.12)}`,
438
+ position: "relative",
439
+ overflow: "hidden"
440
+ }, children: [
441
+ /* @__PURE__ */ r.jsx("div", { style: {
442
+ position: "absolute",
443
+ top: -20,
444
+ right: -20,
445
+ width: "100px",
446
+ height: "100px",
447
+ background: `radial-gradient(circle, ${t(n.result === "warning" ? e.warning : e.success, 0.08)} 0%, transparent 70%)`,
448
+ borderRadius: "50%"
449
+ } }),
450
+ /* @__PURE__ */ r.jsxs("div", { style: {
451
+ display: "inline-flex",
452
+ alignItems: "center",
453
+ gap: 6,
454
+ alignSelf: "flex-start",
455
+ background: n.result === "warning" ? e.warningLight : e.successLight,
456
+ border: `1.5px solid ${n.result === "warning" ? e.warningBorder : e.successBorder}`,
457
+ borderRadius: 6,
458
+ padding: "4px 10px",
459
+ position: "relative",
460
+ zIndex: 1
461
+ }, children: [
462
+ n.result === "warning" ? /* @__PURE__ */ r.jsx(C, { style: { color: e.warning, fontSize: 13 } }) : /* @__PURE__ */ r.jsx(R, { style: { color: e.success, fontSize: 13 } }),
463
+ /* @__PURE__ */ r.jsx("span", { style: {
464
+ fontSize: 12,
465
+ fontWeight: 700,
466
+ color: n.result === "warning" ? e.warning : e.success,
467
+ textTransform: "uppercase",
468
+ letterSpacing: "0.5px"
469
+ }, children: n.result === "warning" ? "风险提示" : "评估通过" })
470
+ ] }),
471
+ n.comment && /* @__PURE__ */ r.jsx("div", { style: {
472
+ fontSize: 14,
473
+ color: e.text,
474
+ lineHeight: 1.7,
475
+ padding: "8px 12px",
476
+ background: t(e.bg, 0.5),
477
+ borderRadius: 6,
478
+ position: "relative",
479
+ zIndex: 1
480
+ }, children: n.comment }),
481
+ n.evidence && n.evidence.length > 0 && /* @__PURE__ */ r.jsxs("div", { style: {
482
+ display: "flex",
483
+ flexDirection: "column",
484
+ gap: 8,
485
+ position: "relative",
486
+ zIndex: 1
487
+ }, children: [
488
+ /* @__PURE__ */ r.jsx("div", { style: {
489
+ fontSize: 11,
490
+ fontWeight: 700,
491
+ color: e.textMuted,
492
+ textTransform: "uppercase",
493
+ letterSpacing: "1px",
494
+ marginBottom: 2
495
+ }, children: "关键事实" }),
496
+ n.evidence.map((s, i) => /* @__PURE__ */ r.jsxs("div", { style: {
497
+ display: "flex",
498
+ alignItems: "flex-start",
499
+ gap: 10,
500
+ fontSize: 13,
501
+ color: e.text,
502
+ padding: "6px 10px",
503
+ background: t(e.bg, 0.3),
504
+ borderRadius: 6,
505
+ borderLeft: `3px solid ${n.result === "warning" ? e.warning : e.success}`
506
+ }, children: [
507
+ /* @__PURE__ */ r.jsx("span", { style: {
508
+ display: "inline-flex",
509
+ alignItems: "center",
510
+ justifyContent: "center",
511
+ width: 18,
512
+ height: 18,
513
+ borderRadius: "50%",
514
+ background: n.result === "warning" ? e.warningLight : e.successLight,
515
+ color: n.result === "warning" ? e.warning : e.success,
516
+ fontSize: 10,
517
+ fontWeight: 700,
518
+ flexShrink: 0,
519
+ marginTop: 1
520
+ }, children: i + 1 }),
521
+ /* @__PURE__ */ r.jsx("span", { style: { flex: 1 }, children: s })
522
+ ] }, s))
523
+ ] }),
524
+ n.stepId && /* @__PURE__ */ r.jsxs("div", { style: { position: "relative", zIndex: 1 }, children: [
525
+ /* @__PURE__ */ r.jsxs(
526
+ "button",
527
+ {
528
+ onClick: () => A((s) => !s),
529
+ style: {
530
+ border: `1.5px solid ${t(e.primary, 0.3)}`,
531
+ background: t(e.primaryLight, 0.3),
532
+ cursor: "pointer",
533
+ color: e.primary,
534
+ fontSize: 12,
535
+ fontWeight: 600,
536
+ display: "flex",
537
+ alignItems: "center",
538
+ gap: 6,
539
+ padding: "6px 12px",
540
+ borderRadius: 6,
541
+ transition: "all 0.2s ease"
542
+ },
543
+ onMouseEnter: (s) => {
544
+ s.currentTarget.style.background = t(e.primaryLight, 0.6), s.currentTarget.style.borderColor = e.primary;
545
+ },
546
+ onMouseLeave: (s) => {
547
+ s.currentTarget.style.background = t(e.primaryLight, 0.3), s.currentTarget.style.borderColor = t(e.primary, 0.3);
548
+ },
549
+ children: [
550
+ /* @__PURE__ */ r.jsx(ge, { style: { fontSize: 13 } }),
551
+ M ? "收起原始数据" : "查看原始数据"
552
+ ]
553
+ }
554
+ ),
555
+ M && /* @__PURE__ */ r.jsx("div", { style: {
556
+ marginTop: 10,
557
+ padding: "12px",
558
+ background: "#F7F8FA",
559
+ borderRadius: 6,
560
+ border: `1px solid ${t(e.border, 0.6)}`,
561
+ maxHeight: "200px",
562
+ overflowY: "auto"
563
+ }, children: j != null && j.rawData ? /* @__PURE__ */ r.jsx("pre", { style: {
564
+ fontSize: 11,
565
+ color: e.text,
566
+ margin: 0,
567
+ whiteSpace: "pre-wrap",
568
+ wordBreak: "break-all",
569
+ fontFamily: "Consolas, Monaco, monospace"
570
+ }, children: typeof j.rawData == "object" ? JSON.stringify(j.rawData, null, 2) : String(j.rawData) }) : /* @__PURE__ */ r.jsx("span", { style: { fontSize: 12, color: e.textLight }, children: "暂无原始数据" }) })
571
+ ] })
572
+ ] })
573
+ ] }),
574
+ h.length === 0 && !p && /* @__PURE__ */ r.jsx("div", { style: {
575
+ padding: "20px 16px",
576
+ textAlign: "center",
577
+ color: e.textLight,
578
+ fontSize: 13
579
+ }, children: "暂无前序依据信息" })
580
+ ]
581
+ }
582
+ ),
583
+ /* @__PURE__ */ r.jsxs(
584
+ "div",
585
+ {
586
+ className: "decision-scroll",
587
+ style: {
588
+ flex: 1,
589
+ padding: "20px 24px",
590
+ display: "flex",
591
+ flexDirection: "column",
592
+ gap: 18,
593
+ background: "#FFFFFF",
594
+ height: "100%",
595
+ overflowY: "auto",
596
+ overflowX: "hidden"
597
+ },
598
+ children: [
599
+ /* @__PURE__ */ r.jsxs("div", { children: [
600
+ /* @__PURE__ */ r.jsxs("div", { style: {
601
+ display: "flex",
602
+ alignItems: "center",
603
+ justifyContent: "space-between",
604
+ marginBottom: 14
605
+ }, children: [
606
+ /* @__PURE__ */ r.jsxs("div", { children: [
607
+ /* @__PURE__ */ r.jsx("div", { style: { fontSize: 16, fontWeight: 700, color: e.text, marginBottom: 2 }, children: "决策选项" }),
608
+ /* @__PURE__ */ r.jsxs("div", { style: { fontSize: 12, color: e.textLight }, children: [
609
+ "共 ",
610
+ L.length,
611
+ " 个可选方案,请综合评估后选择"
612
+ ] })
613
+ ] }),
614
+ x && /* @__PURE__ */ r.jsx("div", { style: {
615
+ fontSize: 11,
616
+ color: e.success,
617
+ background: e.successLight,
618
+ border: `1.5px solid ${e.successBorder}`,
619
+ borderRadius: 6,
620
+ padding: "4px 10px",
621
+ fontWeight: 600
622
+ }, children: "✓ 已选择" })
623
+ ] }),
624
+ /* @__PURE__ */ r.jsx("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: L.map((s) => {
625
+ var X, O, _;
626
+ const i = H(s), d = B(s), l = x === i, f = !!s.riskLevel && !!p, v = f ? s.riskLevel === p : !0, k = s.riskLevel ? W(s.riskLevel, (X = o == null ? void 0 : o.uiConfig) == null ? void 0 : X.theme) : null;
627
+ return /* @__PURE__ */ r.jsxs(
628
+ "div",
629
+ {
630
+ onClick: () => q(i),
631
+ style: {
632
+ background: l ? `linear-gradient(135deg, ${t(e.primary, 0.08)} 0%, ${t(e.primary, 0.03)} 100%)` : "#FFFFFF",
633
+ border: `2px solid ${l ? e.primary : t(e.border, 0.5)}`,
634
+ borderLeft: `5px solid ${l ? e.primary : "transparent"}`,
635
+ borderRadius: 10,
636
+ padding: "16px 18px",
637
+ cursor: "pointer",
638
+ boxShadow: l ? `0 4px 16px ${t(e.primary, 0.15)}` : "0 2px 6px rgba(0,0,0,0.04)",
639
+ transition: "all 0.25s ease",
640
+ position: "relative",
641
+ transform: l ? "translateY(-2px)" : "none"
642
+ },
643
+ onMouseEnter: (y) => {
644
+ l || (y.currentTarget.style.boxShadow = "0 4px 12px rgba(0,0,0,0.08)", y.currentTarget.style.borderColor = t(e.primary, 0.4));
645
+ },
646
+ onMouseLeave: (y) => {
647
+ l || (y.currentTarget.style.boxShadow = "0 2px 6px rgba(0,0,0,0.04)", y.currentTarget.style.borderColor = t(e.border, 0.5));
648
+ },
649
+ children: [
650
+ l && /* @__PURE__ */ r.jsx("div", { style: {
651
+ position: "absolute",
652
+ top: 14,
653
+ right: 16,
654
+ width: 28,
655
+ height: 28,
656
+ borderRadius: "50%",
657
+ background: `linear-gradient(135deg, ${e.primary} 0%, ${t(e.primary, 0.8)} 100%)`,
658
+ display: "flex",
659
+ alignItems: "center",
660
+ justifyContent: "center",
661
+ boxShadow: `0 2px 8px ${t(e.primary, 0.3)}`
662
+ }, children: /* @__PURE__ */ r.jsx(se, { style: { color: "#fff", fontSize: 13, fontWeight: 700 } }) }),
663
+ /* @__PURE__ */ r.jsxs("div", { style: {
664
+ display: "flex",
665
+ alignItems: "center",
666
+ gap: 10,
667
+ flexWrap: "wrap",
668
+ marginBottom: s.expectedReturn || s.term || s.minAmount || (O = s.features) != null && O.length || s.description ? 12 : 0,
669
+ paddingRight: l ? 36 : 0
670
+ }, children: [
671
+ /* @__PURE__ */ r.jsx("span", { style: {
672
+ fontSize: 15,
673
+ fontWeight: 700,
674
+ color: l ? e.primary : e.text
675
+ }, children: d }),
676
+ k && /* @__PURE__ */ r.jsx("span", { style: {
677
+ fontSize: 12,
678
+ fontWeight: 700,
679
+ color: k.color,
680
+ background: k.bg,
681
+ border: `1.5px solid ${k.border}`,
682
+ borderRadius: 5,
683
+ padding: "3px 9px"
684
+ }, children: s.riskLevel }),
685
+ f && /* @__PURE__ */ r.jsx("span", { style: {
686
+ fontSize: 11,
687
+ fontWeight: 600,
688
+ color: v ? e.success : e.danger,
689
+ background: v ? e.successLight : e.dangerLight,
690
+ border: `1.5px solid ${v ? e.successBorder : e.dangerBorder}`,
691
+ borderRadius: 5,
692
+ padding: "3px 8px"
693
+ }, children: v ? "✓ 风险匹配" : "✗ 风险不匹配" })
694
+ ] }),
695
+ (s.expectedReturn || s.term || s.minAmount) && /* @__PURE__ */ r.jsxs("div", { style: {
696
+ display: "flex",
697
+ gap: 12,
698
+ flexWrap: "wrap",
699
+ marginBottom: (_ = s.features) != null && _.length ? 10 : 0
700
+ }, children: [
701
+ s.expectedReturn && /* @__PURE__ */ r.jsxs("div", { style: {
702
+ display: "flex",
703
+ flexDirection: "column",
704
+ gap: 4,
705
+ padding: "8px 12px",
706
+ background: t(e.successLight, 0.5),
707
+ border: `1.5px solid ${t(e.successBorder, 0.6)}`,
708
+ borderRadius: 6
709
+ }, children: [
710
+ /* @__PURE__ */ r.jsx("span", { style: { fontSize: 10, color: e.textLight, fontWeight: 600, textTransform: "uppercase" }, children: "预期收益" }),
711
+ /* @__PURE__ */ r.jsx("span", { style: { fontSize: 16, fontWeight: 800, color: e.success }, children: s.expectedReturn })
712
+ ] }),
713
+ s.term && /* @__PURE__ */ r.jsxs("div", { style: {
714
+ display: "flex",
715
+ flexDirection: "column",
716
+ gap: 4,
717
+ padding: "8px 12px",
718
+ background: t(e.primaryLight, 0.5),
719
+ border: `1.5px solid ${t(e.primaryBorder, 0.6)}`,
720
+ borderRadius: 6
721
+ }, children: [
722
+ /* @__PURE__ */ r.jsx("span", { style: { fontSize: 10, color: e.textLight, fontWeight: 600, textTransform: "uppercase" }, children: "期限" }),
723
+ /* @__PURE__ */ r.jsx("span", { style: { fontSize: 16, fontWeight: 700, color: e.primary }, children: s.term })
724
+ ] }),
725
+ s.minAmount && /* @__PURE__ */ r.jsxs("div", { style: {
726
+ display: "flex",
727
+ flexDirection: "column",
728
+ gap: 4,
729
+ padding: "8px 12px",
730
+ background: t(e.bg, 0.8),
731
+ border: `1.5px solid ${t(e.border, 0.6)}`,
732
+ borderRadius: 6
733
+ }, children: [
734
+ /* @__PURE__ */ r.jsx("span", { style: { fontSize: 10, color: e.textLight, fontWeight: 600, textTransform: "uppercase" }, children: "起购金额" }),
735
+ /* @__PURE__ */ r.jsxs("span", { style: { fontSize: 16, fontWeight: 700, color: e.text }, children: [
736
+ "¥",
737
+ s.minAmount
738
+ ] })
739
+ ] })
740
+ ] }),
741
+ s.features && s.features.length > 0 && /* @__PURE__ */ r.jsx("div", { style: { display: "flex", flexWrap: "wrap", gap: 6 }, children: s.features.map((y) => /* @__PURE__ */ r.jsx("span", { style: {
742
+ fontSize: 12,
743
+ color: e.textMuted,
744
+ background: t(e.bg, 0.6),
745
+ border: `1px solid ${t(e.border, 0.5)}`,
746
+ borderRadius: 5,
747
+ padding: "3px 9px",
748
+ fontWeight: 500
749
+ }, children: y }, y)) }),
750
+ s.description && !s.expectedReturn && /* @__PURE__ */ r.jsx("div", { style: {
751
+ fontSize: 13,
752
+ color: e.textMuted,
753
+ lineHeight: 1.6,
754
+ padding: "8px 12px",
755
+ background: t(e.bg, 0.3),
756
+ borderRadius: 6
757
+ }, children: s.description })
758
+ ]
759
+ },
760
+ i
761
+ );
762
+ }) })
763
+ ] }),
764
+ /* @__PURE__ */ r.jsxs("div", { style: {
765
+ background: `linear-gradient(to bottom, ${t(e.bg, 0.3)} 0%, #FFFFFF 100%)`,
766
+ border: `2px solid ${t(e.border, 0.5)}`,
767
+ borderRadius: 10,
768
+ padding: "16px"
769
+ }, children: [
770
+ /* @__PURE__ */ r.jsxs("div", { style: {
771
+ display: "flex",
772
+ alignItems: "center",
773
+ gap: 8,
774
+ marginBottom: 10
775
+ }, children: [
776
+ /* @__PURE__ */ r.jsx("div", { style: {
777
+ width: 24,
778
+ height: 24,
779
+ borderRadius: "50%",
780
+ background: t(e.primaryLight, 0.5),
781
+ border: `1.5px solid ${t(e.primaryBorder, 0.6)}`,
782
+ display: "flex",
783
+ alignItems: "center",
784
+ justifyContent: "center"
785
+ }, children: /* @__PURE__ */ r.jsx(J, { style: { color: e.primary, fontSize: 12 } }) }),
786
+ /* @__PURE__ */ r.jsx("span", { style: { fontSize: 14, fontWeight: 600, color: e.text }, children: "决策理由" }),
787
+ /* @__PURE__ */ r.jsx("span", { style: { fontSize: 11, color: e.textLight, marginLeft: "auto" }, children: "可选" })
788
+ ] }),
789
+ /* @__PURE__ */ r.jsx(
790
+ oe.TextArea,
791
+ {
792
+ rows: 3,
793
+ placeholder: "请说明您的决策依据和理由...",
794
+ value: $,
795
+ onChange: (s) => G(s.target.value),
796
+ style: {
797
+ resize: "none",
798
+ border: `1.5px solid ${t(e.border, 0.5)}`,
799
+ borderRadius: 8,
800
+ fontSize: 13,
801
+ padding: "10px 12px",
802
+ background: "#FFFFFF"
803
+ }
804
+ }
805
+ )
806
+ ] }),
807
+ /* @__PURE__ */ r.jsxs(
808
+ "button",
809
+ {
810
+ onClick: D,
811
+ disabled: !x,
812
+ style: {
813
+ width: "100%",
814
+ height: 52,
815
+ border: "none",
816
+ borderRadius: 10,
817
+ fontSize: 15,
818
+ fontWeight: 700,
819
+ cursor: x ? "pointer" : "not-allowed",
820
+ background: x ? `linear-gradient(135deg, ${e.primary} 0%, ${t(e.primary, 0.85)} 100%)` : "#E8E8E8",
821
+ color: x ? "#FFFFFF" : "#BFBFBF",
822
+ boxShadow: x ? `0 4px 16px ${t(e.primary, 0.3)}` : "none",
823
+ transition: "all 0.25s ease",
824
+ display: "flex",
825
+ alignItems: "center",
826
+ justifyContent: "center",
827
+ gap: 10,
828
+ letterSpacing: "0.5px",
829
+ position: "relative",
830
+ overflow: "hidden"
831
+ },
832
+ onMouseEnter: (s) => {
833
+ x && (s.currentTarget.style.transform = "translateY(-2px)", s.currentTarget.style.boxShadow = `0 6px 20px ${t(e.primary, 0.4)}`);
834
+ },
835
+ onMouseLeave: (s) => {
836
+ x && (s.currentTarget.style.transform = "none", s.currentTarget.style.boxShadow = `0 4px 16px ${t(e.primary, 0.3)}`);
837
+ },
838
+ children: [
839
+ x && /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
840
+ /* @__PURE__ */ r.jsx("div", { style: {
841
+ position: "absolute",
842
+ top: 0,
843
+ left: 0,
844
+ right: 0,
845
+ bottom: 0,
846
+ background: "linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.1) 50%, transparent 100%)",
847
+ animation: "shimmer 2s infinite"
848
+ } }),
849
+ /* @__PURE__ */ r.jsx(R, { style: { fontSize: 18, position: "relative", zIndex: 1 } })
850
+ ] }),
851
+ /* @__PURE__ */ r.jsx("span", { style: { position: "relative", zIndex: 1 }, children: x ? `确认选择「${B(g)}」` : "请先选择一个决策选项" })
852
+ ]
853
+ }
854
+ )
855
+ ]
856
+ }
857
+ )
858
+ ] })
859
+ ] });
860
+ };
861
+ export {
862
+ we as default
863
+ };