This commit is contained in:
chashaobao
2025-10-15 20:44:20 +08:00
parent 7ba04b27ff
commit 3d2b121b92
23 changed files with 724 additions and 65 deletions

View File

@ -3,10 +3,14 @@ import Taro from '@tarojs/taro';
import { Swiper } from '@taroify/core';
import { GoodJob } from '@taroify/icons';
import { useCallback } from 'react';
import { useCallback, useEffect, useRef, useState } from 'react';
import { PageUrl } from '@/constants/app';
import { EarnType, UserProfitListItem } from '@/types/partner';
import { openCustomerServiceChat } from '@/utils/common';
import { getCouponQrCode, generateMembershipCoupon } from '@/utils/coupon';
import { generateMembershipCoupon, getCouponQrCode } from '@/utils/coupon';
import { formatMoney, formatTimestamp, getLastProfitList } from '@/utils/partner';
import { navigateTo } from '@/utils/route';
import './index.less';
const PREFIX = 'partner-intro';
@ -112,11 +116,44 @@ export default function PartnerIntro() {
}
};
const handleConfirm = useCallback(() => {}, []);
const handleConfirm = useCallback(() => {
navigateTo(PageUrl.GroupOwnerCertificate);
}, []);
const handleOpenService = useCallback(() => {
openCustomerServiceChat('https://work.weixin.qq.com/kfid/kfc4fcf6b109b3771d7');
}, []);
const timerRef = useRef<NodeJS.Timeout | null>(null);
const [bannerList, setBannerList] = useState<UserProfitListItem[]>([]);
const getBannerList = useCallback(async () => {
if (timerRef.current) {
clearTimeout(timerRef.current);
timerRef.current = null;
}
const list = await getLastProfitList();
setBannerList(s => [...s, ...list]);
timerRef.current = setTimeout(
() => {
getBannerList();
},
3000 * (list.length || 10)
);
}, []);
useEffect(() => {
getBannerList();
return () => {
if (timerRef.current) {
clearTimeout(timerRef.current);
timerRef.current = null;
}
};
}, [getBannerList]);
return (
<div className={PREFIX}>
<div className={`${PREFIX}__banner`}>
@ -130,18 +167,23 @@ export default function PartnerIntro() {
mode="aspectFill"
/>
<Swiper className={`${PREFIX}__swiper`} autoplay={3000} touchable={false}>
<Swiper.Item className={`${PREFIX}__swiper-item`}>
<div className={`${PREFIX}__swiper-item-time`}>2024.02.02 12:23:23</div>
<div className={`${PREFIX}__swiper-item-details`}>
<div className={`${PREFIX}__swiper-item-id`}>zbldakjdjsksada</div>
<div className={`${PREFIX}__swiper-item-info`}>
<div className="money">+2.15</div>
{bannerList.map((item, index) => (
<Swiper.Item className={`${PREFIX}__swiper-item`} key={index}>
<div className={`${PREFIX}__swiper-item-time`}>{formatTimestamp(item.updatedAt)}</div>
<div className={`${PREFIX}__swiper-item-details`}>
<div className={`${PREFIX}__swiper-item-id`}>{item.userId}</div>
<div className={`${PREFIX}__swiper-item-info`}>
{[EarnType.CHAT_ACTIVITY_SHARE_L1, EarnType.CHAT_ACTIVITY_SHARE_L2].includes(item.earnType)
? '主播被开聊'
: '会员支付'}
<div className="money">+{formatMoney(item.total)}</div>
</div>
<div className={`${PREFIX}__swiper-item-info`}>
<div className="money">{formatMoney(item.amount)}</div>
</div>
</div>
<div className={`${PREFIX}__swiper-item-info`}>
<div className="money">1200.15</div>
</div>
</div>
</Swiper.Item>
</Swiper.Item>
))}
</Swiper>
</div>