This commit is contained in:
@@ -27,10 +27,13 @@
|
||||
<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 }">
|
||||
<view v-if="exhibit.linkedExhibitStatusText || exhibit.galleryStatusText" class="detail-chip-row">
|
||||
<view v-if="exhibit.linkedExhibitStatusText" class="detail-chip" :class="{ shared: exhibit.isSharedStop }">
|
||||
<text class="detail-chip-text">{{ exhibit.linkedExhibitStatusText }}</text>
|
||||
</view>
|
||||
<view v-if="exhibit.galleryStatusText" class="detail-chip">
|
||||
<text class="detail-chip-text">{{ exhibit.galleryStatusText }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view
|
||||
@@ -67,6 +70,36 @@
|
||||
</view>
|
||||
<text v-if="textError" class="text-error">{{ textError }}</text>
|
||||
</view>
|
||||
|
||||
<view v-if="visibleLinkedExhibits.length" class="content-section">
|
||||
<text class="section-title">关联展品</text>
|
||||
<view class="linked-exhibit-list">
|
||||
<view
|
||||
v-for="linked in visibleLinkedExhibits"
|
||||
:key="linked.id"
|
||||
class="linked-exhibit-item"
|
||||
>
|
||||
<image
|
||||
v-if="linked.coverImageUrl"
|
||||
class="linked-exhibit-image"
|
||||
:src="linked.coverImageUrl"
|
||||
mode="aspectFill"
|
||||
/>
|
||||
<view v-else class="linked-exhibit-image placeholder">
|
||||
<text class="linked-exhibit-placeholder">展品</text>
|
||||
</view>
|
||||
<view class="linked-exhibit-main">
|
||||
<text class="linked-exhibit-name">{{ linked.name }}</text>
|
||||
<text v-if="linked.exhibitCode || linked.code" class="linked-exhibit-code">
|
||||
{{ linked.exhibitCode || linked.code }}
|
||||
</text>
|
||||
<text v-if="linked.galleryUrls?.length" class="linked-exhibit-gallery">
|
||||
图集 {{ linked.galleryUrls.length }} 张
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
|
||||
@@ -168,6 +201,10 @@ const canExpandText = computed(() => (
|
||||
&& !textExpanded.value
|
||||
&& !textLoading.value
|
||||
))
|
||||
const visibleLinkedExhibits = computed(() => (
|
||||
[...(exhibit.value.linkedExhibits || [])]
|
||||
.sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0))
|
||||
))
|
||||
|
||||
// 讲解详情页只定位到所属展厅,不再追踪具体展品点位。
|
||||
const resolveHallGuidePoi = async () => {
|
||||
@@ -641,6 +678,76 @@ const handleBack = () => {
|
||||
color: #8a4a31;
|
||||
}
|
||||
|
||||
.linked-exhibit-list {
|
||||
margin-top: 14px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.linked-exhibit-item {
|
||||
min-height: 72px;
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 12px;
|
||||
box-sizing: border-box;
|
||||
background: #ffffff;
|
||||
border: 1px solid #e1e5dc;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.linked-exhibit-image {
|
||||
flex-shrink: 0;
|
||||
width: 52px;
|
||||
height: 52px;
|
||||
border-radius: 6px;
|
||||
background: #eef1e8;
|
||||
}
|
||||
|
||||
.linked-exhibit-image.placeholder {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.linked-exhibit-placeholder,
|
||||
.linked-exhibit-name,
|
||||
.linked-exhibit-code,
|
||||
.linked-exhibit-gallery {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.linked-exhibit-placeholder {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
font-weight: 700;
|
||||
color: #68725d;
|
||||
}
|
||||
|
||||
.linked-exhibit-main {
|
||||
min-width: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.linked-exhibit-name {
|
||||
font-size: 15px;
|
||||
line-height: 21px;
|
||||
font-weight: 800;
|
||||
color: #151713;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.linked-exhibit-code,
|
||||
.linked-exhibit-gallery {
|
||||
margin-top: 3px;
|
||||
font-size: 12px;
|
||||
line-height: 17px;
|
||||
color: #666d61;
|
||||
}
|
||||
|
||||
.action-bar {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
|
||||
Reference in New Issue
Block a user