diff --git a/projects/app/src/pageComponents/price/ExtraPlan.tsx b/projects/app/src/pageComponents/price/ExtraPlan.tsx index 319001be4..25d9ad43c 100644 --- a/projects/app/src/pageComponents/price/ExtraPlan.tsx +++ b/projects/app/src/pageComponents/price/ExtraPlan.tsx @@ -13,6 +13,7 @@ import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; import MySelect from '@fastgpt/web/components/common/MySelect'; import { calculatePrice } from '@fastgpt/global/support/wallet/bill/tools'; import { formatNumberWithUnit } from '@fastgpt/global/common/string/tools'; +import { formatActivityExpirationTime } from './utils'; const ExtraPlan = ({ onPaySuccess }: { onPaySuccess?: () => void }) => { const { t, i18n } = useTranslation(); @@ -103,6 +104,9 @@ const ExtraPlan = ({ onPaySuccess }: { onPaySuccess?: () => void }) => { } ); + // 计算活动时间 + const activityExpirationTime = formatActivityExpirationTime(subPlans?.activityExpirationTime); + return ( @@ -167,23 +171,7 @@ const ExtraPlan = ({ onPaySuccess }: { onPaySuccess?: () => void }) => { > {t('common:support.wallet.subscription.Extra ai points')} - {subPlans?.activityExpirationTime - ? (() => { - const date = new Date(subPlans.activityExpirationTime); - const year = date.getFullYear(); - const month = date.getMonth() + 1; - const day = date.getDate(); - const hour = date.getHours().toString().padStart(2, '0'); - const minute = date.getMinutes().toString().padStart(2, '0'); - return t('common:support.wallet.subscription.Activity expiration time', { - year, - month, - day, - hour, - minute - }); - })() - : ''} + {activityExpirationTime} (); const { subPlans, feConfigs } = useSystemStore(); - const hasActivityExpiration = !!subPlans?.activityExpirationTime; const [selectSubMode, setSelectSubMode] = useState<`${SubModeEnum}`>( - hasActivityExpiration ? SubModeEnum.year : SubModeEnum.month + subPlans?.activityExpirationTime ? SubModeEnum.year : SubModeEnum.month ); + const hasActivityExpiration = + !!subPlans?.activityExpirationTime && selectSubMode === SubModeEnum.year; useEffect(() => { setSelectSubMode(hasActivityExpiration ? SubModeEnum.year : SubModeEnum.month); @@ -131,6 +133,9 @@ const Standard = ({ } }); + // 计算活动时间 + const activityExpirationTime = formatActivityExpirationTime(subPlans?.activityExpirationTime); + return ( <> @@ -270,21 +275,7 @@ const Standard = ({ color={'#E45F5F'} textAlign={'center'} > - {(() => { - const date = new Date(subPlans.activityExpirationTime || ''); - const year = date.getFullYear(); - const month = date.getMonth() + 1; - const day = date.getDate(); - const hour = date.getHours().toString().padStart(2, '0'); - const minute = date.getMinutes().toString().padStart(2, '0'); - return t('common:support.wallet.subscription.Activity expiration time', { - year, - month, - day, - hour, - minute - }); - })()} + {activityExpirationTime} )} diff --git a/projects/app/src/pageComponents/price/utils.ts b/projects/app/src/pageComponents/price/utils.ts new file mode 100644 index 000000000..a0bda93da --- /dev/null +++ b/projects/app/src/pageComponents/price/utils.ts @@ -0,0 +1,20 @@ +import { useTranslation } from 'next-i18next'; + +export const formatActivityExpirationTime = (date?: Date) => { + const { t } = useTranslation(); + if (!date) return ''; + + const formatDate = new Date(date); + const year = formatDate.getFullYear(); + const month = formatDate.getMonth() + 1; + const day = formatDate.getDate(); + const hour = formatDate.getHours().toString().padStart(2, '0'); + const minute = formatDate.getMinutes().toString().padStart(2, '0'); + return t('common:support.wallet.subscription.Activity expiration time', { + year, + month, + day, + hour, + minute + }); +};