前言
公司分好几个后台模块,统一使用vue+elementUi框架开发,每一个后台模块都是单独团队开发的。并且几个系统整体的风格、布局一样的,包括左侧边栏,上方的面包屑等
用户在使用的时候,可能要切换别的系统就要在浏览器里,新打开窗口,再输入网址,回车。
总结来说,低效,所以现在想将几个系统融合到一个里边,并且每次切换系统的时候保留用户的操作。
https://github.com/Mrblackant/vueIframe
效果如图:
实现思路
1.结合iframe开发上方系统切换的组件
2.各个子系统有自己的域名
开发
因为每个页面都需要这个切换功能,所以我们直接在app.vue里开发。我是用vue+element开发的,所以切换的地方直接用了ele的tab切换组件。(写法有很多种,主要是思路)
读完这些话再看代码,方便理解:
1.如果用v-if控制每个iframe的显示隐藏,那么切换后系统后,再切换回来,iframe的属性会使页面会刷新,用户的操作不能保留
2.如果纯粹用elementUi的tab组件来做,页面一进来,就会把每个系统的资源加载进来,卡的要命,所以需要做到按需加载
3.实现:结合1、2问题,用v-if控制页面一进来,只加载一个默认的系统;tab切换的时候再利用v-if去加载该系统的资源;v-if只控制一次,不会随着tab的切换变化,这样就能保证切换系统时保留了用户的操作。
app.vue
<template> <div id="app"> <div class="allWapper"> <!-- logo --> <div class="myLogo"> <img src="/static/mylogo.png"> </div> <!-- 顶部tabs --> <el-tabs v-model="activeName" @tab-click="handleClick"> <el-tab-pane class="temp" label="VUE" name="first"> <iframe v-if="ifArr.first" class="ifa" scrolling=auto src="http://panjiachen.github.io/vue-element-admin/#/dashboard" frameborder="0"></iframe> </el-tab-pane> <el-tab-pane class="temp" label="SF" name="second"> <iframe v-if="ifArr.second" class="ifa" scrolling=auto src="https://segmentfault.com/" frameborder="0"></iframe> </el-tab-pane> <el-tab-pane class="temp" label="百度" name="third"> <iframe v-if="ifArr.third" class="ifa" scrolling=auto src="https://www.baidu.com/" frameborder="0"></iframe> </el-tab-pane> </el-tabs> </div> <!-- </div> --> <!-- <router-view/> --> </div> </template> <script> export default { name: 'App', data(){ return{ activeName: 'first', ifArr:{ first:true, second:false, third:false } } }, methods:{ handleClick(tab, event) { let flagName=tab.name this.ifArr[flagName]=true } } } </script> <style> body{ margin:0; padding:5px; } .ifa{ width:100%; height:100%; } .el-tabs__content{ border: 1px solid red; border-top:none; position: absolute; top: 62px; left: 0; bottom: 0; right: 0; // width:100%; // height:80%; } .allWapper{ display:flex; border-bottom:1px solid #e4e7ed; } .el-tabs__header{ margin-bottom:0px; } .el-tabs__header .el-tabs__item{ margin:8px 0; font-size:16px; padding-left:29px; } .temp{ width:100%; height:100%; } .myLogo{ width: 200px; height: 53px; margin-right:35px; } .myLogo img{ width:100%; } </style>
本文向大家介绍Android实现系统语言切换功能,包括了Android实现系统语言切换功能的使用技巧和注意事项,需要的朋友参考一下 简单介绍下这个需求的缘由,这段时间因公司业务需要,其中有一项“设置系统语言”功能,就是在使用APP的过程中,动态的去切换整个Android机器的语言,具体参照手机设置页面有语言切换功能。起初想来是很简单的事情嘛,不就是个简单的资源国际化嘛,strings.xml资源文
本文向大家介绍Andorid 系统实现多种开机动画和logo切换功能,包括了Andorid 系统实现多种开机动画和logo切换功能的使用技巧和注意事项,需要的朋友参考一下 前言 基于mtk6580,添加多logo和开关机动画切换 描述 目前android开机画面由三个部分(阶段)组成,第一部分在bootloader启动时显示(静态),第二部分在启动kernel时显示(静态),第三部分在系统启动时(
本文向大家介绍利用vue-i18n实现多语言切换效果的方法,包括了利用vue-i18n实现多语言切换效果的方法的使用技巧和注意事项,需要的朋友参考一下 前言 有些项目我们需要支持多种语言切换,满足国际化需求。 vue-i18n是一个vue插件,主要作用就是让项目支持国际化多语言,使用方便快捷,能很轻松的将我们的项目国际化。本文主要介绍使用vue-i18n实现切换中英文效果。 安装vue-i18n
本文向大家介绍vue实现菜单切换功能,包括了vue实现菜单切换功能的使用技巧和注意事项,需要的朋友参考一下 vue实现菜单切换,点击菜单导航切换不同的内容以及为当前点击的选项添加样式,或者组件。 method里: css: html代码: js代码: methods: css代码: 总结 以上所述是小编给大家介绍的vue实现菜单切换功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及
本文向大家介绍Vue实现点击后文字变色切换方法,包括了Vue实现点击后文字变色切换方法的使用技巧和注意事项,需要的朋友参考一下 这里用文字举例,图片切换的原理也是一样的 大概思路是:用两个class相同的span分别是切换前后的文字,class相同主要是为了变换前后的文字位置相同。然后用click事件控制它们的显隐。 代码如下: HTML: JS: CSS: 以上这篇Vue实现点击后文字变色切换方
本文向大家介绍php简单实现多语言切换的方法,包括了php简单实现多语言切换的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php简单实现多语言切换的方法。分享给大家供大家参考,具体如下: 1.主程序代码: 2. 所包含的语言包:English.inc 3. 所包含的function.php 4.所包含的language.js 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PH