src/views/equipment/management/mould/equipmentRequisitionDialog.vue
@@ -7,7 +7,12 @@
  >
    <el-form :model="form" :rules="rules" ref="formRef" label-width="150px">
      <el-form-item label="领用人" prop="userId">
        <el-select v-model="form.userId" placeholder="请选择" :disabled="isViewMode">
        <el-select
          v-model="form.userId"
          placeholder="请选择"
          :disabled="isViewMode"
          @change="getEquipment"
        >
          <el-option
            v-for="item in userList"
            :key="item.userId"
@@ -17,7 +22,11 @@
        </el-select>
      </el-form-item>
      <el-form-item label="设备名称" prop="equipmentId">
        <el-select v-model="form.equipmentId" placeholder="请选择" :disabled="isViewMode">
        <el-select
          v-model="form.equipmentId"
          placeholder="请选择"
          :disabled="isViewMode"
        >
          <el-option
            v-for="item in equipmentList"
            :key="item.id"
@@ -52,9 +61,14 @@
      </el-form-item>
      <el-form-item label="使用状态" prop="equipmentStatus">
        <!-- 编辑的时候自动匹配 -->
        <el-select v-model="form.equipmentStatus" placeholder="请选择" :disabled="isViewMode">
          <el-option label="使用中" value="0" />
          <el-option label="已归还" value="1" />
        <el-select
          v-model="form.equipmentStatus"
          placeholder="请选择"
          :disabled="isViewMode"
          default-first-option
        >
          <el-option label="使用中" :value="1" />
          <el-option label="已归还" :value="2" :disabled="props.id" />
        </el-select>
      </el-form-item>
      <el-form-item label="使用开始时间" prop="usageStartTime">
@@ -87,7 +101,9 @@
    </el-form>
    <template #footer>
      <el-button @click="handleClose">取消</el-button>
      <el-button type="primary" @click="handleSubmit" v-if="!isViewMode">确定</el-button>
      <el-button type="primary" @click="handleSubmit" v-if="!isViewMode"
        >确定</el-button
      >
    </template>
  </el-dialog>
</template>
@@ -100,7 +116,6 @@
import useUserStore from "@/store/modules/user";
onMounted(() => {});
const userStore = useUserStore();
let userList = ref([]);
userStore.getUserList().then((res) => {
@@ -108,9 +123,17 @@
});
// 获取设备列表
const equipmentList = ref([]);
getEquipmentList().then((res) => {
  equipmentList.value = res.data;
});
// 获取最新数据
const getEquipment = async () => {
  try {
    await getEquipmentList().then((res) => {
      equipmentList.value = res.data;
    });
  } catch (error) {
    ElMessage.error("获取设备列表失败");
  }
};
const props = defineProps({
  modelValue: Boolean,
  formData: {
@@ -129,6 +152,10 @@
    type: String,
    default: "",
  },
  equipmentStatus: {
    type: [Number, String], // 允许数字或字符串
    default: 1,
  },
});
const maxQuantity = computed(() => {
  if (!form.value.equipmentId) return 0;
@@ -144,7 +171,12 @@
  get: () => props.modelValue,
  set: (v) => emit("update:modelValue", v),
});
const isViewMode = computed(() => props.addOrEdit === "view" || props.addOrEdit === "viewRow");
const isViewMode = computed(
  () =>
    props.addOrEdit === "view" ||
    props.addOrEdit === "viewRow" ||
    Number(props.equipmentStatus) === 2
);
const isEdit = computed(() => !!props.formData?.id);
const formRef = ref();
@@ -154,19 +186,32 @@
  userId: "",
  equipmentId: "",
  usageQuantity: 1,
  equipmentStatus: 1,
  equipmentStatus: 1, // 默认使用中
  usageStartTime: "",
  remarks: ""
  remarks: "",
};
const form = ref({ ...defaultForm });
// 确保初始化时使用状态有默认值
onMounted(() => {
  if (
    form.value.equipmentStatus === undefined ||
    form.value.equipmentStatus === null
  ) {
    console.log(form.value.equipmentStatus);
    form.value.equipmentStatus = 1;
  }
  getEquipment();
});
watch(
  () => props.formData,
  (val) => {
    if (val && Object.keys(val).length > 0) {
      form.value = { ...defaultForm, ...val };
      // 编辑模式,直接赋值,不使用默认值合并
      form.value = { ...val };
    } else {
      // 新建时重置为初始值,防止脏数据
      // 新增模式,使用默认值
      form.value = { ...defaultForm };
    }
  },