feat: 添加汇率服务和缓存服务,优化数据源和日志服务

refactor: 重构数据源工厂和类型定义,提升代码可维护性

fix: 修复类型转换和状态机文档中的错误

docs: 更新服务架构文档,添加新的服务闭环流程

test: 添加汇率服务单元测试

chore: 清理无用代码和注释,优化代码结构
This commit is contained in:
2026-03-19 14:19:01 +08:00
parent 0dac26d781
commit aa2cf560c6
120 changed files with 33383 additions and 4347 deletions

View File

@@ -641,21 +641,44 @@ export const OrderList: React.FC = () => {
</Menu>
);
// 根据订单状态显示主要操作按钮
const getPrimaryActionButton = () => {
switch (record.status) {
case 'PENDING':
return (
<Button type="primary" size="small" onClick={() => handleConfirmOrder(record)}>
</Button>
);
case 'CONFIRMED':
return (
<Button type="primary" size="small" onClick={() => handleShipOrder(record)}>
</Button>
);
case 'DELIVERED':
return (
<Button type="primary" size="small" onClick={() => handleCompleteOrder(record)}>
</Button>
);
case 'COMPLETED':
return (
<Button type="link" size="small" onClick={() => handleAfterSales(record)}>
</Button>
);
default:
return null;
}
};
return (
<Space>
<Space size="small">
<Button type="link" size="small" onClick={() => handleViewDetail(record)}>
</Button>
{record.status === 'PENDING' && (
<Button type="link" size="small" onClick={() => handleConfirmOrder(record)}>
</Button>
)}
{record.status === 'CONFIRMED' && (
<Button type="link" size="small" onClick={() => handleShipOrder(record)}>
</Button>
)}
{getPrimaryActionButton()}
<Dropdown overlay={menu} placement="bottomRight">
<Button type="link" size="small" icon={<MoreOutlined />}>
@@ -723,29 +746,50 @@ export const OrderList: React.FC = () => {
<Row gutter={[16, 16]} style={{ marginBottom: 16 }}>
<Col span={24}>
<Space style={{ display: 'flex', justifyContent: 'space-between' }}>
<Search
placeholder="搜索订单号或客户"
allowClear
enterButton
onSearch={handleSearch}
style={{ width: 300 }}
/>
<Space>
<Button icon={<FilterOutlined />} onClick={() => setFilterVisible(true)}>
</Button>
<Button icon={<SortAscendingOutlined />} onClick={() => setSortDrawerVisible(true)}>
</Button>
<Button icon={<ExportOutlined />}>
</Button>
<Button icon={<SyncOutlined />} onClick={fetchOrders}>
</Button>
</Space>
</Space>
<Card>
<Row gutter={16}>
<Col span={12}>
<Space>
<Search
placeholder="搜索订单号或客户"
allowClear
enterButton
onSearch={handleSearch}
style={{ width: 300 }}
/>
<Button icon={<FilterOutlined />} onClick={() => setFilterVisible(true)}>
</Button>
<Button icon={<SortAscendingOutlined />} onClick={() => setSortDrawerVisible(true)}>
</Button>
</Space>
</Col>
<Col span={12} style={{ textAlign: 'right' }}>
<Space>
{selectedRows.length > 0 && (
<Space>
<Button onClick={() => message.info('批量确认功能开发中')}>
</Button>
<Button onClick={() => message.info('批量发货功能开发中')}>
</Button>
<Button danger onClick={() => message.info('批量取消功能开发中')}>
</Button>
</Space>
)}
<Button icon={<ExportOutlined />}>
</Button>
<Button icon={<SyncOutlined />} onClick={fetchOrders}>
</Button>
</Space>
</Col>
</Row>
</Card>
</Col>
</Row>
@@ -756,14 +800,17 @@ export const OrderList: React.FC = () => {
loading={loading}
rowKey="id"
onChange={handleTableChange}
scroll={{ x: 1200 }}
scroll={{ x: 1300 }}
pagination={{
total: sortedOrders.length,
pageSize: 10,
showSizeChanger: true,
showQuickJumper: true,
showTotal: (total) => `${total}`,
pageSizeOptions: ['10', '20', '50', '100'],
}}
size="middle"
bordered
/>
<Drawer