import { Button, Image } from '@tarojs/components'; import Taro, { useDidShow } from '@tarojs/taro'; import { Dialog } from '@taroify/core'; import { Question } from '@taroify/icons'; import { useCallback, useEffect, useState } from 'react'; import { PageUrl } from '@/constants/app'; import { PartnerProfitsState } from '@/types/partner'; import { formatMoney, getPartnerProfitStat, withdrawMoney } from '@/utils/partner'; import { navigateTo } from '@/utils/route'; import Toast from '@/utils/toast'; import './index.less'; const PREFIX = 'partner-kanban'; function TipDialog(props: { open: boolean; onClose: () => void }) { return ( {`会员支付的收益无需提现,\n支付15日后自动分账至微信零钱`} 我知道了 ); } function WithdrawDialog(props: { open: boolean; onClose: () => void; count: number }) { const handleWithdraw = useCallback(async () => { if (Taro.canIUse('requestMerchantTransfer')) { try { const result = await withdrawMoney(); // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-expect-error wx.requestMerchantTransfer({ mchId: '1642470088', appId: 'wxf0724a83f8e377d2', package: result.packageInfo, success: (res: never) => { // res.err_msg将在页面展示成功后返回应用时返回ok,并不代表付款成功 console.log('success:', res); Toast.success('提现成功'); props.onClose(); }, fail: (res: never) => { Toast.error('提现失败'); console.log('fail:', res); }, }); } catch (e) { Toast.error('提现订单创建失败'); console.log(e); } } else { await Taro.showModal({ content: '你的微信版本过低,请更新至最新版本。', showCancel: false, }); } }, [props]); return ( 本次申请提现金额为 {+props.count} 元 单日提现最大200元 提现 取消 ); } type PartnerKanbanProps = { simple?: boolean; }; export default function PartnerKanban({ simple }: PartnerKanbanProps) { const [tipOpen, setTipOpen] = useState(false); const [withdrawOpen, setWithdrawOpen] = useState(false); const [stats, setStats] = useState({ availableBalance: 0, withdrawingBalance: 0, withdrawnBalance: 0, availableProfit: 0, withdrawnProfit: 0, failedProfit: 0, }); const total = stats.availableBalance + stats.withdrawingBalance + stats.withdrawnBalance + stats.availableProfit + stats.withdrawnProfit; const handleNavigate = useCallback(() => { navigateTo(PageUrl.Partner); }, []); const handleNavigateRecord = useCallback(() => { navigateTo(PageUrl.WithdrawRecord); }, []); const handleViewTip = useCallback(() => { setTipOpen(true); }, []); const handleTipClose = useCallback(() => { setTipOpen(false); }, []); const getProfitStats = useCallback(async () => { const data = await getPartnerProfitStat(); setStats(data); }, []); const handleViewWithdraw = useCallback(() => { if (stats.availableBalance < 0) { Toast.info('提现金额需大于等于0元'); return; } // if (stats.availableBalance < 10 * 1000) { // Toast.error('提现金额需大于等于10元'); // return; // } setWithdrawOpen(true); }, [stats.availableBalance]); const handleWithdrawClose = useCallback(() => { setWithdrawOpen(false); getProfitStats(); }, [getProfitStats]); useDidShow(() => { getProfitStats(); }); useEffect(() => { getProfitStats(); }, []); return ( {simple && ( 查看详情 )} 总收益(元) {formatMoney(total)} 可提现(元) {formatMoney(stats.availableBalance)} 提现中(元) {formatMoney(stats.withdrawingBalance)} 待分账(元) {!simple && } {formatMoney(stats.availableProfit)} {!simple && ( 提现 提现记录 )} {!simple && } {!simple && ( )} ); }