add hangxiao role page

This commit is contained in:
龚祖望 2022-10-10 09:54:41 +08:00
parent cb729319ba
commit 459ede974e
15 changed files with 278 additions and 123 deletions

View File

@ -18,11 +18,11 @@ export function getGifCode(data) {
}) })
} }
export function getInfo(token) { export function getInfo() {
return request({ return request({
url: '/vue-admin-template/user/info', url: '/user/getSession',
method: 'get', method: 'get',
params: { token } params: {}
}) })
} }

View File

Before

Width:  |  Height:  |  Size: 3.7 MiB

After

Width:  |  Height:  |  Size: 3.7 MiB

View File

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 773 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 KiB

View File

@ -32,7 +32,7 @@ export default {
'sidebar' 'sidebar'
]), ]),
routes() { routes() {
return this.$router.options.routes return this.$store.state.user.routes
}, },
activeMenu() { activeMenu() {
const route = this.$route const route = this.$route

View File

@ -2,11 +2,13 @@
* @Author: 龚祖望 573413756@qq.com * @Author: 龚祖望 573413756@qq.com
* @Date: 2022-05-16 09:16:41 * @Date: 2022-05-16 09:16:41
* @LastEditors: 龚祖望 573413756@qq.com * @LastEditors: 龚祖望 573413756@qq.com
* @LastEditTime: 2022-09-16 10:39:39 * @LastEditTime: 2022-10-09 15:28:49
* @FilePath: \dashengda\src\permission.js * @FilePath: \dashengda\src\permission.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
import router from './router' import router from './router'
import store from './store'
import { Message } from 'element-ui'
import NProgress from 'nprogress' // progress bar import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style import 'nprogress/nprogress.css' // progress bar style
import { getToken } from '@/utils/auth' // get token from cookie import { getToken } from '@/utils/auth' // get token from cookie
@ -31,8 +33,31 @@ router.beforeEach(async(to, from, next) => {
next({ path: '/overview' }) next({ path: '/overview' })
NProgress.done() NProgress.done()
} else { } else {
next() const corpName = store.getters.corpName
NProgress.done() if (corpName) {
next()
NProgress.done()
} else {
try {
const res = await store.dispatch('user/getInfo')
store.dispatch('user/generateRoutes', res).then(() => {
router.addRoutes(store.getters.asyncRouters)
next()
}).catch(async err => {
// remove token and go to login page to re-login
await store.dispatch('user/resetToken')
Message.error(err || 'Has Error')
next(`/login?redirect=${to.path}`)
NProgress.done()
})
} catch (error) {
// remove token and go to login page to re-login
await store.dispatch('user/resetToken')
Message.error(error || 'Has Error')
next(`/login?redirect=${to.path}`)
NProgress.done()
}
}
} }
} else { } else {
/* has no token*/ /* has no token*/

View File

@ -228,48 +228,36 @@ export const constantRoutes = [
} }
] ]
}, },
{
path: '/data',
component: Layout,
name: 'Data',
meta: { title: '数据管理', icon: 'data' },
children: [
{
path: 'realTime',
name: 'RealTime',
component: () => import('@/views/data/realTime/index'),
meta: { title: '实时数据' }
},
{
path: 'history',
name: 'History',
component: () => import('@/views/data/history/index'),
meta: { title: '历史数据' }
},
{
path: 'value',
name: 'Value',
component: () => import('@/views/data/value/index'),
meta: { title: '数据价值' }
}
]
},
// {
// path: 'external-link',
// component: Layout,
// children: [
// {
// path: 'https://panjiachen.github.io/vue-element-admin-site/#/',
// meta: { title: 'External Link', icon: 'link' }
// }
// ]
// },
// 404 page must be placed at the end !!!
{ path: '*', redirect: '/404', hidden: true } { path: '*', redirect: '/404', hidden: true }
] ]
export const asyncRouter = [{
path: '/data',
component: Layout,
name: 'Data',
meta: { title: '数据管理', icon: 'data', permission: ['dashengda'] },
children: [
{
path: 'realTime',
name: 'RealTime',
component: () => import('@/views/data/realTime/index'),
meta: { title: '实时数据', permission: ['dashengda'] }
},
{
path: 'history',
name: 'History',
component: () => import('@/views/data/history/index'),
meta: { title: '历史数据', permission: ['dashengda'] }
},
{
path: 'value',
name: 'Value',
component: () => import('@/views/data/value/index'),
meta: { title: '数据价值', permission: ['dashengda'] }
}
]
}]
const createRouter = () => new Router({ const createRouter = () => new Router({
mode: 'history', // require service support mode: 'history', // require service support
scrollBehavior: () => ({ y: 0 }), scrollBehavior: () => ({ y: 0 }),
@ -277,6 +265,7 @@ const createRouter = () => new Router({
}) })
const router = createRouter() const router = createRouter()
router.addRoutes(asyncRouter)
// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 // Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() { export function resetRouter() {

View File

@ -4,6 +4,9 @@ const getters = {
token: state => state.user.token, token: state => state.user.token,
avatar: state => state.user.avatar, avatar: state => state.user.avatar,
name: state => state.user.name, name: state => state.user.name,
corpName: state => state.user.corpName corpName: state => state.user.corpName,
abbrCorpName: state => state.user.abbrCorpName,
asyncRouters: state => state.user.asyncRouters,
routes: state => state.user.routes
} }
export default getters export default getters

View File

@ -2,20 +2,50 @@
* @Author: 龚祖望 573413756@qq.com * @Author: 龚祖望 573413756@qq.com
* @Date: 2022-05-16 09:16:41 * @Date: 2022-05-16 09:16:41
* @LastEditors: 龚祖望 573413756@qq.com * @LastEditors: 龚祖望 573413756@qq.com
* @LastEditTime: 2022-08-31 20:21:28 * @LastEditTime: 2022-10-09 15:39:05
* @FilePath: \dashengda\src\store\modules\user.js * @FilePath: \dashengda\src\store\modules\user.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
import { login, logout } from '@/api/user' import { login, logout, getInfo } from '@/api/user'
import { getToken, setToken, removeToken } from '@/utils/auth' import { getToken, setToken, removeToken } from '@/utils/auth'
import { resetRouter } from '@/router' import { resetRouter, constantRoutes, asyncRouter } from '@/router'
function filterAsyncRouter(routerMap, roles) {
const accessedRouters = routerMap.filter(route => {
if (hasPermission([roles.permissions], route)) {
if (route.children && route.children.length) {
route.children = filterAsyncRouter(route.children, roles)
}
return true
}
return false
})
return accessedRouters
}
function hasPermission(permission, route) {
if (route.meta && route.meta.permission) {
let flag = true
for (let i = 0; i < permission.length; i++) {
flag = route.meta.permission.includes(permission[i])
if (flag) {
return true
}
}
return false
}
return true
}
const getDefaultState = () => { const getDefaultState = () => {
return { return {
token: getToken(), token: getToken(),
name: '', name: '',
avatar: '', avatar: '',
corpName: '浙江大胜达包装股份有限公司' corpName: '',
abbrCorpName: '',
permissions: [],
asyncRouters: []
} }
} }
@ -33,6 +63,19 @@ const mutations = {
}, },
SET_AVATAR: (state, avatar) => { SET_AVATAR: (state, avatar) => {
state.avatar = avatar state.avatar = avatar
},
SET_CORPNAME: (state, corpName) => {
state.corpName = corpName
},
SET_ABBRCORPNAME: (state, abbrCorpName) => {
state.abbrCorpName = abbrCorpName
},
SET_PERMISSIONS: (state, permissions) => {
state.permissions = permissions
},
SET_ROUTERS: (state, asyncRouters) => {
state.asyncRouters = asyncRouters
state.routes = [...constantRoutes, ...asyncRouters]
} }
} }
@ -42,7 +85,6 @@ const actions = {
const { username, password } = userInfo const { username, password } = userInfo
const data = { username, password } const data = { username, password }
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// console.log('res', res)
login(data).then(res => { login(data).then(res => {
if (res.code === '200000') { if (res.code === '200000') {
setToken('success') setToken('success')
@ -57,26 +99,26 @@ const actions = {
}) })
}, },
// // get user info // get user info
// getInfo({ commit, state }) { getInfo({ commit, state }) {
// return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// getInfo(state.token).then(response => { getInfo(state.token).then(response => {
// const { data } = response const { data } = response
// if (!data) { if (!data) {
// return reject('Verification failed, please Login again.') return reject('Verification failed, please Login again.')
// } }
// const { name, avatar } = data
// const { name, avatar } = data commit('SET_CORPNAME', data.corpname)
commit('SET_ABBRCORPNAME', data.abbrcorpname)
// commit('SET_NAME', name) commit('SET_PERMISSIONS', [data.permissions])
// commit('SET_AVATAR', avatar) resolve(data)
// resolve(data) }).catch(error => {
// }).catch(error => { reject(error)
// reject(error) })
// }) })
// }) },
// },
// user logout // user logout
logout({ commit, state }) { logout({ commit, state }) {
@ -99,6 +141,14 @@ const actions = {
commit('RESET_STATE') commit('RESET_STATE')
resolve() resolve()
}) })
},
generateRoutes({ commit }, roles) {
return new Promise(resolve => {
const accessedRouters = filterAsyncRouter(asyncRouter, roles)
console.log('accessedRouters', accessedRouters)
commit('SET_ROUTERS', accessedRouters)
resolve()
})
} }
} }

