马宇豪
2024-11-28 62feaa429971245b5837c456ef830e87a75b7a14
src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue
@@ -90,6 +90,19 @@
const length = ref()
const emit = defineEmits(["getList"]);
const validateNum = (rule, value, callback)=>{
  if(value === ''){
    callback(new Error('请输入最小包装数量'))
  }else{
    if(choosePro.value && value > choosePro.value.maxEntry ){
      callback(new Error(`输入数量不能大于单次入库最大数量(${choosePro.value.maxEntry})`))
    }else {
      callback()
    }
  }
}
const state = reactive({
  form: {
@@ -103,7 +116,7 @@
  },
  formRules:{
    num: [{ required: true, trigger: "blur", message: '请输入数量' }],
    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: '请输入批号' }]
@@ -121,9 +134,10 @@
  title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑':'' ;
  if(type === 'edit' ) {
    state.form = JSON.parse(JSON.stringify(value));
    state.form.basicName = value.hazmatBasic.name
    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;
@@ -145,7 +159,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+') '
      }
    })
@@ -223,12 +237,13 @@
      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.wareHouseList.forEach(item => {
@@ -257,6 +272,7 @@
  state.rawList = [];
  state.wareHouseList = [];
  state.message = '';
  choosePro.value = {}
}
defineExpose({
  openDialog