| | |
| | | <template> |
| | | <div class="topMenu"> |
| | | <div class="logo"></div> |
| | | <div class="headerTitle"> |
| | | <p class="textp1">管道基础大数据平台</p> |
| | | <p class="textp2">Pipeline basic big data platform</p> |
| | | </div> |
| | | <div class="rightWrapper"> |
| | | <div class="rightMenu"> |
| | | <ul class="infinite-list menu_ul"> |
| | | <li |
| | | @click="setMenuMove(index, item)" |
| | | v-for="(item, index) in listMenu" |
| | | class="infinite-list-item" |
| | | > |
| | | <div |
| | | class="menuImage" |
| | | :class="changeSelectStyle == index ? item.checkClass : item.class" |
| | | ></div> |
| | | <div |
| | | class="menulabel" |
| | | :class="{ changeStyle: changeSelectStyle == index }" |
| | | > |
| | | {{ item.label }} |
| | | <div class="NavBox" |
| | | @click.stop> |
| | | <div class="topBox"> |
| | | <div class="topTitle"></div> |
| | | <div class="topMenu"> |
| | | <div class="menuContent"> |
| | | <div class="contentDiv" |
| | | @click="setMenuMove(index, item)" |
| | | v-for="(item, index) in listMenu"> |
| | | <div style="display: flex;align-items: center"> |
| | | <div class="ImgMenu"> |
| | | <div class="menuImage" |
| | | :class="changeSelectStyle == index ? item.checkClass : item.css"></div> |
| | | </div> |
| | | <div class="menulabel" |
| | | :class="{ changeStyle: changeSelectStyle == index }"> |
| | | <span v-show="language"> {{ item.cnName }}</span> <span v-show="!language"> {{ item.enName }}</span> |
| | | </div> |
| | | </div> |
| | | </li> |
| | | </ul> |
| | | </div> |
| | | <div class="rightUser"> |
| | | <div @click="logOut" class="topdiv topUser"> |
| | | <div class="userImage user1"></div> |
| | | <div class="userText"><span>admin</span>注销</div> |
| | | <div class="secondMenuDiv subpage_Div" |
| | | v-show="index == showFlag ? true :false"> |
| | | <div v-for="res in item.children" |
| | | @click="setLiClick(res,index)" |
| | | :class="{ changeLiStyle: changeliSelect == res.cnName }"> |
| | | <span v-show="language"> {{ res.cnName }}</span> <span v-show="!language"> {{ res.enName }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div @click="switchLang" class="topdiv botLingo"> |
| | | <div class="userImage user2"></div> |
| | | <div class="userText">Language</div> |
| | | </div> |
| | | <color-change></color-change> |
| | | </div> |
| | | <div class="topUser"> |
| | | <div class="userLanguage"> |
| | | <div class="userImage theme" |
| | | @click="themeChange"></div> |
| | | <div class="userImage user2" |
| | | @click="switchLang"></div> |
| | | |
| | | <!-- <div class="menu"></div> |
| | | <div class="userInfo"> |
| | | <img src="../assets/img/user.png" alt="" /> |
| | | <span>admin</span> |
| | | <span >注销</span> |
| | | |
| | | <span> 切换语言</span> |
| | | </div> --> |
| | | </div> |
| | | <div class="userName"> |
| | | <div class="userImage user1"></div> |
| | | <div class="userText"> |
| | | <span>{{ this.$store.state.uname }}</span> |
| | | <el-link @click="logOut" |
| | | :underline="false" |
| | | class="elLink">{{ $t('common.logout') }}</el-link> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { logout } from '@/api/api'; |
| | | import { removeToken, getToken } from '@/utils/auth'; |
| | | import { logout,selectMenuRecursive,sign_insertOpLog } from '@/api/api'; |
| | | import { removeToken,getToken } from '@/utils/auth'; |
| | | import customElMenu from '../components/customElMenu.vue'; |
| | | import { queryMenuTree, getPerms } from '../api/api'; |
| | | import { queryMenuTree,getPerms } from '../api/api'; |
| | | import colorChange from '../views/maintenance/colorChange.vue'; |
| | | import { containsCoordinate } from 'ol/extent'; |
| | | import Vue,{ nextTick } from 'vue'; |
| | | import $ from 'jquery' |
| | | export default { |
| | | name: 'navMenu', |
| | | //import引入的组件需要注入到对象中才能使用 |
| | |
| | | customElMenu, |
| | | colorChange, |
| | | }, |
| | | data() { |
| | | data () { |
| | | return { |
| | | |
| | | themeColor: true, |
| | | oriData: [], //原始树数据 |
| | | dirData: [], //el树数据 |
| | |
| | | itemdetail: {}, |
| | | formLabelWidth: '70px', |
| | | count: 5, |
| | | changeSelectStyle: 5, |
| | | listMenu: [ |
| | | changeSelectStyle: null, |
| | | changeliSelect: null, |
| | | changeSelectdiv: false, |
| | | listMenu: [], |
| | | showFlag: null, |
| | | language: true, |
| | | nowPage: [ |
| | | { |
| | | label: '数据质检', |
| | | class: 'm1', |
| | | checkClass: 'm11', |
| | | name: '/Archive', |
| | | index: 3 |
| | | }, |
| | | { |
| | | label: '数据交换', |
| | | class: 'm2', |
| | | checkClass: 'm21', |
| | | name: '/dataApplication', |
| | | index: 3 |
| | | }, |
| | | { |
| | | label: '数据管理', |
| | | class: 'm3', |
| | | checkClass: 'm31', |
| | | name: '/ExportMap', |
| | | index: 3 |
| | | }, |
| | | { |
| | | label: '服务管理', |
| | | class: 'm4', |
| | | checkClass: 'm41', |
| | | name: '/Synthesis', |
| | | index: 3 |
| | | }, |
| | | { |
| | | label: '综合展示', |
| | | class: 'm5', |
| | | checkClass: 'm51', |
| | | name: '/dataController', |
| | | index: 4 |
| | | }, |
| | | { |
| | | label: '运维管理', |
| | | class: 'm6', |
| | | checkClass: 'm61', |
| | | }, |
| | | ], |
| | | name: '/mochaitmo', |
| | | index: 5 |
| | | } |
| | | ] |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.getUserPerms(); |
| | | created () { }, |
| | | mounted () { |
| | | this.$store.state.themeflag=false; |
| | | $("#app").removeClass("Black_theme"); |
| | | this.getMenuTree(); |
| | | if(sessionStorage.getItem('changeliSelect')) { |
| | | this.$set(this,'changeliSelect',sessionStorage.getItem('changeliSelect')) |
| | | // this.changeliSelect = sessionStorage.getItem('changeliSelect') |
| | | } |
| | | document.body.addEventListener('click',() => { |
| | | this.showFlag=null; |
| | | },false); |
| | | // this.$bus.$on('closeMenuSecond', res => { |
| | | // this.showFlag = null; |
| | | // }) |
| | | window.addEventListener('message',(e) => { |
| | | |
| | | this.showFlag=null; |
| | | }) |
| | | }, |
| | | computed: { |
| | | // 我们使用计算属性来获取到当前点击的菜单的路由路径,然后设置default-active中的值 |
| | | // 使得菜单在载入时就能对应高亮 |
| | | // activeIndex() { |
| | | // const route = this.$route; |
| | | // const { meta, path } = route; |
| | | // // if set path, the sidebar will highlight the path you set |
| | | // // 可以在路由配置文件中设置自定义的路由路径到meta.activeMenu属性中,来控制菜单自定义高亮显示 |
| | | // if (meta.activeMenu) { |
| | | // return meta.activeMenu; |
| | | // } |
| | | // return path; |
| | | // }, |
| | | }, |
| | | computed: {}, |
| | | methods: { |
| | | //主题切换 |
| | | setThemeColors() { |
| | | // var value; |
| | | // if (this.themeColor) { |
| | | // value = '#303030'; |
| | | // } else { |
| | | // value = '#409EFF'; |
| | | // } |
| | | // localStorage.setItem('theme', value); |
| | | // this.$store.commit('setSkin', value); |
| | | closeSecondMenu () { |
| | | this.showFlag=null |
| | | }, |
| | | //鼠标移入菜单事件 |
| | | setMenuMove(index, item) { |
| | | this.changeSelectStyle = index; |
| | | }, |
| | | getMenuTree() { |
| | | //获取目录树最大ID,新建节点使用 |
| | | // queryMaxId().then((res) => { |
| | | // this.id = res.data; |
| | | // }); |
| | | // 获取目录树数据 |
| | | queryMenuTree().then((res) => { |
| | | if (res.code == 200) { |
| | | if (res.result.length != 0) { |
| | | let menuLists = res.result.filter((value) => { |
| | | return value.pid == 1; |
| | | }); |
| | | // console.log(menuLists); |
| | | this.menuList = menuLists; |
| | | } else { |
| | | alert('暂无菜单栏数据'); |
| | | } |
| | | } else { |
| | | console.log('接口报错'); |
| | | } |
| | | }); |
| | | }, |
| | | treeData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // 对源数据深度克隆 |
| | | // console.log(cloneData); |
| | | if (cloneData.length != 0) { |
| | | return cloneData.filter((father) => { |
| | | // 循环所有项 |
| | | let branchArr = cloneData.filter((child) => father.id == child.pid); // 对比ID,分别上下级菜单,并返回数据 |
| | | branchArr.length > 0 ? (father.children = branchArr) : ''; // 给父级添加一个children属性,并赋值 |
| | | // 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2; |
| | | // 由此循环多次后,就能形成相应的树形数据结构 |
| | | return father.pid == 1; // 返回一级菜单 |
| | | }); |
| | | themeChange () { |
| | | this.$store.state.themeflag=!this.$store.state.themeflag; |
| | | if(this.$store.state.themeflag==true) { |
| | | $("#app").addClass("Black_theme"); |
| | | |
| | | } else { |
| | | alert('暂无菜单栏数据'); |
| | | $("#app").removeClass("Black_theme"); |
| | | } |
| | | |
| | | }, |
| | | async getCookies () { |
| | | var boolean=this.getTimeCookies(); |
| | | if(boolean!=true) { |
| | | this.$router.push('/login'); |
| | | return; |
| | | } |
| | | if(this.$store.state.permsEntity.length==0) { |
| | | const data=await getPerms(); |
| | | this.$store.state.permsEntity=data.result; |
| | | } |
| | | |
| | | this.$store.state.uname=JSON.parse( |
| | | localStorage.getItem('LFToken') |
| | | ).uname; |
| | | this.$store.state.unid=JSON.parse( |
| | | localStorage.getItem('LFToken') |
| | | ).userid; |
| | | this.$router.push('/'); |
| | | }, |
| | | getTimeCookies () { |
| | | if(!localStorage.getItem('LFToken')) { |
| | | return false |
| | | } |
| | | var time1=new Date(JSON.parse(localStorage.getItem('LFToken')).time); |
| | | var time2=new Date(); |
| | | if(time2>time1) { |
| | | return false; |
| | | } else { |
| | | return true; |
| | | } |
| | | }, |
| | | logOut() { |
| | | this.$confirm('确认是否退出登录?', '提示', { |
| | | |
| | | //主题切换 |
| | | setThemeColors () { }, |
| | | async signInsertOpLog (m1,m2) { |
| | | var obj={ |
| | | m1: m1, |
| | | m2: m2, |
| | | } |
| | | const data=await sign_insertOpLog(obj); |
| | | }, |
| | | //鼠标移入菜单事件 |
| | | setMenuMove (index,item) { |
| | | |
| | | if(item.perms!=null&&item.perms!="") { |
| | | this.$router.push(item.url); |
| | | if(this.showFlag!=null) { |
| | | |
| | | this.changeliSelect='%%'; |
| | | this.showFlag=null; |
| | | } |
| | | if(item.url=="Thematic") { |
| | | this.signInsertOpLog("综合展示",item.cnName) |
| | | this.$nextTick(function() { |
| | | location.reload(); |
| | | }) |
| | | |
| | | } |
| | | |
| | | this.changeSelectStyle=index; |
| | | sessionStorage.setItem('changeSelectStyle',index) |
| | | } else { |
| | | if(this.showFlag!=index) { |
| | | this.showFlag=index; |
| | | } else { |
| | | this.showFlag=null; |
| | | } |
| | | } |
| | | // |
| | | if(index===4||index===5||index===6) { |
| | | sessionStorage.removeItem('changeliSelect') |
| | | this.$set(this,'changeliSelect',null) |
| | | } |
| | | |
| | | |
| | | }, |
| | | closeAllChildren () { |
| | | var val=this.listMenu |
| | | for(var i=0;i<val.length;i++) { |
| | | let newItem=val[i]; |
| | | newItem.show=false; |
| | | |
| | | Vue.set(val,i,newItem); |
| | | |
| | | } |
| | | }, |
| | | setShowFalseDiv (bolean) { |
| | | var index=this.showFlag; |
| | | if(index!=null) { |
| | | let newItem=this.listMenu[index]; |
| | | |
| | | newItem.show=bolean; |
| | | Vue.set(this.listMenu,index,newItem); |
| | | } |
| | | }, |
| | | setLiClick (res,index) { |
| | | this.changeSelectStyle=index; |
| | | sessionStorage.setItem('changeSelectStyle',index) |
| | | sessionStorage.removeItem('hanleselectmochaitmo') |
| | | sessionStorage.removeItem('hanleselectindex') |
| | | |
| | | // this.signInsertOpLog(this.listMenu[index].cnName, res.cnName) |
| | | setTimeout(() => { |
| | | this.changeliSelect=res.cnName; |
| | | sessionStorage.setItem('changeliSelect',res.cnName) |
| | | if(res.url.indexOf('{fmeHost}')!=-1) { |
| | | this.$store.reporturl=res.url; |
| | | sessionStorage.setItem('iframehttpurl',this.$store.reporturl) |
| | | this.$router.push('/QualityInspection'); |
| | | // if (location.href.indexOf('/WareInspection') == -1) { |
| | | // this.$store.reporturl = res.url; |
| | | // this.$router.push('/WareInspection'); |
| | | // } else { |
| | | // this.$bus.$emit('changeNaveUrl', res.url); |
| | | // } |
| | | } else { |
| | | this.$store.reporturl=null; |
| | | sessionStorage.setItem('iframehttpurl',null) |
| | | // sessionStorage.setItem('changeliSelect', null) |
| | | this.$router.push(res.url); |
| | | this.$store.commit('currentPerms',res.perms); |
| | | } |
| | | this.setShowFalseDiv(false) |
| | | },100) |
| | | |
| | | }, |
| | | async getMenuTree () { |
| | | this.getCookies(); |
| | | const data=await queryMenuTree(); |
| | | |
| | | var that=this; |
| | | if(data.code==200) { |
| | | |
| | | if(data.result.length!=0) { |
| | | let menuLists=data.result.filter((value) => { |
| | | return value.pid==1; |
| | | }); |
| | | |
| | | that.menuList=menuLists; |
| | | |
| | | that.setMenuTree(menuLists); |
| | | } else { |
| | | this.$message({ |
| | | message: '暂无菜单栏数据', |
| | | type: 'warning' |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | async setMenuTree (res) { |
| | | |
| | | for(var i in res) { |
| | | res[i].checkClass=res[i].css+'1'; |
| | | res[i].show=false; //控制显隐 |
| | | |
| | | if(res[i].perms==null||res[i].perms=="") { |
| | | const result=await selectMenuRecursive({ id: res[i].id }); |
| | | |
| | | if(result.code==200) { |
| | | |
| | | res[i].children=result.result.filter((value) => { |
| | | return value.isShow==1; |
| | | }) |
| | | .filter((value) => { |
| | | return value.pid==res[i].id; |
| | | }); |
| | | |
| | | } |
| | | this.listMenu.push(res[i]); |
| | | // this.changeSelectStyle = this.listMenu.length - 1; |
| | | // this.changeSelectStyle = 0 |
| | | // const nowPage = this.nowPage |
| | | // if (sessionStorage.getItem('routerName')) { |
| | | // for (let index = 0; index < nowPage.length; index++) { |
| | | // if (this.$route.path === nowPage[index].name) { |
| | | // this.$set(this, 'changeSelectStyle', nowPage[index].index) |
| | | // } |
| | | // } |
| | | // } else { |
| | | // this.changeSelectStyle = this.listMenu.length - 1; |
| | | // } |
| | | |
| | | this.changeSelectStyle=sessionStorage.getItem('changeSelectStyle') |
| | | // var strartMneu = res[i].children[0]; |
| | | // this.$store.commit('currentPerms', strartMneu.perms); |
| | | // this.changeliSelect = strartMneu.cnName; |
| | | // this.$bus.$emit('currentPerms', strartMneu.perms); |
| | | } else { |
| | | this.listMenu.push(res[i]); |
| | | } |
| | | } |
| | | }, |
| | | treeData (source) { |
| | | let cloneData=JSON.parse(JSON.stringify(source)); // 对源数据深度克隆 |
| | | // console.log(cloneData); |
| | | if(cloneData.length!=0) { |
| | | return cloneData.filter((father) => { |
| | | // 循环所有项 |
| | | let branchArr=cloneData.filter((child) => father.id==child.pid); // 对比ID,分别上下级菜单,并返回数据 |
| | | branchArr.length>0? (father.children=branchArr):''; // 给父级添加一个children属性,并赋值 |
| | | // 属于同一对象问题,例如:令 a=b、c=1 ,然后再令 b.c=c , 那么 a.c=b.c=c=1 ;同理,后续令 c.d=2 ,那么 a.c.d 也是=2; |
| | | // 由此循环多次后,就能形成相应的树形数据结构 |
| | | return father.pid==1; // 返回一级菜单 |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | message: '暂无菜单栏数据', |
| | | type: 'warning' |
| | | }); |
| | | } |
| | | }, |
| | | logOut () { |
| | | this.$confirm('确认是否退出登录?','提示',{ |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then(async () => { |
| | | const data = await logout({ token: getToken() }); |
| | | const data=await logout({ token: getToken() }); |
| | | // console.log(data); |
| | | if (data.code != 200) { |
| | | if(data.code!=200) { |
| | | return this.$message.error('退出登录失败'); |
| | | } |
| | | removeToken(); |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | switchLang() { |
| | | switchLang () { |
| | | //当前en |
| | | if (this.lang == 'en') { |
| | | if(this.lang=='en') { |
| | | //语言换成zh |
| | | this.lang = 'zh'; |
| | | this.lang='zh'; |
| | | this.language=true; |
| | | this.$store.state.language=true; |
| | | //菜单换为zh |
| | | this.$store.commit('changeLang', 'zh'); |
| | | this.$store.commit('changeLang','zh'); |
| | | //i18换成zh |
| | | this.$i18n.locale = this.lang; |
| | | this.$i18n.locale=this.lang; |
| | | } |
| | | //当前zh |
| | | else { |
| | | this.lang = 'en'; |
| | | this.$i18n.locale = this.lang; |
| | | this.$store.commit('changeLang', 'en'); //传递点击的节点 |
| | | this.lang='en'; |
| | | this.language=false; |
| | | this.$store.state.language=false; |
| | | this.$i18n.locale=this.lang; |
| | | this.$store.commit('changeLang','en'); //传递点击的节点 |
| | | } |
| | | }, |
| | | handleselect(index, indexPath, e) { |
| | | handleselect (index,indexPath,e) { |
| | | // console.log(e.$attrs.perms); |
| | | this.$store.commit('currentPerms', e.$attrs.perms.perms); |
| | | if (Window.ws != null) { |
| | | this.$store.commit('currentPerms',e.$attrs.perms.perms); |
| | | if(Window.ws!=null) { |
| | | Window.ws.close(); |
| | | Window.ws.onclose = () => { |
| | | Window.ws.onclose=() => { |
| | | console.log('服务器关闭'); |
| | | }; |
| | | Window.ws = null; |
| | | Window.ws=null; |
| | | } |
| | | |
| | | if (index.indexOf('http') != -1) { |
| | | debugger |
| | | if(index.indexOf('{fmeHost}')!=-1) { |
| | | this.$router.push('/databaseMonitoring'); |
| | | this.$store.commit('getIframe', index); |
| | | } else if (isNaN(Number(index))) { |
| | | this.$store.commit('getIframe',index); |
| | | } else if(isNaN(Number(index))) { |
| | | this.$router.push(index); |
| | | } |
| | | }, |
| | | getUserPerms() { |
| | | getPerms().then((res) => { |
| | | if (res.code == 200) this.$store.commit('getPermsEntity', res.result); |
| | | }); |
| | | }, |
| | | }, |
| | | watch: { |
| | | $route() { |
| | | let str = this.$route.path; |
| | | if (str[0] == '/') { |
| | | this.activeIndex = str.slice(1); |
| | | $route () { |
| | | let str=this.$route.path; |
| | | if(str[0]=='/') { |
| | | this.activeIndex=str.slice(1); |
| | | } |
| | | }, |
| | | }, |
| | | created() { |
| | | let str = this.$route.path; |
| | | if (str[0] == '/') { |
| | | this.activeIndex = str.slice(1); |
| | | created () { |
| | | this.$store.reporturl=null; |
| | | let str=this.$route.path; |
| | | if(str[0]=='/') { |
| | | this.activeIndex=str.slice(1); |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="less" scoped> |
| | | //@import url(); 引入公共css类 |
| | | .topMenu { |
| | | width: 100%; |
| | | height: 100%; |
| | | background-image: linear-gradient(rgb(34, 33, 33), rgb(27, 31, 78)); |
| | | display: flex; |
| | | justify-content: space-between; |
| | | |
| | | .logo { |
| | | width: 80px; |
| | | height: 80px; |
| | | margin-left: 30px; |
| | | margin-top: 33px; |
| | | background: url('../assets/img/图层 34.png') no-repeat 100% 100%; |
| | | } |
| | | // .rightWrapper { |
| | | // width: 70%; |
| | | // height: 100%; |
| | | // display: flex; |
| | | // .menu { |
| | | // height: 100%; |
| | | // width: 80%; |
| | | // background-color: rgb(120, 121, 120); |
| | | // ul { |
| | | // display: flex; |
| | | // justify-content: space-around; |
| | | // li { |
| | | // width: 120px; |
| | | // height: 120px; |
| | | // background: #bfa; |
| | | // } |
| | | // } |
| | | // } |
| | | .rightWrapper { |
| | | float: right; |
| | | margin-right: 48px; |
| | | margin-top: 32px; |
| | | height: 80px; |
| | | float: left; |
| | | .rightMenu { |
| | | height: 100%; |
| | | float: left; |
| | | margin-right: 40px; |
| | | |
| | | .menu_ul { |
| | | list-style: none; |
| | | } |
| | | .menu_ul li { |
| | | float: left; |
| | | margin-right: 70px; |
| | | } |
| | | .menulabel { |
| | | font-size: 19px; |
| | | font-family: Source Han Sans CN; |
| | | font-weight: 500; |
| | | color: #ffffff; |
| | | } |
| | | .changeStyle { |
| | | color: #fec801; |
| | | } |
| | | .menuImage { |
| | | width: 70px; |
| | | height: 70px; |
| | | } |
| | | .m1 { |
| | | background: url('../assets/img/menu/menu11.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m2 { |
| | | background: url('../assets/img/menu/menu21.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m3 { |
| | | background: url('../assets/img/menu/menu31.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m4 { |
| | | background: url('../assets/img/menu/menu41.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m5 { |
| | | background: url('../assets/img/menu/menu51.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m6 { |
| | | background: url('../assets/img/menu/menu61.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m11 { |
| | | background: url('../assets/img/menu/menu12.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m21 { |
| | | background: url('../assets/img/menu/menu22.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m31 { |
| | | background: url('../assets/img/menu/menu32.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m41 { |
| | | background: url('../assets/img/menu/menu42.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m51 { |
| | | background: url('../assets/img/menu/menu52.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .m61 { |
| | | background: url('../assets/img/menu/menu62.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | } |
| | | .rightUser { |
| | | height: 100%; |
| | | float: left; |
| | | min-width: 130px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .topdiv { |
| | | width: 100%; |
| | | height: 30px; |
| | | |
| | | margin-top: 10px; |
| | | line-height: 30px; |
| | | .userImage { |
| | | width: 30px; |
| | | height: 30px; |
| | | float: left; |
| | | margin-right: 10px; |
| | | } |
| | | .user1 { |
| | | background: url('../assets/img/user.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .user2 { |
| | | background: url('../assets/img/EN.png') no-repeat; |
| | | background-size: 100% 100%; |
| | | } |
| | | .userText { |
| | | font-size: 15px; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 400; |
| | | color: #ffffff; |
| | | text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.35); |
| | | } |
| | | } |
| | | .topUser { |
| | | flex-shrink: 0; |
| | | } |
| | | .botLingo { |
| | | flex-shrink: 1; |
| | | } |
| | | } |
| | | } |
| | | // .userInfo { |
| | | // background-color: pink; |
| | | |
| | | // // width: 138px; |
| | | // font-size: 16px; |
| | | // font-family: Microsoft YaHei; |
| | | // font-weight: 400; |
| | | // color: #fcfcfc; |
| | | // // display: flex; |
| | | // // justify-content: space-between; |
| | | // // align-items: center; |
| | | // // cursor: pointer; |
| | | // } |
| | | |
| | | .headerTitle { |
| | | margin-top: 49px; |
| | | margin-left: 120px; |
| | | position: absolute; |
| | | .textp1 { |
| | | font-size: 36px; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: bold; |
| | | color: #ffffff; |
| | | background: linear-gradient(0deg, #79a8ff 0%, #ffffff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | .textp2 { |
| | | font-size: 9px; |
| | | font-family: Microsoft YaHei; |
| | | font-weight: 300; |
| | | color: #ffffff; |
| | | display: flex; |
| | | background: linear-gradient(0deg, #79a8ff 0%, #ffffff 100%); |
| | | -webkit-background-clip: text; |
| | | -webkit-text-fill-color: transparent; |
| | | } |
| | | } |
| | | } |
| | | </style> |