| | |
| | | :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)"> |
| | | <el-table-column align="center" type="selection" width="55" /> |
| | | <el-table-column align="center" label="序号" type="index" width="60" /> |
| | | <el-table-column label="入库时间" prop="inboundTime" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="入库批次" prop="inboundBatch" width="160" show-overflow-tooltip /> |
| | | <el-table-column label="入库时间" prop="createDate" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip /> |
| | | <el-table-column label="供应商名称" prop="supplierName" width="160" show-overflow-tooltip /> |
| | | <el-table-column label="产品大类" prop="productName" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="规格型号" prop="model" width="160" show-overflow-tooltip /> |
| | | <el-table-column label="产品大类" prop="productCategory" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="规格型号" prop="specificationModel" width="160" show-overflow-tooltip /> |
| | | <el-table-column label="单位" prop="unit" width="70" show-overflow-tooltip /> |
| | | <el-table-column label="入库数量" prop="inboundQuantity" width="90" show-overflow-tooltip /> |
| | | <el-table-column label="入库数量" prop="inboundNum" width="90" show-overflow-tooltip /> |
| | | <el-table-column label="含税单价" prop="taxInclusiveUnitPrice" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="含税总价" prop="taxInclusiveTotalPrice" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="税率(%)" prop="taxRate" width="80" show-overflow-tooltip /> |
| | | <el-table-column label="不含税总价" prop="taxExclusiveTotalPrice" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="入库人" prop="nickName" width="80" show-overflow-tooltip /> |
| | | <el-table-column label="入库人" prop="createBy" width="80" show-overflow-tooltip /> |
| | | <el-table-column fixed="right" label="操作" min-width="60" align="center"> |
| | | <template #default="scope"> |
| | | <el-button link type="primary" size="small" @click="openForm('edit', scope.row);">编辑</el-button> |
| | |
| | | } |
| | | productList.value = [] // 清空产品列表 |
| | | } else { |
| | | |
| | | form.value = JSON.parse(JSON.stringify(row)) |
| | | try { |
| | | loadingProducts.value = true |
| | | // 根据合同号加载对应的产品列表(假设 getProductByContract 是可用接口) |
| | | const res = await getProductRecordByhetong(form.value.purchaseContractNumber) |
| | | const res = await selectProductRecordListByPuechaserId({ |
| | | purchaseContractNumber: form.value.purchaseContractNumber, |
| | | id: row.id |
| | | }); |
| | | productList.value = res.data.map(item => ({ |
| | | ...item, |
| | | quantityStock: item.quantityStock || 0 // 如果已有入库数量则保留 |
| | | })) |
| | | } catch (error) { |
| | | console.error('加载产品失败:', error) |
| | | proxy.$modal.msgError('加载产品失败') |
| | | productList.value = [] |
| | | } finally { |
| | |
| | | } |
| | | } |
| | | |
| | | const updatePro = async () => { |
| | | // 准备提交数据 |
| | | // 准备提交数据 - 修改为后端需要的格式 |
| | | const stockInData = { |
| | | id: selectedRows.value[0].recordId, |
| | | quantityStock: Number(selectedRows.value[0].quantityStock),// 使用新格式化函数 |
| | | }; |
| | | await updateStockIn(stockInData) |
| | | proxy.$modal.msgSuccess('修改入库成功') |
| | | closeDia() |
| | | getList() // 刷新列表 |
| | | } |
| | | |
| | | // 提交表单 |
| | | const submitForm = async () => { |
| | | // 验证至少选择了一个产品 |
| | | if (selectedRows.value.length === 0) { |
| | | proxy.$modal.msgError('请先查询并选择产品') |
| | | return |
| | | } |
| | | if(operationType.value !== 'add'){ |
| | | await updatePro() |
| | | return |
| | | } |
| | | try { |
| | | await proxy.$refs.formRef.validate() |
| | | |
| | | // 验证至少选择了一个产品 |
| | | if (selectedRows.value.length === 0) { |
| | | proxy.$modal.msgError('请先查询并选择产品') |
| | | return |
| | | } |
| | | |
| | | // 验证入库数量 |
| | | const invalidProducts = selectedRows.value.filter( |
| | | product => product.quantityStock <= 0 || product.quantityStock > product.quantity0 |