From 1b45e61daff6f3db474165ae451cdbf376b28ac0 Mon Sep 17 00:00:00 2001 From: huang <1724659546@qq.com> Date: Mon, 20 Oct 2025 15:48:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=91=BD=E4=BB=A4=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/monitor.js | 130 +++++++----- src/components/GenericMonitorList.vue | 222 +++++++++++++++++++++ src/layouts/MainLayout.vue | 27 ++- src/main.js | 2 + src/views/monitor/DeviceCommandLogView.vue | 63 ++++++ 5 files changed, 389 insertions(+), 55 deletions(-) create mode 100644 src/components/GenericMonitorList.vue create mode 100644 src/views/monitor/DeviceCommandLogView.vue diff --git a/src/api/monitor.js b/src/api/monitor.js index c1f29918..bd83c578 100644 --- a/src/api/monitor.js +++ b/src/api/monitor.js @@ -1,154 +1,182 @@ import http from '../utils/http'; +// 这个辅助函数现在接收后端返回的JSON数据本身,而不是整个axios响应 +const processResponse = (responseData) => { + // 后端数据在responseData.data中 + const data = responseData.data; + return { + list: data.list || [], + total: data.pagination.total || 0, + }; +}; + /** * 获取设备命令日志列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getDeviceCommandLogs = (params) => { - return http.get('/api/v1/monitor/device-command-logs', { params }); +export const getDeviceCommandLogs = async (params) => { + // http.get 通常被封装为返回 response.data + const responseData = await http.get('/api/v1/monitor/device-command-logs', { params }); + return processResponse(responseData); }; /** * 获取饲料使用记录列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getFeedUsageRecords = (params) => { - return http.get('/api/v1/monitor/feed-usage-records', { params }); +export const getFeedUsageRecords = async (params) => { + const responseData = await http.get('/api/v1/monitor/feed-usage-records', { params }); + return processResponse(responseData); }; /** * 获取用药记录列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getMedicationLogs = (params) => { - return http.get('/api/v1/monitor/medication-logs', { params }); +export const getMedicationLogs = async (params) => { + const responseData = await http.get('/api/v1/monitor/medication-logs', { params }); + return processResponse(responseData); }; /** * 获取待采集请求列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getPendingCollections = (params) => { - return http.get('/api/v1/monitor/pending-collections', { params }); +export const getPendingCollections = async (params) => { + const responseData = await http.get('/api/v1/monitor/pending-collections', { params }); + return processResponse(responseData); }; /** * 获取猪批次日志列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getPigBatchLogs = (params) => { - return http.get('/api/v1/monitor/pig-batch-logs', { params }); +export const getPigBatchLogs = async (params) => { + const responseData = await http.get('/api/v1/monitor/pig-batch-logs', { params }); + return processResponse(responseData); }; /** * 获取猪只采购记录列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getPigPurchases = (params) => { - return http.get('/api/v1/monitor/pig-purchases', { params }); +export const getPigPurchases = async (params) => { + const responseData = await http.get('/api/v1/monitor/pig-purchases', { params }); + return processResponse(responseData); }; /** * 获取猪只售卖记录列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getPigSales = (params) => { - return http.get('/api/v1/monitor/pig-sales', { params }); +export const getPigSales = async (params) => { + const responseData = await http.get('/api/v1/monitor/pig-sales', { params }); + return processResponse(responseData); }; /** * 获取病猪日志列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getPigSickLogs = (params) => { - return http.get('/api/v1/monitor/pig-sick-logs', { params }); +export const getPigSickLogs = async (params) => { + const responseData = await http.get('/api/v1/monitor/pig-sick-logs', { params }); + return processResponse(responseData); }; /** * 获取猪只迁移日志列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getPigTransferLogs = (params) => { - return http.get('/api/v1/monitor/pig-transfer-logs', { params }); +export const getPigTransferLogs = async (params) => { + const responseData = await http.get('/api/v1/monitor/pig-transfer-logs', { params }); + return processResponse(responseData); }; /** * 获取计划执行日志列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getPlanExecutionLogs = (params) => { - return http.get('/api/v1/monitor/plan-execution-logs', { params }); +export const getPlanExecutionLogs = async (params) => { + const responseData = await http.get('/api/v1/monitor/plan-execution-logs', { params }); + return processResponse(responseData); }; /** * 获取原料采购记录列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getRawMaterialPurchases = (params) => { - return http.get('/api/v1/monitor/raw-material-purchases', { params }); +export const getRawMaterialPurchases = async (params) => { + const responseData = await http.get('/api/v1/monitor/raw-material-purchases', { params }); + return processResponse(responseData); }; /** * 获取原料库存日志列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getRawMaterialStockLogs = (params) => { - return http.get('/api/v1/monitor/raw-material-stock-logs', { params }); +export const getRawMaterialStockLogs = async (params) => { + const responseData = await http.get('/api/v1/monitor/raw-material-stock-logs', { params }); + return processResponse(responseData); }; /** * 获取传感器数据列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getSensorData = (params) => { - return http.get('/api/v1/monitor/sensor-data', { params }); +export const getSensorData = async (params) => { + const responseData = await http.get('/api/v1/monitor/sensor-data', { params }); + return processResponse(responseData); }; /** * 获取任务执行日志列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getTaskExecutionLogs = (params) => { - return http.get('/api/v1/monitor/task-execution-logs', { params }); +export const getTaskExecutionLogs = async (params) => { + const responseData = await http.get('/api/v1/monitor/task-execution-logs', { params }); + return processResponse(responseData); }; /** * 获取用户操作日志列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getUserActionLogs = (params) => { - return http.get('/api/v1/monitor/user-action-logs', { params }); +export const getUserActionLogs = async (params) => { + const responseData = await http.get('/api/v1/monitor/user-action-logs', { params }); + return processResponse(responseData); }; /** * 获取批次称重记录列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getWeighingBatches = (params) => { - return http.get('/api/v1/monitor/weighing-batches', { params }); +export const getWeighingBatches = async (params) => { + const responseData = await http.get('/api/v1/monitor/weighing-batches', { params }); + return processResponse(responseData); }; /** * 获取单次称重记录列表 * @param {object} params - 查询参数 - * @returns {Promise<*>} + * @returns {Promise<{list: Array, total: number}>} */ -export const getWeighingRecords = (params) => { - return http.get('/api/v1/monitor/weighing-records', { params }); +export const getWeighingRecords = async (params) => { + const responseData = await http.get('/api/v1/monitor/weighing-records', { params }); + return processResponse(responseData); }; diff --git a/src/components/GenericMonitorList.vue b/src/components/GenericMonitorList.vue new file mode 100644 index 00000000..c44b90a6 --- /dev/null +++ b/src/components/GenericMonitorList.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index 960d05fc..fa1430cc 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -15,7 +15,7 @@ :collapse="isCollapse" :collapse-transition="false" router - :default-openeds="['/device-management']" + :default-openeds="['/device-management', '/monitor']" > @@ -42,6 +42,19 @@ + + + + + + + + + + @@ -88,7 +101,7 @@ + +