# 学习系统数据字典配置文档 ## 概述 本文档描述了学习系统中使用的所有数据字典配置,包括字典类型、字典值和使用说明。 ## 字典列表 ### 1. 课程难度 (course_difficulty) **用途**: 定义课程的难度等级 | 标签 | 值 | 排序 | 标签类型 | 说明 | |------|----|----|---------|------| | 初级 | beginner | 1 | success | 适合初学者的基础课程 | | 中级 | intermediate | 2 | warning | 需要一定基础的进阶课程 | | 高级 | advanced | 3 | danger | 面向专业人士的高级课程 | ### 2. 课程状态 (course_status) **用途**: 定义课程的发布状态 | 标签 | 值 | 排序 | 标签类型 | 说明 | |------|----|----|---------|------| | 草稿 | draft | 1 | info | 课程正在编辑中,未发布 | | 已发布 | published | 2 | success | 课程已发布,学生可以学习 | | 已下架 | archived | 3 | danger | 课程已下架,不再提供学习 | ### 3. 章节状态 (chapter_status) **用途**: 定义章节的发布状态 | 标签 | 值 | 排序 | 标签类型 | 说明 | |------|----|----|---------|------| | 草稿 | draft | 1 | info | 章节正在编辑中,未发布 | | 已发布 | published | 2 | success | 章节已发布,可以学习 | | 隐藏 | hidden | 3 | warning | 章节已隐藏,暂时不显示 | ### 4. 知识点状态 (knowledge_status) **用途**: 定义知识点的发布状态 | 标签 | 值 | 排序 | 标签类型 | 说明 | |------|----|----|---------|------| | 草稿 | draft | 1 | info | 知识点正在编辑中,未发布 | | 已发布 | published | 2 | success | 知识点已发布,可以学习 | | 隐藏 | hidden | 3 | warning | 知识点已隐藏,暂时不显示 | ### 5. 题目类型 (question_type) **用途**: 定义题目的类型 | 标签 | 值 | 排序 | 标签类型 | 说明 | |------|----|----|---------|------| | 单选题 | single_choice | 1 | - | 只能选择一个正确答案 | | 多选题 | multiple_choice | 2 | success | 可以选择多个正确答案 | | 判断题 | true_false | 3 | warning | 判断对错的题目 | | 填空题 | fill_blank | 4 | danger | 需要填写答案的题目 | ### 6. 题目难度 (question_difficulty) **用途**: 定义题目的难度等级 | 标签 | 值 | 排序 | 标签类型 | 说明 | |------|----|----|---------|------| | 简单 | easy | 1 | success | 基础题目,容易解答 | | 中等 | medium | 2 | warning | 中等难度题目 | | 困难 | hard | 3 | danger | 高难度题目,需要深入思考 | ### 7. 学习状态 (learning_status) **用途**: 定义用户的学习状态 | 标签 | 值 | 排序 | 标签类型 | 说明 | |------|----|----|---------|------| | 未开始 | not_started | 1 | info | 用户还未开始学习该课程 | | 学习中 | learning | 2 | warning | 用户正在学习该课程 | | 已完成 | completed | 3 | success | 用户已完成该课程的学习 | | 已暂停 | paused | 4 | danger | 用户暂停了该课程的学习 | ## 使用方法 ### 1. 后端使用 在Go代码中,可以直接使用字典值: ```go // 创建课程时设置难度 course := learning.Course{ Title: "Go语言入门", Difficulty: "beginner", // 使用字典值 Status: "draft", } ``` ### 2. 前端使用 #### 2.1 导入字典工具 ```javascript import { LearningDict } from '@/utils/learningDict' ``` #### 2.2 获取标签和类型 ```javascript // 获取课程难度标签 const difficultyLabel = LearningDict.CourseDifficulty.getLabel('beginner') // 返回: '初级' // 获取课程难度标签类型 const difficultyType = LearningDict.CourseDifficulty.getType('beginner') // 返回: 'success' // 获取所有选项 const difficultyOptions = LearningDict.CourseDifficulty.getOptions() ``` #### 2.3 在Vue组件中使用 ```vue ``` ### 3. 数据库初始化 执行以下SQL脚本来初始化字典数据: ```sql -- 执行字典初始化脚本 source server/sql/learning_dictionaries.sql; ``` ## 扩展说明 ### 添加新的字典值 1. **后端**: 在 `server/source/system/dictionary_detail.go` 中添加新的字典详情 2. **前端**: 在 `web/src/utils/learningDict.js` 中添加对应的选项和工具函数 3. **数据库**: 执行相应的SQL语句添加新的字典记录 ### 修改现有字典值 1. 更新数据库中的字典记录 2. 更新前端字典工具文件 3. 确保所有使用该字典值的地方都已更新 ## 注意事项 1. **一致性**: 确保前后端使用的字典值完全一致 2. **扩展性**: 新增字典值时要考虑向后兼容性 3. **国际化**: 如需支持多语言,可以扩展字典工具函数 4. **缓存**: 前端可以考虑缓存字典数据以提高性能 ## 维护记录 | 日期 | 版本 | 修改内容 | 修改人 | |------|------|----------|--------| | 2024-01-XX | 1.0 | 初始版本,包含7个基础字典 | System | --- *本文档会随着系统功能的扩展而持续更新*