src/views/equipmentManagement/repair/Form/RepairForm.vue
@@ -1,9 +1,9 @@
<template>
  <el-form :model="form" label-width="100px">
  <el-form :model="form" ref="formModelRefs" :rules="rules" label-width="100px">
    <el-row>
      <el-col :span="12">
        <el-form-item label="设备名称">
          <el-select v-model="form.deviceLedgerId" @change="setDeviceModel">
        <el-form-item label="设备名称" prop="deviceLedgerId">
          <el-select v-model="form.deviceLedgerId" @change="setDeviceModel" filterable>
            <el-option
              v-for="(item, index) in deviceOptions"
              :key="index"
@@ -14,7 +14,7 @@
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="规格型号">
        <el-form-item label="规格型号" prop="deviceModel">
          <el-input
            v-model="form.deviceModel"
            placeholder="请输入规格型号"
@@ -23,7 +23,7 @@
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="报修日期">
        <el-form-item label="报修日期" prop="repairTime">
          <el-date-picker
            v-model="form.repairTime"
            placeholder="请选择报修日期"
@@ -36,12 +36,44 @@
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="报修人">
          <el-input v-model="form.repairName" placeholder="请输入报修人" />
        <el-form-item label="报修人员" prop="repairName">
          <el-input v-model="form.repairName" placeholder="请输入报修人员" />
        </el-form-item>
      </el-col>
    </el-row>
    <el-row v-if="id">
      <el-col :span="12">
        <el-form-item label="报修状态">
          <el-select v-model="form.status" prop="status">
            <el-option label="待维修" :value="0"></el-option>
            <el-option label="完结" :value="1"></el-option>
            <el-option label="失败" :value="2"></el-option>
          </el-select>
        </el-form-item>
      </el-col>
    </el-row>
    <el-row>
      <el-col :span="12">
        <el-form-item label="报修金额" prop="maintenancePrice">
          <el-input-number
              style="width: 100%"
              :min="0"
              v-model="form.maintenancePrice"
              placeholder="请输入保修金额"
          />
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="审批人员" prop="approverId">
          <el-select v-model="form.approverId" placeholder="请选择审批人员" clearable>
            <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId" />
          </el-select>
        </el-form-item>
      </el-col>
    </el-row>
    <el-row>
      <el-col :span="24">
        <el-form-item label="故障现象">
        <el-form-item label="故障现象" prop="remark">
          <el-input
            v-model="form.remark"
            :rows="2"
@@ -55,28 +87,59 @@
</template>
<script setup>
import {onMounted} from "vue"
import dayjs from "dayjs";
import useFormData from "@/hooks/useFormData";
import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
import { onMounted } from "vue";
import useUserStore from "@/store/modules/user";
import { userListNoPage } from "@/api/system/user.js";
const { id } = defineProps(["id"])
defineOptions({
  name: "设备报修表单",
});
const userStore = useUserStore();
const deviceOptions = ref([]);
const formModelRefs = ref(null)
const userList = ref(null)
const loadDeviceName = async () => {
  const { data } = await getDeviceLedger();
  deviceOptions.value = data;
};
const rules = {
  deviceLedgerId: [{ required: true, message: "请选择设备名称", trigger: "change" }],
  repairTime: [{ required: true, message: "请选择报修日期", trigger: "change" }],
  repairName: [{ required: true, message: "请输入报修人", trigger: "blur" }],
  remark: [{ required: true, message: "请输入故障现象", trigger: "blur" }],
  maintenancePrice: [{ required: true, message: "请输入保修金额", trigger: "blur" }],
  approverId:[{required: true,message: "请选择审批人", trigger: "change"}]
};
// 校验表单是否合规
const submitForm = async () => {
  if (!formModelRefs.value) return false;
  try {
    await formModelRefs.value.validate();
    return true; // 表单验证通过
  } catch (error) {
    return false; // 表单验证失败
  }
};
const { form, resetForm } = useFormData({
  deviceLedgerId: undefined, // 设备Id
  deviceName: undefined, // 设备名称
  deviceModel: undefined, // 规格型号
  repairTime: undefined, // 报修日期
  repairName: undefined, // 报修人
  repairTime: dayjs().format("YYYY-MM-DD"), // 报修日期,默认当天
  repairName: userStore.nickName, // 报修人
  remark: undefined, // 故障现象
  status: 0, // 报修状态
  maintenancePrice:0, // 保修金额
});
const setDeviceModel = (id) => {
@@ -95,10 +158,14 @@
  form.repairTime = data.repairTime;
  form.repairName = data.repairName;
  form.remark = data.remark;
  form.status = data.status;
  form.maintenancePrice = data.maintenancePrice
};
onMounted(() => {
  loadDeviceName();
onMounted(async() => {
  // loadDeviceName();
  let userLists = await userListNoPage();
  userList.value = userLists.data;
});
defineExpose({
@@ -106,6 +173,7 @@
  resetForm,
  getForm,
  setForm,
  submitForm
});
</script>