epmet pc工作端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

140 lines
4.1 KiB

3 years ago
<template>
2 years ago
<fixed1920 class="g-fx" id="g-scT">
<div v-loading.fullscreen.lock="loading" :element-loading-text="$t('loading')" :class="[
'g-pg',
{ 'z-sidebar--fold': $store.state.sidebarFold },
{
'z-sidebar--noside': true,
},
{ 'z-iframe': $store.state.inIframe },
]">
<template v-if="!loading">
<img class="i-corner z-left-top" src="~@/assets/images/shuju/main/corner-left-top.png" />
<img class="i-corner z-right-top" src="~@/assets/images/shuju/main/corner-right-top.png" />
<img class="i-corner z-right-bottom" src="~@/assets/images/shuju/main/corner-right-bottom.png" />
2 years ago
<img class="i-corner z-left-bottom" src="~@/assets/images/shuju/main/corner-left-bottom.png" />
<main-navbar ref="ref_navbar" v-if="!$store.state.inIframe" />
<div class="g-cnt" :style="{
minHeight: $store.state.fixed1920.height - 100 + 'px',
}">
<main-content v-if="!$store.state.contentIsNeedRefresh" @changeCustomerName="changeCustomerName" />
</div>
</template>
</div>
</fixed1920>
3 years ago
</template>
<script>
2 years ago
import MainNavbar from "./main-navbar";
import MainContent from "./main-content";
import debounce from "lodash/debounce";
import {
mapGetters
} from "vuex";
import nextTick from "dai-js/tools/nextTick";
import {
requestPost
} from "@/js/dai/request";
import fixed1920 from "@/views/components/fixed1920.vue";
export default {
provide() {
return {
// 刷新
refresh() {
this.$store.state.contentIsNeedRefresh = true;
this.$nextTick(() => {
this.$store.state.contentIsNeedRefresh = false;
});
},
};
},
data() {
return {
loading: true,
userType: localStorage.getItem("userType"),
};
},
components: {
MainNavbar,
MainContent,
fixed1920,
},
watch: {
$route: "routeHandle",
},
async created() {
this.windowResizeHandle();
this.routeHandle(this.$route);
Promise.all([this.getWorkUserInfo()]).then(() => {
this.loading = false;
});
},
computed: {},
methods: {
changeCustomerName(customerName) {
this.$refs["ref_navbar"].changeCustomerName(customerName);
},
// 窗口改变大小
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) {
this.$store.state.mainShuju.activeName = "";
this.$store.state.mainShuju.contentTabsActiveName = "";
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.mainShuju.activeName = tab.menuId;
this.$store.state.mainShuju.contentTabsActiveName = tab.name;
},
// 获取当前管理员信息
async getWorkUserInfo() {
const url = "/epmetuser/customerstaff/staffbasicinfo";
let params = {};
const {
data,
code,
msg
} = await requestPost(url, params);
if (code === 0) {
this.$store.state.user = {
...data
};
console.log("user---hahha", this.$store.state.user);
localStorage.setItem("roleList", data.roleList);
localStorage.setItem("customerId", data.customerId);
localStorage.setItem("staffId", data.id);
localStorage.setItem("agencyId", data.agencyId);
localStorage.setItem("level", data.level);
// if (!localStorage.getItem("customerName")) {
// localStorage.setItem("customerName", data.agencyName || "");
// }
localStorage.setItem("customerNameDataBoard", data.agencyName || "");
} else {
this.$message.error(msg);
}
},
},
};
3 years ago
</script>
<style lang="scss" src="@/assets/scss/dataBoardMain.scss" scoped></style>