|
57 | 57 |
|
58 | 58 | <!-- 检索结果 --> |
59 | 59 | <div v-if="hasSearched" class="results-section"> |
60 | | - <div class="d-flex align-center mb-4"> |
| 60 | + <div class="results-heading d-flex align-center mb-4"> |
61 | 61 | <h3 class="text-h6">{{ t('retrieval.results') }}</h3> |
62 | | - <v-chip class="ml-3" color="primary" variant="tonal" size="small"> |
| 62 | + <v-chip color="primary" variant="tonal" size="small"> |
63 | 63 | {{ results.length }} {{ t('retrieval.results') }} |
64 | 64 | </v-chip> |
65 | 65 | </div> |
66 | 66 |
|
67 | 67 | <!-- 结果列表 --> |
68 | 68 | <div v-if="results.length > 0" class="results-list"> |
69 | 69 | <v-card v-for="(result, index) in results" :key="result.chunk_id" variant="outlined" class="mb-4"> |
70 | | - <v-card-title class="d-flex align-center pa-2"> |
71 | | - <v-chip size="x-small" color="primary" class="mr-2"> |
| 70 | + <v-card-title class="result-card-header d-flex align-center pa-2"> |
| 71 | + <v-chip size="x-small" color="primary"> |
72 | 72 | #{{ index + 1 }} |
73 | 73 | </v-chip> |
74 | | - <span class="text-subtitle-1"> |
| 74 | + <span class="result-title text-subtitle-1"> |
75 | 75 | {{ t('retrieval.chunk', { index: result.chunk_index }) }} |
76 | 76 | </span> |
77 | | - <div class="ml-4"> |
78 | | - <v-chip size="x-small" variant="tonal" class="mr-2"> |
| 77 | + <div class="result-meta ml-2"> |
| 78 | + <v-chip size="x-small" variant="tonal" class="result-document-chip"> |
79 | 79 | <v-icon start size="small">mdi-file-document</v-icon> |
80 | 80 | {{ result.doc_name }} |
81 | 81 | </v-chip> |
|
85 | 85 | </v-chip> |
86 | 86 | </div> |
87 | 87 | <v-spacer /> |
88 | | - <v-chip size="x-small" :color="getScoreColor(result.score)"> |
| 88 | + <v-chip class="result-score" size="x-small" :color="getScoreColor(result.score)"> |
89 | 89 | {{ t('retrieval.score') }}: {{ result.score.toFixed(4) }} |
90 | 90 | </v-chip> |
91 | 91 | </v-card-title> |
@@ -240,4 +240,64 @@ const getScoreColor = (score: number) => { |
240 | 240 | overflow-y: auto; |
241 | 241 | font-size: 13px; |
242 | 242 | } |
| 243 | +
|
| 244 | +.result-card-header, |
| 245 | +.result-meta { |
| 246 | + gap: 8px; |
| 247 | +} |
| 248 | +
|
| 249 | +.results-heading { |
| 250 | + gap: 12px; |
| 251 | +} |
| 252 | +
|
| 253 | +.result-meta { |
| 254 | + align-items: center; |
| 255 | + display: flex; |
| 256 | + min-width: 0; |
| 257 | +} |
| 258 | +
|
| 259 | +.result-document-chip { |
| 260 | + max-width: min(280px, 40vw); |
| 261 | +} |
| 262 | +
|
| 263 | +.result-document-chip :deep(.v-chip__content) { |
| 264 | + overflow: hidden; |
| 265 | + text-overflow: ellipsis; |
| 266 | + white-space: nowrap; |
| 267 | +} |
| 268 | +
|
| 269 | +@media (max-width: 768px) { |
| 270 | + .result-card-header { |
| 271 | + align-items: flex-start !important; |
| 272 | + flex-wrap: wrap; |
| 273 | + } |
| 274 | +
|
| 275 | + .result-title { |
| 276 | + flex: 1 1 auto; |
| 277 | + min-width: 0; |
| 278 | + } |
| 279 | +
|
| 280 | + .result-meta { |
| 281 | + flex: 1 1 100%; |
| 282 | + flex-wrap: wrap; |
| 283 | + margin-left: 0 !important; |
| 284 | + order: 2; |
| 285 | + } |
| 286 | +
|
| 287 | + .result-document-chip { |
| 288 | + max-width: 100%; |
| 289 | + } |
| 290 | +
|
| 291 | + .result-score { |
| 292 | + margin-left: auto; |
| 293 | + } |
| 294 | +
|
| 295 | + .results-heading { |
| 296 | + flex-wrap: wrap; |
| 297 | + } |
| 298 | +
|
| 299 | + .results-heading .v-chip { |
| 300 | + margin-left: 0 !important; |
| 301 | + } |
| 302 | +} |
243 | 303 | </style> |
0 commit comments