feat(securitySurveillance): 实现首页大屏数据展示和设备状态动态更新

- 新增获取首页大屏数据的API接口
- 在安全监控页面添加数据获取逻辑并传递给子组件
- 更新设备状态组件显示实时在线/离线数据
- 优化视频监控组件播放器初始化和销毁逻辑
- 调整API接口路径和参数格式
- 移除无用代码和注释
This commit is contained in:
tcy
2025-09-24 16:31:18 +08:00
parent 4163b11d3d
commit 64c538775f
9 changed files with 211 additions and 89 deletions

View File

@ -137,7 +137,7 @@
{{ scope.row.projectName ? scope.row.projectName : '未分配' }}
</template>
</el-table-column> -->
<el-table-column label="备注" align="center" prop="remark" min-width="100px" />
<!-- <el-table-column label="备注" align="center" prop="remark" min-width="100px" /> -->
<!-- <el-table-column label="创建时间" align="center" prop="deviceCreateTime" min-width="100px">
<template #default="scope">
<span>{{ proxy.parseTime(scope.row.deviceCreateTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
@ -145,7 +145,7 @@
</el-table-column> -->
<el-table-column label="操作" align="center" class-name="small-padding" min-width="160px" fixed="right">
<template #default="scope">
<el-button type="primary" link @click="handleUpdate(scope.row)"
<!-- <el-button type="primary" link @click="handleUpdate(scope.row)"
v-auth="'api/v1/system/ys7Devices/edit'"><el-icon>
<EditPen />
</el-icon>修改</el-button>
@ -156,7 +156,7 @@
<el-button type="primary" link @click="onLinkProject(scope.row)"
v-auth="'api/v1/system/ys7Devices/delete'"><el-icon>
<Link />
</el-icon>设备分配</el-button>
</el-icon>设备分配</el-button> -->
<el-button type="primary" link @click="addPreset(scope.row)"><el-icon>
<Plus />
</el-icon>添加预置位</el-button>
@ -243,15 +243,17 @@ const resetQuery = (formEl: FormInstance | undefined) => {
const ys7DevicesList = () => {
loading.value = true;
getMonitoringList({
pageStart: 1,
pageSize: 10
pageStart: state.tableData.param.pageNum,
pageSize: state.tableData.param.pageSize,
}).then((res: any) => {
let list = res.data ?? [];
let list = res.data.object ?? [];
state.tableData.data = list.map((item) => {
item.enctyptLoading = false;
return item;
});
state.tableData.total = res.total;
state.tableData.total = Number(res.data.sum);
console.log(state.tableData);
loading.value = false;
});
};
@ -270,17 +272,17 @@ const handleSelectionChange = (selection: any[]) => {
};
// 新增
const handleAdd = () => {
addRef.value.openDialog();
};
// const handleAdd = () => {
// addRef.value.openDialog();
// };
// 编辑
const handleUpdate = (row?: Ys7DeviceVO) => {
if (!row) {
row = state.tableData.data.find((item) => item.id === state.ids[0])!;
}
editRef.value.openDialog(toRaw(row));
};
// // 编辑
// const handleUpdate = (row?: Ys7DeviceVO) => {
// if (!row) {
// row = state.tableData.data.find((item) => item.id === state.ids[0])!;
// }
// editRef.value.openDialog(toRaw(row));
// };
// 删除
const handleDelete = (row?: Ys7DeviceVO) => {
@ -340,22 +342,22 @@ const encryptChange = (row: Ys7DeviceVO | any) => {
};
//监听项目id刷新数据
const listeningProject = watch(
() => currentProject.value?.id,
(nid, oid) => {
tableData.value.param.projectId = nid;
initTableData();
}
);
// const listeningProject = watch(
// () => currentProject.value?.id,
// (nid, oid) => {
// tableData.value.param.projectId = nid;
// initTableData();
// }
// );
// 页面加载
onMounted(() => {
initTableData();
});
onUnmounted(() => {
listeningProject();
});
// onUnmounted(() => {
// listeningProject();
// });
// 暴露变量
const { tableData, projectList } = toRefs(state);