mirror of
https://github.com/labring/FastGPT.git
synced 2025-12-25 20:02:47 +00:00
activity points
This commit is contained in:
parent
e53242e8bc
commit
60d042a0cf
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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 ? (
|
||||
<Grid gap={4} fontSize={'sm'} fontWeight={500}>
|
||||
|
|
@ -76,7 +80,9 @@ const StandardPlanContentList = ({
|
|||
<Flex alignItems={'center'}>
|
||||
<Box fontWeight={'bold'} color={'myGray.600'}>
|
||||
{t('common:n_ai_points', {
|
||||
amount: planContent.totalPoints
|
||||
amount: planContent.annualBonusPoints
|
||||
? `${planContent.totalPoints} + ${planContent.annualBonusPoints}`
|
||||
: planContent.totalPoints
|
||||
})}
|
||||
</Box>
|
||||
<ModelPriceModal>
|
||||
|
|
|
|||
|
|
@ -150,7 +150,24 @@ const ExtraPlan = ({ onPaySuccess }: { onPaySuccess?: () => void }) => {
|
|||
}}
|
||||
onClick={() => setSelectedPackageIndex(index)}
|
||||
transition={'all 0.2s'}
|
||||
position={'relative'}
|
||||
>
|
||||
{pkg.activityBonusPoints && pkg.activityBonusPoints > 0 && (
|
||||
<Box
|
||||
position={'absolute'}
|
||||
top={[1, 2]}
|
||||
right={[1, 2]}
|
||||
fontSize={['10px', 'xs']}
|
||||
fontWeight={'bold'}
|
||||
color={'red.600'}
|
||||
bg={'red.50'}
|
||||
px={[1, 2]}
|
||||
py={[0.5, 1]}
|
||||
borderRadius={'sm'}
|
||||
>
|
||||
+{formatNumberWithUnit(pkg.activityBonusPoints, i18n.language)}
|
||||
</Box>
|
||||
)}
|
||||
<Box fontSize={'24px'} fontWeight={'medium'} color={'myGray.600'}>
|
||||
{formatNumberWithUnit(pkg.points, i18n.language)}{' '}
|
||||
{t('common:support.wallet.subscription.point')}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ const Standard = ({
|
|||
|
||||
const [packageChange, setPackageChange] = useState<PackageChangeStatusEnum>();
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in New Issue