src/views/inventoryManagement/stockManagement/New.vue
@@ -7,17 +7,7 @@
        @close="closeModal"
    >
      <el-form label-width="140px" :model="formState" label-position="top" ref="formRef">
        <el-form-item
            label="产品名称"
            prop="productModelId"
            :rules="[
                {
                required: true,
                message: '请选择产品',
                trigger: 'change',
              }
            ]"
        >
        <el-form-item label="产品名称" prop="productName">
          <el-button type="primary" @click="showProductSelectDialog = true">
            {{ formState.productName ? formState.productName : '选择产品' }}
          </el-button>
@@ -38,10 +28,44 @@
        </el-form-item>
        <el-form-item
            label="数量"
            prop="qualitity"
            label="库存类型"
            prop="inventoryType"
            :rules="[
              {
                required: true,
                message: '请选择库存类型',
                trigger: 'change',
              }
            ]"
        >
          <el-input-number v-model="formState.qualitity" :step="1" :min="0" style="width: 100%" />
          <el-select
            v-model="formState.inventoryType"
            placeholder="请选择库存类型"
            clearable
            filterable
            style="width: 100%"
          >
            <el-option
              label="合格库存"
              value="qualified"
            />
            <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
            v-if="formState.inventoryType === '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 +90,25 @@
</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";
const props = defineProps({
  visible: {
    type: Boolean,
    required: true,
  },
  type: {
    type: String,
    required: true,
    default: 'qualified',
  },
  parentId: {
    type: [Number, String],
    default: undefined,
  },
});
@@ -83,10 +118,12 @@
const formState = ref({
  productId: undefined,
  productModelId: undefined,
  inventoryType: "qualified",
  productName: "",
  productModelName: "",
  unit: "",
  qualitity: 0,
  warnNum: 0,
  remark: '',
});
@@ -108,9 +145,13 @@
  formState.value = {
    productId: undefined,
    productModelId: undefined,
    inventoryType: props.type || "qualified",
    productName: "",
    productModelName: "",
    description: '',
    unit: "",
    qualitity: 0,
    warnNum: 0,
    remark: '',
  };
  isShow.value = false;
};
@@ -119,7 +160,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;
@@ -143,13 +183,24 @@
        proxy.$modal.msgError("请选择规格");
        return;
      }
      createStockInventory(formState.value).then(res => {
        // 关闭模态框
        isShow.value = false;
        // 告知父组件已完成
        emit('completed');
        proxy.$modal.msgSuccess("提交成功");
      })
      if (formState.value.inventoryType === '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("提交成功");
        })
      }
    }
  })
};
@@ -160,4 +211,14 @@
  handleSubmit,
  isShow,
});
watch(
  () => props.visible,
  (visible) => {
    if (visible) {
      formState.value.inventoryType = props.type || "qualified";
    }
  },
  { immediate: true }
);
</script>