diff --git a/src/api/mes/dvrepair/index.ts b/src/api/mes/dvrepair/index.ts index f3f9c4b7..881b088e 100644 --- a/src/api/mes/dvrepair/index.ts +++ b/src/api/mes/dvrepair/index.ts @@ -15,6 +15,16 @@ export interface DvRepairVO { finishDate: Date // 完成日期 confirmDate: Date // 验收日期 repairResult: string // 维修结果 + repairStatus?: string // 维修结果状态 + faultPhenomenon?: string // 故障现象 + faultDescription?: string // 故障描述 + faultImages?: string // 故障图片,逗号分隔 + downtimeDuration?: string // 停机时长 + faultReason?: string // 故障原因 + handlingMeasures?: string // 处理措施 + replacementParts?: string // 更换配件 + repairContent?: string // 维修内容 + repairedImages?: string // 维修后图片,逗号分隔 acceptedBy: string // 维修人员 confirmBy: string // 验收人员 status: string // 单据状态 diff --git a/src/components/UploadFile/src/UploadImgs.vue b/src/components/UploadFile/src/UploadImgs.vue index 86e1109c..6bd31db1 100644 --- a/src/components/UploadFile/src/UploadImgs.vue +++ b/src/components/UploadFile/src/UploadImgs.vue @@ -119,18 +119,27 @@ interface UploadEmits { } const emit = defineEmits() +const unwrapUploadPayload = (res: any) => { + if (!res) return undefined + const payload = res.data ?? res + if (payload && typeof payload === 'object' && payload.data) { + return payload.data + } + return payload +} + const getUrlFromRes = (res: any): string => { if (!res) return '' if (typeof res === 'string') return res if (typeof res.data === 'string') return res.data - const data = res.data || res + const data = unwrapUploadPayload(res) if (typeof data === 'string') return data if (data.fileUrl) return data.fileUrl return '' } const getNameFromRes = (res: any, url: string): string => { - const data = res && res.data ? res.data : res + const data = unwrapUploadPayload(res) if (data && typeof data === 'object' && data.fileName) return data.fileName if (!url) return '' const idx = url.lastIndexOf('/') diff --git a/src/locales/en.ts b/src/locales/en.ts index 7e2ddee2..49418503 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -1584,6 +1584,15 @@ export default { finishDate: 'Finish Date', confirmDate: 'Accept Date', repairResult: 'Repair Result', + faultPhenomenon: 'Fault Phenomenon', + faultDescription: 'Fault Description', + faultImages: 'On-site Images', + downtimeDuration: 'Downtime Duration', + faultReason: 'Fault Reason', + handlingMeasures: 'Handling Measures', + replacementParts: 'Replacement Parts', + repairContent: 'Repair Content', + repairedImages: 'After-repair Images', repairStatus: 'Result', status: 'Order Status', deviceTypeDevice: 'Device', @@ -1623,7 +1632,16 @@ export default { placeholderRequireDate: 'Select request date', placeholderFinishDate: 'Select finish date', placeholderConfirmDate: 'Select accept date', + placeholderRepairResult: 'Please select repair result', placeholderAutoFill: 'Auto fill', + placeholderFaultPhenomenon: 'Please enter fault phenomenon', + placeholderFaultDescription: 'Please enter fault description', + placeholderDowntimeDuration: 'Please enter downtime duration', + placeholderFaultReason: 'Please enter fault reason', + placeholderHandlingMeasures: 'Please enter handling measures', + placeholderReplacementParts: 'Please enter replacement parts (optional)', + placeholderRepairContent: 'Please describe the repair process and result', + placeholderRemark: 'Please enter remarks within 300 characters', placeholderLineSubjectCode: 'Please input repair code', placeholderLineSubjectName: 'Please input repair name', placeholderLineSubjectContent: 'Please input repair content', @@ -1637,6 +1655,8 @@ export default { validatorFinishDateRequired: 'Finish date can not be empty', validatorConfirmDateRequired: 'Accept date can not be empty', validatorRepairResultRequired: 'Repair result can not be empty', + validatorFaultPhenomenonRequired: 'Fault phenomenon can not be empty', + validatorComponentRequired: 'Component can not be empty', validatorLineRepairIdRequired: 'Repair order ID can not be empty', validatorLineSubjectIdRequired: 'Item ID can not be empty', validatorLineSubjectCodeRequired: 'Item code can not be empty', diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts index 627218dc..6e9a3026 100644 --- a/src/locales/zh-CN.ts +++ b/src/locales/zh-CN.ts @@ -1581,6 +1581,15 @@ export default { finishDate: '完成日期', confirmDate: '验收日期', repairResult: '维修结果', + faultPhenomenon: '故障现象', + faultDescription: '故障描述', + faultImages: '现场图片', + downtimeDuration: '停机时长', + faultReason: '故障原因', + handlingMeasures: '处理措施', + replacementParts: '更换配件', + repairContent: '维修总结 / 维修内容', + repairedImages: '附件 / 维修后图片', repairStatus: '结果', status: '单据状态', deviceTypeDevice: '设备', @@ -1620,7 +1629,16 @@ export default { placeholderRequireDate: '选择报修日期', placeholderFinishDate: '选择完成日期', placeholderConfirmDate: '选择验收日期', + placeholderRepairResult: '请选择维修结果', placeholderAutoFill: '自动带出', + placeholderFaultPhenomenon: '请输入故障现象', + placeholderFaultDescription: '请输入故障描述', + placeholderDowntimeDuration: '请输入停机时长', + placeholderFaultReason: '请输入故障原因', + placeholderHandlingMeasures: '请输入处理措施', + placeholderReplacementParts: '请输入更换配件(可选)', + placeholderRepairContent: '请详细描述维修过程、处理情况及结果', + placeholderRemark: '请输入备注信息,限 300 字以内', placeholderLineSubjectCode: '请输入维修编码', placeholderLineSubjectName: '请输入维修名称', placeholderLineSubjectContent: '请输入维修内容', @@ -1634,6 +1652,8 @@ export default { validatorFinishDateRequired: '完成日期不能为空', validatorConfirmDateRequired: '验收日期不能为空', validatorRepairResultRequired: '维修结果不能为空', + validatorFaultPhenomenonRequired: '故障现象不能为空', + validatorComponentRequired: '关键件不能为空', validatorLineRepairIdRequired: '维修单ID不能为空', validatorLineSubjectIdRequired: '项目ID不能为空', validatorLineSubjectCodeRequired: '项目编码不能为空', diff --git a/src/views/mes/dvrepair/DvRepairForm.vue b/src/views/mes/dvrepair/DvRepairForm.vue index 863e83d0..82ec0879 100644 --- a/src/views/mes/dvrepair/DvRepairForm.vue +++ b/src/views/mes/dvrepair/DvRepairForm.vue @@ -1,167 +1,380 @@ + + + diff --git a/src/views/mes/dvrepair/index.vue b/src/views/mes/dvrepair/index.vue index 4f3704ab..b04f2ee1 100644 --- a/src/views/mes/dvrepair/index.vue +++ b/src/views/mes/dvrepair/index.vue @@ -120,6 +120,20 @@ + + + + + + @@ -147,23 +161,8 @@ prop="confirmDate" :formatter="dateFormatter2" width="110px" sortable /> - - - - - - - + v-if="String(scope.row.status) !== '1' && !isProcessedRepair(scope.row.repairStatus)" v-hasPermi="['mes:dv-repair:update']"> {{ t('EquipmentManagement.DvRepair.repair') }} {{ t('action.update') }} + + {{ t('action.detail') }} + {{ t('action.delete') }} @@ -276,6 +282,11 @@ const getResultTagType = (value: any) => { return 'info' } +const isProcessedRepair = (value: any) => { + const v = value === '' || value === null || value === undefined ? '0' : String(value) + return v !== '0' +} + const tableRef = ref() const selectedIds = ref([]) const handleSelectionChange = (rows: any[]) => {