Sfoglia il codice sorgente

1、调整新课类型名称
2、配置新的登录页登陆成功后跳转指定页面

liyanbo 1 mese fa
parent
commit
c3c947f99b

+ 8 - 2
src/router/index.js

@@ -7,6 +7,11 @@ import {refreshAllDictData} from "@/utils/dictUtils.js";
 const routes = [
   { path: '/', component: () => import('../views/Login.vue') },
   { path: '/login', component: () => import('../views/Login.vue') },
+  { 
+    path: '/login-mobile', 
+    meta: { defaultQuery: { loginPath: '/ai-general-course' } },
+    component: () => import('../views/Login.vue') 
+  },
 
   // 免登录
   { path: '/quick-login', component: () => import('../views/QuickLogin.vue') },
@@ -111,12 +116,12 @@ const routes = [
     component: () => import('../views/AIPage/AIDevelop.vue')
   },
 
-  // 父母课堂-手机端课程列表
+  // 家长课堂-手机端课程列表
   {
     path: '/parent-mobile-course',
     component: () => import('../views/ParentMobile/ParentMobileCourse.vue')
   },
-  // 父母课堂-手机端课程列表详情
+  // 家长课堂-手机端课程列表详情
   {
     path: '/parent-mobile-course-detail',
     component: () => import('../views/ParentMobile/ParentMobileCourseDetail.vue')
@@ -258,6 +263,7 @@ router.beforeEach(async (to, from, next) => {
   // 注册页面始终允许访问,不需要登录状态
   if ( ['/register-login',
     '/reg',
+    '/login-mobile',
     '/quick-login',
     '/promotion-login'].includes(to.path)) {
     next()

+ 1 - 1
src/styles/parentMobileCourse.css

@@ -1,5 +1,5 @@
 /* ============================================ */
-/* 父母课堂-手机端课程列表样式 */
+/* 家长课堂-手机端课程列表样式 */
 /* 包含电脑端和移动端适配 */
 /* ============================================ */
 

+ 6 - 10
src/utils/loginUtils.js

@@ -146,7 +146,7 @@ const getTenantId = async (tenantName) => {
 }
 
 // 登录逻辑
-const loginLogic = async (loginForm, tenantId, isAuthorized, router) => {
+const loginLogic = async (loginForm, tenantId, isAuthorized, router, loginPath = managementRoutes.home) => {
   const loginLoading = ref(false)
   const loading = ref()
   const isLoggedIn = ref(false)
@@ -217,13 +217,8 @@ const loginLogic = async (loginForm, tenantId, isAuthorized, router) => {
       // 获取角色路由数据
       await refreshRoleRouteData();
 
-      if (res.data.tenantId === 1) {
-        router.push("/parent-mobile-course")
-        return true
-      }
-
-      // 登录成功后,跳转到指定的页面
-      router.push(managementRoutes.home)
+      // 登录成功后,跳转到默认页面
+      router.push(loginPath)
 
       return true
     } else if (res.code === 1002000009) {
@@ -269,7 +264,7 @@ const loadLoginData = (loginData) => {
 }
 
 // 检查登录状态
-const checkLoginStatus = (router) => {
+const checkLoginStatus = (router, loginPath = managementRoutes.home) => {
   const storedStatus = localStorage.getItem('isLoggedIn')
   if (storedStatus === 'true') {
 
@@ -279,7 +274,8 @@ const checkLoginStatus = (router) => {
     // 获取角色路由数据
     refreshRoleRouteData();
 
-    router.push(managementRoutes.home)
+    // 如果有指定的跳转路径,则跳转到该路径,否则跳转到默认主页
+    router.push(loginPath)
     return true
   }
   return false

+ 5 - 5
src/views/AIPage/AIGeneralCourse.vue

@@ -127,7 +127,7 @@
         <SelfDirectedLearning v-if="currentOpenedMenu === menuConfigTemp[3].id"
                               @refreshData="refreshData" />
 
-        <!-- 父母课堂-手机端 - 与其他课程保持一致的样式 -->
+        <!-- 家长课堂-手机端 - 与其他课程保持一致的样式 -->
         <template v-else-if="currentOpenedMenu === '/parent-mobile'">
           <!-- 电脑端样式:与原课程相同的布局结构 -->
           <div
@@ -247,7 +247,7 @@ const generalCourseData = ref([])
 const practicalCourseData = ref([])
 const aiCourseData = ref([])
 
-// 父母课堂-手机端列表数据(模拟数据)
+// 家长课堂-手机端列表数据(模拟数据)
 const parentMobileCourseList = ref([])
 const selfStudyCourseData = ref([])
 
@@ -257,8 +257,8 @@ const menuConfigTemp = [
   { id: '/practical', title: 'AI实操课', type: '2', data: practicalCourseData },
   { id: '/poetry', title: 'AI古诗词', type: '3', data: aiCourseData },
   { id: '/selfstudy', title: 'AI自主学习', type: '4', data: selfStudyCourseData },
-  // 父母课堂-手机端(独立数据处理)
-  { id: '/parent-mobile', title: '父母课堂', type: '5', data: ref([]) }
+  // 家长课堂-手机端(独立数据处理)
+  { id: '/parent-mobile', title: '家长课堂', type: '5', data: ref([]) }
 ]
 
 
@@ -537,7 +537,7 @@ const goToAIExperience = outlineData => {
   })
 }
 
-// 父母课堂-手机端跳转方法
+// 家长课堂-手机端跳转方法
 const goToParentMobileCourse = (outlineData) => {
   const menuId = currentOpenedMenu.value
   const menu = menuConfig.value.find(m => m.id === menuId)

+ 13 - 3
src/views/Login.vue

@@ -176,8 +176,13 @@ const handleLogin = async () => {
         }
       }
 
+      // 获取路由参数中的重定向路径
+      // 优先使用查询参数,如果没有则使用路由元数据中的默认值
+      const currentRoute = router.currentRoute.value;
+      const loginPath = currentRoute.query.loginPath || currentRoute.meta.defaultQuery?.loginPath || null
+      
       // 调用登录逻辑
-      await loginLogic(loginData.value.loginForm, tenantId, isAuthorized, router)
+      await loginLogic(loginData.value.loginForm, tenantId, isAuthorized, router, loginPath)
     }
   })
 }
@@ -192,8 +197,13 @@ onMounted(() => {
     router.replace(homeRoutes.login)
   }
 
-  // 检查登录状态,如果已登录则直接跳转到管理界面
-  checkLoginStatus(router)
+  // 获取路由参数中登陆成功后跳转页面
+  // 优先使用查询参数,如果没有则使用路由元数据中的默认值
+  const currentRoute = router.currentRoute.value;
+  const loginPath = currentRoute.query.loginPath || currentRoute.meta.defaultQuery?.loginPath || null;
+
+  // 检查登录状态,如果已登录则根据loginPath参数决定跳转位置
+  checkLoginStatus(router, loginPath)
 
   const handleKeyPress = (event) => {
     // 检查是否按下回车键(keyCode 13)

+ 8 - 8
src/views/ParentMobile/ParentMobileCourse.vue

@@ -1,9 +1,9 @@
 <template>
-  <!-- 父母课堂-手机端页面 -->
+  <!-- 家长课堂-手机端页面 -->
   <div class="parent-mobile-course-container">
     <!-- 页面标题和返回按钮 -->
     <div class="page-header">
-      <h1 class="page-title">父母课堂</h1>
+      <h1 class="page-title">家长课堂</h1>
     </div>
     
     <!-- 搜索框 -->
@@ -99,7 +99,7 @@ const SearchInput = ref('')
 // 用于强制重新渲染搜索组件的key
 const searchKey = ref(Date.now())
 
-// 父母课堂-手机端数据
+// 家长课堂-手机端数据
 const parentMobileCourseData = ref([])
 
 // 检测是否为移动设备
@@ -114,7 +114,7 @@ const checkIsMobile = () => {
   return false;
 }
 
-// 获取父母课堂-手机端数据
+// 获取家长课堂-手机端数据
 const fetchParentMobileCourseData = async () => {
   try {
     // 获取年级数据
@@ -129,7 +129,7 @@ const fetchParentMobileCourseData = async () => {
       // 查找对应的年级ID
       const selectedItem = classData.find(item => item.ctType === selectedGrade) || classData[0]
       if (selectedItem) {
-        // 获取该年级下的课程大纲数据(父母课堂-手机端类型,根据原页面配置)
+        // 获取该年级下的课程大纲数据(家长课堂-手机端类型,根据原页面配置)
         const outlineRes = await ClassOutline(selectedItem.id, '5')
         if (outlineRes.code === 0) {
           // 处理课程数据,添加序号
@@ -142,7 +142,7 @@ const fetchParentMobileCourseData = async () => {
       }
     }
   } catch (error) {
-    console.error('获取父母课堂-手机端数据失败:', error)
+    console.error('获取家长课堂-手机端数据失败:', error)
     Message().notifyWarning('获取课程数据失败', true)
   }
 }
@@ -172,7 +172,7 @@ const goBack = () => {
   router.push('/home')
 }
 
-// 跳转到父母课堂-手机端详情页
+// 跳转到家长课堂-手机端详情页
 const goToParentMobileCourse = (outlineData) => {
   router.push({
     path: '/parent-mobile-course-detail',
@@ -184,7 +184,7 @@ onMounted(() => {
   // 检测是否为移动设备
   isMobile.value = checkIsMobile();
   
-  // 获取父母课堂-手机端数据
+  // 获取家长课堂-手机端数据
   fetchParentMobileCourseData()
 })
 </script>