refactor: 重构代码结构和类型定义,优化类型安全性和代码可维护性
- 添加类型定义文件和类型引用 - 删除废弃的页面模块和导出文件 - 新增聚合管理模块和插件系统 - 修复类型错误和潜在运行时问题 - 更新API基础URL和配置 - 优化组件类型定义和事件处理 - 重构数据源接口和实现 - 完善文档和开发进度记录
This commit is contained in:
@@ -231,7 +231,7 @@ export const ContractManage: React.FC = () => {
|
||||
const endDate = new Date(c.endDate);
|
||||
return endDate <= thirtyDaysLater && endDate >= today;
|
||||
}).length,
|
||||
totalValue: contractList.filter((c) => c.status === 'ACTIVE').reduce((sum, c) => sum + c.totalValue, 0),
|
||||
totalValue: contractList.filter((c) => c.status === 'ACTIVE').reduce((sum, c) => sum + (c.totalValue || 0), 0),
|
||||
});
|
||||
};
|
||||
|
||||
@@ -637,7 +637,7 @@ export const ContractManage: React.FC = () => {
|
||||
<Button key="close" onClick={() => setDetailModalVisible(false)}>
|
||||
Close
|
||||
</Button>,
|
||||
selectedContract?.status === 'PENDING_SIGN' && (
|
||||
selectedContract?.status === 'PENDING_REVIEW' && (
|
||||
<Button key="activate" type="primary" onClick={() => {
|
||||
handleStatusChange(selectedContract.contractId, 'ACTIVE');
|
||||
setDetailModalVisible(false);
|
||||
|
||||
@@ -171,9 +171,9 @@ export const EnterpriseQuote: React.FC = () => {
|
||||
|
||||
const fetchProducts = async () => {
|
||||
const mockProducts: Product[] = [
|
||||
{ id: 'PROD_001', sku: 'SKU-001', name: 'Wireless Headphones', costPrice: 15.00, suggestedPrice: 25.00, moq: 100, stock: 5000 },
|
||||
{ id: 'PROD_002', sku: 'SKU-002', name: 'USB-C Cable', costPrice: 2.50, suggestedPrice: 5.00, moq: 500, stock: 10000 },
|
||||
{ id: 'PROD_003', sku: 'SKU-003', name: 'Phone Case', costPrice: 3.00, suggestedPrice: 8.00, moq: 200, stock: 8000 },
|
||||
{ id: 'PROD_001', sku: 'SKU-001', name: 'Wireless Headphones', price: 25.00, costPrice: 15.00, suggestedPrice: 25.00, moq: 100, stock: 5000 },
|
||||
{ id: 'PROD_002', sku: 'SKU-002', name: 'USB-C Cable', price: 5.00, costPrice: 2.50, suggestedPrice: 5.00, moq: 500, stock: 10000 },
|
||||
{ id: 'PROD_003', sku: 'SKU-003', name: 'Phone Case', price: 8.00, costPrice: 3.00, suggestedPrice: 8.00, moq: 200, stock: 8000 },
|
||||
];
|
||||
setProducts(mockProducts);
|
||||
};
|
||||
@@ -201,11 +201,12 @@ export const EnterpriseQuote: React.FC = () => {
|
||||
const tierDiscount = selectedCustomer
|
||||
? CUSTOMER_TIERS.find((t) => t.value === selectedCustomer.tier)?.discount || 0
|
||||
: 0;
|
||||
const unitPrice = values.unitPrice || product.suggestedPrice;
|
||||
const unitPrice = values.unitPrice || product.suggestedPrice || product.price;
|
||||
const discount = values.discount || tierDiscount;
|
||||
const totalPrice = unitPrice * values.quantity * (1 - discount / 100);
|
||||
|
||||
const profitRate = ((unitPrice - product.costPrice) / product.costPrice) * 100;
|
||||
const costPrice = product.costPrice || product.price * 0.6;
|
||||
const profitRate = ((unitPrice - costPrice) / costPrice) * 100;
|
||||
if (profitRate < MIN_PROFIT_RATE) {
|
||||
message.warning(`Warning: Profit rate (${profitRate.toFixed(1)}%) is below minimum (${MIN_PROFIT_RATE}%)`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user