436 lines
25 KiB
HTML
436 lines
25 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>客户详情 - 球房运营助手</title>
|
||
<script src="https://cdn.tailwindcss.com"></script>
|
||
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
||
<link href="../css/banner.css" rel="stylesheet">
|
||
<script>
|
||
tailwind.config = {
|
||
theme: {
|
||
extend: {
|
||
colors: {
|
||
primary: '#0052d9',
|
||
'primary-light': '#ecf2fe',
|
||
success: '#00a870',
|
||
warning: '#ed7b2f',
|
||
error: '#e34d59',
|
||
'gray-1': '#f3f3f3',
|
||
'gray-2': '#eeeeee',
|
||
'gray-3': '#e7e7e7',
|
||
'gray-4': '#dcdcdc',
|
||
'gray-5': '#c5c5c5',
|
||
'gray-6': '#a6a6a6',
|
||
'gray-7': '#8b8b8b',
|
||
'gray-8': '#777777',
|
||
'gray-9': '#5e5e5e',
|
||
'gray-10': '#4b4b4b',
|
||
'gray-11': '#393939',
|
||
'gray-12': '#2c2c2c',
|
||
'gray-13': '#242424',
|
||
},
|
||
fontFamily: {
|
||
sans: ['Noto Sans SC', 'sans-serif'],
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
<style>
|
||
body {
|
||
font-family: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, sans-serif;
|
||
padding-bottom: 80px;
|
||
}
|
||
.section-title {
|
||
position: relative;
|
||
padding-left: 12px;
|
||
}
|
||
.section-title::before {
|
||
content: '';
|
||
position: absolute;
|
||
left: 0;
|
||
top: 50%;
|
||
transform: translateY(-50%);
|
||
width: 4px;
|
||
height: 16px;
|
||
border-radius: 2px;
|
||
}
|
||
.section-title.blue::before { background: linear-gradient(180deg, #0052d9, #5b9cf8); }
|
||
.section-title.green::before { background: linear-gradient(180deg, #00a870, #4cd964); }
|
||
.section-title.orange::before { background: linear-gradient(180deg, #ed7b2f, #ffc107); }
|
||
.section-title.pink::before { background: linear-gradient(180deg, #e851a4, #f5a0c0); }
|
||
</style>
|
||
</head>
|
||
<body class="bg-gray-1 min-h-screen">
|
||
<!-- 通栏 Banner - 客户信息 -->
|
||
<div class="banner-bg theme-dark-gold texture-aurora relative text-white">
|
||
<!-- 导航栏 -->
|
||
<div class="h-11 flex items-center relative px-4">
|
||
<button onclick="history.back()" class="absolute left-4 p-1">
|
||
<svg class="w-5 h-5 text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<polyline points="15 18 9 12 15 6"/>
|
||
</svg>
|
||
</button>
|
||
<h1 class="flex-1 text-center text-base font-medium">客户详情</h1>
|
||
</div>
|
||
|
||
<!-- 客户信息 -->
|
||
<div class="px-5 pt-2 pb-6">
|
||
<div class="flex items-center gap-4 mb-4">
|
||
<div class="w-16 h-16 rounded-2xl bg-white/20 backdrop-blur-sm flex items-center justify-center shadow-lg">
|
||
<span class="text-2xl font-bold text-white">王</span>
|
||
</div>
|
||
<div class="flex-1">
|
||
<div class="flex items-center gap-2 mb-2">
|
||
<span class="text-xl font-semibold">王先生</span>
|
||
<span class="px-2 py-0.5 bg-gradient-to-r from-amber-500 to-yellow-400 text-black font-medium rounded-full text-xs">VIP</span>
|
||
</div>
|
||
<div class="flex items-center gap-4 text-white/70 text-sm">
|
||
<span>138****5678</span>
|
||
<span>VIP20231215</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="bg-white/10 rounded-xl backdrop-blur-sm">
|
||
<div class="grid grid-cols-3">
|
||
<div class="text-center py-3 border-r border-white/10">
|
||
<p class="font-medium text-emerald-300 text-sm">¥8,600</p>
|
||
<p class="text-white/60 text-xs mt-1">储值余额</p>
|
||
</div>
|
||
<div class="text-center py-3 border-r border-white/10">
|
||
<p class="font-medium text-sm">¥2,800</p>
|
||
<p class="text-white/60 text-xs mt-1">60天累计消费</p>
|
||
</div>
|
||
<div class="text-center py-3">
|
||
<p class="font-medium text-sm">广州朗朗桌球</p>
|
||
<p class="text-white/60 text-xs mt-1">门店</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 主体内容 -->
|
||
<div class="p-4 space-y-4">
|
||
<!-- 消费习惯 -->
|
||
<div class="bg-white rounded-2xl p-5 shadow-sm">
|
||
<h2 class="section-title green text-sm font-semibold text-gray-13 mb-4">消费习惯</h2>
|
||
<div class="flex flex-wrap gap-2 mb-3">
|
||
<span class="px-3 py-1.5 bg-gradient-to-r from-blue-50 to-indigo-50 text-primary text-xs rounded-full border border-blue-100">🌙 常来夜场</span>
|
||
<span class="px-3 py-1.5 bg-gradient-to-r from-green-50 to-emerald-50 text-success text-xs rounded-full border border-green-100">🎱 偏爱中式</span>
|
||
<span class="px-3 py-1.5 bg-gradient-to-r from-orange-50 to-amber-50 text-warning text-xs rounded-full border border-orange-100">💰 高客单价</span>
|
||
<span class="px-3 py-1.5 bg-gradient-to-r from-pink-50 to-rose-50 text-error text-xs rounded-full border border-pink-100">🍷 爱点酒水</span>
|
||
</div>
|
||
<p class="text-sm text-gray-7 leading-relaxed">
|
||
偏好晚间 21:00 后到店,喜欢中式台球和斯诺克。平均消费 350 元/次,月均到店 4-5 次。经常点套餐和饮品,倾向于包厢消费。近 60 天到店 8 次,消费金额 2,800 元。
|
||
</p>
|
||
</div>
|
||
|
||
<!-- 消费记录 -->
|
||
<div class="bg-white rounded-2xl p-5 shadow-sm">
|
||
<h2 class="section-title orange text-sm font-semibold text-gray-13 mb-4">消费记录</h2>
|
||
<div class="space-y-4">
|
||
|
||
<!-- Record 1: 台桌详情 - 有食品酒水,2位助教 -->
|
||
<div class="rounded-xl border border-gray-200 overflow-hidden">
|
||
<div class="bg-gradient-to-r from-blue-50 to-indigo-50 px-4 py-2.5 flex items-center justify-between border-b border-blue-100/50">
|
||
<div class="flex items-center gap-2">
|
||
<span class="w-1.5 h-1.5 bg-primary rounded-full"></span>
|
||
<span class="text-xs font-semibold text-primary">台桌详情</span>
|
||
</div>
|
||
<span class="text-xs text-gray-6">2026-02-05</span>
|
||
</div>
|
||
<!-- 时间轴 -->
|
||
<div class="px-4 py-3.5 border-b border-gray-100">
|
||
<div class="flex items-center">
|
||
<div class="flex flex-col items-center">
|
||
<div class="w-2.5 h-2.5 rounded-full bg-primary ring-4 ring-primary/10"></div>
|
||
<span class="text-[10px] text-gray-5 mt-1">开台</span>
|
||
<span class="text-sm font-bold text-gray-13">21:30</span>
|
||
</div>
|
||
<div class="flex-1 flex items-center mx-2 -mt-4">
|
||
<div class="h-0.5 bg-gradient-to-r from-primary/40 to-primary/20 flex-1"></div>
|
||
<div class="px-3 py-1 bg-primary/10 rounded-full mx-1">
|
||
<span class="text-[11px] font-semibold text-primary">3h 20min</span>
|
||
</div>
|
||
<div class="h-0.5 bg-gradient-to-r from-primary/20 to-primary/40 flex-1"></div>
|
||
</div>
|
||
<div class="flex flex-col items-center">
|
||
<div class="w-2.5 h-2.5 rounded-full bg-gray-400 ring-4 ring-gray-200"></div>
|
||
<span class="text-[10px] text-gray-5 mt-1">结束</span>
|
||
<span class="text-sm font-bold text-gray-13">00:50</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 助教 & 明细 -->
|
||
<div class="px-4 py-3 space-y-3">
|
||
<div class="flex items-start justify-between">
|
||
<div>
|
||
<div class="flex items-center gap-1.5 mb-1">
|
||
<span class="text-sm font-medium text-gray-13">小燕</span>
|
||
<span class="px-1.5 py-0.5 bg-pink-50 text-pink-600 text-[10px] rounded font-medium">高级</span>
|
||
<span class="px-1.5 py-0.5 bg-blue-50 text-primary text-[10px] rounded font-medium">基础课</span>
|
||
</div>
|
||
<span class="text-xs text-gray-6">服务 2.5h</span>
|
||
</div>
|
||
</div>
|
||
<div class="flex items-start justify-between border-t border-dashed border-gray-100 pt-3">
|
||
<div>
|
||
<div class="flex items-center gap-1.5 mb-1">
|
||
<span class="text-sm font-medium text-gray-13">Amy</span>
|
||
<span class="px-1.5 py-0.5 bg-green-50 text-green-600 text-[10px] rounded font-medium">初级</span>
|
||
<span class="px-1.5 py-0.5 bg-orange-50 text-warning text-[10px] rounded font-medium">激励课</span>
|
||
</div>
|
||
<div class="flex items-center gap-2">
|
||
<span class="text-xs text-gray-6">服务 0.5h</span>
|
||
<span class="text-xs text-orange-500 font-medium">定档绩效:1小时</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="flex items-center justify-between border-t border-gray-100 pt-3">
|
||
<span class="text-xs text-gray-6">🍷 食品酒水</span>
|
||
<span class="text-sm font-medium text-warning">¥260</span>
|
||
</div>
|
||
<div class="flex items-center justify-between border-t border-gray-200 pt-3">
|
||
<span class="text-xs font-semibold text-gray-9">总金额</span>
|
||
<span class="text-base font-bold text-error">¥640</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Record 2: 台桌详情 - 无食品酒水,有定档绩效 -->
|
||
<div class="rounded-xl border border-gray-200 overflow-hidden">
|
||
<div class="bg-gradient-to-r from-blue-50 to-indigo-50 px-4 py-2.5 flex items-center justify-between border-b border-blue-100/50">
|
||
<div class="flex items-center gap-2">
|
||
<span class="w-1.5 h-1.5 bg-primary rounded-full"></span>
|
||
<span class="text-xs font-semibold text-primary">台桌详情</span>
|
||
</div>
|
||
<span class="text-xs text-gray-6">2026-02-01</span>
|
||
</div>
|
||
<div class="px-4 py-3.5 border-b border-gray-100">
|
||
<div class="flex items-center">
|
||
<div class="flex flex-col items-center">
|
||
<div class="w-2.5 h-2.5 rounded-full bg-primary ring-4 ring-primary/10"></div>
|
||
<span class="text-[10px] text-gray-5 mt-1">开台</span>
|
||
<span class="text-sm font-bold text-gray-13">14:00</span>
|
||
</div>
|
||
<div class="flex-1 flex items-center mx-2 -mt-4">
|
||
<div class="h-0.5 bg-gradient-to-r from-primary/40 to-primary/20 flex-1"></div>
|
||
<div class="px-3 py-1 bg-primary/10 rounded-full mx-1">
|
||
<span class="text-[11px] font-semibold text-primary">2h 00min</span>
|
||
</div>
|
||
<div class="h-0.5 bg-gradient-to-r from-primary/20 to-primary/40 flex-1"></div>
|
||
</div>
|
||
<div class="flex flex-col items-center">
|
||
<div class="w-2.5 h-2.5 rounded-full bg-gray-400 ring-4 ring-gray-200"></div>
|
||
<span class="text-[10px] text-gray-5 mt-1">结束</span>
|
||
<span class="text-sm font-bold text-gray-13">16:00</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="px-4 py-3 space-y-3">
|
||
<div class="flex items-start justify-between">
|
||
<div>
|
||
<div class="flex items-center gap-1.5 mb-1">
|
||
<span class="text-sm font-medium text-gray-13">泡芙</span>
|
||
<span class="px-1.5 py-0.5 bg-purple-50 text-purple-600 text-[10px] rounded font-medium">中级</span>
|
||
<span class="px-1.5 py-0.5 bg-orange-50 text-warning text-[10px] rounded font-medium">激励课</span>
|
||
</div>
|
||
<div class="flex items-center gap-2">
|
||
<span class="text-xs text-gray-6">服务 1.5h</span>
|
||
<span class="text-xs text-orange-500 font-medium">定档绩效:2小时</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="flex items-center justify-between border-t border-gray-200 pt-3">
|
||
<span class="text-xs font-semibold text-gray-9">总金额</span>
|
||
<span class="text-base font-bold text-error">¥220</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Record 3: 商城订单 - 有食品酒水 -->
|
||
<div class="rounded-xl border border-gray-200 overflow-hidden">
|
||
<div class="bg-gradient-to-r from-emerald-50 to-green-50 px-4 py-2.5 flex items-center justify-between border-b border-green-100/50">
|
||
<div class="flex items-center gap-2">
|
||
<span class="w-1.5 h-1.5 bg-success rounded-full"></span>
|
||
<span class="text-xs font-semibold text-success">商城订单</span>
|
||
</div>
|
||
<span class="text-xs text-gray-6">2026-01-28</span>
|
||
</div>
|
||
<div class="px-4 py-3 space-y-3">
|
||
<div class="flex items-start justify-between">
|
||
<div>
|
||
<div class="flex items-center gap-1.5 mb-1">
|
||
<span class="text-sm font-medium text-gray-13">小燕</span>
|
||
<span class="px-1.5 py-0.5 bg-pink-50 text-pink-600 text-[10px] rounded font-medium">高级</span>
|
||
<span class="px-1.5 py-0.5 bg-blue-50 text-primary text-[10px] rounded font-medium">基础课</span>
|
||
</div>
|
||
<span class="text-xs text-gray-6">服务 1h</span>
|
||
</div>
|
||
</div>
|
||
<div class="flex items-center justify-between border-t border-gray-100 pt-3">
|
||
<span class="text-xs text-gray-6">🍷 食品酒水</span>
|
||
<span class="text-sm font-medium text-warning">¥180</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 最喜欢的助教 -->
|
||
<div class="bg-white rounded-2xl p-5 shadow-sm">
|
||
<h2 class="section-title pink text-sm font-semibold text-gray-13 mb-4">最喜欢的助教</h2>
|
||
<div class="space-y-3">
|
||
<!-- 小燕 -->
|
||
<div class="p-4 bg-gradient-to-br from-pink-50/80 to-rose-50/60 rounded-xl border border-pink-100/60">
|
||
<div class="flex items-center justify-between mb-2.5">
|
||
<div class="flex items-center gap-2.5">
|
||
<span class="text-lg">❤️</span>
|
||
<span class="text-sm font-semibold text-gray-13">小燕</span>
|
||
</div>
|
||
<div class="flex items-center gap-1.5">
|
||
<span class="text-[10px] text-gray-5">关系指数</span>
|
||
<span class="text-lg font-bold text-success">0.92</span>
|
||
</div>
|
||
</div>
|
||
<p class="text-[10px] text-gray-5 mb-1.5 pl-0.5">近60天</p>
|
||
<div class="grid grid-cols-4 gap-2">
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">基础</p>
|
||
<p class="text-sm font-bold text-primary">12h</p>
|
||
</div>
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">激励</p>
|
||
<p class="text-sm font-bold text-warning">5h</p>
|
||
</div>
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">上课</p>
|
||
<p class="text-sm font-bold text-gray-13">18次</p>
|
||
</div>
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">充值</p>
|
||
<p class="text-sm font-bold text-success">¥5,000</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 泡芙 -->
|
||
<div class="p-4 bg-gradient-to-br from-amber-50/80 to-yellow-50/60 rounded-xl border border-amber-100/60">
|
||
<div class="flex items-center justify-between mb-2.5">
|
||
<div class="flex items-center gap-2.5">
|
||
<span class="text-lg">💛</span>
|
||
<span class="text-sm font-semibold text-gray-13">泡芙</span>
|
||
</div>
|
||
<div class="flex items-center gap-1.5">
|
||
<span class="text-[10px] text-gray-5">关系指数</span>
|
||
<span class="text-lg font-bold text-warning">0.78</span>
|
||
</div>
|
||
</div>
|
||
<p class="text-[10px] text-gray-5 mb-1.5 pl-0.5">近60天</p>
|
||
<div class="grid grid-cols-4 gap-2">
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">基础</p>
|
||
<p class="text-sm font-bold text-primary">8h</p>
|
||
</div>
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">激励</p>
|
||
<p class="text-sm font-bold text-warning">3h</p>
|
||
</div>
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">上课</p>
|
||
<p class="text-sm font-bold text-gray-13">12次</p>
|
||
</div>
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">充值</p>
|
||
<p class="text-sm font-bold text-success">¥3,000</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- Amy -->
|
||
<div class="p-4 bg-gradient-to-br from-slate-50/80 to-gray-50/60 rounded-xl border border-gray-200/60">
|
||
<div class="flex items-center justify-between mb-2.5">
|
||
<div class="flex items-center gap-2.5">
|
||
<span class="text-lg">💛</span>
|
||
<span class="text-sm font-semibold text-gray-13">Amy</span>
|
||
</div>
|
||
<div class="flex items-center gap-1.5">
|
||
<span class="text-[10px] text-gray-5">关系指数</span>
|
||
<span class="text-lg font-bold text-gray-7">0.65</span>
|
||
</div>
|
||
</div>
|
||
<p class="text-[10px] text-gray-5 mb-1.5 pl-0.5">近60天</p>
|
||
<div class="grid grid-cols-4 gap-2">
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">基础</p>
|
||
<p class="text-sm font-bold text-primary">5h</p>
|
||
</div>
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">激励</p>
|
||
<p class="text-sm font-bold text-warning">2h</p>
|
||
</div>
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">上课</p>
|
||
<p class="text-sm font-bold text-gray-13">8次</p>
|
||
</div>
|
||
<div class="bg-white/80 rounded-lg py-2 text-center">
|
||
<p class="text-[10px] text-gray-5 mb-0.5">充值</p>
|
||
<p class="text-sm font-bold text-success">¥2,000</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 底部操作栏 -->
|
||
<div class="fixed bottom-0 left-0 right-0 h-16 bg-white/95 backdrop-blur-lg border-t border-gray-2 flex items-center gap-3 px-4">
|
||
<button onclick="window.location.href='chat.html'" class="flex-1 h-11 bg-gradient-to-r from-primary to-blue-500 text-white font-medium rounded-xl flex items-center justify-center gap-2 shadow-lg shadow-primary/30">
|
||
<svg class="w-5 h-5" viewBox="0 0 24 24" fill="currentColor">
|
||
<path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z"/>
|
||
</svg>
|
||
问问助手
|
||
</button>
|
||
<button onclick="showNoteModal()" class="flex-1 h-11 bg-gray-100 text-gray-13 font-medium rounded-xl flex items-center justify-center gap-2">
|
||
<svg class="w-5 h-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<path d="M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7"/>
|
||
<path d="M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z"/>
|
||
</svg>
|
||
备注
|
||
</button>
|
||
</div>
|
||
|
||
<!-- 备注弹窗 -->
|
||
<div id="noteModal" class="fixed inset-0 bg-black/50 z-50 hidden items-end">
|
||
<div class="w-full bg-white rounded-t-3xl p-5 pb-8">
|
||
<div class="flex items-center justify-between mb-4">
|
||
<span class="text-base font-semibold text-gray-13">添加备注</span>
|
||
<button onclick="hideNoteModal()" class="w-8 h-8 flex items-center justify-center rounded-full bg-gray-100">
|
||
<svg class="w-4 h-4 text-gray-6" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
||
<line x1="18" y1="6" x2="6" y2="18"/>
|
||
<line x1="6" y1="6" x2="18" y2="18"/>
|
||
</svg>
|
||
</button>
|
||
</div>
|
||
<textarea class="w-full h-32 p-4 bg-gray-50 rounded-xl resize-none text-sm text-gray-13 placeholder-gray-5 focus:outline-none focus:ring-2 focus:ring-primary/20 border border-gray-100" placeholder="请输入备注内容..."></textarea>
|
||
<button class="w-full h-12 bg-gradient-to-r from-primary to-blue-500 text-white font-medium rounded-xl mt-4 shadow-lg shadow-primary/30">保存</button>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
function showNoteModal() {
|
||
document.getElementById('noteModal').classList.remove('hidden');
|
||
document.getElementById('noteModal').classList.add('flex');
|
||
}
|
||
|
||
function hideNoteModal() {
|
||
document.getElementById('noteModal').classList.add('hidden');
|
||
document.getElementById('noteModal').classList.remove('flex');
|
||
}
|
||
</script>
|
||
</body>
|
||
</html>
|