Files
web/src/app/admin/profile/page.tsx

102 lines
3.9 KiB
TypeScript
Raw Normal View History

import Page from '@/components/page'
import {Card, CardContent, CardHeader, CardTitle} from '@/components/ui/card'
import {CheckCircle} from 'lucide-react'
import Image from 'next/image'
import banner from '@/app/admin/identify/_assets/banner.webp'
import RechargeModal from '@/components/composites/recharge'
import {RealnameAuthDialog} from '@/components/composites/dialogs/realname-auth-dialog'
import {ChangePasswordDialog} from '@/components/composites/dialogs/change-password-dialog'
import {getProfile} from '@/actions/auth'
import {Aftersale, BasicForm} from './clients'
export type ProfilePageProps = {}
export default async function ProfilePage(props: ProfilePageProps) {
const profile = await getProfile()
if (!profile.success) {
return (
<Page>
</Page>
)
}
const user = profile.data
return (
2025-06-10 19:09:19 +08:00
<Page className="lg:flex-row lg:items-stretch md:flex-col max-sm:flex-col">
<div className="flex-3/4 flex flex-col gap-4">
{/* banner */}
2025-11-18 19:16:24 +08:00
<section className="flex-none relative rounded-lg p-16 pr-4 overflow-hidden flex max-sm:flex-col flex-col gap-4 pl-8 justify-center">
<Image src={banner} alt="背景图" aria-hidden className="absolute inset-0 w-full h-full object-cover"/>
<h3 className="text-lg font-bold z-10 relative">HTTP邀请您参与</h3>
2025-11-18 19:16:24 +08:00
<p className="text-sm text-gray-600 z-10 relative"></p>
</section>
{/* 块信息 */}
2025-11-18 19:16:24 +08:00
<div className="flex gap-4 max-md:flex-col max-sm:flex-col">
2025-12-23 17:12:09 +08:00
{/* <Card className="flex-1 ">
<CardHeader>
2025-12-23 17:12:09 +08:00
<CardTitle className="font-normal"></CardTitle>
</CardHeader>
<CardContent className="flex-auto flex justify-between items-center px-8">
<p className="text-xl">{user.balance}</p>
<RechargeModal classNames={{
trigger: `h-10 px-6`,
}}/>
</CardContent>
2025-12-23 17:12:09 +08:00
</Card> */}
<Card className="flex-1 ">
<CardHeader>
<CardTitle className="font-normal"></CardTitle>
</CardHeader>
<CardContent className="flex-auto flex justify-between items-center px-8">
<p>{user.phone}</p>
<ChangePasswordDialog triggerClassName="w-24 h-9"/>
</CardContent>
</Card>
<Card className="flex-1">
<CardHeader>
<CardTitle className="font-normal"></CardTitle>
</CardHeader>
2025-06-10 19:09:19 +08:00
<CardContent className="flex-auto flex justify-between items-center gap-4 px-4 pr-8">
{!user.id_token
? (
<>
<p className="text-sm">使</p>
<RealnameAuthDialog
2025-12-11 14:10:52 +08:00
defaultOpen={!user.id_token}
triggerClassName="w-24"
/>
</>
)
: (
<>
<p className="flex flex-col gap-1">
<span>{user.name}</span>
<span className="text-sm">{user.id_no}</span>
</p>
<p className="flex gap-1 items-center">
<CheckCircle className="text-done" size={18}/>
<span></span>
</p>
</>
)}
</CardContent>
</Card>
</div>
2025-11-18 19:16:24 +08:00
<div className="flex-none rounded-lg bg-white p-4 flex max-sm:flex-col flex-col gap-8">
<BasicForm profile={user}/>
</div>
</div>
{/* 侧边栏:客服经理信息 */}
<Aftersale profile={user}/>
</Page>
)
}