10 | 欢迎访问 11 |
12 |13 | 请选择您想要访问的应用: 14 |
15 |刷题系统 →
21 |22 | 练习题目,记录错题并支持导入导出题库 23 |
24 | 25 |├── electron ├── fallback.html ├── icon.txt ├── preload.js ├── check-environment.js └── static-server.js ├── pnpm-workspace.yaml ├── public ├── logo │ ├── Qwen.jpg │ └── Deepseek.jpg └── quiz │ └── banks │ └── manage │ └── index.html ├── resources └── icon.jpg ├── postcss.config.mjs ├── src ├── lib │ ├── utils.ts │ └── deepseek.ts ├── app │ ├── quiz │ │ ├── banks │ │ │ ├── [bankId] │ │ │ │ └── layout.tsx │ │ │ └── manage │ │ │ │ ├── index.html │ │ │ │ └── index │ │ │ │ └── page.tsx │ │ ├── review │ │ │ └── practice │ │ │ │ └── page.tsx │ │ ├── page.tsx │ │ ├── layout.tsx │ │ ├── settings │ │ │ └── page.tsx │ │ └── import-export │ │ │ └── page.tsx │ ├── layout.tsx │ ├── page.tsx │ ├── api │ │ └── ai │ │ │ ├── deepseek │ │ │ └── route.ts │ │ │ └── alibaba │ │ │ └── route.ts │ └── globals.css ├── utils │ ├── array.ts │ └── quiz.ts ├── types │ ├── electron.d.ts │ └── quiz.ts ├── store │ ├── themeStore.ts │ └── quizStore.ts ├── components │ ├── ui │ │ ├── textarea.tsx │ │ ├── progress.tsx │ │ ├── input.tsx │ │ ├── checkbox.tsx │ │ ├── badge.tsx │ │ ├── scroll-area.tsx │ │ ├── alert.tsx │ │ ├── button.tsx │ │ ├── card.tsx │ │ ├── dialog.tsx │ │ └── select.tsx │ ├── ThemeSwitcher.tsx │ ├── CreateBankModal.tsx │ ├── NumQuestionsModal.tsx │ ├── quiz │ │ ├── WrongQuestionItem.tsx │ │ └── SimilarQuestionsModal.tsx │ └── QuestionFormModal.tsx ├── hooks │ └── useElectron.ts └── constants │ ├── quiz.ts │ └── ai.ts ├── .eslintrc.json ├── tailwind.config.js ├── .npmrc ├── next.config.ts ├── eslint.config.mjs ├── components.json ├── .gitignore ├── tsconfig.json ├── offline-electron.md ├── generate ├── build-mac.sh ├── build-linux.sh ├── build-win.sh ├── README.md └── build-all.sh ├── tauri-guide.md ├── LICENSE ├── README.md └── package.json /electron/fallback.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "." 3 | # 如果有子包或其他目录需要管理,可以在这里添加 4 | # - "packages/*" -------------------------------------------------------------------------------- /public/logo/Qwen.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KurodaKayn/AHF-QDS-EOE/HEAD/public/logo/Qwen.jpg -------------------------------------------------------------------------------- /resources/icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KurodaKayn/AHF-QDS-EOE/HEAD/resources/icon.jpg -------------------------------------------------------------------------------- /public/logo/Deepseek.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KurodaKayn/AHF-QDS-EOE/HEAD/public/logo/Deepseek.jpg -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | const config = { 2 | plugins: ["@tailwindcss/postcss"], 3 | }; 4 | 5 | export default config; 6 | -------------------------------------------------------------------------------- /src/lib/utils.ts: -------------------------------------------------------------------------------- 1 | import { clsx, type ClassValue } from "clsx" 2 | import { twMerge } from "tailwind-merge" 3 | 4 | export function cn(...inputs: ClassValue[]) { 5 | return twMerge(clsx(inputs)) 6 | } 7 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals", 3 | "rules": { 4 | "@typescript-eslint/no-explicit-any": "off", 5 | "@typescript-eslint/no-unused-vars": "off", 6 | "react-hooks/exhaustive-deps": "warn" 7 | } 8 | } -------------------------------------------------------------------------------- /src/app/quiz/banks/[bankId]/layout.tsx: -------------------------------------------------------------------------------- 1 | /** 2 | * 为静态导出生成路径参数 3 | * 由于这是服务器组件,因此服务端生成的参数用于静态导出 4 | */ 5 | export function generateStaticParams() { 6 | return [{ bankId: 'default' }]; 7 | } 8 | 9 | export default function BankLayout({ children }: { children: React.ReactNode }) { 10 | return <>{children}>; 11 | } -------------------------------------------------------------------------------- /src/app/quiz/banks/manage/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |正在跳转到题库管理页面...
10 | 13 | 14 | -------------------------------------------------------------------------------- /src/utils/array.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * 使用Fisher-Yates算法对数组进行原地洗牌。 3 | * @param array 要洗牌的数组。 4 | * @returns 洗牌后的数组(相同实例)。 5 | */ 6 | export function shuffleArray重定向中...
19 |如果页面没有自动跳转,请返回题库列表
26 |13 | 请选择您想要访问的应用: 14 |
15 |22 | 练习题目,记录错题并支持导入导出题库 23 |
24 | 25 |正在准备错题练习...
42 |70 | 题库: {bankName} 71 |
72 | )} 73 |74 | 请输入您本次要刷的题目数量。 75 |
76 | 77 |{error}
} 97 |{bank.description || '暂无描述'}
39 |40 | {bank.questions.length} 道题目 · 更新于 {formatDistanceToNow(bank.updatedAt, { addSuffix: true, locale: zhCN })} 41 |
42 |选择一个题库开始您的学习之旅,或前往"题库管理"页面创建和编辑题库。
91 |96 | 您还没有任何题库。 97 |
98 | 118 |;
113 | // },
114 | // table: (props) => ( // Temporarily commented out for debugging table rendering
115 | // 215 | 您的答案: {q.userAnswer === 'true' ? '正确' : '错误'} 216 |
217 |218 | 正确答案: {q.answer === 'true' ? '正确' : '错误'} 219 |
220 |解析:
237 |正在生成AI解析...
255 |{description}
29 | )} 30 |{ALIBABA_BASE_URL}
238 |qwen-turbo (兼容 OpenAI SDK)
242 |217 | 共导入 {importResult.total} 题,成功添加 {importResult.added} 题 218 |
219 | {importResult.duplicates > 0 && ( 220 |
221 |
无法找到请求的页面。
380 |请求路径: ${path}
381 | 382 |正在努力生成相似题目,请稍候...
109 |未能生成相似题目。
115 | {originalQuestions.length > 0 && ( 116 |117 | 基于 {originalQuestions.length} 道原始题目尝试生成。 118 |
119 | )} 120 | 126 |133 | 基于 {originalQuestions.length} 道原始题目,为您生成了以下 {generatedQuestions.length} 道相似题目: 134 |
135 |136 | 请勾选您想要保留的题目,并选择目标题库进行导入。 137 |
138 |