From e889348562bc1ad4293692d51c22064c0e9b9781 Mon Sep 17 00:00:00 2001
From: LiuHao <liuhaoai545@gmail.com>
Date: 星期一, 18 三月 2024 14:27:43 +0800
Subject: [PATCH] update 面板宽度百分比
---
src/layout/index.vue | 70 +++++++++++++++++++----------------
1 files changed, 38 insertions(+), 32 deletions(-)
diff --git a/src/layout/index.vue b/src/layout/index.vue
index 8239ed7..8fe5554 100644
--- a/src/layout/index.vue
+++ b/src/layout/index.vue
@@ -12,7 +12,7 @@
<settings ref="settingRef" />
</el-scrollbar> -->
<div :class="{ 'fixed-header': fixedHeader }">
- <navbar ref="navbarRef" @setLayout="setLayout" />
+ <navbar ref="navbarRef" @set-layout="setLayout" />
<tags-view v-if="needTagsView" />
</div>
<app-main />
@@ -22,12 +22,13 @@
</template>
<script setup lang="ts">
-import SideBar from './components/Sidebar/index.vue'
-import { AppMain, Navbar, Settings, TagsView } from './components'
-import useAppStore from '@/store/modules/app'
-import useSettingsStore from '@/store/modules/settings'
+import SideBar from './components/Sidebar/index.vue';
+import { AppMain, Navbar, Settings, TagsView } from './components';
+import useAppStore from '@/store/modules/app';
+import useSettingsStore from '@/store/modules/settings';
+import { initWebSocket } from '@/utils/websocket';
-const settingsStore = useSettingsStore()
+const settingsStore = useSettingsStore();
const theme = computed(() => settingsStore.theme);
const sidebar = computed(() => useAppStore().sidebar);
const device = computed(() => useAppStore().device);
@@ -35,48 +36,53 @@
const fixedHeader = computed(() => settingsStore.fixedHeader);
const classObj = computed(() => ({
- hideSidebar: !sidebar.value.opened,
- openSidebar: sidebar.value.opened,
- withoutAnimation: sidebar.value.withoutAnimation,
- mobile: device.value === 'mobile'
-}))
+ hideSidebar: !sidebar.value.opened,
+ openSidebar: sidebar.value.opened,
+ withoutAnimation: sidebar.value.withoutAnimation,
+ mobile: device.value === 'mobile'
+}));
const { width } = useWindowSize();
const WIDTH = 992; // refer to Bootstrap's responsive design
watchEffect(() => {
- if (device.value === 'mobile' && sidebar.value.opened) {
- useAppStore().closeSideBar({ withoutAnimation: false })
- }
- if (width.value - 1 < WIDTH) {
- useAppStore().toggleDevice('mobile')
- useAppStore().closeSideBar({ withoutAnimation: true })
- } else {
- useAppStore().toggleDevice('desktop')
- }
-})
+ if (device.value === 'mobile' && sidebar.value.opened) {
+ useAppStore().closeSideBar({ withoutAnimation: false });
+ }
+ if (width.value - 1 < WIDTH) {
+ useAppStore().toggleDevice('mobile');
+ useAppStore().closeSideBar({ withoutAnimation: true });
+ } else {
+ useAppStore().toggleDevice('desktop');
+ }
+});
-const navbarRef = ref(Navbar);
-const settingRef = ref(Settings);
+const navbarRef = ref<InstanceType<typeof Navbar>>();
+const settingRef = ref<InstanceType<typeof Settings>>();
onMounted(() => {
nextTick(() => {
- navbarRef.value.initTenantList();
- })
-})
+ navbarRef.value?.initTenantList();
+ });
+});
+
+onMounted(() => {
+ let protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://';
+ initWebSocket(protocol + window.location.host + import.meta.env.VITE_APP_BASE_API + '/resource/websocket');
+});
const handleClickOutside = () => {
- useAppStore().closeSideBar({ withoutAnimation: false })
-}
+ useAppStore().closeSideBar({ withoutAnimation: false });
+};
const setLayout = () => {
- settingRef.value.openSetting();
-}
+ settingRef.value?.openSetting();
+};
</script>
<style lang="scss" scoped>
- @import "@/assets/styles/mixin.scss";
- @import "@/assets/styles/variables.module.scss";
+@import '@/assets/styles/mixin.scss';
+@import '@/assets/styles/variables.module.scss';
.app-wrapper {
@include clearfix;
--
Gitblit v1.9.3