diff --git a/packages/global/support/wallet/bill/type.ts b/packages/global/support/wallet/bill/type.ts index 767b2f32b..6c7d2760b 100644 --- a/packages/global/support/wallet/bill/type.ts +++ b/packages/global/support/wallet/bill/type.ts @@ -26,7 +26,8 @@ export const BillSchema = z.object({ standSubLevel: z.enum(StandardSubLevelEnum).optional().meta({ description: '订阅等级' }), month: z.number().optional().meta({ description: '月数' }), datasetSize: z.number().optional().meta({ description: '数据集大小' }), - extraPoints: z.number().optional().meta({ description: '额外积分' }) + extraPoints: z.number().optional().meta({ description: '额外积分' }), + activityBonusPoints: z.number().optional().meta({ description: '活动赠送积分' }) }) .meta({ description: '元数据' }), refundData: z diff --git a/packages/global/support/wallet/sub/type.d.ts b/packages/global/support/wallet/sub/type.d.ts index 54cc66fa9..034fd4f8b 100644 --- a/packages/global/support/wallet/sub/type.d.ts +++ b/packages/global/support/wallet/sub/type.d.ts @@ -22,6 +22,9 @@ export type TeamStandardSubPlanItemType = { ticketResponseTime?: number; customDomain?: number; + // Activity promotion fields + annualBonusPoints?: number; + // Custom plan specific fields priceDescription?: string; customFormUrl?: string; @@ -37,6 +40,7 @@ export type PointsPackageItem = { points: number; month: number; price: number; + activityBonusPoints?: number; }; export type SubPlanType = { @@ -77,6 +81,9 @@ export type TeamSubSchema = { ticketResponseTime?: number; customDomain?: number; + // Activity promotion fields + annualBonusPoints?: number; + totalPoints: number; surplusPoints: number; diff --git a/projects/app/src/components/support/wallet/StandardPlanContentList.tsx b/projects/app/src/components/support/wallet/StandardPlanContentList.tsx index 4117221be..bb4ae99c7 100644 --- a/projects/app/src/components/support/wallet/StandardPlanContentList.tsx +++ b/projects/app/src/components/support/wallet/StandardPlanContentList.tsx @@ -38,6 +38,8 @@ const StandardPlanContentList = ({ ...standardSubLevelMap[level as `${StandardSubLevelEnum}`], totalPoints: standplan?.totalPoints ?? plan.totalPoints * (mode === SubModeEnum.month ? 1 : 12), + annualBonusPoints: + mode === SubModeEnum.month ? 0 : standplan?.annualBonusPoints ?? plan.annualBonusPoints, requestsPerMinute: standplan?.requestsPerMinute ?? plan.requestsPerMinute, maxTeamMember: standplan?.maxTeamMember ?? plan.maxTeamMember, maxAppAmount: standplan?.maxApp ?? plan.maxAppAmount, @@ -56,6 +58,7 @@ const StandardPlanContentList = ({ level, mode, standplan?.totalPoints, + standplan?.annualBonusPoints, standplan?.requestsPerMinute, standplan?.maxTeamMember, standplan?.maxApp, @@ -68,6 +71,7 @@ const StandardPlanContentList = ({ standplan?.ticketResponseTime, standplan?.customDomain ]); + console.log('planContent', planContent); return planContent ? ( @@ -76,7 +80,9 @@ const StandardPlanContentList = ({ {t('common:n_ai_points', { - amount: planContent.totalPoints + amount: planContent.annualBonusPoints + ? `${planContent.totalPoints} + ${planContent.annualBonusPoints}` + : planContent.totalPoints })} diff --git a/projects/app/src/pageComponents/price/ExtraPlan.tsx b/projects/app/src/pageComponents/price/ExtraPlan.tsx index c46ad55bb..91263dc7a 100644 --- a/projects/app/src/pageComponents/price/ExtraPlan.tsx +++ b/projects/app/src/pageComponents/price/ExtraPlan.tsx @@ -150,7 +150,24 @@ const ExtraPlan = ({ onPaySuccess }: { onPaySuccess?: () => void }) => { }} onClick={() => setSelectedPackageIndex(index)} transition={'all 0.2s'} + position={'relative'} > + {pkg.activityBonusPoints && pkg.activityBonusPoints > 0 && ( + + +{formatNumberWithUnit(pkg.activityBonusPoints, i18n.language)} + + )} {formatNumberWithUnit(pkg.points, i18n.language)}{' '} {t('common:support.wallet.subscription.point')} diff --git a/projects/app/src/pageComponents/price/Standard.tsx b/projects/app/src/pageComponents/price/Standard.tsx index 762e61e12..c43781e34 100644 --- a/projects/app/src/pageComponents/price/Standard.tsx +++ b/projects/app/src/pageComponents/price/Standard.tsx @@ -41,7 +41,7 @@ const Standard = ({ const [packageChange, setPackageChange] = useState(); const { subPlans, feConfigs } = useSystemStore(); - const [selectSubMode, setSelectSubMode] = useState<`${SubModeEnum}`>(SubModeEnum.month); + const [selectSubMode, setSelectSubMode] = useState<`${SubModeEnum}`>(SubModeEnum.year); const NEW_PLAN_LEVELS = [ StandardSubLevelEnum.free, @@ -99,6 +99,7 @@ const Standard = ({ maxDatasetAmount: myStandardPlan?.maxDataset || value.maxDatasetAmount, chatHistoryStoreDuration: value.chatHistoryStoreDuration, maxDatasetSize: value.maxDatasetSize, + annualBonusPoints: selectSubMode === SubModeEnum.month ? 0 : value.annualBonusPoints, totalPoints: value.totalPoints * (selectSubMode === SubModeEnum.month ? 1 : 12), // custom plan