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.
128 lines
3.4 KiB
128 lines
3.4 KiB
<template>
|
|
<main :class="['aui-content']">
|
|
<!-- tab展示内容 -->
|
|
<template>
|
|
<template v-if="tabIsIframe($router.currentRoute.meta.iframeURL)">
|
|
<iframe
|
|
:src="
|
|
$router.currentRoute.meta.iframeURL +
|
|
'?token=' +
|
|
token +
|
|
'&customerId=' +
|
|
customerId
|
|
"
|
|
ref="iframe"
|
|
class="m-iframe"
|
|
id="iframe"
|
|
width="100%"
|
|
height="100%"
|
|
frameborder="0"
|
|
scrolling="yes"
|
|
/>
|
|
</template>
|
|
<keep-alive v-show="!tabIsIframe($router.currentRoute.meta.iframeURL)">
|
|
<router-view @changeCustomerName="changeCustomerName" />
|
|
</keep-alive>
|
|
</template>
|
|
</main>
|
|
</template>
|
|
|
|
<script>
|
|
import { isURL } from "@/utils/validate";
|
|
import Cookie from "js-cookie";
|
|
export default {
|
|
data() {
|
|
return {
|
|
iframeUrl: "",
|
|
token: "",
|
|
customerId: "",
|
|
};
|
|
},
|
|
watch: {
|
|
// "$router.currentRoute.name": function () {
|
|
// console.log($router.currentRoute);
|
|
// },
|
|
},
|
|
created() {
|
|
this.token = localStorage.getItem("token");
|
|
this.customerId = localStorage.getItem("customerId");
|
|
},
|
|
methods: {
|
|
changeCustomerName(customerName) {
|
|
this.$emit("changeCustomerName", customerName);
|
|
},
|
|
// tabs, 是否通过iframe展示
|
|
tabIsIframe(url) {
|
|
// this.appendIframe(url)
|
|
// this.iframeUrl =
|
|
// url +
|
|
// "?token=" +
|
|
// localStorage.getItem("token") +
|
|
// "&customerId=" +
|
|
// localStorage.getItem("customerId");
|
|
|
|
// return /^http[s]?:\/\/.*/.test(url);
|
|
return isURL(url);
|
|
},
|
|
// tabs, 选中tab
|
|
tabSelectedHandle(tab) {
|
|
tab = this.$store.state.contentTabs.filter(
|
|
(item) => item.name === tab.name
|
|
)[0];
|
|
if (tab) {
|
|
this.$router.push({
|
|
name: tab.name,
|
|
params: { ...tab.params },
|
|
query: { ...tab.query },
|
|
});
|
|
}
|
|
},
|
|
// tabs, 删除tab
|
|
tabRemoveHandle(tabName) {
|
|
if (tabName === "home") {
|
|
return false;
|
|
}
|
|
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
|
|
(item) => item.name !== tabName
|
|
);
|
|
if (this.$store.state.contentTabs.length <= 0) {
|
|
this.$store.state.sidebarMenuActiveName =
|
|
this.$store.state.contentTabsActiveName = "home";
|
|
return false;
|
|
}
|
|
// 当前选中tab被删除
|
|
if (tabName === this.$store.state.contentTabsActiveName) {
|
|
let tab =
|
|
this.$store.state.contentTabs[
|
|
this.$store.state.contentTabs.length - 1
|
|
];
|
|
this.$router.push({
|
|
name: tab.name,
|
|
params: { ...tab.params },
|
|
query: { ...tab.query },
|
|
});
|
|
}
|
|
},
|
|
// tabs, 关闭其它
|
|
tabsCloseOtherHandle() {
|
|
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
|
|
(item) => {
|
|
return (
|
|
item.name === "home" ||
|
|
item.name === this.$store.state.contentTabsActiveName
|
|
);
|
|
}
|
|
);
|
|
},
|
|
// tabs, 关闭全部
|
|
tabsCloseAllHandle() {
|
|
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
|
|
(item) => item.name === "home"
|
|
);
|
|
this.$router.push({ name: "home" });
|
|
},
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" src="@/assets/scss/main-shuju.scss" scoped></style>
|
|
|