import '~/styles/personal.scss' import { Button, Divider, List, Overlay, Swiper, SwiperInstance, Toast } from "react-vant" import BackBar from "~/components/BackBar" import { useEffect, useRef, useState } from 'react' import { getTime, splitAddress } from '~/utils' import { observer } from 'mobx-react' import store from '~/store' import { my_invite, team_info } from '~/api' import useCopyLink from '~/hooks/useCopy' import { InviteRecordData } from '~/types/store' import { useRouter } from '~/hooks/useRouter' import { copy } from '~/utils/copy' import QRCode from 'qrcode' const Team = () => { const { push } = useRouter() const { token } = store.state const { copyVal } = useCopyLink() const [address, setAddress] = useState('') const [inviteList, setInviteList] = useState([] as InviteRecordData[]) const [finished, setFinished] = useState(true); const [visible, setVisible] = useState(false); const [cardState, setCardState] = useState([ [ { title: '我的推薦人', value: '000000000', id: 1 }, { title: '級別獎勵', value: '10% 5%', id: 2 }, ], [ { title: '獎勵金額', value: '0U', id: 4 }, { title: '直推人數', value: '0人', id: 6 }, { title: '閒推人數', value: '0人', id: 5 }, ], ]) const query = useRef({ page: 1, page_size: 20 }) const getInviteData = async () => { let res: any = await my_invite(query.current); if (res && res.code === 0 && res.data) { if (res.data.length < 20) { if (inviteList.length <= 0) { setInviteList(res.data) } else { setInviteList([...inviteList, ...res.data]) } setFinished(true) return } query.current.page = query.current.page + 1 if (inviteList.length <= 0) { setInviteList(res.data) } else { setInviteList([...inviteList, ...res.data]) }; setFinished(false) } } useEffect(() => { const getData = async () => { const res: any = await team_info() if (res && res.code === 0) { cardState[0][0].value = res.data.inviti_address || '000000000000000' cardState[1][0].value = res.data.award ? res.data.award + "U" : "0U" cardState[1][1].value = res.data.direct_count ? res.data.direct_count + '人' : '0人' cardState[1][2].value = res.data.indirect_count ? res.data.indirect_count + '人' : '0人' setCardState([...cardState]) setAddress(res.data.address) } } token && getData() token && getInviteData(); !token && push('/', null, true) }, [token]) return (
邀请好友,挣奖励
最高可得
10%
{ cardState.map((v, index) => (
{ v.map(item => (
{item.title}
{item.id === 1 ? splitAddress(item.value) : item.value} { item.id === 1 && ( copyVal(item.value)}> ) }
)) }
)) }
我的邀请
地址
時間
{ inviteList.map((item, index) => (
{splitAddress(item.address)}
{getTime(item.time * 1000)}
)) }
{ visible && }
) } const ShareModal = ( { visible, setVisible, address }: { visible: boolean, setVisible: Function, address: string } ) => { const [swiperIndex, setSwiperIndex] = useState(0) const swiperRef = useRef(null) const [qrcodeUri, setQrcodeUri] = useState('') const handleSwiper = () => { if (swiperIndex === 0) { swiperRef.current?.swipeNext() } else { swiperRef.current?.swipePrev() } } const downloadQrcode = () => { if (!qrcodeUri) return const link = document.createElement('a') link.href = qrcodeUri link.download = `${Date.now()}.png` link.click() link.remove() } useEffect(() => { copy(process.env.REACT_APP_SHARE_LINK + address) QRCode.toDataURL(process.env.REACT_APP_SHARE_LINK + address, (err, url) => { if (url) { setQrcodeUri(url) } }) }, []) return (
setVisible(false)}>
<>} onChange={(index) => setSwiperIndex(index)} initialSwipe={swiperIndex} touchable={false} >
{splitAddress(process.env.REACT_APP_SHARE_LINK + address, 14)} { copy(process.env.REACT_APP_SHARE_LINK + address, () => { Toast.success('复制成功') }) }}>
成功複製分享碼
轉發給好友並在錢包裏打開完成綁定
截圖或下載圖片
掃描綁定關係
在好友錢包裡掃一掃完成綁定
{swiperIndex === 0 ? '切換二維碼' : '切換分享鏈接'}
) } export default observer(Team)