282 lines
16 KiB
HTML
282 lines
16 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">
|
|
<link href="../css/task-detail.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>
|
|
</head>
|
|
<body class="bg-gray-1 min-h-screen">
|
|
<!-- 通栏 Banner - 客户信息 -->
|
|
<div class="banner-bg theme-orange 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">
|
|
<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-white/25 backdrop-blur-sm text-white rounded-full text-xs font-medium">优先召回</span>
|
|
</div>
|
|
<div class="flex items-center gap-4 text-white/70 text-sm">
|
|
<span>139****1234</span>
|
|
<button onclick="this.previousElementSibling.textContent='13912341234';this.style.display='none'" class="px-2 py-0.5 bg-white/20 rounded text-white/90 text-xs">查看</button>
|
|
<span>💰 储值 <span style="background: linear-gradient(135deg, #d4af37 0%, #f4d03f 50%, #d4af37 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-weight: 600;">多</span></span>
|
|
</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-purple-50 to-violet-50 text-purple-600 text-xs rounded-full border border-purple-100">👥 爱组局</span>
|
|
</div>
|
|
<p class="text-sm text-gray-7 leading-relaxed">
|
|
偏好晚间 20:00-23:00 时段,喜欢中式八球。平均消费 220 元/次,之前月均到店 3-4 次,近期明显减少。喜欢和朋友组局打球。
|
|
</p>
|
|
</div>
|
|
|
|
<!-- 与我的关系 -->
|
|
<div class="bg-white rounded-2xl p-5 shadow-sm">
|
|
<h2 class="section-title blue text-sm font-semibold text-gray-13 mb-4">与我的关系</h2>
|
|
<div class="flex items-center gap-4 mb-4">
|
|
<div class="flex items-center gap-2">
|
|
<span class="px-4 py-2 bg-gradient-to-r from-amber-400 to-yellow-500 text-white text-sm font-semibold rounded-xl shadow-sm">💛 一般</span>
|
|
</div>
|
|
<div class="flex-1">
|
|
<div class="h-3 bg-gray-100 rounded-full overflow-hidden">
|
|
<div class="h-full bg-gradient-to-r from-amber-300 to-yellow-500 rounded-full" style="width: 55%"></div>
|
|
</div>
|
|
</div>
|
|
<span class="text-lg font-bold text-amber-500">0.55</span>
|
|
</div>
|
|
<p class="text-sm text-gray-7 leading-relaxed">
|
|
最近 2 个月互动较少,仅有 3 次服务记录。客户对您的印象中等,有提升空间。建议增加互动频次,建立更好的服务关系。
|
|
</p>
|
|
<!-- 最近服务记录 -->
|
|
<div class="svc-section-bg">
|
|
<p class="text-sm font-semibold text-gray-13 mb-3">📋 近期服务记录</p>
|
|
<div>
|
|
<div class="svc-record">
|
|
<div class="flex items-center justify-between mb-1.5">
|
|
<div class="flex items-center gap-2">
|
|
<span class="svc-table">5号台</span>
|
|
<span class="svc-type basic">基础课</span>
|
|
<span class="svc-duration">2.0h</span>
|
|
</div>
|
|
<span class="svc-income">¥160</span>
|
|
</div>
|
|
<div class="flex items-center justify-between">
|
|
<span class="svc-drinks">🍷 雪花x2 矿泉水x1</span>
|
|
<span class="svc-date">2026-02-06 19:00</span>
|
|
</div>
|
|
</div>
|
|
<div class="svc-record">
|
|
<div class="flex items-center justify-between mb-1.5">
|
|
<div class="flex items-center gap-2">
|
|
<span class="svc-table">A08号台</span>
|
|
<span class="svc-type incentive">激励课</span>
|
|
<span class="svc-duration">1.5h</span>
|
|
</div>
|
|
<span class="svc-income">¥150</span>
|
|
</div>
|
|
<div class="flex items-center justify-between">
|
|
<span class="svc-drinks">🍷 百威x1</span>
|
|
<span class="svc-date">2026-01-20 20:30</span>
|
|
</div>
|
|
</div>
|
|
<div class="svc-record">
|
|
<div class="flex items-center justify-between mb-1.5">
|
|
<div class="flex items-center gap-2">
|
|
<span class="svc-table">3号台</span>
|
|
<span class="svc-type basic">基础课</span>
|
|
<span class="svc-duration">2.0h</span>
|
|
</div>
|
|
<span class="svc-income">¥160</span>
|
|
</div>
|
|
<div class="flex items-center justify-between">
|
|
<span class="svc-drinks">🍷 可乐x2 红牛x1</span>
|
|
<span class="svc-date">2026-01-05 21:00</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="mt-3 text-center">
|
|
<button onclick="window.location.href='customer-service-records.html'" class="text-xs text-primary font-medium">查看全部服务记录 →</button>
|
|
</div>
|
|
</div>
|
|
</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="bg-gradient-to-br from-orange-50 to-amber-50 rounded-xl p-4 border border-orange-100">
|
|
<p class="text-sm text-warning leading-relaxed font-medium mb-3">
|
|
💡 建议执行
|
|
</p>
|
|
<p class="text-sm text-gray-9 leading-relaxed mb-2">
|
|
该客户消费频率从月均 4 次下降到近月仅 1 次,需要关注原因:
|
|
</p>
|
|
<ul class="text-sm text-gray-9 space-y-1.5 list-disc list-inside">
|
|
<li>了解是否工作变动或搬家导致不便</li>
|
|
<li>询问对门店服务是否有改进建议</li>
|
|
<li>推荐近期的会员优惠活动</li>
|
|
</ul>
|
|
</div>
|
|
<div class="mt-4 p-4 bg-gray-50 rounded-xl border border-gray-100">
|
|
<p class="text-sm text-gray-9 leading-relaxed">
|
|
<span class="font-medium text-gray-13">💬 话术参考:</span><br/>
|
|
"张哥,好久没见您来打球了,最近忙吗?店里这周六有个球友聚会活动,想邀请您来玩,顺便认识一些新球友~"
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 我给TA的备注 -->
|
|
<div class="bg-white rounded-2xl p-5 shadow-sm">
|
|
<div class="flex items-center justify-between mb-4">
|
|
<h2 class="section-title blue text-sm font-semibold text-gray-13">我给TA的备注</h2>
|
|
<span class="text-xs text-gray-6">2 条备注</span>
|
|
</div>
|
|
<div id="noteList" class="space-y-3">
|
|
<div class="flex items-start gap-3 p-3.5 bg-gray-50 rounded-xl border border-gray-100">
|
|
<div class="flex-1 min-w-0">
|
|
<p class="text-xs text-gray-6 mb-1.5">2026-02-03</p>
|
|
<p class="text-sm text-gray-9 leading-relaxed">张先生说最近换了工作,下班时间不固定,周末可能更方便。</p>
|
|
</div>
|
|
<button onclick="confirmDeleteNote()" class="shrink-0 w-7 h-7 flex items-center justify-center rounded-lg bg-white border border-gray-200 text-gray-5">
|
|
<svg class="w-3.5 h-3.5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 6h18"/><path d="M19 6v14a2 2 0 01-2 2H7a2 2 0 01-2-2V6m3 0V4a2 2 0 012-2h4a2 2 0 012 2v2"/></svg>
|
|
</button>
|
|
</div>
|
|
<div class="flex items-start gap-3 p-3.5 bg-gray-50 rounded-xl border border-gray-100">
|
|
<div class="flex-1 min-w-0">
|
|
<p class="text-xs text-gray-6 mb-1.5">2026-01-15</p>
|
|
<p class="text-sm text-gray-9 leading-relaxed">推荐了周末球友聚会活动,客户表示有兴趣但还没确认。</p>
|
|
</div>
|
|
<button onclick="confirmDeleteNote()" class="shrink-0 w-7 h-7 flex items-center justify-center rounded-lg bg-white border border-gray-200 text-gray-5">
|
|
<svg class="w-3.5 h-3.5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 6h18"/><path d="M19 6v14a2 2 0 01-2 2H7a2 2 0 01-2-2V6m3 0V4a2 2 0 012-2h4a2 2 0 012 2v2"/></svg>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div id="noteEmpty" class="text-center py-6 hidden">
|
|
<svg class="w-10 h-10 text-gray-4 mx-auto mb-2" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
|
|
<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>
|
|
<p class="text-sm text-gray-5">暂无备注</p>
|
|
</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-orange-500 to-amber-500 text-white font-medium rounded-xl flex items-center justify-center gap-2 shadow-lg shadow-orange-500/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 id="noteText" 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-orange-500/20 border border-gray-100" placeholder="请输入备注内容..."></textarea>
|
|
<button onclick="saveNote()" class="w-full h-12 bg-gradient-to-r from-orange-500 to-amber-500 text-white font-medium rounded-xl mt-4 shadow-lg shadow-orange-500/30">保存</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 删除备注确认弹窗 -->
|
|
<div id="deleteNoteModal" class="fixed inset-0 bg-black/50 z-50 hidden items-center justify-center px-6">
|
|
<div class="w-full max-w-sm bg-white rounded-2xl p-5 shadow-xl">
|
|
<div class="flex items-center justify-between mb-3">
|
|
<span class="text-base font-semibold text-gray-13">删除备注</span>
|
|
<button onclick="hideDeleteNoteModal()" 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>
|
|
<p class="text-sm text-gray-7 mb-5">确定要删除这条备注吗?删除后无法恢复。</p>
|
|
<button onclick="deleteNote()" class="w-full h-12 bg-gradient-to-r from-error to-red-400 text-white font-medium rounded-xl shadow-lg shadow-error/30 text-sm">确认删除</button>
|
|
<button onclick="hideDeleteNoteModal()" class="w-full text-center text-sm text-gray-6 py-2 mt-2 bg-transparent border-0 cursor-pointer">取消</button>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Toast 提示 -->
|
|
<div id="toast" class="fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-gray-13/80 text-white text-sm px-6 py-3 rounded-xl z-[100] hidden backdrop-blur-sm"></div>
|
|
|
|
<script src="../js/task-detail-notes.js"></script>
|
|
</body>
|
|
</html>
|
|
|
|
|