huminmin
18 小时以前 7d1924d1924e2cafd77ca1ce3b7d5ca9336edb9c
src/views/inventoryManagement/stockManagement/New.vue
@@ -37,11 +37,48 @@
          <el-input v-model="formState.unit"  disabled />
        </el-form-item>
        <el-form-item label="批号" prop="batchNo" :rules="[{ required: true, message: '请输入批号', trigger: 'blur' }]">
          <el-input v-model="formState.batchNo" placeholder="请输入批号" clearable />
        </el-form-item>
        <el-form-item
            label="数量"
          label="供应商"
          prop="customer"
          :rules="[{ required: true, message: '请选择供应商', trigger: 'change' }]"
        >
          <el-select
            v-model="formState.customer"
            placeholder="请选择供应商"
            filterable
            clearable
            allow-create
            :reserve-keyword="true"
            :default-first-option="false"
          >
            <el-option
              v-for="item in supplierList"
              :key="item.id"
              :label="item.supplierName"
              :value="item.supplierName"
            >
              {{ item.supplierName}}
            </el-option>
          </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" style="width: 100%" />
        </el-form-item>
        <el-form-item
            v-if="type === 'qualified'"
            label="库存预警数量"
            prop="warnNum"
        >
          <el-input-number v-model="formState.warnNum" :step="1" :min="0" :max="formState.qualitity" style="width: 100%" />
        </el-form-item>
        <el-form-item label="备注" prop="remark">
@@ -66,14 +103,22 @@
</template>
<script setup>
import {ref, computed, getCurrentInstance} from "vue";
import {ref, computed, getCurrentInstance, watch} from "vue";
import ProductSelectDialog from "@/views/basicData/product/ProductSelectDialog.vue";
import {createStockInventory} from "@/api/inventoryManagement/stockInventory.js";
import {createStockUnInventory} from "@/api/inventoryManagement/stockUninventory.js";
import {getOptions as getSupplierOptions} from "@/api/procurementManagement/procurementLedger.js";
const props = defineProps({
  visible: {
    type: Boolean,
    required: true,
  },
  type: {
    type: String,
    required: true,
    default: 'qualified',
  },
});
@@ -86,7 +131,10 @@
  productName: "",
  productModelName: "",
  unit: "",
  batchNo: "",
  customer: "",
  qualitity: 0,
  warnNum: 0,
  remark: '',
});
@@ -110,16 +158,43 @@
    productModelId: undefined,
    productName: "",
    productModelName: "",
    description: '',
    unit: "",
    batchNo: "",
    customer: "",
    qualitity: 0,
    warnNum: 0,
    remark: '',
  };
  isShow.value = false;
};
const supplierList = ref([]);
const loadSuppliers = async () => {
  try {
    const res = await getSupplierOptions();
    // 复用采购台账筛选逻辑:isWhite=0 的供应商
    supplierList.value = (res?.data || []).filter(item => item.isWhite === 0);
  } catch (e) {
    console.error("获取供应商列表失败:", e);
    supplierList.value = [];
  }
};
watch(
  () => props.visible,
  (val) => {
    if (val) {
      loadSuppliers();
    }
  },
  { immediate: true }
);
// 产品选择处理
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;
@@ -143,13 +218,24 @@
        proxy.$modal.msgError("请选择规格");
        return;
      }
      createStockInventory(formState.value).then(res => {
        // 关闭模态框
        isShow.value = false;
        // 告知父组件已完成
        emit('completed');
        proxy.$modal.msgSuccess("提交成功");
      })
      if (props.type === 'qualified') {
        createStockInventory(formState.value).then(res => {
          // 关闭模态框
          isShow.value = false;
          // 告知父组件已完成
          emit('completed');
          proxy.$modal.msgSuccess("提交成功");
        })
      } else {
        createStockUnInventory(formState.value).then(res => {
          // 关闭模态框
          isShow.value = false;
          // 告知父组件已完成
          emit('completed');
          proxy.$modal.msgSuccess("提交成功");
        })
      }
    }
  })
};