Study/docs/learning_system_dictionarie...

178 lines
5.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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