5.2 KiB
5.2 KiB
学习系统数据字典配置文档
概述
本文档描述了学习系统中使用的所有数据字典配置,包括字典类型、字典值和使用说明。
字典列表
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代码中,可以直接使用字典值:
// 创建课程时设置难度
course := learning.Course{
Title: "Go语言入门",
Difficulty: "beginner", // 使用字典值
Status: "draft",
}
2. 前端使用
2.1 导入字典工具
import { LearningDict } from '@/utils/learningDict'
2.2 获取标签和类型
// 获取课程难度标签
const difficultyLabel = LearningDict.CourseDifficulty.getLabel('beginner') // 返回: '初级'
// 获取课程难度标签类型
const difficultyType = LearningDict.CourseDifficulty.getType('beginner') // 返回: 'success'
// 获取所有选项
const difficultyOptions = LearningDict.CourseDifficulty.getOptions()
2.3 在Vue组件中使用
<template>
<el-tag :type="getDifficultyColor(course.difficulty)">
{{ getDifficultyLabel(course.difficulty) }}
</el-tag>
</template>
<script setup>
import { LearningDict } from '@/utils/learningDict'
const getDifficultyLabel = (difficulty) => {
return LearningDict.CourseDifficulty.getLabel(difficulty)
}
const getDifficultyColor = (difficulty) => {
return LearningDict.CourseDifficulty.getType(difficulty)
}
</script>
3. 数据库初始化
执行以下SQL脚本来初始化字典数据:
-- 执行字典初始化脚本
source server/sql/learning_dictionaries.sql;
扩展说明
添加新的字典值
- 后端: 在
server/source/system/dictionary_detail.go中添加新的字典详情 - 前端: 在
web/src/utils/learningDict.js中添加对应的选项和工具函数 - 数据库: 执行相应的SQL语句添加新的字典记录
修改现有字典值
- 更新数据库中的字典记录
- 更新前端字典工具文件
- 确保所有使用该字典值的地方都已更新
注意事项
- 一致性: 确保前后端使用的字典值完全一致
- 扩展性: 新增字典值时要考虑向后兼容性
- 国际化: 如需支持多语言,可以扩展字典工具函数
- 缓存: 前端可以考虑缓存字典数据以提高性能
维护记录
| 日期 | 版本 | 修改内容 | 修改人 |
|---|---|---|---|
| 2024-01-XX | 1.0 | 初始版本,包含7个基础字典 | System |
本文档会随着系统功能的扩展而持续更新