48 lines
1.4 KiB
TypeScript
48 lines
1.4 KiB
TypeScript
/**
|
|
* 评查选项卡组件
|
|
* 提供三个选项卡:评查结果、AI智能分析、文件信息
|
|
*/
|
|
import { ReactNode } from 'react';
|
|
|
|
interface ReviewTabsProps {
|
|
activeTab: string;
|
|
onTabChange: (tabKey: string) => void;
|
|
children: ReactNode;
|
|
}
|
|
|
|
export function ReviewTabs({ activeTab, onTabChange, children }: ReviewTabsProps) {
|
|
return (
|
|
<div className="tab-container">
|
|
<div className="tab-nav">
|
|
<button
|
|
className={`tab-nav-item ${activeTab === 'preview' ? 'active' : ''}`}
|
|
onClick={() => onTabChange('preview')}
|
|
type="button"
|
|
aria-pressed={activeTab === 'preview'}
|
|
>
|
|
<i className="ri-file-text-line"></i> 评查结果
|
|
</button>
|
|
<button
|
|
className={`tab-nav-item ${activeTab === 'analysis' ? 'active' : ''}`}
|
|
onClick={() => onTabChange('analysis')}
|
|
type="button"
|
|
aria-pressed={activeTab === 'analysis'}
|
|
>
|
|
<i className="ri-lightbulb-line"></i> AI智能分析
|
|
</button>
|
|
<button
|
|
className={`tab-nav-item ${activeTab === 'fileinfo' ? 'active' : ''}`}
|
|
onClick={() => onTabChange('fileinfo')}
|
|
type="button"
|
|
aria-pressed={activeTab === 'fileinfo'}
|
|
>
|
|
<i className="ri-information-line"></i> 文件信息
|
|
</button>
|
|
</div>
|
|
|
|
<div className="tab-content">
|
|
{children}
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|