| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- <template>
- <div
- v-loading.fullscreen.lock="loading"
- :element-loading-text="$t('loading')"
- class="aui-wrapper"
- >
- <template v-if="!loading">
- <main-sidebar />
- <div
- class="aui-content__wrapper"
- :style="{
- 'margin-left': '240px',
- width: 'calc(100% - 240px)',
- 'overflow-y':'auto'
- }"
- >
- <main-content v-if="!$store.state.contentIsNeedRefresh" />
- </div>
- </template>
- </div>
- </template>
- <script>
- import MainNavbar from "./main-navbar";
- import MainSidebar from "./main-sidebar";
- import MainContent from "./main-content";
- import debounce from "lodash/debounce";
- export default {
- provide() {
- return {
- num: "",
- // 刷新
- refresh() {
- this.$store.state.contentIsNeedRefresh = true;
- this.$nextTick(() => {
- this.$store.state.contentIsNeedRefresh = false;
- });
- },
- };
- },
- data() {
- return {
- loading: true,
- };
- },
- components: {
- MainNavbar,
- MainSidebar,
- MainContent,
- },
- watch: {
- $route: "routeHandle",
- "$store.state.currentMenuIndex": "changeMenuIndex",
- },
- created() {
- //在页面加载时读取sessionStorage里的状态信息
- if (sessionStorage.getItem("tags")) {
- this.$store.state.stateTagsList= JSON.parse(sessionStorage.getItem("tags"))
- //replaceState,替换store的根状态
- }
- //在页面刷新时将vuex里的信息保存到sessionStorage里
- window.addEventListener("beforeunload", () => {
- sessionStorage.setItem("tags", JSON.stringify(this.$store.state.stateTagsList));
- });
- //工作台和态势感知不显示左边菜单栏
- this.windowResizeHandle();
- this.routeHandle(this.$route);
- Promise.all([this.getUserInfo(), this.getPermissions()]).then(() => {
- this.loading = false;
- });
- },
- mounted() {
- let currentMenuIndex = localStorage.getItem("currentMenuIndex");
- this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"];
- },
- methods: {
- changeMenuIndex(newval, oldval) {
- this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"];
- localStorage.setItem("currentMenuIndex", newval);
- this.$store.state.erjismenu =
- this.$store.state.sidebarMenuList[newval].children;
- },
- //工作台和态势感知不显示左边菜单栏
- changeyijiInd(v) {
- this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"];
- localStorage.setItem("currentMenuIndex", v);
- this.$store.state.currentMenuIndex = v;
- this.$store.state.erjismenu =
- this.$store.state.sidebarMenuList[v].children;
- //默认跳转第一个自己路由
- let eledom = this.$store.state.sidebarMenuList[v].children[0];
- let url = "";
- var route = "";
- if (eledom.url == "") {
- //这是个三级菜单
- url = eledom.children[0].url;
- route = window.SITE_CONFIG["dynamicMenuRoutes"].filter(
- (item) => item.meta.menuId === eledom.children[0].id
- )[0];
- localStorage.setItem("currentMenuId", route.meta.menuId);
- } else {
- url = eledom.url;
- route = window.SITE_CONFIG["dynamicMenuRoutes"].filter(
- (item) => item.meta.menuId === eledom.id
- )[0];
- localStorage.setItem("currentMenuId", route.meta.menuId);
- }
- if (url) {
- let urls = "/" + url.split("/")[0] + "-" + url.split("/")[1];
- this.$nextTick(() => {
- this.$router.push({ path: urls });
- if(url!='workbench/index'&&url!='situational/index'){
- this.$store.commit("mutationSelectTags", route);
- }
- });
- }
- },
- // 窗口改变大小
- windowResizeHandle() {
- this.$store.state.sidebarFold =
- document.documentElement["clientWidth"] <= 992 || false;
- window.addEventListener(
- "resize",
- debounce(() => {
- this.$store.state.sidebarFold =
- document.documentElement["clientWidth"] <= 992 || false;
- }, 150)
- );
- },
- // 路由, 监听
- routeHandle(route) {
- if (!route.meta.isTab) {
- return false;
- }
- var tab = this.$store.state.contentTabs.filter(
- (item) => item.name === route.name
- )[0];
- if (!tab) {
- tab = {
- ...window.SITE_CONFIG["contentTabDefault"],
- ...route.meta,
- name: route.name,
- params: { ...route.params },
- query: { ...route.query },
- };
- this.$store.state.contentTabs =
- this.$store.state.contentTabs.concat(tab);
- }
- this.$store.state.sidebarMenuActiveName = tab.menuId;
- this.$store.state.contentTabsActiveName = tab.name;
- },
- // 获取当前管理员信息
- getUserInfo() {
- return this.$http
- .get("/sys/user/info")
- .then(({ data: res }) => {
- if (res.code !== 0) {
- return this.$message.error(res.msg);
- }
- this.$store.state.user.id = res.data.id;
- this.$store.state.user.name = res.data.username;
- this.$store.state.user.realName = res.data.realName;
- this.$store.state.user.qualificationType = res.data.qualificationType;
- this.$store.state.user.superAdmin = res.data.superAdmin;
- this.$store.state.user.roleCodes = res.data.roleCodes;
- this.$store.state.user.enterpriseId=res.data.enterpriseId;
- })
- .catch(() => {});
- },
- // 获取权限
- getPermissions() {
- return this.$http
- .get("/sys/menu/permissions")
- .then(({ data: res }) => {
- if (res.code !== 0) {
- return this.$message.error(res.msg);
- }
- window.SITE_CONFIG["permissions"] = res.data;
- })
- .catch(() => {});
- },
- },
- };
- </script>
|