feat(web-admin): 扩展出入库单与公共页 TypeScript 类型

为 enrichment 返回的取送货、产品编号、包装规格与单位标签补齐前端类型。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
zlwuandCursor committed 2026-07-19 16:47:00 +08:00
1 parent f5a0931471
commit 8b7f6d99c8
2 files changed
+169

No files matched your search

+108
View File
@@ -680,11 +680,21 @@ export interface TransportSiteLink {
siteFeedbackTime?: string
}
export interface TransportIoOrderBrief {
kind: string
orderId: string
orderNo: string
siteAccessToken?: string
siteUrl?: string
status?: string
}
export interface PlanArrangeInfo {
driverUrl?: string
licensePlate?: string
siteRecords?: TransportSiteLink[]
inventoryRecords?: TransportInventoryLink[]
ioOrder?: TransportIoOrderBrief
}
export interface TransportArrangeResult extends Transport {
@@ -692,6 +702,104 @@ export interface TransportArrangeResult extends Transport {
driverUrl?: string
siteRecords?: TransportSiteLink[]
inventoryRecords?: TransportInventoryLink[]
ioOrder?: TransportIoOrderBrief
}
export interface PlIoOrderItem {
id: string
orderId: string
planProductId: string
productId?: string
productNo?: string
productName?: string
specification?: string
unit?: string
unitLabel?: string
planQty?: number
actualQty?: number
qtySource?: string
packageSpec?: string
remark?: string
}
export interface PlIoOrder {
id: string
orderNo: string
planId: string
transportId: string
status: string
partnerCompany?: string
vehicleNo?: string
planNo?: string
planDate?: string
businessType?: string
planRemark?: string
pickupAddress?: string
pickupLng?: number | null
pickupLat?: number | null
pickupTime?: string
pickupNotes?: string
destinationName?: string
destinationAddress?: string
destinationLng?: number | null
destinationLat?: number | null
deliveryTime?: string
destinationNotes?: string
siteAccessToken?: string
siteUrl?: string
siteFeedbackRemark?: string
siteFeedbackImages?: string[]
siteFeedbackTime?: string
siteFirstSubmittedAt?: string
remark?: string
productSummary?: string
actualQtyTotal?: number
kind: string
items?: PlIoOrderItem[]
createTime?: string
updateTime?: string
}
export interface PlIoOrderQuery {
orderNo?: string
planNo?: string
status?: string
partnerCompany?: string
vehicleNo?: string
q?: string
page?: number
pageSize?: number
}
export interface PlIoOrderListResponse {
total: number
list: PlIoOrder[]
}
export const inboundOrderApi = {
list: (params?: PlIoOrderQuery) =>
request.get<PlIoOrderListResponse>('/transport/inbound/', { params }),
get: (id: string) => request.get<PlIoOrder>(`/transport/inbound/${id}`),
getByPlan: (planId: string) =>
request.get<PlIoOrder | null>(`/transport/inbound/by-plan/${planId}`),
patch: (id: string, data: Record<string, unknown>) =>
request.patch<PlIoOrder>(`/transport/inbound/${id}`, data),
siteUrl: (id: string) =>
request.get<{ siteUrl?: string; siteAccessToken?: string }>(`/transport/inbound/${id}/site-url`)
}
export const outboundOrderApi = {
list: (params?: PlIoOrderQuery) =>
request.get<PlIoOrderListResponse>('/transport/outbound/', { params }),
get: (id: string) => request.get<PlIoOrder>(`/transport/outbound/${id}`),
getByPlan: (planId: string) =>
request.get<PlIoOrder | null>(`/transport/outbound/by-plan/${planId}`),
patch: (id: string, data: Record<string, unknown>) =>
request.patch<PlIoOrder>(`/transport/outbound/${id}`, data),
siteUrl: (id: string) =>
request.get<{ siteUrl?: string; siteAccessToken?: string }>(
`/transport/outbound/${id}/site-url`
)
}
export interface TransportQuery {
+61
View File
@@ -0,0 +1,61 @@
import { publicPlGet, publicPlPost, publicPlUpload } from '@/utils/http/public-pl'
export interface PublicIoOrderItem {
id: string
productNo?: string
productName?: string
specification?: string
unit?: string
planQty?: number
actualQty?: number
packageSpec?: string
remark?: string
}
export interface PublicIoOrderPage {
title?: string
orderNo?: string
status?: string
businessType?: string
partnerCompany?: string
vehicleNo?: string
planNo?: string
planDate?: string
planRemark?: string
pickupAddress?: string
pickupLng?: number | null
pickupLat?: number | null
pickupTime?: string
pickupNotes?: string
destinationName?: string
destinationAddress?: string
destinationLng?: number | null
destinationLat?: number | null
deliveryTime?: string
destinationNotes?: string
siteFeedbackRemark?: string
siteFeedbackImages?: string[]
siteFeedbackTime?: string
voided: boolean
items: PublicIoOrderItem[]
}
export function createPublicIoOrderApi(kind: 'inbound' | 'outbound') {
const base = `/public/pl/${kind}`
return {
getPage: (token: string) => publicPlGet<PublicIoOrderPage>(`${base}/${token}`),
saveFeedback: (
token: string,
data: {
remark?: string
images?: string[]
items: { id: string; actualQty: number }[]
}
) => publicPlPost<{ success: boolean }>(`${base}/${token}/feedback`, data),
uploadAttachment: (token: string, file: File) =>
publicPlUpload<{ fileUrl: string }>(`${base}/${token}/attachments`, file)
}
}
export const publicInboundOrderApi = createPublicIoOrderApi('inbound')
export const publicOutboundOrderApi = createPublicIoOrderApi('outbound')