<template>
|
<FormDialog
|
v-model="visible"
|
:title="'设备维修'"
|
width="500px"
|
@confirm="sendForm"
|
@cancel="handleCancel"
|
@close="handleClose"
|
>
|
<el-form :model="form" label-width="80px">
|
<el-form-item label="维修人">
|
<el-input v-model="form.maintenanceName" placeholder="请输入维修人" />
|
</el-form-item>
|
<el-form-item label="维修结果">
|
<el-input v-model="form.maintenanceResult" placeholder="请输入维修结果" />
|
</el-form-item>
|
<el-form-item label="维修状态">
|
<el-select v-model="form.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-form-item label="维修日期">
|
<el-date-picker
|
v-model="form.maintenanceTime"
|
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>
|
</FormDialog>
|
</template>
|
|
<script setup>
|
import FormDialog from "@/components/Dialog/FormDialog.vue";
|
import { addMaintain } from "@/api/equipmentManagement/repair";
|
import useFormData from "@/hooks/useFormData";
|
import useUserStore from "@/store/modules/user";
|
import dayjs from "dayjs";
|
import { ElMessage } from "element-plus";
|
|
defineOptions({
|
name: "维修模态框",
|
});
|
|
const emits = defineEmits(["ok"]);
|
|
// 保存报修记录的id
|
const repairId = ref();
|
const visible = ref(false);
|
const loading = ref(false);
|
|
const userStore = useUserStore();
|
const { form, resetForm } = useFormData({
|
maintenanceName: undefined, // 维修名称
|
maintenanceResult: undefined, // 维修结果
|
maintenanceTime: undefined, // 维修日期
|
status: 0,
|
});
|
|
const setForm = (data) => {
|
form.maintenanceName = data.maintenanceName ?? userStore.nickName;
|
form.maintenanceResult = data.maintenanceResult;
|
form.maintenanceTime =
|
data.maintenanceTime
|
? dayjs(data.maintenanceTime).format("YYYY-MM-DD HH:mm:ss")
|
: dayjs().format("YYYY-MM-DD HH:mm:ss");
|
form.status = 1; // 默认状态为完结
|
};
|
|
const sendForm = async () => {
|
loading.value = true;
|
try {
|
const { code } = await addMaintain({ id: repairId.value, ...form });
|
if (code == 200) {
|
ElMessage.success("维修成功");
|
emits("ok");
|
resetForm();
|
visible.value = false;
|
}
|
} finally {
|
loading.value = false;
|
}
|
};
|
|
const handleCancel = () => {
|
resetForm();
|
visible.value = false;
|
};
|
|
const handleClose = () => {
|
resetForm();
|
visible.value = false;
|
};
|
|
const open = async (id, row) => {
|
repairId.value = id; // 保存报修记录的id
|
visible.value = true;
|
await nextTick();
|
setForm(row);
|
};
|
|
defineExpose({
|
open,
|
});
|
</script>
|
|
<style lang="scss" scoped></style>
|