-
Kimberly,欢迎你
+
{{ getMemberInfo.name }},欢迎你
海内存知己,天涯若比邻
无论您身处何地,这里都是您学习中文、探索文化的家园
@@ -657,6 +702,8 @@ const handleMemberEnter = () => {
进入国际中文教育平台
diff --git a/src/views/login/loginPage.vue b/src/views/login/loginPage.vue
index 704da22..072f2af 100644
--- a/src/views/login/loginPage.vue
+++ b/src/views/login/loginPage.vue
@@ -9,10 +9,6 @@ import logoComponent from '@/components/service/logoComponent.vue' //引入自
import LanguageToggle from '@/components/service/LanguageToggle.vue' //引入自定义语言切换组件
import { ElMessage } from 'element-plus' //引入element-plus的消息提示组件
-//引入api接口
-import { studentLogin } from '@/api/student.js'
-import { loginByRole } from '@/api/user.js'
-
//引入路由
import { useRouter } from 'vue-router'
const router = useRouter()
@@ -70,34 +66,34 @@ const handleLogin = async () => {
isSubmitting.value = true
try {
- const response =
- selectedRole.value === 'student'
- ? await studentLogin(formData.value.email, formData.value.password)
- : await loginByRole(
- selectedRole.value,
- formData.value.email,
- formData.value.password
- )
+ const profile = await userStore.login({
+ role: selectedRole.value,
+ email: formData.value.email.trim(),
+ password: formData.value.password
+ })
- if (response.data?.code !== 0) {
- throw new Error(response.data?.msg || '登录失败,请检查账号信息')
- }
+ if (!profile) throw new Error('服务端未返回有效用户信息')
- const profile = response.data.data || {}
- userStore.setSession(selectedRole.value, profile)
if (selectedRole.value === 'student') {
studentStore.setUserInfo(profile)
+ } else {
+ studentStore.clearUserInfo()
}
ElMessage.success('登录成功')
const requestedPath = router.currentRoute.value.query.redirect
- await router.replace(
- typeof requestedPath === 'string'
+ const safeRequestedPath =
+ typeof requestedPath === 'string' &&
+ requestedPath.startsWith('/') &&
+ !requestedPath.startsWith('//')
? requestedPath
- : roleRoutes[selectedRole.value]
- )
+ : null
+
+ await router.replace(safeRequestedPath || roleRoutes[selectedRole.value])
} catch (error) {
- ElMessage.error(error.response?.data?.msg || error.message || '登录失败')
+ if (!error.messageShown) {
+ ElMessage.error(error.response?.data?.msg || error.message || '登录失败')
+ }
} finally {
isSubmitting.value = false
}
diff --git a/src/views/student/orderTeacher/createNewChat.vue b/src/views/student/orderTeacher/createNewChat.vue
deleted file mode 100644
index 692c42c..0000000
--- a/src/views/student/orderTeacher/createNewChat.vue
+++ /dev/null
@@ -1,81 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/src/views/student/personalCenter/changePassword.vue b/src/views/student/personalCenter/changePassword.vue
index 9dbef4e..68682da 100644
--- a/src/views/student/personalCenter/changePassword.vue
+++ b/src/views/student/personalCenter/changePassword.vue
@@ -1,61 +1,7 @@
-
-
+
-
-
diff --git a/src/views/student/personalCenter/messageNotice.vue b/src/views/student/personalCenter/messageNotice.vue
index ad7aca7..3869d85 100644
--- a/src/views/student/personalCenter/messageNotice.vue
+++ b/src/views/student/personalCenter/messageNotice.vue
@@ -1,178 +1,7 @@
-
-
-
-
-
-
-
-
- 聊天对象
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
diff --git a/src/views/student/personalCenter/personalCenter.vue b/src/views/student/personalCenter/personalCenter.vue
index 187ee2f..fbc763c 100644
--- a/src/views/student/personalCenter/personalCenter.vue
+++ b/src/views/student/personalCenter/personalCenter.vue
@@ -9,21 +9,16 @@ const studentStore = useStudentStore()
const routerList = [
{
id: 1,
- name: '个人消息',
+ name: '个人资料',
path: '/student/center/info'
},
{
id: 2,
- name: '会员信息',
- path: '/student/center/vip'
- },
- {
- id: 3,
name: '修改密码',
path: '/student/center/changePassword'
},
{
- id: 4,
+ id: 3,
name: '消息通知',
path: '/student/center/message'
}
diff --git a/src/views/student/personalCenter/personalInfo.vue b/src/views/student/personalCenter/personalInfo.vue
index 10ef1ae..25f7881 100644
--- a/src/views/student/personalCenter/personalInfo.vue
+++ b/src/views/student/personalCenter/personalInfo.vue
@@ -1,120 +1,7 @@
-
-
-
-
-
修改头像
-
![用户头像]()
-
-
-
-
-
-
-
-
- 保存
-
-
-
+
-
-
diff --git a/src/views/student/personalCenter/vipInfo.vue b/src/views/student/personalCenter/vipInfo.vue
deleted file mode 100644
index 03fc614..0000000
--- a/src/views/student/personalCenter/vipInfo.vue
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/views/student/publishOrder/CreateNewPublish.vue b/src/views/student/publishOrder/CreateNewPublish.vue
deleted file mode 100644
index de03fe3..0000000
--- a/src/views/student/publishOrder/CreateNewPublish.vue
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/src/views/student/publishOrder/publishOrder.vue b/src/views/student/publishOrder/publishOrder.vue
deleted file mode 100644
index de3258a..0000000
--- a/src/views/student/publishOrder/publishOrder.vue
+++ /dev/null
@@ -1,336 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/src/views/student/studentLayout/studentLayout.vue b/src/views/student/studentLayout/studentLayout.vue
index 8743798..be4c6b5 100644
--- a/src/views/student/studentLayout/studentLayout.vue
+++ b/src/views/student/studentLayout/studentLayout.vue
@@ -1,241 +1,254 @@
-// 定义tab栏高亮下标
-const activeTabIndex = ref(0)
+
+
+
+
+
+
+
+
-// 获取消息提醒盒子
-const messageRef = ref(null)
+
+ .header-tools {
+ justify-self: end;
+ }
+}
+
+@media (max-width: 620px) {
+ .language-toggle,
+ .profile-button span {
+ display: none;
+ }
+}
+
diff --git a/src/views/teacher/UserPage/UserPage.vue b/src/views/teacher/UserPage/UserPage.vue
index 3247c27..03a0700 100644
--- a/src/views/teacher/UserPage/UserPage.vue
+++ b/src/views/teacher/UserPage/UserPage.vue
@@ -1,5 +1,68 @@
-
+
- 用户中心
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/teacher/components/HeaderNav.vue b/src/views/teacher/components/HeaderNav.vue
index 5b3b4ab..e2b2386 100644
--- a/src/views/teacher/components/HeaderNav.vue
+++ b/src/views/teacher/components/HeaderNav.vue
@@ -1,167 +1,144 @@
-
+
-
+
From 4fc45ab4885d13aa90a308e3e3c5e221e7615be2 Mon Sep 17 00:00:00 2001
From: Henrythefoodie <13022037121@163.com>
Date: Mon, 20 Jul 2026 00:26:32 +0800
Subject: [PATCH 14/20] feat(workflows): connect complete teaching journeys
---
.../administrator/auditCenter/auditCenter.vue | 638 +++-
.../courseDocking/courseDocking.vue | 1067 ++++++-
.../administrator/dataCenter/dataCenter.vue | 849 +++++-
src/views/student/homeWork/homeWork.vue | 1437 +++++++--
.../student/onlineCourses/onlineCourses.vue | 872 ++++--
.../student/orderTeacher/orderTeacher.vue | 865 +++---
.../student/orderTeacher/teacherDetail.vue | 858 ++++--
.../studentHomePage/studentHomePage.vue | 910 ++++--
.../CourseDetailsPage/CourseDetailsPage.vue | 2689 ++++++++++++++++-
.../OnlineCoursesPage/OnlineCoursesPage.vue | 1024 ++++---
.../teachingDockingPage.vue | 1010 ++++++-
.../UploadCoursesPage/UploadCoursesPage.vue | 837 +++--
.../teacherHomePage/teacherHomePage.vue | 775 ++++-
13 files changed, 11565 insertions(+), 2266 deletions(-)
diff --git a/src/views/administrator/auditCenter/auditCenter.vue b/src/views/administrator/auditCenter/auditCenter.vue
index bc348f8..1ffb78b 100644
--- a/src/views/administrator/auditCenter/auditCenter.vue
+++ b/src/views/administrator/auditCenter/auditCenter.vue
@@ -1,78 +1,604 @@
-
-
-
-
+
+
+
+
+ 重新加载
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.course.teacher.displayName }}
+ {{
+ row.course.teacher.school || '未填写机构'
+ }}
+
+
+
+ {{
+ formatTime(row.submittedAt)
+ }}
+
+
+
+
+ {{ statusMeta[row.course.status]?.label || row.course.status }}
+
+
+
+
+
+ 查看详情
+
+
+ 通过
+
+
+ 驳回
+
+
+
+
+
+
+
+
+
+
+