396 lines
14 KiB
TypeScript
396 lines
14 KiB
TypeScript
|
|
"use client";
|
|||
|
|
|
|||
|
|
import React from "react";
|
|||
|
|
import Container from "@mui/material/Container";
|
|||
|
|
import Typography from "@mui/material/Typography";
|
|||
|
|
import Box from "@mui/material/Box";
|
|||
|
|
import Card from "@mui/material/Card";
|
|||
|
|
import CardContent from "@mui/material/CardContent";
|
|||
|
|
import CardHeader from "@mui/material/CardHeader";
|
|||
|
|
import Button from "@mui/material/Button";
|
|||
|
|
import MailIcon from "@mui/icons-material/Mail";
|
|||
|
|
import SupportIcon from "@mui/icons-material/SupportAgent";
|
|||
|
|
import CodeIcon from "@mui/icons-material/Code";
|
|||
|
|
import WorkIcon from "@mui/icons-material/Work";
|
|||
|
|
import useMediaQuery from "@mui/material/useMediaQuery";
|
|||
|
|
import { useTheme } from "@mui/material/styles";
|
|||
|
|
import ClientLayout from "../components/ClientLayout";
|
|||
|
|
|
|||
|
|
export default function SupportPage() {
|
|||
|
|
const theme = useTheme();
|
|||
|
|
const isMobile = useMediaQuery(theme.breakpoints.down('sm'));
|
|||
|
|
const isMedium = useMediaQuery(theme.breakpoints.down('md'));
|
|||
|
|
|
|||
|
|
const handleEmailClick = () => {
|
|||
|
|
window.location.href = 'mailto:leonmmcoset@outlook.com';
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
return (
|
|||
|
|
<div>
|
|||
|
|
<Container maxWidth="lg" sx={{ py: { xs: 8, md: 12 } }}>
|
|||
|
|
{/* 页面标题 */}
|
|||
|
|
<Box
|
|||
|
|
sx={{
|
|||
|
|
textAlign: 'center',
|
|||
|
|
mb: { xs: 8, md: 12 },
|
|||
|
|
opacity: 0,
|
|||
|
|
transform: 'translateY(20px)',
|
|||
|
|
animation: 'fadeInUp 0.8s ease-out forwards'
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
<Typography
|
|||
|
|
variant={isMobile ? 'h3' : 'h2'}
|
|||
|
|
component="h1"
|
|||
|
|
gutterBottom
|
|||
|
|
sx={{
|
|||
|
|
fontWeight: 700,
|
|||
|
|
color: theme.palette.primary.main,
|
|||
|
|
mb: 2
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
技术支持服务
|
|||
|
|
</Typography>
|
|||
|
|
<Typography
|
|||
|
|
variant="body1"
|
|||
|
|
sx={{
|
|||
|
|
maxWidth: '700px',
|
|||
|
|
margin: '0 auto',
|
|||
|
|
color: 'text.secondary',
|
|||
|
|
fontSize: { xs: '1rem', md: '1.1rem' },
|
|||
|
|
lineHeight: 1.6
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
如果您在使用开源项目时遇到问题,或者需要外包项目开发,我们随时为您提供专业的技术支持
|
|||
|
|
</Typography>
|
|||
|
|
</Box>
|
|||
|
|
|
|||
|
|
{/* 服务介绍卡片 */}
|
|||
|
|
<Box
|
|||
|
|
sx={{
|
|||
|
|
display: 'grid',
|
|||
|
|
gridTemplateColumns: isMobile
|
|||
|
|
? '1fr'
|
|||
|
|
: isMedium
|
|||
|
|
? 'repeat(2, 1fr)'
|
|||
|
|
: 'repeat(3, 1fr)',
|
|||
|
|
gap: { xs: 4, md: 6 },
|
|||
|
|
mb: { xs: 12, md: 16 },
|
|||
|
|
'& > *': {
|
|||
|
|
opacity: 0,
|
|||
|
|
transform: 'translateY(30px)',
|
|||
|
|
animation: 'fadeInUp 0.6s ease-out forwards'
|
|||
|
|
},
|
|||
|
|
'& > *:nth-child(1)': { animationDelay: '0.2s' },
|
|||
|
|
'& > *:nth-child(2)': { animationDelay: '0.4s' },
|
|||
|
|
'& > *:nth-child(3)': { animationDelay: '0.6s' }
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
{/* 支持介绍卡片 */}
|
|||
|
|
<Card
|
|||
|
|
elevation={3}
|
|||
|
|
sx={{
|
|||
|
|
borderRadius: '12px',
|
|||
|
|
overflow: 'hidden',
|
|||
|
|
transition: 'all 0.3s ease',
|
|||
|
|
'&:hover': {
|
|||
|
|
transform: 'translateY(-8px)',
|
|||
|
|
boxShadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
|
|||
|
|
elevation: 5
|
|||
|
|
}
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
<CardHeader
|
|||
|
|
avatar={
|
|||
|
|
<Box sx={{ bgcolor: theme.palette.primary.light, p: 2, borderRadius: '50%' }}>
|
|||
|
|
<SupportIcon fontSize="large" color="primary" />
|
|||
|
|
</Box>
|
|||
|
|
}
|
|||
|
|
title="我们的服务"
|
|||
|
|
titleTypographyProps={{
|
|||
|
|
variant: 'h6',
|
|||
|
|
fontWeight: 600
|
|||
|
|
}}
|
|||
|
|
/>
|
|||
|
|
<CardContent>
|
|||
|
|
<Typography variant="body1" paragraph sx={{ lineHeight: 1.6 }}>
|
|||
|
|
如果您在使用一些开源项目遇到问题,需要帮助或者是外包项目,欢迎联系我们。
|
|||
|
|
</Typography>
|
|||
|
|
<Typography variant="body1" paragraph sx={{ lineHeight: 1.6 }}>
|
|||
|
|
我们将提供最优质的服务,确保您的问题得到及时解决。
|
|||
|
|
</Typography>
|
|||
|
|
</CardContent>
|
|||
|
|
</Card>
|
|||
|
|
|
|||
|
|
{/* 价格卡片 */}
|
|||
|
|
<Card
|
|||
|
|
elevation={3}
|
|||
|
|
sx={{
|
|||
|
|
borderRadius: '12px',
|
|||
|
|
overflow: 'hidden',
|
|||
|
|
transition: 'all 0.3s ease',
|
|||
|
|
'&:hover': {
|
|||
|
|
transform: 'translateY(-8px)',
|
|||
|
|
boxShadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
|
|||
|
|
elevation: 5
|
|||
|
|
}
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
<CardHeader
|
|||
|
|
avatar={
|
|||
|
|
<Box sx={{ bgcolor: theme.palette.primary.light, p: 2, borderRadius: '50%' }}>
|
|||
|
|
<CodeIcon fontSize="large" color="primary" />
|
|||
|
|
</Box>
|
|||
|
|
}
|
|||
|
|
title="支持价格"
|
|||
|
|
titleTypographyProps={{
|
|||
|
|
variant: 'h6',
|
|||
|
|
fontWeight: 600
|
|||
|
|
}}
|
|||
|
|
/>
|
|||
|
|
<CardContent>
|
|||
|
|
<Box sx={{ mb: 2, p: 2, bgcolor: 'primary.main', color: 'white', borderRadius: '8px' }}>
|
|||
|
|
<Typography variant="body1" paragraph sx={{ fontWeight: 600 }}>
|
|||
|
|
普通技术支持:¥20每次
|
|||
|
|
</Typography>
|
|||
|
|
</Box>
|
|||
|
|
<Box sx={{ p: 2, bgcolor: 'primary.light', color: "white", borderRadius: '8px' }}>
|
|||
|
|
<Typography variant="body1" paragraph sx={{ fontWeight: 600 }}>
|
|||
|
|
外包项目:¥40/项目(大型项目¥70/项目)
|
|||
|
|
</Typography>
|
|||
|
|
</Box>
|
|||
|
|
</CardContent>
|
|||
|
|
</Card>
|
|||
|
|
|
|||
|
|
{/* 联系卡片 */}
|
|||
|
|
<Card
|
|||
|
|
elevation={3}
|
|||
|
|
sx={{
|
|||
|
|
borderRadius: '12px',
|
|||
|
|
overflow: 'hidden',
|
|||
|
|
transition: 'all 0.3s ease',
|
|||
|
|
'&:hover': {
|
|||
|
|
transform: 'translateY(-8px)',
|
|||
|
|
boxShadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
|
|||
|
|
elevation: 5
|
|||
|
|
}
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
<CardHeader
|
|||
|
|
avatar={
|
|||
|
|
<Box sx={{ bgcolor: theme.palette.primary.light, p: 2, borderRadius: '50%' }}>
|
|||
|
|
<MailIcon fontSize="large" color="primary" />
|
|||
|
|
</Box>
|
|||
|
|
}
|
|||
|
|
title="联系我们"
|
|||
|
|
titleTypographyProps={{
|
|||
|
|
variant: 'h6',
|
|||
|
|
fontWeight: 600
|
|||
|
|
}}
|
|||
|
|
/>
|
|||
|
|
<CardContent>
|
|||
|
|
<Typography variant="body1" paragraph sx={{ lineHeight: 1.6, mb: 3 }}>
|
|||
|
|
如有需求请通过以下方式联系我们,我们会尽快回复您的咨询。
|
|||
|
|
</Typography>
|
|||
|
|
<Button
|
|||
|
|
variant="contained"
|
|||
|
|
startIcon={<MailIcon />}
|
|||
|
|
onClick={handleEmailClick}
|
|||
|
|
fullWidth
|
|||
|
|
sx={{
|
|||
|
|
py: 1.5,
|
|||
|
|
borderRadius: '8px',
|
|||
|
|
fontWeight: 600,
|
|||
|
|
transition: 'all 0.3s ease',
|
|||
|
|
'&:hover': {
|
|||
|
|
transform: 'translateY(-2px)',
|
|||
|
|
boxShadow: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
|
|||
|
|
}
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
发送邮件咨询
|
|||
|
|
</Button>
|
|||
|
|
<Typography variant="body2" color="text.secondary" align="center" sx={{ mt: 2 }}>
|
|||
|
|
leonmmcoset@outlook.com
|
|||
|
|
</Typography>
|
|||
|
|
</CardContent>
|
|||
|
|
</Card>
|
|||
|
|
</Box>
|
|||
|
|
|
|||
|
|
{/* 服务流程部分 */}
|
|||
|
|
<Box
|
|||
|
|
sx={{
|
|||
|
|
textAlign: 'center',
|
|||
|
|
mb: { xs: 8, md: 12 }
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
<Typography
|
|||
|
|
variant={isMobile ? 'h4' : 'h3'}
|
|||
|
|
component="h2"
|
|||
|
|
gutterBottom
|
|||
|
|
sx={{
|
|||
|
|
fontWeight: 700,
|
|||
|
|
mb: 8,
|
|||
|
|
color: theme.palette.primary.main
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
服务流程
|
|||
|
|
</Typography>
|
|||
|
|
|
|||
|
|
<Box
|
|||
|
|
sx={{
|
|||
|
|
display: 'flex',
|
|||
|
|
flexDirection: isMobile ? 'column' : 'row',
|
|||
|
|
justifyContent: 'space-around',
|
|||
|
|
alignItems: isMobile ? 'center' : 'flex-start',
|
|||
|
|
gap: { xs: 6, md: 4 },
|
|||
|
|
'& > *': {
|
|||
|
|
opacity: 0,
|
|||
|
|
transform: 'translateY(30px)',
|
|||
|
|
animation: 'fadeInUp 0.6s ease-out forwards'
|
|||
|
|
},
|
|||
|
|
'& > *:nth-child(1)': { animationDelay: '0.2s' },
|
|||
|
|
'& > *:nth-child(2)': { animationDelay: '0.4s' },
|
|||
|
|
'& > *:nth-child(3)': { animationDelay: '0.6s' },
|
|||
|
|
'& > *:nth-child(4)': { animationDelay: '0.8s' }
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
{[1, 2, 3, 4].map((step) => {
|
|||
|
|
// 确保stepData始终有值
|
|||
|
|
const getStepData = (stepNum: number) => {
|
|||
|
|
const data = {
|
|||
|
|
1: { title: '提交需求', icon: <MailIcon /> },
|
|||
|
|
2: { title: '确认方案', icon: <CodeIcon /> },
|
|||
|
|
3: { title: '执行服务', icon: <WorkIcon /> },
|
|||
|
|
4: { title: '完成交付', icon: <SupportIcon /> }
|
|||
|
|
};
|
|||
|
|
return data[stepNum as keyof typeof data] || { title: '', icon: <SupportIcon /> };
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
const stepData = getStepData(step);
|
|||
|
|
|
|||
|
|
return (
|
|||
|
|
<Box
|
|||
|
|
key={step}
|
|||
|
|
sx={{
|
|||
|
|
display: 'flex',
|
|||
|
|
flexDirection: 'column',
|
|||
|
|
alignItems: 'center',
|
|||
|
|
maxWidth: '200px',
|
|||
|
|
textAlign: 'center'
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
<Box
|
|||
|
|
sx={{
|
|||
|
|
width: 80,
|
|||
|
|
height: 80,
|
|||
|
|
borderRadius: '50%',
|
|||
|
|
bgcolor: theme.palette.primary.light,
|
|||
|
|
display: 'flex',
|
|||
|
|
alignItems: 'center',
|
|||
|
|
justifyContent: 'center',
|
|||
|
|
mb: 3,
|
|||
|
|
position: 'relative',
|
|||
|
|
'&::before': {
|
|||
|
|
content: `"${step}"`,
|
|||
|
|
position: 'absolute',
|
|||
|
|
top: '-12px',
|
|||
|
|
right: '-12px',
|
|||
|
|
width: 32,
|
|||
|
|
height: 32,
|
|||
|
|
borderRadius: '50%',
|
|||
|
|
bgcolor: theme.palette.primary.main,
|
|||
|
|
color: 'white',
|
|||
|
|
display: 'flex',
|
|||
|
|
alignItems: 'center',
|
|||
|
|
justifyContent: 'center',
|
|||
|
|
fontWeight: 'bold',
|
|||
|
|
fontSize: '1rem'
|
|||
|
|
}
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
{React.cloneElement(stepData.icon as React.ReactElement<{ fontSize?: 'small' | 'medium' | 'large', color?: 'primary' | 'secondary' }>, {
|
|||
|
|
fontSize: "large",
|
|||
|
|
color: "primary"
|
|||
|
|
})}
|
|||
|
|
</Box>
|
|||
|
|
<Typography variant="h6" sx={{ fontWeight: 600, mb: 1 }}>
|
|||
|
|
{stepData.title}
|
|||
|
|
</Typography>
|
|||
|
|
<Typography variant="body2" color="text.secondary">
|
|||
|
|
{step === 1 && '通过邮件描述您的技术问题或外包需求'}
|
|||
|
|
{step === 2 && '我们确认服务细节和价格'}
|
|||
|
|
{step === 3 && '专业团队为您提供技术支持或开发服务'}
|
|||
|
|
{step === 4 && '完成服务并确保您满意'}
|
|||
|
|
</Typography>
|
|||
|
|
</Box>
|
|||
|
|
);
|
|||
|
|
})}
|
|||
|
|
</Box>
|
|||
|
|
</Box>
|
|||
|
|
|
|||
|
|
{/* CTA 区域 */}
|
|||
|
|
<Box
|
|||
|
|
sx={{
|
|||
|
|
textAlign: 'center',
|
|||
|
|
p: { xs: 6, md: 10 },
|
|||
|
|
bgcolor: theme.palette.primary.main,
|
|||
|
|
color: 'white',
|
|||
|
|
borderRadius: '16px',
|
|||
|
|
opacity: 0,
|
|||
|
|
transform: 'translateY(30px)',
|
|||
|
|
animation: 'fadeInUp 0.8s ease-out 1s forwards'
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
<Typography
|
|||
|
|
variant={isMobile ? 'h4' : 'h3'}
|
|||
|
|
component="h2"
|
|||
|
|
gutterBottom
|
|||
|
|
sx={{
|
|||
|
|
fontWeight: 700,
|
|||
|
|
mb: 4
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
准备好获取技术支持了吗?
|
|||
|
|
</Typography>
|
|||
|
|
<Typography variant="body1" sx={{ mb: 6, fontSize: { xs: '1rem', md: '1.1rem' } }}>
|
|||
|
|
联系我们,让专业的技术团队为您解决问题
|
|||
|
|
</Typography>
|
|||
|
|
<Button
|
|||
|
|
variant="contained"
|
|||
|
|
startIcon={<MailIcon />}
|
|||
|
|
onClick={handleEmailClick}
|
|||
|
|
sx={{
|
|||
|
|
bgcolor: 'white',
|
|||
|
|
color: theme.palette.primary.main,
|
|||
|
|
px: 6,
|
|||
|
|
py: 1.5,
|
|||
|
|
borderRadius: '8px',
|
|||
|
|
fontWeight: 700,
|
|||
|
|
fontSize: '1.1rem',
|
|||
|
|
transition: 'all 0.3s ease',
|
|||
|
|
'&:hover': {
|
|||
|
|
bgcolor: 'rgba(255,255,255,0.9)',
|
|||
|
|
transform: 'translateY(-3px)',
|
|||
|
|
boxShadow: '0 10px 25px -5px rgba(0, 0, 0, 0.2)'
|
|||
|
|
}
|
|||
|
|
}}
|
|||
|
|
>
|
|||
|
|
立即联系
|
|||
|
|
</Button>
|
|||
|
|
</Box>
|
|||
|
|
</Container>
|
|||
|
|
<style jsx global>{`
|
|||
|
|
@keyframes fadeInUp {
|
|||
|
|
from {
|
|||
|
|
opacity: 0;
|
|||
|
|
transform: translateY(30px);
|
|||
|
|
}
|
|||
|
|
to {
|
|||
|
|
opacity: 1;
|
|||
|
|
transform: translateY(0);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
`}</style>
|
|||
|
|
</div>
|
|||
|
|
);
|
|||
|
|
}
|