소스 검색

Merge branch 'lm' of http://git.yujin.shuziyunyao.com/yujin/digital-medicine-front into lm

lisy 5 달 전
부모
커밋
47313c8628
4개의 변경된 파일63개의 추가작업 그리고 56개의 파일을 삭제
  1. 3 1
      src/assets/styles/ruoyi.scss
  2. 2 0
      src/assets/styles/sidebar.scss
  3. 11 8
      src/layout/components/AppMain.vue
  4. 47 47
      src/layout/index.vue

+ 3 - 1
src/assets/styles/ruoyi.scss

@@ -351,11 +351,13 @@ $colors: (
 }
 
 .p-3 {
+  flex: 1;
   display: flex;
   flex-direction: column;
   box-sizing: border-box;
   padding: 16px;
-  height: calc(100vh - 88px);
+  overflow: hidden;
+  box-sizing: border-box;
 }
 
 .border-bottom {

+ 2 - 0
src/assets/styles/sidebar.scss

@@ -4,6 +4,8 @@
     transition: margin-left 0.28s;
     margin-left: $base-sidebar-width;
     position: relative;
+    display: flex;
+    flex-direction: column;
   }
 
   .sidebarHide {

+ 11 - 8
src/layout/components/AppMain.vue

@@ -1,10 +1,12 @@
 <template>
     <section class="app-main">
         <router-view v-slot="{ Component, route }">
-            <keep-alive :include="[]">
-                <component v-if="!route.meta.link" :is="Component" :key="route.fullPath" />
+            <keep-alive v-if="!route.meta.noCache" :include="[]">
+                <component :is="Component" v-if="!route.meta.link" :key="route.path" />
             </keep-alive>
+            <component :is="Component" v-if="!route.meta.link && route.meta.noCache" :key="route.path" />
         </router-view>
+        <iframe-toggle />
     </section>
 </template>
 
@@ -51,10 +53,11 @@ function addIframe() {
 <style lang="scss" scoped>
 .app-main {
     /* 50= navbar  50  */
-    min-height: calc(100vh - 54px);
     width: 100%;
-    position: relative;
+    flex: 1;
     overflow: hidden;
+    display: flex;
+    flex-direction: column;
     background-color: #f5f5f5;
 }
 
@@ -63,10 +66,10 @@ function addIframe() {
 }
 
 .hasTagsView {
-    .app-main {
-        /* 84 = navbar + tags-view = 50 + 34 */
-        min-height: calc(100vh - 84px);
-    }
+    // .app-main {
+    //     /* 84 = navbar + tags-view = 50 + 34 */
+    //     min-height: calc(100vh - 84px);
+    // }
 
     .fixed-header + .app-main {
         padding-top: 84px;

+ 47 - 47
src/layout/index.vue

@@ -37,51 +37,51 @@ const needTagsView = computed(() => settingsStore.tagsView);
 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') {
-        useAppStore().closeSideBar({ withoutAnimation: false });
-    }
-    if (width.value - 1 < WIDTH) {
-        useAppStore().toggleDevice('mobile');
-        useAppStore().closeSideBar({ withoutAnimation: true });
-    } else {
-        useAppStore().toggleDevice('desktop');
-    }
+  if (device.value === 'mobile') {
+    useAppStore().closeSideBar({ withoutAnimation: false });
+  }
+  if (width.value - 1 < WIDTH) {
+    useAppStore().toggleDevice('mobile');
+    useAppStore().closeSideBar({ withoutAnimation: true });
+  } else {
+    useAppStore().toggleDevice('desktop');
+  }
 });
 
 const navbarRef = ref<InstanceType<typeof Navbar>>();
 const settingRef = ref<InstanceType<typeof Settings>>();
 
 onMounted(() => {
-    nextTick(() => {
-        navbarRef.value?.initTenantList();
-    });
+  nextTick(() => {
+    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');
+  let protocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://';
+  initWebSocket(protocol + window.location.host + import.meta.env.VITE_APP_BASE_API + '/resource/websocket');
 });
 
 onMounted(() => {
-    // initSSE(import.meta.env.VITE_APP_BASE_API + '/resource/sse');
+  // initSSE(import.meta.env.VITE_APP_BASE_API + '/resource/sse');
 });
 
 const handleClickOutside = () => {
-    useAppStore().closeSideBar({ withoutAnimation: false });
+  useAppStore().closeSideBar({ withoutAnimation: false });
 };
 
 const setLayout = () => {
-    settingRef.value?.openSetting();
+  settingRef.value?.openSetting();
 };
 </script>
 
@@ -90,46 +90,46 @@ const setLayout = () => {
 @import '@/assets/styles/variables.module.scss';
 
 .app-wrapper {
-    @include clearfix;
-    position: relative;
-    height: 100%;
-    width: 100%;
-
-    &.mobile.openSidebar {
-        position: fixed;
-        top: 0;
-    }
+  @include clearfix;
+  position: relative;
+  height: 100%;
+  width: 100%;
+
+  &.mobile.openSidebar {
+    position: fixed;
+    top: 0;
+  }
 }
 
 .drawer-bg {
-    background: #000;
-    opacity: 0.3;
-    width: 100%;
-    top: 0;
-    height: 100%;
-    position: absolute;
-    z-index: 999;
+  background: #000;
+  opacity: 0.3;
+  width: 100%;
+  top: 0;
+  height: 100%;
+  position: absolute;
+  z-index: 999;
 }
 
 .fixed-header {
-    position: fixed;
-    top: 0;
-    right: 0;
-    z-index: 9;
-    width: calc(100% - #{$base-sidebar-width});
-    transition: width 0.28s;
-    background: $fixed-header-bg;
+  position: fixed;
+  top: 0;
+  right: 0;
+  z-index: 9;
+  width: calc(100% - #{$base-sidebar-width});
+  transition: width 0.28s;
+  background: $fixed-header-bg;
 }
 
 .hideSidebar .fixed-header {
-    width: calc(100% - 54px);
+  width: calc(100% - 54px);
 }
 
 .sidebarHide .fixed-header {
-    width: 100%;
+  width: 100%;
 }
 
 .mobile .fixed-header {
-    width: 100%;
+  width: 100%;
 }
 </style>