| | |
| | | <contextmenu :itemList="menuItemList" :visible.sync="menuVisible" style="z-index: 9999;" @select="onMenuSelect"/> |
| | | <!-- update-end- author:sunjianlei --- date:20191009 --- for: 提升右键菜单的层级 --> |
| | | <a-tabs |
| | | v-if="$route.meta.title!=='首页'&&multipage" |
| | | @contextmenu.native="e => onContextmenu(e)" |
| | | v-if="$route.meta.title!=='首页'&&multipage" |
| | | :active-key="activePage" |
| | | class="tab-layout-tabs" |
| | | style="height:52px" |
| | |
| | | @change="changePage" |
| | | @tabClick="tabCallBack" |
| | | @edit="editPage"> |
| | | <a-tab-pane :id="page.fullPath" :key="page.fullPath" v-for="page in pageList" |
| | | <a-tab-pane :id="page.path" :key="page.path" v-for="page in pageList" |
| | | :closable="!(page.meta.title=='首页')"> |
| | | <span slot="tab" :pagekey="page.fullPath">{{ page.meta.title }}</span> |
| | | <span slot="tab" :pagekey="page.path">{{ page.meta.title }}</span> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | <div> |
| | | <div :style="{padding: $route.meta.title=='首页'?'0':'12px 12px 0'}"> |
| | | <!-- update-begin-author:taoyan date:20201221 for:此处删掉transition标签 不知道为什么加上后 页面路由切换的时候即1及菜单切到2及菜单的时候 两个菜单页面会同时出现300-500秒左右 --> |
| | | <keep-alive v-if="multipage"> |
| | | <router-view v-if="reloadFlag"/> |
| | |
| | | this.pageList.push(currentRoute) |
| | | this.linkList.push(currentRoute.fullPath) |
| | | this.activePage = currentRoute.fullPath |
| | | this.$bus.$on('clickMenuTitleSelected', this.clickMenuTitleSelected) |
| | | }, |
| | | mounted() { |
| | | }, |
| | |
| | | } |
| | | }, |
| | | 'activePage': function(key) { |
| | | console.log('key', key) |
| | | let index = this.linkList.lastIndexOf(key) |
| | | let waitRouter = this.pageList[index] |
| | | // 【TESTA-523】修复:不允许重复跳转路由异常 |
| | | if (waitRouter.fullPath !== this.$route.fullPath) { |
| | | console.log('waitRouter', waitRouter, 'fullPath', this.$route.fullPath, waitRouter.fullPath !== this.$route.fullPath) |
| | | if (waitRouter.path !== this.$route.fullPath) { |
| | | this.$router.push(Object.assign({}, waitRouter)) |
| | | } |
| | | this.changeTitle(waitRouter.meta.title) |
| | |
| | | |
| | | // update-begin-author:sunjianlei date:20200120 for: 动态更改页面标题 |
| | | changeTitle(title) { |
| | | console.log('title', title) |
| | | let projectTitle = 'MDC智慧车间' |
| | | // 首页特殊处理 |
| | | if (this.$route.path === indexKey) { |
| | |
| | | // update-end-author:sunjianlei date:20200120 for: 动态更改页面标题 |
| | | |
| | | changePage(key) { |
| | | console.log('changePage', key) |
| | | this.activePage = key |
| | | }, |
| | | tabCallBack() { |
| | |
| | | return |
| | | } |
| | | console.log('this.pageList ', this.pageList) |
| | | let removeRoute = this.pageList.filter(item => item.fullPath == key) |
| | | this.pageList = this.pageList.filter(item => item.fullPath !== key) |
| | | let removeRoute = this.pageList.filter(item => item.path == key) |
| | | this.pageList = this.pageList.filter(item => item.path !== key) |
| | | let index = this.linkList.indexOf(key) |
| | | this.linkList = this.linkList.filter(item => item !== key) |
| | | index = index >= this.linkList.length ? this.linkList.length - 1 : index |
| | |
| | | this.emitPageClosed(removeRoute[0]) |
| | | } |
| | | //update-end--Author:scott Date:20201015 for:路由缓存问题,关闭了tab页时再打开就不刷新 #842 |
| | | |
| | | this.tabCallBack() |
| | | }, |
| | | // 触发 page-closed (页面关闭)全局事件 |
| | | emitPageClosed(closedRoute) { |
| | |
| | | let indexContent = this.pageList.slice(0, 1)[0] |
| | | this.linkList = this.linkList.slice(index, index + 1) |
| | | this.pageList = this.pageList.slice(index, index + 1) |
| | | this.linkList.unshift(indexContent.fullPath) |
| | | this.linkList.unshift(indexContent.path) |
| | | this.pageList.unshift(indexContent) |
| | | this.activePage = this.linkList[1] |
| | | } |
| | |
| | | let index = this.linkList.indexOf(pageKey) |
| | | this.linkList = this.linkList.slice(index) |
| | | this.pageList = this.pageList.slice(index) |
| | | this.linkList.unshift(indexContent.fullPath) |
| | | this.linkList.unshift(indexContent.path) |
| | | this.pageList.unshift(indexContent) |
| | | // 若将激活页一并关闭则显示导航栏除首页第一个页面 |
| | | if (this.linkList.indexOf(this.activePage) < 0) { |
| | | this.activePage = this.linkList[0] |
| | | this.activePage = this.linkList[1] |
| | | } |
| | | }, |
| | | closeRight(pageKey) { |
| | | let index = this.linkList.indexOf(pageKey) |
| | | this.linkList = this.linkList.slice(0, index + 1) |
| | | this.pageList = this.pageList.slice(0, index + 1) |
| | | if (this.linkList.indexOf(this.activePage < 0)) { |
| | | // 若将激活页一并关闭则显示导航栏最后一个页面 |
| | | if (this.linkList.indexOf(this.activePage) < 0) { |
| | | this.activePage = this.linkList[this.linkList.length - 1] |
| | | } |
| | | }, |
| | |
| | | //新增一个返回方法 |
| | | excuteCallback(callback) { |
| | | callback() |
| | | }, |
| | | |
| | | clickMenuTitleSelected(selectedMenus) { |
| | | //console.log("新的路由",newRoute) |
| | | console.log('clickTitle', this.activePage) |
| | | this.activePage = selectedMenus[0].path |
| | | if (!this.multipage) { |
| | | this.linkList = [this.linkList[0], selectedMenus[0].path] |
| | | this.pageList = [this.pageList[0], Object.assign({}, selectedMenus[0])] |
| | | // update-begin-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 |
| | | } else if (indexKey == selectedMenus[0].path) { |
| | | //首页时 判断是否缓存 没有缓存 刷新之 |
| | | if (selectedMenus[0].meta.keepAlive === false) { |
| | | this.routeReload() |
| | | } |
| | | // update-end-author:taoyan date:20200211 for: TASK #3368 【路由缓存】首页的缓存设置有问题,需要根据后台的路由配置来实现是否缓存 |
| | | } else { |
| | | // selectedMenus.forEach(menuItem => { |
| | | // if (!this.linkList.includes(menuItem.path)) { |
| | | // console.log('触发增加') |
| | | // this.linkList.push(menuItem.path) |
| | | // this.pageList.push(menuItem) |
| | | // } else { |
| | | // console.log('触发没有增加') |
| | | // let oldIndex = this.linkList.indexOf(menuItem.path) |
| | | // let oldPositionRoute = this.pageList[oldIndex] |
| | | // this.pageList.splice(oldIndex, 1, Object.assign({}, menuItem, { meta: oldPositionRoute.meta })) |
| | | // } |
| | | // }) |
| | | // 点击标题后在导航栏覆盖前一个标题所展开的下级菜单 |
| | | this.linkList = [this.linkList[0], ...selectedMenus.map(item => item.path)] |
| | | this.pageList = [this.pageList[0], ...selectedMenus] |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | &.ant-tabs-card .ant-tabs-tab { |
| | | |
| | | padding: 0 24px !important; |
| | | padding: 0 20px 0 2px !important; |
| | | background-color: white !important; |
| | | margin-right: 10px !important; |
| | | /*margin-right: 10px !important;*/ |
| | | |
| | | .ant-tabs-close-x { |
| | | width: 12px !important; |