Selaa lähdekoodia

更新字典常量更改查库(通识课标签、blockly课标签)

liyanbo 3 kuukautta sitten
vanhempi
sitoutus
67fec40026

+ 4 - 0
src/utils/dictUtils.js

@@ -3,6 +3,10 @@ import { getSimpleDictDataList } from '@/api/system/dict.js';
 // ========== Blockly - 地图编程游戏  ==========
 // 字典类型常量定义(统一管理)
 export const DICT_TYPE = {
+  //通识课、实操课,课程内容类型
+  BJDX_COURSE_CONTENT_TYPE: 'bjdx_course_content_type', // 课程内容类型
+  BJDX_COURSE_LABEL: 'bjdx_course_label', // 课程标签
+
   AI_BLOCKLY_MAP_TYPE: 'ai_blockly_map_type', // 地图类型
   BLOCKLY_COURSE_LABEL: 'blockly_course_label', // 课程标签
   BLOCKLY_COURSE_CONTENT_TYPE: 'blockly_course_content_type', // 课程内容类型

+ 11 - 2
src/views/AIPage/AIDevelop.vue

@@ -208,6 +208,7 @@ import TextToText from "@/components/ai/text/TextToText.vue";
 import TextToImage from "@/components/ai/image/TextToImage.vue";
 import ImageToImage from "@/components/ai/image/ImageToImage.vue";
 import ImageToVideo from "@/components/ai/video/ImageToVideo.vue";
+import {DICT_TYPE} from "@/utils/dictUtils.js";
 
 const router = useRouter() // 获取当前路由对象
 const route = useRoute()
@@ -246,8 +247,8 @@ const typeSort = ref('')
 // 测试账号禁用视频
 const isDisabled = ref(false)
 
-  // 保存视频进度接口
-  const handleSaveProgress = async (type, progress) => {
+// 保存视频进度接口
+const handleSaveProgress = async (type, progress) => {
     try {
       await saveRecord({
         brpNjId: gradeId.value,
@@ -567,6 +568,14 @@ onMounted(async () => {
   // 初始化年级ID
   gradeId.value = globalState.initGradeId()
 
+
+  //课程小节字典
+  let menuDictStr = localStorage.getItem(DICT_TYPE.BJDX_COURSE_LABEL);
+  let menuDictJson = menuDictStr ? JSON.parse(menuDictStr) : [];
+  menuDict.value = menuDictJson.reduce((acc, item) => {
+    acc[item.value] = item.label;
+    return acc;
+  }, {});
 })
 
 onBeforeUnmount(() => {

+ 15 - 14
src/views/programming/ProgrammingCourset.vue

@@ -95,10 +95,6 @@ import { ref, onMounted, computed, watch } from 'vue';
 import { useRouter, useRoute } from 'vue-router';
 // 根据ID获取课程列表
 import { getBlocklyByTypeId } from '@/api/programming/index.js'
-// 导入图片
-import  explanation  from '@/assets/programming/explanation.png'
-import  practice  from '@/assets/programming/practice.png'
-import  summary  from '@/assets/programming/summary.png'
 // 导入按钮图片
 import leftbtn from '@/assets/programming/leftbtn.png'
 import rightbtn from '@/assets/programming/rightbtn.png'
@@ -109,6 +105,7 @@ import Interface from './Interface.vue'
 import star02Image from '@/assets/programming/star02.png'
 import star01Image from '@/assets/programming/star01.png'
 import {Message} from "@/utils/message/Message.js";
+import {DICT_TYPE} from "@/utils/dictUtils.js";
 
 
 // 获取路由实例
@@ -142,6 +139,10 @@ const hasMoved = ref(false) // 标记是否发生了移动
 // 获取contentBox元素的引用
 const contentBox = ref(null)
 
+// 创建图片映射,根据bcLabel显示对应图片
+const menuDict = ref({});
+
+
 // 根据内容类型获取星星数量
 const getStarCount = (contentType) => {
   if (contentType === 'video') {
@@ -245,21 +246,12 @@ const fetchCourseData = () => {
           item.isDisabled = isDisabled.value
         });
 
-        // 创建图片映射,根据bcLabel显示对应图片
-        const imageMap = {
-          '1': explanation,
-          '2': practice,
-          '3': summary
-        };
-        
         // 批量创建课程项
         const newCourseItems = newResData.map((item, index) => {
-          const positionIndex = (index % 3) + 1;
-          const image = imageMap[item.bcLabel]; // 根据bcLabel获取图片
           return {
             id: item.id,
             title: item.bcName,
-            image: image,
+            image: menuDict.value[item.bcLabel],
             contentType: item.bcContentType,
             progress: item.progress, // 进度
             isDisabled: isDisabled.value // 保存bcLabel用于图片映射
@@ -290,6 +282,15 @@ onMounted(() => {
 
   // 获取到topicId后,调用函数获取课程列表
   fetchCourseData();
+
+
+  //课程小节字典
+  let menuDictStr = localStorage.getItem(DICT_TYPE.BLOCKLY_COURSE_LABEL);
+  let menuDictJson = menuDictStr ? JSON.parse(menuDictStr) : [];
+  menuDict.value = menuDictJson.reduce((acc, item) => {
+    acc[item.value] = item.cssClass;
+    return acc;
+  }, {});
 });
 
 // 处理课程项点击事件