|
|
|
@ -52,8 +52,8 @@ |
|
|
|
p-id="22185" fill="#ffffff"></path></svg> |
|
|
|
</span> |
|
|
|
<div class="progress"> |
|
|
|
<span :style="{width:'55%'}"></span> |
|
|
|
<div class="text">55%</div> |
|
|
|
<span :style="{width:getTaskProcessPercent(deviceInfo)+'%'}"></span> |
|
|
|
<div class="text"> {{ getTaskProcessPercent(deviceInfo) }} %</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="data-infor"> |
|
|
|
@ -105,71 +105,31 @@ export default { |
|
|
|
return { |
|
|
|
searchKeyword: '', |
|
|
|
selectedId: '', |
|
|
|
/* |
|
|
|
设备列表, 数据展示为: |
|
|
|
[ |
|
|
|
{ |
|
|
|
id: 'device-id', |
|
|
|
type: 'device-type', |
|
|
|
online: true, |
|
|
|
x: 0, |
|
|
|
y: 0, |
|
|
|
z: 0, |
|
|
|
logicX: 0, |
|
|
|
logicY: 0, |
|
|
|
direction: 'up', |
|
|
|
orientation: 0, |
|
|
|
soc: 100, |
|
|
|
mode: 'AMR_FREE_MODE', |
|
|
|
taskStatus: 'IDLE', |
|
|
|
isBlocked: false, |
|
|
|
taskCompleted: 0, |
|
|
|
taskTotalCount: 10 |
|
|
|
} |
|
|
|
] |
|
|
|
*/ |
|
|
|
/** |
|
|
|
* 设备列表数据 |
|
|
|
* @type {Array<{ |
|
|
|
id: string, |
|
|
|
type: string, |
|
|
|
online: boolean, |
|
|
|
x: number, |
|
|
|
y: number, |
|
|
|
z: number, |
|
|
|
logicX: number, |
|
|
|
logicY: number, |
|
|
|
direction: string, |
|
|
|
orientation: number, |
|
|
|
soc: number, |
|
|
|
mode: 'AMR_FREE_MODE' | |
|
|
|
'AMR_INIT_MODE' | |
|
|
|
'AMR_TASK_MODE' | |
|
|
|
'AMR_SINGLE_ACTION_MODE' | |
|
|
|
'AMR_MANUAL_MODE' | |
|
|
|
'AMR_HANDSET_MODE' | |
|
|
|
'AMR_CHARGE_MODE' | |
|
|
|
'AMR_TASK_INTERRUPT_MODE' | |
|
|
|
'AMR_CUSTOMIZE_MODE', |
|
|
|
taskStatus: string, |
|
|
|
isBlocked: boolean, |
|
|
|
taskCompleted: number, |
|
|
|
taskTotalCount: number |
|
|
|
// 业务任务ID |
|
|
|
bizTaskId: string |
|
|
|
// 业务任务类型: 移动任务 / 充电任务 / 搬运任务 / 装载任务 / 卸载任务 |
|
|
|
bizTaskType: '' | 'MOVE' |'CHARGE' |'CARRY' |'LOAD' |'UNLOAD' |
|
|
|
// 比如 WAY_1_1 Rack1/0/0/0 |
|
|
|
bizTaskFrom: string |
|
|
|
// 比如 WAY_1_1 Rack1/0/0/0 charge1 |
|
|
|
bizTaskTo: string |
|
|
|
}>} |
|
|
|
* @type {Array<DeviceVo>} |
|
|
|
*/ |
|
|
|
deviceList: [] |
|
|
|
} |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
window['MonitorView'] = this |
|
|
|
}, |
|
|
|
unmounted() { |
|
|
|
window['MonitorView'] = null |
|
|
|
this.undescribe() |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
/** |
|
|
|
* 获取任务进度百分比 |
|
|
|
*/ |
|
|
|
getTaskProcessPercent(deviceInfo) { |
|
|
|
if (deviceInfo == null || deviceInfo.taskTotalCount === 0) { |
|
|
|
return 0 |
|
|
|
} |
|
|
|
return Math.round((deviceInfo.taskCompleted / deviceInfo.taskTotalCount) * 100) |
|
|
|
}, |
|
|
|
/** |
|
|
|
* 处理设备存活消息 |
|
|
|
* @type {(type: BackendTopicType, topic: string, body: { |
|
|
|
* id: string |
|
|
|
@ -207,35 +167,11 @@ export default { |
|
|
|
}, |
|
|
|
async subscribe() { |
|
|
|
this.deviceList = [] |
|
|
|
const list = await LCC.loadExecutor() |
|
|
|
this.deviceList = _.map(list, executorVo => { |
|
|
|
const row = { |
|
|
|
online: false |
|
|
|
const res = await LCC.queryDeviceInfoList() |
|
|
|
if (!res.success) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
return { |
|
|
|
id: executorVo.executor_id, |
|
|
|
type: row.type, |
|
|
|
online: row.online, |
|
|
|
x: row.x, |
|
|
|
y: row.y, |
|
|
|
z: row.z, |
|
|
|
logicX: row.logicX, |
|
|
|
logicY: row.logicY, |
|
|
|
direction: row.direction, |
|
|
|
orientation: row.orientation, |
|
|
|
soc: row.soc, |
|
|
|
mode: row.mode, |
|
|
|
taskStatus: row.taskStatus, |
|
|
|
isBlocked: row.isBlocked, |
|
|
|
taskCompleted: row.taskCompleted || 0, |
|
|
|
taskTotalCount: row.taskTotalCount || 0, |
|
|
|
bizTaskId: row.bizTaskId || '', |
|
|
|
bizTaskType: row.bizTaskType || '', |
|
|
|
bizTaskFrom: row.bizTaskFrom || '', |
|
|
|
bizTaskTo: row.bizTaskTo || '' |
|
|
|
} |
|
|
|
}) |
|
|
|
this.deviceList = res.data |
|
|
|
|
|
|
|
// 订阅设备状态消息 |
|
|
|
LCC.subscribe('DeviceAlive', this.onDeviceAliveMessage) |
|
|
|
|