添加首页每日一练快捷入口并修复API调用问题
主要改动: 1. 修复每日一练排行榜API调用bug(request.get替代request) 2. 在首页快速开始区域添加每日一练快捷入口卡片 3. 实现点击卡片直接跳转到今日每日一练答题页面 4. 添加每日一练状态检测和错误提示 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
2be5f49528
commit
0074e5978f
@ -97,7 +97,7 @@ export const submitExam = (examId: number, data: SubmitExamRequest) => {
|
|||||||
|
|
||||||
// 获取每日一练排行榜
|
// 获取每日一练排行榜
|
||||||
export const getDailyExamRanking = () => {
|
export const getDailyExamRanking = () => {
|
||||||
return request<{
|
return request.get<{
|
||||||
success: boolean
|
success: boolean
|
||||||
data: {
|
data: {
|
||||||
exam_id: number
|
exam_id: number
|
||||||
|
|||||||
@ -604,6 +604,52 @@ const Home: React.FC = () => {
|
|||||||
<RocketOutlined /> 快速开始
|
<RocketOutlined /> 快速开始
|
||||||
</Title>
|
</Title>
|
||||||
<Row gutter={[12, 12]}>
|
<Row gutter={[12, 12]}>
|
||||||
|
{/* 每日一练快捷入口 */}
|
||||||
|
<Col xs={24} sm={24} md={12} lg={8}>
|
||||||
|
<Card
|
||||||
|
hoverable
|
||||||
|
className={styles.quickCard}
|
||||||
|
onClick={async () => {
|
||||||
|
// 检查今日每日一练是否存在
|
||||||
|
if (dailyExamRanking.exam_id) {
|
||||||
|
try {
|
||||||
|
// 调用开始考试API,创建考试记录
|
||||||
|
const res = await examApi.startExam(dailyExamRanking.exam_id)
|
||||||
|
if (res.success && res.data) {
|
||||||
|
// 跳转到考试答题页面(注意路由是 /taking 不是 /take)
|
||||||
|
navigate(`/exam/${dailyExamRanking.exam_id}/taking/${res.data.record_id}`)
|
||||||
|
} else {
|
||||||
|
message.error(res.message || '开始考试失败')
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('开始每日一练失败:', error)
|
||||||
|
message.error('开始考试失败,请稍后再试')
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
message.warning('今日每日一练尚未生成,请稍后再试')
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Space align="center" size="middle" style={{ width: '100%' }}>
|
||||||
|
<div
|
||||||
|
className={styles.quickIconWrapper}
|
||||||
|
style={{
|
||||||
|
background: 'linear-gradient(135deg, #fff7e6 0%, #ffe7ba 100%)',
|
||||||
|
borderColor: '#ffd591'
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<CrownOutlined className={styles.quickIcon} style={{ color: '#fa8c16' }} />
|
||||||
|
</div>
|
||||||
|
<div style={{ flex: 1 }}>
|
||||||
|
<Title level={5} style={{ margin: 0 }}>每日一练</Title>
|
||||||
|
<Paragraph type="secondary" style={{ margin: 0, fontSize: '13px' }}>
|
||||||
|
{dailyExamRanking.exam_title ? dailyExamRanking.exam_title : '今日练习,冲刺高分'}
|
||||||
|
</Paragraph>
|
||||||
|
</div>
|
||||||
|
</Space>
|
||||||
|
</Card>
|
||||||
|
</Col>
|
||||||
|
|
||||||
<Col xs={24} sm={24} md={12} lg={8}>
|
<Col xs={24} sm={24} md={12} lg={8}>
|
||||||
<Card
|
<Card
|
||||||
hoverable
|
hoverable
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user