|
|
@@ -262,6 +262,20 @@ function formatScore(value: number | null): string {
|
|
|
return value.toFixed(value > 1 ? 2 : 3)
|
|
|
}
|
|
|
|
|
|
+function engagementText(video: {
|
|
|
+ like_count: number | null
|
|
|
+ comment_count: number | null
|
|
|
+ collect_count: number | null
|
|
|
+ share_count: number | null
|
|
|
+}): string {
|
|
|
+ return [
|
|
|
+ `赞 ${formatCount(video.like_count)}`,
|
|
|
+ `评 ${formatCount(video.comment_count)}`,
|
|
|
+ `藏 ${formatCount(video.collect_count)}`,
|
|
|
+ `转 ${formatCount(video.share_count)}`,
|
|
|
+ ].join(' · ')
|
|
|
+}
|
|
|
+
|
|
|
function formatJson(value: JsonValue): string {
|
|
|
if (value === null || value === undefined || value === '') return '暂无数据'
|
|
|
if (typeof value === 'string') return value
|
|
|
@@ -510,14 +524,20 @@ function openCandidate(candidate: VideoDiscoveryCandidateRecord) {
|
|
|
<span class="bucket-pill" :class="`bucket-${video.decision_bucket}`">
|
|
|
{{ bucketLabel(video.decision_bucket) }}
|
|
|
</span>
|
|
|
- <strong>{{ video.title || '未命名视频' }}</strong>
|
|
|
- <small>{{ video.author_name || '未知作者' }} · {{ video.aweme_id }}</small>
|
|
|
+ <strong :title="video.title || '未命名视频'">
|
|
|
+ {{ video.title || '未命名视频' }}
|
|
|
+ </strong>
|
|
|
+ <small :title="`${video.author_name || '未知作者'} · ${video.aweme_id}`">
|
|
|
+ {{ video.author_name || '未知作者' }} · {{ video.aweme_id }}
|
|
|
+ </small>
|
|
|
</div>
|
|
|
<div class="search-video-metrics">
|
|
|
<span>{{ formatCount(video.play_count) }} 播放</span>
|
|
|
- <span>{{ formatCount(video.like_count) }} 点赞</span>
|
|
|
<span>V {{ formatScore(video.value_score) }}</span>
|
|
|
</div>
|
|
|
+ <p class="engagement-line" :title="engagementText(video)">
|
|
|
+ {{ engagementText(video) }}
|
|
|
+ </p>
|
|
|
<a
|
|
|
v-if="video.content_link"
|
|
|
:href="video.content_link"
|
|
|
@@ -577,14 +597,17 @@ function openCandidate(candidate: VideoDiscoveryCandidateRecord) {
|
|
|
</span>
|
|
|
</td>
|
|
|
<td class="wide-cell video-cell">
|
|
|
- <strong>{{ item.title || '未命名视频' }}</strong>
|
|
|
- <small>{{ item.author_name || '未知作者' }} · {{ item.aweme_id }}</small>
|
|
|
+ <strong :title="item.title || '未命名视频'">
|
|
|
+ {{ item.title || '未命名视频' }}
|
|
|
+ </strong>
|
|
|
+ <small :title="`${item.author_name || '未知作者'} · ${item.aweme_id}`">
|
|
|
+ {{ item.author_name || '未知作者' }} · {{ item.aweme_id }}
|
|
|
+ </small>
|
|
|
</td>
|
|
|
<td>
|
|
|
<strong>{{ formatCount(item.play_count) }} 播放</strong>
|
|
|
- <small>
|
|
|
- 赞 {{ formatCount(item.like_count) }} · 评 {{ formatCount(item.comment_count) }}
|
|
|
- · 藏 {{ formatCount(item.collect_count) }} · 转 {{ formatCount(item.share_count) }}
|
|
|
+ <small :title="engagementText(item)">
|
|
|
+ {{ engagementText(item) }}
|
|
|
</small>
|
|
|
</td>
|
|
|
<td>
|
|
|
@@ -1206,6 +1229,17 @@ td small {
|
|
|
text-align: right;
|
|
|
white-space: nowrap;
|
|
|
}
|
|
|
+.search-video-grid .engagement-line {
|
|
|
+ grid-column: 1 / -1;
|
|
|
+ margin: 0;
|
|
|
+ overflow: hidden;
|
|
|
+ color: #626a7a;
|
|
|
+ font-size: 12px;
|
|
|
+ line-height: 1.5;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ cursor: help;
|
|
|
+}
|
|
|
.search-video-grid article a {
|
|
|
width: fit-content;
|
|
|
color: #5b5dc7;
|