在前后端开发联调前 的提交20260223

This commit is contained in:
Neo
2026-02-23 23:02:20 +08:00
parent 254ccb1e77
commit fafc95e64c
1142 changed files with 10366960 additions and 36957 deletions

View File

@@ -7,6 +7,7 @@
<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: {
@@ -38,29 +39,6 @@
}
}
</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); }
</style>
</head>
<body class="bg-gray-1 min-h-screen">
<!-- 通栏 Banner - 客户信息 -->
@@ -73,7 +51,7 @@
</svg>
</button>
<h1 class="flex-1 text-center text-base font-medium">任务详情</h1>
<button onclick="showAbandonModal()" class="absolute right-4 text-white/80 text-sm">放弃</button>
<button onclick="showAbandonModal()" class="absolute right-4 text-white/50 text-sm">放弃</button>
</div>
<!-- 客户信息 -->
@@ -89,6 +67,7 @@
</div>
<div class="flex items-center gap-4 text-white/70 text-sm">
<span>138****5678</span>
<button onclick="this.previousElementSibling.textContent='13812345678';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>
@@ -125,9 +104,60 @@
</div>
<span class="text-lg font-bold text-pink-500">0.85</span>
</div>
<p class="text-sm text-gray-7 leading-relaxed">
<p class="text-sm text-gray-7 leading-relaxed mb-4">
最近 3 个月每周均有 1-2 次课程互动,客户反馈良好。上次服务评价 5 星,多次指定您为服务助教。
</p>
<!-- 最近服务记录 -->
<div class="mt-3 -mx-5 -mb-5 px-5 pt-5 pb-5 bg-gray-100/70 rounded-b-2xl">
<p class="text-base 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">A12号台</span>
<span class="svc-type basic">基础课</span>
<span class="svc-duration text-base">2.5h</span>
</div>
<span class="svc-income text-base">¥200</span>
</div>
<div class="flex items-center justify-between">
<span class="svc-drinks">🍷 百威x2 红牛x1</span>
<span class="svc-date text-xs">2026-02-07 21: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 text-base">2.0h</span>
</div>
<span class="svc-income text-base">¥160</span>
</div>
<div class="flex items-center justify-between">
<span class="svc-drinks">🍷 可乐x1</span>
<span class="svc-date text-xs">2026-02-01 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">VIP1号房</span>
<span class="svc-type incentive">激励课</span>
<span class="svc-duration text-base">1.5h</span>
</div>
<span class="svc-income text-base">¥150</span>
</div>
<div class="flex items-center justify-between">
<span class="svc-drinks">🍷 芝华士x1 矿泉水x2</span>
<span class="svc-date text-xs">2026-01-28 19: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>
<!-- 任务建议 -->
@@ -274,69 +304,7 @@
<!-- 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>
function showNoteModal() {
document.getElementById('noteModal').classList.remove('hidden');
document.getElementById('noteModal').classList.add('flex');
document.getElementById('noteText').value = '';
}
function hideNoteModal() {
document.getElementById('noteModal').classList.add('hidden');
document.getElementById('noteModal').classList.remove('flex');
}
function saveNote() {
var text = document.getElementById('noteText').value.trim();
if (!text) { showToast('请输入备注内容'); return; }
hideNoteModal();
showToast('备注已保存');
}
function confirmDeleteNote() {
document.getElementById('deleteNoteModal').classList.remove('hidden');
document.getElementById('deleteNoteModal').classList.add('flex');
}
function hideDeleteNoteModal() {
document.getElementById('deleteNoteModal').classList.add('hidden');
document.getElementById('deleteNoteModal').classList.remove('flex');
}
function deleteNote() {
hideDeleteNoteModal();
showToast('备注已删除');
}
function showAbandonModal() {
document.getElementById('abandonModal').classList.remove('hidden');
document.getElementById('abandonModal').classList.add('flex');
document.getElementById('abandonReason').value = '';
document.getElementById('abandonError').classList.add('hidden');
}
function hideAbandonModal() {
document.getElementById('abandonModal').classList.add('hidden');
document.getElementById('abandonModal').classList.remove('flex');
}
function submitAbandon() {
var reason = document.getElementById('abandonReason').value.trim();
if (!reason) {
document.getElementById('abandonError').classList.remove('hidden');
document.getElementById('abandonReason').focus();
return;
}
hideAbandonModal();
showToast('已放弃该客户的维护');
}
function showToast(msg) {
var toast = document.getElementById('toast');
toast.textContent = msg;
toast.classList.remove('hidden');
setTimeout(function() { toast.classList.add('hidden'); }, 1500);
}
</script>
<script src="../js/task-detail-notes.js"></script>
<script src="../js/task-detail-abandon.js"></script>
</body>
</html>