1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
import React, { useState, useEffect } from 'react';
import { useCaseData } from '../../contexts/CaseDataContext';
import { formatDuration, formatSuccessRate, formatRoundCount } from '../../utils/stateTranslator';
import ProcessAPIService from '../../services/ProcessAPIService';
import { message, Spin } from 'antd';
 
/**
 * 选项卡容器组件 - 4个选项卡
 */
const TabContainer = () => {
  const [activeTab, setActiveTab] = useState('mediation-data-board');
 
  const tabs = [
    { key: 'mediation-data-board', label: '调解分析', icon: 'fa-chart-line' },
    { key: 'mediation-board', label: 'AI调解实时看板', icon: 'fa-tv' },
    { key: 'evidence-board', label: '证据材料汇总', icon: 'fa-file-alt', badge: '待审核' },
    { key: 'agreement-section', label: '调解协议', icon: 'fa-file-contract', badge: '待确认' },
  ];
 
  return (
    <div className="tab-container">
      <div className="tab-header">
        {tabs.map((tab) => (
          <button
            key={tab.key}
            className={`tab-btn ${activeTab === tab.key ? 'active' : ''}`}
            onClick={() => setActiveTab(tab.key)}
          >
            <i className={`fas ${tab.icon}`}></i>
            {tab.label}
            {tab.badge && <span className="tab-badge">{tab.badge}</span>}
          </button>
        ))}
      </div>
 
      <div className="tab-content">
        {/* 调解数据看板 */}
        <div className={`tab-pane ${activeTab === 'mediation-data-board' ? 'active' : ''}`}>
          <div className="tab-content-area">
            <MediationDataBoard />
          </div>
        </div>
 
        {/* AI调解实时看板 */}
        <div className={`tab-pane ${activeTab === 'mediation-board' ? 'active' : ''}`}>
          <div className="tab-content-area">
            <MediationBoard activeTab={activeTab} />
          </div>
        </div>
 
        {/* 证据材料汇总 */}
        <div className={`tab-pane ${activeTab === 'evidence-board' ? 'active' : ''}`}>
          <div className="tab-content-area">
            <EvidenceBoard />
          </div>
        </div>
 
        {/* 调解协议 */}
        <div className={`tab-pane ${activeTab === 'agreement-section' ? 'active' : ''}`}>
          <div className="tab-content-area">
            <AgreementSection />
          </div>
        </div>
      </div>
    </div>
  );
};
 
/**
 * 调解数据看板
 */
const MediationDataBoard = () => {
  const { caseData } = useCaseData();
  const timeline = caseData || {};
  
  // 从 timeline 获取数据
  const gapContent = timeline.result || '暂无分歧分析';
  const updateTime = formatDuration(timeline.before_duration);
  const successRate = formatSuccessRate(timeline.mediation?.success_rate);
  const roundCount = formatRoundCount(timeline.mediation?.mediation_count);
  
  return (
    <div className="mediation-metrics">
      {/* 左侧:诉求差距分析 */}
      <div className="metric-card">
        <div className="metric-title">
          <i className="fas fa-exclamation-circle"></i>
          <span>诉求差距分析</span>
        </div>
        <div className="metric-content">
          <div className="gap-analysis">
            <div className="gap-title">
              <i className="fas fa-exclamation-circle"></i>
              主要分歧点
            </div>
            <div className="gap-update-time">{updateTime}</div>
            <div className="gap-content">
              {gapContent}
            </div>
          </div>
        </div>
      </div>
 
      {/* 右侧:调解数据 */}
      <div className="metric-card">
        <div className="metric-title">
          <i className="fas fa-exchange-alt"></i>
          <span>调解数据</span>
        </div>
        <div className="metric-content">
          <div className="success-metric">
            <div className="success-value">{successRate}</div>
            <div className="success-label">预计调解成功概率</div>
            <div className="success-change">
              
              {/* <i className="fas fa-arrow-up"></i><span>较{updateTime} +8%</span> */}
            </div>
            <div style={{ marginTop: 15, fontSize: '0.9rem', color: 'var(--gray-color)' }}>
              协商沟通:<span style={{ color: 'var(--dark-color)', fontWeight: 600 }}>{roundCount}</span>
            </div>
          </div>
        </div>
      </div>
    </div>
  );
};
 
/**
 * AI调解实时看板
 */
