diff --git a/src/api/iot/device/device/index.ts b/src/api/iot/device/device/index.ts
index ff0c6fabb..efc3bfe3d 100644
--- a/src/api/iot/device/device/index.ts
+++ b/src/api/iot/device/device/index.ts
@@ -159,6 +159,11 @@ export const DeviceApi = {
return await request.get({ url: `/iot/device/message/page`, params })
},
+ // 查询设备消息配对分页
+ getDeviceMessagePairPage: async (params: any) => {
+ return await request.get({ url: `/iot/device/message/pair-page`, params })
+ },
+
// 发送设备消息
sendDeviceMessage: async (params: IotDeviceMessageSendReqVO) => {
return await request.post({ url: `/iot/device/message/send`, data: params })
diff --git a/src/views/iot/device/device/detail/DeviceDetailsSimulator.vue b/src/views/iot/device/device/detail/DeviceDetailsSimulator.vue
index 2f4858aa8..4e7a3a7e7 100644
--- a/src/views/iot/device/device/detail/DeviceDetailsSimulator.vue
+++ b/src/views/iot/device/device/detail/DeviceDetailsSimulator.vue
@@ -171,6 +171,7 @@ const dataTypeOptionsLabel = computed(() => (value: string) => getDataTypeOption
/** 查询物模型列表 */
// TODO @super:getThingModelList 更精准
+// TODO @haohao:目前 index.vue 已经有了 thingModels,可以考虑服用下;
const getList = async () => {
loading.value = true
try {
diff --git a/src/views/iot/device/device/detail/DeviceDetailsThingModel.vue b/src/views/iot/device/device/detail/DeviceDetailsThingModel.vue
index 021916fdc..847221559 100644
--- a/src/views/iot/device/device/detail/DeviceDetailsThingModel.vue
+++ b/src/views/iot/device/device/detail/DeviceDetailsThingModel.vue
@@ -3,25 +3,30 @@
-
+
-
-
+
+
-
-
+
+
diff --git a/src/views/iot/device/device/detail/DeviceDetailsThingModelEvent.vue b/src/views/iot/device/device/detail/DeviceDetailsThingModelEvent.vue
index 91fcbf75c..e3c302040 100644
--- a/src/views/iot/device/device/detail/DeviceDetailsThingModelEvent.vue
+++ b/src/views/iot/device/device/detail/DeviceDetailsThingModelEvent.vue
@@ -1,16 +1,189 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
+
+ 重置
+
+
+
+
+
+
+
+
+
+
+ {{
+ scope.row.request?.reportTime ? formatDate(new Date(scope.row.request.reportTime)) : '-'
+ }}
+
+
+
+
+
+ {{ scope.row.request?.identifier }}
+
+
+
+
+
+ {{ getEventName(scope.row.request?.identifier) }}
+
+
+
+
+ {{ getEventType(scope.row.request?.identifier) }}
+
+
+
+ {{ parseParams(scope.row.request.params) }}
+
+
+
+
+
+
diff --git a/src/views/iot/device/device/detail/DeviceDetailsThingModelProperty.vue b/src/views/iot/device/device/detail/DeviceDetailsThingModelProperty.vue
index ac401989f..c6ea0a451 100644
--- a/src/views/iot/device/device/detail/DeviceDetailsThingModelProperty.vue
+++ b/src/views/iot/device/device/detail/DeviceDetailsThingModelProperty.vue
@@ -88,7 +88,7 @@
@@ -134,11 +134,7 @@
/>
-
+
查看数据
@@ -146,16 +142,15 @@
-
+
diff --git a/src/views/iot/device/device/detail/index.vue b/src/views/iot/device/device/detail/index.vue
index 95402dd3c..3fa835e06 100644
--- a/src/views/iot/device/device/detail/index.vue
+++ b/src/views/iot/device/device/detail/index.vue
@@ -3,7 +3,7 @@
:loading="loading"
:product="product"
:device="device"
- @refresh="getDeviceData(id)"
+ @refresh="getDeviceData"
/>
@@ -11,7 +11,11 @@
-
+
@@ -38,6 +42,7 @@
import { useTagsViewStore } from '@/store/modules/tagsView'
import { DeviceApi, DeviceVO } from '@/api/iot/device/device'
import { DeviceTypeEnum, ProductApi, ProductVO } from '@/api/iot/product/product'
+import { ThingModelApi, ThingModelData } from '@/api/iot/thingmodel'
import DeviceDetailsHeader from './DeviceDetailsHeader.vue'
import DeviceDetailsInfo from './DeviceDetailsInfo.vue'
import DeviceDetailsThingModel from './DeviceDetailsThingModel.vue'
@@ -49,11 +54,12 @@ defineOptions({ name: 'IoTDeviceDetail' })
const route = useRoute()
const message = useMessage()
-const id = route.params.id // 将字符串转换为数字
+const id = Number(route.params.id) // 将字符串转换为数字
const loading = ref(true) // 加载中
const product = ref({} as ProductVO) // 产品详情
const device = ref({} as DeviceVO) // 设备详情
const activeTab = ref('info') // 默认激活的标签页
+const thingModelList = ref([]) // 物模型列表数据
/** 获取设备详情 */
const getDeviceData = async () => {
@@ -61,6 +67,7 @@ const getDeviceData = async () => {
try {
device.value = await DeviceApi.getDevice(id)
await getProductData(device.value.productId)
+ await getThingModelList(device.value.productId)
} finally {
loading.value = false
}
@@ -71,6 +78,19 @@ const getProductData = async (id: number) => {
product.value = await ProductApi.getProduct(id)
}
+/** 获取物模型列表 */
+const getThingModelList = async (productId: number) => {
+ try {
+ const data = await ThingModelApi.getThingModelList({
+ productId: productId
+ })
+ thingModelList.value = data || []
+ } catch (error) {
+ console.error('获取物模型列表失败:', error)
+ thingModelList.value = []
+ }
+}
+
/** 初始化 */
const { delView } = useTagsViewStore() // 视图操作
const router = useRouter() // 路由