+
+
+
+ 微博外部单协作
+
+ 外部 CK 账号核账、兑换确认与协作台账
+
+
+ }
+ placeholder="单号、UID、昵称、角色、商品、备注"
+ value={keyword}
+ onChange={(event) => {
+ setKeyword(event.target.value);
+ setPage(1);
+ }}
+ style={{ width: 260 }}
+ />
+ } onClick={refreshAll}>
+ 刷新
+
+ {canEdit && (
+ } onClick={openCreate}>
+ 新建协作单
+
+ )}
+
+
+
+
+ {statusCards.map((item) => (
+
+ ))}
+
+
+
+
+
+
+
+
+ 已选 {selectedIds.length} 单
+ {canEdit && selectedIds.length > 0 && archiveScope !== 'archived' && (
+ <>
+ }
+ onClick={() => void verifyOrders(selectedIds)}
+ >
+ 批量校验
+
+ } onClick={() => void runBalanceCheck(selectedIds)}>
+ 充值核账
+
+ } onClick={() => void runExchangeCheck(selectedIds)}>
+ 查兑换记录
+
+
+ } onClick={() => void archiveOrders(selectedIds)}>
+ 归档
+
+ >
+ )}
+ {canEdit && selectedIds.length > 0 && archiveScope === 'archived' && (
+ } onClick={() => void unarchiveOrders(selectedIds)}>
+ 取消归档
+
+ )}
+
+
+ {archiveScope === 'archived' && (
+
+ )}
+
+
+ rowKey="id"
+ loading={loading}
+ columns={columns}
+ dataSource={orders}
+ scroll={{ x: 1500 }}
+ rowSelection={{
+ selectedRowKeys: selectedIds,
+ onChange: (keys) => setSelectedIds(keys.map(Number)),
+ }}
+ pagination={{
+ current: page,
+ pageSize,
+ total,
+ showSizeChanger: true,
+ showTotal: (value) => `共 ${value} 单`,
+ onChange: (nextPage, nextSize) => {
+ setPage(nextPage);
+ setPageSize(nextSize);
+ },
+ }}
+ />
+
+ void saveOrder()}
+ onCancel={() => setEditOpen(false)}
+ destroyOnHidden
+ >
+
+
+
+
+
+
+ {lookup && (
+ 0
+ ? `同账号已有 ${lookup.orders_using_account.length} 单:${lookup.orders_using_account
+ .map((item) => item.order_no)
+ .join('、')}`
+ : undefined
+ }
+ />
+ )}
+
+
+
+
+
+
+ {!editing && (
+
+ 先保存草稿,不校验账号
+
+ )}
+
+
+
+ 1 ? `(${statusIds.length} 单)` : ''}`}
+ open={statusOpen}
+ confirmLoading={statusSaving}
+ okText="确认修改"
+ cancelText="取消"
+ onOk={() => void saveStatus()}
+ onCancel={() => setStatusOpen(false)}
+ >
+
+
+
+
+
+ setDetailOpen(false)}
+ size={880}
+ loading={detailLoading}
+ >
+ {detail && (
+
+ {detail.status_label} },
+ { key: 'balance', label: '最近核账', children: detail.weidou_check_message || '-' },
+ { key: 'exchange', label: '兑换确认', children: detail.exchange_message || '-' },
+ { key: 'updated', label: '最后修改', children: `${detail.updated_by_name || '-'} · ${formatTime(detail.updated_at)}` },
+ ]}
+ />
+ {detail.home_images.length > 0 && (
+
+ {detail.home_images.map((key) => (
+
+ ))}
+
+ )}
+
+ {canEdit && !detail.is_archived && (
+ <>
+ } onClick={() => void verifyOrders([detail.id])}>
+ 校验账号
+
+ } onClick={() => void runBalanceCheck([detail.id])}>
+ 充值核账
+
+ } onClick={() => void runExchangeCheck([detail.id])}>
+ 查兑换记录
+
+
+ >
+ )}
+
+ 指标快照
+
+ `余额 ${row.weidou_balance ?? '-'} / 合计 ${row.weidou_required_total ?? '-'} / 结余 ${row.weidou_surplus ?? '-'}`,
+ },
+ {
+ title: '兑换',
+ width: 220,
+ render: (_, row) =>
+ `${row.verdict_label || '未判定'} · ${row.records_matched}/${row.records_total}`,
+ },
+ { title: '结论', dataIndex: 'message' },
+ ]}
+ />
+ 操作时间线
+
+
+ )}
+
+
+ setShopOpen(false)}
+ >
+
+
+
+
+
+
+
+
+
+ (
+
+ ),
+ },
+ {
+ title: '操作',
+ width: 80,
+ render: (_, row) => (
+ {
+ try {
+ await weiboCollabApi.deleteShop(row.id);
+ await loadBase();
+ } catch (error) {
+ message.error(getErrorMessage(error));
+ }
+ }}
+ >
+ } />
+
+ ),
+ },
+ ]}
+ />
+
+
+
+ setGoodsOpen(false)}
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+ (
+
+ ),
+ },
+ {
+ title: '操作',
+ width: 80,
+ render: (_, row) => (
+ {
+ try {
+ await weiboCollabApi.deleteGoods(row.id);
+ await loadBase();
+ } catch (error) {
+ message.error(getErrorMessage(error));
+ }
+ }}
+ >
+ } />
+
+ ),
+ },
+ ]}
+ />
+
+
+
+ );
+}