| | |
| | | <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" |
| | |
| | | </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="请输入规格型号" |
| | |
| | | </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="请选择报修日期" |
| | |
| | | </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" |
| | |
| | | </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) => { |
| | |
| | | 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({ |
| | |
| | | resetForm, |
| | | getForm, |
| | | setForm, |
| | | submitForm |
| | | }); |
| | | </script> |
| | | |