Browse Source

Merge branch 'dev-ai' into test

shibei_master
dai 3 years ago
parent
commit
676b7e657d
  1. 4
      src/App.vue
  2. 8
      src/assets/scss/main-shuju.scss
  3. 53
      src/router/index.js
  4. 8
      src/views/components/CTable.vue
  5. 142
      src/views/main-shuju/main-content.vue
  6. 2
      src/views/modules/base/resi.vue
  7. 1
      src/views/modules/communityParty/elegant/index.vue
  8. 4
      src/views/modules/communityService/measure/index.vue
  9. 1
      src/views/modules/communityService/sqzzz/index.vue
  10. 9
      src/views/modules/workPc/guidance/guidanceList.vue
  11. 2
      src/views/modules/workSys/resiCate.vue

4
src/App.vue

@ -133,11 +133,11 @@ export default {
.dialog-h {
.el-dialog__body {
position: relative;
height: 82vh;
max-height: 82vh;
box-sizing: border-box;
padding: 0 10px 20px !important;
.dialog-h-content {
height: calc(82vh - 80px);
max-height: calc(82vh - 80px);
box-sizing: border-box;
overflow: auto;
}

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

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

53
src/router/index.js

@ -298,11 +298,13 @@ router.beforeEach((to, from, next) => {
// url: "visual/basicinfo/basicInfoMain",
children: [
{
url: "/visual/ai/index",
url: "https://test-rxs-job.elinkservice.cn/haiqin-ai/aisecurity.html#/monitor-panel",
// url: "/visual/ai/index",
name: "AI安防",
id: "5feawfwa111111efwa57",
},
{
// url: "http://www.baidu.com",
url: "/visual/ai/renliu",
name: "人流数据",
id: "5fwaefwae222112fawef58",
@ -323,7 +325,8 @@ router.beforeEach((to, from, next) => {
id: "fewafwafewaefddd",
},
{
url: "/visual/ai/yujing",
// url: "/visual/ai/yujing",
url: "https://test-rxs-job.elinkservice.cn/haiqin-ai/aisecurity.html#/data-analysis",
name: "预警事件",
id: "545345fdsfs",
},
@ -402,8 +405,21 @@ function fnAddDynamicMenuRoutes(menuList = [], routes = []) {
eval(s2)
); // URL支持{{ window.xxx }}占位符变量
if (isURL(URL)) {
route["path"] = route["name"] = `i-${menuList[i].id}`;
route["meta"]["iframeURL"] = 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["meta"]["iframeURL"] = URL;
}
} else {
URL = URL.replace(/^\//, "").replace(/_/g, "-");
if (URL.startsWith("unopen")) {
@ -464,12 +480,33 @@ function fnAddDynamicMenuRoutes2(menuList = [], routes = []) {
eval(s2)
); // URL支持{{ window.xxx }}占位符变量
if (isURL(URL)) {
route["path"] = route["name"] = `i-${menuList[i].id}`;
route["meta"]["iframeURL"] = 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["meta"]["iframeURL"] = URL;
}
} else {
URL = URL.replace(/^\//, "").replace(/_/g, "-");
route["path"] = route["name"] = URL.replace(/\//g, "-");
route["component"] = () => import(`@/views/modules/${URL}`);
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["component"] = () => import(`@/views/modules/${URL}`);
}
}
routes.push(route);
}

8
src/views/components/CTable.vue

@ -93,10 +93,10 @@
<el-button v-for="item in operations"
v-show="item.isShow(scope.row)"
:key="item.lable"
:style=item.style
:type=item.type
:size=item.size
:plain=item.plain
:type="item.type"
:style="item.style"
:size="item.size"
:class="item.class"
@click.stop="handleMethod(scope.$index, scope.row,item.methodName)">{{item.lable}}</el-button>
</template>
</el-table-column>

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

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

2
src/views/modules/base/resi.vue

@ -17,7 +17,7 @@
class="upload-demo"
action="uploadUlr"
:limit="1"
:accept="'.xls,xlsx'"
:accept="'.xls,.xlsx'"
:with-credentials="true"
:show-file-list="false"
:auto-upload="true"

1
src/views/modules/communityParty/elegant/index.vue

@ -57,6 +57,7 @@
class="upload-demo"
action="uploadUlr"
:limit="1"
:accept="'.xls,.xlsx'"
:with-credentials="true"
:show-file-list="false"
:auto-upload="true"

4
src/views/modules/communityService/measure/index.vue

@ -163,14 +163,14 @@
:prop="item.columnName"
:label="item.label"
:align="item.align"
:width="item.width"
:min-width="item.width"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<span>{{ handleFilterSpan(scope.row, item) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200">
<el-table-column fixed="right" label="操作" align="center" width="200">
<template slot-scope="scope">
<template v-if="filterEdit(scope.row.agencyId)">
<el-button

1
src/views/modules/communityService/sqzzz/index.vue

@ -44,6 +44,7 @@
class="upload-btn"
action="uploadUlr"
:limit="1"
:accept="'.xls,.xlsx'"
:with-credentials="true"
:show-file-list="false"
:auto-upload="true"

9
src/views/modules/workPc/guidance/guidanceList.vue

@ -136,11 +136,12 @@ export default {
operations: [
{
lable: '详情', //
size: 'mini',
size: 'small',
style: 'margin: 0 6px;',
type: 'text',
slot: '',
plain: false,
class: 'div-table-button--detail',
methodName: 'detail', //
isShow: (row) => {
return true
@ -148,11 +149,12 @@ export default {
},
{
lable: '修改', //
size: 'mini',
size: 'small',
style: 'margin: 0 6px;',
type: 'text',
slot: '',
plain: false,
class: 'div-table-button--edit',
methodName: 'edit', //
isShow: (row) => {
// return true
@ -165,11 +167,12 @@ export default {
},
{
lable: '删除', //
size: 'mini',
size: 'small',
style: 'margin: 0 6px;',
type: 'text',
slot: '',
plain: false,
class: 'div-table-button--delete',
methodName: 'confirmDel', //
isShow: (row) => {
if (row.createdId === this.userId) {

2
src/views/modules/workSys/resiCate.vue

@ -75,7 +75,7 @@
<span v-else>{{ handleFilterSpan(scope.row, item) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="120">
<el-table-column fixed="right" label="操作" align="center" width="120">
<template slot-scope="scope">
<el-button
@click="handleLook(scope.row)"

Loading…
Cancel
Save