This commit is contained in:
2025-07-24 20:28:44 +08:00
parent ae2d9b631f
commit 20df8e895a
3 changed files with 39 additions and 29 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 836 B

View File

@@ -65,8 +65,7 @@
<script> <script>
import SaveChain from './save-chain.vue' import SaveChain from './save-chain.vue'
import { queryStation, queryTaskChain } from '@config/mork.js' import { queryStation, queryTaskChain, queryTaskChainDtl, sendTask, saveTask, cancelTask, deleteTaskChain, updateStation } from '@config/getData.js'
import { queryTaskChainDtl, sendTask, saveTask, cancelTask, deleteTaskChain, updateStation } from '@config/getData.js'
export default { export default {
components: { components: {
SaveChain SaveChain
@@ -75,7 +74,7 @@ export default {
return { return {
activeName: 'zdy', activeName: 'zdy',
stationName: '', stationName: '',
radioOption: [{label: '取货', text: '取', value: 'Ascend'}, {label: '放货', text: '放', value: 'Descend'}, {label: '移动', text: '移', value: 'Move'}, {label: '返回点', text: '返', value: 'Move'}], radioOption: [{label: '取货', text: '取', value: 'Ascend'}, {label: '放货', text: '放', value: 'Descend'}, {label: '移动', text: '移', value: 'Move'}, {label: '返回点', text: '返', value: 'Return'}],
dataList: [], dataList: [],
newData: [], newData: [],
linkData: [], linkData: [],
@@ -202,7 +201,6 @@ export default {
}, },
// 选取动作类型 // 选取动作类型
radioInput (e, i, value) { radioInput (e, i, value) {
console.log(this.newData)
const lastItem = this.newData.length > 0 ? this.newData[this.newData.length - 1].station_code : null const lastItem = this.newData.length > 0 ? this.newData[this.newData.length - 1].station_code : null
if (lastItem === e.station_code) { if (lastItem === e.station_code) {
this.$message('相邻的两个站点不能相同') this.$message('相邻的两个站点不能相同')
@@ -214,7 +212,7 @@ export default {
this.closePopover(i) this.closePopover(i)
return return
} }
if (this.newData.length > 0 && this.newData[this.newData.length - 1].action_type === 'Move') { if (this.newData.length > 0 && this.newData[this.newData.length - 1].action_type === 'Return') {
return return
} }
e.action_type = value e.action_type = value

View File

@@ -6,7 +6,7 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-row type="flex" justify="end" align="middle"> <el-row type="flex" justify="end" align="middle">
<div class="state-item">自动模式</div> <div v-if="JSON.stringify(topInfo) !== '{}'" class="state-item">{{ topInfo.isManual ? '手动模式' : '自动模式' }}</div>
<div v-if="JSON.stringify(topInfo) !== '{}'" class="state-item">{{ topInfo.state }}</div> <div v-if="JSON.stringify(topInfo) !== '{}'" class="state-item">{{ topInfo.state }}</div>
<div v-if="JSON.stringify(topInfo) !== '{}'" class="relative elec-qty-wrap" :class="{'elec-wraning': topInfo.batteryPower <= 40}"> <div v-if="JSON.stringify(topInfo) !== '{}'" class="relative elec-qty-wrap" :class="{'elec-wraning': topInfo.batteryPower <= 40}">
<div class="absolute elec-qty" :style="{ width: Number(topInfo.batteryPower) !== -1 ? `calc(100% - ${topInfo.batteryPower}%)` : '100%' }"></div> <div class="absolute elec-qty" :style="{ width: Number(topInfo.batteryPower) !== -1 ? `calc(100% - ${topInfo.batteryPower}%)` : '100%' }"></div>
@@ -26,7 +26,7 @@
<div class="error-tips" ref="scrollContainer" @click="$router.push('/index/warning')"> <div class="error-tips" ref="scrollContainer" @click="$router.push('/index/warning')">
<div class="zbox scroll-text" ref="scrollText"> <div class="zbox scroll-text" ref="scrollText">
<i class="el-icon-warning icon-warning"></i> <i class="el-icon-warning icon-warning"></i>
<div class="error-tips-t">错误提示1.障碍物告警 2.定位丢失</div> <div class="error-tips-t">错误提示{{ exception }}</div>
</div> </div>
</div> </div>
<el-row type="flex" class="relative main-conatiner"> <el-row type="flex" class="relative main-conatiner">
@@ -54,28 +54,38 @@ export default {
data () { data () {
return { return {
timer: null, timer: null,
topInfo: { topInfo: {},
batteryPower: -1.0, // topInfo: {
exceptionInfo: { // batteryPower: -1.0,
exception: ['重定位失败,检查环境或标记是否有变化.', '定位超时,尝试移动小车位置后重试.'], // exceptionInfo: {
exceptionCodes: [1, 17179869185, 1335734829057] // exception: ['重定位失败,检查环境或标记是否有变化.', '定位超时,尝试移动小车位置后重试.'],
}, // exceptionCodes: [1, 17179869185, 1335734829057]
id: '1', // 车号ID // },
ip: '192.168.100.82', // 车辆IP // id: '1', // 车号ID
isManual: false, // 是否是手动true是手动,false是自动 // ip: '192.168.100.82', // 车辆IP
mapId: 39, // 地图ID // isManual: false, // 是否是手动true是手动,false是自动
mapName: 'apt_map_1753078481180', // 地图名称 // mapId: 39, // 地图ID
name: 'V1', // 车辆名称 // mapName: 'apt_map_1753078481180', // 地图名称
state: '未知状态', // 车辆状态 // name: 'V1', // 车辆名称
stateId: 7, // 车辆状态ID // state: '未知状态', // 车辆状态
theta: 0.9073792099952698, // 车辆航向角 // stateId: 7, // 车辆状态ID
x: -4.030919075012207, // 车辆x坐标 // theta: 0.9073792099952698, // 车辆航向角
y: -1.6574244499206543 // 车辆y坐标 // x: -4.030919075012207, // 车辆x坐标
}, // y: -1.6574244499206543 // 车辆y坐标
// },
loginVisible: false, loginVisible: false,
configVisible: false configVisible: false
} }
}, },
computed: {
exception () {
let str = ''
if (JSON.stringify(this.topInfo) !== '{}') {
str = this.topInfo.exceptionInfo.exception.map((item, index) => `${index + 1}.${item}`).join('')
}
return str
}
},
created () { created () {
this._queryHead() this._queryHead()
}, },
@@ -131,6 +141,7 @@ export default {
wsMessage (res) { wsMessage (res) {
clearTimeout(this.timer) clearTimeout(this.timer)
this.topInfo = res.data this.topInfo = res.data
this.$store.dispatch('setAgvObj', this.topInfo)
}, },
wsErr () { wsErr () {
this.timer = setTimeout(() => { this.timer = setTimeout(() => {
@@ -151,11 +162,12 @@ export default {
background linear-gradient(0deg, #E64F29, rgba(230, 79, 41, 0.5)) background linear-gradient(0deg, #E64F29, rgba(230, 79, 41, 0.5))
border-color rgba(230, 79, 41, 0.7) border-color rgba(230, 79, 41, 0.7)
.state-item .state-item
_wh(.72rem, .3rem) _wh(.72rem, .25rem)
_font(.14rem,.3rem,#fff,,center) _font(.14rem,.25rem,#fff,,center)
font-family 'Adobe Heiti Std' font-family 'Adobe Heiti Std'
margin-right .04rem margin-right .04rem
background center / 100% 100% url(../../images/new/state-item_bg.png) no-repeat background center / 100% 100% url(../../images/new/state-item_bg.png) no-repeat
box-shadow inset 0px 0px 3px 2px rgb(149, 221, 253, 70%)
.elec-qty-wrap .elec-qty-wrap
_wh(.5rem, .25rem) _wh(.5rem, .25rem)
margin-right .04rem margin-right .04rem
@@ -170,12 +182,12 @@ export default {
.elec-qty-border .elec-qty-border
_wh(100%, 100%) _wh(100%, 100%)
z-index 152 z-index 152
box-shadow inset 0px 0px 4px 2px rgba(90, 223, 188, 70%) box-shadow inset 0px 0px 3px 2px rgba(90, 223, 188, 70%)
.elec-wraning .elec-wraning
border-color #ffe600 border-color #ffe600
background center / 100% 100% url(../../images/new/elec_y.png) no-repeat background center / 100% 100% url(../../images/new/elec_y.png) no-repeat
.elec-qty-border .elec-qty-border
box-shadow inset 0px 0px 4px 2px rgba(192, 176, 28, 70%) box-shadow inset 0px 0px 3px 2px rgba(192, 176, 28, 70%)
.elec-txt .elec-txt
position relative position relative
z-index 153 z-index 153