【功能修改】IoT:设备状态从 status 到 state,移除已禁用

This commit is contained in:
YunaiV 2025-01-29 00:16:54 +08:00
parent b9193dd875
commit 3c73a6728f
4 changed files with 22 additions and 31 deletions

View File

@ -10,10 +10,9 @@ export interface DeviceVO {
deviceType: number // 设备类型
nickname: string // 设备备注名称
gatewayId: number // 网关设备 ID
status: number // 设备状态
statusLastUpdateTime: Date // 设备状态最后更新时间
lastOnlineTime: Date // 最后上线时间
lastOfflineTime: Date // 最后离线时间
state: number // 设备状态
onlineTime: Date // 最后上线时间
offlineTime: Date // 最后离线时间
activeTime: Date // 设备激活时间
createTime: Date // 创建时间
ip: string // 设备的 IP 地址
@ -31,11 +30,6 @@ export interface DeviceVO {
groupIds?: number[] // 添加分组 ID
}
export interface DeviceUpdateStatusVO {
id: number // 设备 ID主键自增
status: number // 设备状态
}
// IoT 设备数据 VO
export interface DeviceDataVO {
deviceId: number // 设备编号
@ -93,11 +87,6 @@ export const DeviceApi = {
return await request.put({ url: `/iot/device/update`, data })
},
// 修改设备状态
updateDeviceStatus: async (data: DeviceUpdateStatusVO) => {
return await request.put({ url: `/iot/device/update-status`, data })
},
// 修改设备分组
updateDeviceGroup: async (data: { ids: number[]; groupIds: number[] }) => {
return await request.put({ url: `/iot/device/update-group`, data })

View File

@ -235,7 +235,7 @@ export enum DICT_TYPE {
IOT_PRODUCT_DEVICE_TYPE = 'iot_product_device_type', // IOT 产品设备类型
IOT_DATA_FORMAT = 'iot_data_format', // IOT 数据格式
IOT_PROTOCOL_TYPE = 'iot_protocol_type', // IOT 接入网关协议
IOT_DEVICE_STATUS = 'iot_device_status', // IOT 设备状态
IOT_DEVICE_STATE = 'iot_device_state', // IOT 设备状态
IOT_THING_MODEL_TYPE = 'iot_thing_model_type', // IOT 产品功能类型
IOT_DATA_TYPE = 'iot_data_type', // IOT 数据类型
IOT_THING_MODEL_UNIT = 'iot_thing_model_unit', // IOT 物模型单位

View File

@ -23,13 +23,13 @@
{{ formatDate(device.activeTime) }}
</el-descriptions-item>
<el-descriptions-item label="最后上线时间">
{{ formatDate(device.lastOnlineTime) }}
{{ formatDate(device.onlineTime) }}
</el-descriptions-item>
<el-descriptions-item label="当前状态">
<dict-tag :type="DICT_TYPE.IOT_DEVICE_STATUS" :value="device.status" />
<dict-tag :type="DICT_TYPE.IOT_DEVICE_STATE" :value="device.status" />
</el-descriptions-item>
<el-descriptions-item label="最后离线时间" :span="3">
{{ formatDate(device.lastOfflineTime) }}
{{ formatDate(device.offlineTime) }}
</el-descriptions-item>
<el-descriptions-item label="MQTT 连接参数">
<el-button type="primary" @click="openMqttParams">查看</el-button>

View File

@ -64,7 +64,7 @@
class="!w-240px"
>
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.IOT_DEVICE_STATUS)"
v-for="dict in getIntDictOptions(DICT_TYPE.IOT_DEVICE_STATE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
@ -161,7 +161,7 @@
<div
class="absolute top-0 left-0 right-0 h-[50px] pointer-events-none"
:class="[
item.status === DeviceStatusEnum.ONLINE
item.state === DeviceStatusEnum.ONLINE
? 'bg-gradient-to-b from-[#eefaff] to-transparent'
: 'bg-gradient-to-b from-[#fff1f1] to-transparent'
]"
@ -179,7 +179,7 @@
<div
class="w-1 h-1 rounded-full mr-1.5"
:class="
item.status === DeviceStatusEnum.ONLINE
item.state === DeviceStatusEnum.ONLINE
? 'bg-[var(--el-color-success)]'
: 'bg-[var(--el-color-danger)]'
"
@ -187,9 +187,9 @@
</div>
<el-text
class="!text-xs font-bold"
:type="item.status === DeviceStatusEnum.ONLINE ? 'success' : 'danger'"
:type="item.state === DeviceStatusEnum.ONLINE ? 'success' : 'danger'"
>
{{ getDictLabel(DICT_TYPE.IOT_DEVICE_STATUS, item.status) }}
{{ getDictLabel(DICT_TYPE.IOT_DEVICE_STATE, item.state) }}
</el-text>
</div>
</div>
@ -199,9 +199,9 @@
<div class="flex-1">
<div class="mb-2.5 last:mb-0">
<span class="text-[#717c8e] mr-2.5">所属产品</span>
<span class="text-[#0070ff]">{{
products.find((p) => p.id === item.productId)?.name
}}</span>
<span class="text-[#0070ff]">
{{ products.find((p) => p.id === item.productId)?.name }}
</span>
</div>
<div class="mb-2.5 last:mb-0">
<span class="text-[#717c8e] mr-2.5">设备类型</span>
@ -209,7 +209,9 @@
</div>
<div class="mb-2.5 last:mb-0">
<span class="text-[#717c8e] mr-2.5">DeviceKey</span>
<span class="text-[#0b1d30] inline-block align-middle overflow-hidden text-ellipsis whitespace-nowrap max-w-[130px]">
<span
class="text-[#0b1d30] inline-block align-middle overflow-hidden text-ellipsis whitespace-nowrap max-w-[130px]"
>
{{ item.deviceKey }}
</span>
</div>
@ -306,13 +308,13 @@
</el-table-column>
<el-table-column label="设备状态" align="center" prop="status">
<template #default="scope">
<dict-tag :type="DICT_TYPE.IOT_DEVICE_STATUS" :value="scope.row.status" />
<dict-tag :type="DICT_TYPE.IOT_DEVICE_STATE" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column
label="最后上线时间"
align="center"
prop="lastOnlineTime"
prop="onlineTime"
:formatter="dateFormatter"
width="180px"
/>