2024-04-13 16:49:55 +08:00

274 lines
7.3 KiB
Vue

<template>
<div class="fullHeight pages">
<div class="title">
<div class="title_l flex">
<!-- <img v-if="LOGO_white" :src="'./img/logo/'+LOGO_white+'.png'" class="icon" />
<span>{{$t('message.companyDiagram.pageTitle')}}</span> -->
<img v-if="systemInfo.platformLogo" :src="systemInfo.platformLogo" class="logo" height="25" />
<img v-else-if="LOGO_white" :src="'./img/logo/'+LOGO_white+'.png'" class="logo" height="25" />
<span v-if="company != 'nanchang'" style="cursor: pointer" @click="back">{{systemInfo.platformName}} </span>
<span v-if="company != 'nanchang'"> - </span>
<span v-if="company != 'nanchang'">{{$t('message.companyDiagram.pageTitle')}}</span>
<!-- 南昌地铁头部样式 -->
<span v-if="company == 'nanchang'" style="cursor: pointer" @click="back">{{$t('message.companyDiagram.pageTitle')}}</span>
</div>
<div class="title_near flex" v-if="![11,1,2].includes($store.state.userInfo.accountType)">
<userChange></userChange>
</div>
<div class="title_near-tow flex" v-if="![11,1,2].includes($store.state.userInfo.accountType)">
<div class="divider-line"></div>
<centerChange></centerChange>
</div>
<div
class="title_r flex"
>
<account></account>
</div>
</div>
<div class="menuBox">
<el-menu
:default-active="$route.path"
class="el-menu-demo"
mode="horizontal"
@select="handleSelect"
active-text-color="#5181F6"
router
>
<div
v-for="(item, index) in menuList"
:key="index"
class="menuInnerBox"
>
<el-menu-item class="firstLevelMenu"
v-if="!hasSubMenu(item.menuList)"
:index="item.modulePath"
>
{{ item.moduleName}}
</el-menu-item>
<el-submenu
:index="item.modulePath"
v-else
>
<template slot="title">{{
item.moduleName
}}</template>
<el-menu-item
:index="data.path"
v-for="(data, i) in item.menuList"
:key="i"
>{{ data.menuName }}</el-menu-item
>
</el-submenu>
</div>
<!-- <el-menu-item :index="item.modulePath" v-for="(item,index) in menuList" :key="index">{{item.moduleName}}</el-menu-item> -->
</el-menu>
</div>
<div class="pageContainer">
<div class="pageDataContainer">
<router-view></router-view>
</div>
</div>
</div>
</template>
<script>
import account from "@/components/account.vue";
import userChange from "@/components/userChange.vue";
import centerChange from "@/components/centerChange.vue";
export default {
data() {
return {
LOGO_white:LOGO_white,
currentUrl:'',
menuList:[
{ moduleName: '全部消息', modulePath: "/infoCenter/allInfo" },
{ moduleName: '未读消息', modulePath: "/infoCenter/notRead" },
{ moduleName: '已读消息', modulePath: "/infoCenter/hadRead" }
],
systemInfo:{
"loginBackgroundImage": "",
"loginLogo": "",
"platformLogo": "",
"platformName": "智慧工地云平台"
}
};
},
components:{
account,
userChange,
centerChange
},
created() {
this.company = COMPANY;
console.log(COMPANY)
},
mounted(){
// this.getAllModule()
if(localStorage.getItem('systemInfo')){
this.systemInfo=JSON.parse(localStorage.getItem('systemInfo'))
}
document.title='企业后台'
console.log('mounted',this.$route.path)
},
methods: {
hasSubMenu(list) {
//用于判断有没有下级菜单
let onoff = false;
// console.log("list", list);
if (list && list.length > 0) {
list.forEach((element) => {
if (element.menuName) {
onoff = true;
return;
}
});
}
// console.log("onoff", onoff);
return onoff;
},
getAllModule(){
var half = this.$store.state.userInfo.menuAuthority.moduleList
half.forEach(element => {
if(element.moduleType==3){
this.menuList.push(element)
}
});
// getAllModuleApi({moduleType:4}).then(res => {
// if (res.success) {
// var all = res.result
// all.forEach((element,index) => {
// all[index].operation=false
// half.forEach(element2 => {
// if(element2.moduleId==element.moduleId){
// all[index].operation=true
// all[index].menuList=element2.menuList
// }
// });
// });
// this.menuList=all
// }
// })
},
handleSelect(url) {
// this.$store.commit('setCurrentUrl',url)
// this.$store.dispatch('currentUrl',url)
},
back() {
this.$router.push("/firm/projectManage")
}
},
};
</script>
<style lang="less" scoped>
.el-menu.el-menu--horizontal {
box-sizing: border-box;
padding: 0 30px 4px;
border-bottom: none;
}
.el-menu--horizontal {
.el-menu-item,
/deep/.el-submenu__title {
font-family: PingFangSC-Medium;
font-size: 14px;
letter-spacing: 0;
height: 44px;
line-height: 44px;
padding: 0;
margin-right: 80px;
&:hover,
&:focus {
background-color: transparent;
}
&:hover {
color: #5181f6;
}
}
}
/deep/.el-submenu__title{
padding-right: 20px!important;
.el-submenu__icon-arrow{
right: 0px;
}
}
.el-menu--horizontal .firstLevelMenu.is-active,/deep/.is-active .el-submenu__title {
border-bottom: 3px solid #409eff;
}
.menuInnerBox {
display: inline-block;
}
// .el-menu.el-menu--horizontal {
// box-sizing: border-box;
// padding: 0 162px 4px;
// border-bottom: none;
// }
// .el-menu--horizontal > .el-menu-item {
// font-family: PingFangSC-Medium;
// font-size: 14px;
// letter-spacing: 0;
// height: 44px;
// line-height: 44px;
// padding: 0;
// margin-right: 70px;
// }
// .el-menu--horizontal > .el-menu-item.is-active {
// border-bottom: 3px solid #409eff;
// }
// /deep/.el-submenu__title{
// padding-right: 20px!important;
// .el-submenu__icon-arrow{
// right: 0px;
// }
// }
// .el-menu--horizontal .firstLevelMenu.is-active,/deep/.is-active .el-submenu__title {
// border-bottom: 3px solid #409eff;
// }
// .menuInnerBox {
// display: inline-block;
// }
.menuBox{
position: relative;
}
.title {
width: 100%;
color: #fff;
background-image: linear-gradient(#262d47, #343d5f);
box-sizing: border-box;
padding: 0 23px;
height: 61px;
display: flex;
align-items: center;
justify-content: flex-end
}
.title_l {
font-family: PingFangSC-Semibold;
font-size: 16px;
color: #ffffff;
letter-spacing: 0;
margin-right: 50px;
img {
margin-right: 14px;
}
}
.title_near{
margin-right: 50px;
}
.title_near-tow{
.divider-line{
width: 1px;
height: 16px;
background: #FFFFFF;
margin-right: 50px;
}
}
.title_r {
cursor: pointer;
display: inline-flex;
align-items: center;
margin-left: auto;
}
.flex {
display: flex;
align-items: center;
justify-content: space-between;
}
</style>