Răsfoiți Sursa

# feat:全局状态管理网站的元数据(标题,logo等等)

yang yi 1 lună în urmă
părinte
comite
94479b270d
6 a modificat fișierele cu 23 adăugiri și 7 ștergeri
  1. 1 1
      index.html
  2. 0 0
      public/logo.svg
  3. 1 1
      src/layout/AdminLayout.vue
  4. 4 5
      src/layout/UserLayout.vue
  5. 1 0
      src/store/index.ts
  6. 16 0
      src/store/meta.ts

+ 1 - 1
index.html

@@ -2,7 +2,7 @@
 <html lang="en">
   <head>
     <meta charset="UTF-8" />
-    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
+    <link rel="icon" type="image/svg+xml" href="/logo.svg" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>前端项目模板 Vite + Vue + TS</title>
   </head>

+ 0 - 0
src/assets/logo.svg → public/logo.svg


+ 1 - 1
src/layout/AdminLayout.vue

@@ -29,7 +29,7 @@ const handleClose = (key: string, keyPath: string[]) => {
   <el-container>
     <el-header class="header">
       <div class="header-left" @click="router.push('/')">
-        <img src="/src/assets/logo.svg" alt="logo" class="logo">
+        <img src="/logo.svg" alt="logo" class="logo">
         <h2 class="title">{{title}}</h2>
       </div>
       <h1>后台管理</h1>

+ 4 - 5
src/layout/UserLayout.vue

@@ -3,8 +3,8 @@
     <el-container>
       <el-header class="header">
         <div class="header-left" @click="router.push('/')">
-          <img src="/src/assets/logo.svg" alt="logo" class="logo">
-          <h2 class="title">{{title}}</h2>
+          <img :src="metaStore.logo" alt="logo" class="logo">
+          <h2 class="title">{{metaStore.title}}</h2>
         </div>
         <el-menu
             :default-active="activeIndex"
@@ -52,13 +52,12 @@
 
 <script setup lang="ts">
 import {computed, ref} from 'vue'
-import {useLoginUserStore} from "../store";
+import {useLoginUserStore, useMetaStore} from "../store";
 import router, {userRoutes} from "../router";
 import {
   Tools
 } from '@element-plus/icons-vue'
-
-const title = ref("标题")
+const metaStore = useMetaStore()
 const loginUserStore = useLoginUserStore()
 const login = computed(() => loginUserStore.loginUser.isLogin)
 //todo:模拟登陆

+ 1 - 0
src/store/index.ts

@@ -1 +1,2 @@
+export  {useMetaStore} from "./meta.ts";
 export  {useLoginUserStore} from "./user.ts";

+ 16 - 0
src/store/meta.ts

@@ -0,0 +1,16 @@
+import {defineStore} from "pinia";
+import {ref} from "vue";
+// 网站配置元数据
+export const useMetaStore = defineStore("meta",()=>{
+    //网站标题
+    const title = ref('标题');
+    //网站logo
+    const logo = ref('/logo.svg');
+    //后端地址
+    const baseUrl = ref('http://localhost:8080/');
+    return{
+        title,
+        logo,
+        baseUrl,
+    }
+},{persist: true,})