forked from yoone/WEB
1
0
Fork 0

Compare commits

..

10 Commits

Author SHA1 Message Date
黄珑 f030e6c334 销售统计增加了筛选内容 2025-09-12 20:19:54 +08:00
cll 46202d602e fix: 接口参数调整 2025-09-01 14:41:55 +08:00
cll ac948ac0f4 fix: track查询更换后产品 2025-09-01 11:52:27 +08:00
黄珑 c41f0e668e 增加了permission对左侧菜单显示的控制 2025-08-28 18:19:28 +08:00
黄珑 b432b3af17 补充: 高亮样式文件 2025-08-25 16:03:00 +08:00
黄珑 c77020f3d6 Fix: 换货sku初始值显示异常 2025-08-25 16:00:57 +08:00
黄珑 e19b6c3656 订单页,查看详情和创建运单增加高亮 2025-08-25 16:00:57 +08:00
黄珑 68a7b02d21 Fix: 获取运费增加正确提示 2025-08-25 01:41:06 +00:00
cll d54782f742 fix:销售统计 2025-08-23 11:47:10 +08:00
cll c815ab3396 fix:hash build 2025-08-23 09:23:25 +08:00
13 changed files with 266 additions and 154 deletions

1
.gitignore vendored
View File

@ -13,3 +13,4 @@
.swc .swc
/package-lock.json /package-lock.json
/yarn.lock /yarn.lock
*.yaml

View File

