|
@@ -1,6 +1,9 @@
|
|
|
<template>
|
|
<template>
|
|
|
<el-container class="app-wrapper">
|
|
<el-container class="app-wrapper">
|
|
|
- <el-aside :width="sidebarOpened ? '210px' : '64px'" class="sidebar-container">
|
|
|
|
|
|
|
+ <el-aside
|
|
|
|
|
+ :width="sidebarOpened ? '210px' : '64px'"
|
|
|
|
|
+ class="sidebar-container"
|
|
|
|
|
+ >
|
|
|
<div class="logo">
|
|
<div class="logo">
|
|
|
<img src="@/assets/logo.svg" alt="logo" />
|
|
<img src="@/assets/logo.svg" alt="logo" />
|
|
|
<h1 v-show="sidebarOpened">摄像头管理</h1>
|
|
<h1 v-show="sidebarOpened">摄像头管理</h1>
|
|
@@ -65,8 +68,11 @@
|
|
|
<div class="header-right">
|
|
<div class="header-right">
|
|
|
<el-dropdown @command="handleCommand">
|
|
<el-dropdown @command="handleCommand">
|
|
|
<span class="user-info">
|
|
<span class="user-info">
|
|
|
- <el-avatar :size="32" :src="userInfo?.avatar" />
|
|
|
|
|
- <span class="username">{{ userInfo?.nickName || '用户' }}</span>
|
|
|
|
|
|
|
+ <el-avatar
|
|
|
|
|
+ :size="32"
|
|
|
|
|
+ :src="'https://cube.elemecdn.com/0/88/03b0d39583f4b3a790e9d12d41f23e23jps.jpg'"
|
|
|
|
|
+ />
|
|
|
|
|
+ <span class="username">{{ userInfo?.username }}</span>
|
|
|
<el-icon><ArrowDown /></el-icon>
|
|
<el-icon><ArrowDown /></el-icon>
|
|
|
</span>
|
|
</span>
|
|
|
<template #dropdown>
|
|
<template #dropdown>
|
|
@@ -90,43 +96,55 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import { computed, onMounted } from 'vue'
|
|
|
|
|
-import { useRoute, useRouter } from 'vue-router'
|
|
|
|
|
-import { VideoCamera, Fold, Expand, ArrowDown, Monitor, Film, VideoCameraFilled, Setting, UserFilled } from '@element-plus/icons-vue'
|
|
|
|
|
-import { useAppStore } from '@/store/app'
|
|
|
|
|
-import { useUserStore } from '@/store/user'
|
|
|
|
|
-
|
|
|
|
|
-const route = useRoute()
|
|
|
|
|
-const router = useRouter()
|
|
|
|
|
-const appStore = useAppStore()
|
|
|
|
|
-const userStore = useUserStore()
|
|
|
|
|
-
|
|
|
|
|
-const sidebarOpened = computed(() => appStore.sidebarOpened)
|
|
|
|
|
-const userInfo = computed(() => userStore.userInfo)
|
|
|
|
|
|
|
+import { computed, onMounted } from "vue";
|
|
|
|
|
+import { useRoute, useRouter } from "vue-router";
|
|
|
|
|
+import {
|
|
|
|
|
+ VideoCamera,
|
|
|
|
|
+ Fold,
|
|
|
|
|
+ Expand,
|
|
|
|
|
+ ArrowDown,
|
|
|
|
|
+ Monitor,
|
|
|
|
|
+ Film,
|
|
|
|
|
+ VideoCameraFilled,
|
|
|
|
|
+ Setting,
|
|
|
|
|
+ UserFilled,
|
|
|
|
|
+} from "@element-plus/icons-vue";
|
|
|
|
|
+import { useAppStore } from "@/store/app";
|
|
|
|
|
+import { useUserStore } from "@/store/user";
|
|
|
|
|
+
|
|
|
|
|
+const route = useRoute();
|
|
|
|
|
+const router = useRouter();
|
|
|
|
|
+const appStore = useAppStore();
|
|
|
|
|
+const userStore = useUserStore();
|
|
|
|
|
+
|
|
|
|
|
+const sidebarOpened = computed(() => appStore.sidebarOpened);
|
|
|
|
|
+const userInfo = computed(() => userStore.userInfo);
|
|
|
|
|
|
|
|
const activeMenu = computed(() => {
|
|
const activeMenu = computed(() => {
|
|
|
- const { path } = route
|
|
|
|
|
- return path
|
|
|
|
|
-})
|
|
|
|
|
|
|
+ const { path } = route;
|
|
|
|
|
+ return path;
|
|
|
|
|
+});
|
|
|
|
|
|
|
|
const breadcrumbs = computed(() => {
|
|
const breadcrumbs = computed(() => {
|
|
|
- return route.matched.filter(item => item.meta && item.meta.title && !item.meta.hidden)
|
|
|
|
|
-})
|
|
|
|
|
|
|
+ return route.matched.filter(
|
|
|
|
|
+ (item) => item.meta && item.meta.title && !item.meta.hidden
|
|
|
|
|
+ );
|
|
|
|
|
+});
|
|
|
|
|
|
|
|
function toggleSidebar() {
|
|
function toggleSidebar() {
|
|
|
- appStore.toggleSidebar()
|
|
|
|
|
|
|
+ appStore.toggleSidebar();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
async function handleCommand(command: string) {
|
|
async function handleCommand(command: string) {
|
|
|
- if (command === 'logout') {
|
|
|
|
|
- await userStore.logoutAction()
|
|
|
|
|
- router.push('/login')
|
|
|
|
|
|
|
+ if (command === "logout") {
|
|
|
|
|
+ await userStore.logoutAction();
|
|
|
|
|
+ router.push("/login");
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
- userStore.getUserInfo()
|
|
|
|
|
-})
|
|
|
|
|
|
|
+ userStore.getUserInfo();
|
|
|
|
|
+});
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|