修复后台最近传输记录的问题

This commit is contained in:
2026-03-28 19:29:13 +08:00
parent 8b5f7d517e
commit 689c356a55
7 changed files with 60 additions and 21 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

17
frontend/dist/assets/index-sgHRZUw3.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -4,8 +4,8 @@
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>AirShare Pro</title> <title>AirShare Pro</title>
<script type="module" crossorigin src="/assets/index-BoiTbES-.js"></script> <script type="module" crossorigin src="/assets/index-sgHRZUw3.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-C-7tVt-S.css"> <link rel="stylesheet" crossorigin href="/assets/index-qzWUgf-t.css">
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>

View File

@@ -2863,6 +2863,24 @@ handleIncomingTransferFile = function handleIncomingTransferFileOverride(envelop
item.progress = 100 item.progress = 100
item.tone = 'success' item.tone = 'success'
} }
mapTransferRecord = function mapTransferRecordOverride(record) {
const isCompleted = record.final_status === 'completed'
const isFailed = record.final_status === 'failed' || record.final_status === 'cancelled'
const displayName = normalizeDisplayName(record.name, 'file')
return {
time: formatRelativeTime(record.created_at),
peer: `${shortId(record.sender_device_id)} -> ${shortId(record.receiver_device_id)}`,
type: record.kind === 'text' ? '鏂囨湰娑堟伅' : `鏂囦欢 ${displayName}`,
size: formatFileSize(Number(record.size_bytes || 0)),
status: isCompleted
? `宸插畬鎴?(${record.current_channel || 'p2p'})`
: isFailed
? `宸茬粨鏉?(${record.final_status})`
: `杩涜涓?(${record.final_status || 'pending'})`,
tone: isCompleted ? 'success' : isFailed ? 'danger' : 'primary',
}
}
</script> </script>
<template> <template>

View File

@@ -207,7 +207,9 @@ function getFluidStyle(percent) {
<tr v-for="record in records" :key="`${record.time}-${record.peer}`"> <tr v-for="record in records" :key="`${record.time}-${record.peer}`">
<td>{{ record.time }}</td> <td>{{ record.time }}</td>
<td>{{ record.peer }}</td> <td>{{ record.peer }}</td>
<td>{{ record.type }}</td> <td class="admin-record-type-cell">
<span class="admin-record-type" :title="record.type">{{ record.type }}</span>
</td>
<td>{{ record.size }}</td> <td>{{ record.size }}</td>
<td :style="getRecordStyle(record.tone)">{{ record.status }}</td> <td :style="getRecordStyle(record.tone)">{{ record.status }}</td>
</tr> </tr>

View File

@@ -1298,6 +1298,8 @@ body[data-theme="dark"] .batch-item:hover {
.admin-table { .admin-table {
width: 100%; width: 100%;
min-width: 0;
table-layout: fixed;
margin-top: 10px; margin-top: 10px;
border-collapse: collapse; border-collapse: collapse;
font-size: 14px; font-size: 14px;
@@ -1320,6 +1322,7 @@ body[data-theme="dark"] .batch-item:hover {
padding: 14px 12px; padding: 14px 12px;
color: var(--text-main); color: var(--text-main);
border-bottom: 1px solid var(--item-border); border-bottom: 1px solid var(--item-border);
vertical-align: top;
} }
.admin-table tbody tr:last-child td { .admin-table tbody tr:last-child td {
@@ -1330,6 +1333,22 @@ body[data-theme="dark"] .batch-item:hover {
background-color: var(--item-bg-hover); background-color: var(--item-bg-hover);
} }
.admin-record-type-cell {
width: 42%;
}
.admin-record-type {
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
white-space: normal;
overflow-wrap: anywhere;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
line-height: 1.45;
max-height: calc(1.45em * 2);
}
.hidden { .hidden {
display: none !important; display: none !important;
} }