feat:设备详情构建完成

This commit is contained in:
许永平
2025-07-05 16:50:34 +08:00
parent 85749c7d33
commit 8f0876924f

View File

@@ -163,7 +163,8 @@ export default function DeviceDetail() {
};
fetchDevice();
}, [id, toast]);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [id]);
// 获取设备关联微信账号
const fetchRelatedAccounts = async (page = 1) => {
@@ -315,10 +316,19 @@ export default function DeviceDetail() {
}, 100);
};
// 功能开关处理
// 功能开关处理 - 只更新开关状态,不重新加载页面
const handleFeatureChange = async (feature: keyof Device['features'], checked: boolean) => {
if (!id) return;
// 立即更新UI状态提供即时反馈
setDevice(prev => prev ? {
...prev,
features: {
...prev.features,
[feature]: checked
}
} : null);
setSavingFeatures(prev => ({ ...prev, [feature]: true }));
try {
@@ -328,19 +338,21 @@ export default function DeviceDetail() {
});
if (response && response.code === 200) {
setDevice(prev => prev ? {
...prev,
features: {
...prev.features,
[feature]: checked
}
} : null);
// 请求成功,显示成功提示
toast({
title: "设置成功",
description: `${getFeatureName(feature)}${checked ? '启用' : '禁用'}`,
});
} else {
// 请求失败回滚UI状态
setDevice(prev => prev ? {
...prev,
features: {
...prev.features,
[feature]: !checked
}
} : null);
toast({
title: "设置失败",
description: response.message || "请稍后重试",
@@ -349,6 +361,16 @@ export default function DeviceDetail() {
}
} catch (error) {
console.error("设置功能失败:", error);
// 网络错误回滚UI状态
setDevice(prev => prev ? {
...prev,
features: {
...prev.features,
[feature]: !checked
}
} : null);
toast({
title: "设置失败",
description: "请稍后重试",