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 (
{/* 左侧导航栏(固定,非“按钮”样式) */}
{/* 主区域给左侧导航留宽度 */}
{/* 顶部栏 */}
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}
))}
{/* 底部空白 */}
{/* 底部蓝条(点击任意按钮后高亮,模拟已跳转) */}
{/* 弹窗:显示错误提示(内容可自定义)*/}
);
}