From 7b98e878494f79e9d9c6193919ad5a27dfd7673b Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 3 Apr 2026 19:02:22 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=BF=9D=E5=85=BB=E8=AE=B0=E5=BD=95=E7=9B=B8=E5=85=B3=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=8F=8A=E6=96=B0=E5=A2=9E=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整保养记录请求对象,新增保养计划编号、设备编号和保养人编号字段。更新查询逻辑以支持新字段,并新增获取保养记录明细列表和根据记录编号删除明细的功能。优化表单组件以支持详情模式。 --- .../dv/maintenrecord/MaintenRecordForm.vue | 20 +++++++++++++------ src/views/mes/dv/maintenrecord/index.vue | 9 +++++++-- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/views/mes/dv/maintenrecord/MaintenRecordForm.vue b/src/views/mes/dv/maintenrecord/MaintenRecordForm.vue index 006147593..3625c347d 100644 --- a/src/views/mes/dv/maintenrecord/MaintenRecordForm.vue +++ b/src/views/mes/dv/maintenrecord/MaintenRecordForm.vue @@ -6,6 +6,7 @@ :model="formData" :rules="formRules" label-width="100px" + :disabled="isDetail" > @@ -46,11 +47,11 @@ @@ -61,16 +62,19 @@ import DvMachinerySelect from '@/views/mes/dv/machinery/components/DvMachinerySe import DvCheckPlanSelect from '@/views/mes/dv/checkplan/components/DvCheckPlanSelect.vue' import UserSelect from '@/views/system/user/components/UserSelect.vue' import MaintenRecordLineList from './MaintenRecordLineList.vue' +import { useUserStore } from '@/store/modules/user' defineOptions({ name: 'MaintenRecordForm' }) const { t } = useI18n() // 国际化 const message = useMessage() // 消息弹窗 +const userStore = useUserStore() const dialogVisible = ref(false) // 弹窗的是否展示 const dialogTitle = ref('') // 弹窗的标题 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 -const formType = ref('') // 表单的类型:create - 新增;update - 修改 +const formType = ref('') // 表单的类型:create - 新增;update - 修改;detail - 详情 +const isDetail = computed(() => formType.value === 'detail') // 是否为详情模式 const formData = ref({ id: undefined, planId: undefined, @@ -88,10 +92,10 @@ const formRef = ref() // 表单 Ref /** 打开弹窗 */ const open = async (type: string, id?: number) => { dialogVisible.value = true - dialogTitle.value = t('action.' + type) + dialogTitle.value = type === 'detail' ? '保养记录详情' : t('action.' + type) formType.value = type resetForm() - // 修改时,设置数据 + // 修改/详情时,设置数据 if (id) { formLoading.value = true try { @@ -100,6 +104,10 @@ const open = async (type: string, id?: number) => { formLoading.value = false } } + // 新增时,自动填充当前登录用户 + if (type === 'create') { + formData.value.userId = userStore.getUser.id + } } defineExpose({ open }) // 提供 open 方法,用于打开弹窗 diff --git a/src/views/mes/dv/maintenrecord/index.vue b/src/views/mes/dv/maintenrecord/index.vue index 2801383fc..bdb401804 100644 --- a/src/views/mes/dv/maintenrecord/index.vue +++ b/src/views/mes/dv/maintenrecord/index.vue @@ -55,6 +55,7 @@ + @@ -67,18 +68,22 @@ :formatter="dateFormatter" width="180px" /> - - + +