From 15792ad8baea4ab886dbfc58009847f26de45df8 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期五, 02 八月 2024 17:55:19 +0800
Subject: [PATCH] 1、利用viewport完成PC端页面响应式布局,其他端还未适配 2、基本完成语言大模型页面布局及部分功能 3、实现对于侧边栏图标在首页与其他页面时不同的展示风格 4、使用压缩后的背景图与首页gif(效果不好,跳转路由后仍会出现短暂背景图片未加载出情况) 5、修改项目浏览器页签图标

---
 src/components/page/GlobalLayout.vue |  543 +++++------------------------------------------------
 1 files changed, 59 insertions(+), 484 deletions(-)

diff --git a/src/components/page/GlobalLayout.vue b/src/components/page/GlobalLayout.vue
index 65e154a..53216c4 100644
--- a/src/components/page/GlobalLayout.vue
+++ b/src/components/page/GlobalLayout.vue
@@ -1,60 +1,47 @@
 <template>
-  <a-layout class="layout" :class="[device]">
+  <a-layout class="layout" :class="[device]"
+            :style="{backgroundImage:$route.meta.title==='棣栭〉'?`url(${require('../../assets/page/index/background.svg')}) !important`:`url(${require('../../assets/page/background.svg')})!important`}">
 
-    <template v-if="layoutMode === 'sidemenu'">
-      <a-drawer
-        v-if="device === 'mobile'"
-        :wrapClassName="'drawer-sider ' + navTheme"
-        placement="left"
-        @close="() => this.collapsed = false"
-        :closable="false"
-        :visible="collapsed"
-        width="200px"
-      >
-        <side-menu
-          mode="inline"
-          v-if="device === 'mobile'"
-          :menus="menus"
-          @menuSelect="menuSelect"
-          @updateMenuTitle="handleUpdateMenuTitle"
-          :theme="navTheme"
-          :collapsed="false"
-          :collapsible="true"></side-menu>
-      </a-drawer>
+    <!--<a-drawer-->
+    <!--v-if="device === 'mobile'"-->
+    <!--:wrapClassName="'drawer-sider ' + navTheme"-->
+    <!--placement="left"-->
+    <!--@close="() => this.collapsed = false"-->
+    <!--:closable="false"-->
+    <!--:visible="collapsed"-->
+    <!--width="200px"-->
+    <!--&gt;-->
+    <!--<side-menu-->
+    <!--mode="inline"-->
+    <!--v-if="device === 'mobile'"-->
+    <!--:menus="menus"-->
+    <!--@menuSelect="menuSelect"-->
+    <!--@updateMenuTitle="handleUpdateMenuTitle"-->
+    <!--:theme="navTheme"-->
+    <!--:collapsed="false"-->
+    <!--:collapsible="true"></side-menu>-->
+    <!--</a-drawer>-->
 
-      <side-menu
-        v-show="device === 'desktop'"
-        mode="inline"
-        :menus="menus"
-        @menuSelect="myMenuSelect"
-        @updateMenuTitle="handleUpdateMenuTitle"
-        :theme="navTheme"
-        :collapsed="collapsed"
-        :collapsible="true"></side-menu>
-    </template>
+    <side-menu
+      mode="inline"
+      :menus="menus"
+      @menuSelect="myMenuSelect"
+      @updateMenuTitle="handleUpdateMenuTitle"
+      :collapsed="true"
+      :collapsible="true"></side-menu>
 
 
     <a-layout
-      :class="[layoutMode, `content-width-${contentWidth}`]"
-      :style="{ paddingLeft: fixSiderbar && isDesktop() ? `${sidebarOpened ? 200 : 80}px` : '0' }">
-      <!-- layout header -->
-      <global-header
-        :mode="layoutMode"
-        :menus="menus"
-        :theme="navTheme"
-        :collapsed="collapsed"
-        :device="device"
-        @toggle="toggle"
-        @updateMenuTitle="handleUpdateMenuTitle"
-      />
+      :class="[layoutMode, `content-width-${contentWidth}`]">
+      <!--<global-header></global-header>-->
 
       <!-- layout content -->
-      <a-layout-content :style="{ height: '100%', paddingTop: fixedHeader ? '59px' : '0' }">
+      <a-layout-content :style="{ height: '100%' }">
         <slot></slot>
       </a-layout-content>
 
       <!-- layout footer -->
-      <a-layout-footer style="padding: 0px">
+      <a-layout-footer style="padding: 0px;background-color: transparent">
         <global-footer/>
       </a-layout-footer>
     </a-layout>
