存客宝 - 前端存储登录数据额外返回的 s2_accountId 字段参数,用于操盘手添加设备

This commit is contained in:
柳清爽
2025-04-30 15:19:31 +08:00
parent df72ab8095
commit af1b3b6988
2 changed files with 47 additions and 22 deletions

View File

@@ -171,8 +171,6 @@ export default function DevicesPage() {
setIsLoadingQRCode(true)
setQrCodeImage("") // 清空当前二维码
console.log("正在请求二维码...");
// 发起请求获取二维码 - 直接使用fetch避免api工具添加基础URL
const response = await fetch('http://yi.54word.com/v1/api/device/add', {
method: 'POST',
@@ -183,8 +181,6 @@ export default function DevicesPage() {
body: JSON.stringify({})
})
console.log("二维码请求响应状态:", response.status);
// 保存原始响应文本以便调试
const responseText = await response.text();
console.log("原始响应内容:", responseText);
@@ -499,6 +495,43 @@ export default function DevicesPage() {
router.push(`/devices/${deviceId}`);
}
// 处理添加设备
const handleAddDevice = async () => {
try {
const s2_accountId = localStorage.getItem('s2_accountId');
if (!s2_accountId) {
toast.error('未获取到用户信息,请重新登录');
return;
}
const response = await fetch('/api/devices', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${localStorage.getItem('token')}`,
},
body: JSON.stringify({
imei: deviceImei,
memo: deviceName,
s2_accountId: s2_accountId,
}),
});
const data = await response.json();
if (data.code === 200) {
toast.success('添加设备成功');
setIsAddDeviceOpen(false);
// 刷新设备列表
loadDevices(1, true);
} else {
toast.error(data.msg || '添加设备失败');
}
} catch (error) {
console.error('添加设备失败:', error);
toast.error('添加设备失败,请稍后重试');
}
};
return (
<div className="flex-1 bg-gray-50 min-h-screen">
<header className="sticky top-0 z-10 bg-white border-b">
@@ -748,15 +781,10 @@ export default function DevicesPage() {
</Button>
<Button
onClick={handleAddDeviceByImei}
disabled={isSubmittingImei || !deviceImei.trim()}
onClick={handleAddDevice}
disabled={!deviceImei.trim() || !deviceName.trim()}
>
{isSubmittingImei ? (
<>
<div className="w-4 h-4 mr-2 rounded-full border-2 border-white border-t-transparent animate-spin"></div>
...
</>
) : "添加"}
</Button>
</div>
</div>

View File

@@ -98,17 +98,14 @@ export default function LoginPage() {
const response = await loginApi.login(form.phone, form.password)
if (response.code === 200 && response.data) {
// 获取用户信息和token
const { token, token_expired, member } = response.data
// 保存登录信息
localStorage.setItem('token', response.data.token)
localStorage.setItem('token_expired', response.data.token_expired)
localStorage.setItem('s2_accountId', response.data.member.s2_accountId)
// 保存用户信息
localStorage.setItem('userInfo', JSON.stringify(response.data.member))
// 保存token和用户信息
login(token, {
id: member.id,
username: member.username || member.account || '',
account: member.account,
avatar: member.avatar
})
// 显示成功提示
toast({
title: "登录成功",