| | |
| | | <template> |
| | | <el-dialog v-model="visible" :title="modalOptions.title" direction="ltr"> |
| | | <MaintenanceForm ref="maintenanceFormRef" /> |
| | | <el-form :model="form" :rules="rules" label-width="110px" ref="formRef"> |
| | | <el-form-item label="实际保养人" prop="maintenanceActuallyName"> |
| | | <el-input |
| | | v-model="form.maintenanceActuallyName" |
| | | placeholder="请输入实际保养人" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="实际保养日期" prop="maintenanceActuallyTime"> |
| | | <el-date-picker |
| | | v-model="form.maintenanceActuallyTime" |
| | | placeholder="请选择实际保养日期" |
| | | format="YYYY-MM-DD HH:mm:ss" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | type="datetime" |
| | | clearable |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="保养结果" prop="maintenanceResult"> |
| | | <el-select v-model="form.maintenanceResult" placeholder="请选择保养结果"> |
| | | <el-option label="完好" :value="1"></el-option> |
| | | <el-option label="维修" :value="0"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="本次维修金额" prop="money"> |
| | | <el-input-number v-model="form.money" :min="0" :precision="2" style="width: 100%" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <template #footer> |
| | | <el-button type="primary" @click="sendForm" :loading="loading"> |
| | | {{ modalOptions.confirmText }} |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import MaintenanceForm from "../Form/MaintenanceForm.vue"; |
| | | import { ref, nextTick } from "vue"; |
| | | import { useModal } from "@/hooks/useModal"; |
| | | import useFormData from "@/hooks/useFormData"; |
| | | import useUserStore from "@/store/modules/user"; |
| | | import dayjs from "dayjs"; |
| | | import { addMaintenance } from "@/api/equipmentManagement/upkeep"; |
| | | |
| | | defineOptions({ |
| | | name: "保养模态框", |
| | | }); |
| | | |
| | | const maintenanceFormRef = ref(); |
| | | const emits = defineEmits(["ok"]); |
| | | |
| | | const { |
| | |
| | | /** |
| | | * @desc 保存保养 |
| | | */ |
| | | const userStore = useUserStore(); |
| | | const formRef = ref(); |
| | | const { form, resetForm } = useFormData({ |
| | | maintenanceActuallyName: undefined, // 实际保养人 |
| | | maintenanceActuallyTime: undefined, // 实际保养日期 |
| | | maintenanceResult: undefined, // 保养结果 |
| | | money: undefined, // 保养金额 |
| | | }); |
| | | |
| | | const rules = { |
| | | maintenanceActuallyName: [ |
| | | { required: true, message: "请输入实际保养人", trigger: "blur" }, |
| | | ], |
| | | maintenanceActuallyTime: [ |
| | | { required: true, message: "请选择实际保养日期", trigger: "change" }, |
| | | ], |
| | | maintenanceResult: [ |
| | | { required: true, message: "请选择保养结果", trigger: "change" }, |
| | | ], |
| | | money: [ |
| | | { required: true, message: "请输入本次保养金额", trigger: "change" }, |
| | | ], |
| | | }; |
| | | |
| | | const sendForm = async () => { |
| | | await formRef.value.validate(async (valid) => { |
| | | if (!valid) return; |
| | | loading.value = true; |
| | | const form = await maintenanceFormRef.value.getForm(); |
| | | const { code } = await addMaintenance({ id: id.value, ...form }); |
| | | if (code == 200) { |
| | | emits("ok"); |
| | | maintenanceFormRef.value.resetForm(); |
| | | resetForm(); |
| | | closeModal(); |
| | | } |
| | | loading.value = false; |
| | | }); |
| | | }; |
| | | |
| | | const open = async (id, row) => { |
| | | openModal(id); |
| | | await nextTick(); |
| | | maintenanceFormRef.value.setForm(row); |
| | | if (!row) { |
| | | resetForm(); |
| | | form.maintenanceActuallyName = userStore.nickName; |
| | | return; |
| | | } |
| | | form.maintenanceActuallyName = row.maintenanceActuallyName ?? userStore.nickName; |
| | | form.maintenanceActuallyTime = row.maintenanceActuallyTime |
| | | ? dayjs(row.maintenanceActuallyTime).format("YYYY-MM-DD HH:mm:ss") |
| | | : undefined; |
| | | form.maintenanceResult = row.maintenanceResult; |
| | | form.money = row.money; |
| | | }; |
| | | defineExpose({ |
| | | open, |