<template>
|
<page-nav :ac-tabs="acTabs" :menus="permitMenu" @select="select"></page-nav>
|
</template>
|
|
<script>
|
import { isHasPermit } from "@/assets/js/tools";
|
import getPageMenu from "@/assets/js/tools/getPageMenu";
|
import PageNav from "@/components/PageNav";
|
|
export default {
|
components: { PageNav },
|
props: {
|
acTabs: {
|
type: String,
|
default: "",
|
},
|
},
|
data() {
|
return {
|
menus: [],
|
};
|
},
|
methods: {
|
getPageMenu() {
|
this.$apis.pageSetting
|
.getPageMenu()
|
.then((res) => {
|
let rs = JSON.parse(res.data.result);
|
let data = [];
|
if (rs.code == 1) {
|
data = rs.data;
|
}
|
this.menus = getPageMenu();
|
this.changeMenus(this.menus, data);
|
})
|
.catch((error) => {
|
this.menus = getPageMenu();
|
console.log(error);
|
});
|
},
|
changeMenus(menus, list) {
|
menus.forEach((menu) => {
|
let item = "";
|
for (let i = 0; i < list.length; i++) {
|
if (menu.id == list[i].id) {
|
item = list[i];
|
break;
|
}
|
}
|
if (item && item.childrens) {
|
item.childrens.forEach((children) => {
|
for (let i = 0; i < menu.childrens.length; i++) {
|
let item2 = menu.childrens[i];
|
if (item2.id == children.id) {
|
item2.enableduse = children.enableduse;
|
break;
|
}
|
}
|
});
|
}
|
});
|
},
|
select(data) {
|
if (data.name !== this.acTabs) {
|
let url = window.location.hostname + ":8090/screen/index.html";
|
// let url = 'big-screen/index.html';
|
|
if (process.env.NODE_ENV == "dev") {
|
url = " http://localhost:8081/";
|
}
|
// 根据数据跳转
|
if (data.target) {
|
// let activeSkin = localStorage.getItem('activeSkin');
|
// window.open(url + data.src + '?activeSkin=' + activeSkin);
|
// return;
|
let userId = sessionStorage.getItem("userId");
|
window.open(url + data.src + "?userId=" + userId);
|
return;
|
}
|
this.$emit("select", data);
|
} else {
|
console.log("菜单已激活");
|
}
|
},
|
},
|
computed: {
|
permitMenu() {
|
let permits = this.$store.state.user.permits;
|
let menus = this.menus.map((item) => {
|
let tmp = {
|
label: item.label,
|
name: item.name,
|
src: item.src,
|
icon: item.icon,
|
noChild: item.noChild ? true : false,
|
enableduse: item.enableduse,
|
closable: item.closable,
|
};
|
if (!tmp.noChild) {
|
tmp.childrens = item.childrens.filter((child) => {
|
if (child.permitName) {
|
return isHasPermit(child.permitName, permits);
|
} else {
|
return true;
|
}
|
});
|
}
|
return tmp;
|
});
|
return menus.filter((item) => {
|
return item.noChild || item.childrens.length > 0;
|
});
|
},
|
},
|
mounted() {
|
this.getPageMenu();
|
},
|
};
|
</script>
|
|
<style scoped></style>
|