|
|
|
@ -159,7 +159,12 @@ const open = async (type: string, id?: number) => {
|
|
|
|
if (id) {
|
|
|
|
if (id) {
|
|
|
|
formLoading.value = true
|
|
|
|
formLoading.value = true
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
formData.value = await StockInApi.getStockIn(id)
|
|
|
|
const data = await StockInApi.getStockIn(id)
|
|
|
|
|
|
|
|
const itemWarehouseId = (data as any)?.items?.[0]?.warehouseId
|
|
|
|
|
|
|
|
formData.value = {
|
|
|
|
|
|
|
|
...(data as any),
|
|
|
|
|
|
|
|
warehouseId: itemWarehouseId ?? (data as any)?.warehouseId
|
|
|
|
|
|
|
|
}
|
|
|
|
} finally {
|
|
|
|
} finally {
|
|
|
|
formLoading.value = false
|
|
|
|
formLoading.value = false
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -179,15 +184,37 @@ const submitForm = async () => {
|
|
|
|
// 提交请求
|
|
|
|
// 提交请求
|
|
|
|
formLoading.value = true
|
|
|
|
formLoading.value = true
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
itemFormRef.value.selectedRows.forEach((item, index) => {
|
|
|
|
const existingByProductId = new Map<number, any>(
|
|
|
|
const i = {
|
|
|
|
(formData.value.items ?? [])
|
|
|
|
warehouseId : formData.value.warehouseId,
|
|
|
|
.filter((it: any) => it && (it.productId ?? it.id) !== undefined && (it.productId ?? it.id) !== null)
|
|
|
|
productId : item.id,
|
|
|
|
.map((it: any) => [Number(it.productId ?? it.id), it])
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const selectedProductIds = (itemFormRef.value.selectedRows ?? [])
|
|
|
|
|
|
|
|
.map((it: any) => it?.id)
|
|
|
|
|
|
|
|
.filter((id: any) => id !== undefined && id !== null)
|
|
|
|
|
|
|
|
.map((id: any) => Number(id))
|
|
|
|
|
|
|
|
.filter((id: any) => !Number.isNaN(id))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
formData.value.items = selectedProductIds.map((productId) => {
|
|
|
|
|
|
|
|
const existing = existingByProductId.get(productId)
|
|
|
|
|
|
|
|
if (existing) {
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
id: existing.id,
|
|
|
|
|
|
|
|
warehouseId: formData.value.warehouseId,
|
|
|
|
|
|
|
|
productId,
|
|
|
|
|
|
|
|
productPrice: existing.productPrice ?? 0,
|
|
|
|
|
|
|
|
count: existing.count ?? 1,
|
|
|
|
|
|
|
|
remark: existing.remark ?? null
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
|
|
|
|
warehouseId: formData.value.warehouseId,
|
|
|
|
|
|
|
|
productId,
|
|
|
|
productPrice: 0,
|
|
|
|
productPrice: 0,
|
|
|
|
count: 1,
|
|
|
|
count: 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
formData.value.items.push(i)
|
|
|
|
})
|
|
|
|
});
|
|
|
|
|
|
|
|
const data = formData.value as unknown as StockInVO
|
|
|
|
const data = formData.value as unknown as StockInVO
|
|
|
|
if (formType.value === 'create') {
|
|
|
|
if (formType.value === 'create') {
|
|
|
|
await StockInApi.createStockIn(data)
|
|
|
|
await StockInApi.createStockIn(data)
|
|
|
|
|