修改左侧菜单栏的收缩动画

master
liuyx 3 years ago
parent 790163fbc0
commit 94a6c64d79

5391
admin/package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -10,9 +10,11 @@
}, },
"dependencies": { "dependencies": {
"@element-plus/icons-vue": "^2.0.10", "@element-plus/icons-vue": "^2.0.10",
"@kangc/v-md-editor": "^2.3.15",
"axios": "^1.1.3", "axios": "^1.1.3",
"element-plus": "^2.2.19", "element-plus": "^2.2.19",
"pinia": "^2.0.23", "pinia": "^2.0.23",
"prismjs": "^1.29.0",
"screenfull": "^6.0.2", "screenfull": "^6.0.2",
"vue": "^3.2.41", "vue": "^3.2.41",
"vue-router": "^4.1.6" "vue-router": "^4.1.6"

@ -1,9 +1,13 @@
.el-input__wrapper { .el-input__wrapper {
background-color: #34495e !important; // background-color: #34495e !important;
padding: 5px 16px; padding: 5px 16px;
box-shadow: none; box-shadow: 1 0 1px #c0c4cc;
.el-input__inner { .el-input__inner {
color: #eee; color: #000;
padding-left: 5px; padding-left: 5px;
} }
} }
.el-header {
--el-header-padding: none;
}

@ -8,5 +8,5 @@
#app { #app {
height: 100vh; height: 100vh;
font-family: 'Times New Roman', '黑体'; // font-family: 'Times New Roman', '仿宋';
} }

@ -2,7 +2,7 @@
<div class="header-container"> <div class="header-container">
<div class="navbar"> <div class="navbar">
<Hamburger /> <Hamburger />
<div class="navbar-right"> <div class="right-navbar">
<Screenfull /> <Screenfull />
<Avatar class="right-item" /> <Avatar class="right-item" />
</div> </div>
@ -20,34 +20,21 @@ import Screenfull from './components/Screenfull.vue'
<style lang="scss" scoped> <style lang="scss" scoped>
.header-container { .header-container {
padding: 0 10px; padding: 0 10px;
width: 100%;
height: 100%; height: 100%;
box-shadow: 0 2px 3px #888888; box-shadow: 0 2px 3px #888888;
height: 60px;
.navbar { .navbar {
height: 50px;
display: flex; display: flex;
align-items: center; align-items: center;
box-sizing: border-box; justify-content: space-between;
position: relative; .right-navbar {
.navbar-right {
flex: 1;
display: flex; display: flex;
justify-content: center;
align-items: center; align-items: center;
justify-content: flex-end; .right-item {
overflow: hidden; margin-left: 10px;
margin-right: 15px;
:deep(.right-item) {
display: inline-block;
margin-left: 18px;
font-size: 22px;
color: #5a5e66;
box-sizing: border-box;
cursor: pointer;
} }
} }
} }
.tabs-view-container {
height: 35px;
}
} }
</style> </style>

@ -1,9 +1,9 @@
<template> <template>
<el-container class="app-wrapper"> <el-container>
<el-aside width="210px"> <el-aside width="auto">
<Menu /> <Menu />
</el-aside> </el-aside>
<el-container class="main-container" :class="{ hidderContainer: store.collapse }"> <el-container :class="'main-container ' + isHide">
<el-header><Header /></el-header> <el-header><Header /></el-header>
<el-main> <el-main>
<transition name="fade" mode="out-in"> <transition name="fade" mode="out-in">
@ -18,8 +18,13 @@
import Menu from './menu/Menu.vue' import Menu from './menu/Menu.vue'
import Header from './header/index.vue' import Header from './header/index.vue'
import { useStore } from '../store' import { useStore } from '../store'
import { computed } from 'vue'
const store = useStore() const store = useStore()
const isHide = computed(() => {
return store.collapse ? 'hide-sideBar' : ''
})
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -27,24 +32,13 @@ const store = useStore()
height: 100%; height: 100%;
} }
.main-container { .main-container {
width: calc(100% - 210px); transition: margin-left 0.45s;
position: fixed; margin-left: 210px;
top: 0; min-height: 100vh;
right: 0;
z-index: 9;
transition: all 0.43s;
&.hidderContainer {
// storecollapsetruemain-container
width: calc(100% - 65px);
}
} }
// element-ui
.el-menu { .hide-sideBar {
height: 100%; margin-left: 64px;
}
.el-header {
height: 85px;
padding: 0;
} }
// //

@ -7,6 +7,7 @@
unique-opened="true" unique-opened="true"
:collapse="store.collapse" :collapse="store.collapse"
router="true" router="true"
class="side-nav-bar"
> >
<!-- 首页栏 --> <!-- 首页栏 -->
<el-menu-item index="/"> <el-menu-item index="/">
@ -51,4 +52,16 @@ import { useStore } from '../../store'
const store = useStore() const store = useStore()
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped>
.side-nav-bar:not(.el-menu--collapse) {
width: 210px;
}
.side-nav-bar {
position: fixed;
top: 0;
left: 0;
bottom: 0;
overflow-x: hidden;
overflow-y: auto;
}
</style>

@ -8,11 +8,23 @@ import router from './router'
import { createPinia } from 'pinia' import { createPinia } from 'pinia'
import * as ElementPlusIconsVue from '@element-plus/icons-vue' import * as ElementPlusIconsVue from '@element-plus/icons-vue'
// 引入md编辑器
import VueMarkdownEditor from '@kangc/v-md-editor'
import '@kangc/v-md-editor/lib/style/base-editor.css'
import vuepressTheme from '@kangc/v-md-editor/lib/theme/vuepress.js'
import '@kangc/v-md-editor/lib/theme/style/vuepress.css'
import Prism from 'prismjs'
const app = createApp(App) const app = createApp(App)
const pinia = createPinia() const pinia = createPinia()
for (const [key, component] of Object.entries(ElementPlusIconsVue)) { for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component) app.component(key, component)
} }
app.use(pinia).use(router).use(ElementPlus).mount('#app') VueMarkdownEditor.use(vuepressTheme, {
Prism
})
app.use(pinia).use(router).use(ElementPlus).use(VueMarkdownEditor).mount('#app')

@ -1,7 +0,0 @@
<template>
<div></div>
</template>
<script setup></script>
<style lang="scss" scoped></style>

@ -1,7 +0,0 @@
<template>
<div></div>
</template>
<script setup></script>
<style lang="scss" scoped></style>
Loading…
Cancel
Save