优化章节读取逻辑,优先从数据库获取章节数据并处理最新的 isFree 状态;改进用户行为轨迹和绑定关系加载,增加错误处理和用户提示。

This commit is contained in:
乘风
2026-01-31 11:42:49 +08:00
parent e21837bf47
commit 77a1c87678
10 changed files with 3384 additions and 15 deletions

View File

@@ -100,18 +100,32 @@ export function UserDetailModal({ open, onClose, userId, onUserUpdated }: UserDe
setEditTags(u.tags ? JSON.parse(u.tags) : [])
}
// 加载行为轨迹
const trackRes = await fetch(`/api/user/track?userId=${userId}&limit=50`)
const trackData = await trackRes.json()
if (trackData.success) {
setTracks(trackData.tracks || [])
// 🔥 加载行为轨迹(可能接口未实现,静默失败)
try {
const trackRes = await fetch(`/api/user/track?userId=${userId}&limit=50`)
if (trackRes.ok) {
const trackData = await trackRes.json()
if (trackData.success) {
setTracks(trackData.tracks || [])
}
}
} catch (err) {
console.log("行为轨迹接口暂未实现,显示占位内容")
setTracks([])
}
// 加载绑定关系
const refRes = await fetch(`/api/db/users/referrals?userId=${userId}`)
const refData = await refRes.json()
if (refData.success) {
setReferrals(refData.referrals || [])
// 🔥 加载绑定关系(静默失败)
try {
const refRes = await fetch(`/api/db/users/referrals?userId=${userId}`)
if (refRes.ok) {
const refData = await refRes.json()
if (refData.success) {
setReferrals(refData.referrals || [])
}
}
} catch (err) {
console.log("绑定关系加载失败,使用默认数据")
setReferrals([])
}
} catch (error) {
@@ -458,9 +472,21 @@ export function UserDetailModal({ open, onClose, userId, onUserUpdated }: UserDe
</div>
))
) : (
<div className="text-center py-12 text-gray-500">
<History className="w-12 h-12 mx-auto mb-3 opacity-30" />
<p></p>
<div className="text-center py-12">
<div className="w-20 h-20 mx-auto mb-4 rounded-2xl bg-gradient-to-br from-[#38bdac]/20 to-[#38bdac]/5 flex items-center justify-center">
<History className="w-10 h-10 text-[#38bdac]/40" />
</div>
<p className="text-gray-400 mb-2">📊 </p>
<p className="text-gray-600 text-sm"></p>
<div className="mt-6 p-4 bg-[#0a1628] rounded-lg text-left">
<p className="text-gray-500 text-xs mb-2"></p>
<ul className="space-y-1 text-gray-600 text-xs">
<li> </li>
<li> </li>
<li> </li>
<li> </li>
</ul>
</div>
</div>
)}
</div>