import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Box, Collapse, ListItem, ListItemIcon, ListItemText, alpha, Typography, } from "@mui/material"; import React, { useState } from "react"; import ExpandLess from "@mui/icons-material/ExpandLess"; import ExpandMore from "@mui/icons-material/ExpandMore"; import Icon from "@/components/Icon"; const Support = () => { return ( ); }; const NotSupport = () => { return -; }; const Illustrate = ({ text }: { text: string }) => { return {text}; }; const versions = [ { title: '社区版', key: 'experience' }, { title: '专业版', key: 'major' }, { title: '企业版', key: 'basics' }, ] const colors = ['lighter', 'light', 'main'] const FunctionTable = () => { const [open, setOpen] = useState([ "安全防护", "统计分析", "系统管理", "部署形态", "服务", ]); const cells = [ { title: "安全防护", data: [ { name: "智能语义分析检测", experience: , // 社区版 major: , // 专业版 basics: , // 企业版 }, { name: "简单规则特征库检测", experience: , major: , basics: , }, { name: "频率限制 / CC 攻击防护", experience: , major: , basics: , }, { name: "自定义黑白名单", experience: , major: , basics: , }, { name: "爬虫防护 / 人机验证", experience: , major: , basics: , }, { name: "基础 API 采集", experience: , major: , basics: , }, { name: "威胁情报", experience: , major: , basics: , }, { name: "商业地理位置封禁", experience: , major: , basics: , }, { name: "应急补充规则", experience: , major: , basics: , }, { name: "高级 Bot 防护、API 防护", experience: , major: , basics: , }, { name: "网页防篡改", experience: , major: , basics: , }, { name: "灵活可编程插件", experience: , major: , basics: , }, { name: "精细化引擎调节", experience: , major: , basics: , }, ], }, { title: "统计分析", data: [ { name: "基础统计图表", tip: "", experience: , major: , basics: , }, { name: "高级统计分析与报告", experience: , major: , basics: , }, { name: "实时可视化大屏", experience: , major: , basics: , }, ], }, { title: "系统管理", data: [ { name: "自定义拦截页面", experience: , major: , basics: , }, { name: "多设备集中管理", tip: "", experience: , major: , basics: , }, { name: "多租户管理", experience: , major: , basics: , }, { name: "安全合规与审计", experience: , major: , basics: , }, ], }, { title: "部署形态", data: [ { name: "反向代理接入", experience: , major: , basics: , }, { name: "负载均衡", experience: , major: , basics: , }, { name: "旁路、透明代理、路由等复杂接入方式", experience: , major: , basics: , }, { name: "集群式可扩展部署", experience: , major: , basics: , }, { name: "紧急模式 / Bypass", experience: , major: , basics: , }, { name: "硬件形态交付", experience: , major: , basics: , }, { name: "高可用 / HA", experience: , major: , basics: , }, ], }, { title: "服务", data: [ { name: "技术支持服务", experience: , major: , basics: , }, { name: "漏洞应急服务", experience: , major: , basics: , }, { name: "等保合规", experience: , major: , basics: , }, { name: "定制化", experience: , major: , basics: , }, ], }, ]; const handleClick = (id: string) => { if (open?.includes(id)) { const udpateOpen = [...open]; udpateOpen.splice(open?.indexOf(id), 1); setOpen([...udpateOpen]); } else { setOpen((open) => [...open, id]); } }; return ( <> {versions.map((item, index) => ( ({ display: "flex", justifyContent: "center", alignItems: "center", width: "100%", height: "40px", borderRadius: "4px", color: theme.palette.common.white, backgroundColor: theme.palette.primary[colors[index] as 'main' | 'light'], })} > {item.title} ))}
{cells?.map((data) => ( handleClick(data?.title)} sx={{ backgroundColor: "#EFF1F8", borderRadius: "4px", cursor: "pointer", pl: 6, }} > {open?.includes(data?.title) ? : } {data.data.map((item) => ( {item.name} {versions.map((v, index) => ( {item[v.key as 'experience' | 'major' | 'basics']} ))} ))}
))} ); }; export default FunctionTable;