From 1ea0d85b0fe2e7e4427fd484a9342d964c831b3d Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期三, 06 八月 2025 15:15:00 +0800 Subject: [PATCH] 修改 --- src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue | 58 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 48 insertions(+), 10 deletions(-) diff --git a/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue b/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue index 3847cf5..f37ac11 100644 --- a/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue +++ b/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue @@ -51,6 +51,20 @@ /> </el-select> </el-form-item> + <el-form-item label="存储柜:" prop="cupboardId" > + <el-select + v-model="state.form.cupboardId" + placeholder="请选择存储柜" + style="width: 100%" + > + <el-option + v-for="item in state.cupList" + :key="item.id" + :label="item.cupboardName" + :value="item.id" + /> + </el-select> + </el-form-item> <el-form-item label="数量:" prop="num" > <el-input v-model.trim="state.form.num" oninput="value=value.replace(/^\.+|[^\d]/g,'')" placeholder="请输入最小包装数量" @input="changeNum"></el-input> </el-form-item> @@ -76,7 +90,7 @@ <script setup> import {reactive, ref, toRefs} from 'vue' import {ElMessage} from "element-plus"; -import {addWarehouse, checkName, editWarehouse, getWarehouse} from "@/api/hazardousChemicals/warehouse"; +import {addWarehouse, checkName, editWarehouse, getCupById, getWarehouse} from "@/api/hazardousChemicals/warehouse"; import {verifyPhone} from "@/utils/validate"; import {checkBasicName, getBasicList} from "@/api/hazardousChemicals/basicInfo"; import {addProductRecord, editProductRecord, getProductRecord} from "@/api/hazardousChemicals/productRecord"; @@ -94,8 +108,8 @@ if(value === ''){ callback(new Error('请输入最小包装数量')) }else{ - if(value > choosePro.value.maxEntry ){ - callback(new Error('输入数量不能大于单次入库最大数量')) + if(choosePro.value && value > choosePro.value.maxEntry ){ + callback(new Error(`输入数量不能大于单次入库最大数量(${choosePro.value.maxEntry})`)) }else { callback() } @@ -111,6 +125,8 @@ basicName:'', warehouseName: '', warehouseId: null, + cupboardName: '', + cupboardId: null, num: null, batchNo: '' @@ -119,11 +135,12 @@ num: [{ required: true, trigger: "blur", validator: validateNum }], warehouseName: [{ required: true, trigger: "blur", message: '请选择入库仓库' }], basicName: [{ required: true, trigger: "blur", message: '请选择入库成品' }], - // batchNo: [{ required: true, trigger: "blur", message: '请输入批号' }] + cupboardId: [{ required: true, trigger: "blur", message: '请选择存储柜' }] }, rawList: [], wareHouseList: [], - message: '' + message: '', + cupList: [] }) @@ -134,9 +151,11 @@ title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑':'' ; if(type === 'edit' ) { state.form = JSON.parse(JSON.stringify(value)); - state.form.basicName = value.hazmatBasic.name + await getCupList(value.warehouseId) + state.form.basicName = value.hazmatBasic.name + '—' + value.hazmatBasic.productSn + ' (' + value.hazmatBasic.metering + value.hazmatBasic.unit+') ' state.form.warehouseName = value.warehouse.name; choosePro.value = value.hazmatBasic + choosePro.value.name = value.hazmatBasic.name + '—' + value.hazmatBasic.productSn + ' (' + value.hazmatBasic.metering + value.hazmatBasic.unit+') ' changeNum() } dialogVisible.value = true; @@ -158,7 +177,7 @@ state.rawList = res.data.list.map(item => { return{ ...item, - name: item.name + '—' + item.productSn + '(' + item.metering +item.unit+')' + name: item.name + '—' + item.productSn + ' (' + item.metering +item.unit+') ' } }) @@ -181,7 +200,12 @@ } const res = await getWarehouse(param) if(res.code == 200){ - state.wareHouseList = res.data.list + state.wareHouseList = res.data.list.map(item => { + return { + ...item, + children: item.warehouseCupboards && item.warehouseCupboards.length>0 ? item.warehouseCupboards : null + } + }) }else{ ElMessage.warning(res.message) } @@ -236,19 +260,30 @@ state.form.basicId = item.id console.log('item',item) choosePro.value = item; + changeNum() } }) } const changeNum = () => { const minPackageType = choosePro.value.minPackage == 0 ? '瓶' :choosePro.value.minPackage == 1?'袋':choosePro.value.minPackage == 2?'桶 ':choosePro.value.minPackage == 3?'盒':choosePro.value.minPackage == 4?'箱':'其他' - state.message = `您将入库 { ${choosePro.value.name} },编号:{ ${choosePro.value.productSn} },最小包装${choosePro.value.metering}${choosePro.value.unit},类别:${minPackageType}。 \n 共计:${state.form.num}${minPackageType}` + state.message = `您将入库 { ${choosePro.value.name.substring(0,choosePro.value.name.lastIndexOf('—')) } },编号:{ ${choosePro.value.productSn} },最小包装${choosePro.value.metering}${choosePro.value.unit},类别:${minPackageType}。 \n 共计:${state.form.num}${minPackageType}` } const selectWareValue = (val) => { + state.form.cupboardId = null state.wareHouseList.forEach(item => { if(item.name === val){ state.form.warehouseId = item.id + getCupList(item.id) } }) +} +const getCupList = async (val) => { + const res = await getCupById(val) + if(res.code == 200) { + state.cupList = res.data + }else { + ElMessage.warning(res.message) + } } const handleClose = () => { @@ -265,11 +300,14 @@ warehouseName: '', warehouseId: null, num: null, - batchNo: '' + batchNo: '', + cupboardName: '', + cupboardId: null, } state.rawList = []; state.wareHouseList = []; state.message = ''; + choosePro.value = {} } defineExpose({ openDialog -- Gitblit v1.9.2