diff --git a/src/views/mes/deviceledger/detail/index.vue b/src/views/mes/deviceledger/detail/index.vue index e28e03a8..29df7293 100644 --- a/src/views/mes/deviceledger/detail/index.vue +++ b/src/views/mes/deviceledger/detail/index.vue @@ -317,34 +317,54 @@ {{ t('action.export') }} - - - + + + + + + @@ -731,6 +773,10 @@ type RepairHistoryRow = { repairId?: any repairCode?: any repairName?: any + acceptedBy?: any + confirmBy?: any + creator?: any + creatorName?: any subjectId?: any subjectCode?: any subjectName?: any @@ -739,41 +785,43 @@ type RepairHistoryRow = { malfunction?: any malfunctionUrl?: any repairDes?: any + faultPhenomenon?: any + faultDescription?: any + faultImages?: any + handlingMeasures?: any + replacementParts?: any + repairContent?: any + repairedImages?: any remark?: any createTime?: any finishDate?: any result?: any repairResult?: any - malfunctionImages?: string[] } -type RepairHistoryGroup = { key: string; name: string; items: RepairHistoryRow[] } +type RepairHistoryStepRow = RepairHistoryRow & { + key: string + time: string + operator: string + faultImageList: string[] + repairedImageList: string[] +} -const repairActiveNames = ref([]) const repairList = ref([]) -const repairGroups = computed(() => { - const groupsMap = new Map() - for (const row of repairList.value ?? []) { - const key = String(row.repairCode ?? row.repairId ?? row.subjectName ?? '-') - if (!groupsMap.has(key)) { - groupsMap.set(key, { - key, - name: String(row.repairName ?? row.repairCode ?? key), - items: [] - }) - } - const group = groupsMap.get(key)! - group.items.push({ - ...row, - malfunctionImages: parseImages(row?.malfunctionUrl) +const repairStepRows = computed(() => { + return (repairList.value ?? []) + .map((row) => { + const time = formatHistoryTime(row.finishDate ?? row.createTime) + return { + ...row, + key: String(row.id ?? row.repairId ?? row.repairCode ?? `${row.repairName ?? '-'}__${time}`), + time, + operator: String(row.acceptedBy ?? row.confirmBy ?? row.creatorName ?? row.creator ?? '-'), + faultImageList: parseImages(row.faultImages), + repairedImageList: parseImages(row.repairedImages) + } }) - } - const groups = Array.from(groupsMap.values()).filter((g) => g.items.length) - return groups.sort((a, b) => { - const at = formatHistoryTime(a.items?.[0]?.finishDate ?? a.items?.[0]?.createTime) - const bt = formatHistoryTime(b.items?.[0]?.finishDate ?? b.items?.[0]?.createTime) - return String(bt).localeCompare(String(at)) - }) + .sort((a, b) => String(b.time).localeCompare(String(a.time))) }) const inspectionExportLoading = ref(false) @@ -943,8 +991,6 @@ const getDetail = async () => { await fetchInspectionHistory() await fetchMaintainHistory() await fetchRepairHistory() - const keys = repairGroups.value.map((g) => g.key) - repairActiveNames.value = keys.length ? [keys[0]] : [] } finally { detailLoading.value = false } @@ -1217,6 +1263,16 @@ onMounted(async () => { margin-top: 4px; } +.device-ledger-history-image-group { + margin-top: 4px; +} + +.device-ledger-history-image-title { + margin-bottom: 6px; + color: var(--el-text-color-secondary); + font-size: 13px; +} + .device-ledger-history-item-image { width: 76px; height: 76px; @@ -1235,27 +1291,6 @@ onMounted(async () => { justify-content: center; } -.device-ledger-repair-collapse { - padding: 8px 8px 0; -} - -.device-ledger-repair-title { - display: flex; - align-items: center; - justify-content: space-between; - width: 100%; -} - -.device-ledger-repair-name { - font-weight: 600; - color: var(--el-text-color-primary); -} - -.device-ledger-repair-meta { - font-size: 12px; - color: var(--el-text-color-secondary); -} - .device-ledger-history-item-text { color: var(--el-text-color-regular); }