import React, { useState } from "react"; import { Search, ChevronRight, RefreshCw, Smartphone, Settings, X, Download, UserCircle, Bell, Home, Users, SquareStack, Database, FileText, MapPin, Shield, Globe, } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription } from "@/components/ui/dialog"; // 通用可点组件:统一触发弹窗 + 底部蓝条“假跳转” function Clickable({ onClick, children, className = "", title }) { return ( ); } export default function MemberManagementMock() { const [open, setOpen] = useState(false); const [dialogText, setDialogText] = useState( "这里是我设置的弹窗内容。点击任何区域都会:1) 底部蓝条高亮(模拟跳转);2) 弹出错误提示(页面不跳转)。" ); const [lastTrigger, setLastTrigger] = useState(""); const [activeLabel, setActiveLabel] = useState("Ready"); const [bottomBlue, setBottomBlue] = useState(false); const [activeSub, setActiveSub] = useState("User IP(1)"); // 子标签激活态(蓝色填充) const [activeNav, setActiveNav] = useState("Home"); // 左侧导航激活态 const trigger = (label) => { setLastTrigger(label); setActiveLabel(label); setBottomBlue(true); // 底部变蓝,模拟“切换到该页面” setOpen(true); // 弹出错误提示 }; const topTabs = [ { label: "User management" }, { label: "Deposit history" }, { label: "Withdrawal history" }, { label: "Member management" }, { label: "Online application issuance" }, ]; const subTabs = [ "Member information", "Withdrawal history", "Deposit history", "Mission history", "Bank link", "Exception handling", "Reputation", "User IP(1)", ]; const rows = [ { loginTime: "2021-05-13 09:24:47.190", account: "MZ136198", ipReg: "117.154.7.83", ipLogin: "117.154.7.83", address: "Nanchang, Jiangxi, China", }, ]; // 左侧导航(不是按钮外观,而是整列纵向导航,贯穿到底部) const sidebarItems = [ { icon: , label: "Home" }, { icon: , label: "Members" }, { icon: , label: "Deposits" }, { icon: , label: "Withdraw" }, { icon: , label: "Reports" }, { icon: , label: "Risk" }, { icon: , label: "Settings" }, ]; return (
{/* 左侧导航栏(固定,非“按钮”样式) */} {/* 主区域给左侧导航留宽度 */}
{/* 顶部栏 */}
trigger("Search function")} placeholder="Search function" className="pl-9 w-[360px] bg-zinc-900 border-zinc-800 placeholder:text-zinc-500" />
Time the previous day : 29/10/2025 08:52:13
Welcome Login To The System
{/* 顶部标签(面包屑式) */}
{topTabs.map((t, i) => ( {i > 0 && } trigger(`Top tab: ${t.label}`)} >
{t.label}
))}
{/* 模块标题与工具条(更大气) */}
Member management trigger("Refresh")} className="text-zinc-400 hover:text-zinc-200"> Refresh
trigger("Quick search DQ199305")} defaultValue="DQ199305" className="w-[200px] bg-zinc-900 border-zinc-800" />
trigger("Settings")} className="px-3 py-2 rounded-xl bg-zinc-900 border border-zinc-800 flex items-center gap-2"> Settings trigger("Excel document export")} className="px-3 py-2 rounded-xl bg-zinc-100 text-zinc-900 font-medium flex items-center gap-2"> Exoel document export
Manager trigger("Manager: No")} className="px-2 py-1 rounded-md bg-zinc-800/70">No
Mobile phone link trigger("Mobile phone link: No")} className="px-2 py-1 rounded-md bg-zinc-800/70">No
{/* 二级标签(加大尺寸,点击后填充为蓝色) */}
{subTabs.map((s) => { const active = activeSub === s; return ( { setActiveSub(s); trigger(`Sub tab: ${s}`); }} className={`px-4 py-2 rounded-xl font-medium transition-colors ${ active ? "bg-blue-600 text-white shadow" : "bg-zinc-900 text-zinc-200 hover:bg-zinc-800" }`} > {s} ); })}
{/* 用户IP历史 标题 */}
User IP login history
{/* 表格(更大气:文字/间距/圆角增大) */}
{[ "Login time", "Member account", "IP registration", "IP login", "Login address", ].map((h, idx) => (
{h}
))}
{rows.map((r, idx) => ( trigger("Table row clicked")} className="col-span-12 grid grid-cols-12 hover:bg-zinc-900/70 transition-colors" >
{r.loginTime}
{r.account}
{r.ipReg}
{r.ipLogin}
{r.address}
))}
{/* 底部空白 */}
{/* 底部蓝条(点击任意按钮后高亮,模拟已跳转) */}
当前模块(模拟跳转):{activeLabel}
setDialogText(e.target.value)} className="h-9 w-[360px] bg-zinc-950 border-zinc-800" placeholder="这里设置弹窗显示的内容" />
{/* 弹窗:显示错误提示(内容可自定义)*/} 操作失败 系统提示:这是一个“模拟跳转”的页面,功能未真正跳转。
触发来源:{lastTrigger || "未知"}
{dialogText}
); }