@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,977 @@
1
+ import { j as e, R as W, b as B, k as T, i as U } from "./RadarChart-C5ZM0kWt.js";
2
+ import N, { useMemo as f, useState as w } from "react";
3
+ import { Card as O, Descriptions as I, Tag as z, Space as E, Checkbox as Y, Radio as P, Input as V, Button as _, Alert as G, message as J } from "antd";
4
+ import { c as K, d as Q, a as X } from "./judgement-D_9i7x9S.js";
5
+ import { f as Z, g as D } from "./WarningOutlined-5g1d66hO.js";
6
+ const k = {
7
+ colors: {
8
+ primary: "#2563EB",
9
+ secondary: "#3B82F6",
10
+ success: "#10B981",
11
+ warning: "#F59E0B",
12
+ error: "#EF4444",
13
+ info: "#3B82F6",
14
+ background: "#F8FAFC",
15
+ surface: "#FFFFFF",
16
+ surfaceHover: "#F1F5F9",
17
+ textPrimary: "#1E293B",
18
+ textSecondary: "#64748B",
19
+ textDisabled: "#94A3B8",
20
+ border: "#E2E8F0",
21
+ borderFocus: "#2563EB",
22
+ divider: "#F1F5F9"
23
+ },
24
+ typography: {
25
+ fontFamily: {
26
+ heading: "'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif",
27
+ body: "'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
28
+ },
29
+ fontSize: {
30
+ h1: "24px",
31
+ h2: "18px",
32
+ h3: "16px",
33
+ body: "14px",
34
+ caption: "12px"
35
+ },
36
+ fontWeight: {
37
+ regular: 400,
38
+ medium: 500,
39
+ semibold: 600,
40
+ bold: 700
41
+ },
42
+ lineHeight: 1.5
43
+ },
44
+ spacing: {
45
+ xs: "8px",
46
+ sm: "12px",
47
+ md: "16px",
48
+ lg: "24px",
49
+ xl: "32px",
50
+ xxl: "48px"
51
+ },
52
+ borderRadius: {
53
+ sm: "4px",
54
+ md: "8px",
55
+ lg: "12px"
56
+ },
57
+ shadows: {
58
+ card: "0 1px 3px rgba(0, 0, 0, 0.08)",
59
+ cardHover: "0 4px 12px rgba(0, 0, 0, 0.12)",
60
+ focus: "0 0 0 3px rgba(37, 99, 235, 0.1)"
61
+ },
62
+ transitions: {
63
+ fast: "150ms ease-in-out",
64
+ normal: "200ms ease-out",
65
+ slow: "300ms ease-out"
66
+ },
67
+ zIndex: {
68
+ base: 0,
69
+ card: 1,
70
+ header: 10,
71
+ modal: 100
72
+ }
73
+ }, L = {
74
+ "document-review": {
75
+ primary: "#2563EB",
76
+ secondary: "#64748B"
77
+ },
78
+ "archive-management": {
79
+ primary: "#92400E",
80
+ secondary: "#B45309"
81
+ },
82
+ "quality-inspection": {
83
+ primary: "#EA580C",
84
+ secondary: "#F59E0B"
85
+ },
86
+ "security-checkpoint": {
87
+ primary: "#1E40AF",
88
+ secondary: "#3B82F6"
89
+ },
90
+ "counter-service": {
91
+ primary: "#059669",
92
+ secondary: "#10B981"
93
+ },
94
+ "smart-recognition": {
95
+ primary: "#7C3AED",
96
+ secondary: "#A78BFA"
97
+ }
98
+ };
99
+ function rr(r, o) {
100
+ return !o || !L[o] ? r : {
101
+ ...r,
102
+ colors: {
103
+ ...r.colors,
104
+ ...L[o]
105
+ }
106
+ };
107
+ }
108
+ const er = ({
109
+ tokens: r,
110
+ leftPanel: o,
111
+ rightPanel: a,
112
+ topAlert: t,
113
+ reviewMode: l = "identity-verification",
114
+ atmosphereStyle: i
115
+ }) => {
116
+ const c = () => l === "material-review" ? i === "archive-management" ? { icon: "📁", text: "档案预览" } : i === "quality-inspection" ? { icon: "📋", text: "材料清单" } : { icon: "📄", text: "文档预览" } : i === "security-checkpoint" ? { icon: "🛂", text: "证件扫描" } : i === "smart-recognition" ? { icon: "📷", text: "OCR识别" } : { icon: "🪪", text: "证件信息" }, m = () => l === "material-review" ? i === "archive-management" ? { icon: "✓", text: "归档检查" } : i === "quality-inspection" ? { icon: "✓", text: "质检操作" } : { icon: "✓", text: "复核操作" } : i === "security-checkpoint" ? { icon: "🔍", text: "安检核验" } : i === "smart-recognition" ? { icon: "🤖", text: "智能审核" } : { icon: "✏️", text: "审核操作" }, d = c(), p = m(), b = `
117
+ /* Webkit 浏览器滚动条样式 */
118
+ .document-review-scroll::-webkit-scrollbar {
119
+ width: 8px;
120
+ height: 8px;
121
+ }
122
+
123
+ .document-review-scroll::-webkit-scrollbar-track {
124
+ background: ${r.colors.background};
125
+ border-radius: 4px;
126
+ }
127
+
128
+ .document-review-scroll::-webkit-scrollbar-thumb {
129
+ background: ${r.colors.border};
130
+ border-radius: 4px;
131
+ transition: background 0.2s ease;
132
+ }
133
+
134
+ .document-review-scroll::-webkit-scrollbar-thumb:hover {
135
+ background: ${r.colors.textSecondary};
136
+ }
137
+
138
+ /* Firefox 滚动条样式 */
139
+ .document-review-scroll {
140
+ scrollbar-width: thin;
141
+ scrollbar-color: ${r.colors.border} ${r.colors.background};
142
+ }
143
+
144
+ /* 预览区背景纹理 */
145
+ .preview-area-texture {
146
+ background-color: #fafafa;
147
+ background-image:
148
+ linear-gradient(45deg, #f5f5f5 25%, transparent 25%),
149
+ linear-gradient(-45deg, #f5f5f5 25%, transparent 25%),
150
+ linear-gradient(45deg, transparent 75%, #f5f5f5 75%),
151
+ linear-gradient(-45deg, transparent 75%, #f5f5f5 75%);
152
+ background-size: 20px 20px;
153
+ background-position: 0 0, 0 10px, 10px -10px, -10px 0px;
154
+ }
155
+ `;
156
+ return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
157
+ /* @__PURE__ */ e.jsx("style", { children: b }),
158
+ /* @__PURE__ */ e.jsxs(
159
+ "div",
160
+ {
161
+ style: {
162
+ backgroundColor: r.colors.background,
163
+ paddingLeft: r.spacing.lg,
164
+ paddingTop: r.spacing.lg,
165
+ paddingBottom: r.spacing.lg
166
+ },
167
+ children: [
168
+ t && /* @__PURE__ */ e.jsx("div", { style: { marginBottom: r.spacing.lg, paddingRight: r.spacing.lg }, children: t }),
169
+ /* @__PURE__ */ e.jsxs(
170
+ "div",
171
+ {
172
+ style: {
173
+ display: "flex",
174
+ gap: "0",
175
+ height: "600px"
176
+ },
177
+ children: [
178
+ /* @__PURE__ */ e.jsxs(
179
+ "div",
180
+ {
181
+ className: "document-review-scroll preview-area-texture",
182
+ style: {
183
+ flex: "0 0 40%",
184
+ height: "600px",
185
+ overflowY: "auto",
186
+ paddingRight: r.spacing.md,
187
+ paddingLeft: r.spacing.sm,
188
+ paddingTop: r.spacing.sm,
189
+ paddingBottom: r.spacing.sm,
190
+ boxShadow: "inset 0 2px 4px rgba(0, 0, 0, 0.03)",
191
+ position: "relative"
192
+ },
193
+ children: [
194
+ /* @__PURE__ */ e.jsxs(
195
+ "div",
196
+ {
197
+ style: {
198
+ position: "sticky",
199
+ top: 0,
200
+ zIndex: 10,
201
+ backgroundColor: "rgba(250, 250, 250, 0.95)",
202
+ backdropFilter: "blur(8px)",
203
+ padding: `${r.spacing.xs} ${r.spacing.sm}`,
204
+ marginBottom: r.spacing.sm,
205
+ borderRadius: r.borderRadius.sm,
206
+ border: "1px solid rgba(0, 0, 0, 0.06)",
207
+ display: "flex",
208
+ alignItems: "center",
209
+ gap: r.spacing.xs
210
+ },
211
+ children: [
212
+ /* @__PURE__ */ e.jsx("span", { style: { fontSize: "14px", color: r.colors.textSecondary }, children: d.icon }),
213
+ /* @__PURE__ */ e.jsx(
214
+ "span",
215
+ {
216
+ style: {
217
+ fontSize: r.typography.fontSize.caption,
218
+ fontWeight: r.typography.fontWeight.medium,
219
+ color: r.colors.textSecondary,
220
+ letterSpacing: "0.5px"
221
+ },
222
+ children: d.text
223
+ }
224
+ ),
225
+ /* @__PURE__ */ e.jsx(
226
+ "span",
227
+ {
228
+ style: {
229
+ marginLeft: "auto",
230
+ fontSize: r.typography.fontSize.caption,
231
+ color: r.colors.textSecondary,
232
+ opacity: 0.6
233
+ },
234
+ children: "只读"
235
+ }
236
+ )
237
+ ]
238
+ }
239
+ ),
240
+ o
241
+ ]
242
+ }
243
+ ),
244
+ /* @__PURE__ */ e.jsxs(
245
+ "div",
246
+ {
247
+ className: "document-review-scroll",
248
+ style: {
249
+ flex: "1",
250
+ height: "600px",
251
+ overflowY: "auto",
252
+ paddingLeft: r.spacing.md,
253
+ paddingRight: r.spacing.sm,
254
+ paddingTop: r.spacing.sm,
255
+ paddingBottom: r.spacing.sm,
256
+ backgroundColor: "#ffffff",
257
+ borderLeft: "1px solid rgba(0, 0, 0, 0.06)",
258
+ position: "relative"
259
+ },
260
+ children: [
261
+ /* @__PURE__ */ e.jsxs(
262
+ "div",
263
+ {
264
+ style: {
265
+ position: "sticky",
266
+ top: 0,
267
+ zIndex: 10,
268
+ backgroundColor: "rgba(255, 255, 255, 0.95)",
269
+ backdropFilter: "blur(8px)",
270
+ padding: `${r.spacing.xs} ${r.spacing.sm}`,
271
+ marginBottom: r.spacing.sm,
272
+ borderRadius: r.borderRadius.sm,
273
+ border: `1px solid ${r.colors.primary}20`,
274
+ display: "flex",
275
+ alignItems: "center",
276
+ gap: r.spacing.xs
277
+ },
278
+ children: [
279
+ /* @__PURE__ */ e.jsx("span", { style: { fontSize: "14px", color: r.colors.primary }, children: p.icon }),
280
+ /* @__PURE__ */ e.jsx(
281
+ "span",
282
+ {
283
+ style: {
284
+ fontSize: r.typography.fontSize.caption,
285
+ fontWeight: r.typography.fontWeight.medium,
286
+ color: r.colors.primary,
287
+ letterSpacing: "0.5px"
288
+ },
289
+ children: p.text
290
+ }
291
+ )
292
+ ]
293
+ }
294
+ ),
295
+ a
296
+ ]
297
+ }
298
+ )
299
+ ]
300
+ }
301
+ )
302
+ ]
303
+ }
304
+ )
305
+ ] });
306
+ }, j = ({ tokens: r, children: o, title: a, icon: t }) => /* @__PURE__ */ e.jsxs(
307
+ "div",
308
+ {
309
+ style: {
310
+ backgroundColor: r.colors.surface,
311
+ borderRadius: r.borderRadius.md,
312
+ boxShadow: r.shadows.card,
313
+ padding: r.spacing.lg,
314
+ marginBottom: r.spacing.md,
315
+ transition: `box-shadow ${r.transitions.normal}`
316
+ },
317
+ onMouseEnter: (l) => {
318
+ l.currentTarget.style.boxShadow = r.shadows.cardHover;
319
+ },
320
+ onMouseLeave: (l) => {
321
+ l.currentTarget.style.boxShadow = r.shadows.card;
322
+ },
323
+ children: [
324
+ a && /* @__PURE__ */ e.jsxs(
325
+ "div",
326
+ {
327
+ style: {
328
+ display: "flex",
329
+ alignItems: "center",
330
+ marginBottom: r.spacing.md,
331
+ paddingBottom: r.spacing.sm,
332
+ borderBottom: `1px solid ${r.colors.divider}`
333
+ },
334
+ children: [
335
+ t && /* @__PURE__ */ e.jsx("span", { style: { marginRight: r.spacing.xs, color: r.colors.primary }, children: t }),
336
+ /* @__PURE__ */ e.jsx(
337
+ "h3",
338
+ {
339
+ style: {
340
+ margin: 0,
341
+ fontSize: r.typography.fontSize.h3,
342
+ fontWeight: r.typography.fontWeight.semibold,
343
+ fontFamily: r.typography.fontFamily.heading,
344
+ color: r.colors.textPrimary
345
+ },
346
+ children: a
347
+ }
348
+ )
349
+ ]
350
+ }
351
+ ),
352
+ o
353
+ ]
354
+ }
355
+ ), or = ({
356
+ tokens: r,
357
+ documents: o,
358
+ atmosphereStyle: a,
359
+ reviewMode: t
360
+ }) => o.length === 0 ? /* @__PURE__ */ e.jsx(j, { tokens: r, title: "证件/材料信息", icon: /* @__PURE__ */ e.jsx(W, {}), children: /* @__PURE__ */ e.jsx(
361
+ "div",
362
+ {
363
+ style: {
364
+ textAlign: "center",
365
+ padding: r.spacing.xl,
366
+ color: r.colors.textSecondary
367
+ },
368
+ children: "暂无证件/材料信息"
369
+ }
370
+ ) }) : /* @__PURE__ */ e.jsx("div", { style: { display: "flex", flexDirection: "column", gap: "0" }, children: o.map((l, i) => /* @__PURE__ */ e.jsx(
371
+ ir,
372
+ {
373
+ tokens: r,
374
+ document: l,
375
+ index: i,
376
+ atmosphereStyle: a,
377
+ reviewMode: t
378
+ },
379
+ i
380
+ )) }), ir = ({
381
+ tokens: r,
382
+ document: o,
383
+ index: a,
384
+ atmosphereStyle: t,
385
+ reviewMode: l
386
+ }) => {
387
+ const i = () => {
388
+ if (!t) return null;
389
+ if (l === "material-review") {
390
+ if (t === "archive-management")
391
+ return /* @__PURE__ */ e.jsx(
392
+ "div",
393
+ {
394
+ style: {
395
+ position: "absolute",
396
+ top: "-8px",
397
+ left: "16px",
398
+ width: "50px",
399
+ height: "8px",
400
+ backgroundColor: r.colors.primary,
401
+ opacity: 0.3,
402
+ borderRadius: "4px 4px 0 0"
403
+ }
404
+ }
405
+ );
406
+ if (t === "quality-inspection")
407
+ return /* @__PURE__ */ e.jsx(
408
+ "div",
409
+ {
410
+ style: {
411
+ position: "absolute",
412
+ top: "8px",
413
+ right: "8px",
414
+ width: "24px",
415
+ height: "24px",
416
+ border: `2px solid ${r.colors.success}`,
417
+ borderRadius: "50%",
418
+ opacity: 0.2
419
+ }
420
+ }
421
+ );
422
+ }
423
+ if (l === "identity-verification") {
424
+ if (t === "security-checkpoint")
425
+ return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
426
+ /* @__PURE__ */ e.jsx(
427
+ "div",
428
+ {
429
+ style: {
430
+ position: "absolute",
431
+ top: 0,
432
+ left: 0,
433
+ right: 0,
434
+ height: "2px",
435
+ background: `linear-gradient(90deg, transparent, ${r.colors.primary}, transparent)`,
436
+ opacity: 0.5
437
+ }
438
+ }
439
+ ),
440
+ /* @__PURE__ */ e.jsx(
441
+ "div",
442
+ {
443
+ style: {
444
+ position: "absolute",
445
+ top: "8px",
446
+ right: "8px",
447
+ width: "20px",
448
+ height: "20px",
449
+ border: `2px solid ${r.colors.primary}`,
450
+ borderRadius: "2px",
451
+ opacity: 0.3
452
+ }
453
+ }
454
+ )
455
+ ] });
456
+ if (t === "smart-recognition")
457
+ return /* @__PURE__ */ e.jsx(
458
+ "div",
459
+ {
460
+ style: {
461
+ position: "absolute",
462
+ top: "8px",
463
+ right: "8px",
464
+ width: "6px",
465
+ height: "6px",
466
+ backgroundColor: r.colors.success,
467
+ borderRadius: "50%",
468
+ boxShadow: `0 0 8px ${r.colors.success}`,
469
+ animation: "pulse 2s ease-in-out infinite"
470
+ }
471
+ }
472
+ );
473
+ }
474
+ return null;
475
+ };
476
+ return /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
477
+ /* @__PURE__ */ e.jsx("style", { children: `
478
+ @keyframes pulse {
479
+ 0%, 100% { opacity: 0.3; }
480
+ 50% { opacity: 1; }
481
+ }
482
+ ` }),
483
+ /* @__PURE__ */ e.jsxs(
484
+ O,
485
+ {
486
+ size: "small",
487
+ style: {
488
+ marginBottom: r.spacing.md,
489
+ borderRadius: r.borderRadius.md,
490
+ boxShadow: r.shadows.card,
491
+ border: `1px solid ${r.colors.border}`,
492
+ transition: `all ${r.transitions.normal}`,
493
+ position: "relative",
494
+ overflow: "visible"
495
+ },
496
+ title: /* @__PURE__ */ e.jsxs("div", { style: { display: "flex", alignItems: "center", gap: r.spacing.xs }, children: [
497
+ /* @__PURE__ */ e.jsx(W, { style: { color: r.colors.primary } }),
498
+ /* @__PURE__ */ e.jsx(
499
+ "span",
500
+ {
501
+ style: {
502
+ fontFamily: r.typography.fontFamily.heading,
503
+ fontWeight: r.typography.fontWeight.semibold,
504
+ color: r.colors.textPrimary
505
+ },
506
+ children: o.documentType
507
+ }
508
+ ),
509
+ /* @__PURE__ */ e.jsxs(
510
+ z,
511
+ {
512
+ color: r.colors.primary,
513
+ style: {
514
+ marginLeft: "auto",
515
+ borderRadius: r.borderRadius.sm
516
+ },
517
+ children: [
518
+ "#",
519
+ a + 1
520
+ ]
521
+ }
522
+ )
523
+ ] }),
524
+ hoverable: !0,
525
+ onMouseEnter: (c) => {
526
+ c.currentTarget.style.boxShadow = r.shadows.cardHover, c.currentTarget.style.borderColor = r.colors.primary;
527
+ },
528
+ onMouseLeave: (c) => {
529
+ c.currentTarget.style.boxShadow = r.shadows.card, c.currentTarget.style.borderColor = r.colors.border;
530
+ },
531
+ children: [
532
+ i(),
533
+ /* @__PURE__ */ e.jsx(
534
+ I,
535
+ {
536
+ column: 1,
537
+ size: "small",
538
+ labelStyle: {
539
+ fontWeight: r.typography.fontWeight.medium,
540
+ color: r.colors.textSecondary,
541
+ fontFamily: r.typography.fontFamily.body,
542
+ fontSize: r.typography.fontSize.caption
543
+ },
544
+ contentStyle: {
545
+ color: r.colors.textPrimary,
546
+ fontFamily: r.typography.fontFamily.body,
547
+ fontSize: r.typography.fontSize.body
548
+ },
549
+ children: o.fields.map((c) => /* @__PURE__ */ e.jsx(I.Item, { label: c.label, children: sr(c, r) }, c.name))
550
+ }
551
+ )
552
+ ]
553
+ }
554
+ )
555
+ ] });
556
+ };
557
+ function sr(r, o) {
558
+ const a = r.value || "-";
559
+ return r.type === "date" ? /* @__PURE__ */ e.jsx("span", { style: { color: o.colors.info, fontWeight: o.typography.fontWeight.medium }, children: a }) : r.type === "number" ? /* @__PURE__ */ e.jsx("span", { style: { fontFamily: "monospace", color: o.colors.textPrimary }, children: a }) : r.type === "textarea" ? /* @__PURE__ */ e.jsx(
560
+ "div",
561
+ {
562
+ style: {
563
+ whiteSpace: "pre-wrap",
564
+ padding: o.spacing.xs,
565
+ backgroundColor: o.colors.background,
566
+ borderRadius: o.borderRadius.sm,
567
+ fontSize: o.typography.fontSize.caption
568
+ },
569
+ children: a
570
+ }
571
+ ) : /* @__PURE__ */ e.jsx("span", { children: a });
572
+ }
573
+ const { TextArea: tr } = V, lr = ({
574
+ tokens: r,
575
+ checkPoints: o,
576
+ mustCheck: a,
577
+ riskPoints: t,
578
+ checkedItems: l,
579
+ conclusion: i,
580
+ exceptions: c,
581
+ onToggleCheck: m,
582
+ onConclusionChange: d,
583
+ onExceptionsChange: p,
584
+ onComplete: b,
585
+ atmosphereStyle: y,
586
+ reviewMode: S
587
+ }) => {
588
+ const u = () => S === "material-review" ? y === "archive-management" ? "完成归档" : y === "quality-inspection" ? "提交质检" : "完成复核" : y === "security-checkpoint" ? "通过安检" : y === "smart-recognition" ? "确认识别" : "完成审核";
589
+ return /* @__PURE__ */ e.jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "0" }, children: [
590
+ o.length > 0 && /* @__PURE__ */ e.jsxs(j, { tokens: r, title: "审核检查点", icon: /* @__PURE__ */ e.jsx(B, {}), children: [
591
+ /* @__PURE__ */ e.jsx(E, { direction: "vertical", style: { width: "100%" }, size: parseInt(r.spacing.sm), children: o.map((s) => {
592
+ const F = a.includes(s), x = l.includes(s);
593
+ return /* @__PURE__ */ e.jsx(
594
+ "div",
595
+ {
596
+ style: {
597
+ padding: r.spacing.sm,
598
+ borderRadius: r.borderRadius.sm,
599
+ backgroundColor: x ? `${r.colors.success}10` : r.colors.background,
600
+ border: `1px solid ${x ? r.colors.success : r.colors.border}`,
601
+ transition: `all ${r.transitions.fast}`
602
+ },
603
+ children: /* @__PURE__ */ e.jsxs(
604
+ Y,
605
+ {
606
+ checked: x,
607
+ onChange: (C) => m(s, C.target.checked),
608
+ style: {
609
+ fontFamily: r.typography.fontFamily.body,
610
+ fontSize: r.typography.fontSize.body,
611
+ color: r.colors.textPrimary
612
+ },
613
+ children: [
614
+ /* @__PURE__ */ e.jsx("span", { style: { marginRight: r.spacing.xs }, children: s }),
615
+ F && /* @__PURE__ */ e.jsx(
616
+ z,
617
+ {
618
+ color: r.colors.error,
619
+ style: {
620
+ marginLeft: r.spacing.xs,
621
+ fontSize: r.typography.fontSize.caption,
622
+ borderRadius: r.borderRadius.sm
623
+ },
624
+ children: "必检"
625
+ }
626
+ )
627
+ ]
628
+ }
629
+ )
630
+ },
631
+ s
632
+ );
633
+ }) }),
634
+ /* @__PURE__ */ e.jsx(
635
+ "div",
636
+ {
637
+ style: {
638
+ marginTop: r.spacing.md,
639
+ padding: r.spacing.sm,
640
+ backgroundColor: r.colors.background,
641
+ borderRadius: r.borderRadius.sm,
642
+ textAlign: "center"
643
+ },
644
+ children: /* @__PURE__ */ e.jsxs(
645
+ "span",
646
+ {
647
+ style: {
648
+ fontSize: r.typography.fontSize.caption,
649
+ color: r.colors.textSecondary
650
+ },
651
+ children: [
652
+ "已完成 ",
653
+ l.length,
654
+ " / ",
655
+ o.length,
656
+ " 项检查"
657
+ ]
658
+ }
659
+ )
660
+ }
661
+ )
662
+ ] }),
663
+ t.length > 0 && /* @__PURE__ */ e.jsx(j, { tokens: r, title: "关注风险点", icon: /* @__PURE__ */ e.jsx(Z, {}), children: /* @__PURE__ */ e.jsx(E, { wrap: !0, size: parseInt(r.spacing.xs), children: t.map((s) => /* @__PURE__ */ e.jsx(
664
+ z,
665
+ {
666
+ color: r.colors.warning,
667
+ icon: /* @__PURE__ */ e.jsx(T, {}),
668
+ style: {
669
+ fontSize: r.typography.fontSize.body,
670
+ padding: `${r.spacing.xs} ${r.spacing.sm}`,
671
+ borderRadius: r.borderRadius.sm
672
+ },
673
+ children: s
674
+ },
675
+ s
676
+ )) }) }),
677
+ /* @__PURE__ */ e.jsx(j, { tokens: r, title: "审核结论", children: /* @__PURE__ */ e.jsx(
678
+ P.Group,
679
+ {
680
+ value: i,
681
+ onChange: (s) => d(s.target.value),
682
+ style: { width: "100%" },
683
+ children: /* @__PURE__ */ e.jsxs("div", { style: { display: "flex", gap: r.spacing.sm, width: "100%" }, children: [
684
+ /* @__PURE__ */ e.jsx(
685
+ R,
686
+ {
687
+ tokens: r,
688
+ value: "pass",
689
+ label: "通过",
690
+ icon: /* @__PURE__ */ e.jsx(U, {}),
691
+ color: r.colors.success,
692
+ selected: i === "pass"
693
+ }
694
+ ),
695
+ /* @__PURE__ */ e.jsx(
696
+ R,
697
+ {
698
+ tokens: r,
699
+ value: "warning",
700
+ label: "存疑",
701
+ icon: /* @__PURE__ */ e.jsx(T, {}),
702
+ color: r.colors.warning,
703
+ selected: i === "warning"
704
+ }
705
+ ),
706
+ /* @__PURE__ */ e.jsx(
707
+ R,
708
+ {
709
+ tokens: r,
710
+ value: "reject",
711
+ label: "不通过",
712
+ icon: /* @__PURE__ */ e.jsx(D, {}),
713
+ color: r.colors.error,
714
+ selected: i === "reject"
715
+ }
716
+ )
717
+ ] })
718
+ }
719
+ ) }),
720
+ /* @__PURE__ */ e.jsx(j, { tokens: r, title: "异常记录", children: /* @__PURE__ */ e.jsx(
721
+ tr,
722
+ {
723
+ rows: 6,
724
+ placeholder: `如发现异常,请逐行填写,例如:
725
+ 身份证有效期临近
726
+ 申请表签字缺失`,
727
+ value: c,
728
+ onChange: (s) => p(s.target.value),
729
+ style: {
730
+ fontFamily: r.typography.fontFamily.body,
731
+ fontSize: r.typography.fontSize.body,
732
+ borderColor: r.colors.border,
733
+ borderRadius: r.borderRadius.sm,
734
+ transition: `all ${r.transitions.fast}`
735
+ },
736
+ onFocus: (s) => {
737
+ s.currentTarget.style.borderColor = r.colors.borderFocus, s.currentTarget.style.boxShadow = r.shadows.focus;
738
+ },
739
+ onBlur: (s) => {
740
+ s.currentTarget.style.borderColor = r.colors.border, s.currentTarget.style.boxShadow = "none";
741
+ }
742
+ }
743
+ ) }),
744
+ /* @__PURE__ */ e.jsx(
745
+ _,
746
+ {
747
+ type: "primary",
748
+ size: "large",
749
+ block: !0,
750
+ onClick: b,
751
+ icon: /* @__PURE__ */ e.jsx(B, {}),
752
+ style: {
753
+ height: "48px",
754
+ fontSize: r.typography.fontSize.h3,
755
+ fontWeight: r.typography.fontWeight.semibold,
756
+ fontFamily: r.typography.fontFamily.heading,
757
+ backgroundColor: r.colors.primary,
758
+ borderColor: r.colors.primary,
759
+ borderRadius: r.borderRadius.md,
760
+ boxShadow: r.shadows.card,
761
+ transition: `all ${r.transitions.normal}`
762
+ },
763
+ onMouseEnter: (s) => {
764
+ s.currentTarget.style.transform = "translateY(-2px)", s.currentTarget.style.boxShadow = r.shadows.cardHover;
765
+ },
766
+ onMouseLeave: (s) => {
767
+ s.currentTarget.style.transform = "translateY(0)", s.currentTarget.style.boxShadow = r.shadows.card;
768
+ },
769
+ children: u()
770
+ }
771
+ )
772
+ ] });
773
+ }, R = ({
774
+ tokens: r,
775
+ value: o,
776
+ label: a,
777
+ icon: t,
778
+ color: l,
779
+ selected: i
780
+ }) => /* @__PURE__ */ e.jsx(
781
+ "div",
782
+ {
783
+ style: {
784
+ flex: 1,
785
+ padding: r.spacing.md,
786
+ borderRadius: r.borderRadius.sm,
787
+ border: `2px solid ${i ? l : r.colors.border}`,
788
+ backgroundColor: i ? `${l}10` : r.colors.surface,
789
+ transition: `all ${r.transitions.fast}`,
790
+ cursor: "pointer"
791
+ },
792
+ children: /* @__PURE__ */ e.jsx(P, { value: o, style: { width: "100%" }, children: /* @__PURE__ */ e.jsxs("div", { style: { display: "flex", alignItems: "center", gap: r.spacing.xs, justifyContent: "center" }, children: [
793
+ /* @__PURE__ */ e.jsx("span", { style: { color: l, fontSize: "18px" }, children: t }),
794
+ /* @__PURE__ */ e.jsx(
795
+ "span",
796
+ {
797
+ style: {
798
+ fontFamily: r.typography.fontFamily.heading,
799
+ fontSize: r.typography.fontSize.body,
800
+ fontWeight: i ? r.typography.fontWeight.semibold : r.typography.fontWeight.regular,
801
+ color: i ? l : r.colors.textPrimary
802
+ },
803
+ children: a
804
+ }
805
+ )
806
+ ] }) })
807
+ }
808
+ );
809
+ function ar(r) {
810
+ return r.map((o) => ({
811
+ documentType: o.type,
812
+ fields: [
813
+ { name: "name", label: "姓名", type: "text", value: o.name },
814
+ { name: "number", label: "证件号码", type: "text", value: o.number },
815
+ ...o.address ? [{ name: "address", label: "地址", type: "text", value: o.address }] : [],
816
+ ...o.validUntil ? [{ name: "validUntil", label: "有效期至", type: "date", value: o.validUntil }] : []
817
+ ]
818
+ }));
819
+ }
820
+ const nr = ({
821
+ initData: r,
822
+ checkRules: o,
823
+ onFinish: a
824
+ }) => {
825
+ const t = f(() => K(r == null ? void 0 : r.reviewMode), [r]), l = f(() => (r == null ? void 0 : r.checkPoints) || [], [r]), i = f(() => {
826
+ var g;
827
+ const n = (r == null ? void 0 : r.documents) || [];
828
+ return n.length === 0 ? [] : (g = n[0]) != null && g.fields ? n : ar(n);
829
+ }, [r]), c = f(
830
+ () => Q((o == null ? void 0 : o.mustCheck) || [], (r == null ? void 0 : r.checkPoints) || []),
831
+ [o, r]
832
+ ), m = f(() => (o == null ? void 0 : o.riskPoints) || [], [o]), d = f(
833
+ () => rr(k, r == null ? void 0 : r.atmosphereStyle),
834
+ [r == null ? void 0 : r.atmosphereStyle]
835
+ ), [p, b] = w([]), [y, S] = w(""), [u, s] = w("pass"), [F, x] = w(!0);
836
+ N.useEffect(() => {
837
+ const n = setTimeout(() => {
838
+ x(!1);
839
+ }, 5e3);
840
+ return () => clearTimeout(n);
841
+ }, []);
842
+ const C = (n, g) => {
843
+ b((h) => g ? h.includes(n) ? h : [...h, n] : h.filter((v) => v !== n));
844
+ }, A = () => {
845
+ const n = c.filter((v) => !p.includes(v));
846
+ if (n.length > 0) {
847
+ J.error(`还有必检项未完成:${n.join("、")}`);
848
+ return;
849
+ }
850
+ const g = y.split(`
851
+ `).map((v) => v.trim()).filter(Boolean), h = X({
852
+ sourceStepId: (r == null ? void 0 : r.stepId) || "unknown",
853
+ sourceStepName: (r == null ? void 0 : r.stepName) || "单据审核",
854
+ sourceType: "document-review",
855
+ title: t === "material-review" ? "材料复核结果" : "单据审核结果",
856
+ summary: `已完成 ${p.length} 项检查,审核结论为 ${u}。`,
857
+ keyFacts: [
858
+ { label: "审核模式", value: t },
859
+ { label: "已检查项数", value: String(p.length) },
860
+ { label: "单据数量", value: String(i.length) },
861
+ { label: "审核结论", value: u }
862
+ ],
863
+ riskFlags: g.length > 0 ? g : m,
864
+ conclusion: u
865
+ });
866
+ a({
867
+ stepId: (r == null ? void 0 : r.stepId) || "unknown",
868
+ operationType: "document-review",
869
+ operationData: {
870
+ reviewed: !0,
871
+ checkedItems: p,
872
+ exceptions: g,
873
+ conclusion: u,
874
+ riskPoints: m
875
+ },
876
+ operationLog: [
877
+ {
878
+ action: "review-complete",
879
+ checkedItems: p,
880
+ exceptions: g,
881
+ conclusion: u,
882
+ timestamp: Date.now()
883
+ }
884
+ ],
885
+ timestamp: Date.now(),
886
+ evidenceSummary: h
887
+ });
888
+ }, $ = (() => {
889
+ if (t === "material-review") {
890
+ const n = {
891
+ "archive-management": {
892
+ title: "档案归档检查",
893
+ desc: "请按照档案管理规范,逐项核对材料完整性和归档要求。"
894
+ },
895
+ "quality-inspection": {
896
+ title: "材料质检流程",
897
+ desc: "请按照质检标准,检查材料是否符合规范要求,并给出质检结论。"
898
+ },
899
+ "document-review": {
900
+ title: "文档材料复核",
901
+ desc: "请逐项完成材料检查,核对文档内容的完整性和准确性。"
902
+ }
903
+ };
904
+ return n[(r == null ? void 0 : r.atmosphereStyle) || "document-review"] || n["document-review"];
905
+ } else {
906
+ const n = {
907
+ "security-checkpoint": {
908
+ title: "安检证件核验",
909
+ desc: "请核验证件真伪、有效期及持证人信息,确保符合安检要求。"
910
+ },
911
+ "smart-recognition": {
912
+ title: "智能证件识别",
913
+ desc: "系统已自动识别证件信息,请核对识别结果并确认证件有效性。"
914
+ },
915
+ "counter-service": {
916
+ title: "柜台证件审核",
917
+ desc: "请核对证件信息与申请材料的一致性,并完成身份验证。"
918
+ }
919
+ };
920
+ return n[(r == null ? void 0 : r.atmosphereStyle) || "counter-service"] || n["counter-service"];
921
+ }
922
+ })(), M = F ? /* @__PURE__ */ e.jsx(
923
+ G,
924
+ {
925
+ message: $.title,
926
+ description: `${$.desc} 原始审核记录会保留用于回看,摘要结果会提供给后续决策步骤。`,
927
+ type: "info",
928
+ showIcon: !0,
929
+ closable: !0,
930
+ onClose: () => x(!1),
931
+ style: {
932
+ borderRadius: d.borderRadius.md,
933
+ border: `1px solid ${d.colors.border}`,
934
+ transition: `all ${d.transitions.normal}`
935
+ }
936
+ }
937
+ ) : null, q = /* @__PURE__ */ e.jsx(
938
+ or,
939
+ {
940
+ tokens: d,
941
+ documents: i,
942
+ atmosphereStyle: r == null ? void 0 : r.atmosphereStyle,
943
+ reviewMode: t
944
+ }
945
+ ), H = /* @__PURE__ */ e.jsx(
946
+ lr,
947
+ {
948
+ tokens: d,
949
+ checkPoints: l,
950
+ mustCheck: c,
951
+ riskPoints: m,
952
+ checkedItems: p,
953
+ conclusion: u,
954
+ exceptions: y,
955
+ onToggleCheck: C,
956
+ onConclusionChange: s,
957
+ onExceptionsChange: S,
958
+ onComplete: A,
959
+ atmosphereStyle: r == null ? void 0 : r.atmosphereStyle,
960
+ reviewMode: t
961
+ }
962
+ );
963
+ return /* @__PURE__ */ e.jsx(
964
+ er,
965
+ {
966
+ tokens: d,
967
+ topAlert: M,
968
+ leftPanel: q,
969
+ rightPanel: H,
970
+ reviewMode: t,
971
+ atmosphereStyle: r == null ? void 0 : r.atmosphereStyle
972
+ }
973
+ );
974
+ }, yr = (r) => /* @__PURE__ */ e.jsx(nr, { ...r });
975
+ export {
976
+ yr as default
977
+ };