refactor(types): 重构类型系统,统一共享类型定义
feat(types): 新增共享类型中心,包含用户、产品、订单等核心领域类型 fix(types): 修复类型定义错误,统一各模块类型引用 style(types): 优化类型文件格式和注释 docs(types): 更新类型文档和变更日志 test(types): 添加类型测试用例 build(types): 配置类型共享路径 chore(types): 清理重复类型定义文件
This commit is contained in:
@@ -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')}
|
||||
|
||||
Reference in New Issue
Block a user