|
@@ -67,16 +67,13 @@
|
|
|
}"
|
|
|
@click="activeTabIndex = 2"
|
|
|
>
|
|
|
- <span>图片<template v-if="activeTabIndex === 2 && imageUrlList?.length && imageUrlList.length > 1">{{ activeSwiperItemIndex + 1 }}/{{ imageUrlList?.length }}</template></span>
|
|
|
+ <span>图片<template v-if="activeTabIndex === 2 && imageUrlList?.length && imageUrlList.length > 1">{{
|
|
|
+ activeSwiperItemIndex + 1 }}/{{ imageUrlList?.length }}</template></span>
|
|
|
</button>
|
|
|
</div>
|
|
|
|
|
|
- <div
|
|
|
- class="main-wrapper"
|
|
|
- >
|
|
|
- <div
|
|
|
- class="swiper-root"
|
|
|
- >
|
|
|
+ <div class="main-wrapper">
|
|
|
+ <div class="swiper-root">
|
|
|
<div
|
|
|
v-if="activeTabIndex === 0"
|
|
|
class="swiper-wrapper"
|
|
@@ -203,6 +200,15 @@
|
|
|
<template v-if="rawData.value?.entity?.type">
|
|
|
类型:{{ rawData.value?.entity?.type }}
|
|
|
</template>
|
|
|
+
|
|
|
+ <span
|
|
|
+ v-for="item in G4ResList"
|
|
|
+ :key="item.id"
|
|
|
+ class="G3tabRow"
|
|
|
+ @click="$router.push(`/metaverse?id=${item.id}`)"
|
|
|
+ >
|
|
|
+ {{ item.name }}
|
|
|
+ </span>
|
|
|
</div>
|
|
|
<p
|
|
|
v-if="rawData.value?.entity?.description"
|
|
@@ -233,9 +239,11 @@
|
|
|
</button>
|
|
|
<button
|
|
|
v-if="canRecord && activeTabIndex === 0"
|
|
|
- @click="$router.push({name: 'RecordView', query: {
|
|
|
- url: encodeURI(`${prefix}/web-model/index.html#/relic-detail?model-path=${encodeURIComponent(modelUrlList[activeSwiperItemIndex].filePath)}`)
|
|
|
- }})"
|
|
|
+ @click="$router.push({
|
|
|
+ name: 'RecordView', query: {
|
|
|
+ url: encodeURI(`${prefix}/web-model/index.html#/relic-detail?model-path=${encodeURIComponent(modelUrlList[activeSwiperItemIndex].filePath)}`)
|
|
|
+ }
|
|
|
+ })"
|
|
|
>
|
|
|
<img
|
|
|
class=""
|
|
@@ -273,7 +281,7 @@ import Swiper from 'swiper/bundle'
|
|
|
import 'swiper/css/bundle'
|
|
|
|
|
|
export default {
|
|
|
- setup () {
|
|
|
+ setup() {
|
|
|
const prefix = process.env.VUE_APP_API_ORIGIN
|
|
|
/**
|
|
|
* 路由
|
|
@@ -352,7 +360,7 @@ export default {
|
|
|
afterInit: function (e) {
|
|
|
activeSwiperItemIndex.value = e.activeIndex
|
|
|
},
|
|
|
- slideChange: function(e) {
|
|
|
+ slideChange: function (e) {
|
|
|
activeSwiperItemIndex.value = e.activeIndex
|
|
|
// 停止视频播放
|
|
|
if (activeTabIndex.value === 1) {
|
|
@@ -411,7 +419,20 @@ export default {
|
|
|
const videoUrlList = reactive([])
|
|
|
const imageUrlList = reactive([])
|
|
|
let isBgAudioChanged = false
|
|
|
+
|
|
|
+ // 标签列表
|
|
|
+ const G4ResList = ref([])
|
|
|
+
|
|
|
api.getTreasureDetail(route.query.id).then((res) => {
|
|
|
+
|
|
|
+ // 获取标签列表
|
|
|
+ let acIds = res.entity.mateIds
|
|
|
+ if (acIds) {
|
|
|
+ acIds = acIds.split(',')
|
|
|
+ //[2,7,8]
|
|
|
+ G4ResList.value = window.G4AllList.filter(v => acIds.includes(v.id + ''))
|
|
|
+ } else G4ResList.value = []
|
|
|
+
|
|
|
rawData.value = res
|
|
|
for (const iterator of rawData.value.file) {
|
|
|
switch (iterator.type) {
|
|
@@ -467,6 +488,7 @@ export default {
|
|
|
prefix,
|
|
|
rawData,
|
|
|
videoUrlList,
|
|
|
+ G4ResList
|
|
|
}
|
|
|
},
|
|
|
}
|
|
@@ -478,7 +500,8 @@ export default {
|
|
|
height: 100%;
|
|
|
overflow: auto;
|
|
|
position: relative;
|
|
|
- >video.bg{
|
|
|
+
|
|
|
+ >video.bg {
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
|
top: 0;
|
|
@@ -486,17 +509,20 @@ export default {
|
|
|
height: 100%;
|
|
|
object-fit: cover;
|
|
|
}
|
|
|
+
|
|
|
>button.back {
|
|
|
position: absolute;
|
|
|
top: 51px;
|
|
|
left: 67px;
|
|
|
width: 40px;
|
|
|
height: 40px;
|
|
|
+
|
|
|
>img {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
>h1 {
|
|
|
position: absolute;
|
|
|
top: 36px;
|
|
@@ -507,16 +533,18 @@ export default {
|
|
|
font-weight: bold;
|
|
|
color: #FFFFFF;
|
|
|
}
|
|
|
+
|
|
|
>.tab-bar {
|
|
|
position: absolute;
|
|
|
top: 108px;
|
|
|
left: 50%;
|
|
|
transform: translateX(-50%);
|
|
|
+
|
|
|
>button {
|
|
|
margin-right: 50px;
|
|
|
width: 80px;
|
|
|
height: 36px;
|
|
|
- background: rgba(255,255,255,0.2);
|
|
|
+ background: rgba(255, 255, 255, 0.2);
|
|
|
border-radius: 18px;
|
|
|
border: 1px solid #fff;
|
|
|
font-size: 16px;
|
|
@@ -524,17 +552,20 @@ export default {
|
|
|
font-weight: 400;
|
|
|
color: #fff;
|
|
|
opacity: 0.7;
|
|
|
+
|
|
|
&:last-of-type {
|
|
|
margin-right: initial;
|
|
|
}
|
|
|
+
|
|
|
&.active {
|
|
|
- background: rgba(255,255,255,0.2);
|
|
|
+ background: rgba(255, 255, 255, 0.2);
|
|
|
border: 1px solid #DBC386;
|
|
|
color: #DBC386;
|
|
|
opacity: initial;
|
|
|
}
|
|
|
}
|
|
|
- >button.image{
|
|
|
+
|
|
|
+ >button.image {
|
|
|
min-width: 90px;
|
|
|
width: fit-content;
|
|
|
padding-left: 5px;
|
|
@@ -550,18 +581,22 @@ export default {
|
|
|
height: calc(100% - 170px - 20px);
|
|
|
width: 80%;
|
|
|
max-width: 1164px;
|
|
|
+
|
|
|
.swiper-root {
|
|
|
height: calc(100% - 160px);
|
|
|
width: 100%;
|
|
|
position: relative;
|
|
|
overflow: hidden;
|
|
|
+
|
|
|
.swiper-wrapper {
|
|
|
height: 100%;
|
|
|
margin-left: auto;
|
|
|
margin-right: auto;
|
|
|
+
|
|
|
.swiper-slide {
|
|
|
font-size: 0;
|
|
|
- >video.bg{
|
|
|
+
|
|
|
+ >video.bg {
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
|
top: 0;
|
|
@@ -570,35 +605,41 @@ export default {
|
|
|
object-fit: cover;
|
|
|
z-index: -1;
|
|
|
}
|
|
|
- > iframe {
|
|
|
+
|
|
|
+ >iframe {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
- > video {
|
|
|
+
|
|
|
+ >video {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
user-select: none;
|
|
|
object-fit: contain;
|
|
|
}
|
|
|
- > img {
|
|
|
+
|
|
|
+ >img {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
user-select: none;
|
|
|
object-fit: contain;
|
|
|
}
|
|
|
- >button{
|
|
|
+
|
|
|
+ >button {
|
|
|
position: fixed;
|
|
|
bottom: 44px;
|
|
|
right: 44px;
|
|
|
width: 44px;
|
|
|
height: 44px;
|
|
|
- > img {
|
|
|
+
|
|
|
+ >img {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
// .swiper-pagination {
|
|
|
// position: absolute;
|
|
|
// bottom: 10px;
|
|
@@ -612,6 +653,7 @@ export default {
|
|
|
// }
|
|
|
// }
|
|
|
}
|
|
|
+
|
|
|
>p.main {
|
|
|
margin-top: 20px;
|
|
|
font-size: 20px;
|
|
@@ -624,6 +666,7 @@ export default {
|
|
|
margin-bottom: 22px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
+
|
|
|
>.main-info-wrap {
|
|
|
font-size: 20px;
|
|
|
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
|
@@ -633,7 +676,23 @@ export default {
|
|
|
margin-top: 20px;
|
|
|
white-space: pre;
|
|
|
text-align: center;
|
|
|
+
|
|
|
+ // 类型标签
|
|
|
+ .G3tabRow {
|
|
|
+ position: relative;
|
|
|
+ top: -2px;
|
|
|
+ font-size: 14px;
|
|
|
+ margin-left: 10px;
|
|
|
+ border: 1px solid #F3CB60;
|
|
|
+ padding: 6px 8px;
|
|
|
+ border-radius: 2px;
|
|
|
+ color: #F3CB60;
|
|
|
+ cursor: pointer;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
>p.desc {
|
|
|
height: 108px;
|
|
|
width: 100%;
|
|
@@ -651,7 +710,13 @@ export default {
|
|
|
padding-left: 10px;
|
|
|
margin-top: 16px;
|
|
|
height: 100px;
|
|
|
- &::-webkit-scrollbar { background: transparent; width: 4px; } /*宽度是对垂直滚动条而言,高度是对水平滚动条而言*/
|
|
|
+
|
|
|
+ &::-webkit-scrollbar {
|
|
|
+ background: transparent;
|
|
|
+ width: 4px;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*宽度是对垂直滚动条而言,高度是对水平滚动条而言*/
|
|
|
&::-webkit-scrollbar-thumb {
|
|
|
background: rgba(220, 231, 240, 0.2);
|
|
|
border-radius: 2px;
|
|
@@ -665,16 +730,19 @@ export default {
|
|
|
height: 44px;
|
|
|
background-image: url(@/assets/images/arrow-left-2.png);
|
|
|
background-size: contain;
|
|
|
+
|
|
|
&::after {
|
|
|
content: '';
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.swiper-button-next {
|
|
|
right: 44px;
|
|
|
width: 44px;
|
|
|
height: 44px;
|
|
|
background-image: url(@/assets/images/arrow-right-2.png);
|
|
|
background-size: contain;
|
|
|
+
|
|
|
&::after {
|
|
|
content: '';
|
|
|
}
|
|
@@ -684,12 +752,14 @@ export default {
|
|
|
position: absolute;
|
|
|
right: 44px;
|
|
|
bottom: 130px;
|
|
|
- > button {
|
|
|
+
|
|
|
+ >button {
|
|
|
display: block;
|
|
|
margin-bottom: 15px;
|
|
|
width: 44px;
|
|
|
height: 44px;
|
|
|
- > img {
|
|
|
+
|
|
|
+ >img {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
@@ -703,7 +773,8 @@ export default {
|
|
|
height: 100%;
|
|
|
overflow: auto;
|
|
|
position: relative;
|
|
|
- >video.bg{
|
|
|
+
|
|
|
+ >video.bg {
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
|
top: 0;
|
|
@@ -711,17 +782,20 @@ export default {
|
|
|
height: 100%;
|
|
|
object-fit: cover;
|
|
|
}
|
|
|
+
|
|
|
>button.back {
|
|
|
position: absolute;
|
|
|
top: calc(51 / 1080 * 83vh);
|
|
|
left: calc(67 / 1080 * 83vh);
|
|
|
width: calc(40 / 1080 * 83vh);
|
|
|
height: calc(40 / 1080 * 83vh);
|
|
|
+
|
|
|
>img {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
>h1 {
|
|
|
position: absolute;
|
|
|
top: calc(36 / 1080 * 83vh);
|
|
@@ -732,16 +806,18 @@ export default {
|
|
|
font-weight: bold;
|
|
|
color: #FFFFFF;
|
|
|
}
|
|
|
+
|
|
|
>.tab-bar {
|
|
|
position: absolute;
|
|
|
top: calc(108 / 1080 * 83vh);
|
|
|
left: 50%;
|
|
|
transform: translateX(-50%);
|
|
|
+
|
|
|
>button {
|
|
|
margin-right: calc(50 / 1080 * 83vh);
|
|
|
width: calc(80 / 1080 * 83vh);
|
|
|
height: calc(36 / 1080 * 83vh);
|
|
|
- background: rgba(255,255,255,0.2);
|
|
|
+ background: rgba(255, 255, 255, 0.2);
|
|
|
border-radius: calc(18 / 1080 * 83vh);
|
|
|
border: calc(1 / 1080 * 83vh) solid #fff;
|
|
|
font-size: calc(16 / 1080 * 83vh);
|
|
@@ -749,11 +825,13 @@ export default {
|
|
|
font-weight: 400;
|
|
|
color: #fff;
|
|
|
opacity: 0.7;
|
|
|
+
|
|
|
&:last-of-type {
|
|
|
margin-right: initial;
|
|
|
}
|
|
|
+
|
|
|
&.active {
|
|
|
- background: rgba(255,255,255,0.2);
|
|
|
+ background: rgba(255, 255, 255, 0.2);
|
|
|
border: 1px solid #DBC386;
|
|
|
color: #DBC386;
|
|
|
opacity: initial;
|
|
@@ -769,18 +847,22 @@ export default {
|
|
|
height: 75%;
|
|
|
width: 80%;
|
|
|
max-width: calc(1164 / 1080 * 83vh);
|
|
|
+
|
|
|
.swiper-root {
|
|
|
height: 80%;
|
|
|
width: 100%;
|
|
|
position: relative;
|
|
|
overflow: hidden;
|
|
|
+
|
|
|
.swiper-wrapper {
|
|
|
height: 100%;
|
|
|
margin-left: auto;
|
|
|
margin-right: auto;
|
|
|
+
|
|
|
.swiper-slide {
|
|
|
font-size: 0;
|
|
|
- >video.bg{
|
|
|
+
|
|
|
+ >video.bg {
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
|
top: 0;
|
|
@@ -789,35 +871,41 @@ export default {
|
|
|
object-fit: cover;
|
|
|
z-index: -1;
|
|
|
}
|
|
|
- > iframe {
|
|
|
+
|
|
|
+ >iframe {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
- > video {
|
|
|
+
|
|
|
+ >video {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
user-select: none;
|
|
|
object-fit: contain;
|
|
|
}
|
|
|
- > img {
|
|
|
+
|
|
|
+ >img {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
user-select: none;
|
|
|
object-fit: contain;
|
|
|
}
|
|
|
- >button{
|
|
|
+
|
|
|
+ >button {
|
|
|
position: fixed;
|
|
|
bottom: calc(44 / 1080 * 83vh);
|
|
|
right: calc(44 / 1080 * 83vh);
|
|
|
width: calc(44 / 1080 * 83vh);
|
|
|
height: calc(44 / 1080 * 83vh);
|
|
|
- > img {
|
|
|
+
|
|
|
+ >img {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
// .swiper-pagination {
|
|
|
// position: absolute;
|
|
|
// bottom: 10px;
|
|
@@ -831,6 +919,7 @@ export default {
|
|
|
// }
|
|
|
// }
|
|
|
}
|
|
|
+
|
|
|
>p.main {
|
|
|
margin-top: calc(20 / 1080 * 83vh);
|
|
|
font-size: calc(20 / 1080 * 83vh);
|
|
@@ -843,6 +932,7 @@ export default {
|
|
|
margin-bottom: calc(22 / 1080 * 83vh);
|
|
|
text-align: center;
|
|
|
}
|
|
|
+
|
|
|
>.main-info-wrap {
|
|
|
font-size: calc(20 / 1080 * 83vh);
|
|
|
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
|
@@ -853,6 +943,7 @@ export default {
|
|
|
white-space: pre;
|
|
|
text-align: center;
|
|
|
}
|
|
|
+
|
|
|
>p.desc {
|
|
|
height: calc(108 / 1080 * 83vh);
|
|
|
width: 100%;
|
|
@@ -870,7 +961,13 @@ export default {
|
|
|
padding-left: calc(10 / 1080 * 83vh);
|
|
|
margin-top: calc(16 / 1080 * 83vh);
|
|
|
height: calc(100 / 1080 * 83vh);
|
|
|
- &::-webkit-scrollbar { background: transparent; width: calc(4 / 1080 * 83vh); } /*宽度是对垂直滚动条而言,高度是对水平滚动条而言*/
|
|
|
+
|
|
|
+ &::-webkit-scrollbar {
|
|
|
+ background: transparent;
|
|
|
+ width: calc(4 / 1080 * 83vh);
|
|
|
+ }
|
|
|
+
|
|
|
+ /*宽度是对垂直滚动条而言,高度是对水平滚动条而言*/
|
|
|
&::-webkit-scrollbar-thumb {
|
|
|
background: rgba(220, 231, 240, 0.2);
|
|
|
border-radius: 2px;
|
|
@@ -884,16 +981,19 @@ export default {
|
|
|
height: calc(44 / 1080 * 83vh);
|
|
|
background-image: url(@/assets/images/arrow-left-2.png);
|
|
|
background-size: contain;
|
|
|
+
|
|
|
&::after {
|
|
|
content: '';
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
.swiper-button-next {
|
|
|
right: calc(44 / 1080 * 83vh);
|
|
|
width: calc(44 / 1080 * 83vh);
|
|
|
height: calc(44 / 1080 * 83vh);
|
|
|
background-image: url(@/assets/images/arrow-right-2.png);
|
|
|
background-size: contain;
|
|
|
+
|
|
|
&::after {
|
|
|
content: '';
|
|
|
}
|
|
@@ -903,12 +1003,14 @@ export default {
|
|
|
position: absolute;
|
|
|
right: calc(44 / 1080 * 83vh);
|
|
|
bottom: calc(130 / 1080 * 83vh);
|
|
|
- > button {
|
|
|
+
|
|
|
+ >button {
|
|
|
display: block;
|
|
|
margin-bottom: calc(15 / 1080 * 83vh);
|
|
|
width: calc(44 / 1080 * 83vh);
|
|
|
height: calc(44 / 1080 * 83vh);
|
|
|
- > img {
|
|
|
+
|
|
|
+ >img {
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
}
|