Compare commits
No commits in common. "2467a0c3b2a50d5bc4b2f0ba8deff15808e771bd" and "e23b0b3e3913f289bfd90a3f143c65b6012ea403" have entirely different histories.
2467a0c3b2
...
e23b0b3e39
|
|
@ -1,92 +0,0 @@
|
|||
import { useState, useEffect } from 'react';
|
||||
import { sitecontrollerAll } from '@/servers/api/site';
|
||||
|
||||
// 站点数据的类型定义
|
||||
interface Site {
|
||||
id: number;
|
||||
name: string;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
// 自定义 Hook:管理站点数据
|
||||
const useSites = () => {
|
||||
// 添加站点数据状态
|
||||
const [sites, setSites] = useState<Site[]>([]);
|
||||
|
||||
// 添加加载状态
|
||||
const [loading, setLoading] = useState<boolean>(false);
|
||||
|
||||
// 添加错误状态
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
|
||||
// 获取站点数据
|
||||
const fetchSites = async () => {
|
||||
// 设置加载状态为 true
|
||||
setLoading(true);
|
||||
// 清空之前的错误信息
|
||||
setError(null);
|
||||
try {
|
||||
// 调用 API 获取所有站点数据
|
||||
const { data, success } = await sitecontrollerAll();
|
||||
// 判断请求是否成功
|
||||
if (success) {
|
||||
// 将站点数据保存到状态中
|
||||
setSites(data || []);
|
||||
} else {
|
||||
// 如果请求失败,设置错误信息
|
||||
setError('获取站点数据失败');
|
||||
}
|
||||
} catch (error) {
|
||||
// 捕获异常并打印错误日志
|
||||
console.error('获取站点数据失败:', error);
|
||||
// 设置错误信息
|
||||
setError('获取站点数据时发生错误');
|
||||
} finally {
|
||||
// 无论成功与否,都将加载状态设置为 false
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
|
||||
// 根据站点ID获取站点名称
|
||||
const getSiteName = (siteId: number | undefined | null) => {
|
||||
// 如果站点ID不存在,返回默认值
|
||||
if (!siteId) return '-';
|
||||
// 如果站点ID是字符串类型,直接返回
|
||||
if (typeof siteId === 'string') {
|
||||
return siteId;
|
||||
}
|
||||
// 在站点列表中查找对应的站点
|
||||
const site = sites.find((s) => s.id === siteId);
|
||||
// 如果找到站点,返回站点名称;否则返回站点ID的字符串形式
|
||||
return site ? site.name : String(siteId);
|
||||
};
|
||||
|
||||
// 根据站点ID获取站点对象
|
||||
const getSiteById = (siteId: number | undefined | null) => {
|
||||
// 如果站点ID不存在,返回 null
|
||||
if (!siteId) return null;
|
||||
// 在站点列表中查找对应的站点
|
||||
const site = sites.find((s) => s.id === siteId);
|
||||
// 返回找到的站点对象,如果找不到则返回 null
|
||||
return site || null;
|
||||
};
|
||||
|
||||
// 组件加载时获取站点数据
|
||||
useEffect(() => {
|
||||
// 调用获取站点数据的函数
|
||||
fetchSites();
|
||||
}, []); // 空依赖数组表示只在组件挂载时执行一次
|
||||
|
||||
// 返回站点数据和相关方法
|
||||
return {
|
||||
sites, // 站点数据列表
|
||||
loading, // 加载状态
|
||||
error, // 错误信息
|
||||
fetchSites, // 重新获取站点数据的方法
|
||||
getSiteName, // 根据ID获取站点名称的方法
|
||||
getSiteById, // 根据ID获取站点对象的方法
|
||||
};
|
||||
};
|
||||
|
||||
// 导出 useSites Hook
|
||||
export default useSites;
|
||||
|
|
@ -115,7 +115,34 @@ const CustomerList: React.FC = () => {
|
|||
const actionRef = useRef<ActionType>();
|
||||
const { message } = App.useApp();
|
||||
const [syncModalVisible, setSyncModalVisible] = useState(false);
|
||||
const [sites, setSites] = useState<any[]>([]); // 添加站点数据状态
|
||||
|
||||
// 获取站点数据
|
||||
const fetchSites = async () => {
|
||||
try {
|
||||
const { data, success } = await sitecontrollerAll();
|
||||
if (success) {
|
||||
setSites(data || []);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取站点数据失败:', error);
|
||||
}
|
||||
};
|
||||
|
||||
// 根据站点ID获取站点名称
|
||||
const getSiteName = (siteId: number | undefined | null) => {
|
||||
if (!siteId) return '-';
|
||||
if (typeof siteId === 'string') {
|
||||
return siteId;
|
||||
}
|
||||
const site = sites.find((s) => s.id === siteId);
|
||||
return site ? site.name : String(siteId);
|
||||
};
|
||||
|
||||
// 组件加载时获取站点数据
|
||||
useEffect(() => {
|
||||
fetchSites();
|
||||
}, []);
|
||||
|
||||
const columns: ProColumns<API.GetCustomerDTO>[] = [
|
||||
{
|
||||
|
|
@ -178,7 +205,7 @@ const CustomerList: React.FC = () => {
|
|||
{
|
||||
title: '用户名',
|
||||
dataIndex: 'username',
|
||||
copyable: true,
|
||||
hideInSearch: true,
|
||||
sorter: true,
|
||||
},
|
||||
{
|
||||
|
|
@ -196,7 +223,6 @@ const CustomerList: React.FC = () => {
|
|||
title: '账单地址',
|
||||
dataIndex: 'billing',
|
||||
hideInSearch: true,
|
||||
|
||||
width: 200,
|
||||
render: (billing) => <AddressCell address={billing} title="账单地址" />,
|
||||
},
|
||||
|
|
@ -210,6 +236,7 @@ const CustomerList: React.FC = () => {
|
|||
{
|
||||
title: '评分',
|
||||
dataIndex: 'rate',
|
||||
width: 120,
|
||||
hideInSearch: true,
|
||||
sorter: true,
|
||||
render: (_, record) => {
|
||||
|
|
@ -316,7 +343,6 @@ const CustomerList: React.FC = () => {
|
|||
scroll={{ x: 'max-content' }}
|
||||
headerTitle="查询表格"
|
||||
actionRef={actionRef}
|
||||
columns={columns}
|
||||
rowKey="id"
|
||||
request={async (params, sorter,filter) => {
|
||||
console.log('custoemr request',params, sorter,filter)
|
||||
|
|
@ -344,7 +370,7 @@ const CustomerList: React.FC = () => {
|
|||
success: true,
|
||||
};
|
||||
}}
|
||||
|
||||
columns={columns}
|
||||
search={{
|
||||
labelWidth: 'auto',
|
||||
span: 6,
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ const ListPage: React.FC = () => {
|
|||
{
|
||||
title: '账单地址',
|
||||
dataIndex: 'billing',
|
||||
render: (_, record) => JSON.stringify(record?.billing || record?.shipping),
|
||||
render: (_, record) => record?.billing.state || record?.shipping.state,
|
||||
},
|
||||
{
|
||||
title: '标签',
|
||||
|
|
|
|||
|
|
@ -189,20 +189,11 @@ const ListPage: React.FC = () => {
|
|||
dataIndex: 'siteId',
|
||||
valueType: 'select',
|
||||
request: async () => {
|
||||
try {
|
||||
const result = await sitecontrollerAll();
|
||||
const {success, data}= result
|
||||
if (success && data) {
|
||||
return data.map((site: any) => ({
|
||||
label: site.name,
|
||||
value: site.id,
|
||||
const { data = [] } = await sitecontrollerAll();
|
||||
return data.map((item) => ({
|
||||
label: item.name,
|
||||
value: item.id,
|
||||
}));
|
||||
}
|
||||
return [];
|
||||
} catch (error) {
|
||||
console.error('获取站点列表失败:', error);
|
||||
return [];
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -492,12 +492,9 @@ const List: React.FC = () => {
|
|||
sortField = field;
|
||||
sortOrder = sort[field];
|
||||
}
|
||||
const {current,pageSize,...where} = params
|
||||
console.log(`params`,params)
|
||||
|
||||
const { data, success } = await productcontrollerGetproductlist({
|
||||
where,
|
||||
page: current || 1,
|
||||
per_page: pageSize || 10,
|
||||
...params,
|
||||
sortField,
|
||||
sortOrder,
|
||||
} as any);
|
||||
|
|
@ -508,17 +505,17 @@ const List: React.FC = () => {
|
|||
};
|
||||
}}
|
||||
columns={columns}
|
||||
// expandable={{
|
||||
// expandedRowRender: (record) => (
|
||||
// <SiteProductInfo
|
||||
// skus={(record.siteSkus as string[]) || []}
|
||||
// record={record}
|
||||
// parentTableRef={actionRef}
|
||||
// />
|
||||
// ),
|
||||
// rowExpandable: (record) =>
|
||||
// !!(record.siteSkus && record.siteSkus.length > 0),
|
||||
// }}
|
||||
expandable={{
|
||||
expandedRowRender: (record) => (
|
||||
<SiteProductInfo
|
||||
skus={(record.siteSkus as string[]) || []}
|
||||
record={record}
|
||||
parentTableRef={actionRef}
|
||||
/>
|
||||
),
|
||||
rowExpandable: (record) =>
|
||||
!!(record.siteSkus && record.siteSkus.length > 0),
|
||||
}}
|
||||
editable={{
|
||||
type: 'single',
|
||||
onSave: async (key, record, originRow) => {
|
||||
|
|
|
|||
|
|
@ -62,10 +62,11 @@ const OrdersPage: React.FC = () => {
|
|||
return [{ key: 'all', label: `全部(${total})` }, ...tabs];
|
||||
}, [count]);
|
||||
|
||||
const columns: ProColumns<API.UnifiedOrderDTO>[] = [
|
||||
const columns: ProColumns<API.Order>[] = [
|
||||
{
|
||||
title: '订单号',
|
||||
dataIndex: 'id',
|
||||
hideInSearch: true,
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
|
|
@ -96,6 +97,7 @@ const OrdersPage: React.FC = () => {
|
|||
{
|
||||
title: '客户姓名',
|
||||
dataIndex: 'customer_name',
|
||||
hideInSearch: true,
|
||||
},
|
||||
{
|
||||
title: '商品',
|
||||
|
|
@ -127,6 +129,7 @@ const OrdersPage: React.FC = () => {
|
|||
},
|
||||
{
|
||||
title: '联系电话',
|
||||
hideInSearch: true,
|
||||
render: (_, record) => record.shipping?.phone || record.billing?.phone,
|
||||
},
|
||||
{
|
||||
|
|
@ -316,8 +319,6 @@ const OrdersPage: React.FC = () => {
|
|||
setSelectedRowKeys={setSelectedRowKeys}
|
||||
siteId={siteId}
|
||||
/>,
|
||||
<Button disabled>批量发货</Button>
|
||||
,
|
||||
<Button
|
||||
title="批量删除"
|
||||
danger
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@ declare namespace API {
|
|||
/** 站点ID */
|
||||
site_id?: number;
|
||||
/** 原始ID */
|
||||
origin_id?: string;
|
||||
origin_id?: number;
|
||||
/** 邮箱 */
|
||||
email?: string;
|
||||
/** 名字 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue