From 8790f99a94733c7c3836706c75a77f9bbb15c2ca Mon Sep 17 00:00:00 2001 From: hejianhao <15708179461@qq.com> Date: 星期一, 31 三月 2025 17:09:30 +0800 Subject: [PATCH] layout布局修改,标签卡,列表组件封装 --- src/layouts/index.vue | 81 +++++++++++++++++++++++++++++----------- 1 files changed, 59 insertions(+), 22 deletions(-) diff --git a/src/layouts/index.vue b/src/layouts/index.vue index 2320b60..eb7f6b2 100644 --- a/src/layouts/index.vue +++ b/src/layouts/index.vue @@ -3,23 +3,24 @@ <!-- 判断是否在空白页打开 --> <template v-if="!isOneself"> <div class="app-wrapper"> - <div class="left"> + <div class="left" :style="{ width: isFold ? '100px' : '258px' }"> <!-- 系统标题 --> <div class="system-title"> <div class="image"> <img src="../assets/logo.jpg" alt="" srcset="" /> </div> - <div class="title">职评网管理系统</div> + <div v-if="!isFold" class="title">实验室流程</div> </div> <!-- 左侧菜单 --> <div class="sidebar-container"> <ElMenu /> </div> + <div v-if="!isFold" class="sidebar-left-bg"></div> + <div v-if="!isFold" class="sidebar-bottom-bg"></div> </div> <!-- 右侧展示内容 --> <div class="main-container"> <HeaderNav class="header-main" /> - <div v-if="nowRouteName" class="router_name">{{ nowRouteName }}</div> <AppContent class="app-main" /> </div> </div> @@ -35,6 +36,7 @@ import ElMenu from './components/ElMenu/index.vue' import HeaderNav from './components/HeaderNav.vue' import AppContent from './components/AppContent.vue' +import { mapState } from 'vuex' export default { data() { return { @@ -43,6 +45,9 @@ // 获取当前页面名称 nowRouteName: '', } + }, + computed: { + ...mapState(['isFold']) }, components: { ElMenu, @@ -77,66 +82,98 @@ height: 100%; width: 100%; display: flex; + background-image: url('../assets/public/layoutsBG.png'); + background-size: cover; + background-position: center; .left { - width: 200px; display: flex; flex-direction: column; + position: relative; + background-color: white; + transition: width 0.3s ease-in-out; // 系统标题 .system-title { display: flex; - justify-content: space-around; + flex-direction: column; align-items: center; background-color: white; - height: 50px; - padding: 0px 10px; + height: 240px; box-sizing: border-box; .image { - width: 40px; - height: 40px; + margin-top: 40px; + width: 100px; + height: 100px; img { width: 100%; height: 100%; + border-radius: 50%; } } .title { - font-weight: 700; + margin-top: 7px; + font-weight: bold; + line-height: 43px; + font-size: 25px; } } // 左侧菜单 .sidebar-container { + z-index: 2; + padding: 0 19px; overflow-y: auto; flex: 1; - background-color: white; box-shadow: 0px 3px 13px 0px rgba(94, 131, 245, 0.1); + + ::v-deep .el-menu { + border-right: unset !important; + } + } + + .sidebar-left-bg { + z-index: 1; + position: absolute; + top: 338px; + left: 0; + width: 183px; + height: 316px; + background: #FFFCE5; + opacity: 0.56; + filter: blur(76.141290103688px); + } + + .sidebar-bottom-bg { + z-index: 1; + position: absolute; + bottom: 0; + left: 0; + width: 129px; + height: 289px; + background: #66FFFF; + opacity: 0.4; + filter: blur(76.141290103688px); } } .main-container { flex: 1; + display: flex; + flex-direction: column; .header-main { - background-color: white; - height: 50px; - } - - .router_name { - padding-top: 8px; - padding-left: 23px; - font-size: 24px; - font-weight: bold; + height: 70px; } .app-main { - height: calc(100% - 120px); + flex: 1; overflow: auto; border-radius: 10px; - margin: 16px 23px; + padding: 10px 21px 0 21px; } } -- Gitblit v1.7.1