const MediationBoard = ({ activeTab }) => {
  // 状态管理
  const [records, setRecords] = useState([]);
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState(null);
  
  // 获取案件数据
  const { caseData } = useCaseData();
  const timeline = caseData || {};
  
  // person_type到avatar类型的映射
  const getAvatarType = (personType) => {
    const typeMap = {
      '1': 'ai',
      '2': 'applicant',
      '3': 'respondent',
      '4': 'mediator'
    };
    return typeMap[personType] || 'ai';
  };
  
  // tag_style到UI标签样式的映射
  const getTagStyleType = (tagStyle) => {
    const styleMap = {
      'red': 'tag-type-5',
      'blue': 'tag-type-1',
      'green': 'tag-type-2',
      'orange': 'tag-type-3'
    };
    return styleMap[tagStyle] || 'tag-type-1';
  };
  
  // 获取角色显示名称
  const getRoleDisplayName = (personType, creatorName) => {
    const roleMap = {
      '1': 'AI调解员',
      '2': `申请人(${creatorName})`,
      '3': `被申请人(${creatorName})`,
      '4': `调解员(${creatorName})`
    };
    return roleMap[personType] || creatorName;
  };
  
  // 数据格式化函数
  const formatRecordData = (apiRecords) => {
    return apiRecords.map(record => ({
      avatar: getAvatarType(record.person_type),
      name: getRoleDisplayName(record.person_type, record.creator),
      avatarText: record.creator?.charAt(0) || '',  // 头像显示名字第一个字
      time: record.create_time,
      content: record.result,
      tags: record.tagList?.map(tag => ({
        text: tag.tag_name,
        type: getTagStyleType(tag.tag_style)
      })) || []
    }));
  };
  
  // 获取调解记录数据
  const loadMediationRecords = async () => {
    setLoading(true);
    setError(null);
    
    try {
      // 从timeline中获取mediation_id
      const mediationId = timeline.mediation?.id;
      if (!mediationId) {
        throw new Error('未找到调解ID');
      }
      
      // 调用API获取记录列表
      const response = await ProcessAPIService.getProcessRecords({
        mediation_id: mediationId
      });
      
      // 格式化数据
      const formattedRecords = formatRecordData(response.data || []);
      setRecords(formattedRecords);
      
    } catch (err) {
      setError(err.message);
      console.error('获取调解记录失败:', err);
      message.error(`获取调解记录失败: ${err.message}`);
    } finally {
      setLoading(false);
    }
  };
  
  // 监听Tab切换
  useEffect(() => {
    if (activeTab === 'mediation-board') {
      loadMediationRecords();
    }
  }, [activeTab]);
  
  // 如果还在加载中,显示Loading状态
  if (loading) {
    return (
      <div style={{ 
        display: 'flex', 
        justifyContent: 'center', 
        alignItems: 'center', 
        height: '400px' 
      }}>
        <Spin size="large" tip="正在加载调解记录..." />
      </div>
    );
  }
  
  // 如果有错误,显示错误信息
  if (error) {
    return (
      <div style={{ 
        textAlign: 'center', 
        padding: '40px', 
        color: '#ff4d4f' 
      }}>
        <div style={{ fontSize: '1.2rem', marginBottom: '10px' }}>
          <i className="fas fa-exclamation-circle"></i>
          数据加载失败
        </div>
        <div>{error}</div>
        <button 
          onClick={loadMediationRecords}
          style={{
            marginTop: '15px',
            padding: '8px 16px',
            backgroundColor: '#1890ff',
            color: 'white',
            border: 'none',
            borderRadius: '4px',
            cursor: 'pointer'
          }}
        >
          重新加载
        </button>
      </div>
    );
  }
  
  // 使用动态数据或默认mock数据
  const displayRecords = records.length > 0 ? records : [
    {
      avatar: 'ai',
      name: 'AI调解员',
      avatarText: '',
      time: '09:30:05',
      content: '已分别联系李晓明(申请人)和广东好又多贸易有限公司(被申请人)。双方均表示愿意接受调解,希望通过协商解决劳动争议/拖欠、克扣工资纠纷。',
      tags: [{ text: '意愿调查', type: 'tag-type-1' }, { text: '初步接触', type: 'tag-type-2' }],
    },
    {
      avatar: 'applicant',
      name: '申请人(李晓明)',
      avatarText: '李',
      time: '09:35:22',
      content: '我在好又多公司担任销售经理3年,公司拖欠我3个月工资共¥42,000,还克扣了季度绩效奖金¥10,800。另外,公司单方面解除劳动合同,应支付经济补偿金¥12,000。我要求公司支付总共¥52,800。',
      tags: [{ text: '诉求表达', type: 'tag-type-3' }, { text: '情绪激动', type: 'tag-type-5' }],
    },
    {
      avatar: 'respondent',
      name: '被申请人(好又多公司)',
      avatarText: '好',
      time: '09:40:15',
      content: '公司确实遇到了资金周转困难,拖欠工资问题承认。但李晓明主张的金额有误:1) 3个月工资应为¥35,000(含请假扣款);2) 绩效奖金因未完成KPI指标不应发放;3) 是李晓明主动提出辞职,不应支付经济补偿金。公司最多支付¥38,500。',
      tags: [{ text: '诉求表达', type: 'tag-type-3' }],
    },
  ];
 
  // 从timeline获取沟通情况总结
  const communicationSummary = timeline.mediation?.summary || '暂无沟通情况总结';
  
  const getAvatarClass = (avatar) => {
    const map = {
      ai: 'avatar-ai',
      applicant: 'avatar-applicant',
      respondent: 'avatar-respondent',
      mediator: 'avatar-mediator',
    };
    return map[avatar] || 'avatar-ai';
  };
 
  const getContentClass = (avatar) => {
    const map = {
      ai: 'content-ai',
      applicant: 'content-applicant',
      respondent: 'content-respondent',
      mediator: 'content-mediator',
    };
    return map[avatar] || 'content-ai';
  };
 
  const getAvatarContent = (avatar, avatarText) => {
    if (avatar === 'ai') return <i className="fas fa-robot"></i>;
    // 显示名字的第一个字
    return avatarText || (avatar === 'applicant' ? '申' : avatar === 'respondent' ? '被' : '调');
  };
 
  return (
    <>
      <div className="mediation-summary" style={{
        background: '#f0f7ff',
        borderRadius: 'var(--border-radius)',
        padding: '12px 16px',
        marginBottom: 15,
        borderLeft: '4px solid var(--primary-color)',
        fontSize: '0.9rem',
        color: 'var(--dark-color)',
      }}>
        <div style={{ fontWeight: 600, color: 'var(--secondary-color)', marginBottom: 5, display: 'flex', alignItems: 'center', gap: 8 }}>
          <i className="fas fa-chart-bar"></i>
          沟通情况总结
        </div>
        <div style={{ lineHeight: 1.5 }}>
          {communicationSummary}
        </div>
      </div>
 
      <div className="board-container" style={{ maxHeight: 450, overflowY: 'auto' }}>
        {displayRecords.map((item, index) => (
          <div key={index} className="board-item" style={{
            background: '#f8f9fa',
            borderRadius: 'var(--border-radius)',
            padding: 16,
            marginBottom: 12,
            border: '1px solid #e9ecef',
          }}>
            <div className="item-header" style={{ display: 'flex', alignItems: 'center', gap: 10, marginBottom: 10 }}>
              <div className={`item-avatar ${getAvatarClass(item.avatar)}`} style={{
                width: 32,
                height: 32,
                borderRadius: '50%',
                display: 'flex',
                justifyContent: 'center',
                alignItems: 'center',
                color: 'white',
                fontWeight: 600,
                fontSize: '0.9rem',
                background: item.avatar === 'ai' ? 'linear-gradient(135deg, var(--primary-color), var(--secondary-color))' :
                  item.avatar === 'applicant' ? 'linear-gradient(135deg, var(--primary-color), #0d4a8a)' :
                  item.avatar === 'respondent' ? 'linear-gradient(135deg, #e9c46a, #e76f51)' :
                  'linear-gradient(135deg, #7209b7, #3a0ca3)',
              }}>
                {getAvatarContent(item.avatar, item.avatarText)}
              </div>
              <div className="item-source">
                <div style={{ fontWeight: 600, fontSize: '0.95rem', color: 'var(--dark-color)', marginBottom: 2 }}>{item.name}</div>
                <div style={{ fontSize: '0.8rem', color: 'var(--gray-color)', display: 'flex', alignItems: 'center', gap: 6 }}>
                  <i className="far fa-clock"></i>
                  <span>{item.time}</span>
                </div>
              </div>
            </div>
            <div className={`item-content ${getContentClass(item.avatar)}`} style={{
              background: 'white',
              borderRadius: 8,
              padding: 12,
              marginBottom: 10,
              lineHeight: 1.5,
              fontSize: '0.9rem',
              borderLeft: item.avatar === 'respondent' ? '3px solid #e9c46a' : '3px solid var(--primary-color)',
            }}>
              {item.content}
            </div>
            <div className="item-tags" style={{ display: 'flex', flexWrap: 'wrap', gap: 6 }}>
              {item.tags.map((tag, i) => (
                <span key={i} className={`item-tag ${tag.type}`} style={{
                  display: 'inline-block',
                  padding: '3px 8px',
                  borderRadius: 20,
                  fontSize: '0.75rem',
                  fontWeight: 600,
                  background: tag.type === 'tag-type-1' ? '#e3f2fd' :
                    tag.type === 'tag-type-2' ? '#e8f5e9' :
                    tag.type === 'tag-type-3' ? '#fff3e0' :
                    tag.type === 'tag-type-5' ? '#ffebee' : '#e3f2fd',
                  color: tag.type === 'tag-type-1' ? '#1565c0' :
                    tag.type === 'tag-type-2' ? '#2e7d32' :
                    tag.type === 'tag-type-3' ? '#ef6c00' :
                    tag.type === 'tag-type-5' ? '#c62828' : '#1565c0',
                  border: `1px solid ${tag.type === 'tag-type-1' ? '#bbdefb' :
                    tag.type === 'tag-type-2' ? '#c8e6c9' :
                    tag.type === 'tag-type-3' ? '#ffe0b2' :
                    tag.type === 'tag-type-5' ? '#ffcdd2' : '#bbdefb'}`,
                }}>
                  {tag.text}
                </span>
              ))}
            </div>
          </div>
        ))}
      </div>
    </>
  );
};
 
