Files
Neo-ZQYY/docs/h5_ui/pages/apply.html

216 lines
11 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">
<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;
}
.bg-gradient-main {
background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 50%, #ecfeff 100%);
}
.safe-area-top {
padding-top: env(safe-area-inset-top, 44px);
}
</style>
</head>
<body class="bg-gradient-main min-h-screen flex flex-col">
<!-- 顶部导航 -->
<div class="safe-area-top bg-white/80 backdrop-blur-lg sticky top-0 z-10">
<div class="h-11 flex items-center justify-center relative border-b border-gray-200/50">
<button onclick="history.back()" class="absolute left-4 p-1">
<svg class="w-5 h-5 text-gray-10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<polyline points="15 18 9 12 15 6"/>
</svg>
</button>
<h1 class="text-base font-medium text-gray-13">申请访问权限</h1>
</div>
</div>
<!-- 主体内容 -->
<div class="flex-1 p-4">
<!-- 欢迎卡片 + 审核流程整合 -->
<div class="bg-gradient-to-br from-primary to-blue-400 rounded-2xl p-5 mb-4 text-white shadow-lg shadow-primary/20">
<div class="flex items-center gap-4 mb-4">
<div class="w-12 h-12 bg-white/20 backdrop-blur-sm rounded-xl flex items-center justify-center">
<svg class="w-6 h-6 text-white" viewBox="0 0 24 24" fill="currentColor">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
</svg>
</div>
<div>
<h2 class="text-lg font-semibold mb-1">欢迎加入球房运营助手</h2>
<p class="text-white/80 text-sm">请填写申请信息,等待管理员审核</p>
</div>
</div>
<!-- 审核流程 -->
<div class="bg-white/10 backdrop-blur-sm rounded-xl p-4">
<div class="flex items-center justify-between">
<div class="flex flex-col items-center">
<div class="w-7 h-7 bg-white rounded-full flex items-center justify-center text-primary text-xs font-semibold mb-1.5">1</div>
<span class="text-xs text-white/90">提交申请</span>
</div>
<div class="flex-1 h-0.5 bg-white/30 mx-2"></div>
<div class="flex flex-col items-center">
<div class="w-7 h-7 bg-white/20 rounded-full flex items-center justify-center text-white/70 text-xs font-medium mb-1.5">2</div>
<span class="text-xs text-white/60">等待审核</span>
</div>
<div class="flex-1 h-0.5 bg-white/30 mx-2"></div>
<div class="flex flex-col items-center">
<div class="w-7 h-7 bg-white/20 rounded-full flex items-center justify-center text-white/70 text-xs font-medium mb-1.5">3</div>
<span class="text-xs text-white/60">审核通过</span>
</div>
<div class="flex-1 h-0.5 bg-white/30 mx-2"></div>
<div class="flex flex-col items-center">
<div class="w-7 h-7 bg-white/20 rounded-full flex items-center justify-center text-white/70 text-xs font-medium mb-1.5">4</div>
<span class="text-xs text-white/60">开始使用</span>
</div>
</div>
</div>
</div>
<!-- 表单区域 -->
<div class="bg-white rounded-2xl shadow-lg shadow-gray-200/50 overflow-hidden">
<!-- 球房ID -->
<div class="px-5 py-4 border-b border-gray-100">
<div class="flex items-center mb-2">
<span class="text-error text-sm mr-1">*</span>
<span class="text-sm font-medium text-gray-13">球房ID</span>
</div>
<input type="text" id="siteId" placeholder="请输入球房ID"
class="w-full px-4 py-3 bg-gray-50 rounded-xl border border-gray-100 text-sm text-gray-13 placeholder-gray-5 focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary/30 transition-all" />
</div>
<!-- 申请身份 -->
<div class="px-5 py-4 border-b border-gray-100">
<div class="flex items-center mb-2">
<span class="text-error text-sm mr-1">*</span>
<span class="text-sm font-medium text-gray-13">申请身份</span>
</div>
<input type="text" id="role" placeholder="请输入申请身份(如:助教、店长等)"
class="w-full px-4 py-3 bg-gray-50 rounded-xl border border-gray-100 text-sm text-gray-13 placeholder-gray-5 focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary/30 transition-all" />
</div>
<!-- 手机号 -->
<div class="px-5 py-4 border-b border-gray-100">
<div class="flex items-center mb-2">
<span class="text-error text-sm mr-1">*</span>
<span class="text-sm font-medium text-gray-13">手机号</span>
</div>
<input type="text" id="phone" placeholder="请输入手机号"
class="w-full px-4 py-3 bg-gray-50 rounded-xl border border-gray-100 text-sm text-gray-13 placeholder-gray-5 focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary/30 transition-all" />
</div>
<!-- 编号(选填) -->
<div class="px-5 py-4 border-b border-gray-100">
<div class="flex items-center mb-2">
<span class="text-sm font-medium text-gray-13">编号</span>
<span class="text-xs text-gray-6 ml-2">选填</span>
</div>
<input type="text" id="staffNo" placeholder="请输入编号"
class="w-full px-4 py-3 bg-gray-50 rounded-xl border border-gray-100 text-sm text-gray-13 placeholder-gray-5 focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary/30 transition-all" />
</div>
<!-- 昵称 -->
<div class="px-5 py-4">
<div class="flex items-center mb-2">
<span class="text-error text-sm mr-1">*</span>
<span class="text-sm font-medium text-gray-13">昵称</span>
</div>
<input type="text" id="nickname" placeholder="请输入昵称"
class="w-full px-4 py-3 bg-gray-50 rounded-xl border border-gray-100 text-sm text-gray-13 placeholder-gray-5 focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary/30 transition-all" />
</div>
</div>
<!-- 提示 -->
<p class="text-xs text-gray-6 text-center mt-3">请认真填写,信息不完整可能导致审核不通过</p>
</div>
<!-- 底部按钮 -->
<div class="p-4 pb-8 bg-white/80 backdrop-blur-lg border-t border-gray-100">
<button id="submitBtn" class="w-full py-4 bg-gradient-to-r from-primary to-blue-500 rounded-xl text-white font-medium text-base shadow-lg shadow-primary/30 active:scale-[0.98] transition-transform">
提交申请
</button>
<p class="text-xs text-gray-5 text-center mt-3">
审核通常需要 1-3 个工作日
</p>
</div>
<script>
const submitBtn = document.getElementById('submitBtn');
// 必填字段
const requiredFields = [
{ id: 'siteId', label: '球房ID' },
{ id: 'role', label: '申请身份' },
{ id: 'phone', label: '手机号' },
{ id: 'nickname', label: '昵称' },
];
submitBtn.addEventListener('click', function() {
let firstEmpty = null;
// 清除之前的错误样式
document.querySelectorAll('.field-error').forEach(el => el.remove());
requiredFields.forEach(f => {
const input = document.getElementById(f.id);
input.classList.remove('ring-2', 'ring-error/30', 'border-error/40');
if (!input.value.trim()) {
input.classList.add('ring-2', 'ring-error/30', 'border-error/40');
const tip = document.createElement('p');
tip.className = 'field-error text-error text-xs mt-1';
tip.textContent = `请输入${f.label}`;
input.parentElement.appendChild(tip);
if (!firstEmpty) firstEmpty = input;
}
});
if (firstEmpty) {
firstEmpty.scrollIntoView({ behavior: 'smooth', block: 'center' });
return;
}
alert('申请已提交,请等待审核');
window.location.href = 'reviewing.html';
});
// 输入时清除错误状态
requiredFields.forEach(f => {
document.getElementById(f.id).addEventListener('input', function() {
if (this.value.trim()) {
this.classList.remove('ring-2', 'ring-error/30', 'border-error/40');
const err = this.parentElement.querySelector('.field-error');
if (err) err.remove();
}
});
});
</script>
</body>
</html>