From 523866f04470b6f2cc92007fd9d5b3b885482d00 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Thu, 12 Mar 2026 01:05:56 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=9B=98=E7=82=B9=E7=BB=93=E6=9E=9C=E7=9B=B8=E5=85=B3=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=8C=E6=B7=BB=E5=8A=A0=E7=9B=98=E7=82=B9=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改盘点结果请求和响应对象,新增盘点数量字段并设置为必填 - 更新控制器逻辑,简化创建和更新盘点结果的处理 - 添加盘点任务行的创建和更新逻辑,确保数据一致性 - 优化错误处理,增加相关错误码 --- .../mes/wm/stocktaking/task/result/index.ts | 4 - .../task/StockTakingTaskLineList.vue | 2 +- .../task/StockTakingTaskResultList.vue | 137 ++++++++++-------- 3 files changed, 81 insertions(+), 62 deletions(-) diff --git a/src/api/mes/wm/stocktaking/task/result/index.ts b/src/api/mes/wm/stocktaking/task/result/index.ts index 2f6a9be15..17a376b0d 100644 --- a/src/api/mes/wm/stocktaking/task/result/index.ts +++ b/src/api/mes/wm/stocktaking/task/result/index.ts @@ -32,10 +32,6 @@ export const StockTakingResultApi = { return await request.get({ url: '/mes/wm/stocktaking-task-result/get', params: { id } }) }, - getStockTakingResultList: async (params: any) => { - return await request.get({ url: '/mes/wm/stocktaking-task-result/list', params }) - }, - createStockTakingResult: async (data: StockTakingResultVO) => { return await request.post({ url: '/mes/wm/stocktaking-task-result/create', data }) }, diff --git a/src/views/mes/wm/stocktaking/task/StockTakingTaskLineList.vue b/src/views/mes/wm/stocktaking/task/StockTakingTaskLineList.vue index 9dc9dd132..07df0ba5c 100644 --- a/src/views/mes/wm/stocktaking/task/StockTakingTaskLineList.vue +++ b/src/views/mes/wm/stocktaking/task/StockTakingTaskLineList.vue @@ -42,7 +42,7 @@ - + - + + + @@ -44,20 +46,17 @@ v-loading="formLoading" > - - + + - - + + - + - + + + + + + + + + - - @@ -108,20 +128,7 @@ v-model="formData.areaId" :location-id="formData.locationId" placeholder="请选择库位" - /> - - - - - - - - - @@ -166,7 +173,10 @@ const { t } = useI18n() const message = useMessage() const isReadOnly = computed(() => props.formType === 'detail') -const isExecuteMode = computed(() => props.formType === 'execute') +const isExecute = computed(() => props.formType === 'execute') +const isFieldsDisabled = computed(() => { + return isExecute.value && dialogFormType.value === 'create' && !!formData.value.lineId +}) // ==================== 列表 ==================== const loading = ref(false) @@ -184,7 +194,7 @@ const getList = async () => { loading.value = true try { queryParams.taskId = props.taskId - const data = await StockTakingResultApi.getStockTakingResultList(queryParams) + const data = await StockTakingResultApi.getStockTakingResultPage(queryParams) list.value = data.list total.value = data.total } finally { @@ -209,22 +219,25 @@ const formLoading = ref(false) const dialogFormType = ref('') const taskLineList = ref([]) const formData = ref({ - id: undefined, + id: undefined as number | undefined, taskId: undefined as number | undefined, - lineId: undefined, - materialStockId: undefined, - itemId: undefined, - batchId: undefined, - batchCode: undefined, - warehouseId: undefined, - locationId: undefined, - areaId: undefined, - quantity: undefined, - remark: undefined + lineId: undefined as number | undefined, + materialStockId: undefined as number | undefined, + itemId: undefined as number | undefined, + batchId: undefined as number | undefined, + batchCode: undefined as string | undefined, + warehouseId: undefined as number | undefined, + locationId: undefined as number | undefined, + areaId: undefined as number | undefined, + takingQuantity: undefined as number | undefined, + remark: undefined as string | undefined }) const formRules = reactive({ - lineId: [{ required: true, message: '请选择盘点清单', trigger: 'change' }], - quantity: [{ required: true, message: '差异数量不能为空', trigger: 'blur' }] + itemId: [{ required: true, message: '物料不能为空', trigger: 'change' }], + warehouseId: [{ required: true, message: '仓库不能为空', trigger: 'change' }], + locationId: [{ required: true, message: '库区不能为空', trigger: 'change' }], + areaId: [{ required: true, message: '库位不能为空', trigger: 'change' }], + takingQuantity: [{ required: true, message: '盘点数量不能为空', trigger: 'blur' }] }) const formRef = ref() @@ -234,9 +247,8 @@ const openForm = async (type: string, id?: number) => { dialogTitle.value = t('action.' + type) dialogFormType.value = type resetForm() - // 执行盘点模式下,加载盘点清单列表 - if (isExecuteMode.value && !id) { + if (isExecute.value && !id) { formLoading.value = true try { taskLineList.value = await StockTakingTaskLineApi.getStockTakingTaskLineSimpleList( @@ -246,7 +258,7 @@ const openForm = async (type: string, id?: number) => { formLoading.value = false } } - + // 修改模式下,加载盘点结果数据 if (id) { formLoading.value = true try { @@ -294,16 +306,27 @@ const handleLocationChange = () => { /** 盘点清单行变化 */ const handleLineChange = (lineId: number) => { const line = taskLineList.value.find((item) => item.id === lineId) - if (line) { - // TODO @AI:linter 报错; - formData.value.materialStockId = line.materialStockId - formData.value.itemId = line.itemId - formData.value.batchId = line.batchId - formData.value.batchCode = line.batchCode - formData.value.warehouseId = line.warehouseId - formData.value.locationId = line.locationId - formData.value.areaId = line.areaId + if (!line) { + return } + formData.value.materialStockId = line.materialStockId ?? undefined + formData.value.itemId = line.itemId ?? undefined + formData.value.batchId = line.batchId ?? undefined + formData.value.batchCode = line.batchCode ?? undefined + formData.value.warehouseId = line.warehouseId ?? undefined + formData.value.locationId = line.locationId ?? undefined + formData.value.areaId = line.areaId ?? undefined +} + +/** 清除盘点清单选择 */ +const handleLineClear = () => { + formData.value.materialStockId = undefined + formData.value.itemId = undefined + formData.value.batchId = undefined + formData.value.batchCode = undefined + formData.value.warehouseId = undefined + formData.value.locationId = undefined + formData.value.areaId = undefined } /** 重置表单 */ @@ -319,7 +342,7 @@ const resetForm = () => { warehouseId: undefined, locationId: undefined, areaId: undefined, - quantity: undefined, + takingQuantity: undefined, remark: undefined } formRef.value?.resetFields()