'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { useToast } from '@/components/ui/Toast' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/Card' import { Button } from '@/components/ui/Button' import { Input } from '@/components/ui/Input' import { ArrowLeft, Building2, Phone, Mail, Search, Loader2, X, Check, CreditCard, ShieldCheck, AlertCircle, ChevronRight } from 'lucide-react' // 模拟企业查询结果 interface CompanySearchResult { companyName: string shortName: string businessLicense: string legalPerson: string registeredCapital: string establishDate: string businessScope: string address: string status: string } // 模拟企业数据库 const mockCompanyDatabase: CompanySearchResult[] = [ { companyName: '上海星辰文化传媒有限公司', shortName: '星辰传媒', businessLicense: '91310000MA1FL8XXXX', legalPerson: '张三', registeredCapital: '500万人民币', establishDate: '2020-03-15', businessScope: '文化传媒、广告设计、互联网信息服务', address: '上海市浦东新区张江高科技园区xxx路xxx号', status: '在营', }, { companyName: '北京蓝海数字科技有限公司', shortName: '蓝海科技', businessLicense: '91110000MA2BK9YYYY', legalPerson: '李四', registeredCapital: '1000万人民币', establishDate: '2018-06-20', businessScope: '软件开发、信息技术服务、数据处理', address: '北京市海淀区中关村科技园xxx号', status: '在营', }, { companyName: '杭州云创网络技术有限公司', shortName: '云创网络', businessLicense: '91330000MA3CL7ZZZZ', legalPerson: '王五', registeredCapital: '300万人民币', establishDate: '2021-01-10', businessScope: '网络技术开发、电子商务、广告服务', address: '浙江省杭州市西湖区xxx路xxx号', status: '在营', }, { companyName: '深圳创意无限广告有限公司', shortName: '创意无限', businessLicense: '91440000MA4DM8AAAA', legalPerson: '赵六', registeredCapital: '200万人民币', establishDate: '2019-09-05', businessScope: '广告设计、品牌策划、市场营销', address: '广东省深圳市南山区xxx路xxx号', status: '在营', }, { companyName: '成都天府传媒集团有限公司', shortName: '天府传媒', businessLicense: '91510000MA5EN9BBBB', legalPerson: '钱七', registeredCapital: '2000万人民币', establishDate: '2015-12-01', businessScope: '广播电视节目制作、影视策划、新媒体运营', address: '四川省成都市高新区xxx路xxx号', status: '在营', }, ] // 认证状态 type VerifyStatus = 'unverified' | 'pending' | 'verified' // 认证方式 type VerifyMethod = 'bank' | 'legalPerson' // 当前公司数据 const mockCurrentCompany = { companyName: '上海星辰文化传媒有限公司', shortName: '星辰传媒', businessLicense: '91310000MA1FL8XXXX', legalPerson: '张三', registeredCapital: '500万人民币', establishDate: '2020-03-15', businessScope: '文化传媒、广告设计、互联网信息服务', address: '上海市浦东新区张江高科技园区xxx路xxx号', contactPhone: '021-12345678', contactEmail: 'contact@starmedia.com', verifyStatus: 'verified' as VerifyStatus, // 对公账户信息(验证通过后显示) bankInfo: { bankName: '中国工商银行上海浦东支行', accountNumber: '6222****1234', }, } export default function AgencyCompanyPage() { const router = useRouter() const toast = useToast() const [isEditing, setIsEditing] = useState(false) const [formData, setFormData] = useState(mockCurrentCompany) const [isSaving, setIsSaving] = useState(false) // 企业查询相关状态 const [showSearch, setShowSearch] = useState(false) const [searchQuery, setSearchQuery] = useState('') const [isSearching, setIsSearching] = useState(false) const [searchResults, setSearchResults] = useState([]) // 认证相关状态 const [showVerifyModal, setShowVerifyModal] = useState(false) const [verifyMethod, setVerifyMethod] = useState(null) const [verifyStep, setVerifyStep] = useState(1) const [verifyCode, setVerifyCode] = useState('') const [isVerifying, setIsVerifying] = useState(false) // 搜索企业 const handleSearch = async () => { if (!searchQuery.trim()) return setIsSearching(true) await new Promise(resolve => setTimeout(resolve, 800)) const results = mockCompanyDatabase.filter(company => company.companyName.includes(searchQuery) || company.shortName.includes(searchQuery) || company.businessLicense.includes(searchQuery) ) setSearchResults(results) setIsSearching(false) } // 选择企业 const handleSelectCompany = (company: CompanySearchResult) => { setFormData({ ...formData, companyName: company.companyName, shortName: company.shortName, businessLicense: company.businessLicense, legalPerson: company.legalPerson, registeredCapital: company.registeredCapital, establishDate: company.establishDate, businessScope: company.businessScope, address: company.address, verifyStatus: 'unverified', // 选择新公司后需要重新验证 }) setShowSearch(false) setSearchQuery('') setSearchResults([]) } // 开始验证 const handleStartVerify = (method: VerifyMethod) => { setVerifyMethod(method) setVerifyStep(2) } // 提交验证 const handleSubmitVerify = async () => { if (!verifyCode.trim()) { toast.error('请输入验证信息') return } setIsVerifying(true) await new Promise(resolve => setTimeout(resolve, 1500)) // 模拟验证成功 setFormData({ ...formData, verifyStatus: 'verified' }) setIsVerifying(false) setShowVerifyModal(false) setVerifyMethod(null) setVerifyStep(1) setVerifyCode('') toast.success('企业认证成功') } const handleSave = async () => { setIsSaving(true) await new Promise(resolve => setTimeout(resolve, 1000)) setIsSaving(false) setIsEditing(false) toast.success('公司信息已保存') } // 认证状态显示 const renderVerifyStatus = () => { switch (formData.verifyStatus) { case 'verified': return (

