gaoluyang
2026-05-14 a8d694d5d987892afee5a1bb8f6c01d612e6b2a3
src/views/inventoryManagement/stockManagement/New.vue
@@ -32,6 +32,37 @@
          <el-input v-model="formState.unit"
                    disabled />
        </el-form-item>
        <el-form-item label="库位"
                      prop="warehouseId"
                      :rules="[
                {
                required: true,
                message: '请选择库位',
                trigger: 'change',
              }
            ]">
          <el-select v-model="formState.warehouseId"
                     placeholder="请选择库位"
                     clearable
                     style="width: 100%">
            <el-option v-for="warehouse in warehouseList"
                       :key="warehouse.id"
                       :label="warehouse.warehouseName + ' - ' + warehouse.location"
                       :value="warehouse.id" />
          </el-select>
        </el-form-item>
        <el-form-item label="批号"
                      prop="batchNo">
          <el-input v-model="formState.batchNo"
                    placeholder="请输入批号" />
        </el-form-item>
        <el-form-item label="库存数量"
                      prop="qualitity">
          <el-input-number v-model="formState.qualitity"
                           :step="1"
                           :min="1"
                           style="width: 100%" />
        </el-form-item>
        <el-form-item label="库存类型"
                      prop="type"
                      :rules="[
@@ -48,18 +79,6 @@
            <el-option label="不合格库存"
                       value="unqualified" />
          </el-select>
        </el-form-item>
        <el-form-item label="库存数量"
                      prop="qualitity">
          <el-input-number v-model="formState.qualitity"
                           :step="1"
                           :min="1"
                           style="width: 100%" />
        </el-form-item>
        <el-form-item label="批号"
                      prop="batchNo">
          <el-input v-model="formState.batchNo"
                    placeholder="请输入批号" />
        </el-form-item>
        <el-form-item v-if="formState.type === 'qualified'"
                      label="库存预警数量"
@@ -93,10 +112,11 @@
</template>
<script setup>
  import { ref, computed, watch, getCurrentInstance } from "vue";
  import { ref, computed, watch, getCurrentInstance, onMounted } from "vue";
  import ProductSelectDialog from "@/views/basicData/product/ProductSelectDialog.vue";
  import { addStockInRecordOnly } from "@/api/inventoryManagement/stockInventory.js";
  import { createStockUnInventory } from "@/api/inventoryManagement/stockUninventory.js";
  import { getWarehouseList } from "@/api/inventoryManagement/warehouse.js";
  const props = defineProps({
    visible: {
@@ -119,12 +139,16 @@
    productName: "",
    productModelName: "",
    unit: "",
    warehouseId: undefined,
    type: undefined,
    qualitity: 0,
    batchNo: null,
    warnNum: 0,
    remark: "",
  });
  // 仓库列表
  const warehouseList = ref([]);
  const isShow = computed({
    get() {
@@ -136,6 +160,15 @@
  });
  const showProductSelectDialog = ref(false);
  // 获取仓库列表
  const fetchWarehouseList = () => {
    getWarehouseList({ status: true }).then(res => {
      warehouseList.value = res.data || [];
    }).catch(() => {
      proxy.$modal.msgError("获取仓库列表失败");
    });
  };
  // 批号为空时转为 null
  watch(
@@ -157,6 +190,7 @@
      productName: "",
      productModelName: "",
      unit: "",
      warehouseId: undefined,
      type: undefined,
      qualitity: 0,
      batchNo: null,
@@ -215,6 +249,11 @@
    });
  };
  // 组件挂载时加载仓库列表
  onMounted(() => {
    fetchWarehouseList();
  });
  defineExpose({
    closeModal,
    handleSubmit,