feat(ops): v4.0.4 开发任务多行与版本状态同步、合伙人/门店删除、账单合伙人列
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -57,6 +57,7 @@ type Row = {
|
||||
redeemItems?: BillItemRow[];
|
||||
partner?: {
|
||||
companyName?: string;
|
||||
name?: string;
|
||||
phone?: string;
|
||||
bankAccountName?: string | null;
|
||||
bankAccountNo?: string | null;
|
||||
@@ -64,6 +65,7 @@ type Row = {
|
||||
};
|
||||
partnerAccount?: {
|
||||
companyName?: string;
|
||||
name?: string;
|
||||
phone?: string;
|
||||
bankAccountName?: string | null;
|
||||
bankAccountNo?: string | null;
|
||||
@@ -71,7 +73,7 @@ type Row = {
|
||||
};
|
||||
};
|
||||
|
||||
type PartnerOption = { id: string; companyName: string; phone?: string };
|
||||
type PartnerOption = { id: string; companyName?: string | null; name?: string | null; phone?: string };
|
||||
|
||||
const STATUS_LABELS: Record<string, string> = {
|
||||
PENDING_REVIEW: '待审核',
|
||||
@@ -89,6 +91,18 @@ const STATUS_COLORS: Record<string, string> = {
|
||||
REJECTED: 'red',
|
||||
};
|
||||
|
||||
function partnerDashLabel(p?: {
|
||||
companyName?: string | null;
|
||||
name?: string | null;
|
||||
phone?: string | null;
|
||||
} | null): string {
|
||||
if (!p) return '—';
|
||||
const company = (p.companyName || '').trim();
|
||||
const person = (p.name || '').trim();
|
||||
if (company && person) return `${company}-${person}`;
|
||||
return company || person || (p.phone || '').trim() || '—';
|
||||
}
|
||||
|
||||
export default function PartnerBillsPage() {
|
||||
const [form] = Form.useForm();
|
||||
const [filters, setFilters] = useState<Record<string, string>>({});
|
||||
@@ -257,7 +271,7 @@ export default function PartnerBillsPage() {
|
||||
}
|
||||
|
||||
const summary = data?.summary;
|
||||
const partnerName = (r: Row) => r.partner?.companyName || r.partnerAccount?.companyName || '—';
|
||||
const partnerName = (r: Row) => partnerDashLabel(r.partnerAccount ?? r.partner);
|
||||
const partnerBank = (r: Row) => r.partnerAccount ?? r.partner;
|
||||
const selectedRows = (data?.items ?? []).filter((r) => selectedKeys.includes(r.id));
|
||||
const canSend = selectedRows.filter((r) => r.status === 'PENDING_REVIEW' || r.status === 'REJECTED');
|
||||
@@ -275,7 +289,7 @@ export default function PartnerBillsPage() {
|
||||
},
|
||||
{
|
||||
title: '合伙人',
|
||||
width: 160,
|
||||
width: 200,
|
||||
render: (_, r) => partnerName(r),
|
||||
},
|
||||
{
|
||||
@@ -406,7 +420,7 @@ export default function PartnerBillsPage() {
|
||||
optionFilterProp="label"
|
||||
options={partners.map((p) => ({
|
||||
value: p.id,
|
||||
label: p.companyName || p.phone || p.id,
|
||||
label: partnerDashLabel(p),
|
||||
}))}
|
||||
/>
|
||||
</Form.Item>
|
||||
@@ -503,7 +517,7 @@ export default function PartnerBillsPage() {
|
||||
placeholder="全部主合伙人"
|
||||
options={partners.map((p) => ({
|
||||
value: p.id,
|
||||
label: p.companyName || p.phone || p.id,
|
||||
label: partnerDashLabel(p),
|
||||
}))}
|
||||
/>
|
||||
</Form.Item>
|
||||
|
||||
Reference in New Issue
Block a user