删除老页面
This commit is contained in:
@@ -1,113 +0,0 @@
|
||||
<template>
|
||||
<div class="tasklist">
|
||||
<nav-bar></nav-bar>
|
||||
<div class="con1">
|
||||
<table class="filter-table">
|
||||
<tr>
|
||||
<!-- <th>当前状态</th> -->
|
||||
<th>故障名称</th>
|
||||
<th>故障类别</th>
|
||||
<th>故障内容</th>
|
||||
<th>处理办法</th>
|
||||
</tr>
|
||||
<tr v-for="(e,index) in dataList" :key="index">
|
||||
<!-- <td><span class="status-box" :class="{bgyellow:e.error_status ==='1',bgred:e.error_status ==='2',bggreen:e.error_status ==='0',}"></span></td> -->
|
||||
<td>{{e.error_name}}</td>
|
||||
<td :class="{cyellow:e.errorcategory_code ==='01',cred:e.errorcategory_code ==='02',cgreen:e.errorcategory_code ==='00',}">{{e.errorcategory_name}}</td>
|
||||
<!-- <td>{{e.error_category}}<span class="status-box" :class="{bgyellow:e.error_status ==='1',bgred:e.error_status ==='2',bggreen:e.error_status ==='0',}"></span></td> -->
|
||||
<td>{{e.error_content}}</td>
|
||||
<td class="last-td">{{e.handing_method}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {querryError} from '@/config/getData.js'
|
||||
import NavBar from '@components/NavBar.vue'
|
||||
export default {
|
||||
name: 'ErrorManage',
|
||||
components: {
|
||||
NavBar
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
pkId: '',
|
||||
dataList: []
|
||||
// dataList: [
|
||||
// {
|
||||
// task_id: '1',
|
||||
// error_status: '1',
|
||||
// error_status_name: '一类故障',
|
||||
// error_name: '障碍物报警',
|
||||
// error_category: '一类',
|
||||
// error_content: '车辆安全避障范围内有障碍物出现',
|
||||
// handing_method: '检查车辆行驶路线,移除障碍物'
|
||||
// },
|
||||
// {
|
||||
// task_id: '2',
|
||||
// error_status: '2',
|
||||
// error_status_name: '二类故障',
|
||||
// error_name: '障碍物报警',
|
||||
// error_category: '一类',
|
||||
// error_content: '车辆安全避障范围内有障碍物出现',
|
||||
// handing_method: '检查车辆行驶路线,移除障碍物'
|
||||
// },
|
||||
// {
|
||||
// task_id: '3',
|
||||
// error_status: '0',
|
||||
// error_status_name: '无故障',
|
||||
// error_name: '障碍物报警',
|
||||
// error_category: '一类',
|
||||
// error_content: '车辆安全避障范围内有障碍物出现',
|
||||
// handing_method: '检查车辆行驶路线,移除障碍物'
|
||||
// }
|
||||
// ]
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
},
|
||||
methods: {
|
||||
async initData () {
|
||||
let res = await querryError()
|
||||
if (res.code === '1') {
|
||||
this.dataList = res.result
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.bgyellow
|
||||
background #ECA800
|
||||
.bgred
|
||||
background #FA6400
|
||||
.bggreen
|
||||
background #00C852
|
||||
.cyellow
|
||||
color #ECA800
|
||||
.cred
|
||||
color #FA6400
|
||||
.cgreen
|
||||
color #00C852
|
||||
.con1
|
||||
float left
|
||||
box-sizing border-box
|
||||
width 100%
|
||||
padding .25rem
|
||||
.last-td
|
||||
width 4.4rem
|
||||
text-align left
|
||||
padding-left 0.5rem
|
||||
box-sizing border-box
|
||||
.status-box
|
||||
display inline-block
|
||||
width .4rem
|
||||
height .4rem
|
||||
border-radius .2rem
|
||||
</style>
|
||||
@@ -1,208 +0,0 @@
|
||||
<template>
|
||||
<section>
|
||||
<nav-bar></nav-bar>
|
||||
<div class="con0">
|
||||
<div class="site_nav active fl">
|
||||
<router-link class="site_nav_a" to="/home">首页</router-link>
|
||||
</div>
|
||||
<div class="site_nav fl">
|
||||
<router-link class="site_nav_a white" to="/taskmanage">任务管理</router-link>
|
||||
</div>
|
||||
<div class="site_nav fl">
|
||||
<router-link class="site_nav_a white" to="/errormanage">故障管理</router-link>
|
||||
</div>
|
||||
<div class="site_nav site_nav4 fl">
|
||||
<router-link class="site_nav_a white" to="/carrysite">车辆信息</router-link>
|
||||
</div>
|
||||
<div class="site_nav fl">
|
||||
<router-link class="site_nav_a white" to="/ifconfigindex/ifconfiginfo">开发者选项</router-link>
|
||||
</div>
|
||||
</div>
|
||||
<div class="con1">
|
||||
<!-- <img src="../images/aio/elec5.png"> -->
|
||||
<div class="elec-box">
|
||||
<div class="elec-c" :class="{bggreen: Number(dataInfo.electric) >= 40,bgred: Number(dataInfo.electric) < 40}" :style="'height:' + dataInfo.electric + '%'"></div>
|
||||
</div>
|
||||
<span class="elec-t" :class="{cgreen: Number(dataInfo.electric) >= 40,cred: Number(dataInfo.electric) < 40}">{{dataInfo.electric}}%</span>
|
||||
<button v-if="dataInfo.button_name" @click="clickSave">{{dataInfo.button_name}}</button>
|
||||
</div>
|
||||
<div class="con2">
|
||||
<div class="infoli">
|
||||
<img src="../images/aio/icon2.png">
|
||||
<span class="title">设备信息:</span>
|
||||
<span class="txt">{{dataInfo.device_info}}</span>
|
||||
</div>
|
||||
<div class="infoli">
|
||||
<img src="../images/aio/icon5.png">
|
||||
<span class="title">任务状态:</span>
|
||||
<span class="txt">{{dataInfo.task_status}}</span>
|
||||
</div>
|
||||
<div class="infoli">
|
||||
<img src="../images/aio/icon6.png">
|
||||
<span class="title">任务数量:</span>
|
||||
<span class="txt">{{dataInfo.task_num}}</span>
|
||||
</div>
|
||||
<div class="infoli">
|
||||
<img src="../images/aio/icon4.png">
|
||||
<span class="title">AGV故障:</span>
|
||||
<span class="txt">{{dataInfo.agv_error}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {queryHomePage, clickSave} from '@/config/getData.js'
|
||||
import NavBar from '@components/NavBar.vue'
|
||||
export default {
|
||||
name: 'Home',
|
||||
components: {
|
||||
NavBar
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
dataInfo: {}
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
this.refresh()
|
||||
},
|
||||
beforeDestroy () {
|
||||
clearInterval(this.timer)
|
||||
},
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this.initData()
|
||||
}, this.interTime)
|
||||
},
|
||||
async initData () {
|
||||
let res = await queryHomePage()
|
||||
if (res.code === '1') {
|
||||
this.dataInfo = res.result
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
},
|
||||
async clickSave () {
|
||||
if (!this.dataInfo.button_name) {
|
||||
return
|
||||
}
|
||||
let res = await clickSave(this.dataInfo.button_code)
|
||||
if (res.code === '1') {
|
||||
this.toast(res.desc)
|
||||
this.initData()
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
@import '~@style/mixin'
|
||||
.bgred
|
||||
background #fa6400
|
||||
.bggreen
|
||||
background #54C0B3
|
||||
.cred
|
||||
color #fa6400
|
||||
.cgreen
|
||||
color #54C0B3
|
||||
.con0
|
||||
height 1rem
|
||||
margin-top .26rem
|
||||
margin-bottom .5rem
|
||||
margin-left .4rem
|
||||
.site_nav
|
||||
_wh(2rem,1rem)
|
||||
_bis('../images/aio/btn_dis.png',100%,100%)
|
||||
margin-bottom .2rem
|
||||
margin-right .3rem
|
||||
&:nth-of-type(3)
|
||||
margin-right 1.8rem
|
||||
.site_nav_a
|
||||
display block
|
||||
_font(.32rem,1rem,,,center)
|
||||
cursor pointer
|
||||
color #ffffff
|
||||
.active
|
||||
_bis('../images/aio/btn_checked.png',100%,100%)
|
||||
.white
|
||||
color #464646
|
||||
.con1
|
||||
float left
|
||||
position relative
|
||||
width 4.62rem
|
||||
height 4.62rem
|
||||
background center / 100% 100% url(../images/aio/car2.png) no-repeat
|
||||
margin-left .4rem
|
||||
margin-right .69rem
|
||||
// img
|
||||
// position absolute
|
||||
// top .2rem
|
||||
// right .3rem
|
||||
.elec-box
|
||||
position absolute
|
||||
top .2rem
|
||||
right .3rem
|
||||
width .3rem
|
||||
height .6rem
|
||||
border .01rem solid #dddddd
|
||||
border-radius .03rem
|
||||
transform rotate(180deg)
|
||||
padding .02rem
|
||||
.elec-c
|
||||
// height 80%
|
||||
// background #ffcc00
|
||||
.elec-t
|
||||
float right
|
||||
margin-top .9rem
|
||||
text-align center
|
||||
width .9rem
|
||||
font-size .16rem
|
||||
button
|
||||
box-sizing border-box
|
||||
width 3.7rem
|
||||
height 1.08rem
|
||||
border 8px solid #F1F1F5
|
||||
border-radius 16px
|
||||
font-size .3rem
|
||||
background #ffffff
|
||||
margin-top .6rem
|
||||
margin-left .45rem
|
||||
padding .03rem
|
||||
.con2
|
||||
float left
|
||||
width 7.4rem
|
||||
height 5.02rem
|
||||
background center / 100% 100% url(../images/aio/bg2.png) no-repeat
|
||||
padding-top .2rem
|
||||
.infoli
|
||||
width 7rem
|
||||
line-height 1.08rem
|
||||
height 1.08rem
|
||||
background #ffffff
|
||||
margin 0 auto
|
||||
// margin-bottom 2px
|
||||
border-bottom 1px dotted #cccccc
|
||||
img
|
||||
float left
|
||||
margin .42rem .15rem 0 .31rem
|
||||
width .26rem
|
||||
height .26rem
|
||||
.title
|
||||
float left
|
||||
display inline-block
|
||||
font-size .24rem
|
||||
color #323232
|
||||
.txt
|
||||
float left
|
||||
display inline-block
|
||||
font-size .3rem
|
||||
color #FA6400
|
||||
</style>
|
||||
@@ -1,197 +0,0 @@
|
||||
<template>
|
||||
<section>
|
||||
<nav-bar></nav-bar>
|
||||
<!-- <div class="con0">
|
||||
<div class="site_nav active fl">
|
||||
<router-link class="site_nav_a" to="/home">首页</router-link>
|
||||
</div>
|
||||
<div class="site_nav fl">
|
||||
<router-link class="site_nav_a white" to="/taskmanage">任务管理</router-link>
|
||||
</div>
|
||||
<div class="site_nav fl">
|
||||
<router-link class="site_nav_a white" to="/errormanage">故障管理</router-link>
|
||||
</div>
|
||||
<div class="site_nav site_nav4 fl">
|
||||
<router-link class="site_nav_a white" to="/carrysite">车辆信息</router-link>
|
||||
</div>
|
||||
<div class="site_nav fl">
|
||||
<router-link class="site_nav_a white" to="/ifconfigindex/ifconfiginfo">开发者选项</router-link>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="con1">
|
||||
<!-- <img src="../images/aio/elec5.png"> -->
|
||||
<button v-if="dataInfo.button_name" @click="clickSave">{{dataInfo.button_name}}</button>
|
||||
</div>
|
||||
<div class="con2">
|
||||
<div class="infoli">
|
||||
<img src="../images/aio/icon2.png">
|
||||
<span class="title">设备信息:</span>
|
||||
<span class="txt">{{dataInfo.device_info}}</span>
|
||||
</div>
|
||||
<div class="infoli">
|
||||
<img src="../images/aio/icon5.png">
|
||||
<span class="title">当前任务:</span>
|
||||
<span class="txt">{{dataInfo.task_status}}</span>
|
||||
</div>
|
||||
<div class="infoli">
|
||||
<img src="../images/aio/icon5.png">
|
||||
<span class="title">任务状态:</span>
|
||||
<span class="txt">{{dataInfo.task_status}}</span>
|
||||
</div>
|
||||
<div class="infoli">
|
||||
<img src="../images/aio/icon6.png">
|
||||
<span class="title">任务数量:</span>
|
||||
<span class="txt">{{dataInfo.task_num}}</span>
|
||||
</div>
|
||||
<div class="infoli">
|
||||
<img src="../images/aio/icon6.png">
|
||||
<span class="title">当前速度:</span>
|
||||
<span class="txt">{{dataInfo.task_num}}</span>
|
||||
</div>
|
||||
<div class="infoli">
|
||||
<img src="../images/aio/icon4.png">
|
||||
<span class="title">AGV故障:</span>
|
||||
<span class="txt">{{dataInfo.agv_error}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {queryHomePage, clickSave} from '@/config/getData.js'
|
||||
import NavBar from '@components/NavBar.vue'
|
||||
export default {
|
||||
name: 'Home',
|
||||
components: {
|
||||
NavBar
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
dataInfo: {}
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
this.refresh()
|
||||
},
|
||||
beforeDestroy () {
|
||||
clearInterval(this.timer)
|
||||
},
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this.initData()
|
||||
}, this.interTime)
|
||||
},
|
||||
async initData () {
|
||||
let res = await queryHomePage()
|
||||
if (res.code === '1') {
|
||||
this.dataInfo = res.result
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
},
|
||||
async clickSave () {
|
||||
if (!this.dataInfo.button_name) {
|
||||
return
|
||||
}
|
||||
let res = await clickSave(this.dataInfo.button_code)
|
||||
if (res.code === '1') {
|
||||
this.toast(res.desc)
|
||||
this.initData()
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
@import '~@style/mixin'
|
||||
.bgred
|
||||
background #fa6400
|
||||
.bggreen
|
||||
background #54C0B3
|
||||
.cred
|
||||
color #fa6400
|
||||
.cgreen
|
||||
color #54C0B3
|
||||
.con0
|
||||
height 1rem
|
||||
margin-top .26rem
|
||||
margin-bottom .5rem
|
||||
margin-left .4rem
|
||||
.site_nav
|
||||
_wh(2rem,1rem)
|
||||
_bis('../images/aio/btn_dis.png',100%,100%)
|
||||
margin-bottom .2rem
|
||||
margin-right .3rem
|
||||
&:nth-of-type(3)
|
||||
margin-right 1.8rem
|
||||
.site_nav_a
|
||||
display block
|
||||
_font(.32rem,1rem,,,center)
|
||||
cursor pointer
|
||||
color #ffffff
|
||||
.active
|
||||
_bis('../images/aio/btn_checked.png',100%,100%)
|
||||
.white
|
||||
color #464646
|
||||
.con1
|
||||
float left
|
||||
position relative
|
||||
width 4.62rem
|
||||
height 4.62rem
|
||||
background center / 100% 100% url(../images/aio/car2.png) no-repeat
|
||||
margin-left .4rem
|
||||
margin-right .69rem
|
||||
margin-top 1rem
|
||||
// img
|
||||
// position absolute
|
||||
// top .2rem
|
||||
// right .3rem
|
||||
button
|
||||
box-sizing border-box
|
||||
width 3.7rem
|
||||
height 1.08rem
|
||||
border 8px solid #F1F1F5
|
||||
border-radius 16px
|
||||
font-size .3rem
|
||||
background #ffffff
|
||||
margin-top .6rem
|
||||
margin-left .45rem
|
||||
padding .03rem
|
||||
.con2
|
||||
float left
|
||||
width 7.4rem
|
||||
height 5.02rem
|
||||
background center / 100% 100% url(../images/aio/bg2.png) no-repeat
|
||||
padding-top .2rem
|
||||
margin-top 1rem
|
||||
.infoli
|
||||
width 7rem
|
||||
line-height 0.68rem
|
||||
height 0.68rem
|
||||
background #ffffff
|
||||
margin 0 auto
|
||||
// margin-bottom 2px
|
||||
border-bottom 1px dotted #cccccc
|
||||
img
|
||||
float left
|
||||
margin .22rem .15rem 0 .31rem
|
||||
width .26rem
|
||||
height .26rem
|
||||
.title
|
||||
float left
|
||||
display inline-block
|
||||
font-size .24rem
|
||||
color #323232
|
||||
.txt
|
||||
float left
|
||||
display inline-block
|
||||
font-size .3rem
|
||||
color #FA6400
|
||||
</style>
|
||||
@@ -1,140 +0,0 @@
|
||||
<template>
|
||||
<section>
|
||||
<nav-bar></nav-bar>
|
||||
<div class="clear site_container">
|
||||
<div class="fl left_side">
|
||||
<site-nav default_active="1" active="1-1"></site-nav>
|
||||
</div>
|
||||
<div class="fr con">
|
||||
<div class="box1">
|
||||
<div class="point fl" v-for="e in dataList" :key="e.id">{{e.code}}</div>
|
||||
</div>
|
||||
<div class="box2">
|
||||
<span>目标站点:</span>
|
||||
<button class="btn btn1">确定</button>
|
||||
<button class="btn btn2">清除</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@components/NavBar.vue'
|
||||
import SiteNav from '@components/SiteNav.vue'
|
||||
export default {
|
||||
name: 'MovePoint',
|
||||
components: {
|
||||
NavBar,
|
||||
SiteNav
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
dataList: [
|
||||
{
|
||||
id: '1',
|
||||
code: 'A-ZD101'
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
code: 'A-ZD102'
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
code: 'A-ZD103'
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
code: 'A-ZD101'
|
||||
},
|
||||
{
|
||||
id: '5',
|
||||
code: 'A-ZD101'
|
||||
},
|
||||
{
|
||||
id: '6',
|
||||
code: 'A-ZD101'
|
||||
},
|
||||
{
|
||||
id: '7',
|
||||
code: 'A-ZD101'
|
||||
},
|
||||
{
|
||||
id: '8',
|
||||
code: 'A-ZD101'
|
||||
},
|
||||
{
|
||||
id: '9',
|
||||
code: 'A-ZD101'
|
||||
},
|
||||
{
|
||||
id: '10',
|
||||
code: 'A-ZD101'
|
||||
},
|
||||
{
|
||||
id: '11',
|
||||
code: 'A-ZD101'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
// init
|
||||
},
|
||||
methods: {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.con
|
||||
float left
|
||||
margin-left .4rem
|
||||
margin-top .39rem
|
||||
.box1
|
||||
width 10.4rem
|
||||
height 4.6rem
|
||||
.point
|
||||
width 2rem
|
||||
line-height .9rem
|
||||
color #FA6400
|
||||
font-size .36rem
|
||||
text-align center
|
||||
border .16rem solid #DFE1E6
|
||||
border-radius .08rem
|
||||
background #ffffff
|
||||
margin-right .4rem
|
||||
margin-bottom .3rem
|
||||
.box2
|
||||
position relative
|
||||
width 9.81rem
|
||||
height 1.2rem
|
||||
border .16rem solid #DFE1E6
|
||||
border-radius .08rem
|
||||
background #ffffff
|
||||
span
|
||||
position absolute
|
||||
left .3rem
|
||||
top .3rem
|
||||
display inline-block
|
||||
font-size .28rem
|
||||
border-right 2px solid #FA6400
|
||||
width 1.8rem
|
||||
color #464646
|
||||
.btn
|
||||
width 1.8rem
|
||||
line-height .65rem
|
||||
font-size .32rem
|
||||
border-radius .28rem
|
||||
color #ffffff
|
||||
.btn1
|
||||
position absolute
|
||||
left 5.3rem
|
||||
top .15rem
|
||||
background #FD6A35
|
||||
.btn2
|
||||
position absolute
|
||||
left 7.5rem
|
||||
top .15rem
|
||||
background #989EBB
|
||||
</style>
|
||||
@@ -1,111 +0,0 @@
|
||||
<template>
|
||||
<div class="setup_bg">
|
||||
<div class="login_wrap">
|
||||
<div class="login_cnt clearfix">
|
||||
<div class="login_card fl">
|
||||
<div class="card_wrap">
|
||||
<div class="inputOuter">
|
||||
<label>域名地址</label>
|
||||
<input type="text" class="inputStyle" v-model="baseUrl">
|
||||
</div>
|
||||
<div class="inputOuter">
|
||||
<label>刷新时间</label>
|
||||
<input type="number" class="inputStyle" v-model="setTime">
|
||||
</div>
|
||||
</div>
|
||||
<div class="submit"><input type="submit" value="配 置" class="btn" @click="_config"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Setup',
|
||||
data () {
|
||||
return {
|
||||
baseUrl: this.$store.getters.baseUrl,
|
||||
setTime: this.$store.getters.setTime / 1000
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
// 点对点项目分辨率 1024 * 768
|
||||
// alert(document.body.clientWidth, 'a')
|
||||
// alert(document.body.clientHeight, 'b')
|
||||
// alert(window.screen.width, 'c')
|
||||
// alert(window.screen.height, 'd')
|
||||
},
|
||||
methods: {
|
||||
_config () {
|
||||
let obj = {
|
||||
baseUrl: this.baseUrl,
|
||||
setTime: this.setTime * 1000
|
||||
}
|
||||
this.$store.dispatch('setConfig', obj)
|
||||
this.$router.push('/home')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.setup_bg
|
||||
width 100%
|
||||
height 100%
|
||||
background center center / 100% 100% url(../images/aio/bg.png) no-repeat
|
||||
.login_wrap
|
||||
position fixed
|
||||
left 50%
|
||||
top 50%
|
||||
width 6.5rem
|
||||
transform translate3d(-50%, -50%, 0)
|
||||
border-radius 15px
|
||||
overflow hidden
|
||||
.login_cnt
|
||||
position relative
|
||||
width 200%
|
||||
overflow hidden
|
||||
.login_card
|
||||
width 50%
|
||||
padding .3rem
|
||||
.card_wrap
|
||||
overflow hidden
|
||||
.inputOuter
|
||||
position relative
|
||||
height .5rem
|
||||
width 100%
|
||||
margin-bottom .3rem
|
||||
overflow hidden
|
||||
.inputStyle
|
||||
width 4rem
|
||||
font-size 0.26rem
|
||||
float right
|
||||
background none
|
||||
line-height .5rem
|
||||
height .5rem
|
||||
color #999999
|
||||
text-indent 10px
|
||||
border none
|
||||
box-sizing border-box
|
||||
background-color #ffffff
|
||||
.submit
|
||||
width 100%
|
||||
background-color #fa6400
|
||||
border-radius 5px
|
||||
.btn
|
||||
background none
|
||||
height .56rem
|
||||
line-height .56rem
|
||||
width 100%
|
||||
outline none
|
||||
font-weight normal
|
||||
font-size .32rem
|
||||
color #ffffff
|
||||
label
|
||||
position absolute
|
||||
font-size .3rem
|
||||
line-height .5rem
|
||||
color #333333
|
||||
padding-left .05rem
|
||||
</style>
|
||||
@@ -1,90 +0,0 @@
|
||||
<template>
|
||||
<section>
|
||||
<nav-bar></nav-bar>
|
||||
<div class="clear site_container">
|
||||
<div class="fl left_side">
|
||||
<site-nav default_active="1" active="1-2"></site-nav>
|
||||
</div>
|
||||
<div class="con1">
|
||||
<table class="filter-table">
|
||||
<tr>
|
||||
<th>任务号</th>
|
||||
<th>目标站点</th>
|
||||
<th>任务状态</th>
|
||||
<th>生成时间</th>
|
||||
</tr>
|
||||
<tr v-for="e in dataList" :key="e.task_id">
|
||||
<td>{{e.task_no}}</td>
|
||||
<td>{{e.next_point}}</td>
|
||||
<td>{{e.status}}</td>
|
||||
<td class="last-td">{{e.time}}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@components/NavBar.vue'
|
||||
import SiteNav from '@components/SiteNav.vue'
|
||||
export default {
|
||||
name: 'TaskList',
|
||||
components: {
|
||||
NavBar,
|
||||
SiteNav
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
pkId: '',
|
||||
dataList: [
|
||||
{
|
||||
task_id: '1',
|
||||
task_no: '1001',
|
||||
next_point: '1001',
|
||||
status: '正在执行',
|
||||
time: '2021-07-14 12:00:00'
|
||||
},
|
||||
{
|
||||
task_id: '2',
|
||||
task_no: '1002',
|
||||
next_point: '1001',
|
||||
status: '未执行',
|
||||
time: '2021-07-15 12:00:00'
|
||||
},
|
||||
{
|
||||
task_id: '3',
|
||||
task_no: '1003',
|
||||
next_point: '1001',
|
||||
status: '未执行',
|
||||
time: '2021-07-18 12:00:00'
|
||||
},
|
||||
{
|
||||
task_id: '4',
|
||||
task_no: '1004',
|
||||
next_point: '1001',
|
||||
status: '未执行',
|
||||
time: '2021-09-10 12:00:00'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
// init
|
||||
},
|
||||
methods: {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.con1
|
||||
float left
|
||||
margin-top .39rem
|
||||
width 10.4rem
|
||||
.last-td
|
||||
width 4.4rem
|
||||
text-align left
|
||||
padding-left 0.5rem
|
||||
box-sizing border-box
|
||||
</style>
|
||||
@@ -1,177 +0,0 @@
|
||||
<template>
|
||||
<section>
|
||||
<nav-bar></nav-bar>
|
||||
<div class="clear site_container">
|
||||
<div class="fl left_side">
|
||||
<!-- <site-nav default_active="1" active="1-3"></site-nav> -->
|
||||
<test-nav :array="testData" @change="handleChange"></test-nav>
|
||||
</div>
|
||||
<div>
|
||||
<test-one v-if="currentIndex === 0"></test-one>
|
||||
<test-two v-if="currentIndex === 1"></test-two>
|
||||
<test-three v-if="currentIndex === 2"></test-three>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="pop_wrapper">
|
||||
<div class="pop_box">
|
||||
<h2>验证信息</h2>
|
||||
<div class="info-box">
|
||||
<div class="cinfo"><span>用户名</span><input type="text"></div>
|
||||
<div class="cinfo"><span>密码</span><input type="password"></div>
|
||||
</div>
|
||||
<div class="pop_btns_box">
|
||||
<div class="pop_btn pop_btn_primary">确定</div>
|
||||
<div class="pop_btn">退出</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal"></div> -->
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@components/NavBar.vue'
|
||||
import SiteNav from '@components/SiteNav.vue'
|
||||
import TestNav from '@components/TestNav.vue'
|
||||
import TestOne from '@components/TestOne.vue'
|
||||
import TestTwo from '@components/TestTwo.vue'
|
||||
import TestThree from '@components/TestThree.vue'
|
||||
|
||||
export default {
|
||||
name: 'TaskManage',
|
||||
components: {
|
||||
NavBar,
|
||||
SiteNav,
|
||||
TestNav,
|
||||
TestOne,
|
||||
TestTwo,
|
||||
TestThree
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
// pkId: '',
|
||||
// dataList: [
|
||||
// {
|
||||
// task_id: '1',
|
||||
// task_no: '1001',
|
||||
// next_point: '1001',
|
||||
// status: '正在执行',
|
||||
// time: '2021-07-14 12:00:00'
|
||||
// },
|
||||
// {
|
||||
// task_id: '2',
|
||||
// task_no: '1002',
|
||||
// next_point: '1001',
|
||||
// status: '未执行',
|
||||
// time: '2021-07-15 12:00:00'
|
||||
// },
|
||||
// {
|
||||
// task_id: '3',
|
||||
// task_no: '1003',
|
||||
// next_point: '1001',
|
||||
// status: '未执行',
|
||||
// time: '2021-07-18 12:00:00'
|
||||
// },
|
||||
// {
|
||||
// task_id: '4',
|
||||
// task_no: '1004',
|
||||
// next_point: '1001',
|
||||
// status: '未执行',
|
||||
// time: '2021-09-10 12:00:00'
|
||||
// }
|
||||
// ],
|
||||
testData: [
|
||||
{
|
||||
label: '搬运站点',
|
||||
index: 0
|
||||
},
|
||||
{
|
||||
label: '任务列表',
|
||||
index: 1
|
||||
},
|
||||
{
|
||||
label: '任务管理',
|
||||
index: 2
|
||||
}
|
||||
],
|
||||
currentIndex: 0
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
// init
|
||||
},
|
||||
methods: {
|
||||
// toRadio (e) {
|
||||
// this.pkId = this.pkId === e.task_id ? '' : e.task_id
|
||||
// },
|
||||
handleChange (i) {
|
||||
this.currentIndex = i
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
// <style lang="stylus" scoped>
|
||||
// @import '~@style/mixin'
|
||||
// .pop_btns_box
|
||||
// _wh(100%,.88rem)
|
||||
// _fj(center)
|
||||
// margin-top .2rem
|
||||
// .pop_btn
|
||||
// _wh(1.8rem,.88rem)
|
||||
// background #989EBB
|
||||
// border 2px solid #8B90A6
|
||||
// border-radius: .28rem
|
||||
// _font(.32rem,.88rem,#fff,500,center)
|
||||
// margin 0 .12rem
|
||||
// .pop_btn_primary
|
||||
// background #FD6A35
|
||||
// border 2px solid #E74F19
|
||||
// .pop_wrapper
|
||||
// position fixed
|
||||
// top 0
|
||||
// bottom 0
|
||||
// left 0
|
||||
// right 0
|
||||
// text-align center
|
||||
// z-index 10000
|
||||
// &::after
|
||||
// content ""
|
||||
// display inline-block
|
||||
// height 100%
|
||||
// width 0
|
||||
// vertical-align middle
|
||||
// .modal
|
||||
// position fixed
|
||||
// left 0
|
||||
// top 0
|
||||
// _wh(100%,100%)
|
||||
// opacity .5
|
||||
// background #000
|
||||
// z-index 999
|
||||
// .pop_box
|
||||
// display inline-block
|
||||
// vertical-align middle
|
||||
// _wh(9rem,4.8rem)
|
||||
// padding .2rem
|
||||
// background-color #fff
|
||||
// border-radius .16rem
|
||||
// overflow hidden
|
||||
// h2
|
||||
// _font(.4rem,.56rem,#464646,600,center)
|
||||
// .info-box
|
||||
// font-size .3rem
|
||||
// span
|
||||
// display inline-block
|
||||
// width 1.8rem
|
||||
// margin-right .2rem
|
||||
// input
|
||||
// border 1px solid #464646
|
||||
// border-radius 8px
|
||||
// height .9rem
|
||||
// line-height .9rem
|
||||
// width 4.6rem
|
||||
// margin-top .22rem
|
||||
// margin-bottom .2rem
|
||||
// text-indent .14rem
|
||||
// </style>
|
||||
@@ -1,373 +0,0 @@
|
||||
<template>
|
||||
<section>
|
||||
<nav-bar></nav-bar>
|
||||
<div class="clear site_container">
|
||||
<div class="fl left_side">
|
||||
<site-nav default_active="2" active="2-3"></site-nav>
|
||||
</div>
|
||||
<div class="fl right_side">
|
||||
<div class="right_side_box_1">
|
||||
<ul class="site_btn_box site_btn_box_1">
|
||||
<li class="site_btn">{{status.inLineStatus_name}}</li>
|
||||
<li class="site_btn">{{status.UpdateStatus_name}}</li>
|
||||
</ul>
|
||||
<ul class="site_btn_box site_btn_box_2">
|
||||
<li class="site_btn_1">
|
||||
<button class="btn_big" type="button" @click="_softStart" :disabled="disabled1">
|
||||
<span class="state_icon state_icon_1"></span>
|
||||
<span class="state_title">软启动</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="site_btn_1">
|
||||
<button class="btn_big" @click="_skipStartPoint" :disabled="disabled2">
|
||||
<span class="state_icon state_icon_2"></span>
|
||||
<span class="state_title">跳过起点</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="site_btn_1">
|
||||
<button class="btn_big" @click="_exit" :disabled="disabled5">
|
||||
<span class="state_icon state_icon_3"></span>
|
||||
<span class="state_title">退出</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="site_btn_1">
|
||||
<button class="btn_big" @click="_fullscreen">
|
||||
<span class="state_icon state_icon_4"></span>
|
||||
<span class="state_title">全屏</span>
|
||||
</button>
|
||||
</li>
|
||||
<li class="site_btn_1">
|
||||
<button class="btn_big" @click="_ShutDown" :disabled="disabled3">
|
||||
<span class="state_icon state_icon_5"></span>
|
||||
<span class="state_title">关机</span>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="site_btn_box site_btn_box_2 site_btn_box_3">
|
||||
<li class="site_btn_3"><button class="btn_big" @click="_queryRestPoint">初始化坐标</button></li>
|
||||
<!-- <li class="site_btn_3">SLAM页面</li> -->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="show" class="pop_wrapper">
|
||||
<div class="pop_box">
|
||||
<h2>初始化坐标</h2>
|
||||
<div class="pop_ul_wrapper">
|
||||
<ul class="pop_ul">
|
||||
<li>坐标信息</li>
|
||||
<li v-for="(e,i) in result" :key="i" @click="tocheck(e)" :class="{'checked': e === obj}"><span class="pop_ul_span">{{e.point_code}}</span><span class="pop_ul_span">{{e.point_name}}</span><span class="pop_ul_span">{{e.x}}</span><span class="pop_ul_span">{{e.y}}</span><span class="pop_ul_span">{{e.t}}</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="pop_btns_box">
|
||||
<button class="pop_btn" :class="{'pop_btn_primary': JSON.stringify(obj)!=='{}'}" :disabled="disabled4" @click="_restCoordinate">确定</button>
|
||||
<button class="pop_btn pop_btn_primary" @click="show=false">退出</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="show" class="modal"></div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@components/NavBar.vue'
|
||||
import SiteNav from '@components/SiteNav.vue'
|
||||
import {softStart, skipStartPoint, ShutDown, queryRestPoint, restCoordinate, queryAgvStatus, quitNow} from '@/config/getData2.js'
|
||||
export default {
|
||||
name: 'AgvState',
|
||||
components: {
|
||||
NavBar,
|
||||
SiteNav
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
disabled1: false,
|
||||
disabled2: false,
|
||||
disabled3: false,
|
||||
disabled4: false,
|
||||
disabled5: false,
|
||||
show: false,
|
||||
fullscreen: false,
|
||||
result: [],
|
||||
obj: {},
|
||||
status: {}
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this._queryAgvStatus()
|
||||
this.refresh()
|
||||
},
|
||||
beforeDestroy () {
|
||||
clearInterval(this.timer)
|
||||
},
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this._queryAgvStatus()
|
||||
}, this.interTime)
|
||||
},
|
||||
async _softStart () {
|
||||
this.disabled1 = true
|
||||
try {
|
||||
let res = await softStart()
|
||||
if (res.code === '1') {
|
||||
this.toast(res.desc)
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
this.disabled1 = false
|
||||
} catch (e) {
|
||||
this.disabled1 = false
|
||||
}
|
||||
},
|
||||
async _skipStartPoint () {
|
||||
this.disabled2 = true
|
||||
try {
|
||||
let res = await skipStartPoint()
|
||||
if (res.code === '1') {
|
||||
this.toast(res.desc)
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
this.disabled2 = false
|
||||
} catch (e) {
|
||||
this.disabled2 = false
|
||||
}
|
||||
},
|
||||
async _ShutDown () {
|
||||
this.disabled3 = true
|
||||
try {
|
||||
let res = await ShutDown()
|
||||
if (res.code === '1') {
|
||||
this.toast(res.desc)
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
this.disabled3 = false
|
||||
} catch (e) {
|
||||
this.disabled3 = false
|
||||
}
|
||||
},
|
||||
async _exit () {
|
||||
// window.close()
|
||||
this.disabled5 = true
|
||||
try {
|
||||
let res = await quitNow()
|
||||
if (res.code === '1') {
|
||||
this.toast(res.desc)
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
this.disabled5 = false
|
||||
} catch (e) {
|
||||
this.disabled5 = false
|
||||
}
|
||||
},
|
||||
_fullscreen () {
|
||||
// let element = document.documentElement
|
||||
if (document.exitFullscreen) {
|
||||
document.exitFullscreen()
|
||||
} else if (document.webkitCancelFullScreen) {
|
||||
document.webkitCancelFullScreen()
|
||||
} else if (document.mozCancelFullScreen) {
|
||||
document.mozCancelFullScreen()
|
||||
} else if (document.msExitFullscreen) {
|
||||
document.msExitFullscreen()
|
||||
}
|
||||
// if (this.fullscreen) {
|
||||
// if (document.exitFullscreen) {
|
||||
// document.exitFullscreen()
|
||||
// } else if (document.webkitCancelFullScreen) {
|
||||
// document.webkitCancelFullScreen()
|
||||
// } else if (document.mozCancelFullScreen) {
|
||||
// document.mozCancelFullScreen()
|
||||
// } else if (document.msExitFullscreen) {
|
||||
// document.msExitFullscreen()
|
||||
// }
|
||||
// } else {
|
||||
// if (element.requestFullscreen) {
|
||||
// element.requestFullscreen()
|
||||
// } else if (element.webkitRequestFullScreen) {
|
||||
// element.webkitRequestFullScreen()
|
||||
// } else if (element.mozRequestFullScreen) {
|
||||
// element.mozRequestFullScreen()
|
||||
// } else if (element.msRequestFullscreen) {
|
||||
// // IE11
|
||||
// element.msRequestFullscreen()
|
||||
// }
|
||||
// }
|
||||
// this.fullscreen = !this.fullscreen
|
||||
},
|
||||
async _queryRestPoint () {
|
||||
let res = await queryRestPoint()
|
||||
if (res.code === '1') {
|
||||
this.result = res.result
|
||||
this.show = true
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
},
|
||||
tocheck (e) {
|
||||
this.obj = e
|
||||
},
|
||||
async _restCoordinate () {
|
||||
this.disabled4 = true
|
||||
if (JSON.stringify(this.obj) === '{}') {
|
||||
this.toast('请选择坐标')
|
||||
this.disabled4 = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await restCoordinate(this.obj.point_code, this.obj.point_name, this.obj.x, this.obj.y, this.obj.t)
|
||||
if (res.code === '1') {
|
||||
this.toast(res.desc)
|
||||
this.show = false
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
this.disabled4 = false
|
||||
} catch (e) {
|
||||
this.disabled4 = false
|
||||
}
|
||||
},
|
||||
async _queryAgvStatus () {
|
||||
let res = await queryAgvStatus()
|
||||
if (res.code === '1') {
|
||||
this.status = res.result
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
@import '~@style/mixin'
|
||||
.pop_btns_box
|
||||
_wh(100%,.88rem)
|
||||
_fj(center)
|
||||
.pop_btn
|
||||
_wh(1.8rem,.88rem)
|
||||
background #989EBB
|
||||
border 2px solid #8B90A6
|
||||
border-radius: .28rem
|
||||
_font(.32rem,.88rem,#fff,500,center)
|
||||
margin 0 .12rem
|
||||
&:disabled
|
||||
background #989EBB
|
||||
border 2px solid #8B90A6
|
||||
.pop_btn_primary
|
||||
background #FD6A35
|
||||
border 2px solid #E74F19
|
||||
.right_side_box_1
|
||||
_wh(100%,100%)
|
||||
padding .26rem .34rem 0 .48rem
|
||||
.site_btn_box
|
||||
_wh(100%,auto)
|
||||
overflow hidden
|
||||
.site_btn_box_2
|
||||
width 10rem
|
||||
margin-top .7rem
|
||||
_fj()
|
||||
.site_btn_box_3
|
||||
_fj(flex-start)
|
||||
margin-top .2rem
|
||||
.site_btn
|
||||
float left
|
||||
_wh(2.6rem,1rem)
|
||||
background #FFFFFF
|
||||
border 1.6px solid #54C0B3
|
||||
box-shadow 2px 0px 5px 0px rgba(222,222,222,1)
|
||||
border-radius .16rem
|
||||
_font(.32rem,1rem,#54C0B3,600,center)
|
||||
margin-right .3rem
|
||||
.site_btn_1
|
||||
float left
|
||||
_wh(1.84rem,1.84rem)
|
||||
_bis('../../images/aio/agv_btn_bg.png', 100%)
|
||||
.btn_big
|
||||
_wh(100%,100%)
|
||||
background none
|
||||
_fj(center,,column)
|
||||
cursor pointer
|
||||
.state_icon
|
||||
_wh(.6rem,.6rem)
|
||||
margin-bottom .13rem
|
||||
.state_icon_1
|
||||
_bis('../../images/aio/agv_1.png', 100%)
|
||||
.state_icon_2
|
||||
_bis('../../images/aio/agv_2.png', 100%)
|
||||
.state_icon_3
|
||||
_bis('../../images/aio/agv_3.png', 100%)
|
||||
.state_icon_4
|
||||
_bis('../../images/aio/agv_4.png', 100%)
|
||||
.state_icon_5
|
||||
_bis('../../images/aio/agv_5.png', 100%)
|
||||
.state_title
|
||||
_font(.32rem,.45rem,#464646,500,)
|
||||
.site_btn_3
|
||||
_wh(4.74rem,1.44rem)
|
||||
_font(.32rem,1.44rem,#464646,600,center)
|
||||
_bis('../../images/aio/agv_btn_bg_1.png',100%)
|
||||
.pop_wrapper
|
||||
position fixed
|
||||
top 0
|
||||
bottom 0
|
||||
left 0
|
||||
right 0
|
||||
text-align center
|
||||
z-index 10000
|
||||
&::after
|
||||
content ""
|
||||
display inline-block
|
||||
height 100%
|
||||
width 0
|
||||
vertical-align middle
|
||||
.modal
|
||||
position fixed
|
||||
left 0
|
||||
top 0
|
||||
_wh(100%,100%)
|
||||
opacity .5
|
||||
background #000
|
||||
z-index 999
|
||||
.pop_box
|
||||
display inline-block
|
||||
vertical-align middle
|
||||
_wh(9rem,6.4rem)
|
||||
padding .2rem
|
||||
background-color #fff
|
||||
border-radius .16rem
|
||||
overflow hidden
|
||||
h2
|
||||
_font(.4rem,.56rem,#464646,600,center)
|
||||
.pop_ul_wrapper
|
||||
_wh(6.88rem,4.1rem)
|
||||
margin .15rem auto
|
||||
overflow hidden
|
||||
.pop_ul
|
||||
_wh(100%, 100%)
|
||||
overflow-y auto
|
||||
li
|
||||
_wh(100%,.8rem)
|
||||
padding 0 .2rem
|
||||
border-bottom 2px dotted #D6D6D6
|
||||
text-align left
|
||||
span
|
||||
display inline-block
|
||||
_font(.28rem,.8rem,#323232,600,)
|
||||
vertical-align top
|
||||
padding-right .15rem
|
||||
&:nth-child(1)
|
||||
_font(.24rem,.8rem,#323232,600,)
|
||||
background #DFE1E6
|
||||
border-top-left-radius 0.1rem
|
||||
border-top-right-radius 0.1rem
|
||||
.pop_ul .checked
|
||||
background-color #FD6A35
|
||||
.pop_ul li.checked span
|
||||
color #fff
|
||||
</style>
|
||||
@@ -1,102 +0,0 @@
|
||||
<template>
|
||||
<section>
|
||||
<nav-bar></nav-bar>
|
||||
<div class="clear site_container">
|
||||
<div class="fl left_side">
|
||||
<site-nav default_active="2" active="2-1"></site-nav>
|
||||
</div>
|
||||
<div class="fl right_side">
|
||||
<div class="right_side_box_1">
|
||||
<ul class="site_btn_box">
|
||||
<li class="site_btn">{{result.working_status}}</li>
|
||||
</ul>
|
||||
<ul class="site_btn_box">
|
||||
<li class="site_btn">{{result.vehicle_status}}</li>
|
||||
</ul>
|
||||
<ul class="site_btn_box site_btn_box_1">
|
||||
<li class="site_btn site_btn_1">X坐标:{{result.x}}</li>
|
||||
<li class="site_btn site_btn_1">Y坐标:{{result.y}}</li>
|
||||
<li class="site_btn site_btn_1">航向角:{{result.z}}</li>
|
||||
<li class="site_btn site_btn_1">下发速度:{{result.send_speed}}</li>
|
||||
<li class="site_btn site_btn_1">实际速度:{{result.real_speed}}</li>
|
||||
<li class="site_btn site_btn_1">舵轮角度:{{result.carrier}}</li>
|
||||
<li class="site_btn site_btn_1">横向偏差:{{result.landscape_deviation}}</li>
|
||||
<li class="site_btn site_btn_1">航向偏差:{{result.course_deviation}}</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@components/NavBar.vue'
|
||||
import SiteNav from '@components/SiteNav.vue'
|
||||
import {queryVehicleStatus} from '@/config/getData2.js'
|
||||
export default {
|
||||
name: 'CarrySite',
|
||||
components: {
|
||||
NavBar,
|
||||
SiteNav
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
result: {}
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
this.refresh()
|
||||
},
|
||||
beforeDestroy () {
|
||||
clearInterval(this.timer)
|
||||
},
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this.initData()
|
||||
}, this.interTime)
|
||||
},
|
||||
async initData () {
|
||||
let res = await queryVehicleStatus()
|
||||
if (res.code === '1') {
|
||||
this.result = res.result
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
@import '~@style/mixin'
|
||||
.right_side_box_1
|
||||
_wh(100%,100%)
|
||||
padding .26rem .34rem 0 .48rem
|
||||
.site_btn_box
|
||||
_wh(100%,auto)
|
||||
overflow hidden
|
||||
.site_btn_box_1
|
||||
margin-top .2rem
|
||||
_fj(flex-start)
|
||||
flex-wrap wrap
|
||||
.site_btn
|
||||
float left
|
||||
_wh(2.6rem,1rem)
|
||||
background #FFFFFF
|
||||
border 1.6px solid #54C0B3
|
||||
box-shadow 2px 0px 5px 0px rgba(222,222,222,1)
|
||||
border-radius .16rem
|
||||
_font(.32rem,1rem,#54C0B3,,center)
|
||||
margin-right .3rem
|
||||
margin-bottom .2rem
|
||||
.site_btn_1
|
||||
width 30%
|
||||
border 1.6px solid #8B90A6
|
||||
color: #696969
|
||||
margin-right 3%
|
||||
margin-bottom .24rem
|
||||
</style>
|
||||
@@ -1,114 +0,0 @@
|
||||
<template>
|
||||
<section>
|
||||
<nav-bar></nav-bar>
|
||||
<div class="clear site_container">
|
||||
<div class="fl left_side">
|
||||
<site-nav default_active="2" active="2-2"></site-nav>
|
||||
</div>
|
||||
<div class="fl right_side">
|
||||
<div class="right_side_box_1">
|
||||
<ul class="site_btn_box">
|
||||
<li class="site_btn" :class="result.stopButton_status === '0' ? 'site_btn_disabled' : ''">
|
||||
<span class="state_color"></span>
|
||||
<span class="state_title">急停按钮</span>
|
||||
</li>
|
||||
<li class="site_btn" :class="result.speedReduction_status === '0' ? 'site_btn_disabled' : ''">
|
||||
<span class="state_color"></span>
|
||||
<span class="state_title">避障减速</span>
|
||||
</li>
|
||||
<li class="site_btn" :class="result.resetButton_status === '0' ? 'site_btn_disabled' : ''">
|
||||
<span class="state_color"></span>
|
||||
<span class="state_title">复位按钮</span>
|
||||
</li>
|
||||
<li class="site_btn" :class="result.speedStop_status === '0' ? 'site_btn_disabled' : ''">
|
||||
<span class="state_color"></span>
|
||||
<span class="state_title">避障停车</span>
|
||||
</li>
|
||||
<li class="site_btn" :class="result.securityTentacle_status === '0' ? 'site_btn_disabled' : ''">
|
||||
<span class="state_color"></span>
|
||||
<span class="state_title">安全触边</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@components/NavBar.vue'
|
||||
import SiteNav from '@components/SiteNav.vue'
|
||||
import {querrySensor} from '@/config/getData2.js'
|
||||
export default {
|
||||
name: 'SensorState',
|
||||
components: {
|
||||
NavBar,
|
||||
SiteNav
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
result: {}
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
this.refresh()
|
||||
},
|
||||
beforeDestroy () {
|
||||
clearInterval(this.timer)
|
||||
},
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this.initData()
|
||||
}, this.interTime)
|
||||
},
|
||||
async initData () {
|
||||
let res = await querrySensor()
|
||||
if (res.code === '1') {
|
||||
this.result = res.result
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
@import '~@style/mixin'
|
||||
.right_side_box_1
|
||||
_wh(8rem,100%)
|
||||
padding .26rem .34rem 0 0
|
||||
.site_btn_box
|
||||
_wh(100%,auto)
|
||||
margin .24rem 0 0 .24rem
|
||||
overflow hidden
|
||||
.site_btn
|
||||
float left
|
||||
_wh(2.84rem,1.24rem)
|
||||
background #FFFFFF
|
||||
border .12rem solid #DFE1E6
|
||||
border-radius .16rem
|
||||
margin 0 .24rem .2rem
|
||||
_fj(center)
|
||||
span
|
||||
display block
|
||||
.state_color
|
||||
_wh(.32rem,.32rem)
|
||||
background #00C852
|
||||
border-radius .2rem
|
||||
.state_title
|
||||
_font(.32rem,1rem,#696969,,)
|
||||
padding-left .24rem
|
||||
.site_btn_disabled
|
||||
opacity .5
|
||||
.site_btn
|
||||
border .12rem solid #DFE1E6
|
||||
.state_color
|
||||
background #C6C6C6
|
||||
.state_title
|
||||
color #696969
|
||||
</style>
|
||||
@@ -1,45 +0,0 @@
|
||||
<template>
|
||||
<div class="right_side_box">
|
||||
<h2>获取信息</h2>
|
||||
<div class="info_wrapper">
|
||||
<div class="ifconfig_info">
|
||||
{{result_info}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {debugInfo} from '@/config/getData2.js'
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
result_info: ''
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
this.refresh()
|
||||
},
|
||||
beforeDestroy () {
|
||||
clearInterval(this.timer)
|
||||
},
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this.initData()
|
||||
}, this.interTime)
|
||||
},
|
||||
async initData () {
|
||||
let res = await debugInfo()
|
||||
if (res.code === '1') {
|
||||
this.result_info = res.result.result_info
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,60 +0,0 @@
|
||||
<template>
|
||||
<div class="right_side_box">
|
||||
<h2>获取信息</h2>
|
||||
<div class="info_wrapper">
|
||||
<div class="ifconfig_info">
|
||||
{{result_info}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getIP } from '@/config/getData2.js'
|
||||
// import { sendWebsocket, closeWebsocket } from '@/config/websocket.js'
|
||||
export default {
|
||||
name: 'IfconfigInfo',
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
result_info: ''
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
// this.refresh()
|
||||
},
|
||||
// beforeDestroy () {
|
||||
// clearInterval(this.timer)
|
||||
// },
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this.initData()
|
||||
}, this.interTime)
|
||||
},
|
||||
async initData () {
|
||||
let res = await getIP()
|
||||
if (res.code === '1') {
|
||||
this.result_info = res.result.result_info
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
// initData () {
|
||||
// sendWebsocket('ws://' + `${this.store.getters.baseUrl}/` + 'webSocket/60', {}, this.wsMessage, null)
|
||||
// },
|
||||
// wsMessage (res) {
|
||||
// if (res.code === '1') {
|
||||
// this.result_info = res.result.result_info
|
||||
// } else {
|
||||
// this.toast(res.desc)
|
||||
// }
|
||||
// }
|
||||
}
|
||||
// beforeDestroy () {
|
||||
// closeWebsocket()
|
||||
// }
|
||||
}
|
||||
</script>
|
||||
@@ -1,263 +0,0 @@
|
||||
<template>
|
||||
<div class="right_side_box_1">
|
||||
<div v-if="fromShow" class="setup_wrapper">
|
||||
<div class="input_box">
|
||||
<div class="label" @click="$refs.input1.focus()">最大任务数</div>
|
||||
<input type="text" v-model="val1" ref="input1" @focus="show" data-layout="numeric">
|
||||
</div>
|
||||
<div class="input_box input_box_2">
|
||||
<div class="label" @click="$refs.input2.focus()">权限界面密码</div>
|
||||
<form>
|
||||
<input v-if="open1 === false" type="password" autocomplete=‘new-password’ v-model="val2" ref="input2" @focus="show" data-layout="normal">
|
||||
<input v-else type="text" v-model="val2" ref="input2" @focus="show" data-layout="normal">
|
||||
</form>
|
||||
<i :class="open1 === true?'icon_eyeopen':'icon_eyeclose'" @click="open1=!open1"></i>
|
||||
</div>
|
||||
<div class="input_box input_box_2" :class="{'error': error === true}">
|
||||
<div class="label" @click="$refs.input3.focus()">确认密码</div>
|
||||
<form>
|
||||
<input v-if="open2 === false" type="password" autocomplete=‘new-password’ v-model="val3" ref="input3" @focus="show" data-layout="normal">
|
||||
<input v-else type="text" v-model="val3" ref="input3" @focus="show" data-layout="normal">
|
||||
</form>
|
||||
<i :class="open2 === true?'icon_eyeopen':'icon_eyeclose'" @click="open2=!open2"></i>
|
||||
</div>
|
||||
<div class="btn_box">
|
||||
<button class="btn" :disabled="disabled2" @click="toSure">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="setup_no" @click="checkShow = true">验证密码>></div>
|
||||
<vue-touch-keyboard id="keyboard" :options="options" v-if="visible" :layout="layout" :cancel="hide" :accept="accept" :input="input" :next="next" />
|
||||
<div class="pop_wrapper" v-if="checkShow">
|
||||
<div class="pop_box">
|
||||
<h2>验证信息</h2>
|
||||
<div class="input_box input_box_2" :class="{'error': error === true}">
|
||||
<div class="label" @click="$refs.input4.focus()">密 码</div>
|
||||
<form>
|
||||
<input v-if="open3 === false" type="password" autocomplete=‘new-password’ v-model="pwd" ref="input4" @focus="show" data-layout="normal">
|
||||
<input v-else type="text" v-model="pwd" ref="input4" @focus="show" data-layout="normal">
|
||||
</form>
|
||||
<i :class="open3 === true?'icon_eyeopen':'icon_eyeclose'" @click="open3=!open3"></i>
|
||||
</div>
|
||||
<div class="pop_btns_box">
|
||||
<div class="pop_btn pop_btn_primary" :disabled="disabled1" @click="checkPassword">确定</div>
|
||||
<div class="pop_btn pop_btn_primary" @click="cancel">取消</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal" v-if="checkShow"></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {checkPassword} from '@/config/getData.js'
|
||||
import {parameterSetting} from '@/config/getData2.js'
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
val1: '',
|
||||
val2: '',
|
||||
val3: '',
|
||||
pwd: '',
|
||||
open1: false,
|
||||
open2: false,
|
||||
open3: false,
|
||||
error: false,
|
||||
visible: false,
|
||||
layout: 'normal',
|
||||
input: null,
|
||||
options: {
|
||||
useKbEvents: false,
|
||||
preventClickEvent: false
|
||||
},
|
||||
checkShow: false,
|
||||
fromShow: true,
|
||||
disabled1: false,
|
||||
disabled2: false
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.checkShow = true
|
||||
},
|
||||
methods: {
|
||||
async checkPassword () {
|
||||
this.disabled1 = true
|
||||
try {
|
||||
let res = await checkPassword(this.pwd)
|
||||
if (res.code === '1') {
|
||||
this.checkShow = false
|
||||
this.fromShow = true
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
this.disabled1 = false
|
||||
} catch (e) {
|
||||
this.disabled1 = false
|
||||
}
|
||||
this.hide()
|
||||
},
|
||||
cancel () {
|
||||
this.checkShow = false
|
||||
this.pwd = ''
|
||||
},
|
||||
async toSure () {
|
||||
this.disabled2 = true
|
||||
if (this.val2 !== this.val3) {
|
||||
this.toast('密码不一致,请重新输入')
|
||||
this.error = true
|
||||
this.disabled2 = false
|
||||
return
|
||||
}
|
||||
try {
|
||||
let res = await parameterSetting(this.val1, this.val2)
|
||||
if (res.code === '1') {
|
||||
this.toast(res.desc)
|
||||
Object.assign(this.$data, this.$options.data())
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
this.disabled2 = false
|
||||
} catch (e) {
|
||||
this.disabled2 = false
|
||||
}
|
||||
this.hide()
|
||||
},
|
||||
accept () {
|
||||
this.hide()
|
||||
},
|
||||
show (e) {
|
||||
this.input = e.target
|
||||
this.layout = e.target.dataset.layout
|
||||
if (!this.visible) {
|
||||
this.visible = true
|
||||
}
|
||||
},
|
||||
hide () {
|
||||
this.visible = false
|
||||
},
|
||||
next () {
|
||||
let inputs = document.querySelectorAll('input')
|
||||
let found = false;
|
||||
[].forEach.call(inputs, (item, i) => {
|
||||
if (!found && item === this.input && i < inputs.length - 1) {
|
||||
found = true
|
||||
this.$nextTick(() => {
|
||||
inputs[i + 1].focus()
|
||||
})
|
||||
}
|
||||
})
|
||||
if (!found) {
|
||||
this.input.blur()
|
||||
this.hide()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
@import '~@style/mixin'
|
||||
#keyboard
|
||||
position fixed
|
||||
left 0
|
||||
right 0
|
||||
bottom 0
|
||||
z-index 1000
|
||||
width 100%
|
||||
max-width 1366px
|
||||
margin 0 auto
|
||||
padding 1em
|
||||
background-color #EEE
|
||||
box-shadow 0px -3px 10px rgba(black, 0.3)
|
||||
border-radius 10px
|
||||
.right_side_box_1
|
||||
_wh(10.4rem,5.54rem)
|
||||
padding 1.02rem 0 0 .6rem
|
||||
.setup_wrapper
|
||||
_wh(6rem,100%)
|
||||
.input_box
|
||||
_wh(100%,1rem)
|
||||
background #FFFFFF
|
||||
border .016rem solid #8B90A6
|
||||
border-radius .16rem
|
||||
margin-bottom .24rem
|
||||
padding 0 .2rem
|
||||
_fj(flex-start)
|
||||
input
|
||||
width 3rem
|
||||
_font(.32rem,.968rem,#FA6400,,)
|
||||
i
|
||||
_font(.4rem,1rem,#8991A6,,)
|
||||
.input_box_2
|
||||
_fj()
|
||||
.label
|
||||
width 2rem
|
||||
_font(.32rem, 1rem,#696969,,)
|
||||
.btn_box
|
||||
margin-top .36rem
|
||||
.btn
|
||||
_wh(3rem,.88rem)
|
||||
_font(.32rem,.88rem,#fff,,center)
|
||||
background #989EBB
|
||||
border 2px solid #8B90A6
|
||||
border-radius .16rem
|
||||
.btn_primary
|
||||
background #FD6A35
|
||||
.error
|
||||
border 0.016rem solid #E74F19
|
||||
background-color #fdf7d5
|
||||
input
|
||||
background-color #fdf7d5
|
||||
.pop_wrapper
|
||||
position fixed
|
||||
top 0
|
||||
bottom 0
|
||||
left 0
|
||||
right 0
|
||||
text-align center
|
||||
z-index 999
|
||||
&::after
|
||||
content ""
|
||||
display inline-block
|
||||
height 100%
|
||||
width 0
|
||||
vertical-align middle
|
||||
.modal
|
||||
position fixed
|
||||
left 0
|
||||
top 0
|
||||
_wh(100%,100%)
|
||||
opacity .5
|
||||
background #000
|
||||
z-index 998
|
||||
.pop_box
|
||||
display inline-block
|
||||
vertical-align middle
|
||||
// _wh(8rem,4.8rem)
|
||||
// width 8rem
|
||||
padding .4rem
|
||||
background-color #fff
|
||||
border-radius .16rem
|
||||
overflow hidden
|
||||
h2
|
||||
_font(.4rem,.56rem,#464646,600,center)
|
||||
margin-bottom .2rem
|
||||
.pop_btns_box
|
||||
_wh(100%,.88rem)
|
||||
_fj(center)
|
||||
margin-top .2rem
|
||||
.pop_btn
|
||||
_wh(1.8rem,.88rem)
|
||||
background #989EBB
|
||||
border 2px solid #8B90A6
|
||||
border-radius: .28rem
|
||||
_font(.32rem,.88rem,#fff,500,center)
|
||||
margin 0 .12rem
|
||||
.pop_btn_primary
|
||||
background #FD6A35
|
||||
border 2px solid #E74F19
|
||||
.btngray
|
||||
background #989ebb
|
||||
border 2px solid #989ebb
|
||||
.setup_no
|
||||
_font(.32rem, 1rem,#FD6A35,,)
|
||||
</style>
|
||||
@@ -1,50 +0,0 @@
|
||||
<template>
|
||||
<div class="right_side_box">
|
||||
<h2>获取信息</h2>
|
||||
<div class="info_wrapper">
|
||||
<div class="ifconfig_info">
|
||||
{{result_info}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getLogList} from '@/config/getData2.js'
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
result_info: ''
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
// this.refresh()
|
||||
},
|
||||
// beforeDestroy () {
|
||||
// clearInterval(this.timer)
|
||||
// },
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this.initData()
|
||||
}, this.interTime)
|
||||
},
|
||||
async initData () {
|
||||
let res = await getLogList()
|
||||
if (res.code === '1') {
|
||||
this.result_info = res.result.result_info
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
.ifconfig_info
|
||||
font-size .2rem !important
|
||||
</style>
|
||||
@@ -1,45 +0,0 @@
|
||||
<template>
|
||||
<div class="right_side_box">
|
||||
<h2>获取信息</h2>
|
||||
<div class="info_wrapper">
|
||||
<div class="ifconfig_info">
|
||||
{{result_info}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getROSNodeList} from '@/config/getData2.js'
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
result_info: ''
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
// this.refresh()
|
||||
},
|
||||
// beforeDestroy () {
|
||||
// clearInterval(this.timer)
|
||||
// },
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this.initData()
|
||||
}, this.interTime)
|
||||
},
|
||||
async initData () {
|
||||
let res = await getROSNodeList()
|
||||
if (res.code === '1') {
|
||||
this.result_info = res.result.result_info
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,45 +0,0 @@
|
||||
<template>
|
||||
<div class="right_side_box">
|
||||
<h2>获取信息</h2>
|
||||
<div class="info_wrapper">
|
||||
<div class="ifconfig_info">
|
||||
{{result_info}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {softwareVersion} from '@/config/getData2.js'
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
result_info: ''
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
// this.refresh()
|
||||
},
|
||||
// beforeDestroy () {
|
||||
// clearInterval(this.timer)
|
||||
// },
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this.initData()
|
||||
}, this.interTime)
|
||||
},
|
||||
async initData () {
|
||||
let res = await softwareVersion()
|
||||
if (res.code === '1') {
|
||||
this.result_info = res.result.result_info
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,45 +0,0 @@
|
||||
<template>
|
||||
<div class="right_side_box">
|
||||
<h2>获取信息</h2>
|
||||
<div class="info_wrapper">
|
||||
<div class="ifconfig_info">
|
||||
{{result_info}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {temperature} from '@/config/getData2.js'
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
interTime: this.$store.getters.setTime,
|
||||
timer: null,
|
||||
result_info: ''
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initData()
|
||||
// this.refresh()
|
||||
},
|
||||
// beforeDestroy () {
|
||||
// clearInterval(this.timer)
|
||||
// },
|
||||
methods: {
|
||||
refresh () {
|
||||
this.timer = setInterval(() => {
|
||||
this.initData()
|
||||
}, this.interTime)
|
||||
},
|
||||
async initData () {
|
||||
let res = await temperature()
|
||||
if (res.code === '1') {
|
||||
this.result_info = res.result.result_info
|
||||
} else {
|
||||
this.toast(res.desc)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -1,96 +0,0 @@
|
||||
<template>
|
||||
<section class="ifconfig">
|
||||
<nav-bar></nav-bar>
|
||||
<div class="clear site_container">
|
||||
<div class="fl left_side">
|
||||
<site-nav default_active="3" :active="active"></site-nav>
|
||||
</div>
|
||||
<div class="fl right_side">
|
||||
<router-view></router-view>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NavBar from '@components/NavBar.vue'
|
||||
import SiteNav from '@components/SiteNav.vue'
|
||||
import { sendWebsocket, closeWebsocket } from '@/config/websocket.js'
|
||||
export default {
|
||||
components: {
|
||||
NavBar,
|
||||
SiteNav
|
||||
},
|
||||
data () {
|
||||
return {}
|
||||
},
|
||||
computed: {
|
||||
active () {
|
||||
let cur = ''
|
||||
if (this.$route.path === '/ifconfigindex/ifconfiginfo') {
|
||||
cur = '3-1'
|
||||
}
|
||||
if (this.$route.path === '/ifconfigindex/loglist') {
|
||||
cur = '3-2'
|
||||
}
|
||||
if (this.$route.path === '/ifconfigindex/roslist') {
|
||||
cur = '3-3'
|
||||
}
|
||||
if (this.$route.path === '/ifconfigindex/temperaturecup') {
|
||||
cur = '3-4'
|
||||
}
|
||||
if (this.$route.path === '/ifconfigindex/debuginfo') {
|
||||
cur = '3-5'
|
||||
}
|
||||
if (this.$route.path === '/ifconfigindex/softhardware') {
|
||||
cur = '3-6'
|
||||
}
|
||||
if (this.$route.path === '/ifconfigindex/ifconfigsetup') {
|
||||
cur = '3-7'
|
||||
}
|
||||
return cur
|
||||
}
|
||||
},
|
||||
created () {
|
||||
// this.initData()
|
||||
},
|
||||
methods: {
|
||||
initData () {
|
||||
sendWebsocket('ws://192.168.81.155:8010/webSocket/10', {}, this.wsMessage, this.wsError)
|
||||
},
|
||||
// ws连接成功,后台返回的ws数据,组件要拿数据渲染页面等操作
|
||||
wsMessage (data) {
|
||||
const dataJson = data
|
||||
console.log(dataJson, 444)
|
||||
// 这里写拿到数据后的业务代码
|
||||
},
|
||||
// ws连接失败,组件要执行的代码
|
||||
wsError () {
|
||||
// 比如取消页面的loading
|
||||
},
|
||||
requstWs () {
|
||||
// 防止用户多次连续点击发起请求,所以要先关闭上次的ws请求。
|
||||
closeWebsocket()
|
||||
// 跟后端协商,需要什么参数数据给后台
|
||||
const obj = {
|
||||
monitorUrl: 'xxxxxxxxxxxxx',
|
||||
userName: 'xxxxxxxxxx'
|
||||
}
|
||||
// 发起ws请求
|
||||
sendWebsocket('ws://test.ws.com', obj, this.wsMessage, this.wsError)
|
||||
}
|
||||
},
|
||||
beforeDestroy () {
|
||||
// 页面销毁时关闭ws。因为有可能ws连接接收数据尚未完成,用户就跳转了页面
|
||||
// 在需要主动关闭ws的地方都可以调用该方法
|
||||
closeWebsocket()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="stylus" scoped>
|
||||
>>>.site_nav_d, .ifconfig >>>.site_nav_a
|
||||
font-size .28rem
|
||||
>>>.site_nav&:nth-child(1) .site_nav_d, >>>.site_nav&:nth-child(1) .site_nav_a
|
||||
font-size .32rem
|
||||
</style>
|
||||
Reference in New Issue
Block a user