|
@@ -1,57 +1,53 @@
|
|
<template>
|
|
<template>
|
|
<t-layout class="app-layout">
|
|
<t-layout class="app-layout">
|
|
- <t-aside width="314px" class="app-layout-side">
|
|
|
|
- <t-layout class="app-layout-side-body" direction="horizontal">
|
|
|
|
- <t-aside class="app-menu" width="82px">
|
|
|
|
- <div class="app-menu-list">
|
|
|
|
- <div class="app-menu-logo">
|
|
|
|
- <img src="@/assets/imgs/menu-logo.png" alt="logo" />
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- v-for="item in userStore.headerMenus"
|
|
|
|
- :key="item.name"
|
|
|
|
- :class="[
|
|
|
|
- 'app-menu-item',
|
|
|
|
- { 'is-actice': userStore.curPageModule === item.name },
|
|
|
|
- ]"
|
|
|
|
- @click="moduleChange(item.name)"
|
|
|
|
- >
|
|
|
|
- <svg-icon
|
|
|
|
- prefix="icon-icon-fill"
|
|
|
|
- :name="item.meta.icon"
|
|
|
|
- :color="
|
|
|
|
- userStore.curPageModule === item.name ? '#165DFF' : undefined
|
|
|
|
- "
|
|
|
|
- ></svg-icon>
|
|
|
|
- <p>{{ item.meta.title }}</p>
|
|
|
|
|
|
+ <t-aside class="app-menu" width="82px">
|
|
|
|
+ <div class="app-menu-list">
|
|
|
|
+ <div class="app-menu-logo">
|
|
|
|
+ <img src="@/assets/imgs/menu-logo.png" alt="logo" />
|
|
|
|
+ </div>
|
|
|
|
+ <div
|
|
|
|
+ v-for="item in userStore.headerMenus"
|
|
|
|
+ :key="item.name"
|
|
|
|
+ :class="[
|
|
|
|
+ 'app-menu-item',
|
|
|
|
+ { 'is-actice': userStore.curPageModule === item.name },
|
|
|
|
+ ]"
|
|
|
|
+ @click="moduleChange(item.name)"
|
|
|
|
+ >
|
|
|
|
+ <svg-icon
|
|
|
|
+ prefix="icon-icon-fill"
|
|
|
|
+ :name="item.meta.icon"
|
|
|
|
+ :color="
|
|
|
|
+ userStore.curPageModule === item.name ? '#165DFF' : undefined
|
|
|
|
+ "
|
|
|
|
+ ></svg-icon>
|
|
|
|
+ <p>{{ item.meta.title }}</p>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="app-menu-footer"></div>
|
|
|
|
+ </t-aside>
|
|
|
|
+ <t-aside class="app-submenu" width="232px">
|
|
|
|
+ <left-menu class="app-submenu-body"></left-menu>
|
|
|
|
+ <div class="app-submenu-footer">
|
|
|
|
+ <t-dropdown
|
|
|
|
+ trigger="hover"
|
|
|
|
+ :options="userOptions"
|
|
|
|
+ @click="clickHandler"
|
|
|
|
+ >
|
|
|
|
+ <div class="app-submenu-user">
|
|
|
|
+ <div class="app-submenu-user-content">
|
|
|
|
+ <svg-icon name="user-circle"></svg-icon>
|
|
|
|
+ <span class="real-name">{{ userStore.user?.realName }}</span>
|
|
|
|
+ <span v-if="userStore.user?.mobileNumber" class="real-name">{{
|
|
|
|
+ userStore.user?.mobileNumber
|
|
|
|
+ }}</span>
|
|
</div>
|
|
</div>
|
|
|
|
+ <ChevronDownIcon size="16px" />
|
|
</div>
|
|
</div>
|
|
- <div class="app-menu-footer"></div>
|
|
|
|
- </t-aside>
|
|
|
|
- <t-content class="app-submenu">
|
|
|
|
- <left-menu class="app-submenu-body"></left-menu>
|
|
|
|
- <div class="app-submenu-footer">
|
|
|
|
- <t-dropdown
|
|
|
|
- trigger="hover"
|
|
|
|
- :options="userOptions"
|
|
|
|
- @click="clickHandler"
|
|
|
|
- >
|
|
|
|
- <div class="app-submenu-user">
|
|
|
|
- <div class="app-submenu-user-content">
|
|
|
|
- <svg-icon name="user-circle"></svg-icon>
|
|
|
|
- <span class="real-name">{{ userStore.user?.realName }}</span>
|
|
|
|
- <span v-if="userStore.user?.mobileNumber" class="real-name">{{
|
|
|
|
- userStore.user?.mobileNumber
|
|
|
|
- }}</span>
|
|
|
|
- </div>
|
|
|
|
- <ChevronDownIcon size="16px" />
|
|
|
|
- </div>
|
|
|
|
- </t-dropdown>
|
|
|
|
- </div>
|
|
|
|
- </t-content>
|
|
|
|
- </t-layout>
|
|
|
|
|
|
+ </t-dropdown>
|
|
|
|
+ </div>
|
|
</t-aside>
|
|
</t-aside>
|
|
- <t-content class="layout-content overflow-au to">
|
|
|
|
|
|
+ <t-content class="layout-content">
|
|
<router-view v-slot="{ Component }">
|
|
<router-view v-slot="{ Component }">
|
|
<transition name="fade-slide" mode="out-in" appear>
|
|
<transition name="fade-slide" mode="out-in" appear>
|
|
<component :is="Component" />
|
|
<component :is="Component" />
|
|
@@ -102,19 +98,14 @@ const clickHandler = (data) => {
|
|
background-color: #f2f3f5;
|
|
background-color: #f2f3f5;
|
|
height: 100%;
|
|
height: 100%;
|
|
|
|
|
|
- &-side {
|
|
|
|
- height: 100%;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- &-side-body {
|
|
|
|
- height: 100%;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
.layout-content {
|
|
.layout-content {
|
|
flex: 1;
|
|
flex: 1;
|
|
|
|
+ overflow: auto;
|
|
|
|
+ border-left: 1px solid #e5e5e5;
|
|
}
|
|
}
|
|
.app-menu {
|
|
.app-menu {
|
|
background-color: #f2f3f5;
|
|
background-color: #f2f3f5;
|
|
|
|
+ height: 100%;
|
|
|
|
|
|
&-list {
|
|
&-list {
|
|
padding: 16px 8px 40px;
|
|
padding: 16px 8px 40px;
|
|
@@ -168,9 +159,8 @@ const clickHandler = (data) => {
|
|
}
|
|
}
|
|
.app-submenu {
|
|
.app-submenu {
|
|
background-color: #fff;
|
|
background-color: #fff;
|
|
- padding-bottom: 78px;
|
|
|
|
|
|
+ padding-bottom: 68px;
|
|
position: relative;
|
|
position: relative;
|
|
- border-right: 1px solid #e5e5e5;
|
|
|
|
color: #262626;
|
|
color: #262626;
|
|
|
|
|
|
&-footer {
|
|
&-footer {
|