✨ feat(affiliate): Commission Rate
This commit is contained in:
parent
4fdfeb2b1c
commit
5eec430e50
@ -8,12 +8,13 @@ import { formatDate } from '@repo/ui/utils';
|
|||||||
import { Button } from '@shadcn/ui/button';
|
import { Button } from '@shadcn/ui/button';
|
||||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@shadcn/ui/card';
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@shadcn/ui/card';
|
||||||
import { toast } from '@shadcn/ui/lib/sonner';
|
import { toast } from '@shadcn/ui/lib/sonner';
|
||||||
|
import { Copy } from 'lucide-react';
|
||||||
import { useTranslations } from 'next-intl';
|
import { useTranslations } from 'next-intl';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
|
|
||||||
export default function Page() {
|
export default function Page() {
|
||||||
const t = useTranslations('affiliate');
|
const t = useTranslations('affiliate');
|
||||||
const { user } = useGlobalStore();
|
const { user, common } = useGlobalStore();
|
||||||
const [sum, setSum] = useState<number>();
|
const [sum, setSum] = useState<number>();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -23,23 +24,40 @@ export default function Page() {
|
|||||||
<CardTitle>{t('totalCommission')}</CardTitle>
|
<CardTitle>{t('totalCommission')}</CardTitle>
|
||||||
<CardDescription>{t('commissionInfo')}</CardDescription>
|
<CardDescription>{t('commissionInfo')}</CardDescription>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className='text-2xl font-bold'>
|
<CardContent>
|
||||||
<Display type='currency' value={sum} />
|
<div className='flex items-baseline gap-2'>
|
||||||
|
<span className='text-3xl font-bold'>
|
||||||
|
<Display type='currency' value={sum} />
|
||||||
|
</span>
|
||||||
|
<span className='text-muted-foreground text-sm'>
|
||||||
|
({t('commissionRate')}: {common?.invite?.referral_percentage}%)
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
<Card>
|
<Card>
|
||||||
<CardHeader className='flex flex-row items-center justify-between space-y-0'>
|
<CardHeader className='flex flex-row items-center justify-between space-y-0'>
|
||||||
<CardTitle>{t('inviteCode')}</CardTitle>
|
<CardTitle className='text-lg font-medium'>{t('inviteCode')}</CardTitle>
|
||||||
<Button
|
|
||||||
onClick={() => {
|
|
||||||
navigator.clipboard.writeText(`${location.origin}/auth?invite=${user?.refer_code}`);
|
|
||||||
toast.success(t('copySuccess'));
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{t('copyInviteLink')}
|
|
||||||
</Button>
|
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent className='text-2xl font-bold'>{user?.refer_code}</CardContent>
|
<CardContent>
|
||||||
|
<div className='flex items-center justify-between'>
|
||||||
|
<code className='bg-muted rounded px-2 py-1 text-2xl font-bold'>
|
||||||
|
{user?.refer_code}
|
||||||
|
</code>
|
||||||
|
<Button
|
||||||
|
variant='secondary'
|
||||||
|
size='sm'
|
||||||
|
className='gap-2'
|
||||||
|
onClick={() => {
|
||||||
|
navigator.clipboard.writeText(`${location.origin}/auth?invite=${user?.refer_code}`);
|
||||||
|
toast.success(t('copySuccess'));
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Copy className='h-4 w-4' />
|
||||||
|
{t('copyInviteLink')}
|
||||||
|
</Button>
|
||||||
|
</div>
|
||||||
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
<ProList<API.UserAffiliate, Record<string, unknown>>
|
<ProList<API.UserAffiliate, Record<string, unknown>>
|
||||||
request={async (pagination, filter) => {
|
request={async (pagination, filter) => {
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"commissionInfo": "Statistics of the commission, automatically transferred to balance",
|
"commissionInfo": "Statistics of the commission, automatically transferred to balance",
|
||||||
|
"commissionRate": "Commission Rate",
|
||||||
"copyInviteLink": "Copy Invite Link",
|
"copyInviteLink": "Copy Invite Link",
|
||||||
"copySuccess": "Copied Successfully",
|
"copySuccess": "Copied Successfully",
|
||||||
"inviteCode": "Invite Code",
|
"inviteCode": "Invite Code",
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"commissionInfo": "统计金额,邀请佣金自动转入余额",
|
"commissionInfo": "统计金额,邀请佣金自动转入余额",
|
||||||
|
"commissionRate": "佣金比例",
|
||||||
"copyInviteLink": "复制邀请链接",
|
"copyInviteLink": "复制邀请链接",
|
||||||
"copySuccess": "复制成功",
|
"copySuccess": "复制成功",
|
||||||
"inviteCode": "邀请码",
|
"inviteCode": "邀请码",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user