Forráskód Böngészése

通识课、编程课、AI实验课,加载主页时清除AI功能历史缓存

liyanbo 3 hónapja
szülő
commit
4a52d75222

+ 7 - 1
src/components/HomePage.vue

@@ -112,7 +112,7 @@ import studyImg from '@/assets/images/study.png'
 // 退出登录图标
 import logoutIcon from '@/assets/icon/logout.png'
 // 退出登录
-import { logoutLogic } from '@/utils/loginUtils.js'
+import {logoutLogic, removeLocalStorageKey} from '@/utils/loginUtils.js'
 import {aiCourseRoutes, blocklyRoutes, homeRoutes} from "@/router/index.js";
 
 // 平台标题响应式变量
@@ -235,6 +235,12 @@ onMounted(() => {
       updateUserName()
     }
   })
+
+  //删除所有以token开头的键值对
+  removeLocalStorageKey(localStorage.getItem("token") + "_ai_")//AI实验室
+  removeLocalStorageKey(localStorage.getItem('token') + "_course_")//通识课、实操课
+  removeLocalStorageKey(localStorage.getItem("token") + "_blockly_")//编程课
+  removeLocalStorageKey(localStorage.getItem("token") + "_aiCourse_")//AI实验课
 })
 // 全局:更新租户名称
 window.updateTenantName = (newName) => {

+ 2 - 2
src/components/ai/image/ImageToImage.vue

@@ -155,8 +155,8 @@ import { ModelTypeEnum } from '@/api/teachers.js'
 const props = defineProps({
   //根据需求传输
   isCourse: { type: Boolean, default: false},
-  cacheDataKey: { type: String, default: localStorage.getItem('token') + "_imageToImage" },
-  cacheDataHistoryKey: { type: String, default: localStorage.getItem('token') + "_imageToImage_history" },
+  cacheDataKey: { type: String, default: localStorage.getItem('token') + "_ai_imageToImage" },
+  cacheDataHistoryKey: { type: String, default: localStorage.getItem('token') + "_ai_imageToImage_history" },
   preDialogueList: { type: Array, default: () => []},
   replySupplement: { type: String, default: ''},
 })

+ 2 - 2
src/components/ai/image/TextToImage.vue

@@ -156,8 +156,8 @@ import { ModelTypeEnum } from '@/api/teachers.js'
 const props = defineProps({
   //根据需求传输
   isCourse: { type: Boolean, default: false},
-  cacheDataKey: { type: String, default: localStorage.getItem('token') + "_textToImage" },
-  cacheDataHistoryKey: { type: String, default: localStorage.getItem('token') + "_textToImage_history" },
+  cacheDataKey: { type: String, default: localStorage.getItem('token') + "_ai_textToImage" },
+  cacheDataHistoryKey: { type: String, default: localStorage.getItem('token') + "_ai_textToImage_history" },
   preDialogueList: { type: Array, default: () => []},
   replySupplement: { type: String, default: ''},
 })

+ 2 - 2
src/components/ai/text/TextToText.vue

@@ -92,8 +92,8 @@ import DefaultMessage from "@/components/DefaultMessage/index.vue";
 const props = defineProps({
   //根据需求传输
   isCourse: { type: Boolean, default: false},
-  cacheDataKey: { type: String, default: localStorage.getItem('token') + "_textToText" },
-  cacheDataHistoryKey: { type: String, default: localStorage.getItem('token') + "_textToText_history" },
+  cacheDataKey: { type: String, default: localStorage.getItem('token') + "_ai_textToText" },
+  cacheDataHistoryKey: { type: String, default: localStorage.getItem('token') + "_ai_textToText_history" },
   preDialogueList: { type: Array, default: () => []},
   replySupplement: { type: String, default: ''},
 

+ 2 - 2
src/components/ai/video/ImageToVideo.vue

@@ -121,8 +121,8 @@ import { ModelTypeEnum } from '@/api/teachers.js'
 const props = defineProps({
   //根据需求传输
   isCourse: { type: Boolean, default: false},
-  cacheDataKey: { type: String, default: localStorage.getItem('token') + "_imageToVideo" },
-  cacheDataHistoryKey: { type: String, default: localStorage.getItem('token') + "_imageToVideo_history" },
+  cacheDataKey: { type: String, default: localStorage.getItem('token') + "_ai_imageToVideo" },
+  cacheDataHistoryKey: { type: String, default: localStorage.getItem('token') + "_ai_imageToVideo_history" },
   preDialogueList: { type: Array, default: () => []},
   replySupplement: { type: String, default: ''},
 })

+ 9 - 4
src/utils/loginUtils.js

@@ -383,12 +383,16 @@ const logoutLogic = async (router, redirectPath = homeRoutes.login) => {
 //清除本地存储
 const removeLocalStorage = () => {
   // 清空登录状态相关信息
-  let token = localStorage.getItem('token');
   CACHE_KEYS_TO_DELETE.forEach(key => localStorage.removeItem(key));
-  if (token) {
+  removeLocalStorageKey(localStorage.getItem('token'))
+}
+
+const removeLocalStorageKey = (remKey) => {
+  console.log('removeLocalStorageKey---', remKey)
+  if (remKey) {
     for (let i = 0; i < localStorage.length; i++) {
       const key = localStorage.key(i);
-      if (key && key.startsWith(token)) {
+      if (key && key.startsWith(remKey)) {
         localStorage.removeItem(key);
       }
     }
@@ -425,5 +429,6 @@ export {
   checkLoginStatus,
   generateRules,
   autoLogin,
-  logoutLogic
+  logoutLogic,
+  removeLocalStorageKey
 }

+ 4 - 1
src/views/laboratory/ExperimentalTheme.vue

@@ -109,7 +109,7 @@ import rightbtn from '@/assets/programming/rightbtn.png'
 // 退出登录图标
 import logoutIcon from '@/assets/icon/logout.png'
 // 退出登录
-import { logoutLogic } from '@/utils/loginUtils.js'
+import {logoutLogic, removeLocalStorageKey} from '@/utils/loginUtils.js'
 // 实验课主题接口
 import { getThemeExperimentList } from '@/api/laboratory/index.js'
 import {aiCourseRoutes, homeRoutes} from "@/router/index.js";
@@ -280,6 +280,9 @@ onMounted(() => {
   fetchExperimentList()
   // storage事件监听器,监听其他标签页对localStorage的修改
   window.addEventListener('storage', handleStorageChange)
+
+  // 删除AI实验课对话缓存
+  removeLocalStorageKey(localStorage.getItem("token") + "_aiCourse_")//AI实验课
 })
 
 onUnmounted(() => {

+ 4 - 1
src/views/programming/ProgrammingGame.vue

@@ -94,7 +94,7 @@ import rightbtn from '@/assets/programming/rightbtn.png'
 // 退出登录图标
 import logoutIcon from '@/assets/icon/logout.png'
 // 退出登录
-import { logoutLogic } from '@/utils/loginUtils.js'
+import {logoutLogic, removeLocalStorageKey} from '@/utils/loginUtils.js'
 import {blocklyRoutes, homeRoutes} from "@/router/index.js";
 import {scrollToCenter} from "@/utils/pageCss/scrollToCenter.js";
 
@@ -243,6 +243,9 @@ onMounted(() => {
       updateUserName()
     }
   })
+
+  // 删除编程课对话缓存
+  removeLocalStorageKey(localStorage.getItem("token") + "_blockly_")//编程课
 })
 
 </script>