perf: plan tip (#2513)
This commit is contained in:
parent
c1d08c0ccc
commit
22a0f6bcfa
@ -28,11 +28,13 @@ export enum SubModeEnum {
|
|||||||
export const subModeMap = {
|
export const subModeMap = {
|
||||||
[SubModeEnum.month]: {
|
[SubModeEnum.month]: {
|
||||||
label: 'support.wallet.subscription.mode.Month',
|
label: 'support.wallet.subscription.mode.Month',
|
||||||
durationMonth: 1
|
durationMonth: 1,
|
||||||
|
payMonth: 1
|
||||||
},
|
},
|
||||||
[SubModeEnum.year]: {
|
[SubModeEnum.year]: {
|
||||||
label: 'support.wallet.subscription.mode.Year',
|
label: 'support.wallet.subscription.mode.Year',
|
||||||
durationMonth: 12
|
durationMonth: 12,
|
||||||
|
payMonth: 10
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
{
|
{
|
||||||
"bill": {
|
"bill": {
|
||||||
|
"buy_plan": "Buy a package",
|
||||||
"buy_standard_plan_success": "Package purchased successfully",
|
"buy_standard_plan_success": "Package purchased successfully",
|
||||||
"not_need_invoice": "Balance payment, unable to issue invoice",
|
"not_need_invoice": "Balance payment, unable to issue invoice",
|
||||||
"renew_plan": "Renewal package"
|
"renew_plan": "Renewal package",
|
||||||
|
"standard_valid_tip": "Package usage rules: The system gives priority to using more advanced packages, and the original unused packages will take effect later.",
|
||||||
|
"valid_time": "Effective time"
|
||||||
},
|
},
|
||||||
"bind_inform_account_error": "Abnormal binding notification account",
|
"bind_inform_account_error": "Abnormal binding notification account",
|
||||||
"bind_inform_account_success": "Binding notification account successful",
|
"bind_inform_account_success": "Binding notification account successful",
|
||||||
|
|||||||
@ -1,19 +1,22 @@
|
|||||||
{
|
{
|
||||||
"bill": {
|
"bill": {
|
||||||
"not_need_invoice": "余额支付,无法开票",
|
|
||||||
"conversion": "兑换",
|
|
||||||
"use_balance": "使用余额",
|
|
||||||
"price": "价格",
|
|
||||||
"tokens": "积分",
|
|
||||||
"token_expire_1year": "积分有效期一年",
|
|
||||||
"balance": "余额",
|
"balance": "余额",
|
||||||
"you_can_convert": "您可兑换",
|
"buy_plan": "购买套餐",
|
||||||
"use_balance_hint": "由于系统升级,原“自动续费从余额扣款”模式取消,余额充值入口关闭。您的余额可用于购买积分",
|
|
||||||
"contact_customer_service": "联系客服",
|
|
||||||
"convert_success": "兑换成功",
|
|
||||||
"convert_error": "兑换失败",
|
|
||||||
"buy_standard_plan_success": "购买套餐成功",
|
"buy_standard_plan_success": "购买套餐成功",
|
||||||
"renew_plan": "续费套餐"
|
"contact_customer_service": "联系客服",
|
||||||
|
"conversion": "兑换",
|
||||||
|
"convert_error": "兑换失败",
|
||||||
|
"convert_success": "兑换成功",
|
||||||
|
"not_need_invoice": "余额支付,无法开票",
|
||||||
|
"price": "价格",
|
||||||
|
"renew_plan": "续费套餐",
|
||||||
|
"standard_valid_tip": "套餐使用规则:系统优先使用更高级的套餐,原未用完的套餐将延后生效",
|
||||||
|
"token_expire_1year": "积分有效期一年",
|
||||||
|
"tokens": "积分",
|
||||||
|
"use_balance": "使用余额",
|
||||||
|
"use_balance_hint": "由于系统升级,原“自动续费从余额扣款”模式取消,余额充值入口关闭。您的余额可用于购买积分",
|
||||||
|
"valid_time": "生效时间",
|
||||||
|
"you_can_convert": "您可兑换"
|
||||||
},
|
},
|
||||||
"bind_inform_account_error": "绑定通知账号异常",
|
"bind_inform_account_error": "绑定通知账号异常",
|
||||||
"bind_inform_account_success": "绑定通知账号成功",
|
"bind_inform_account_success": "绑定通知账号成功",
|
||||||
|
|||||||
@ -9,7 +9,9 @@ import {
|
|||||||
Th,
|
Th,
|
||||||
Td,
|
Td,
|
||||||
TableContainer,
|
TableContainer,
|
||||||
ModalCloseButton
|
ModalCloseButton,
|
||||||
|
HStack,
|
||||||
|
Box
|
||||||
} from '@chakra-ui/react';
|
} from '@chakra-ui/react';
|
||||||
import MyModal from '@fastgpt/web/components/common/MyModal';
|
import MyModal from '@fastgpt/web/components/common/MyModal';
|
||||||
import { useTranslation } from 'next-i18next';
|
import { useTranslation } from 'next-i18next';
|
||||||
@ -45,7 +47,7 @@ const StandDetailModal = ({ onClose }: { onClose: () => void }) => {
|
|||||||
<Th>{t('common:support.standard.type')}</Th>
|
<Th>{t('common:support.standard.type')}</Th>
|
||||||
<Th>{t('common:support.standard.storage')}</Th>
|
<Th>{t('common:support.standard.storage')}</Th>
|
||||||
<Th>{t('common:support.standard.AI Bonus Points')}</Th>
|
<Th>{t('common:support.standard.AI Bonus Points')}</Th>
|
||||||
<Th>{t('common:support.standard.Start Time')}</Th>
|
<Th>{t('user:bill.valid_time')}</Th>
|
||||||
<Th>{t('common:support.standard.Expired Time')}</Th>
|
<Th>{t('common:support.standard.Expired Time')}</Th>
|
||||||
</Tr>
|
</Tr>
|
||||||
</Thead>
|
</Thead>
|
||||||
@ -98,6 +100,10 @@ const StandDetailModal = ({ onClose }: { onClose: () => void }) => {
|
|||||||
</Table>
|
</Table>
|
||||||
<Loading loading={isLoading} fixed={false} />
|
<Loading loading={isLoading} fixed={false} />
|
||||||
</TableContainer>
|
</TableContainer>
|
||||||
|
<HStack mt={4} color={'primary.600'}>
|
||||||
|
<MyIcon name={'infoRounded'} w={'1rem'} />
|
||||||
|
<Box fontSize={'sm'}>{t('user:bill.standard_valid_tip')}</Box>
|
||||||
|
</HStack>
|
||||||
</ModalBody>
|
</ModalBody>
|
||||||
<ModalFooter></ModalFooter>
|
<ModalFooter></ModalFooter>
|
||||||
</MyModal>
|
</MyModal>
|
||||||
|
|||||||
@ -190,7 +190,7 @@ const Standard = ({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
{t('common:support.wallet.subscription.Buy now')}
|
{t('user:bill.buy_plan')}
|
||||||
</Button>
|
</Button>
|
||||||
);
|
);
|
||||||
})()}
|
})()}
|
||||||
|
|||||||
@ -33,8 +33,11 @@ app.get('/', (req, res) => {
|
|||||||
|
|
||||||
svgPaths.forEach((filePath) => {
|
svgPaths.forEach((filePath) => {
|
||||||
const name = filePath.split('.')[0];
|
const name = filePath.split('.')[0];
|
||||||
|
|
||||||
|
const icon = fs.readFileSync(`${svgDir}/${filePath}`, 'utf8');
|
||||||
|
|
||||||
iconHtml += `<div class="item" id="${name}" onclick="onclickCopy('${name}')">
|
iconHtml += `<div class="item" id="${name}" onclick="onclickCopy('${name}')">
|
||||||
<img src="/icons/${filePath}" width="30" height="30" />
|
${icon}
|
||||||
<div>${name}</div>
|
<div>${name}</div>
|
||||||
</div>`;
|
</div>`;
|
||||||
});
|
});
|
||||||
@ -48,7 +51,7 @@ app.get('/', (req, res) => {
|
|||||||
.grid {
|
.grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-gap: 10px;
|
grid-gap: 10px;
|
||||||
grid-template-columns: repeat(6, 1fr);
|
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
background-color: #F0F1F6;
|
background-color: #F0F1F6;
|
||||||
}
|
}
|
||||||
@ -65,9 +68,13 @@ app.get('/', (req, res) => {
|
|||||||
.item:hover{
|
.item:hover{
|
||||||
background-color: rgba(17, 24, 36, 0.1);
|
background-color: rgba(17, 24, 36, 0.1);
|
||||||
}
|
}
|
||||||
img {
|
svg {
|
||||||
margin-bottom: 5px;
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
margin: auto;
|
||||||
|
fill: #999;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<body>
|
<body>
|
||||||
<div class="grid">
|
<div class="grid">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user