V4.0.9版本更新合伙人H5端调整

This commit is contained in:
2026-09-02 09:46:41 +08:00
parent af3c4b6f08
commit c905b3f930
33 changed files with 893 additions and 176 deletions
+31 -1
View File
@@ -1,6 +1,6 @@
import { useCallback, useEffect, useMemo, useState } from 'react';
import { Link } from 'react-router-dom';
import type { PartnerBillDto } from '@dukang/shared-types';
import type { PartnerBillDto, PartnerSettlementPreviewDto } from '@dukang/shared-types';
import { isWxAuthorizeEnabled } from '@dukang/shared-types';
import PullToRefresh from '@dukang/shared-ui/PullToRefresh';
import { request } from '../lib/api';
@@ -8,6 +8,7 @@ import { usePartnerSession } from '../contexts/PartnerSessionContext';
import { contactSupport } from '../lib/contact';
import { isPrimaryAccount } from '../lib/partnerAccess';
import { listPartnerStaff } from '../lib/staff';
import { formatBillPeriod, formatIssueLabel } from '../lib/settlement';
import { toastError, toastSuccess } from '../lib/toast';
import {
authorizePartnerWechat,
@@ -31,6 +32,7 @@ export default function CenterPage({ variant = 'primary', roleLabel }: CenterPag
const isPrimary = variant === 'primary' && isPrimaryAccount(account);
const [authorizing, setAuthorizing] = useState(false);
const [bills, setBills] = useState<PartnerBillDto[]>([]);
const [preview, setPreview] = useState<PartnerSettlementPreviewDto | null>(null);
const [staffCount, setStaffCount] = useState(0);
useEffect(() => {
@@ -44,6 +46,9 @@ export default function CenterPage({ variant = 'primary', roleLabel }: CenterPag
request<PartnerBillDto[]>('PARTNER_H5', '/partner/settlement/bills')
.then(setBills)
.catch(() => setBills([])),
request<PartnerSettlementPreviewDto>('PARTNER_H5', '/partner/settlement/preview')
.then(setPreview)
.catch(() => setPreview(null)),
listPartnerStaff()
.then((list) => setStaffCount(list.length))
.catch(() => setStaffCount(0)),
@@ -188,6 +193,15 @@ export default function CenterPage({ variant = 'primary', roleLabel }: CenterPag
<p className="partner-finance-hero-label"> ()</p>
<p className="partner-finance-hero-amount">{fmtMoney(finance.balance)}</p>
</div>
<div className="partner-finance-card">
<p className="label-md text-muted"></p>
<p className="partner-finance-value text-primary">¥ {fmtMoney(preview?.prepaymentAmount ?? 0)}</p>
<p className="label-md text-muted" style={{ marginTop: 6, lineHeight: 1.4 }}>
{formatBillPeriod(preview?.periodStart, preview?.periodEnd)}
<br />
{formatIssueLabel(preview)}
</p>
</div>
<Link to="/center/settlement" className="partner-finance-card">
<p className="label-md text-muted"></p>
<p className="partner-finance-value text-primary">¥ {fmtMoney(finance.pendingTotal)}</p>
@@ -219,6 +233,22 @@ export default function CenterPage({ variant = 'primary', roleLabel }: CenterPag
<span className="material-symbols-outlined text-muted">chevron_right</span>
</div>
</Link>
<Link to="/center/bank" className="partner-menu-item">
<div className="partner-menu-item-left">
<div className="partner-menu-icon">
<span className="material-symbols-outlined">account_balance</span>
</div>
<span className="body-md" style={{ fontSize: 16 }}></span>
</div>
<div className="partner-menu-item-right">
{account?.bankAccount?.bankAccountNo ? (
<span className="label-md text-muted">{account.bankAccount.bankAccountNo.slice(-4)}</span>
) : (
<span className="partner-menu-status"></span>
)}
<span className="material-symbols-outlined text-muted">chevron_right</span>
</div>
</Link>
<Link to="/center/activity-posters" className="partner-menu-item">
<div className="partner-menu-item-left">
<div className="partner-menu-icon">