From 33f7c189aee851636f57cd0de88812332944f185 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期五, 22 十一月 2024 19:19:25 +0800
Subject: [PATCH] 整体样式+首页

---
 src/layout/index.vue |  149 ++++++++++++++++++++++++++++---------------------
 1 files changed, 86 insertions(+), 63 deletions(-)

diff --git a/src/layout/index.vue b/src/layout/index.vue
index dba4393..3d5c4ef 100644
--- a/src/layout/index.vue
+++ b/src/layout/index.vue
@@ -1,18 +1,36 @@
 <template>
-  <div :class="classObj" class="app-wrapper" :style="{'--current-color': theme}">
-    <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"/>
-    <sidebar v-if="!sidebar.hide" class="sidebar-container"/>
-    <div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container">
-      <div :class="{'fixed-header':fixedHeader}">
-        <navbar/>
-        <tags-view v-if="needTagsView"/>
-      </div>
-      <app-main/>
-      <right-panel>
-        <settings/>
-      </right-panel>
+    <div
+        :class="classObj"
+        class="app-wrapper"
+        :style="{ '--current-color': theme }"
+    >
+        <div
+            v-if="device === 'mobile' && sidebar.opened"
+            class="drawer-bg"
+            @click="handleClickOutside"
+        />
+        <navbar ref="navbarRef" @set-layout="setLayout" />
+
+        <div
+            :class="{ hasTagsView: needTagsView, sidebarHide: sidebar.hide }"
+            class="main-container"
+        >
+            <!-- <el-scrollbar>
+        <div :class="{ 'fixed-header': fixedHeader }">
+          <navbar ref="navbarRef" @setLayout="setLayout" />
+          <tags-view v-if="needTagsView" />
+        </div>
+        <app-main />
+        <settings ref="settingRef" />
+      </el-scrollbar> -->
+            <side-bar v-if="!sidebar.hide" class="sidebar-container" />
+            <div :class="{ 'fixed-header': fixedHeader }">
+                <tags-view v-if="needTagsView" />
+            </div>
+            <app-main />
+            <settings ref="settingRef" />
+        </div>
     </div>
-  </div>
 </template>
 
 <script>
@@ -21,64 +39,69 @@
 import ResizeMixin from './mixin/ResizeHandler'
 import { mapState } from 'vuex'
 import variables from '@/assets/styles/variables.scss'
+import SideBar from './components/Sidebar/index.vue';
 
 export default {
-  name: 'Layout',
-  components: {
-    AppMain,
-    Navbar,
-    RightPanel,
-    Settings,
-    Sidebar,
-    TagsView
-  },
-  mixins: [ResizeMixin],
-  computed: {
-    ...mapState({
-      theme: state => state.settings.theme,
-      sideTheme: state => state.settings.sideTheme,
-      sidebar: state => state.app.sidebar,
-      device: state => state.app.device,
-      needTagsView: state => state.settings.tagsView,
-      fixedHeader: state => state.settings.fixedHeader
-    }),
-    classObj() {
-      return {
-        hideSidebar: !this.sidebar.opened,
-        openSidebar: this.sidebar.opened,
-        withoutAnimation: this.sidebar.withoutAnimation,
-        mobile: this.device === 'mobile'
-      }
+    name: 'Layout',
+    components: {
+        AppMain,
+        Navbar,
+        RightPanel,
+        Settings,
+        Sidebar,
+        TagsView,
+        SideBar
     },
-    variables() {
-      return variables;
+    mixins: [ResizeMixin],
+    computed: {
+        ...mapState({
+            theme: state => state.settings.theme,
+            sideTheme: state => state.settings.sideTheme,
+            sidebar: state => state.app.sidebar,
+            device: state => state.app.device,
+            needTagsView: state => state.settings.tagsView,
+            fixedHeader: state => state.settings.fixedHeader
+        }),
+        classObj() {
+            return {
+                hideSidebar: !this.sidebar.opened,
+                openSidebar: this.sidebar.opened,
+                withoutAnimation: this.sidebar.withoutAnimation,
+                mobile: this.device === 'mobile'
+            }
+        },
+        variables() {
+            return variables;
+        }
+    },
+    methods: {
+        setLayout() {
+            this.settingRef.value?.openSetting();
+        },
+        handleClickOutside() {
+            this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
+        }
     }
-  },
-  methods: {
-    handleClickOutside() {
-      this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
-    }
-  }
 }
 </script>
 
 <style lang="scss" scoped>
-  @import "~@/assets/styles/mixin.scss";
-  @import "~@/assets/styles/variables.scss";
+@import '~@/assets/styles/mixin.scss';
+@import '~@/assets/styles/variables.scss';
 
-  .app-wrapper {
+.app-wrapper {
     @include clearfix;
     position: relative;
     height: 100%;
     width: 100%;
 
     &.mobile.openSidebar {
-      position: fixed;
-      top: 0;
+        position: fixed;
+        top: 0;
     }
-  }
+}
 
-  .drawer-bg {
+.drawer-bg {
     background: #000;
     opacity: 0.3;
     width: 100%;
@@ -86,26 +109,26 @@
     height: 100%;
     position: absolute;
     z-index: 999;
-  }
+}
 
-  .fixed-header {
+.fixed-header {
     position: fixed;
     top: 0;
     right: 0;
     z-index: 9;
     width: calc(100% - #{$base-sidebar-width});
     transition: width 0.28s;
-  }
+}
 
-  .hideSidebar .fixed-header {
+.hideSidebar .fixed-header {
     width: calc(100% - 54px);
-  }
+}
 
-  .sidebarHide .fixed-header {
+.sidebarHide .fixed-header {
     width: 100%;
-  }
+}
 
-  .mobile .fixed-header {
+.mobile .fixed-header {
     width: 100%;
-  }
+}
 </style>

--
Gitblit v1.8.0