feat(fulfillment): 支持删除待分类和强制删除渠道规则

This commit is contained in:
yml2213
2026-11-04 13:52:11 +08:00
parent 209fa657ed
commit c31fa7db76
9 changed files with 760 additions and 48 deletions
@@ -393,6 +393,18 @@ export function deleteAdminManualConfig(skuKey: string) {
)
}
export function deleteAdminManualSku(skuKey: string) {
return apiDelete<{
skuKey: string
affectedItems: number
deletedConfigs: number
deletedRegistry: number
deletedRules: number
refreshedDays: number
skippedClosedDays: number
}>(`/api/v1/admin/cost-center/manual-skus/${encodeURIComponent(skuKey)}`)
}
export function rematchAdminManualFulfillments(payload: { skuKey?: string } = {}) {
return apiPost<ManualRematchResult>('/api/v1/admin/cost-center/manual-configs/rematch', payload)
}
@@ -6,6 +6,7 @@ export type PendingChannelGroup = {
sku_name: string
providers: string[]
shop_ids: string[]
shops: Array<{ id: string; name: string }>
sku_codes: string[]
pending_reasons: string[]
item_count: number
@@ -99,6 +100,15 @@ export type PendingWorkOrderRetryResult = {
skipReasons: Record<string, number>
}
export type DeletePendingChannelGroupResult = {
archivedItems: number
preservedOrders: number
deletedCostSnapshots: number
resolvedExceptions: number
refreshedDays: number
skippedClosedDays: number
}
export type FinancePipelineStatus = {
pipeline: string
label: string
@@ -148,6 +158,13 @@ export function retryPendingWorkOrderRouting(
)
}
export function deletePendingChannelGroup(payload: { internalSku: string }) {
return apiPost<DeletePendingChannelGroupResult>(
'/api/v1/admin/fulfillment/pending/delete',
payload,
)
}
export function assignChannelByInternalSku(payload: {
internalSku: string
channel: string
@@ -252,6 +269,14 @@ export function deleteChannelRules(ids: number[]) {
}>('/api/v1/admin/fulfillment/rules/batch-delete', { ids })
}
export function forceDeleteChannelRules(ids: number[]) {
return apiPost<{
deletedCount: number
deletedIds: number[]
missingIds: number[]
}>('/api/v1/admin/fulfillment/rules/force-delete', { ids })
}
export function fetchPipelineStatus() {
return apiGet<FinancePipelineStatus[]>('/api/v1/admin/fulfillment/pipeline/status')
}