@@ -82,7 +69,7 @@
     components: {
       SideMenu,
       GlobalHeader,
-      GlobalFooter,
+      GlobalFooter
       // update-start---- author:os_chengtgen -- date:20190830 --  for:issues/463 -缂栬瘧涓婚棰滆壊宸茬敓鏁堬紝浣嗚繕涓�鐩磋浆鍦堬紝鏄剧ず涓婚 姝e湪缂栬瘧 ------
       // // SettingDrawer
       // 娉ㄩ噴杩欎釜鍥犱负鍦ㄤ釜浜鸿缃ā鍧楀凡缁忓姞杞戒簡SettingDrawer椤甸潰
@@ -93,7 +80,7 @@
     data() {
       return {
         collapsed: false,
-        activeMenu:{},
+        activeMenu: {},
         menus: []
       }
     },
@@ -116,7 +103,7 @@
       this.menus = this.permissionMenuList
 
       //--update-begin----author:liusq---date:20210223------for:鍏充簬娴嬭竟鑿滃崟閬尅鍐呭闂璇︾粏璇存槑 #2255
-      this.collapsed=!this.sidebarOpened;
+      this.collapsed = !this.sidebarOpened
       //--update-begin----author:liusq---date:20210223------for:鍏充簬娴嬭竟鑿滃崟閬尅鍐呭闂璇︾粏璇存槑 #2255
 
       // 鏍规嵁鍚庡彴閰嶇疆鑿滃崟锛岄噸鏂版帓搴忓姞杞借矾鐢变俊鎭�
@@ -139,17 +126,17 @@
         }
       },
       //update-begin-author:taoyan date:20190430 for:鍔ㄦ�佽矾鐢眛itle鏄剧ず閰嶇疆鐨勮彍鍗晅itle鑰屼笉鏄叾瀵瑰簲璺敱鐨則itle
