feat(设备管理): 添加设备工单关联功能

实现设备与工单的关联功能,包括:
1. 后端添加设备工单列表接口
2. 前端API添加设备工单相关方法
3. 设备详情页增加工单标签页
4. 设备管理页添加查看/创建工单按钮
5. 工单管理页支持从设备跳转查看/创建工单
This commit is contained in:
zhang1106
2026-02-12 13:27:32 +08:00
parent 43af020877
commit 0b00bf6f3d
5 changed files with 428 additions and 9 deletions
+38
View File
@@ -950,6 +950,44 @@ router.get('/:deviceId', async (req, res) => {
}
});
// 获取设备的工单列表
router.get('/:deviceId/tickets', async (req, res) => {
try {
const { deviceId } = req.params;
const { status, page = 1, pageSize = 10 } = req.query;
const offset = (page - 1) * pageSize;
// 检查设备是否存在
const device = await Device.findByPk(deviceId);
if (!device) {
return res.status(404).json({ error: '设备不存在' });
}
// 构建查询条件
const where = { deviceId };
if (status && status !== 'all') {
where.status = status;
}
// 查询工单列表
const { count, rows: tickets } = await Ticket.findAndCountAll({
where,
order: [['createdAt', 'DESC']],
offset: parseInt(offset),
limit: parseInt(pageSize)
});
res.json({
data: tickets,
total: count,
page: parseInt(page),
pageSize: parseInt(pageSize)
});
} catch (error) {
res.status(500).json({ error: error.message });
}
});
// 更新设备
router.put('/:deviceId', validateBody(updateDeviceSchema), async (req, res) => {
try {