Feature: 增加上下架功能

This commit is contained in:
黄珑 2025-09-16 11:39:57 +08:00
parent 35c26c07c4
commit 2265bae239
4 changed files with 91 additions and 8 deletions

View File

@ -9,23 +9,23 @@ export const PRODUCT_STATUS_ENUM: ProSchemaValueEnumObj = {
},
draft: {
text: '草稿',
status: 'default',
status: 'draft',
},
pending: {
text: '待审核',
status: 'warning',
status: 'pending',
},
private: {
text: '私有',
status: 'warning',
status: 'private',
},
trash: {
text: '已删除',
status: 'error',
},
'auto-draft': {
text: '字段草稿',
status: 'default',
text: '自动草稿',
status: 'auto-draft',
},
future: {
text: '定时发布',
@ -33,7 +33,7 @@ export const PRODUCT_STATUS_ENUM: ProSchemaValueEnumObj = {
},
inherit: {
text: '继承状态',
status: 'default',
status: 'inherit',
},
};

View File

@ -10,6 +10,7 @@ import {
wpproductcontrollerSyncproducts,
wpproductcontrollerUpdateproduct,
wpproductcontrollerUpdatevariation,
wpproductcontrollerUpdatewpproductstate,
} from '@/servers/api/wpProduct';
import { EditOutlined } from '@ant-design/icons';
import {
@ -86,6 +87,7 @@ const List: React.FC = () => {
render: (_, record) => (
<>
<UpdateForm tableRef={actionRef} values={record} />
<UpdateStatus tableRef={actionRef} values={record} />
{record.type === 'simple' && record.sku ? (
<>
<Divider type="vertical" />
@ -232,6 +234,62 @@ const SyncForm: React.FC<{
);
};
const UpdateStatus: React.FC<{
tableRef: React.MutableRefObject<ActionType | undefined>;
values: API.WpProductDTO;
}> = ({ tableRef, values: initialValues }) => {
const { message } = App.useApp();
return (
<DrawerForm<API.UpdateProductDTO>
title="修改产品上下架状态"
initialValues={initialValues}
trigger={
<Button type="primary">
<EditOutlined />
</Button>
}
autoFocusFirstInput
drawerProps={{
destroyOnHidden: true,
}}
onFinish={async (values) => {
console.log('values', values);
const { status } = values;
try {
const { success, message: errMsg } =
await wpproductcontrollerUpdatewpproductstate(
{
id: initialValues.id,
},
{ status },
);
if (!success) {
throw new Error(errMsg);
}
message.success('提交成功');
tableRef.current?.reload();
return true;
} catch (error: any) {
message.error(error.message);
}
}}
>
<ProForm.Group>
<ProFormSelect
label="状态"
width="lg"
name="status"
valueEnum={PRODUCT_STATUS_ENUM}
>
</ProFormSelect>
</ProForm.Group>
</DrawerForm>
);
};
const UpdateForm: React.FC<{
tableRef: React.MutableRefObject<ActionType | undefined>;
values: API.WpProductDTO;

View File

@ -299,6 +299,7 @@ declare namespace API {
type ordercontrollerGetordersalesParams = {
isSource?: boolean;
exceptPackage?: boolean;
/** 页码 */
current?: number;
/** 每页大小 */
@ -501,7 +502,7 @@ declare namespace API {
/** sku */
sku?: string;
quantity?: number;
exceptPackage?: boolean;
isPackage?: boolean;
isYoone?: boolean;
isZex?: boolean;
size?: number;
@ -522,7 +523,7 @@ declare namespace API {
/** sku */
sku?: string;
quantity?: number;
exceptPackage?: boolean;
isPackage?: boolean;
isYoone?: boolean;
isZex?: boolean;
size?: number;
@ -856,6 +857,7 @@ declare namespace API {
type QueryOrderSalesDTO = {
isSource?: boolean;
exceptPackage?: boolean;
/** 页码 */
current?: number;
/** 每页大小 */
@ -1447,6 +1449,10 @@ declare namespace API {
siteId: string;
};
type wpproductcontrollerUpdatewpproductstateParams = {
id: number;
};
type WpProductDTO = {
/** ID */
id: number;

View File

@ -98,3 +98,22 @@ export async function wpproductcontrollerSyncproducts(
...(options || {}),
});
}
/** 此处后端没有提供注释 POST /wp_product/updateState/${param0} */
export async function wpproductcontrollerUpdatewpproductstate(
// 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
params: API.wpproductcontrollerUpdatewpproductstateParams,
body: Record<string, any>,
options?: { [key: string]: any },
) {
const { id: param0, ...queryParams } = params;
return request<API.BooleanRes>(`/wp_product/updateState/${param0}`, {
method: 'POST',
headers: {
'Content-Type': 'text/plain',
},
params: { ...queryParams },
data: body,
...(options || {}),
});
}