/**
 * 证据材料汇总
 */
const EvidenceBoard = () => {
  const applicantEvidence = [
    { name: '劳动合同', desc: '2023年8月1日-2026年1月31日,约定月工资¥14,000', time: '2026-01-15 09:35', status: 'verified' },
    { name: '2026年1-3月工资条', desc: '显示工资发放记录,1月后无发放记录', time: '2026-01-15 09:36', status: 'verified' },
    { name: '2026年第一季度考勤记录', desc: '显示全勤,无请假缺勤记录', time: '2026-01-15 09:37', status: 'verified' },
    { name: '绩效考评表', desc: '第一季度绩效评分85分,达到奖金发放标准', time: '2026-01-15 09:38', status: 'verified' },
    { name: '解除劳动合同通知书', desc: '公司2026年1月15日单方面解除合同', time: '2026-01-15 09:45', status: 'pending' },
  ];
 
  const respondentEvidence = [
    { name: '2026年1-3月考勤异常记录', desc: '显示李晓明1月有2天事假,应扣款¥1,333', time: '2026-01-15 09:50', status: 'pending' },
    { name: '第一季度销售业绩报表', desc: '显示李晓明未完成销售KPI指标(完成率87%)', time: '2026-01-15 09:52', status: 'pending' },
    { name: '员工离职申请表', desc: '李晓明2026年1月10日提交的辞职申请', time: '2026-01-15 09:55', status: 'pending' },
  ];
 
  const renderEvidenceItem = (item, type) => (
    <div key={item.name} className="evidence-item" style={{
      background: 'white',
      borderRadius: 6,
      padding: 12,
      borderLeft: type === 'applicant' ? '3px solid var(--primary-color)' : '3px solid #e9c46a',
      display: 'flex',
      justifyContent: 'space-between',
      alignItems: 'flex-start',
      marginBottom: 10,
    }}>
      <div style={{ flex: 1 }}>
        <div style={{ fontWeight: 600, fontSize: '0.9rem', marginBottom: 4, color: 'var(--dark-color)' }}>{item.name}</div>
        <div style={{ fontSize: '0.8rem', color: 'var(--gray-color)', lineHeight: 1.4 }}>{item.desc}</div>
        <div style={{ fontSize: '0.75rem', color: 'var(--gray-color)', marginTop: 4, display: 'flex', alignItems: 'center', gap: 5 }}>
          <i className="far fa-clock"></i>
          <span>上传时间:{item.time}</span>
        </div>
      </div>
      <div style={{ marginLeft: 10 }}>
        <span style={{
          fontSize: '0.75rem',
          padding: '3px 8px',
          borderRadius: 12,
          fontWeight: 600,
          background: item.status === 'verified' ? '#d4edda' : '#fff3cd',
          color: item.status === 'verified' ? '#155724' : '#856404',
          border: `1px solid ${item.status === 'verified' ? '#c3e6cb' : '#ffeaa7'}`,
        }}>
          {item.status === 'verified' ? '已审核' : '待审核'}
        </span>
      </div>
    </div>
  );
 
  return (
    <div style={{ display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 20 }}>
      {/* 申请人证据材料 */}
      <div style={{
        background: '#f8f9fa',
        borderRadius: 'var(--border-radius)',
        padding: 18,
        borderTop: '4px solid var(--primary-color)',
        minHeight: 300,
      }}>
        <div style={{ display: 'flex', alignItems: 'center', gap: 10, marginBottom: 12 }}>
          <div style={{ fontWeight: 600, fontSize: '1.05rem', color: 'var(--dark-color)' }}>
            <i className="fas fa-user-tie" style={{ color: 'var(--primary-color)', marginRight: 8 }}></i>
            申请人材料
          </div>
          <div style={{ fontSize: '0.85rem', color: 'var(--gray-color)', marginLeft: 'auto' }}>{applicantEvidence.length}份材料</div>
        </div>
        <div>
          {applicantEvidence.map((item) => renderEvidenceItem(item, 'applicant'))}
        </div>
      </div>
 
      {/* 被申请人证据材料 */}
      <div style={{
        background: '#f8f9fa',
        borderRadius: 'var(--border-radius)',
        padding: 18,
        borderTop: '4px solid #e9c46a',
        minHeight: 300,
      }}>
        <div style={{ display: 'flex', alignItems: 'center', gap: 10, marginBottom: 12 }}>
          <div style={{ fontWeight: 600, fontSize: '1.05rem', color: 'var(--dark-color)' }}>
            <i className="fas fa-building" style={{ color: '#e9c46a', marginRight: 8 }}></i>
            被申请人材料
          </div>
          <div style={{ fontSize: '0.85rem', color: 'var(--gray-color)', marginLeft: 'auto' }}>{respondentEvidence.length}份材料</div>
        </div>
        <div>
          {respondentEvidence.map((item) => renderEvidenceItem(item, 'respondent'))}
        </div>
      </div>
    </div>
  );
};
 
