feat: switch explain flow to API data
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
lyf
2026-07-06 23:18:51 +08:00
parent e2b6a331ba
commit 50902eca82
21 changed files with 1417 additions and 632 deletions

View File

@@ -24,9 +24,14 @@
<text class="hero-placeholder-text">讲解</text>
</view>
<view class="detail-body">
<text class="detail-title">{{ exhibit.title }}</text>
<text v-if="detailMeta" class="detail-meta">{{ detailMeta }}</text>
<view class="detail-body">
<text class="detail-title">{{ exhibit.title }}</text>
<text v-if="detailMeta" class="detail-meta">{{ detailMeta }}</text>
<view v-if="exhibit.linkedExhibitStatusText" class="detail-chip-row">
<view class="detail-chip" :class="{ shared: exhibit.isSharedStop }">
<text class="detail-chip-text">{{ exhibit.linkedExhibitStatusText }}</text>
</view>
</view>
<view
v-if="exhibit.audio.status === 'playable'"
@@ -328,6 +333,8 @@ const handleAudioError = async (_audio: AudioItem | null, message: string) => {
audioLanguage: exhibit.value.audio.language,
playTargetType: exhibit.value.audio.playTargetType,
playTargetId: exhibit.value.audio.playTargetId
}, {
refreshPlayInfo: true
})
if (selection.playable && selection.media?.url) {
@@ -491,6 +498,46 @@ const handleBack = () => {
color: #555c51;
}
.detail-chip-row {
margin-top: 12px;
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.detail-chip {
max-width: 100%;
height: 28px;
padding: 0 10px;
display: flex;
align-items: center;
box-sizing: border-box;
background: #f4f6ef;
border: 1px solid #dde2d3;
border-radius: 8px;
}
.detail-chip.shared {
background: #151713;
border-color: #151713;
}
.detail-chip-text {
display: block;
max-width: 100%;
font-size: 13px;
line-height: 18px;
font-weight: 700;
color: #555c51;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.detail-chip.shared .detail-chip-text {
color: #e0df00;
}
.audio-panel {
height: 76px;
margin-top: 24px;