View File

@ -142,7 +142,6 @@ export default {
watch: { watch: {
$route: { $route: {
handler: function(route) { handler: function(route) {
console.log('route', route)
this.redirect = route.query && route.query.redirect this.redirect = route.query && route.query.redirect
}, },
immediate: true immediate: true

View File

@ -2,7 +2,7 @@
* @Author: 龚祖望 573413756@qq.com * @Author: 龚祖望 573413756@qq.com
* @Date: 2022-05-16 09:16:41 * @Date: 2022-05-16 09:16:41
* @LastEditors: 龚祖望 573413756@qq.com * @LastEditors: 龚祖望 573413756@qq.com
* @LastEditTime: 2022-07-21 11:08:30 * @LastEditTime: 2022-10-09 15:42:31
* @FilePath: \dashengda\src\views\dashboard\index.vue * @FilePath: \dashengda\src\views\dashboard\index.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
--> -->
@ -10,10 +10,10 @@
<div class="dashboard-container"> <div class="dashboard-container">
<swiper ref="mySwiper" :options="swiperOption" style="width:100%"> <swiper ref="mySwiper" :options="swiperOption" style="width:100%">
<swiper-slide> <swiper-slide>
<img class="slide-img" src="@/assets/images/slide1.png"> <img class="slide-img" :src="slide1">
</swiper-slide> </swiper-slide>
<swiper-slide> <swiper-slide>
<img class="slide-img" src="@/assets/images/slide2.png"> <img class="slide-img" :src="slide2">
</swiper-slide> </swiper-slide>
<swiper-slide> <swiper-slide>
<img class="slide-img" src="@/assets/images/slide3.png"> <img class="slide-img" src="@/assets/images/slide3.png">
@ -38,11 +38,25 @@ export default {
delay: 3000, delay: 3000,
disableOnInteraction: false disableOnInteraction: false
} }
} },
slide1: null,
slide2: null
} }
}, },
computed: { computed: {
...mapGetters(['name']) ...mapGetters(['abbrCorpName'])
},
created() {
switch (this.abbrCorpName) {
case '大胜达':
this.slide1 = require('@/assets/images/dashengda-slide1.png')
this.slide2 = require('@/assets/images/dashengda-slide2.png')
break
case '杭萧钢构':
this.slide1 = require('@/assets/images/hangxiao-slide1.png')
this.slide2 = require('@/assets/images/hangxiao-slide2.png')
break
}
}, },
mounted() { mounted() {
const imgs = document.getElementsByClassName('slide-img') const imgs = document.getElementsByClassName('slide-img')

View File

@ -6,7 +6,7 @@
style="align-items: baseline; margin-bottom: 30px" style="align-items: baseline; margin-bottom: 30px"
> >
<div class="header"> <div class="header">
<h1 class="title">大胜达PLC管理</h1> <h1 class="title">{{ abbrCorpName+'PLC管理' }}</h1>
<span class="date">{{ date }}</span> <span class="date">{{ date }}</span>
</div> </div>
</el-row> </el-row>
@ -172,7 +172,7 @@
:value="item" :value="item"
/> />
</el-select> </el-select>
<span v-else>{{ form.baud_rate }}</span> <span v-else>{{ form.socketConfig.baud_rate }}</span>
</el-form-item> </el-form-item>
<el-form-item label="校验位:"> <el-form-item label="校验位:">
<el-select v-if="add" v-model="form.socketConfig.check_mode"> <el-select v-if="add" v-model="form.socketConfig.check_mode">
@ -182,7 +182,7 @@
:value="item" :value="item"
/> />
</el-select> </el-select>
<span v-else>{{ form.check_mode }}</span> <span v-else>{{ form.socketConfig.check_mode }}</span>
</el-form-item> </el-form-item>
<el-form-item label="停止位:"> <el-form-item label="停止位:">
<el-select v-if="add" v-model="form.socketConfig.stop_bits"> <el-select v-if="add" v-model="form.socketConfig.stop_bits">
@ -192,7 +192,7 @@
:value="item" :value="item"
/> />
</el-select> </el-select>
<span v-else>{{ form.stop_bits }}</span> <span v-else>{{ form.socketConfig.stop_bits }}</span>
</el-form-item> </el-form-item>
<el-form-item label="数位号:"> <el-form-item label="数位号:">
<el-select v-if="add" v-model="form.socketConfig.data_bits"> <el-select v-if="add" v-model="form.socketConfig.data_bits">
@ -202,7 +202,7 @@
:value="item" :value="item"
/> />
</el-select> </el-select>
<span v-else>{{ form.data_bits }}</span> <span v-else>{{ form.socketConfig.data_bits }}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
@ -311,15 +311,15 @@
<el-table-column v-if="form.brand === 'mufg'" align="center" label="监控时间" prop="monitoring_timer" /> <el-table-column v-if="form.brand === 'mufg'" align="center" label="监控时间" prop="monitoring_timer" />
</el-table> </el-table>
<el-row v-if="add" type="flex" justify="space-between" style="width:60%;margin: 20px auto 0;"> <el-row v-if="add" type="flex" justify="space-between" style="width:60%;margin: 20px auto 0;">
<div> <div class="table_btn">
<img src="@/assets/images/plus_orange.png" width="35px" @click="addParam"> <img src="@/assets/images/plus_orange.png" width="35px" @click="addParam">
<p>添加</p> <p>添加</p>
</div> </div>
<div> <div class="table_btn">
<img src="@/assets/images/minus_orange.png" width="35px" @click="removeParam"> <img src="@/assets/images/minus_orange.png" width="35px" @click="removeParam">
<p>删除</p> <p>删除</p>
</div> </div>
<div> <div class="table_btn">
<img src="@/assets/images/remove_orange.png" width="35px" @click="removeAllParam"> <img src="@/assets/images/remove_orange.png" width="35px" @click="removeAllParam">
<p>清空</p> <p>清空</p>
</div> </div>
@ -348,7 +348,9 @@
label-width="130px" label-width="130px"
> >
<el-form-item label="配方名称:"> <el-form-item label="配方名称:">
<el-input v-if="add" v-model="form.productName" /> <el-input v-if="add" v-model="form.productName">
<template slot="prepend">{{ productPreName }}</template>
</el-input>
<span v-else>{{ form.productName }}</span> <span v-else>{{ form.productName }}</span>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -371,6 +373,7 @@
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'
import { getList, add, remove } from '@/api/terminal/plc' import { getList, add, remove } from '@/api/terminal/plc'
export default { export default {
@ -444,6 +447,21 @@ export default {
currentIndex: -1 currentIndex: -1
} }
}, },
computed: {
...mapGetters(['abbrCorpName']),
productPreName() {
let pre = ''
switch (this.abbrCorpName) {
case '大胜达':
pre = 'dsd-'
break
case '杭萧钢构':
pre = 'hxgg-'
break
}
return pre
}
},
mounted() { mounted() {
this.date = new Date().toLocaleDateString() this.date = new Date().toLocaleDateString()
this.getList() this.getList()
@ -510,6 +528,7 @@ export default {
}, },
nextStep() { nextStep() {
if (this.active === 2) { if (this.active === 2) {
this.form.productName = this.productPreName + this.form.productName
add(this.form).then(res => { add(this.form).then(res => {
if (res.code === '200000') { if (res.code === '200000') {
this.getList() this.getList()
@ -576,12 +595,6 @@ export default {
font-family: PingFangSC-Regular; font-family: PingFangSC-Regular;
color: rgba(0, 0, 0, 0.85); color: rgba(0, 0, 0, 0.85);
} }
.el-input {
line-height: 4;
}
.el-button:hover,.el-button:focus {
background-color: #fff;
}
.step2_params{ .step2_params{
.el-form-item__label{ .el-form-item__label{
color: #ff4e00; color: #ff4e00;
@ -595,6 +608,9 @@ export default {
} }
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
.el-button:hover,.el-button:focus {
background-color: #fff;
}
.header { .header {
font-family: Lato; font-family: Lato;
.title { .title {
@ -627,7 +643,7 @@ export default {
font-size: 20px; font-size: 20px;
font-family: Microsoft YaHei; font-family: Microsoft YaHei;
font-weight: bold; font-weight: bold;
margin: 10px; margin: 10px 0;
} }
.remove_icon { .remove_icon {
font-size: 18px; font-size: 18px;
@ -975,6 +991,9 @@ export default {
font-family: PingFangSC-Regular; font-family: PingFangSC-Regular;
margin: 0; margin: 0;
} }
.table_btn{
cursor: pointer;
}
} }
.step3_tab { .step3_tab {
position: relative; position: relative;

View File

@ -2,7 +2,7 @@
<div class="app-container" style="min-height: calc(100vh - 50px);"> <div class="app-container" style="min-height: calc(100vh - 50px);">
<el-row type="flex" justify="space-between" style="align-items: baseline;margin-bottom: 30px;"> <el-row type="flex" justify="space-between" style="align-items: baseline;margin-bottom: 30px;">
<div class="header"> <div class="header">
<h1 class="title">大胜达现有设备接入</h1> <h1 class="title">{{ abbrCorpName+'现有设备接入' }}</h1>
<span class="date">{{ date }}</span> <span class="date">{{ date }}</span>
<span class="device_num">{{ '共'+activeList.length + '个设备' }}</span> <span class="device_num">{{ '共'+activeList.length + '个设备' }}</span>
</div> </div>
@ -82,7 +82,7 @@
<el-form-item label="设备序列号:" prop="no"> <el-form-item label="设备序列号:" prop="no">
<el-input v-model="form.no" /> <el-input v-model="form.no" />
</el-form-item> </el-form-item>
<el-form-item label="设备描述:" prop="desc"> <el-form-item label="设备描述:" prop="devicedesc">
<el-input v-model="form.devicedesc" /> <el-input v-model="form.devicedesc" />
</el-form-item> </el-form-item>
<el-form-item label="设备状态:" prop="activestatus"> <el-form-item label="设备状态:" prop="activestatus">
@ -101,6 +101,7 @@
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'
import { remove, getList, add, active } from '@/api/terminal/add' import { remove, getList, add, active } from '@/api/terminal/add'
export default { export default {
@ -117,32 +118,32 @@ export default {
devicedesc: '', devicedesc: '',
activestatus: 0 activestatus: 0
}, },
productList: [ // productList: [
{ // {
name: '彩印车间', // name: '',
src: require('@/assets/images/device.png'), // src: require('@/assets/images/device.png'),
color: '#00CCF2', // color: '#00CCF2',
val: 0 // val: 0
}, // },
{ // {
name: '生产车间', // name: '',
src: require('@/assets/images/device2.png'), // src: require('@/assets/images/device2.png'),
color: '#FAB05A', // color: '#FAB05A',
val: 1 // val: 1
}, // },
{ // {
name: '成型车间', // name: '',
src: require('@/assets/images/device3.png'), // src: require('@/assets/images/device3.png'),
color: '#46D5A0', // color: '#46D5A0',
val: 2 // val: 2
}, // },
{ // {
name: '打包车间', // name: '',
src: require('@/assets/images/device4.png'), // src: require('@/assets/images/device4.png'),
color: '#9090F2', // color: '#9090F2',
val: 3 // val: 3
} // }
], // ],
deviceList: [ deviceList: [
{ {
name: 'RV400-NPU16T-5G-AR100', name: 'RV400-NPU16T-5G-AR100',
@ -172,6 +173,49 @@ export default {
} }
} }
}, },
computed: {
...mapGetters(['abbrCorpName']),
productList() {
let res
if (this.abbrCorpName === '杭萧钢构') {
res = [{
name: '数字工厂',
src: require('@/assets/images/device.png'),
color: '#00CCF2',
val: 0
}]
}
if (this.abbrCorpName === '大胜达') {
res = [
{
name: '彩印车间',
src: require('@/assets/images/device.png'),
color: '#00CCF2',
val: 0
},
{
name: '生产车间',
src: require('@/assets/images/device2.png'),
color: '#FAB05A',
val: 1
},
{
name: '成型车间',
src: require('@/assets/images/device3.png'),
color: '#46D5A0',
val: 2
},
{
name: '打包车间',
src: require('@/assets/images/device4.png'),
color: '#9090F2',
val: 3
}
]
}
return res
}
},
mounted() { mounted() {
this.date = new Date().toLocaleDateString() this.date = new Date().toLocaleDateString()
this.getList(0) this.getList(0)
@ -194,6 +238,7 @@ export default {
}, },
chooseCard(list) { chooseCard(list) {
list.forEach(item => { list.forEach(item => {
console.log('productList', this.productList)
const temp = this.productList.filter(product => product.name === item.productname) const temp = this.productList.filter(product => product.name === item.productname)
item.color = temp[0].color item.color = temp[0].color
item.src = temp[0].src item.src = temp[0].src
@ -321,10 +366,14 @@ export default {
.delete-icon, .delete-icon,
.add-icon { .add-icon {
position: absolute; position: absolute;
right: 10px; right: 5px;
bottom: 10px; bottom: 5px;
cursor: pointer; cursor: pointer;
} }
.add-icon{
right: -4px;
bottom: -4px;
}
.device-icon { .device-icon {
vertical-align: middle; vertical-align: middle;
margin-right: 10px; margin-right: 10px;

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card> <el-card v-if="abbrCorpName === '大胜达'">
<img src="@/assets/images/compass.png" class="compass"></img> <img src="@/assets/images/compass.png" class="compass"></img>
<div class="workshop"> <div class="workshop">
<div class="elec-terminal fm100" @click="showDialog('A000001')"> <div class="elec-terminal fm100" @click="showDialog('A000001')">
@ -79,6 +79,7 @@
</div> </div>
</div></el-card> </div></el-card>
<iframe v-else src="http://220.189.208.157:9797/login" width="100%" class="ifm" />
<!-- 设备详情弹窗 --> <!-- 设备详情弹窗 -->
<el-dialog title="设备监控详情" :visible.sync="visible" :top="dialogTop"> <el-dialog title="设备监控详情" :visible.sync="visible" :top="dialogTop">
<div class="card_detail"> <div class="card_detail">
@ -123,6 +124,7 @@
</div> </div>
</template> </template>
<script> <script>
import { mapGetters } from 'vuex'
import Antenna from './components/Antenna' import Antenna from './components/Antenna'
export default { export default {
components: { Antenna }, components: { Antenna },
@ -580,6 +582,7 @@ export default {
} }
}, },
computed: { computed: {
...mapGetters(['abbrCorpName']),
dialogTop() { dialogTop() {
return window.innerHeight > 880 ? '15vh' : '20px' return window.innerHeight > 880 ? '15vh' : '20px'
} }
@ -646,6 +649,10 @@ export default {
float: right; float: right;
} }
} }
.ifm{
height: 850px;
border: medium none
}
.workshop { .workshop {
position: relative; position: relative;
background: url(~@/assets/images/workshop.png) no-repeat; background: url(~@/assets/images/workshop.png) no-repeat;