diff --git a/src/views/wms/inStockBill/index.vue b/src/views/wms/inStockBill/index.vue
index 91e4c6b..7d21b45 100644
--- a/src/views/wms/inStockBill/index.vue
+++ b/src/views/wms/inStockBill/index.vue
@@ -68,6 +68,7 @@
+
@@ -99,7 +101,7 @@
-
+
@@ -135,7 +137,7 @@
-
+
@@ -220,10 +222,10 @@
/>
-
+
-
+
{{ scope.row.totalPrice || 0 }}
+
+
+
+
+
+
+
+
@@ -259,51 +274,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -312,7 +282,8 @@ import { addInStockBill, delInStockBill, getInStockBill, listInStockBill, update
import { InStockBillForm, InStockBillQuery, InStockBillVO } from '@/api/wms/inStockBill/types';
import { ref } from 'vue'; // 存储选中的物料信息
import { useRouter } from 'vue-router'; // 存储选中的物料信息
-import { getWmsInStockDetailsList } from '@/api/wms/inStockDetails'; // 添加展开行处理函数
+import { getWmsInStockDetailsList } from '@/api/wms/inStockDetails';
+import { getWmsWarehouseInfoList } from '@/api/wms/warehouseInfo'; // 添加展开行处理函数
// 添加展开行处理函数
const handleExpandChange = async (row, expandedRows) => {
@@ -342,7 +313,7 @@ const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const dateRangeCreateTime = ref<[DateModelType, DateModelType]>(['', '']);
-
+const wms_warehouse = ref([]);
const queryFormRef = ref();
const inStockBillFormRef = ref();
@@ -360,15 +331,15 @@ const handleMaterialConfirm = (materials) => {
// 设置默认单价为采购单价
material.unitPrice = material.purchasePrice || 0;
- material.quantity = 1; // 默认数量为1
- material.totalPrice = (material.unitPrice * material.quantity).toFixed(2);
+ material.inStockAmount = 1; // 默认数量为1
+ material.totalPrice = (material.unitPrice * material.inStockAmount).toFixed(2);
});
};
// 计算总价
const calculateTotalPrice = (material) => {
- if (material.unitPrice && material.quantity) {
- material.totalPrice = (material.unitPrice * material.quantity).toFixed(2);
+ if (material.unitPrice && material.inStockAmount) {
+ material.totalPrice = (material.unitPrice * material.inStockAmount).toFixed(2);
} else {
material.totalPrice = 0;
}
@@ -390,7 +361,8 @@ const dialog = reactive({
title: ''
});
const addDialog = reactive({
- visible: false
+ visible: false,
+ title: ''
});
// 列显隐信息
@@ -477,10 +449,12 @@ const reset = () => {
form.value = { ...initFormData };
inStockBillFormRef.value?.resetFields();
};
-
+// 添加表格ref
+const tableRef = ref();
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.value.pageNum = 1;
+ closeChildTable();
getList();
};
@@ -488,8 +462,18 @@ const handleQuery = () => {
const resetQuery = () => {
dateRangeCreateTime.value = ['', ''];
queryFormRef.value?.resetFields();
+ closeChildTable();
+
handleQuery();
};
+// 关闭所有展开的子表
+const closeChildTable = () => {
+ if (tableRef.value) {
+ tableRef.value.store.states.expandRows.value.forEach((row) => {
+ tableRef.value.toggleRowExpansion(row, false);
+ });
+ }
+};
/** 多选框选中数据 */
const handleSelectionChange = (selection: InStockBillVO[]) => {
@@ -499,11 +483,19 @@ const handleSelectionChange = (selection: InStockBillVO[]) => {
};
const router = useRouter();
+
+const getWarehouseList = async () => {
+ const res = await getWmsWarehouseInfoList();
+ wms_warehouse.value = res.data;
+};
/** 新增按钮操作 */
const handleAdd = () => {
reset();
addFormRef.value?.resetFields();
+ selectedMaterials.value = [];
+ addDialog.title = '添加物料入库';
addDialog.visible = true;
+ // getWarehouseList();
// dialog.title = '添加物料入库';
// materialSelectRef.value.open();
// router.push('/wms/inStockBill/add');
@@ -521,7 +513,7 @@ const handleAddSubmit = () => {
// 验证物料信息的完整性
const invalidMaterials = selectedMaterials.value.filter((material) => {
- return !material.unitPrice || material.unitPrice <= 0 || !material.quantity || material.quantity <= 0;
+ return !material.unitPrice || material.unitPrice <= 0 || !material.inStockAmount || material.inStockAmount <= 0;
});
if (invalidMaterials.length > 0) {
@@ -536,28 +528,53 @@ const handleAddSubmit = () => {
...form.value,
// 添加物料明细信息
inStockDetailsList: selectedMaterials.value.map((material) => ({
+ inStockDetailsId: material.inStockDetailsId, // 物料ID
materialId: material.materialId, // 物料ID
batchNumber: material.batchNumber, // 批次号
unitPrice: material.unitPrice, // 单价
- inStockAmount: material.quantity, // 数量
+ inStockAmount: material.inStockAmount, // 数量
unitName: material.unitName, // 单位
- totalPrice: material.totalPrice // 总价
+ totalPrice: material.totalPrice, // 总价
+ warehouseId: material.warehouseId // 仓库ID
}))
};
- await addInStockBill(submitData);
- proxy?.$modal.msgSuccess('添加成功');
+ // 根据是否有inStockBillId判断是新增还是修改
+ if (form.value.inStockBillId) {
+ // 修改操作
+ await updateInStockBill(submitData);
+ closeChildTable();
+ proxy?.$modal.msgSuccess('修改成功');
+ } else {
+ // 新增操作
+ await addInStockBill(submitData);
+ proxy?.$modal.msgSuccess('添加成功');
+ }
+
addDialog.visible = false;
// 清空已选择的物料
selectedMaterials.value = [];
await getList();
} catch (error) {
- console.error('添加入库单失败:', error);
- proxy?.$modal.msgError('添加失败,请重试');
+ console.error('操作失败:', error);
+ proxy?.$modal.msgError(form.value.inStockBillId ? '修改失败,请重试' : '添加失败,请重试');
} finally {
buttonLoading.value = false;
}
+ // await addInStockBill(submitData);
+ // proxy?.$modal.msgSuccess('添加成功');
+ // addDialog.visible = false;
+ //
+ // // 清空已选择的物料
+ // selectedMaterials.value = [];
+ // await getList();
+ // } catch (error) {
+ // console.error('添加入库单失败:', error);
+ // proxy?.$modal.msgError('添加失败,请重试');
+ // } finally {
+ // buttonLoading.value = false;
+ // }
}
});
};
@@ -574,8 +591,12 @@ const handleUpdate = async (row?: InStockBillVO) => {
const _inStockBillId = row?.inStockBillId || ids.value[0];
const res = await getInStockBill(_inStockBillId);
Object.assign(form.value, res.data);
- dialog.visible = true;
- dialog.title = '修改物料入库';
+
+ const childList = await getWmsInStockDetailsList({ inStockBillId: row.inStockBillId });
+ selectedMaterials.value = childList.data;
+
+ addDialog.title = '修改物料入库';
+ addDialog.visible = true;
};
/** 提交按钮 */
@@ -617,5 +638,6 @@ const handleExport = () => {
onMounted(() => {
getList();
+ getWarehouseList();
});