feat: 新增费用设置页面并对齐原型交互
This commit is contained in:
95
apps/web-antd/src/api/store-fees/index.ts
Normal file
95
apps/web-antd/src/api/store-fees/index.ts
Normal file
@@ -0,0 +1,95 @@
|
||||
/**
|
||||
* 文件职责:费用设置模块 API 与 DTO 定义。
|
||||
* 1. 维护起送/配送费、包装费、其他费用类型。
|
||||
* 2. 提供查询、保存与复制费用设置接口。
|
||||
*/
|
||||
import { requestClient } from '#/api/request';
|
||||
|
||||
/** 包装费模式 */
|
||||
export type PackagingFeeMode = 'item' | 'order';
|
||||
|
||||
/** 按订单包装费模式 */
|
||||
export type OrderPackagingFeeMode = 'fixed' | 'tiered';
|
||||
|
||||
/** 其他费用类型 */
|
||||
export type AdditionalFeeType = 'cutlery' | 'rush';
|
||||
|
||||
/** 阶梯包装费条目 */
|
||||
export interface PackagingFeeTierDto {
|
||||
/** 单档费用 */
|
||||
fee: number;
|
||||
/** 主键 */
|
||||
id: string;
|
||||
/** 起始订单金额(含) */
|
||||
minAmount: number;
|
||||
/** 结束订单金额(空值表示无上限) */
|
||||
maxAmount: null | number;
|
||||
/** 排序号 */
|
||||
sort: number;
|
||||
}
|
||||
|
||||
/** 单项其他费用 */
|
||||
export interface AdditionalFeeItemDto {
|
||||
/** 费用金额 */
|
||||
amount: number;
|
||||
/** 是否启用 */
|
||||
enabled: boolean;
|
||||
}
|
||||
|
||||
/** 其他费用聚合 */
|
||||
export interface StoreOtherFeesDto {
|
||||
cutlery: AdditionalFeeItemDto;
|
||||
rush: AdditionalFeeItemDto;
|
||||
}
|
||||
|
||||
/** 门店费用设置聚合 */
|
||||
export interface StoreFeesSettingsDto {
|
||||
/** 基础配送费 */
|
||||
baseDeliveryFee: number;
|
||||
/** 固定包装费 */
|
||||
fixedPackagingFee: number;
|
||||
/** 免配送费门槛,空值表示关闭 */
|
||||
freeDeliveryThreshold: null | number;
|
||||
/** 起送金额 */
|
||||
minimumOrderAmount: number;
|
||||
/** 其他费用 */
|
||||
otherFees: StoreOtherFeesDto;
|
||||
/** 按订单包装费模式 */
|
||||
orderPackagingFeeMode: OrderPackagingFeeMode;
|
||||
/** 包装费模式 */
|
||||
packagingFeeMode: PackagingFeeMode;
|
||||
/** 包装费阶梯 */
|
||||
packagingFeeTiers: PackagingFeeTierDto[];
|
||||
/** 门店 ID */
|
||||
storeId: string;
|
||||
}
|
||||
|
||||
/** 保存费用设置参数 */
|
||||
export type SaveStoreFeesSettingsParams = StoreFeesSettingsDto;
|
||||
|
||||
/** 复制费用设置参数 */
|
||||
export interface CopyStoreFeesSettingsParams {
|
||||
sourceStoreId: string;
|
||||
targetStoreIds: string[];
|
||||
}
|
||||
|
||||
/** 获取门店费用设置 */
|
||||
export async function getStoreFeesSettingsApi(storeId: string) {
|
||||
return requestClient.get<StoreFeesSettingsDto>('/store/fees', {
|
||||
params: { storeId },
|
||||
});
|
||||
}
|
||||
|
||||
/** 保存门店费用设置 */
|
||||
export async function saveStoreFeesSettingsApi(
|
||||
data: SaveStoreFeesSettingsParams,
|
||||
) {
|
||||
return requestClient.post<StoreFeesSettingsDto>('/store/fees/save', data);
|
||||
}
|
||||
|
||||
/** 复制费用设置到其他门店 */
|
||||
export async function copyStoreFeesSettingsApi(
|
||||
data: CopyStoreFeesSettingsParams,
|
||||
) {
|
||||
return requestClient.post('/store/fees/copy', data);
|
||||
}
|
||||
Reference in New Issue
Block a user