From aad9909103473de08732b25c61c28e02f9835c9c Mon Sep 17 00:00:00 2001
From: husq <931347610@qq.com>
Date: Thu, 14 Sep 2023 22:45:14 +0800
Subject: [PATCH] 地图线上环境不显示问题更新
---
src/pages/page-web/projects/devices.vue | 64 ++++++++++++++++++-------------
1 files changed, 37 insertions(+), 27 deletions(-)
diff --git a/src/pages/page-web/projects/devices.vue b/src/pages/page-web/projects/devices.vue
index c5fd408..cbc676f 100644
--- a/src/pages/page-web/projects/devices.vue
+++ b/src/pages/page-web/projects/devices.vue
@@ -2,10 +2,10 @@
<template>
<a-menu v-model:selectedKeys="current" mode="horizontal" @select="select">
<a-menu-item :key="EDeviceTypeName.Aircraft" class="ml20">
- Aircraft
+ 飞行器
</a-menu-item>
<a-menu-item :key="EDeviceTypeName.Dock">
- Dock
+ 机场
</a-menu-item>
</a-menu>
<div class="device-table-wrap table flex-display flex-column">
@@ -20,7 +20,9 @@
style="margin: -5px 0"
/>
<template v-else>
- {{ text }}
+ <a-tooltip :title="text">
+ {{ text }}
+ </a-tooltip>
</template>
</div>
</template>
@@ -45,11 +47,11 @@
<template #status="{ text }">
<span v-if="text" class="flex-row flex-align-center">
<span class="mr5" style="width: 12px; height: 12px; border-radius: 50%; background-color: green;" />
- <span>Online</span>
+ <span>在线</span>
</span>
<span class="flex-row flex-align-center" v-else>
<span class="mr5" style="width: 12px; height: 12px; border-radius: 50%; background-color: red;" />
- <span>Offline</span>
+ <span>离线</span>
</span>
</template>
<!-- 操作 -->
@@ -57,10 +59,10 @@
<div class="editable-row-operations">
<!-- 编辑态操作 -->
<div v-if="editableData[record.device_sn]">
- <a-tooltip title="Confirm changes">
+ <a-tooltip title="保存">
<span @click="save(record)" style="color: #28d445;"><CheckOutlined /></span>
</a-tooltip>
- <a-tooltip title="Modification canceled">
+ <a-tooltip title="取消">
<span @click="() => delete editableData[record.device_sn]" style="color: #e70102;"><CloseOutlined /></span>
</a-tooltip>
</div>
@@ -69,13 +71,13 @@
<a-tooltip v-if="current.indexOf(EDeviceTypeName.Dock) !== -1" title="设备日志">
<CloudServerOutlined @click="showDeviceLogUploadRecord(record)"/>
</a-tooltip>
- <a-tooltip v-if="current.indexOf(EDeviceTypeName.Dock) !== -1" title="Hms Info">
+ <a-tooltip v-if="current.indexOf(EDeviceTypeName.Dock) !== -1" title="Hms信息">
<FileSearchOutlined @click="showHms(record)"/>
</a-tooltip>
- <a-tooltip title="Edit">
+ <a-tooltip title="编辑">
<EditOutlined @click="edit(record)"/>
</a-tooltip>
- <a-tooltip title="Delete">
+ <a-tooltip title="删除">
<DeleteOutlined @click="() => { deleteTip = true, deleteSn = record.device_sn }"/>
</a-tooltip>
</div>
@@ -84,10 +86,10 @@
</a-table>
<a-modal v-model:visible="deleteTip" width="450px" :closable="false" centered :okButtonProps="{ danger: true }" @ok="unbind">
- <p class="pt10 pl20" style="height: 50px;">Delete device from workspace?</p>
+ <p class="pt10 pl20" style="height: 50px;">确定从项目中删除该设备吗?</p>
<template #title>
<div class="flex-row flex-justify-center">
- <span>Delete devices</span>
+ <span>确定</span>
</div>
</template>
</a-modal>
@@ -127,20 +129,20 @@
import { DeviceCmdExecuteInfo, DeviceCmdExecuteStatus } from '/@/types/device-cmd'
import DeviceLogUploadRecordDrawer from '/@/components/devices/device-log/DeviceLogUploadRecordDrawer.vue'
import DeviceHmsDrawer from '/@/components/devices/device-hms/DeviceHmsDrawer.vue'
-import { message } from 'ant-design-vue'
+import { message, notification } from 'ant-design-vue'
interface DeviceData {
device: Device[]
}
-const loading = ref(true)
+const loading = ref(false)
const deleteTip = ref<boolean>(false)
const deleteSn = ref<string>()
const columns: ColumnProps[] = [
- { title: 'Model', dataIndex: 'device_name', width: 100, className: 'titleStyle' },
- { title: 'SN', dataIndex: 'device_sn', width: 100, className: 'titleStyle', ellipsis: true, slots: { customRender: 'sn' } },
+ { title: '设备型号', dataIndex: 'device_name', width: 100, className: 'titleStyle' },
+ { title: '设备SN', dataIndex: 'device_sn', width: 100, className: 'titleStyle', ellipsis: true, slots: { customRender: 'sn' } },
{
- title: 'Name',
+ title: '设备组织名称',
dataIndex: 'nickname',
width: 100,
sorter: (a: Device, b: Device) => a.nickname.localeCompare(b.nickname),
@@ -148,10 +150,10 @@
ellipsis: true,
slots: { customRender: 'nickname' }
},
- { title: 'Firmware Version', dataIndex: 'firmware_version', width: 150, className: 'titleStyle', slots: { customRender: 'firmware_version' } },
- { title: 'Status', dataIndex: 'status', width: 100, className: 'titleStyle', slots: { customRender: 'status' } },
+ { title: '固件版本', dataIndex: 'firmware_version', width: 150, className: 'titleStyle', slots: { customRender: 'firmware_version' } },
+ { title: '在线状态', dataIndex: 'status', width: 100, className: 'titleStyle', slots: { customRender: 'status' } },
{
- title: 'Workspace',
+ title: '所属项目',
dataIndex: 'workspace_name',
width: 100,
className: 'titleStyle',
@@ -170,10 +172,10 @@
return obj
}
},
- { title: 'Joined', dataIndex: 'bound_time', width: 150, sorter: (a: Device, b: Device) => a.bound_time.localeCompare(b.bound_time), className: 'titleStyle' },
- { title: 'Last Online', dataIndex: 'login_time', width: 150, sorter: (a: Device, b: Device) => a.login_time.localeCompare(b.login_time), className: 'titleStyle' },
+ { title: '加入组织时间', dataIndex: 'bound_time', width: 150, sorter: (a: Device, b: Device) => a.bound_time.localeCompare(b.bound_time), className: 'titleStyle' },
+ { title: '在线时间', dataIndex: 'login_time', width: 150, sorter: (a: Device, b: Device) => a.login_time.localeCompare(b.login_time), className: 'titleStyle' },
{
- title: 'Actions',
+ title: '操作',
dataIndex: 'actions',
width: 100,
className: 'titleStyle',
@@ -268,13 +270,18 @@
for (let i = 0; i < devices.length; i++) {
if (devices[i].device_sn === payload.sn) {
if (!payload.output) return
- const { status, progress } = payload.output
+ const { status, progress, ext } = payload.output
if (status === DeviceCmdExecuteStatus.Sent || status === DeviceCmdExecuteStatus.InProgress) { // 升级中
+ const rate = ext?.rate ? (ext.rate / 1024).toFixed(2) + 'kb/s' : ''
devices[i].firmware_status = DeviceFirmwareStatusEnum.DuringUpgrade
- devices[i].firmware_progress = progress?.percent || 0
+ devices[i].firmware_progress = (progress?.percent || 0) + '% ' + rate
} else { // 终态:成功,失败,超时
if (status === DeviceCmdExecuteStatus.Failed || status === DeviceCmdExecuteStatus.Timeout) {
- message.error(`设备(${payload.sn}) 升级失败`)
+ notification.error({
+ message: `(${payload.sn}) Upgrade failed`,
+ description: `Error Code: ${payload.result}`,
+ duration: null
+ })
}
// 拉取列表
getDevices(current.value[0], true)
@@ -290,12 +297,13 @@
useDeviceUpgradeEvent(onDeviceUpgradeWs)
// 获取设备列表信息
-function getDevices (domain: string, closeLoading?: boolean) {
+function getDevices (domain: number, closeLoading?: boolean) {
if (!closeLoading) {
loading.value = true
}
getBindingDevices(workspaceId, getPaginationBody(), domain).then(res => {
if (res.code !== 0) {
+ loading.value = false
return
}
const resData: Device[] = res.data.list
@@ -313,6 +321,8 @@
paginationProp.current = res.data.pagination.page
paginationProp.pageSize = res.data.pagination.page_size
loading.value = false
+ }).catch(e => {
+ loading.value = false
})
}
--
Gitblit v1.9.3