| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <template>
- <div class="d2-layout-header-aside-group"
- :style="styleLayoutMainGroup"
- :class="{grayMode: grayActive}">
- <!-- 半透明遮罩 -->
- <div class="d2-layout-header-aside-mask"></div>
- <!-- 主体内容 -->
- <div class="d2-layout-header-aside-content"
- flex="dir:top">
- <!-- 顶栏 -->
- <div class="d2-theme-header"
- :style="{
- opacity: this.searchActive ? 0.5 : 1
- }"
- flex-box="0"
- flex>
- <div class="logo-group"
- :style="{width: asideCollapse ? asideWidthCollapse : asideWidth}"
- flex-box="0">
- <img v-if="asideCollapse"
- :src="`${$baseUrl}image/theme/${themeActiveSetting.name}/logo/icon-only.png`">
- <img v-else
- :src="`${$baseUrl}image/theme/${themeActiveSetting.name}/logo/all.png`"
- style="height:45px; margin-top:5px">
- <!-- <img v-if="asideCollapse" :src="`${$baseUrl}image/theme/${themeActiveSetting.name}/logo/icon_labsop.png`">
- <img v-else :src="`${$baseUrl}image/theme/${themeActiveSetting.name}/logo/labsop.png`"> -->
- </div>
- <div class="toggle-aside-btn"
- @click="handleToggleAside"
- flex-box="0">
- <d2-icon name="bars" />
- </div>
- <img :src="`${$baseUrl}image/theme/${themeActiveSetting.name}/logo/title_word.png`"
- style="height:30px;margin-top:15px">
- <!-- 细胞制品研发中心管理系统 -->
- <d2-menu-header flex-box="1" />
- <!-- 顶栏右侧 -->
- <div class="d2-header-right"
- flex-box="0">
- <!-- 如果你只想在开发环境显示这个按钮请添加 v-if="$env === 'development'" -->
- <d2-header-search @click="handleSearchClick" />
- <!--<d2-header-log/>-->
- <d2-header-fullscreen />
- <d2-header-theme />
- <d2-header-size />
- <d2-header-user />
- </div>
- </div>
- <!-- 下面 主体 -->
- <div class="d2-theme-container"
- flex-box="1"
- flex>
- <!-- 主体 侧边栏 -->
- <!-- style="background:#444;" -->
- <div flex-box="0"
- ref="aside"
- class="d2-theme-container-aside"
- :style="{
- width: asideCollapse ? asideWidthCollapse : asideWidth,
- opacity: this.searchActive ? 0.5 : 1
- }">
- <d2-menu-side />
- </div>
- <!-- 主体 -->
- <div class="d2-theme-container-main"
- flex-box="1"
- flex>
- <!-- 搜索 -->
- <transition name="fade-scale">
- <div v-if="searchActive"
- class="d2-theme-container-main-layer"
- flex>
- <d2-panel-search ref="panelSearch"
- @close="searchPanelClose" />
- </div>
- </transition>
- <!-- 内容 -->
- <transition name="fade-scale">
- <div v-if="!searchActive"
- class="d2-theme-container-main-layer"
- flex="dir:top">
- <!-- tab -->
- <div class="d2-theme-container-main-header"
- flex-box="0">
- <d2-tabs />
- </div>
- <!-- 页面 -->
- <div class="d2-theme-container-main-body"
- flex-box="1">
- <transition :name="transitionActive ? 'fade-transverse' : ''">
- <keep-alive :include="keepAlive">
- <router-view />
- </keep-alive>
- </transition>
- </div>
- </div>
- </transition>
- </div>
- </div>
- </div>
- </div>
- </template>
- <script>
- import d2MenuSide from './components/menu-side'
- import d2MenuHeader from './components/menu-header'
- import d2Tabs from './components/tabs'
- import d2HeaderFullscreen from './components/header-fullscreen'
- import d2HeaderSearch from './components/header-search'
- import d2HeaderSize from './components/header-size'
- import d2HeaderTheme from './components/header-theme'
- import d2HeaderUser from './components/header-user'
- // import d2HeaderLog from './components/header-log'
- import { mapState, mapGetters, mapActions } from 'vuex'
- import mixinSearch from './mixins/search'
- export default {
- name: 'd2-layout-header-aside',
- mixins: [
- mixinSearch
- ],
- components: {
- d2MenuSide,
- d2MenuHeader,
- d2Tabs,
- d2HeaderFullscreen,
- d2HeaderSearch,
- d2HeaderSize,
- d2HeaderTheme,
- d2HeaderUser
- // d2HeaderLog
- },
- data () {
- return {
- // [侧边栏宽度] 正常状态
- asideWidth: '200px',
- // [侧边栏宽度] 折叠状态
- asideWidthCollapse: '65px'
- }
- },
- computed: {
- ...mapState('d2admin', {
- keepAlive: state => state.page.keepAlive,
- // keepAlive: state => state.keepAlive,
- grayActive: state => state.gray.active,
- transitionActive: state => state.transition.active,
- asideCollapse: state => state.menu.asideCollapse
- }),
- ...mapGetters('d2admin', {
- themeActiveSetting: 'theme/activeSetting'
- }),
- /**
- * @description 最外层容器的背景图片样式
- */
- styleLayoutMainGroup () {
- return {
- ...this.themeActiveSetting.backgroundImage ? {
- backgroundImage: `url('${this.$baseUrl}${this.themeActiveSetting.backgroundImage}')`
- } : {}
- }
- }
- },
- methods: {
- ...mapActions('d2admin/menu', [
- 'asideCollapseToggle'
- ]),
- /**
- * 接收点击切换侧边栏的按钮
- */
- handleToggleAside () {
- this.asideCollapseToggle()
- }
- }
- }
- </script>
- <style lang="scss">
- // 注册主题
- @import "~@/assets/style/theme/register.scss";
- .theme-d2blue .d2-theme-header {
- border-bottom-color: #fa9139 !important;
- border-bottom-style: solid;
- border-bottom-width: 5px;
- }
- </style>
|