/**
 * 调解协议
 */
const AgreementSection = () => {
  return (
    <div style={{
      background: '#f8f9fa',
      borderRadius: 'var(--border-radius)',
      padding: 18,
      maxHeight: 450,
      overflowY: 'auto',
    }}>
      <div style={{ lineHeight: 1.5, fontSize: '0.9rem' }}>
        <div style={{ textAlign: 'center', color: 'var(--secondary-color)', fontSize: '1.2rem', marginBottom: 20, fontWeight: 700 }}>
          李晓明与广东好又多贸易有限公司劳动争议调解协议书
        </div>
 
        <p><strong>甲方(申请人):</strong>李晓明</p>
        <p><strong>乙方(被申请人):</strong>广东好又多贸易有限公司</p>
 
        <p style={{ textIndent: '2em', marginTop: 15 }}>
          甲方与乙方因劳动报酬支付问题发生争议,双方于2026年1月15日向"云小调"劳动争议AI调解智能体申请调解。经AI调解员调解,双方本着平等自愿、互谅互让的原则,达成如下调解协议:
        </p>
 
        <h3 style={{ color: 'var(--secondary-color)', margin: '15px 0 8px', fontSize: '1rem' }}>一、争议事项</h3>
        <p style={{ textIndent: '2em' }}>甲方主张乙方拖欠2026年1月至3月共三个月工资、2026年第一季度绩效奖金以及解除劳动合同经济补偿金,合计人民币52,800元。</p>
 
        <h3 style={{ color: 'var(--secondary-color)', margin: '15px 0 8px', fontSize: '1rem' }}>二、调解结果</h3>
        <p style={{ textIndent: '2em' }}>经调解,双方达成一致意见如下:</p>
        <ul style={{ paddingLeft: 30, marginBottom: 12 }}>
          <li style={{ marginBottom: 6 }}>乙方同意向甲方支付劳动报酬共计人民币肆万肆仟元整(¥44,000)</li>
          <li style={{ marginBottom: 6 }}>支付方式:分两期支付
            <ul style={{ paddingLeft: 20 }}>
              <li>第一期:人民币贰万贰仟元整(¥22,000),于2026年1月30日前支付</li>
              <li>第二期:人民币贰万贰仟元整(¥22,000),于2026年2月28日前支付</li>
            </ul>
          </li>
          <li style={{ marginBottom: 6 }}>支付账户:甲方指定的银行账户(账户信息另行提供)</li>
        </ul>
 
        <h3 style={{ color: 'var(--secondary-color)', margin: '15px 0 8px', fontSize: '1rem' }}>三、双方权利义务</h3>
        <ul style={{ paddingLeft: 30, marginBottom: 12 }}>
          <li style={{ marginBottom: 6 }}>乙方应按约定时间足额支付上述款项</li>
          <li style={{ marginBottom: 6 }}>甲方收到全部款项后,双方劳动关系正式解除</li>
          <li style={{ marginBottom: 6 }}>双方互不追究其他法律责任,本协议履行完毕后,争议事项一次性了结</li>
        </ul>
 
        {/* 签名区域 */}
        <div style={{ display: 'flex', justifyContent: 'space-between', marginTop: 20, paddingTop: 15, borderTop: '1px solid var(--border-color)' }}>
          <div style={{ textAlign: 'center', width: '45%' }}>
            <div style={{ borderBottom: '1px solid var(--dark-color)', padding: '15px 0 5px', marginBottom: 5 }}></div>
            <div>甲方(申请人):李晓明</div>
            <div style={{ fontSize: '0.8rem', color: 'var(--gray-color)' }}>签字/盖章</div>
            <div style={{ fontSize: '0.8rem', color: 'var(--gray-color)', marginTop: 5 }}>日期:2026年1月15日</div>
          </div>
          <div style={{ textAlign: 'center', width: '45%' }}>
            <div style={{ borderBottom: '1px solid var(--dark-color)', padding: '15px 0 5px', marginBottom: 5 }}></div>
            <div>乙方(被申请人):广东好又多贸易有限公司</div>
            <div style={{ fontSize: '0.8rem', color: 'var(--gray-color)' }}>签字/盖章</div>
            <div style={{ fontSize: '0.8rem', color: 'var(--gray-color)', marginTop: 5 }}>日期:2026年1月15日</div>
          </div>
        </div>
      </div>
 
      {/* 操作按钮 */}
      <div style={{
        position: 'sticky',
        bottom: 0,
        background: 'rgba(255, 255, 255, 0.95)',
        padding: '15px 0',
        marginTop: 20,
        borderTop: '1px solid var(--border-color)',
        display: 'flex',
        justifyContent: 'center',
        gap: 12,
      }}>
        <button style={{
          padding: '10px 20px',
          border: '2px solid #c3e6cb',
          borderRadius: 'var(--border-radius)',
          fontWeight: 600,
          fontSize: '0.9rem',
          cursor: 'pointer',
          display: 'flex',
          alignItems: 'center',
          gap: 6,
          background: '#d4edda',
          color: '#155724',
        }}>
          <i className="fas fa-check-circle"></i>
          确认协议
        </button>
        <button style={{
          padding: '10px 20px',
          border: '2px solid #ffeaa7',
          borderRadius: 'var(--border-radius)',
          fontWeight: 600,
          fontSize: '0.9rem',
          cursor: 'pointer',
          display: 'flex',
          alignItems: 'center',
          gap: 6,
          background: '#fff3cd',
          color: '#856404',
        }}>
          <i className="fas fa-edit"></i>
          修改协议
        </button>
        <button style={{
          padding: '10px 20px',
          border: '2px solid #bbdefb',
          borderRadius: 'var(--border-radius)',
          fontWeight: 600,
          fontSize: '0.9rem',
          cursor: 'pointer',
          display: 'flex',
          alignItems: 'center',
          gap: 6,
          background: '#e3f2fd',
          color: '#1565c0',
        }}>
          <i className="fas fa-download"></i>
          下载协议
        </button>
        <button style={{
          padding: '10px 20px',
          border: '2px solid #bee5eb',
          borderRadius: 'var(--border-radius)',
          fontWeight: 600,
          fontSize: '0.9rem',
          cursor: 'pointer',
          display: 'flex',
          alignItems: 'center',
          gap: 6,
          background: '#d1ecf1',
          color: '#0c5460',
        }}>
          <i className="fas fa-redo"></i>
          重新生成
        </button>
      </div>
    </div>
  );
};
 
export default TabContainer;