feat(user): 重构用户端竞赛流程,集成后端API并优化交互体验
- 新增 `activityinfo` store 管理活动信息,支持持久化 - 重构 `competition` store,分离数据层与流程控制,新增音效管理 - 新增游戏API模块 (`game.ts`),实现抽题、题目详情、提交结果等接口 - 用户端页面全面对接后端数据:首页轮播展示活动列表,组别/队伍页动态加载,封面页显示题目卡片 - 抽题页改为竹签翻转动画,游戏页集成题目详情与倒计时 - 优化布局组件,支持点击返回首页,统一路由参数传递 - 更新类型定义,支持富文本题目渲染 - 添加 `activityinfo` 拼写检查词条
This commit is contained in:
20
apps/admin/src/typings/api/Competition.d.ts
vendored
20
apps/admin/src/typings/api/Competition.d.ts
vendored
@ -75,6 +75,26 @@ declare namespace Api {
|
||||
Name: string
|
||||
}
|
||||
|
||||
/** question add params */
|
||||
interface QuestionAddParams {
|
||||
RoomID: number
|
||||
MainID: number
|
||||
TeamGroupID: number
|
||||
QuestionID: number
|
||||
QuestionDetaiID: number
|
||||
}
|
||||
|
||||
interface QuestionListDetailRound {
|
||||
/** 题目 id */
|
||||
Id: number
|
||||
Name: string
|
||||
Answers: string
|
||||
QuestionId: number
|
||||
IsGood: number
|
||||
Image: string
|
||||
ImageUrl: string
|
||||
}
|
||||
|
||||
/** activity detail */
|
||||
interface ActivityDetail {
|
||||
/** 背景图片 */
|
||||
|
||||
2
apps/admin/src/typings/app.d.ts
vendored
2
apps/admin/src/typings/app.d.ts
vendored
@ -198,7 +198,7 @@ declare namespace App {
|
||||
|
||||
/** The router push options */
|
||||
interface RouterPushOptions {
|
||||
query?: Record<string, string>
|
||||
query?: Record<string, string | number>
|
||||
params?: Record<string, string>
|
||||
}
|
||||
|
||||
|
||||
2
apps/admin/src/typings/components.d.ts
vendored
2
apps/admin/src/typings/components.d.ts
vendored
@ -59,6 +59,7 @@ declare module 'vue' {
|
||||
IconIcOutlineTitle: typeof import('~icons/ic/outline-title')['default']
|
||||
IconIcRoundAccessTime: typeof import('~icons/ic/round-access-time')['default']
|
||||
IconIcRoundArrowBack: typeof import('~icons/ic/round-arrow-back')['default']
|
||||
IconIcRoundArrowForward: typeof import('~icons/ic/round-arrow-forward')['default']
|
||||
IconIcRoundArrowLeft: typeof import('~icons/ic/round-arrow-left')['default']
|
||||
IconIcRoundArrowRight: typeof import('~icons/ic/round-arrow-right')['default']
|
||||
IconIcRoundDelete: typeof import('~icons/ic/round-delete')['default']
|
||||
@ -227,6 +228,7 @@ declare global {
|
||||
const IconIcOutlineTitle: typeof import('~icons/ic/outline-title')['default']
|
||||
const IconIcRoundAccessTime: typeof import('~icons/ic/round-access-time')['default']
|
||||
const IconIcRoundArrowBack: typeof import('~icons/ic/round-arrow-back')['default']
|
||||
const IconIcRoundArrowForward: typeof import('~icons/ic/round-arrow-forward')['default']
|
||||
const IconIcRoundArrowLeft: typeof import('~icons/ic/round-arrow-left')['default']
|
||||
const IconIcRoundArrowRight: typeof import('~icons/ic/round-arrow-right')['default']
|
||||
const IconIcRoundDelete: typeof import('~icons/ic/round-delete')['default']
|
||||
|
||||
Reference in New Issue
Block a user