已认证

企业身份已通过验证

) case 'pending': return (

认证中

正在验证企业身份...

) default: return (

未认证

请完成企业认证以使用全部功能

) } } return (
{/* 顶部导航 */}

公司信息

管理代理商公司资质信息

{!isEditing ? ( ) : (
)}
{/* 企业查询面板 */} {showSearch && ( 查询企业信息

输入公司名称或统一社会信用代码,系统将自动查询工商信息

setSearchQuery(e.target.value)} placeholder="请输入公司名称或统一社会信用代码" onKeyDown={(e) => e.key === 'Enter' && handleSearch()} />
{searchResults.length > 0 && (

找到 {searchResults.length} 家企业,点击选择:

{searchResults.map((company) => ( ))}
)} {searchResults.length === 0 && searchQuery && !isSearching && (

未找到匹配的企业

)}
)} {/* 认证弹窗 */} {showVerifyModal && (
企业认证 {verifyStep === 1 ? ( <>

请选择一种方式验证您是 {formData.companyName} 的员工

{/* 对公打款验证 */} {/* 法人手机验证 */}

认证信息仅用于验证企业身份,我们会严格保护您的隐私

) : ( <> {verifyMethod === 'bank' ? (

对公账户打款验证

我们已向 {formData.companyName} 的对公账户打入一笔随机金额(0.01-0.99元)

请查询企业对公账户,输入收到的金额(精确到分):

setVerifyCode(e.target.value)} placeholder="例如: 0.23" className="text-center text-lg font-mono" />

打款通常在1-3个工作日内到账

) : (

法人手机号验证

验证码已发送至法人 {formData.legalPerson} 的工商登记手机号

请输入法人收到的6位验证码:

setVerifyCode(e.target.value)} placeholder="请输入验证码" maxLength={6} className="text-center text-lg font-mono tracking-widest" />

验证码5分钟内有效,请联系法人获取

)}
)}
)}
{/* 左侧:基本信息 */}
{/* 工商信息 */} 工商信息 {isEditing && !showSearch && ( )}
{isEditing ? ( setFormData({ ...formData, companyName: e.target.value })} /> ) : (

{formData.companyName}

)}
{isEditing ? ( setFormData({ ...formData, shortName: e.target.value })} /> ) : (

{formData.shortName}

)}

{formData.businessLicense}

{formData.legalPerson}

{formData.registeredCapital}

{formData.establishDate}

{formData.businessScope}

{formData.address}

{isEditing && (

💡 提示:点击右上角"查询企业"按钮,输入公司名称可自动填充工商信息

)}
{/* 联系信息 */} 联系信息
{isEditing ? ( setFormData({ ...formData, contactPhone: e.target.value })} /> ) : (

{formData.contactPhone}

)}
{isEditing ? ( setFormData({ ...formData, contactEmail: e.target.value })} /> ) : (

{formData.contactEmail}

)}
{/* 右侧:认证状态 */}
企业认证 {renderVerifyStatus()} {/* 已认证显示验证信息 */} {formData.verifyStatus === 'verified' && ( 对公账户

{formData.bankInfo?.bankName}

{formData.bankInfo?.accountNumber}

)}
) }