sync: soul-admin 组件 | 原因: 前端组件修改

This commit is contained in:
卡若
2026-03-08 08:58:06 +08:00
parent 2b59a9f143
commit b2ad28b71c

View File

@@ -543,89 +543,6 @@ export function UserDetailModal({
</div>
</TabsContent>
{/* ===== RFM 估值 ===== */}
<TabsContent value="rfm" className="flex-1 overflow-auto space-y-4">
{rfmData ? (
<>
<div className="p-4 bg-[#0a1628] rounded-lg border border-gray-700/30">
<div className="flex items-center justify-between mb-4">
<div className="flex items-center gap-2">
<TrendingUp className="w-5 h-5 text-[#38bdac]" />
<span className="text-white font-medium text-lg"> RFM </span>
</div>
<div className="text-right">
<div className="text-3xl font-bold text-white">{rfmData.rfmScore}</div>
<Badge className={`border-0 ${getRFMLevelColor(rfmData.rfmLevel)}`}>
{rfmData.rfmLevel}
</Badge>
</div>
</div>
<div className="grid grid-cols-3 gap-4">
<div className="p-3 bg-[#162840] rounded-lg text-center">
<div className="w-8 h-8 rounded bg-red-500/20 flex items-center justify-center text-sm font-bold text-red-400 mx-auto mb-2">R</div>
<div className="text-2xl font-bold text-red-400">{rfmData.recency}</div>
<div className="text-gray-500 text-xs mt-1"></div>
<div className="text-gray-600 text-xs"></div>
</div>
<div className="p-3 bg-[#162840] rounded-lg text-center">
<div className="w-8 h-8 rounded bg-blue-500/20 flex items-center justify-center text-sm font-bold text-blue-400 mx-auto mb-2">F</div>
<div className="text-2xl font-bold text-blue-400">{rfmData.frequency}</div>
<div className="text-gray-500 text-xs mt-1"></div>
<div className="text-gray-600 text-xs"></div>
</div>
<div className="p-3 bg-[#162840] rounded-lg text-center">
<div className="w-8 h-8 rounded bg-green-500/20 flex items-center justify-center text-sm font-bold text-green-400 mx-auto mb-2">M</div>
<div className="text-2xl font-bold text-green-400">¥{rfmData.monetary.toFixed(0)}</div>
<div className="text-gray-500 text-xs mt-1"></div>
<div className="text-gray-600 text-xs"></div>
</div>
</div>
{rfmData.lastOrderAt && (
<div className="mt-3 text-sm text-gray-500">
{new Date(rfmData.lastOrderAt).toLocaleString()}
</div>
)}
</div>
<div className="p-4 bg-[#0a1628] rounded-lg">
<p className="text-gray-400 text-sm mb-3 font-medium"></p>
<div className="space-y-2 text-sm">
{[
{ level: 'S', label: '超级VIP', desc: '高频高额近期活跃,顶级价值用户', color: 'text-amber-400' },
{ level: 'A', label: '高价值', desc: '消费能力强,复购率高', color: 'text-green-400' },
{ level: 'B', label: '潜力用户', desc: '有一定消费,需重点维护', color: 'text-blue-400' },
{ level: 'C', label: '普通用户', desc: '偶发购买,待激活', color: 'text-gray-400' },
{ level: 'D', label: '低活跃', desc: '长期未购买或无消费记录', color: 'text-red-400' },
].map((item) => (
<div key={item.level} className={`flex items-center gap-3 ${rfmData.rfmLevel === item.level ? 'opacity-100' : 'opacity-50'}`}>
<Badge className={`border-0 w-6 h-6 flex items-center justify-center p-0 ${getRFMLevelColor(item.level)}`}>
{item.level}
</Badge>
<span className={`font-medium w-16 ${item.color}`}>{item.label}</span>
<span className="text-gray-500">{item.desc}</span>
{rfmData.rfmLevel === item.level && (
<CheckCircle2 className="w-4 h-4 text-[#38bdac] ml-auto" />
)}
</div>
))}
</div>
</div>
</>
) : (
<div className="text-center py-12">
<TrendingUp className="w-12 h-12 text-[#38bdac]/30 mx-auto mb-4" />
<p className="text-gray-400"> RFM </p>
<p className="text-gray-600 text-sm mt-1"> RFM </p>
<Button
className="mt-4 bg-[#38bdac] hover:bg-[#2da396] text-white"
onClick={loadUserDetail}
>
<RefreshCw className="w-4 h-4 mr-2" />
</Button>
</div>
)}
</TabsContent>
{/* ===== 标签体系 ===== */}
<TabsContent value="tags" className="flex-1 overflow-auto space-y-4">
<div className="p-4 bg-[#0a1628] rounded-lg">