Study/docs/learning_system_dictionarie...

5.2 KiB
Raw Permalink Blame History

学习系统数据字典配置文档

概述

本文档描述了学习系统中使用的所有数据字典配置,包括字典类型、字典值和使用说明。

字典列表

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;

扩展说明

添加新的字典值

  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

本文档会随着系统功能的扩展而持续更新