From 0f1bb51d5ef65f420b714f063efcdc25c4a9139b Mon Sep 17 00:00:00 2001 From: hwj Date: Wed, 17 Jun 2026 10:30:19 +0800 Subject: [PATCH] =?UTF-8?q?style=EF=BC=9A=E6=A8=A1=E5=85=B7=E7=BB=84-?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E8=AE=B0=E5=BD=95=E5=AD=97=E6=AE=B5=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/erp/mold/detail/brand.vue | 310 +++++++++++++++++++++++++--- 1 file changed, 276 insertions(+), 34 deletions(-) diff --git a/src/views/erp/mold/detail/brand.vue b/src/views/erp/mold/detail/brand.vue index d5a08226..49cd7e53 100644 --- a/src/views/erp/mold/detail/brand.vue +++ b/src/views/erp/mold/detail/brand.vue @@ -157,7 +157,12 @@ - +
-
-
{{ t('MoldManagement.MoldBrandDetail.moldCode') }}{{ row.moldCode ?? '-' }}
-
{{ t('MoldManagement.MoldBrandDetail.repairStatus') }}{{ - getRepairStatusLabel(row.status) }}
-
{{ t('EquipmentManagement.DvRepair.repairStatus') }} +
+
基本信息
+
{{ t('MoldManagement.MoldBrandDetail.repairCode') }}{{ row.repairCode ?? '-' }}
+
{{ t('MoldManagement.MoldRepair.repairName') }}{{ row.repairName ?? '-' }}
+
{{ t('MoldManagement.MoldBrandDetail.requireDate') }}{{ formatHistoryTime(row.requireDate) }}
+
{{ t('MoldManagement.MoldRepair.repairUser') }}{{ row.acceptedByName ?? row.acceptedName ?? row.acceptedBy ?? '-' }}
+
{{ t('MoldManagement.MoldRepair.confirmUser') }}{{ row.confirmByName ?? row.confirmName ?? row.confirmBy ?? '-' }}
+
{{ t('MoldManagement.MoldBrandDetail.repairStatus') }}{{ + getRepairStatusLabel(row.status) }}
+
{{ t('EquipmentManagement.DvRepair.repairStatus') }}{{ getRepairResultLabel(row.repairStatus) }}
-
{{ t('MoldManagement.MoldBrandDetail.requireDate') }}{{ formatHistoryTime(row.requireDate) }}
-
{{ t('MoldManagement.MoldBrandDetail.finishDate') }}{{ formatHistoryTime(row.finishDate) }}
-
{{ t('MoldManagement.MoldRepair.faultImages') }} -
- +
+
维修对象
+
{{ t('MoldManagement.MoldRepair.moldName') }}{{ row.moldName ?? row.machineryName ?? '-' }}
+
{{ t('MoldManagement.MoldBrandDetail.moldCode') }}{{ row.moldCode ?? row.machineryCode ?? '-' }}
+
规格型号{{ row.machinerySpec ?? row.moldSpec ?? '-' }}
+
品牌{{ row.machineryBrand ?? row.moldBrand ?? '-' }}
+
+
+
故障信息
+
{{ t('MoldManagement.MoldRepair.faultLevel') }} + -
-
-
-
+ - +
+
{{ t('MoldManagement.MoldRepair.isShutdown') }}{{ formatBooleanLabel(row.shutdown ?? row.isShutdown) }}
+
{{ t('MoldManagement.MoldRepair.faultPhenomenon') }}{{ row.faultPhenomenon ?? '-' }}
+
{{ t('MoldManagement.MoldRepair.faultDescription') }}{{ row.faultDescription ?? '-' }}
+
{{ t('MoldManagement.MoldRepair.faultImages') }} +
+ +
+
-
+
+
{{ t('MoldManagement.MoldBrandDetail.remark') }}{{ row.remark ?? '-' }}
+
+
+
+
+ 处理结果 + + {{ isRepairResultExpanded(row) ? '收起' : '展开' }} + +
+
+
{{ t('MoldManagement.MoldRepair.repairResult') }}{{ + getRepairResultLabel(row.repairStatus) }}
+
{{ t('MoldManagement.MoldBrandDetail.finishDate') }}{{ formatHistoryTime(row.finishDate) }}
+
{{ t('MoldManagement.MoldRepair.confirmDate') }}{{ formatHistoryTime(row.confirmDate) }}
+
{{ t('MoldManagement.MoldRepair.downtimeDuration') }}{{ formatDowntimeDuration(row.downtimeDuration) }}
+
{{ t('MoldManagement.MoldRepair.faultReason') }}{{ row.faultReason ?? '-' }}
+
{{ t('MoldManagement.MoldRepair.handlingMeasures') }}{{ row.handlingMeasures ?? '-' }}
+
{{ t('MoldManagement.MoldRepair.replacementParts') }}{{ row.replacementParts ?? '-' }}
+
{{ t('MoldManagement.MoldRepair.repairContent') }}{{ row.repairContent ?? '-' }}
+
{{ t('MoldManagement.MoldRepair.repairedImages') }} +
+ +
+
-
+
+
@@ -443,6 +549,7 @@ const installDateRange = ref() const installOperateType = ref() const moldList = ref([]) const repairActiveNames = ref([]) +const repairResultActiveNames = ref([]) const inspectionDateRange = ref() const maintainDateRange = ref() const repairDateRange = ref() @@ -485,6 +592,36 @@ const formatHistoryTime = (value: any) => { return String(raw) } +const formatBooleanLabel = (value: any) => { + if (value === undefined || value === null || value === '') return '-' + if (value === true || value === 1 || value === '1' || value === 'true') return t('common.yes') + if (value === false || value === 0 || value === '0' || value === 'false') return t('common.no') + return String(value) +} + +const formatDowntimeDuration = (value: any) => { + if (value === undefined || value === null || value === '') return '-' + return `${value}小时` +} + +const shouldShowRepairResult = (row: any) => { + const value = row?.repairStatus ?? row?.repairResult + const status = value === undefined || value === null || value === '' ? '0' : String(value) + return status !== '0' +} + +const getRepairRowKey = (row: any) => String(row?.id ?? row?.repairCode ?? '') + +const isRepairResultExpanded = (row: any) => repairResultActiveNames.value.includes(getRepairRowKey(row)) + +const toggleRepairResult = (row: any) => { + const key = getRepairRowKey(row) + if (!key) return + repairResultActiveNames.value = isRepairResultExpanded(row) + ? repairResultActiveNames.value.filter((item) => item !== key) + : [...repairResultActiveNames.value, key] +} + const parseImages = (value: any): string[] => { if (!value) return [] if (Array.isArray(value)) return value.map(String).filter(Boolean) @@ -782,6 +919,7 @@ const fetchRepairHistory = async () => { const data = await MoldRepairApi.getMoldRepairList(params) repairList.value = Array.isArray(data) ? data : [] repairActiveNames.value = repairList.value.map((row: any) => String(row.id ?? row.repairCode)) + repairResultActiveNames.value = [] } finally { repairLoading.value = false } @@ -1092,6 +1230,39 @@ onMounted(() => { margin-top: 10px; } +.device-ledger-repair-collapse { + border-top: 0; + border-bottom: 0; +} + +.device-ledger-repair-collapse :deep(.device-ledger-repair-collapse-item) { + overflow: hidden; + margin-bottom: 14px; + border: 1px solid var(--el-border-color-lighter); + border-radius: 10px; + background: #fff; + box-shadow: 0 2px 8px rgb(31 45 61 / 6%); +} + +.device-ledger-repair-collapse :deep(.device-ledger-repair-collapse-item:nth-child(even)) { + background: #fbfdff; +} + +.device-ledger-repair-collapse :deep(.device-ledger-repair-collapse-item:last-child) { + margin-bottom: 0; +} + +.device-ledger-repair-collapse :deep(.device-ledger-repair-collapse-item .el-collapse-item__header) { + height: 46px; + padding: 0 14px; + border-bottom-color: var(--el-border-color-lighter); + +} + +.device-ledger-repair-collapse :deep(.device-ledger-repair-collapse-item .el-collapse-item__content) { + padding: 14px; +} + .device-ledger-history-title, .device-ledger-repair-title { display: flex; @@ -1117,6 +1288,24 @@ onMounted(() => { border-radius: 12px; } +.device-ledger-repair-collapse .device-ledger-history-item { + position: relative; + padding: 16px; + border-color: var(--el-border-color); + background: #fff; +} + +.device-ledger-repair-collapse .device-ledger-history-item::before { + position: absolute; + top: 16px; + bottom: 16px; + left: 0; + width: 4px; + border-radius: 0 4px 4px 0; + background: var(--el-color-primary); + content: ''; +} + .device-ledger-history-item-head { display: flex; align-items: center; @@ -1129,6 +1318,50 @@ onMounted(() => { gap: 8px; } +.device-ledger-repair-overview { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; +} + +.device-ledger-repair-overview > .device-ledger-history-item-body { + padding: 12px; + border: 1px solid var(--el-border-color-lighter); + border-radius: 8px; + background: var(--el-fill-color-lighter); +} + +.device-ledger-repair-overview .device-ledger-history-item-row, +.device-ledger-repair-result .device-ledger-history-item-row { + grid-template-columns: 128px minmax(0, 1fr); +} + +.device-ledger-repair-result { + margin-top: 14px; + padding: 12px; + border: 1px solid var(--el-border-color-lighter); + border-radius: 8px; + background: var(--el-fill-color-lighter); +} + +.device-ledger-repair-result-head { + display: flex; + align-items: center; + justify-content: space-between; + gap: 12px; +} + +.device-ledger-repair-section-title { + margin-top: 4px; + padding-bottom: 2px; + font-weight: 600; + color: var(--el-text-color-primary); +} + +.device-ledger-repair-section-title:first-child { + margin-top: 0; +} + .device-ledger-history-item-row { display: grid; grid-template-columns: 88px minmax(0, 1fr); @@ -1143,6 +1376,11 @@ onMounted(() => { color: var(--el-text-color-secondary); } +.device-ledger-history-item-value { + min-width: 0; + word-break: break-word; +} + .device-ledger-repair-images { display: flex; flex-wrap: wrap; @@ -1192,5 +1430,9 @@ onMounted(() => { .mold-brand-detail__grid { grid-template-columns: 1fr; } + + .device-ledger-repair-overview { + grid-template-columns: 1fr; + } }