| | |
| | | <el-form :model="form" label-width="100px"> |
| | | <el-form-item label="实际保养人"> |
| | | <el-input |
| | | v-model="form.maintenanceActuallyName" |
| | | placeholder="请输入实际保养人" |
| | | :model-value="currentUserName" |
| | | disabled |
| | | placeholder="当前登录用户" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="实际保养日期"> |
| | |
| | | </template> |
| | | |
| | | <script setup> |
| | | import { computed } from "vue"; |
| | | import FormDialog from "@/components/Dialog/FormDialog.vue"; |
| | | import { addMaintenance } from "@/api/equipmentManagement/upkeep"; |
| | | import useFormData from "@/hooks/useFormData"; |
| | |
| | | const loading = ref(false); |
| | | const userStore = useUserStore(); |
| | | |
| | | const currentUserName = computed(() => userStore.nickName || userStore.name || ""); |
| | | |
| | | const { form, resetForm } = useFormData({ |
| | | maintenanceActuallyName: undefined, // 实际保养人 |
| | | maintenanceActuallyTime: undefined, // 实际保养日期 |
| | |
| | | }); |
| | | |
| | | const setForm = (data) => { |
| | | form.maintenanceActuallyName = |
| | | data.maintenanceActuallyName ?? userStore.nickName; |
| | | // 实际保养人自动填充当前登录人,不可编辑 |
| | | form.maintenanceActuallyName = userStore.nickName || userStore.name || ""; |
| | | form.maintenanceActuallyTime = |
| | | data.maintenanceActuallyTime |
| | | data.maintenanceActuallyTime |
| | | ? dayjs(data.maintenanceActuallyTime).format("YYYY-MM-DD HH:mm:ss") |
| | | : dayjs().format("YYYY-MM-DD HH:mm:ss"); |
| | | form.maintenanceResult = data.maintenanceResult; |
| | |
| | | const sendForm = async () => { |
| | | loading.value = true; |
| | | try { |
| | | const { code } = await addMaintenance({ id: planId.value, ...form }); |
| | | // 确保实际保养人是当前登录人 |
| | | const payload = { |
| | | ...form, |
| | | maintenanceActuallyName: userStore.nickName || userStore.name || "", |
| | | }; |
| | | const { code } = await addMaintenance({ id: planId.value, ...payload }); |
| | | if (code == 200) { |
| | | ElMessage.success("保养成功"); |
| | | emits("ok"); |
| | |
| | | @cancel="handleCancel" |
| | | @close="handleClose" |
| | | > |
| | | <el-form :model="form" label-width="100px"> |
| | | <el-form :model="form" :rules="rules" label-width="100px"> |
| | | <el-form-item label="设备名称"> |
| | | <el-select |
| | | v-model="form.deviceLedgerId" |
| | |
| | | placeholder="当前登录用户" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="保养人"> |
| | | <el-form-item label="保养人" prop="maintenancePerson"> |
| | | <el-select |
| | | v-model="form.maintenancePerson" |
| | | filterable |
| | | default-first-option |
| | | :reserve-keyword="false" |
| | | placeholder="请选择保养人" |
| | | clearable |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | |
| | | () => userStore.nickName || userStore.name || "当前登录用户" |
| | | ); |
| | | |
| | | const rules = { |
| | | maintenancePerson: [{ required: true, message: "请选择保养人", trigger: "change" }], |
| | | }; |
| | | |
| | | const syncCreateUserFromLogin = () => { |
| | | if (userStore.id != null && userStore.id !== "") { |
| | | form.createUser = userStore.id; |
| | |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="任务状态"> |
| | | <el-switch |
| | | v-model="form.isActive" |
| | | :active-value="1" |
| | | :inactive-value="0" |
| | | active-text="启用" |
| | | inactive-text="停用" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | |
| | | week: '', |
| | | time: '', |
| | | deviceModel: undefined, // 规格型号 |
| | | registrationDate: '' |
| | | registrationDate: '', |
| | | isActive: 0, // 任务状态:0-停用,1-启用 |
| | | }, |
| | | rules: { |
| | | taskId: [{ required: true, message: "请选择设备", trigger: "change" },], |
| | |
| | | week: '', |
| | | time: '', |
| | | deviceModel: undefined, |
| | | registrationDate: '' |
| | | registrationDate: '', |
| | | isActive: 0, |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | // 录入日期:直接使用表单里的 registrationDate 字段 |
| | | // 一些默认状态字段 |
| | | if (payload.status === undefined || payload.status === null || payload.status === '') { |
| | | payload.status = '0' // 默认状态,可按实际枚举调整 |
| | | if (payload.isActive === undefined || payload.isActive === null) { |
| | | payload.isActive = 0 // 默认停用 |
| | | } |
| | | payload.active = true |
| | | payload.deleted = 0 |
| | | |
| | | if (operationType.value === 'edit') { |
| | |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="任务状态"> |
| | | <el-select v-model="scheduledFilters.status" placeholder="请选择任务状态" clearable style="width: 200px"> |
| | | <el-option label="启用" value="1" /> |
| | | <el-option label="停用" value="0" /> |
| | | <el-select v-model="scheduledFilters.isActive" placeholder="请选择任务状态" clearable style="width: 200px"> |
| | | <el-option label="启用" :value="1" /> |
| | | <el-option label="停用" :value="0" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | |
| | | @pagination="changeScheduledPage" |
| | | > |
| | | <template #statusRef="{ row }"> |
| | | <el-tag v-if="row.status === 1" type="success">启用</el-tag> |
| | | <el-tag v-if="row.status === 0" type="danger">停用</el-tag> |
| | | <el-tag v-if="row.isActive === 1" type="success">启用</el-tag> |
| | | <el-tag v-if="row.isActive === 0" type="danger">停用</el-tag> |
| | | </template> |
| | | <template #operation="{ row }"> |
| | | <el-button |
| | |
| | | // 定时任务管理tab相关变量 |
| | | const scheduledFilters = reactive({ |
| | | taskName: '', |
| | | status: '', |
| | | isActive: '', |
| | | }) |
| | | |
| | | const scheduledDataList = ref([]) |
| | |
| | | showOverflowTooltip: true, |
| | | }, |
| | | { prop: "registrationDate", label: "登记日期", minWidth: 100 }, |
| | | { |
| | | label: "任务状态", |
| | | prop: "isActive", |
| | | minWidth: 100, |
| | | dataType: "slot", |
| | | slot: "statusRef", |
| | | align: "center", |
| | | }, |
| | | { |
| | | fixed: "right", |
| | | label: "操作", |
| | |
| | | current: scheduledPagination.currentPage, |
| | | size: scheduledPagination.pageSize, |
| | | taskName: scheduledFilters.taskName || undefined, |
| | | status: scheduledFilters.status || undefined, |
| | | isActive: scheduledFilters.isActive !== '' ? scheduledFilters.isActive : undefined, |
| | | } |
| | | const { code, data } = await deviceMaintenanceTaskList(params) |
| | | if (code === 200) { |
| | |
| | | |
| | | const resetScheduledFilters = () => { |
| | | scheduledFilters.taskName = '' |
| | | scheduledFilters.status = '' |
| | | scheduledFilters.isActive = '' |
| | | getScheduledTableData() |
| | | } |
| | | |