Browse Source

Merge branch 'dev-ai' into shibei_master

shibei_master
dai 4 years ago
parent
commit
982970db18
  1. 8
      src/assets/scss/main-shuju.scss
  2. 72
      src/router/index.js
  3. 124
      src/views/main-shuju/main-content.vue

8
src/assets/scss/main-shuju.scss

@ -5,6 +5,14 @@
body { body {
} }
.m-iframe {
position: relative;
width: 100vw;
height: calc(100vh - 55px);
margin: -10px;
z-index: 100;
}
/* Reset element-ui /* Reset element-ui
------------------------------ */ ------------------------------ */
.g-bd { .g-bd {

72
src/router/index.js

@ -294,36 +294,39 @@ router.beforeEach((to, from, next) => {
{ {
icon: "icon-setting", icon: "icon-setting",
id: "44rq22222q2222", id: "44rq22222q2222",
name: "AI安防", name: "智慧安防",
// url: "visual/basicinfo/basicInfoMain", // url: "visual/basicinfo/basicInfoMain",
children: [ children: [
{ {
url: "/visual/ai/index", url: "https://test-rxs-job.elinkservice.cn/haiqin-ai/aisecurity.html#/monitor-panel",
name: "AI安防", // url: "/visual/ai/index",
name: "视频监控",
id: "5feawfwa111111efwa57", id: "5feawfwa111111efwa57",
}, },
// {
// // url: "http://www.baidu.com",
// url: "/visual/ai/renliu",
// name: "人流数据",
// id: "5fwaefwae222112fawef58",
// },
// {
// url: "/visual/ai/cheliu",
// name: "车流数据",
// id: "erawerwecsxefwaw",
// },
// {
// url: "/visual/ai/shebei",
// name: "设备数据",
// id: "zfzffewaf",
// },
// {
// url: "/visual/ai/gongdan",
// name: "工单数据",
// id: "fewafwafewaefddd",
// },
{ {
url: "/visual/ai/renliu", // url: "/visual/ai/yujing",
name: "人流数据", url: "https://test-rxs-job.elinkservice.cn/haiqin-ai/aisecurity.html#/data-analysis",
id: "5fwaefwae222112fawef58",
},
{
url: "/visual/ai/cheliu",
name: "车流数据",
id: "erawerwecsxefwaw",
},
{
url: "/visual/ai/shebei",
name: "设备数据",
id: "zfzffewaf",
},
{
url: "/visual/ai/gongdan",
name: "工单数据",
id: "fewafwafewaefddd",
},
{
url: "/visual/ai/yujing",
name: "预警事件", name: "预警事件",
id: "545345fdsfs", id: "545345fdsfs",
}, },
@ -477,13 +480,34 @@ function fnAddDynamicMenuRoutes2(menuList = [], routes = []) {
eval(s2) eval(s2)
); // URL支持{{ window.xxx }}占位符变量 ); // URL支持{{ window.xxx }}占位符变量
if (isURL(URL)) { if (isURL(URL)) {
if (menuList[i].children && menuList[i].children.length >= 1) {
let item = menuList[i].children.find(
(subMenu) => subMenu.url == menuList[i].url
);
if (item) {
route["path"] = route["name"] = `i-${menuList[i].id}`;
route["redirect"] = `i-${item.id}`;
} else {
route["path"] = route["name"] = `i-${menuList[i].id}`;
route["meta"]["iframeURL"] = URL;
}
} else {
route["path"] = route["name"] = `i-${menuList[i].id}`; route["path"] = route["name"] = `i-${menuList[i].id}`;
route["meta"]["iframeURL"] = URL; route["meta"]["iframeURL"] = URL;
}
} else { } else {
URL = URL.replace(/^\//, "").replace(/_/g, "-"); URL = URL.replace(/^\//, "").replace(/_/g, "-");
if (URL.startsWith("unopen")) {
route["path"] = route["name"] = URL.replace(/\//g, "-");
route["component"] = () => import(`@/views/modules/unopen`);
} else if (menuList[i].children && menuList[i].children.length >= 1) {
route["path"] = route["name"] = URL;
route["redirect"] = URL.replace(/\//g, "-");
} else {
route["path"] = route["name"] = URL.replace(/\//g, "-"); route["path"] = route["name"] = URL.replace(/\//g, "-");
route["component"] = () => import(`@/views/modules/${URL}`); route["component"] = () => import(`@/views/modules/${URL}`);
} }
}
routes.push(route); routes.push(route);
} }
if (temp.length >= 1) { if (temp.length >= 1) {

124
src/views/main-shuju/main-content.vue

@ -1,98 +1,126 @@
<template> <template>
<main :class="['aui-content']"> <main :class="['aui-content']">
<!-- 其他方式, 展示内容 --> <!-- tab展示内容 -->
<template> <template>
<keep-alive> <template v-if="tabIsIframe($router.currentRoute.meta.iframeURL)">
<router-view /> <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> </keep-alive>
</template> </template>
</main> </main>
</template> </template>
<script> <script>
import { isURL } from '@/utils/validate' import { isURL } from "@/utils/validate";
import Cookie from 'js-cookie' import Cookie from "js-cookie";
export default { export default {
data() { data() {
return { return {
iframeUrl: '', iframeUrl: "",
token: '', token: "",
customerId: '' customerId: "",
} };
},
watch: {
// "$router.currentRoute.name": function () {
// console.log($router.currentRoute);
// },
}, },
created() { created() {
// this.$nextTick(() => { this.token = localStorage.getItem("token");
// this.sendMessage() this.customerId = localStorage.getItem("customerId");
// })
this.token = localStorage.getItem('token')
this.customerId = localStorage.getItem('customerId')
}, },
methods: { methods: {
changeCustomerName(customerName) { changeCustomerName(customerName) {
this.$emit('changeCustomerName', customerName) this.$emit("changeCustomerName", customerName);
}, },
// tabs, iframe // tabs, iframe
tabIsIframe(url) { tabIsIframe(url) {
// this.appendIframe(url) // this.appendIframe(url)
this.iframeUrl = url + '?token=' + localStorage.getItem('token') + '&customerId=' + localStorage.getItem('customerId') // this.iframeUrl =
return isURL(url) // url +
// "?token=" +
// localStorage.getItem("token") +
// "&customerId=" +
// localStorage.getItem("customerId");
return isURL(url);
}, },
// tabs, tab // tabs, tab
tabSelectedHandle(tab) { tabSelectedHandle(tab) {
tab = this.$store.state.contentTabs.filter(item => item.name === tab.name)[0] tab = this.$store.state.contentTabs.filter(
(item) => item.name === tab.name
)[0];
if (tab) { if (tab) {
this.$router.push({ this.$router.push({
'name': tab.name, name: tab.name,
'params': { ...tab.params }, params: { ...tab.params },
'query': { ...tab.query } query: { ...tab.query },
}) });
} }
}, },
// tabs, tab // tabs, tab
tabRemoveHandle(tabName) { tabRemoveHandle(tabName) {
if (tabName === 'home') { if (tabName === "home") {
return false return false;
} }
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name !== tabName) this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => item.name !== tabName
);
if (this.$store.state.contentTabs.length <= 0) { if (this.$store.state.contentTabs.length <= 0) {
this.$store.state.sidebarMenuActiveName = this.$store.state.contentTabsActiveName = 'home' this.$store.state.sidebarMenuActiveName =
return false this.$store.state.contentTabsActiveName = "home";
return false;
} }
// tab // tab
if (tabName === this.$store.state.contentTabsActiveName) { if (tabName === this.$store.state.contentTabsActiveName) {
let tab = this.$store.state.contentTabs[this.$store.state.contentTabs.length - 1] let tab =
this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1
];
this.$router.push({ this.$router.push({
name: tab.name, name: tab.name,
params: { ...tab.params }, params: { ...tab.params },
query: { ...tab.query } query: { ...tab.query },
}) });
} }
}, },
// tabs, // tabs,
tabsCloseOtherHandle() { tabsCloseOtherHandle() {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => { this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
return item.name === 'home' || item.name === this.$store.state.contentTabsActiveName (item) => {
}) return (
item.name === "home" ||
item.name === this.$store.state.contentTabsActiveName
);
}
);
}, },
// tabs, // tabs,
tabsCloseAllHandle() { tabsCloseAllHandle() {
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(item => item.name === 'home') this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
this.$router.push({ name: 'home' }) (item) => item.name === "home"
);
this.$router.push({ name: "home" });
}, },
sendMessage () {
// const iframe = this.$refs.iframes.contentWindow
const iframe = document.getElementsByClassName('iframes')[0].contentWindow
console.log('iframe', iframe)
// iframe.postMessage({
// token: localStorage.getItem('token'),
// customerId: localStorage.getItem('customerId')
// }, '*')
iframe.postMessage({ name: 'lalalal' }, '*')
}, },
} };
}
</script> </script>
<style lang="scss" src="@/assets/scss/main-shuju.scss" scoped></style> <style lang="scss" src="@/assets/scss/main-shuju.scss" scoped></style>

Loading…
Cancel
Save