178 lines
5.2 KiB
Markdown
178 lines
5.2 KiB
Markdown
# 学习系统数据字典配置文档
|
||
|
||
## 概述
|
||
|
||
本文档描述了学习系统中使用的所有数据字典配置,包括字典类型、字典值和使用说明。
|
||
|
||
## 字典列表
|
||
|
||
### 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
|
||
<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脚本来初始化字典数据:
|
||
|
||
```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 |
|
||
|
||
---
|
||
|
||
*本文档会随着系统功能的扩展而持续更新*
|