From 9cad6a832c786989be620573b09badccfe7e3b51 Mon Sep 17 00:00:00 2001
From: QYF-GitLab1 <1940665526@qq.com>
Date: 星期一, 25 八月 2025 15:11:37 +0800
Subject: [PATCH] 首页头部,样式调整

---
 src/views/personalCenter/index.vue |  154 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 154 insertions(+), 0 deletions(-)

diff --git a/src/views/personalCenter/index.vue b/src/views/personalCenter/index.vue
new file mode 100644
index 0000000..b20e53c
--- /dev/null
+++ b/src/views/personalCenter/index.vue
@@ -0,0 +1,154 @@
+<template>
+  <div class="contentBox">
+    <div class="breadcrumbBox">
+      <span>浣嶇疆锛�</span>
+      <el-breadcrumb :separator-icon="ArrowRight">
+        <el-breadcrumb-item>涓汉涓績</el-breadcrumb-item>
+        <el-breadcrumb-item>{{ label }}</el-breadcrumb-item>
+      </el-breadcrumb>
+    </div>
+    <el-divider style="margin: 5px 0;" />
+    <div class="personalPage clear">
+      <div class="leftList fl">
+        <ul class="menu">
+          <li
+            v-for="item in listMenu"
+            :key="item.key"
+            @click="goRouter(item)"
+            :class="`/${item.path}` === path ? 'activeItem hover' : 'menuItem hover'"
+          >
+            <span
+              :style="{
+                fill: `/${item.path}` === path ? '#fff' : '#000',
+              }"
+              v-html="item.icon"
+            >
+            </span>
+            <span>{{ item.label }}</span>
+          </li>
+        </ul>
+      </div>
+      <div class="rightContent">
+        <div>
+          <!-- 璁╀富浣撳仛瀛愯矾鐢辩殑鏄剧ず -->
+          <router-view />
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { ArrowRight } from '@element-plus/icons-vue'
+import { menu } from './config'
+import { useRouter, onBeforeRouteUpdate } from 'vue-router'
+import { ref, onMounted, inject } from 'vue'
+const router = useRouter()
+const routerVal = router.currentRoute.value
+const path = ref(routerVal.path)
+const label = ref('')
+const listMenu: any = ref([])
+const MG: any = inject('MG')
+const config: any = inject('config')
+onBeforeRouteUpdate(async (to, from) => {
+  path.value = to.fullPath
+})
+onMounted(() => {
+  menu.forEach((item) => {
+    if ('/' + item.path === path.value) {
+      label.value = item.label
+    }
+  })
+  const userCache: any = localStorage.getItem(config.userInfoKey)
+  const userInfo = JSON.parse(userCache)
+  if (!userInfo) {
+    router.push({
+      path: '/',
+    })
+    return false
+  }
+  if (userInfo.role == 'Teacher') {
+    const data: any = menu.filter((item) => item.path != 'myClass')
+    listMenu.value = data
+  } else {
+    const data: any = menu.filter((item) => item.path != 'myCourse')
+    listMenu.value = data
+  }
+})
+const goRouter = (item: any) => {
+  if (!localStorage.getItem(config.tokenKey) || localStorage.getItem(config.tokenKey) == null) {
+    router.push({
+      path: '/home',
+      query: {
+        showLogin: '1',
+      },
+    })
+  } else {
+    label.value = item.label
+    router.push({ path: item.path })
+  }
+}
+</script>
+<style lang="less" scoped>
+.homePage {
+  min-width: 1220px;
+  min-height: calc(100vh - 61.8%);
+  background-color: #fff;
+  padding-bottom: 100px;
+}
+.breadcrumbBox {
+  display: flex;
+  padding: 20px;
+}
+
+.personalPage {
+  padding: 20px 10px;
+  display: flex;
+
+  .leftList {
+    width: 275px;
+    border-radius: 10px 10px 10px 10px;
+    background: #e1ebe3;
+    height: max-content;
+    background-image: url('@/assets/images/personalCenter/Account_bg.png');
+    background-repeat: no-repeat;
+    background-position: center;
+    background-size: 100% 100%;
+    .menu {
+      li {
+        height: 50px;
+        padding: 10px 40px;
+        font-size: 16px;
+        display: flex;
+        align-items: center;
+        border-bottom: 1px solid #ffffff;
+
+        img {
+          width: 19px;
+          height: 24px;
+        }
+
+        span {
+          margin-left: 10px;
+        }
+      }
+
+      .activeItem {
+        background: linear-gradient(90deg, #019e58 0%, #144941 100%);
+        background-size: 100% 100%;
+        color: #fff;
+        svg {
+          fill: #fff;
+        }
+      }
+    }
+  }
+
+  .rightContent {
+    flex: 1;
+    overflow: auto;
+    margin-left: 15px;
+    background-color: #fff;
+  }
+}
+</style>

--
Gitblit v1.9.1