@ -6,6 +6,7 @@ const UMI_APP_API_URL = isDev
: 'https://api.yoone.ca'; : 'https://api.yoone.ca';
export default defineConfig({ export default defineConfig({
hash: true,
antd: {}, antd: {},
access: {}, access: {},
model: {}, model: {},
@ -25,7 +26,7 @@ export default defineConfig({
{ {
name: '组织架构', name: '组织架构',
path: '/organiza', path: '/organiza',
access: 'canSeeSuper', access: 'canSeeOrganiza',
routes: [ routes: [
{ {
name: '用户管理', name: '用户管理',
@ -37,6 +38,7 @@ export default defineConfig({
{ {
name: '商品管理', name: '商品管理',
path: '/product', path: '/product',
access: 'canSeeProduct',
routes: [ routes: [
{ {
name: '商品分类', name: '商品分类',
@ -68,6 +70,7 @@ export default defineConfig({
{ {
name: '库存管理', name: '库存管理',
path: '/stock', path: '/stock',
access: 'canSeeStock',
routes: [ routes: [
{ {
name: '库存列表', name: '库存列表',
@ -99,7 +102,7 @@ export default defineConfig({
{ {
name: '订单管理', name: '订单管理',
path: '/order', path: '/order',
access: 'canSeeAdmin', access: 'canSeeOrder',
routes: [ routes: [
{ {
name: '订单列表', name: '订单列表',
@ -116,6 +119,7 @@ export default defineConfig({
{ {
name: '客户管理', name: '客户管理',
path: '/customer', path: '/customer',
access: 'canSeeCustomer',
routes: [ routes: [
{ {
name: '客户列表', name: '客户列表',
@ -127,6 +131,7 @@ export default defineConfig({
{ {
name: '物流管理', name: '物流管理',
path: '/logistics', path: '/logistics',
access: 'canSeeLogistics',
routes: [ routes: [
{ {
name: '服务商', name: '服务商',
@ -148,30 +153,27 @@ export default defineConfig({
{ {
name: '数据统计', name: '数据统计',
path: '/statistics', path: '/statistics',
access: 'canSeeStatistics',
routes: [ routes: [
{ {
name: '销售统计', name: '销售统计',
path: '/statistics/sales', path: '/statistics/sales',
component: './Statistics/Sales', component: './Statistics/Sales',
access: 'canSeeSuper',
}, },
{ {
name: '订单统计', name: '订单统计',
path: '/statistics/order', path: '/statistics/order',
component: './Statistics/Order', component: './Statistics/Order',
access: 'canSeeSuper',
}, },
{ {
name: '订单来源', name: '订单来源',
path: '/statistics/orderSource', path: '/statistics/orderSource',
component: './Statistics/OrderSource', component: './Statistics/OrderSource',
access: 'canSeeSuper',
}, },
{ {
name: '客户统计', name: '客户统计',
path: '/statistics/customer', path: '/statistics/customer',
component: './Statistics/Customer', component: './Statistics/Customer',
access: 'canSeeSuper',
}, },
{ {
name: '库存预测', name: '库存预测',

View File

@ -1,9 +1,22 @@
export default (initialState: any) => { export default (initialState: any) => {
const canSeeSuper = initialState?.user?.isSuper; const isSuper = initialState?.user?.isSuper ?? false;
const canSeeAdmin = const isAdmin = initialState?.user?.Admin ?? false;
initialState?.user?.isSuper || initialState?.user?.isAdmin; const canSeeOrganiza = (isSuper || isAdmin) || (initialState?.user?.permissions?.includes('organiza') ?? false);
const canSeeProduct = (isSuper || isAdmin) || (initialState?.user?.permissions?.includes('product') ?? false);
const canSeeStock = (isSuper || isAdmin) || (initialState?.user?.permissions?.includes('stock') ?? false);
const canSeeOrder = (isSuper || isAdmin) ||
((initialState?.user?.permissions?.includes('order') ?? false) || (initialState?.user?.permissions?.includes('order-10-days') ?? false));
const canSeeCustomer = (isSuper || isAdmin) || (initialState?.user?.permissions?.includes('customer') ?? false);
const canSeeLogistics = (isSuper || isAdmin) || (initialState?.user?.permissions?.includes('logistics') ?? false);
const canSeeStatistics = (isSuper || isAdmin) || (initialState?.user?.permissions?.includes('statistics') ?? false);
return { return {
canSeeSuper, canSeeOrganiza,
canSeeAdmin, canSeeProduct,
canSeeStock,
canSeeOrder,
canSeeCustomer,
canSeeLogistics,
canSeeStatistics,
}; };
}; };

View File

@ -23,7 +23,6 @@ const Page = () => {
try { try {
const { data, success, code, message: msg } = await usercontrollerLogin({...values, deviceId}); const { data, success, code, message: msg } = await usercontrollerLogin({...values, deviceId});
if (success) { if (success) {
message.success('登录成功'); message.success('登录成功');
localStorage.setItem('token', data?.token as string); localStorage.setItem('token', data?.token as string);
const { data: user } = await usercontrollerGetuser(); const { data: user } = await usercontrollerGetuser();

View File

@ -1,6 +1,6 @@
import { logisticscontrollerGetlist, logisticscontrollerGetShipmentLabel, import { logisticscontrollerGetlist, logisticscontrollerGetshipmentlabel,
logisticscontrollerDeleteShipment, logisticscontrollerDeleteshipment,
logisticscontrollerGetShipmentState logisticscontrollerUpdateshipmentstate
} from '@/servers/api/logistics'; } from '@/servers/api/logistics';
import { stockcontrollerGetallstockpoints } from '@/servers/api/stock'; import { stockcontrollerGetallstockpoints } from '@/servers/api/stock';
import { formatUniuniShipmentState } from '@/utils/format'; import { formatUniuniShipmentState } from '@/utils/format';
@ -106,7 +106,7 @@ const ListPage: React.FC = () => {
disabled={isLoading} disabled={isLoading}
onClick={async () => { onClick={async () => {
setIsLoading(true); setIsLoading(true);
const { data } = await logisticscontrollerGetShipmentLabel(record.id); const { data } = await logisticscontrollerGetshipmentlabel(record.id);
const content = data.content; const content = data.content;
printPDF([content]); printPDF([content]);
setIsLoading(false); setIsLoading(false);
@ -120,7 +120,7 @@ const ListPage: React.FC = () => {
disabled={isLoading} disabled={isLoading}
onClick={async () => { onClick={async () => {
setIsLoading(true); setIsLoading(true);
const res = await logisticscontrollerGetShipmentState(record.id); const res = await logisticscontrollerUpdateshipmentstate({shipmentId:record.id});
console.log('res', res); console.log('res', res);
setIsLoading(false); setIsLoading(false);
@ -137,7 +137,7 @@ const ListPage: React.FC = () => {
try { try {
setIsLoading(true); setIsLoading(true);
const { success, message: errMsg } = const { success, message: errMsg } =
await logisticscontrollerDeleteShipment(record.id); await logisticscontrollerDeleteshipment(record.id);
if (!success) { if (!success) {
throw new Error(errMsg); throw new Error(errMsg);
} }

View File

@ -1,14 +1,16 @@
import styles from '../../../style/order-list.css';
import InternationalPhoneInput from '@/components/InternationalPhoneInput'; import InternationalPhoneInput from '@/components/InternationalPhoneInput';
import { HistoryOrder } from '@/pages/Statistics/Order'; import { HistoryOrder } from '@/pages/Statistics/Order';
import { ORDER_STATUS_ENUM } from '@/constants'; import { ORDER_STATUS_ENUM } from '@/constants';
import { import {
logisticscontrollerCreateshipment, logisticscontrollerCreateshipment,
logisticscontrollerGetShipmentFee, logisticscontrollerGetshipmentfee,
logisticscontrollerDelshipment, logisticscontrollerDelshipment,
logisticscontrollerGetpaymentmethods, logisticscontrollerGetpaymentmethods,
logisticscontrollerGetratelist, logisticscontrollerGetratelist,
logisticscontrollerGetshippingaddresslist, logisticscontrollerGetshippingaddresslist,
logisticscontrollerGetShipmentLabel, // logisticscontrollerGetshipmentlabel,
} from '@/servers/api/logistics'; } from '@/servers/api/logistics';
import { import {
ordercontrollerCancelorder, ordercontrollerCancelorder,
@ -22,7 +24,7 @@ import {
ordercontrollerRefundorder, ordercontrollerRefundorder,
ordercontrollerSyncorder, ordercontrollerSyncorder,
ordercontrollerSyncorderbyid, ordercontrollerSyncorderbyid,
ordercontrollerUpdateOrderItems, ordercontrollerUpdateorderitems,
} from '@/servers/api/order'; } from '@/servers/api/order';
import { productcontrollerSearchproducts } from '@/servers/api/product'; import { productcontrollerSearchproducts } from '@/servers/api/product';
import { sitecontrollerAll } from '@/servers/api/site'; import { sitecontrollerAll } from '@/servers/api/site';
@ -84,6 +86,7 @@ const ListPage: React.FC = () => {
const actionRef = useRef<ActionType>(); const actionRef = useRef<ActionType>();
const [activeKey, setActiveKey] = useState<string>('all'); const [activeKey, setActiveKey] = useState<string>('all');
const [count, setCount] = useState<any[]>([]); const [count, setCount] = useState<any[]>([]);
const [activeLine, setActiveLine] = useState<number>(-1);
const tabs: TabsProps['items'] = useMemo(() => { const tabs: TabsProps['items'] = useMemo(() => {
const total = count.reduce((acc, cur) => acc + Number(cur.count), 0); const total = count.reduce((acc, cur) => acc + Number(cur.count), 0);
const tabs = [ const tabs = [
@ -265,7 +268,7 @@ const ListPage: React.FC = () => {
record.orderStatus, record.orderStatus,
) ? ( ) ? (
<> <>
<Shipping id={record.id as number} tableRef={actionRef} /> <Shipping id={record.id as number} tableRef={actionRef} setActiveLine={setActiveLine}/>
<Divider type="vertical" /> <Divider type="vertical" />
</> </>
) : ( ) : (
@ -276,6 +279,7 @@ const ListPage: React.FC = () => {
record={record} record={record}
tableRef={actionRef} tableRef={actionRef}
orderId={record.id as number} orderId={record.id as number}
setActiveLine={setActiveLine}
/> />
<Divider type="vertical" /> <Divider type="vertical" />
<Dropdown <Dropdown
@ -393,6 +397,9 @@ const ListPage: React.FC = () => {
scroll={{ x: 'max-content' }} scroll={{ x: 'max-content' }}
actionRef={actionRef} actionRef={actionRef}
rowKey="id" rowKey="id"
rowClassName={(record) => {
return record.id === activeLine ? styles['selected-line-order-protable']: '';
}}
toolBarRender={() => [ toolBarRender={() => [
<CreateOrder tableRef={actionRef} />, <CreateOrder tableRef={actionRef} />,
<SyncForm tableRef={actionRef} />, <SyncForm tableRef={actionRef} />,
@ -480,7 +487,8 @@ const Detail: React.FC<{
tableRef: React.MutableRefObject<ActionType | undefined>; tableRef: React.MutableRefObject<ActionType | undefined>;
orderId: number; orderId: number;
record: API.Order; record: API.Order;
}> = ({ tableRef, orderId, record }) => { setActiveLine: Function
}> = ({ tableRef, orderId, record, setActiveLine }) => {
const [visiable, setVisiable] = useState(false); const [visiable, setVisiable] = useState(false);
const { message } = App.useApp(); const { message } = App.useApp();
const ref = useRef<ActionType>(); const ref = useRef<ActionType>();
@ -491,6 +499,7 @@ const Detail: React.FC<{
orderId, orderId,
}); });
if (!success || !data) return { data: {} }; if (!success || !data) return { data: {} };
// 合并订单中相同的sku只显示一次记录总数
data.sales = data.sales?.reduce( data.sales = data.sales?.reduce(
(acc: API.OrderSale[], cur: API.OrderSale) => { (acc: API.OrderSale[], cur: API.OrderSale) => {
let idx = acc.findIndex((v: any) => v.productId === cur.productId); let idx = acc.findIndex((v: any) => v.productId === cur.productId);
@ -510,7 +519,10 @@ const Detail: React.FC<{
return ( return (
<> <>
<Button key="detail" type="primary" onClick={() => setVisiable(true)}> <Button key="detail" type="primary" onClick={() => {
setVisiable(true);
setActiveLine(record.id);
}}>
<FileDoneOutlined /> <FileDoneOutlined />
</Button> </Button>
@ -1049,7 +1061,8 @@ const Shipping: React.FC<{
tableRef?: React.MutableRefObject<ActionType | undefined>; tableRef?: React.MutableRefObject<ActionType | undefined>;
descRef?: React.MutableRefObject<ActionType | undefined>; descRef?: React.MutableRefObject<ActionType | undefined>;
reShipping?: boolean; reShipping?: boolean;
}> = ({ id, tableRef, descRef, reShipping = false }) => { setActiveLine: Function;
}> = ({ id, tableRef, descRef, reShipping = false, setActiveLine }) => {
const [options, setOptions] = useState<any[]>([]); const [options, setOptions] = useState<any[]>([]);
const formRef = useRef<ProFormInstance>(); const formRef = useRef<ProFormInstance>();
@ -1071,7 +1084,11 @@ const Shipping: React.FC<{
}, },
}} }}
trigger={ trigger={
<Button type="primary"> <Button type="primary"
onClick={() => {
setActiveLine(id);
}}
>
<CodeSandboxOutlined /> <CodeSandboxOutlined />
</Button> </Button>
@ -1785,13 +1802,32 @@ const Shipping: React.FC<{
details.destination.phone_number.phone; details.destination.phone_number.phone;
details.origin.phone_number.number = details.origin.phone_number.phone; details.origin.phone_number.number = details.origin.phone_number.phone;
const res = const res =
await logisticscontrollerGetShipmentFee( await logisticscontrollerGetshipmentfee(
{ {
details, stockPointId: data.stockPointId,
...data
sender: details.origin.contact_name,
startPhone: details.origin.phone_number,
startPostalCode: details.origin.address.postal_code.replace(/\s/g, ''),
pickupAddress: details.origin.address.address_line_1,
shipperCountryCode: details.origin.address.country,
receiver: details.destination.contact_name,
city: details.destination.address.city,
province: details.destination.address.region,
country: details.destination.address.country,
postalCode: details.destination.address.postal_code.replace(/\s/g, ''),
deliveryAddress: details.destination.address.address_line_1,
receiverPhone: details.destination.phone_number.number,
receiverEmail: details.destination.email_addresses,
length: details.packaging_properties.packages[0].measurements.cuboid.l,
width: details.packaging_properties.packages[0].measurements.cuboid.w,
height: details.packaging_properties.packages[0].measurements.cuboid.h,
dimensionUom: details.packaging_properties.packages[0].measurements.cuboid.unit,
weight: details.packaging_properties.packages[0].measurements.weight.value,
weightUom: details.packaging_properties.packages[0].measurements.weight.unit,
}, },
); );
if (!res?.success) throw new Error(res?.errMsg); if (!res?.success) throw new Error(res?.message);
const fee = res.data; const fee = res.data;
setShipmentFee(fee); setShipmentFee(fee);
details.origin.email_addresses = originEmail; details.origin.email_addresses = originEmail;
@ -1800,6 +1836,7 @@ const Shipping: React.FC<{
...details, ...details,
shipmentFee: fee shipmentFee: fee
}); });
message.success('获取运费成功');
} catch (error) { } catch (error) {
message.error(error?.message || '获取运费失败'); message.error(error?.message || '获取运费失败');
} }
@ -1823,7 +1860,6 @@ const SalesChange: React.FC<{
detailRef?: React.MutableRefObject<ActionType | undefined>; detailRef?: React.MutableRefObject<ActionType | undefined>;
reShipping?: boolean; reShipping?: boolean;
}> = ({ id, detailRef }) => { }> = ({ id, detailRef }) => {
const [options, setOptions] = useState<any[]>([]);
const formRef = useRef<ProFormInstance>(); const formRef = useRef<ProFormInstance>();
@ -1872,7 +1908,7 @@ const SalesChange: React.FC<{
}} }}
onFinish={async (formData: any) => { onFinish={async (formData: any) => {
const { sales } = formData; const { sales } = formData;
const res = await ordercontrollerUpdateOrderItems(id, sales); const res = await ordercontrollerUpdateorderitems({orderId:id}, sales);
if (!res.success) { if (!res.success) {
message.error(`更新货物信息失败: ${res.message}`); message.error(`更新货物信息失败: ${res.message}`);
return false; return false;
@ -1888,9 +1924,8 @@ const SalesChange: React.FC<{
> >
<ProForm.Group> <ProForm.Group>
<ProFormSelect <ProFormSelect
params={{ options }} params={{ }}
request={async ({ keyWords, options }) => { request={async ({ keyWords }) => {
if (!keyWords || keyWords.length < 2) return options;
try { try {
const { data } = await productcontrollerSearchproducts({ const { data } = await productcontrollerSearchproducts({
name: keyWords, name: keyWords,
@ -1901,10 +1936,10 @@ const SalesChange: React.FC<{
label: `${item.name} - ${item.nameCn}`, label: `${item.name} - ${item.nameCn}`,
value: item?.sku, value: item?.sku,
}; };
}) || options })
); );
} catch (error) { } catch (error) {
return options; return [];
} }
}} }}
name="sku" name="sku"

View File

@ -35,6 +35,12 @@ const ListPage: React.FC = () => {
], ],
}, },
}, },
{
title: '排除套装',
dataIndex: 'exceptPackage',
valueType: 'switch',
hideInTable: true,
},
{ {
title: '产品名称', title: '产品名称',
dataIndex: 'name', dataIndex: 'name',
@ -52,12 +58,12 @@ const ListPage: React.FC = () => {
}, },
hideInTable: true, hideInTable: true,
}, },
{ // {
title: '分类', // title: '分类',
dataIndex: 'categoryName', // dataIndex: 'categoryName',
hideInSearch: true, // hideInSearch: true,
hideInTable: isSource, // hideInTable: isSource,
}, // },
{ {
title: '数量', title: '数量',
dataIndex: 'totalQuantity', dataIndex: 'totalQuantity',

View File

@ -525,6 +525,7 @@ const DetailForm: React.FC<{
id: number; id: number;
}; };
}> = ({ tableRef, values }) => { }> = ({ tableRef, values }) => {
const detailsActionRef = useRef<ActionType>();
const { message } = App.useApp(); const { message } = App.useApp();
const [form] = Form.useForm(); const [form] = Form.useForm();
const initialValues = { const initialValues = {

View File

@ -1,6 +1,6 @@
import { import {
logisticscontrollerGetlistbytrackingid, logisticscontrollerGetorderlist,
logisticscontrollerGettrackingnumber, logisticscontrollerGetlistbyorderid
} from '@/servers/api/logistics'; } from '@/servers/api/logistics';
import { SearchOutlined } from '@ant-design/icons'; import { SearchOutlined } from '@ant-design/icons';
import { PageContainer, ProFormSelect } from '@ant-design/pro-components'; import { PageContainer, ProFormSelect } from '@ant-design/pro-components';
@ -8,7 +8,7 @@ import { useState } from 'react';
const TrackPage: React.FC = () => { const TrackPage: React.FC = () => {
const [id, setId] = useState<string>(); const [id, setId] = useState<string>();
const [data, setData] = useState([]); const [data, setData] = useState({});
return ( return (
<PageContainer> <PageContainer>
<ProFormSelect <ProFormSelect
@ -17,7 +17,7 @@ const TrackPage: React.FC = () => {
request={async ({ keyWords }) => { request={async ({ keyWords }) => {
if (!keyWords || keyWords.length < 3) return []; if (!keyWords || keyWords.length < 3) return [];
const { data: trackList } = const { data: trackList } =
await logisticscontrollerGettrackingnumber({ number: keyWords }); await logisticscontrollerGetorderlist({ number: keyWords });
return trackList?.map((v) => { return trackList?.map((v) => {
return { return {
label: v.siteName + ' ' + v.externalOrderId, label: v.siteName + ' ' + v.externalOrderId,
@ -29,7 +29,9 @@ const TrackPage: React.FC = () => {
prefix: '订单号', prefix: '订单号',
onChange(value: string) { onChange(value: string) {
setId(value); setId(value);
setData({})
}, },
placeholder: '请输入订单号',
allowClear: false, allowClear: false,
suffixIcon: ( suffixIcon: (
<SearchOutlined <SearchOutlined
@ -37,8 +39,8 @@ const TrackPage: React.FC = () => {
if (!id) { if (!id) {
return; return;
} }
const { data } = await logisticscontrollerGetlistbytrackingid({ const { data } = await logisticscontrollerGetlistbyorderid({
shipment_id: id, id,
}); });
setData(data); setData(data);
}} }}
@ -46,22 +48,32 @@ const TrackPage: React.FC = () => {
), ),
}} }}
/> />
<div> {
{data.map((item) => ( data?.item ?
<div> <div>
<h4> <div>
{item.name} * {item.quantity} <h4></h4>
</h4> {data?.item?.map((item) => (
<div style={{ paddingLeft: 20, color: 'blue' }}> <div style={{ paddingLeft: 20, color: 'blue' }}>
{item.constitution.map((v) => ( {item.name} * {item.quantity}
<div>
{v.name} * {v.quantity * item.quantity}
</div> </div>
))} ))}
</div> </div>
</div> </div> : <></>
))} }
</div> {
data?.saleItem ?
<div>
<div>
<h4></h4>
{data?.saleItem?.map((item) => (
<div style={{ paddingLeft: 20, color: 'blue' }}>
{item.name} * {item.quantity}
</div>
))}
</div>
</div> : <></>
}
</PageContainer> </PageContainer>
); );
}; };

View File

@ -21,61 +21,6 @@ export async function logisticscontrollerCreateshipment(
}); });
} }
/** 此处后端没有提供注释 POST /logistics/getShipmentFee */
export async function logisticscontrollerGetShipmentFee(
body: API.ShipmentBookDTO,
options?: { [key: string]: any },
) {
return request<API.BooleanRes>(`/logistics/getShipmentFee`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
});
}
/** 此处后端没有提供注释 POST /logistics/getShipmentLabel/${param0} */
export async function logisticscontrollerGetShipmentLabel(
shipmentId: number
) {
return request<API.BooleanRes>(`/logistics/getShipmentLabel/${shipmentId}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
});
}
/** 此处后端没有提供注释 POST /logistics/updateState/${param0}**/
export async function logisticscontrollerGetShipmentState(
shipmentId: number
) {
return request<API.BooleanRes>(`/logistics/updateState/${shipmentId}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
})
}
/** 此处后端没有提供注释 DEL /logistics/deleteShipment/${param0} */
export async function logisticscontrollerDeleteShipment(
shipmentId: number
) {
return request<API.BooleanRes>(`/logistics/deleteShipment/${shipmentId}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
}
});
}
/** 此处后端没有提供注释 POST /logistics/createShippingAddress */ /** 此处后端没有提供注释 POST /logistics/createShippingAddress */
export async function logisticscontrollerCreateshippingaddress( export async function logisticscontrollerCreateshippingaddress(
body: API.ShippingAddress, body: API.ShippingAddress,
@ -91,6 +36,20 @@ export async function logisticscontrollerCreateshippingaddress(
}); });
} }
/** 此处后端没有提供注释 POST /logistics/deleteShipment/${param0} */
export async function logisticscontrollerDeleteshipment(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.logisticscontrollerDeleteshipmentParams,
options?: { [key: string]: any },
) {
const { id: param0, ...queryParams } = params;
return request<API.BooleanRes>(`/logistics/deleteShipment/${param0}`, {
method: 'POST',
params: { ...queryParams },
...(options || {}),
});
}
/** 此处后端没有提供注释 DELETE /logistics/delShippingAddress/${param0} */ /** 此处后端没有提供注释 DELETE /logistics/delShippingAddress/${param0} */
export async function logisticscontrollerDelshippingaddress( export async function logisticscontrollerDelshippingaddress(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象) // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
@ -105,13 +64,28 @@ export async function logisticscontrollerDelshippingaddress(
}); });
} }
/** 此处后端没有提供注释 POST /logistics/getListByTrackingId */ /** 此处后端没有提供注释 POST /logistics/getListByOrderId */
export async function logisticscontrollerGetlistbytrackingid( export async function logisticscontrollerGetlistbyorderid(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象) // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.logisticscontrollerGetlistbytrackingidParams, params: API.logisticscontrollerGetlistbyorderidParams,
options?: { [key: string]: any }, options?: { [key: string]: any },
) { ) {
return request<any>('/logistics/getListByTrackingId', { return request<any>('/logistics/getListByOrderId', {
method: 'POST',
params: {
...params,
},
...(options || {}),
});
}
/** 此处后端没有提供注释 POST /logistics/getOrderList */
export async function logisticscontrollerGetorderlist(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.logisticscontrollerGetorderlistParams,
options?: { [key: string]: any },
) {
return request<any>('/logistics/getOrderList', {
method: 'POST', method: 'POST',
params: { params: {
...params, ...params,
@ -160,6 +134,35 @@ export async function logisticscontrollerGetservicelist(
}); });
} }
/** 此处后端没有提供注释 POST /logistics/getShipmentFee */
export async function logisticscontrollerGetshipmentfee(
body: API.ShipmentFeeBookDTO,
options?: { [key: string]: any },
) {
return request<API.BooleanRes>('/logistics/getShipmentFee', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
data: body,
...(options || {}),
});
}
/** 此处后端没有提供注释 POST /logistics/getShipmentLabel/${param0} */
export async function logisticscontrollerGetshipmentlabel(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.logisticscontrollerGetshipmentlabelParams,
options?: { [key: string]: any },
) {
const { shipmentId: param0, ...queryParams } = params;
return request<API.BooleanRes>(`/logistics/getShipmentLabel/${param0}`, {
method: 'POST',
params: { ...queryParams },
...(options || {}),
});
}
/** 此处后端没有提供注释 GET /logistics/getShippingAddressList */ /** 此处后端没有提供注释 GET /logistics/getShippingAddressList */
export async function logisticscontrollerGetshippingaddresslist(options?: { export async function logisticscontrollerGetshippingaddresslist(options?: {
[key: string]: any; [key: string]: any;
@ -173,21 +176,6 @@ export async function logisticscontrollerGetshippingaddresslist(options?: {
); );
} }
/** 此处后端没有提供注释 POST /logistics/getTrackingNumber */
export async function logisticscontrollerGettrackingnumber(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.logisticscontrollerGettrackingnumberParams,
options?: { [key: string]: any },
) {
return request<any>('/logistics/getTrackingNumber', {
method: 'POST',
params: {
...params,
},
...(options || {}),
});
}
/** 此处后端没有提供注释 GET /logistics/list */ /** 此处后端没有提供注释 GET /logistics/list */
export async function logisticscontrollerGetlist(options?: { export async function logisticscontrollerGetlist(options?: {
[key: string]: any; [key: string]: any;
@ -255,3 +243,17 @@ export async function logisticscontrollerUpdateshippingaddress(
...(options || {}), ...(options || {}),
}); });
} }
/** 此处后端没有提供注释 POST /logistics/updateState/${param0} */
export async function logisticscontrollerUpdateshipmentstate(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.logisticscontrollerUpdateshipmentstateParams,
options?: { [key: string]: any },
) {
const { shipmentId: param0, ...queryParams } = params;
return request<any>(`/logistics/updateState/${param0}`, {
method: 'POST',
params: { ...queryParams },
...(options || {}),
});
}

View File

@ -210,16 +210,19 @@ export async function ordercontrollerSyncorderbyid(
} }
/** 此处后端没有提供注释 POST /order/updateOrderItems/${param0} */ /** 此处后端没有提供注释 POST /order/updateOrderItems/${param0} */
export async function ordercontrollerUpdateOrderItems( export async function ordercontrollerUpdateorderitems(
orderId: number, // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
body: API.ShipmentSkuDTO, params: API.ordercontrollerUpdateorderitemsParams,
body: Record<string, any>,
options?: { [key: string]: any }, options?: { [key: string]: any },
) { ) {
return request<API.BooleanRes>(`/order/updateOrderItems/${orderId}`, { const { orderId: param0, ...queryParams } = params;
return request<API.BooleanRes>(`/order/updateOrderItems/${param0}`, {
method: 'POST', method: 'POST',
headers: { headers: {
'Content-Type': 'application/json', 'Content-Type': 'text/plain',
}, },
params: { ...queryParams },
data: body, data: body,
...(options || {}), ...(options || {}),
}); });

View File

@ -168,15 +168,19 @@ declare namespace API {
}; };
type logisticscontrollerDelshipmentParams = { type logisticscontrollerDelshipmentParams = {
id: string; id: number;
}; };
type logisticscontrollerDelshippingaddressParams = { type logisticscontrollerDelshippingaddressParams = {
id: number; id: number;
}; };
type logisticscontrollerGetlistbytrackingidParams = { type logisticscontrollerGetlistbyorderidParams = {
shipment_id?: string; id?: number;
};
type logisticscontrollerGetorderlistParams = {
number?: string;
}; };
type logisticscontrollerGetservicelistParams = { type logisticscontrollerGetservicelistParams = {
@ -189,11 +193,11 @@ declare namespace API {
}; };
type logisticscontrollerGetshipmentlabelParams = { type logisticscontrollerGetshipmentlabelParams = {
shipmentId: string; shipmentId: number;
}; };
type logisticscontrollerGettrackingnumberParams = { type logisticscontrollerUpdateshipmentstateParams = {
number?: string; shipmentId: number;
}; };
type logisticscontrollerUpdateshippingaddressParams = { type logisticscontrollerUpdateshippingaddressParams = {
@ -216,7 +220,7 @@ declare namespace API {
externalOrderId?: string; externalOrderId?: string;
status?: any; status?: any;
orderStatus?: any; orderStatus?: any;
shipmentId?: string; shipmentId?: number;
currency?: string; currency?: string;
currency_symbol?: string; currency_symbol?: string;
prices_include_tax?: boolean; prices_include_tax?: boolean;
@ -341,13 +345,17 @@ declare namespace API {
siteId: string; siteId: string;
}; };
type ordercontrollerUpdateorderitemsParams = {
orderId: number;
};
type OrderDetail = { type OrderDetail = {
id?: number; id?: number;
siteId?: string; siteId?: string;
externalOrderId?: string; externalOrderId?: string;
status?: any; status?: any;
orderStatus?: any; orderStatus?: any;
shipmentId?: string; shipmentId?: number;
currency?: string; currency?: string;
currency_symbol?: string; currency_symbol?: string;
prices_include_tax?: boolean; prices_include_tax?: boolean;
@ -493,7 +501,11 @@ declare namespace API {
/** sku */ /** sku */
sku?: string; sku?: string;
quantity?: number; quantity?: number;
isPackage?: boolean; exceptPackage?: boolean;
isYoone?: boolean;
isZex?: boolean;
size?: number;
isYooneNew?: boolean;
/** 创建时间 */ /** 创建时间 */
createdAt?: string; createdAt?: string;
/** 更新时间 */ /** 更新时间 */
@ -510,7 +522,11 @@ declare namespace API {
/** sku */ /** sku */
sku?: string; sku?: string;
quantity?: number; quantity?: number;
isPackage?: boolean; exceptPackage?: boolean;
isYoone?: boolean;
isZex?: boolean;
size?: number;
isYooneNew?: boolean;
/** 创建时间 */ /** 创建时间 */
createdAt?: string; createdAt?: string;
/** 更新时间 */ /** 更新时间 */
@ -993,9 +1009,28 @@ declare namespace API {
orderIds?: number[]; orderIds?: number[];
}; };
type ShipmentSkuDTO = { type ShipmentFeeBookDTO = {
sales?: OrderSale[]; stockPointId?: number;
} sender?: string;
startPhone?: string;
startPostalCode?: string;
pickupAddress?: string;
shipperCountryCode?: string;
receiver?: string;
city?: string;
province?: string;
country?: string;
postalCode?: string;
deliveryAddress?: string;
receiverPhone?: string;
receiverEmail?: string;
length?: number;
width?: number;
height?: number;
dimensionUom?: string;
weight?: number;
weightUom?: string;
};
type ShippingAddress = { type ShippingAddress = {
id?: number; id?: number;

3
src/style/order-list.css Normal file
View File

@ -0,0 +1,3 @@
.selected-line-order-protable {
background-color: #add8e6;
}