-      myMenuSelect(value){
+      myMenuSelect(value) {
         //姝ゅ瑙﹀彂鍔ㄦ�佽矾鐢辫鐐瑰嚮浜嬩欢
-        this.findMenuBykey(this.menus,value.key)
-        this.$emit("dynamicRouterShow",value.key,this.activeMenu.meta.title)
+        this.findMenuBykey(this.menus, value.key)
+        this.$emit('dynamicRouterShow', value.key, this.activeMenu.meta.title)
       },
-      findMenuBykey(menus,key){
-        for(let i of menus){
-          if(i.path==key){
-            this.activeMenu = {...i}
-          }else if(i.children && i.children.length>0){
-            this.findMenuBykey(i.children,key)
+      findMenuBykey(menus, key) {
+        for (let i of menus) {
+          if (i.path == key) {
+            this.activeMenu = { ...i }
+          } else if (i.children && i.children.length > 0) {
+            this.findMenuBykey(i.children, key)
           }
         }
       },
@@ -160,7 +147,7 @@
         this.findMenuBykey(this.menus, value.path)
         this.activeMenu.meta.title = value.meta.title
         this.$emit('dynamicRouterShow', value.path, this.activeMenu.meta.title)
-      },
+      }
       // update-end-author:sunjianlei date:20210409 for: 淇鍔ㄦ�佸姛鑳芥祴璇曡彍鍗曘�佸甫鍙傛暟鑿滃崟鏍囬閿欒銆佸睍寮�閿欒鐨勯棶棰�
 
     }
@@ -170,10 +157,6 @@
 
 <style lang="less">
   body {
-    // 鎵撳紑婊氬姩鏉″浐瀹氭樉绀�
-    // 娉ㄩ噴鍘熷洜锛歩ssues/I5VK11
-    //overflow-y: scroll;
-
     &.colorWeak {
       filter: invert(80%);
     }
@@ -182,348 +165,38 @@
   .layout {
     min-height: 100vh !important;
     overflow-x: hidden;
+    background-size: cover !important;
+    background-repeat: no-repeat !important;
 
     &.mobile {
-
       .ant-layout-content {
-
         .content {
           margin: 24px 0 0;
         }
       }
 
-      /**
-       * ant-table-wrapper
-       * 瑕嗙洊鐨勮〃鏍兼墜鏈烘ā寮忔牱寮忥紝濡傛灉鎯充慨鏀瑰湪鎵嬫満涓婅〃鏍兼渶浣庡搴︼紝鍙互鍦ㄨ繖閲屾敼鍔�
-       */
-      .ant-table-wrapper {
-        .ant-table-content {
-          overflow-y: auto;
-        }
-        .ant-table-body {
-          // update-begin---author:sunjianlei Date:20220104 for锛� 銆怞TC-480銆戠Щ鍔ㄧ涓嶆敮鎸佸乏鍙虫嫋鍔紝闇�瑕佹敞閲婃帀姝ゆ浠g爜 ------------
-          //min-width: 800px;
-          // update-end---author:sunjianlei Date:20220104 for锛� 銆怞TC-480銆戠Щ鍔ㄧ涓嶆敮鎸佸乏鍙虫嫋鍔紝闇�瑕佹敞閲婃帀姝ゆ浠g爜 ------------
-        }
-      }
-      .sidemenu {
-        .ant-header-fixedHeader {
-
-          &.ant-header-side-opened, &.ant-header-side-closed {
-            width: 100%
-          }
-        }
+      &.ant-layout-has-sider {
+        flex-direction: row;
       }
 
-      .topmenu {
-        /* 蹇呴』涓� topmenu  鎵嶈兘鍚敤娴佸紡甯冨眬 */
-        &.content-width-Fluid {
-          .header-index-wide {
-            margin-left: 0;
-          }
-        }
-      }
-      .header, .top-nav-header-index {
-        .user-wrapper .action {
-          padding: 0 12px;
-        }
-      }
-    }
+      .trigger {
+        font-size: 22px;
+        line-height: 42px;
+        padding: 0 18px;
+        cursor: pointer;
+        transition: color 300ms, background 300ms;
 
-    &.ant-layout-has-sider {
-      flex-direction: row;
-    }
-
-    .trigger {
-      font-size: 22px;
-      line-height: 42px;
-      padding: 0 18px;
-      cursor: pointer;
-      transition: color 300ms, background 300ms;
-
-      &:hover {
-        background: rgba(255, 255, 255, 0.3);
-      }
-    }
-
-    .topmenu {
-      .ant-header-fixedHeader {
-        position: fixed;
-        top: 0;
-        right: 0;
-        z-index: 9;
-        width: 100%;
-        transition: width .2s;
-
-        &.ant-header-side-opened {
-          width: 100%;
-        }
-
-        &.ant-header-side-closed {
-          width: 100%;
-        }
-      }
-      /* 蹇呴』涓� topmenu  鎵嶈兘鍚敤娴佸紡甯冨眬 */
-      &.content-width-Fluid {
-        .header-index-wide {
-          max-width: unset;
-          margin-left: 24px;
-        }
-
-        .page-header-index-wide {
-          max-width: unset;
-        }
-      }
-
-    }
-
-    .sidemenu {
-      .ant-header-fixedHeader {
-        position: fixed;
-        top: 0;
-        right: 0;
-        z-index: 9;
-        width: 100%;
-        transition: width .2s;
-
-        &.ant-header-side-opened {
-          width: calc(100% - 200px)
-        }
-
-        &.ant-header-side-closed {
-          width: calc(100% - 80px)
-        }
-      }
-    }
-
-    .header {
-      height: 64px;
-      padding: 0 12px 0 0;
-      background: #fff;
-      box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
-      position: relative;
-    }
-
-    .header, .top-nav-header-index {
-
-      .user-wrapper {
-        float: right;
-        height: 100%;
-
-        .action {
-          cursor: pointer;
-          padding: 0 14px;
-          display: inline-block;
-          transition: all .3s;
-
-          height: 70%;
-          line-height: 46px;
-
-          &.action-full {
-            height: 100%;
-          }
-
-          &:hover {
-            background: rgba(255, 255, 255, 0.3);
-          }
-
-          .avatar {
-            margin: 20px 10px 20px 0;
-            color: #1890ff;
-            background: hsla(0, 0%, 100%, .85);
-            vertical-align: middle;
-          }
-
-          .icon {
-            font-size: 16px;
-            padding: 4px;
-          }
-
-          .anticon {
-            color: inherit;
-          }
-        }
-      }
-
-      &.dark {
-        .user-wrapper {
-
-          .action {
-            color: black;
-
-            &:hover {
-              background: rgba(0, 0, 0, 0.05);
-            }
-
-            .anticon {
-              color: inherit;
-            }
-          }
-        }
-      }
-    }
-
-    &.mobile {
-      .top-nav-header-index {
-
-        .header-index-wide {
-
-          .header-index-left {
-
-            .trigger {
-              color: rgba(255, 255, 255, 0.85);
-              padding: 0 12px;
-            }
-
-            .logo.top-nav-header {
-              text-align: center;
-              width: 56px;
-              line-height: 58px;
-            }
-          }
-        }
-
-        .user-wrapper .action .avatar {
-          margin: 20px 0;
-        }
-
-        &.light {
-
-          .header-index-wide {
-
-            .header-index-left {
-              .trigger {
-                color: rgba(0, 0, 0, 0.65);
-              }
-            }
-          }
-          //
-        }
-      }
-    }
-
-    &.tablet {
-      // overflow: hidden; text-overflow:ellipsis; white-space: nowrap;
-      .top-nav-header-index {
-
-        .header-index-wide {
-
-          .header-index-left {
-            .logo > a {
-              overflow: hidden;
-              text-overflow: ellipsis;
-              white-space: nowrap;
-            }
-          }
-        }
-      }
-
-    }
-
-    .top-nav-header-index {
-      box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
-      position: relative;
-      transition: background .3s, width .2s;
-
-      .header-index-wide {
-        width: 100%;
-        margin: auto;
-        padding: 0 20px 0 0;
-        display: flex;
-        height: 59px;
-
-        .ant-menu.ant-menu-horizontal {
-          border: none;
-          height: 64px;
-          line-height: 64px;
-        }
-
-        .header-index-left {
-          flex: 1 1;
-          display: flex;
-
-          .logo.top-nav-header {
-            width: 165px;
-            height: 64px;
-            position: relative;
-            line-height: 64px;
-            transition: all .3s;
-            overflow: hidden;
-
-            img {
-              display: inline-block;
-              vertical-align: middle;
-              height: 32px;
-            }
-
-            h1 {
-              color: #fff;
-              display: inline-block;
-              vertical-align: top;
-              font-size: 16px;
-              margin: 0 0 0 12px;
-              font-weight: 400;
-            }
-          }
-        }
-
-        .header-index-right {
-          float: right;
-          height: 59px;
-          overflow: hidden;
-          .action:hover {
-            background-color: rgba(0, 0, 0, 0.05);
-          }
-        }
-      }
-
-      &.light {
-        background-color: #fff;
-
-        .header-index-wide {
-          .header-index-left {
-            .logo {
-              h1 {
-                color: #002140;
-              }
-            }
-          }
-        }
-      }
-
-      &.dark {
-
-        .user-wrapper {
-
-          .action {
-            color: white;
-
-            &:hover {
-              background: rgba(255, 255, 255, 0.3);
-            }
-          }
-        }
-        .header-index-wide .header-index-left .trigger:hover {
+        &:hover {
           background: rgba(255, 255, 255, 0.3);
         }
       }
 
     }
 
-    // 鍐呭鍖�
-    .layout-content {
-      margin: 24px 24px 0px;
-      height: 64px;
-      padding: 0 12px 0 0;
+    .sidemenu {
+      background-color: transparent;
     }
 
-  }
-
-  .topmenu {
-    .page-header-index-wide {
-      margin: 0 auto;
-      width: 100%;
-    }
   }
 
   // drawer-sider 鑷畾涔�
@@ -549,65 +222,6 @@
     }
   }
 
-  // 鑿滃崟鏍峰紡
-  .sider {
-    box-shadow: 2px 116px 6px 0 rgba(0, 21, 41, .35);
-    position: relative;
-    z-index: 10;
-
-    &.ant-fixed-sidemenu {
-      position: fixed;
-      height: 100%;
-    }
-
-    .logo {
-      height: 64px;
-      position: relative;
-      line-height: 64px;
-      padding-left: 24px;
-      -webkit-transition: all .3s;
-      transition: all .3s;
-      background: #002140;
-      overflow: hidden;
-
-      img, h1 {
-        display: inline-block;
-        vertical-align: middle;
-      }
-
-      img {
-        height: 32px;
-      }
-
-      h1 {
-        color: #fff;
-        font-size: 18px;
-        margin: 0 0 0 8px;
-        font-family: "Chinese Quote", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
-        font-weight: 600;
-      }
-    }
-
-    &.light {
-      background-color: #fff;
-      box-shadow: 2px 116px 8px 0 rgba(29, 35, 41, 0.05);
-
-      .logo {
-        background: #fff;
-        box-shadow: 1px 1px 0 0 #e8e8e8;
-
-        h1 {
-          color: unset;
-        }
-      }
-
-      .ant-menu-light {
-        border-right-color: transparent;
-      }
-    }
-
-  }
-
   // 澶栫疆鐨勬牱寮忔帶鍒�
   .user-dropdown-menu-wrapper.ant-dropdown-menu {
     padding: 4px 0;
@@ -626,46 +240,6 @@
 
   }
 
-  // 鏁版嵁鍒楄〃 鏍峰紡
-  .table-alert {
-    margin-bottom: 16px;
-  }
-
-  .table-page-search-wrapper {
-
-    .ant-form-inline {
-
-      .ant-form-item {
-        display: flex;
-        margin-bottom: 24px;
-        margin-right: 0;
-
-        .ant-form-item-control-wrapper {
-          flex: 1 1;
-          display: inline-block;
-          vertical-align: middle;
-        }
-
-        > .ant-form-item-label {
-          line-height: 32px;
-          padding-right: 8px;
-          width: auto;
-        }
-        .ant-form-item-control {
-          height: 32px;
-          line-height: 32px;
-        }
-      }
-    }
-
-    .table-page-search-submitButtons {
-      display: block;
-      margin-bottom: 24px;
-      white-space: nowrap;
-    }
-
-  }
-
   .content {
 
     .table-operator {
@@ -677,3 +251,4 @@
     }
   }
 </style>
+

--
Gitblit v1.9.3