Merge branch 'xhf' of http://git.znkjfw.com/ak/zn-admin-vue3-wcs into xhf
This commit is contained in:
commit
9cc9c1f7d1
BIN
src/assets/imgs/allBoard/dianlianggreen.png
Normal file
BIN
src/assets/imgs/allBoard/dianlianggreen.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 328 B |
BIN
src/assets/imgs/allBoard/dianliangred.png
Normal file
BIN
src/assets/imgs/allBoard/dianliangred.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 328 B |
BIN
src/assets/imgs/allBoard/dianliangyellow.png
Normal file
BIN
src/assets/imgs/allBoard/dianliangyellow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 328 B |
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<!-- 顶部统计 -->
|
<!-- 顶部统计 -->
|
||||||
<div class="top-box">
|
<div class="top-box" v-if="data">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<div class="grid-content ep-bg-purple">
|
<div class="grid-content ep-bg-purple">
|
||||||
@ -9,37 +9,37 @@
|
|||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title"> 任务总数 </div>
|
<div class="top-item-title"> 任务总数 </div>
|
||||||
<div class="top-item-num"> 323 </div>
|
<div class="top-item-num"> {{ data.tasksNumber || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title"> 执行中 </div>
|
<div class="top-item-title"> 执行中 </div>
|
||||||
<div class="top-item-num"> 323 </div>
|
<div class="top-item-num"> {{ data.underwayNum || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title"> 待执行 </div>
|
<div class="top-item-title"> 待执行 </div>
|
||||||
<div class="top-item-num"> 323 </div>
|
<div class="top-item-num"> {{ data.pendingExecutionNum || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title"> 已完成 </div>
|
<div class="top-item-title"> 已完成 </div>
|
||||||
<div class="top-item-num"> 323 </div>
|
<div class="top-item-num"> {{ data.completedNum || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title"> 已取消 </div>
|
<div class="top-item-title"> 已取消 </div>
|
||||||
<div class="top-item-num" style="color: #a6a6a6"> 323 </div>
|
<div class="top-item-num" style="color: #a6a6a6"> {{ data.cancelledNum || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item" style="border: none; color: #c60606">
|
<div class="top-item" style="border: none; color: #c60606">
|
||||||
<div class="top-item-title"> 异常 </div>
|
<div class="top-item-title"> 异常 </div>
|
||||||
<div class="top-item-num"> 323 </div>
|
<div class="top-item-num"> {{ data.abnormalNum || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -53,37 +53,37 @@
|
|||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title"> 车辆总数 </div>
|
<div class="top-item-title"> 车辆总数 </div>
|
||||||
<div class="top-item-num"> 132 </div>
|
<div class="top-item-num"> {{ data.statistics.total || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title"> 任务中 </div>
|
<div class="top-item-title"> 任务中 </div>
|
||||||
<div class="top-item-num"> 323 </div>
|
<div class="top-item-num"> {{ data.statistics.inTask || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title"> 锁定 </div>
|
<div class="top-item-title"> 锁定 </div>
|
||||||
<div class="top-item-num"> 323 </div>
|
<div class="top-item-num"> {{ data.statistics.doLock || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title"> 充电中 </div>
|
<div class="top-item-title"> 充电中 </div>
|
||||||
<div class="top-item-num"> 323 </div>
|
<div class="top-item-num"> {{ data.statistics.charge || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item">
|
<div class="top-item">
|
||||||
<div class="top-item-title"> 离线 </div>
|
<div class="top-item-title"> 离线 </div>
|
||||||
<div class="top-item-num" style="color: #a6a6a6"> 323 </div>
|
<div class="top-item-num" style="color: #a6a6a6"> {{ data.statistics.offline || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="4">
|
<el-col :span="4">
|
||||||
<div class="top-item" style="border: none; color: #c60606">
|
<div class="top-item" style="border: none; color: #c60606">
|
||||||
<div class="top-item-title"> 故障 </div>
|
<div class="top-item-title"> 故障 </div>
|
||||||
<div class="top-item-num"> 323 </div>
|
<div class="top-item-num"> {{ data.statistics.fault || 0 }} </div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@ -96,33 +96,153 @@
|
|||||||
<div class="bottom-box" >
|
<div class="bottom-box" >
|
||||||
<el-row :gutter="10">
|
<el-row :gutter="10">
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<div class="bottom-box-item">
|
<div class="bottom-box-item" v-if="data">
|
||||||
<div class="bottom-box-item-table">
|
<div class="bottom-box-item-table">
|
||||||
<div class="bottom-box-item-title">
|
<div class="bottom-box-item-title">
|
||||||
<div class="bottom-box-item-title-left"> 执行中 </div>
|
<div class="bottom-box-item-title-left"> 执行中 </div>
|
||||||
<div class="bottom-box-item-title-right"> 查看更多 </div>
|
<div class="bottom-box-item-title-right" @click="toManyTask('执行中')"> 查看更多 </div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-table :data="[]" style="width: 100%">
|
<el-table :data="data.underway" style="width: 100%">
|
||||||
<el-table-column prop="date" label="任务编号" />
|
<el-table-column prop="taskNo" label="任务编号" />
|
||||||
<el-table-column prop="name" label="车辆编号" />
|
<el-table-column prop="skuNumber" label="车辆编号" />
|
||||||
<el-table-column prop="address" label="开始时间" />
|
<el-table-column prop="startTime" label="开始时间" :formatter="dateFormatter" />
|
||||||
<el-table-column prop="address" label="任务阶段" />
|
<el-table-column prop="address" label="任务阶段" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="bottom-box-item" style="margin-top: 8px" v-if="data">
|
||||||
|
<div class="bottom-box-item-table">
|
||||||
|
<div class="bottom-box-item-title">
|
||||||
|
<div class="bottom-box-item-title-left"> 待执行 </div>
|
||||||
|
<div class="bottom-box-item-title-right" @click="toManyTask('未开始')"> 查看更多 </div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<el-table :data="data.pendingExecution" style="width: 100%">
|
||||||
|
<el-table-column prop="taskNo" label="任务编号" />
|
||||||
|
<el-table-column prop="priorilty" label="优先级" />
|
||||||
|
<el-table-column prop="createTime" label="生成时间" :formatter="dateFormatter" />
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12"> 2 </el-col>
|
<el-col :span="12"> 2 </el-col>
|
||||||
<el-col :span="6"> 3 </el-col>
|
<el-col :span="6">
|
||||||
|
<div class="bottom-box-item" v-if="data">
|
||||||
|
<div class="bottom-box-item-table">
|
||||||
|
<div class="bottom-box-item-title">
|
||||||
|
<div class="bottom-box-item-title-left"> 异常信息 </div>
|
||||||
|
<div class="bottom-box-item-title-right"> 查看更多 </div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<el-table :data="data.robotWarnMsgDOS" style="width: 100%">
|
||||||
|
<el-table-column prop="robotNo" label="车辆编号" />
|
||||||
|
<el-table-column prop="warnMsg" label="异常信息" >
|
||||||
|
<template #default="scope">
|
||||||
|
<div class="warn-msg">
|
||||||
|
<div class="warn-msg-color" :style="{ backgroundColor: computedBackgroundColor(scope.row.warnLevel) }">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="warn-msg-text">
|
||||||
|
{{ scope.row.warnMsg || '' }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="createTime" label="发生时间" :formatter="dateFormatter"/>
|
||||||
|
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="bottom-box-item" style="margin-top: 8px" v-if="data">
|
||||||
|
<div class="bottom-box-item-table">
|
||||||
|
<div class="bottom-box-item-title">
|
||||||
|
<div class="bottom-box-item-title-left"> 车辆信息 </div>
|
||||||
|
<div class="bottom-box-item-title-right"> 查看更多 </div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<el-table :data="data.robotElectricityLevelVOS" style="width: 100%">
|
||||||
|
<el-table-column prop="robotNo" label="车辆编号" />
|
||||||
|
<el-table-column prop="doLock" label="车辆状态" >
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ scope.row.doLock === 0 ? '正常' : '锁定' }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="batSoc" label="电量百分比" >
|
||||||
|
<template #default="scope">
|
||||||
|
<div v-if="scope.row.batSoc === null">—</div>
|
||||||
|
<div class="battery-box-all" >
|
||||||
|
<div class="battery-box" v-if="scope.row.batSoc !== null">
|
||||||
|
<img src="@/assets/imgs/allBoard/dianlianggreen.png" alt="" class="battery-box-img" v-if="scope.row.batSoc >=40"/>
|
||||||
|
<img src="@/assets/imgs/allBoard/dianliangyellow.png" alt="" class="battery-box-img" v-if="(scope.row.batSoc < 40) && (scope.row.batSoc >=20)"/>
|
||||||
|
<img src="@/assets/imgs/allBoard/dianliangred.png" alt="" class="battery-box-img" v-if="scope.row.batSoc < 20"/>
|
||||||
|
<div class="battery-box-inner">
|
||||||
|
<div class="battery-box-inner-inner " :class="scope.row.batSoc >=40 ? 'green-bg' : scope.row.batSoc < 40 && scope.row.batSoc >=20 ? 'yellow-bg' : 'red-bg'" :style="{width: scope.row.batSoc+'%'}">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<span class="battery-box-text" v-if="scope.row.batSoc !== null">{{scope.row.batSoc || 0}}%</span>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, reactive, onMounted, onBeforeUnmount } from 'vue'
|
import { ref, reactive, onMounted, onBeforeUnmount } from 'vue'
|
||||||
|
import { dateFormatter } from '@/utils/formatTime'
|
||||||
import * as ChartsApi from '@/api/boardCharts'
|
import * as ChartsApi from '@/api/boardCharts'
|
||||||
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||||
|
const router = useRouter() // 路由对象
|
||||||
defineOptions({ name: 'BoardAllBoard' })
|
defineOptions({ name: 'BoardAllBoard' })
|
||||||
|
const data = ref(null)
|
||||||
|
//获取数据
|
||||||
|
const getAllData = async () => {
|
||||||
|
let datas = await ChartsApi.bulletinBoardGet()
|
||||||
|
console.log(datas)
|
||||||
|
data.value = datas
|
||||||
|
}
|
||||||
|
|
||||||
|
//返回异常颜色
|
||||||
|
const computedBackgroundColor = (warnLevel) => {
|
||||||
|
switch (warnLevel) {
|
||||||
|
case 1:
|
||||||
|
return '#1677FF'
|
||||||
|
case 2:
|
||||||
|
return '#F1CD0B'
|
||||||
|
case 3:
|
||||||
|
return '#E07300'
|
||||||
|
case 4:
|
||||||
|
return '#C60606'
|
||||||
|
default:
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const toManyTask = (type) => {
|
||||||
|
// console.log(getIntDictOptions(DICT_TYPE.ROBOT_TASK_STATUS))
|
||||||
|
// return
|
||||||
|
router.push({
|
||||||
|
path: '/task-management/task-list',
|
||||||
|
query: {
|
||||||
|
type: type
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getAllData()
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
@ -165,6 +285,7 @@ defineOptions({ name: 'BoardAllBoard' })
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
margin-bottom: 8px;
|
||||||
}
|
}
|
||||||
.bottom-box-item-title-left {
|
.bottom-box-item-title-left {
|
||||||
font-family:
|
font-family:
|
||||||
@ -185,6 +306,70 @@ defineOptions({ name: 'BoardAllBoard' })
|
|||||||
}
|
}
|
||||||
.bottom-box-item-table{
|
.bottom-box-item-table{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
}
|
||||||
|
.battery-box{
|
||||||
|
width: 22px;
|
||||||
|
height: 11px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
}
|
||||||
|
.battery-box-img{
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
.battery-box-inner{
|
||||||
|
width: 17px;
|
||||||
|
height: 8px;
|
||||||
|
position: absolute;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateX(-50%) translateY(-50%);
|
||||||
|
}
|
||||||
|
.battery-box-inner-inner{
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
}
|
||||||
|
.green-bg{
|
||||||
|
background: #52C41A;
|
||||||
|
}
|
||||||
|
.yellow-bg{
|
||||||
|
background: #F1CD0B;
|
||||||
|
}
|
||||||
|
.red-bg{
|
||||||
|
background: #C60606;
|
||||||
|
}
|
||||||
|
.battery-box-text{
|
||||||
|
font-family: PingFangSC, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #0D162A;
|
||||||
|
margin-left: 3px;
|
||||||
|
}
|
||||||
|
.battery-box-all{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
}
|
||||||
|
.warn-msg{
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
}
|
||||||
|
.warn-msg-color{
|
||||||
|
width: 8px;
|
||||||
|
height: 8px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-right: 4px;
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
.warn-msg-text{
|
||||||
|
flex: 1;
|
||||||
|
font-family: PingFangSC, PingFang SC;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #0D162A;
|
||||||
|
margin-top: -3px;
|
||||||
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@/api/boardCharts/index
|
|
@ -6,7 +6,7 @@
|
|||||||
height: heightVal * radio + 'px',
|
height: heightVal * radio + 'px',
|
||||||
cursor: isDrag ? 'pointer' : 'default',
|
cursor: isDrag ? 'pointer' : 'default',
|
||||||
scale: isSizeRaio,
|
scale: isSizeRaio,
|
||||||
transformOrigin: 'center center'
|
transformOrigin: '0 0'
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
@ -70,8 +70,12 @@
|
|||||||
class="indexpage-container-box-point-item-inner"
|
class="indexpage-container-box-point-item-inner"
|
||||||
v-if="item.showData"
|
v-if="item.showData"
|
||||||
:style="{
|
:style="{
|
||||||
width: item.showData.locationWide * radio + 'px',
|
width:
|
||||||
height: item.showData.locationDeep * radio + 'px'
|
(item.showData.locationWide / nowObject.showYamlJson.resolution / 100) * radio +
|
||||||
|
'px',
|
||||||
|
height:
|
||||||
|
(item.showData.locationDeep / nowObject.showYamlJson.resolution / 100) * radio +
|
||||||
|
'px'
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<!-- 库位 2-->
|
<!-- 库位 2-->
|
||||||
@ -136,8 +140,14 @@
|
|||||||
class="indexpage-container-box-point-item-inner"
|
class="indexpage-container-box-point-item-inner"
|
||||||
v-if="item.type == 3"
|
v-if="item.type == 3"
|
||||||
:style="{
|
:style="{
|
||||||
width: item.formattedData.locationWide * radio + 'px',
|
width:
|
||||||
height: item.formattedData.locationDeep * radio + 'px'
|
(item.formattedData.locationWide / nowObject.showYamlJson.resolution / 100) *
|
||||||
|
radio +
|
||||||
|
'px',
|
||||||
|
height:
|
||||||
|
(item.formattedData.locationDeep / nowObject.showYamlJson.resolution / 100) *
|
||||||
|
radio +
|
||||||
|
'px'
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
@ -157,8 +167,14 @@
|
|||||||
class="indexpage-container-box-point-item-inner"
|
class="indexpage-container-box-point-item-inner"
|
||||||
v-if="item.type == 4"
|
v-if="item.type == 4"
|
||||||
:style="{
|
:style="{
|
||||||
width: item.formattedData.locationWide * radio + 'px',
|
width:
|
||||||
height: item.formattedData.locationDeep * radio + 'px'
|
(item.formattedData.locationWide / nowObject.showYamlJson.resolution / 100) *
|
||||||
|
radio +
|
||||||
|
'px',
|
||||||
|
height:
|
||||||
|
(item.formattedData.locationDeep / nowObject.showYamlJson.resolution / 100) *
|
||||||
|
radio +
|
||||||
|
'px'
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<div>
|
<div>
|
||||||
@ -215,11 +231,17 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<!-- 普通点 -->
|
||||||
|
<el-tooltip
|
||||||
|
class="box-item"
|
||||||
|
effect="dark"
|
||||||
|
:content="item.sortNum"
|
||||||
|
placement="top"
|
||||||
v-if="item.type == 1"
|
v-if="item.type == 1"
|
||||||
style="width: 10px; height: 10px; border-radius: 50%; background: #1890ff"
|
|
||||||
>
|
>
|
||||||
|
<div style="width: 10px; height: 10px; border-radius: 50%; background: #1890ff">
|
||||||
</div>
|
</div>
|
||||||
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -368,7 +390,7 @@ const carPointListFun = () => {
|
|||||||
data: JSON.parse(data[key])
|
data: JSON.parse(data[key])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
console.log('=====', dataList)
|
// console.log('=====', dataList)
|
||||||
testCarList.value = dataList
|
testCarList.value = dataList
|
||||||
|
|
||||||
// let data2 = JSON.parse(data['d0:65:78:c4:af:cc'])
|
// let data2 = JSON.parse(data['d0:65:78:c4:af:cc'])
|
||||||
@ -379,7 +401,7 @@ const isDrag = ref(false)
|
|||||||
const changeIsDrag = () => {
|
const changeIsDrag = () => {
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
isDrag.value = !isDrag.value
|
isDrag.value = !isDrag.value
|
||||||
console.log(isDrag.value)
|
// console.log(isDrag.value)
|
||||||
if (!isDrag.value) {
|
if (!isDrag.value) {
|
||||||
//还原位置
|
//还原位置
|
||||||
resetPosition()
|
resetPosition()
|
||||||
@ -528,7 +550,7 @@ const getList = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
list.value = mapList
|
list.value = mapList
|
||||||
console.log(list.value, data)
|
// console.log(list.value, data)
|
||||||
//默认取第一个
|
//默认取第一个
|
||||||
if (data[1][0]) {
|
if (data[1][0]) {
|
||||||
getMapData(data[1][0])
|
getMapData(data[1][0])
|
||||||
@ -536,12 +558,12 @@ const getList = async () => {
|
|||||||
}
|
}
|
||||||
//库位双击
|
//库位双击
|
||||||
const storeClick = async (item) => {
|
const storeClick = async (item) => {
|
||||||
console.log(item)
|
// console.log(item)
|
||||||
let storeData = await MapApi.houseLocationGetByMapItemId({
|
let storeData = await MapApi.houseLocationGetByMapItemId({
|
||||||
mapId: item.positionMapId,
|
mapId: item.positionMapId,
|
||||||
mapItemId: item.id
|
mapItemId: item.id
|
||||||
})
|
})
|
||||||
console.log(storeData)
|
// console.log(storeData)
|
||||||
storeDialogRef.value.open(JSON.parse(JSON.stringify(storeData)))
|
storeDialogRef.value.open(JSON.parse(JSON.stringify(storeData)))
|
||||||
}
|
}
|
||||||
const lineList = ref([])
|
const lineList = ref([])
|
||||||
@ -558,7 +580,7 @@ const getPositionMapListFun = async (positionMapId) => {
|
|||||||
item.imgUrl = formatteTypeImg(item.type)
|
item.imgUrl = formatteTypeImg(item.type)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
console.log(data)
|
// console.log(data)
|
||||||
pointList.value = data
|
pointList.value = data
|
||||||
|
|
||||||
// console.log(pointList.value)
|
// console.log(pointList.value)
|
||||||
@ -647,7 +669,7 @@ const linkWebSocket = (url) => {
|
|||||||
data: JSON.parse(data[key])
|
data: JSON.parse(data[key])
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
console.log('=====', dataList)
|
// console.log('=====', dataList)
|
||||||
testCarList.value = dataList
|
testCarList.value = dataList
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -663,10 +685,11 @@ const disconnect = () => {
|
|||||||
}
|
}
|
||||||
//获取扫描图
|
//获取扫描图
|
||||||
const getMapData = async (item) => {
|
const getMapData = async (item) => {
|
||||||
// console.log("============",item)
|
console.log('============', JSON.parse(item.yamlJson))
|
||||||
nowObject.value = JSON.parse(JSON.stringify(item))
|
nowObject.value = JSON.parse(JSON.stringify(item))
|
||||||
|
nowObject.value.showYamlJson = JSON.parse(item.yamlJson)
|
||||||
let websoketUrl = `${replaceHttpWithWs(import.meta.env.VITE_BASE_URL)}/infra/ws?type=map&floor=${nowObject.value.floor}&area=${nowObject.value.area}`
|
let websoketUrl = `${replaceHttpWithWs(import.meta.env.VITE_BASE_URL)}/infra/ws?type=map&floor=${nowObject.value.floor}&area=${nowObject.value.area}`
|
||||||
console.log(websoketUrl)
|
// console.log(websoketUrl)
|
||||||
linkWebSocket(websoketUrl)
|
linkWebSocket(websoketUrl)
|
||||||
getPositionMapListFun(nowObject.value.id)
|
getPositionMapListFun(nowObject.value.id)
|
||||||
emit('transmitMapInfo', {
|
emit('transmitMapInfo', {
|
||||||
@ -706,7 +729,7 @@ const computedRatio = () => {
|
|||||||
item.data.pose2d.y
|
item.data.pose2d.y
|
||||||
]).top
|
]).top
|
||||||
})
|
})
|
||||||
console.log('当前数据', testCarList.value)
|
// console.log('当前数据', testCarList.value)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
@ -731,7 +754,7 @@ const computedRatio = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
getImageWidth(imgUrl.value, 'height').then((res) => {
|
getImageWidth(imgUrl.value, 'height').then((res) => {
|
||||||
console.log('高', res)
|
// console.log('高', res)
|
||||||
heightVal.value = res
|
heightVal.value = res
|
||||||
})
|
})
|
||||||
// console.log(width)
|
// console.log(width)
|
||||||
@ -741,7 +764,7 @@ const computedRatio = () => {
|
|||||||
|
|
||||||
const getMapLineList = () => {
|
const getMapLineList = () => {
|
||||||
MapApi.mapLineListGet({ positionMapId: nowObject.value.id }).then((res) => {
|
MapApi.mapLineListGet({ positionMapId: nowObject.value.id }).then((res) => {
|
||||||
console.log(res)
|
// console.log(res)
|
||||||
lineList.value = res
|
lineList.value = res
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -808,14 +831,14 @@ const getElementWidthByClass = (className) => {
|
|||||||
}
|
}
|
||||||
//小车双击
|
//小车双击
|
||||||
const carDbClick = (item, index) => {
|
const carDbClick = (item, index) => {
|
||||||
console.log(item)
|
// console.log(item)
|
||||||
carDialogRef.value.open(JSON.parse(JSON.stringify(item)))
|
carDialogRef.value.open(JSON.parse(JSON.stringify(item)))
|
||||||
}
|
}
|
||||||
const boxLeft = ref(0)
|
const boxLeft = ref(0)
|
||||||
//获取元素距离左边的距离
|
//获取元素距离左边的距离
|
||||||
const getLeftPx = () => {
|
const getLeftPx = () => {
|
||||||
let indexpageContainer = document.getElementById('indexpage-container')
|
let indexpageContainer = document.getElementById('indexpage-container')
|
||||||
console.log('距离左边的距离', indexpageContainer.getBoundingClientRect().left)
|
// console.log('距离左边的距离', indexpageContainer.getBoundingClientRect().left)
|
||||||
boxLeft.value = indexpageContainer.getBoundingClientRect().left + 6
|
boxLeft.value = indexpageContainer.getBoundingClientRect().left + 6
|
||||||
}
|
}
|
||||||
// 封装监听元素宽度变化的方法
|
// 封装监听元素宽度变化的方法
|
||||||
|
@ -216,7 +216,7 @@ const message = useMessage() // 消息弹窗
|
|||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
|
|
||||||
const { push } = useRouter()
|
const { push } = useRouter()
|
||||||
|
const route = useRoute();
|
||||||
const loading = ref(true) // 列表的加载中
|
const loading = ref(true) // 列表的加载中
|
||||||
const total = ref(0) // 列表的总页数
|
const total = ref(0) // 列表的总页数
|
||||||
const list = ref([]) // 列表的数据
|
const list = ref([]) // 列表的数据
|
||||||
@ -337,9 +337,22 @@ const robotList = ref([])
|
|||||||
const getCanUseRobotList = async () => {
|
const getCanUseRobotList = async () => {
|
||||||
robotList.value = await MapTaskAPi.getCanUseRobot()
|
robotList.value = await MapTaskAPi.getCanUseRobot()
|
||||||
}
|
}
|
||||||
|
// 匹配对应的值
|
||||||
|
const findPropertyValue = (arr, targetValue, compareProp, returnProp) =>{
|
||||||
|
for (let i = 0; i < arr.length; i++) {
|
||||||
|
if (arr[i][compareProp] === targetValue) {
|
||||||
|
return arr[i][returnProp];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
/** 初始化 **/
|
/** 初始化 **/
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
if(route.query.type){
|
||||||
|
let data = getIntDictOptions(DICT_TYPE.ROBOT_TASK_STATUS)
|
||||||
|
queryParams.taskStatus = findPropertyValue(data, route.query.type, 'label', 'value')
|
||||||
|
|
||||||
|
}
|
||||||
getList()
|
getList()
|
||||||
getCanUseRobotList()
|
getCanUseRobotList()
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user