<template> <a-layout class="home_layout index_body" style="width: 100%"> <a-layout> <a-layout-content class="layout_container" style="background: #fff"> <div style="padding: 24px;"> <a-tabs type="card" :tabBarGutter="10" v-model="$store.state.activeKeyInfo" @change="onChange"> <a-tab-pane v-for="(item, index) in menuList" :key="item.frontActionUrl"> <span slot="tab"> <!-- <span v-if="item.frontActionUrl != '/Home/distributionWarehousing' && item.frontActionUrl != '/Home/folviteApply'"--> <!-- >{{item.name}}</span>--> <!-- <span v-else>--> <span>{{item.name}}<span>(0)</span></span> <!-- <span v-if="item.frontActionUrl == '/Home/distributionWarehousing'">{{item.name}}<span>(0)</span></span>--> <!-- <span v-if="item.frontActionUrl == '/Home/folviteApply'">{{item.name}}<span>(0)</span></span>--> </span> <span>{{item.name}}</span> </a-tab-pane> </a-tabs> <router-view></router-view> </div> </a-layout-content> <div style="clear: both"></div> </a-layout> </a-layout> </template> <script> import {getCookie} from "./utils/common"; import {menuTest} from "./utils/testDate"; const unitTabs = [ { name: '在库管理', key: '/Home/inStock', path: '/Home/inStock', parent: null, } ] export default { data() { return { // 菜单 menuList: [], // 选中的菜单 activeItem: [], // tabs标签 tabs: [], // 选中的tabs标签 activeKey: '', showChildren: false, menuTest, } }, created() { document.cookie = 'bGNnd3lwdF9hdA=' + sessionStorage.getItem("token") + ';'//云南省 let cookieToken = getCookie('bGNnd3lwdF9hdA'); cookieToken = sessionStorage.getItem("token"); this.menuList = menuTest; if (cookieToken) { let par = {} this.$api.fyManage.fetchFYLoginUser(par).then(({data}) => { window.sessionStorage.setItem('menuList', JSON.stringify(this.menuList)); window.sessionStorage.setItem('userInfo', JSON.stringify(data.userInfo)); window.sessionStorage.setItem('unitInfo', JSON.stringify(data.unitInfo)); window.sessionStorage.setItem('allEnum', JSON.stringify(data.enumValueList)); this.setInitMenuInfo() this.showChildren = true }) } else { console.log('没有token11') window.top.postMessage({messageType: "LOGOUT"}, '*')//给最顶层窗口发送token失效通知 return } }, methods: { setInitMenuInfo() {//设置默认菜单和菜单缓存 this.menuList = menuTest; this.menuList = this.menuTest if (!window.sessionStorage.getItem("tabs")) { window.sessionStorage.setItem('tabs', JSON.stringify(this.menuTest)); this.$store.commit('changeTabs', this.menuTest) this.tabs = this.$store.state.tabsInfo } if (!window.sessionStorage.getItem('activeItem')) { window.sessionStorage.setItem('activeItem', '/Home/inStock') } // if (!window.sessionStorage.getItem('activeKey')) { // let nowUrl = window.location.href; // this.$router.push({path: nowUrl, query: {}}) // this.$store.commit('changeActKey', '/Home/inStock') // } const tabs = JSON.parse(window.sessionStorage.getItem('tabs')); if (tabs) { this.tabs = tabs; this.$store.commit('changeTabs', tabs) } const activeKey = window.sessionStorage.getItem('activeItem'); if (activeKey) { this.activeKey = activeKey; this.$store.commit('changeActKey', activeKey) } }, // 点击tabs标签 onChange(activeKey) { this.activeKey = activeKey; window.sessionStorage.setItem('activeKey', this.activeKey); this.$store.commit('changeActKey', this.activeKey) this.$store.state.tabsInfo.forEach((item, i) => { if (item.frontActionUrl === activeKey) { this.activeItem = [item.frontActionUrl]; window.sessionStorage.setItem('activeItem', this.activeItem); this.$router.push(item.frontActionUrl); } }); }, }, } </script> <style lang="less"> .index_body { .ant-tabs-bar { border-bottom: 1px solid rgba(255, 77, 128, .2) !important; } .ant-tabs-nav-scroll { margin-left: 0px !important; } .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-container { height: 35px !important; } .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab { height: 35px !important; color: #F8F8FF !important; line-height: 35px !important; background: rgba(255, 77, 128, .5); border-bottom: 0px solid #FF4D80; border-top-left-radius: 10px; border-top-right-radius: 10px; } .ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active { height: 35px !important; color: #fff; background: #FF4D80; border-color: #FF4D80; border-bottom: 0px solid #FF4D80; border-top-left-radius: 10px; border-top-right-radius: 10px; } } </style>