feat:维修单模块修改

test
黄伟杰 2 weeks ago
parent 28c7322d71
commit f180d30cbb

@ -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 // 单据状态

@ -119,18 +119,27 @@ interface UploadEmits {
}
const emit = defineEmits<UploadEmits>()
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('/')

@ -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',

@ -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: '项目编码不能为空',

File diff suppressed because it is too large Load Diff

@ -120,6 +120,20 @@
<el-table-column type="selection" width="55px" fixed="left" reserve-selection />
<el-table-column :label="t('EquipmentManagement.DvRepair.repairCode')" align="center" prop="repairCode" minWidth="180px" sortable />
<el-table-column :label="t('EquipmentManagement.DvRepair.repairName')" align="center" prop="repairName" sortable />
<el-table-column :label="t('EquipmentManagement.DvRepair.status')" align="center" prop="status" width="110px" sortable>
<template #default="scope">
<el-tag :type="getStatusTagType(scope.row.status)" effect="light">
{{ getStatusLabel(scope.row.status) }}
</el-tag>
</template>
</el-table-column>
<el-table-column :label="t('EquipmentManagement.DvRepair.repairStatus')" align="center" prop="repairStatus" min-width="120" sortable>
<template #default="scope">
<el-tag :type="getResultTagType(scope.row.repairStatus)" effect="light">
{{ getResultLabel(scope.row.repairStatus) }}
</el-tag>
</template>
</el-table-column>
<el-table-column :label="t('EquipmentManagement.DvRepair.machineryName')" align="center" prop="machineryName" minWidth="180px" sortable />
<el-table-column :label="t('EquipmentManagement.DvRepair.machineryCode')" align="center" prop="machineryCode" minWidth="180px" sortable />
<!-- <el-table-column label="品牌" align="center" prop="machineryBrand" /> -->
@ -147,23 +161,8 @@
prop="confirmDate"
:formatter="dateFormatter2"
width="110px" sortable />
<el-table-column :label="t('EquipmentManagement.DvRepair.repairResult')" align="center" prop="repairResult" minWidth="130px"/>
<el-table-column :label="t('EquipmentManagement.DvRepair.acceptedBy')" align="center" prop="acceptedBy" minWidth="150px"/>
<el-table-column :label="t('EquipmentManagement.DvRepair.confirmBy')" align="center" prop="confirmBy" minWidth="150px"/>
<el-table-column :label="t('EquipmentManagement.DvRepair.status')" align="center" prop="status" width="110px" sortable>
<template #default="scope">
<el-tag :type="getStatusTagType(scope.row.status)" effect="light">
{{ getStatusLabel(scope.row.status) }}
</el-tag>
</template>
</el-table-column>
<el-table-column :label="t('EquipmentManagement.DvRepair.repairStatus')" align="center" prop="repairStatus" min-width="120" sortable>
<template #default="scope">
<el-tag :type="getResultTagType(scope.row.repairStatus)" effect="light">
{{ getResultLabel(scope.row.repairStatus) }}
</el-tag>
</template>
</el-table-column>
<!-- <el-table-column label="备注" align="center" prop="remark" /> -->
<el-table-column
:label="t('EquipmentManagement.DvRepair.createTime')" align="center" prop="createTime" :formatter="dateFormatter" width="170px"
@ -172,14 +171,21 @@
<template #default="scope">
<el-button
link type="primary" @click="openForm('repair', scope.row.id)"
v-if="String(scope.row.status) !== '1'" v-hasPermi="['mes:dv-repair:update']">
v-if="String(scope.row.status) !== '1' && !isProcessedRepair(scope.row.repairStatus)" v-hasPermi="['mes:dv-repair:update']">
{{ t('EquipmentManagement.DvRepair.repair') }}
</el-button>
<el-button
v-if="!isProcessedRepair(scope.row.repairStatus)"
link type="primary" @click="openForm('update', scope.row.id)"
v-hasPermi="['mes:dv-repair:update']">
{{ t('action.update') }}
</el-button>
<el-button
v-else
link type="primary" @click="openForm('detail', scope.row.id)"
v-hasPermi="['mes:dv-repair:update']">
{{ t('action.detail') }}
</el-button>
<el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['mes:dv-repair:delete']">
{{ t('action.delete') }}
</el-button>
@ -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<number[]>([])
const handleSelectionChange = (rows: any[]) => {

Loading…
Cancel
Save