diff --git a/src/api/auth.ts b/src/api/auth.ts index 7d2d4ed9..0dae1e9c 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -229,8 +229,18 @@ export interface LoginResult { memberId?: string /** 会员编号 (后端主会员业务编号,会员权益页展示及发票接口路径参数均使用此值) */ memberNo?: string + /** 注册时间 (后端返回的会员注册时间,会员权益页展示) */ + registerTime?: string + /** 会员过期时间 (后端返回的会员过期时间,会员权益页展示) */ + expireTime?: string + /** 发票抬头 (后端返回的会员发票抬头,会员权益页展示) */ + invoiceTitle?: string + /** 发票税号 (后端返回的会员发票税号,会员权益页展示) */ + invoiceTaxNo?: string /** 账号类型 */ accountType?: AccountType + /** 单位/组类型 (单位会员专用,用于在会员权益页/支付页区分事业单位与企业/其他) */ + unitOrOrgType?: UnitOrOrgType /** 用户昵称/单位名称 */ nickname?: string /** 是否已充值/开通会员 (后端主字段,用于登录后跳转判断) */ diff --git a/src/pages/CompanyLogin.tsx b/src/pages/CompanyLogin.tsx index 48c0fccd..305754aa 100644 --- a/src/pages/CompanyLogin.tsx +++ b/src/pages/CompanyLogin.tsx @@ -3,6 +3,7 @@ import { useNavigate } from 'react-router-dom' import { Form, Input, Button, message, Card } from 'antd' import { ArrowLeftOutlined, BankOutlined, LockOutlined } from '@ant-design/icons' import { loginCompany } from '../api/auth' +import { UnitOrOrgType } from '../api/auth' import { setToken, setUserId, setMemberNo } from '../utils/request' import './CompanyLogin.css' @@ -39,6 +40,13 @@ const CompanyLogin = () => { setMemberNo(memberNo) } + // 根据后端返回的 unitOrOrgType 区分价格: + // - PUBLIC_INSTITUTION (事业单位) -> 1000 元/年 + // - ENTERPRISE / OTHER (企业及其他机构) -> 2000 元/年 + const unitOrOrgType = result?.unitOrOrgType as UnitOrOrgType | undefined + const amount = + unitOrOrgType === UnitOrOrgType.PUBLIC_INSTITUTION ? 1000.0 : 2000.0 + // 根据后端返回的 isVip 判断会员状态 // - isVip = true: 已充值会员 -> 会员权益页(/member-valid) // - isVip = false/未返回: 未充值 -> 支付页(/payment) @@ -48,8 +56,13 @@ const CompanyLogin = () => { memberNo, memberId: (result?.memberId as string) || '', memberType: '单位会员', - amount: 999.0, + unitOrOrgType, + amount, validPeriod: '1年', + registerTime: (result?.registerTime as string) || '', + expireTime: (result?.expireTime as string) || '', + invoiceTitle: (result?.invoiceTitle as string) || '', + invoiceTaxNo: (result?.invoiceTaxNo as string) || '', } message.success('登录成功!') diff --git a/src/pages/CompanyRegister.tsx b/src/pages/CompanyRegister.tsx index c26db218..4722b8f3 100644 --- a/src/pages/CompanyRegister.tsx +++ b/src/pages/CompanyRegister.tsx @@ -104,14 +104,7 @@ const CompanyRegister = () => { @@ -166,14 +159,7 @@ const CompanyRegister = () => { @@ -204,17 +190,7 @@ const CompanyRegister = () => { {/* 推荐人信息 */} - + diff --git a/src/pages/MemberService.css b/src/pages/MemberService.css index 7766eb0c..b08730cf 100644 --- a/src/pages/MemberService.css +++ b/src/pages/MemberService.css @@ -48,8 +48,8 @@ } .header-logo { - width: 120px; - height: 120px; + width: 80px; + height: 80px; border-radius: 50%; object-fit: contain; background: #fff; @@ -127,8 +127,8 @@ } .card-icon { - width: 64px; - height: 64px; + width: 48px; + height: 48px; border-radius: 50%; display: flex; align-items: center; @@ -137,6 +137,11 @@ flex-shrink: 0; } +.card-icon svg { + width: 32px; + height: 32px; +} + .login-card.personal .card-icon, .login-card.company .card-icon, .login-card.rules .card-icon { @@ -263,8 +268,8 @@ } .header-logo { - width: 100px; - height: 100px; + width: 64px; + height: 64px; } .login-card { @@ -272,13 +277,13 @@ } .card-icon { - width: 56px; - height: 56px; + width: 44px; + height: 44px; } .card-icon svg { - width: 48px; - height: 48px; + width: 28px; + height: 28px; } .card-title { @@ -292,8 +297,8 @@ } .header-logo { - width: 140px; - height: 140px; + width: 96px; + height: 96px; } .title { @@ -305,13 +310,13 @@ } .card-icon { - width: 72px; - height: 72px; + width: 56px; + height: 56px; } .card-icon svg { - width: 72px; - height: 72px; + width: 40px; + height: 40px; } .card-title { diff --git a/src/pages/MemberValid.tsx b/src/pages/MemberValid.tsx index 1b58d7cd..c53d94ae 100644 --- a/src/pages/MemberValid.tsx +++ b/src/pages/MemberValid.tsx @@ -15,23 +15,10 @@ const MemberValid = () => { memberNo = getMemberNo(), memberId = '', memberType = '个人会员', - amount = 99.00, - validPeriod = '1年' + amount = 150.00, + validPeriod = '5年', } = memberData - // 计算有效期 - const now = new Date() - const expireDate = new Date(now) - expireDate.setFullYear(expireDate.getFullYear() + 1) - - const formatDate = (date: Date) => { - return date.toLocaleDateString('zh-CN', { - year: 'numeric', - month: '2-digit', - day: '2-digit' - }) - } - const handleBack = () => { navigate('/') } @@ -93,14 +80,6 @@ const MemberValid = () => { 有效期限 {validPeriod} -
- 生效日期 - {formatDate(now)} -
-
- 到期日期 - {formatDate(expireDate)} -
diff --git a/src/pages/Payment.tsx b/src/pages/Payment.tsx index 68fc2a29..7169d584 100644 --- a/src/pages/Payment.tsx +++ b/src/pages/Payment.tsx @@ -9,8 +9,9 @@ import { import './Payment.css' /** - * 测试阶段调起支付宝用的金额(元) - * TODO: 上线前改回 orderInfo.amount + * 测试阶段调起支付宝的金额(元) + * 页面展示使用 orderInfo.amount(真实价格),调接口仅用 PAY_AMOUNT 调起验证 + * TODO: 上线前将接口金额改回 orderInfo.amount */ const PAY_AMOUNT = 0.01 @@ -42,9 +43,9 @@ const Payment = () => { // 订单信息 const orderInfo = { memberId: stateData.memberId || '', - memberType: stateData.memberType || '普通会员', - amount: stateData.amount || 99.0, - validPeriod: stateData.validPeriod || '1年', + memberType: stateData.memberType || '个人会员', + amount: stateData.amount || 150.0, + validPeriod: stateData.validPeriod || '5年', isRenew: stateData.isRenew || false, // 是否是续费 } @@ -143,7 +144,7 @@ const Payment = () => {
{orderInfo.isRenew ? '续费金额' : '应付金额'} - ¥{PAY_AMOUNT.toFixed(2)} + ¥{orderInfo.amount.toFixed(2)}
@@ -177,7 +178,7 @@ const Payment = () => { block size="large" > - 支付宝支付 ¥{PAY_AMOUNT.toFixed(2)} + 支付宝支付 ¥{orderInfo.amount.toFixed(2)}

diff --git a/src/pages/PersonalLogin.tsx b/src/pages/PersonalLogin.tsx index 27b52e6e..92608d75 100644 --- a/src/pages/PersonalLogin.tsx +++ b/src/pages/PersonalLogin.tsx @@ -47,8 +47,12 @@ const PersonalLogin = () => { memberNo, memberId: (result?.memberId as string) || '', memberType: '个人会员', - amount: 99.0, - validPeriod: '1年', + amount: 150.0, + validPeriod: '5年', + registerTime: (result?.registerTime as string) || '', + expireTime: (result?.expireTime as string) || '', + invoiceTitle: (result?.invoiceTitle as string) || '', + invoiceTaxNo: (result?.invoiceTaxNo as string) || '', } message.success('登录成功!') diff --git a/src/pages/PersonalRegister.tsx b/src/pages/PersonalRegister.tsx index cb2446b4..f68d9272 100644 --- a/src/pages/PersonalRegister.tsx +++ b/src/pages/PersonalRegister.tsx @@ -159,14 +159,7 @@ const PersonalRegister = () => {