huminmin
6 天以前 4619d7c1944afbc85eb680167ca188fccc822259
src/views/inventoryManagement/stockManagement/Subtract.vue
@@ -38,10 +38,27 @@
        </el-form-item>
        <el-form-item
            label="库存类型"
            prop="type"
            :rules="[
                {
                required: true,
                message: '请选择库存类型',
                trigger: 'change',
              }
            ]"
        >
          <el-select v-model="formState.type" placeholder="请选择库存类型" @change="handleTypeChange">
            <el-option label="合格库存" value="qualified" :disabled="props.record.qualifiedUnLockedQuantity <= 0" />
            <el-option label="不合格库存" value="unqualified" :disabled="props.record.unQualifiedUnLockedQuantity <= 0" />
          </el-select>
        </el-form-item>
        <el-form-item
            label="数量"
            prop="qualitity"
        >
          <el-input-number v-model="formState.qualitity" :step="1" :min="0" style="width: 100%" />
          <el-input-number v-model="formState.qualitity" :step="1" :min="1" :max="maxQuality" style="width: 100%" />
        </el-form-item>
        <el-form-item label="备注" prop="remark">
@@ -69,6 +86,7 @@
import {ref, computed, getCurrentInstance} from "vue";
import ProductSelectDialog from "@/views/basicData/product/ProductSelectDialog.vue";
import {subtractStockInventory} from "@/api/inventoryManagement/stockInventory.js";
import {subtractStockUnInventory} from "@/api/inventoryManagement/stockUninventory.js";
const props = defineProps({
  visible: {
@@ -87,10 +105,24 @@
  initFormData()
})
const maxQuality = computed(() => {
  let max = 0;
  if (formState.value.type === 'qualified') {
    max = props.record.qualifiedUnLockedQuantity ? props.record.qualifiedUnLockedQuantity :  0;
  } else {
    max = props.record.unQualifiedUnLockedQuantity ? props.record.unQualifiedUnLockedQuantity :  0;
  }
  // 确保 max 至少为 1,避免 min > max 的错误
  return Math.max(max, 1);
})
const handleTypeChange = () => {
  formState.value.qualitity = undefined;
}
const initFormData = () => {
  if (props.record) {
    formState.value = {
      ...formState.value,
      ...props.record,
    }
  }
@@ -136,7 +168,6 @@
const handleProductSelect = async (products) => {
  if (products && products.length > 0) {
    const product = products[0];
    console.log(product)
    formState.value.productId = product.productId;
    formState.value.productName = product.productName;
    formState.value.productModelName = product.model;
@@ -160,13 +191,23 @@
        proxy.$modal.msgError("请选择规格");
        return;
      }
      subtractStockInventory(formState.value).then(res => {
        // 关闭模态框
        isShow.value = false;
        // 告知父组件已完成
        emit('completed');
        proxy.$modal.msgSuccess("提交成功");
      })
      if (formState.value.type === 'qualified') {
        subtractStockInventory(formState.value).then(res => {
          // 关闭模态框
          isShow.value = false;
          // 告知父组件已完成
          emit('completed');
          proxy.$modal.msgSuccess("提交成功");
        })
      } else {
        subtractStockUnInventory(formState.value).then(res => {
          // 关闭模态框
          isShow.value = false;
          // 告知父组件已完成
          emit('completed');
          proxy.$modal.msgSuccess("提交成功");
        })
      }
    }
  })
};
@@ -177,4 +218,4 @@
  handleSubmit,
  isShow,
});
</script>
</script>