|
|
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
|
|
EyeOutlined,
|
|
|
|
|
} from '@ant-design/icons';
|
|
|
|
|
import type { ColumnsType } from 'antd/es/table';
|
|
|
|
|
import { b2bTradeDataSource, BatchOrder, BatchOrderItem, Customer } from '@/services/b2bTradeDataSource';
|
|
|
|
|
import { b2bTradeDataSource, BatchOrder as BatchOrderType, BatchOrderItem, Customer } from '@/services/b2bTradeDataSource';
|
|
|
|
|
|
|
|
|
|
const { Option } = Select;
|
|
|
|
|
const { TextArea } = Input;
|
|
|
|
|
@@ -56,16 +56,16 @@ const ITEM_STATUS_MAP: Record<string, { color: string; text: string }> = {
|
|
|
|
|
PENDING: { color: 'warning', text: 'Pending' },
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const BatchOrder: React.FC = () => {
|
|
|
|
|
export const B2BTradeBatchOrder: React.FC = () => {
|
|
|
|
|
const [form] = Form.useForm();
|
|
|
|
|
const [loading, setLoading] = useState(false);
|
|
|
|
|
const [batchOrders, setBatchOrders] = useState<BatchOrder[]>([]);
|
|
|
|
|
const [batchOrders, setBatchOrders] = useState<BatchOrderType[]>([]);
|
|
|
|
|
const [customers, setCustomers] = useState<Customer[]>([]);
|
|
|
|
|
const [orderItems, setOrderItems] = useState<BatchOrderItem[]>([]);
|
|
|
|
|
const [currentStep, setCurrentStep] = useState(0);
|
|
|
|
|
const [createModalVisible, setCreateModalVisible] = useState(false);
|
|
|
|
|
const [detailModalVisible, setDetailModalVisible] = useState(false);
|
|
|
|
|
const [selectedBatch, setSelectedBatch] = useState<BatchOrder | null>(null);
|
|
|
|
|
const [selectedBatch, setSelectedBatch] = useState<BatchOrderType | null>(null);
|
|
|
|
|
const [selectedCustomer, setSelectedCustomer] = useState<Customer | null>(null);
|
|
|
|
|
const [fileList, setFileList] = useState<any[]>([]);
|
|
|
|
|
const [stats, setStats] = useState({
|
|
|
|
|
@@ -103,7 +103,7 @@ export const BatchOrder: React.FC = () => {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const calculateStats = (orders: BatchOrder[]) => {
|
|
|
|
|
const calculateStats = (orders: BatchOrderType[]) => {
|
|
|
|
|
setStats({
|
|
|
|
|
total: orders.length,
|
|
|
|
|
pending: orders.filter((o) => o.status === 'PENDING_REVIEW').length,
|
|
|
|
|
@@ -178,7 +178,7 @@ export const BatchOrder: React.FC = () => {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const handleViewDetail = (batch: BatchOrder) => {
|
|
|
|
|
const handleViewDetail = (batch: BatchOrderType) => {
|
|
|
|
|
setSelectedBatch(batch);
|
|
|
|
|
setDetailModalVisible(true);
|
|
|
|
|
};
|
|
|
|
|
@@ -246,7 +246,7 @@ export const BatchOrder: React.FC = () => {
|
|
|
|
|
},
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
const batchColumns: ColumnsType<BatchOrder> = [
|
|
|
|
|
const batchColumns: ColumnsType<BatchOrderType> = [
|
|
|
|
|
{
|
|
|
|
|
title: 'Batch ID',
|
|
|
|
|
dataIndex: 'batchId',
|
|
|
|
|
@@ -608,4 +608,4 @@ export const BatchOrder: React.FC = () => {
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default BatchOrder;
|
|
|
|
|
export default B2BTradeBatchOrder;
|
|
|
|
|
|