refactor(types): 重构类型系统,统一共享类型定义

feat(types): 新增共享类型中心,包含用户、产品、订单等核心领域类型
fix(types): 修复类型定义错误,统一各模块类型引用
style(types): 优化类型文件格式和注释
docs(types): 更新类型文档和变更日志
test(types): 添加类型测试用例
build(types): 配置类型共享路径
chore(types): 清理重复类型定义文件
This commit is contained in:
2026-03-20 17:53:46 +08:00
parent 989c4b13a6
commit 427becbc8f
222 changed files with 25676 additions and 6328 deletions

View File

@@ -1,4 +1,5 @@
import React, { useState, useEffect, useCallback } from 'react';
import { useNavigate } from 'react-router-dom';
import {
Card,
Table,
@@ -6,6 +7,7 @@ import {
Space,
Tag,
Input,
InputNumber,
Select,
Row,
Col,
@@ -43,7 +45,7 @@ import {
CloseCircleOutlined,
ExclamationCircleOutlined,
} from '@ant-design/icons';
import { Link, history } from 'umi';
import type { ColumnsType, TablePaginationConfig } from 'antd/es/table';
import type { FilterValue, SorterResult, TableCurrentDataSource } from 'antd/es/table/interface';
import moment from 'moment';
@@ -76,7 +78,7 @@ interface FilterState {
platform: string[];
category: string[];
roiRange: [number, number] | null;
dateRange: [moment.Moment, moment.Moment] | null;
dateRange: any;
}
interface SortState {
@@ -213,6 +215,7 @@ const MOCK_PRODUCTS: Product[] = [
];
export const ProductList: React.FC = () => {
const navigate = useNavigate();
const [products, setProducts] = useState<Product[]>([]);
const [loading, setLoading] = useState(false);
const [selectedRows, setSelectedRows] = useState<Product[]>([]);
@@ -288,15 +291,15 @@ export const ProductList: React.FC = () => {
};
const handleAddProduct = () => {
history.push('/Product/ProductPublishForm');
navigate('/Product/ProductPublishForm');
};
const handleEditProduct = (record: Product) => {
history.push(`/Product/ProductDetail?id=${record.id}`);
navigate(`/Product/ProductDetail?id=${record.id}`);
};
const handleViewProduct = (record: Product) => {
history.push(`/Product/ProductDetail?id=${record.id}`);
navigate(`/Product/ProductDetail?id=${record.id}`);
};
const handleDeleteProduct = (record: Product) => {
@@ -557,7 +560,7 @@ export const ProductList: React.FC = () => {
{Object.entries(record.platformStatus).map(([platform, status]) => (
<Tooltip key={platform} title={`${platform}: ${status}`}>
<Tag
size="small"
color={status === 'LIVE' ? 'success' : status === 'FAILED' ? 'error' : 'processing'}
>
{platform.charAt(0)}
@@ -824,7 +827,7 @@ export const ProductList: React.FC = () => {
<span>{item.label}</span>
<Space>
<Button
size="small"
icon={<ArrowUpOutlined />}
type={sort.field === item.key && sort.order === 'ascend' ? 'primary' : 'default'}
onClick={() => handleSortChange(item.key, 'ascend')}
@@ -832,7 +835,7 @@ export const ProductList: React.FC = () => {
</Button>
<Button
size="small"
icon={<ArrowDownOutlined />}
type={sort.field === item.key && sort.order === 'descend' ? 'primary' : 'default'}
onClick={() => handleSortChange(item.key, 'descend')}