|
@@ -1,38 +1,37 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <div v-if="!isMobile" class="images" >
|
|
|
|
|
- <div class="title" v-html="hotspot.title"></div>
|
|
|
|
|
- <div class="img-con">
|
|
|
|
|
- <span v-if="hotspot.images.length>1" @click="handlePage('prev')" >
|
|
|
|
|
- <img :src="require('@/assets/images/project/prev.png')" alt="">
|
|
|
|
|
- </span>
|
|
|
|
|
- <img v-viewer :src="g_dealUrl(hotspot.images[active])" alt="">
|
|
|
|
|
- <span v-if="hotspot.images.length>1" @click="handlePage('next')">
|
|
|
|
|
- <img :src="require('@/assets/images/project/next.png')" alt="">
|
|
|
|
|
- </span>
|
|
|
|
|
- <ul class="pagna">
|
|
|
|
|
- <li v-for="(item,i) in hotspot.images" :class="{active:i==active}" :key="i"></li>
|
|
|
|
|
- </ul>
|
|
|
|
|
- </div>
|
|
|
|
|
- <div class="desc" v-html="hotspot.content">
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div v-if="!isMobile" class="images">
|
|
|
|
|
+ <div class="title" v-html="hotspot.title"></div>
|
|
|
|
|
+ <div class="img-con">
|
|
|
|
|
+ <span v-if="hotspot.images.length > 1" @click="handlePage('prev')">
|
|
|
|
|
+ <img :src="require('@/assets/images/project/prev.png')" alt="" />
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <img v-viewer :src="g_dealUrl(hotspot.images[active])" alt="" />
|
|
|
|
|
+ <span v-if="hotspot.images.length > 1" @click="handlePage('next')">
|
|
|
|
|
+ <img :src="require('@/assets/images/project/next.png')" alt="" />
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <ul class="pagna">
|
|
|
|
|
+ <li v-for="(item, i) in hotspot.images" :class="{ active: i == active }" :key="i"></li>
|
|
|
|
|
+ </ul>
|
|
|
</div>
|
|
</div>
|
|
|
- <div v-else class="mbimages" >
|
|
|
|
|
- <div class="title" v-html="hotspot.title"></div>
|
|
|
|
|
- <div class="swcon" v-swiper:mySwiper="swiperOption">
|
|
|
|
|
- <ul class="swiper-wrapper swiper-wrapper-n">
|
|
|
|
|
- <div class="swiper-slide" v-for="(item,index) in hotspot.images" :key="index">
|
|
|
|
|
- <div class="sl-item">
|
|
|
|
|
- <img v-viewer :src="g_dealUrl(item)">
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div class="desc" v-html="hotspot.content"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div v-else class="mbimages">
|
|
|
|
|
+ <div class="title" v-html="hotspot.title"></div>
|
|
|
|
|
+ <div class="swcon" v-swiper:mySwiper="swiperOption">
|
|
|
|
|
+ <ul class="swiper-wrapper swiper-wrapper-n">
|
|
|
|
|
+ <div class="swiper-slide" v-for="(item, index) in hotspot.images" :key="index">
|
|
|
|
|
+ <div class="sl-item">
|
|
|
|
|
+ <img v-viewer :src="g_dealUrl(item)" />
|
|
|
</div>
|
|
</div>
|
|
|
- </ul>
|
|
|
|
|
- <div class="swiper-pagination pagination" slot="pagination"></div>
|
|
|
|
|
- </div>
|
|
|
|
|
-
|
|
|
|
|
- <div v-if="hotspot.content" class="desc">
|
|
|
|
|
- <div v-html="hotspot.content"></div>
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </ul>
|
|
|
|
|
+ <div class="swiper-pagination pagination" slot="pagination"></div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+
|
|
|
|
|
+ <div v-if="hotspot.content" class="desc">
|
|
|
|
|
+ <div v-html="hotspot.content"></div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
@@ -44,68 +43,66 @@ export default {
|
|
|
directives: {
|
|
directives: {
|
|
|
swiper: directive,
|
|
swiper: directive,
|
|
|
},
|
|
},
|
|
|
- props:['hotspot'],
|
|
|
|
|
- data(){
|
|
|
|
|
|
|
+ props: ["hotspot"],
|
|
|
|
|
+ data() {
|
|
|
return {
|
|
return {
|
|
|
- active:0,
|
|
|
|
|
- mbactive:0
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ active: 0,
|
|
|
|
|
+ mbactive: 0,
|
|
|
|
|
+ };
|
|
|
},
|
|
},
|
|
|
- methods:{
|
|
|
|
|
- handlePage(type){
|
|
|
|
|
- if (type==='next') {
|
|
|
|
|
- console.log(this.hotspot.images.length);
|
|
|
|
|
- if (this.active>=this.hotspot.images.length - 1) {
|
|
|
|
|
- this.active = 0
|
|
|
|
|
- return
|
|
|
|
|
- }
|
|
|
|
|
- this.active += 1
|
|
|
|
|
- }
|
|
|
|
|
- else{
|
|
|
|
|
- if (this.active==0) {
|
|
|
|
|
- this.active = this.hotspot.images.length - 1
|
|
|
|
|
- return
|
|
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ handlePage(type) {
|
|
|
|
|
+ if (type === "next") {
|
|
|
|
|
+ console.log(this.hotspot.images.length);
|
|
|
|
|
+ if (this.active >= this.hotspot.images.length - 1) {
|
|
|
|
|
+ this.active = 0;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ this.active += 1;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ if (this.active == 0) {
|
|
|
|
|
+ this.active = this.hotspot.images.length - 1;
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ this.active -= 1;
|
|
|
}
|
|
}
|
|
|
- this.active -= 1
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
|
|
+ },
|
|
|
},
|
|
},
|
|
|
- },
|
|
|
|
|
- computed:{
|
|
|
|
|
|
|
+ computed: {
|
|
|
swiperOption() {
|
|
swiperOption() {
|
|
|
- let that = this
|
|
|
|
|
|
|
+ let that = this;
|
|
|
return {
|
|
return {
|
|
|
- slidesPerView: 'auto',
|
|
|
|
|
|
|
+ slidesPerView: "auto",
|
|
|
autoplay: false,
|
|
autoplay: false,
|
|
|
centeredSlides: true,
|
|
centeredSlides: true,
|
|
|
watchSlidesProgress: true,
|
|
watchSlidesProgress: true,
|
|
|
- loop: this.hotspot.images.length>1,
|
|
|
|
|
|
|
+ loop: this.hotspot.images.length > 1,
|
|
|
pagination: {
|
|
pagination: {
|
|
|
- el: '.swiper-pagination'
|
|
|
|
|
|
|
+ el: ".swiper-pagination",
|
|
|
},
|
|
},
|
|
|
- on:{
|
|
|
|
|
- slideChangeTransitionEnd:function () {
|
|
|
|
|
- that.mbactive = this.realIndex
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ on: {
|
|
|
|
|
+ slideChangeTransitionEnd: function () {
|
|
|
|
|
+ that.mbactive = this.realIndex;
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+};
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="less" scoped>
|
|
<style lang="less" scoped>
|
|
|
-.noshow{
|
|
|
|
|
- opacity: 0!important;;
|
|
|
|
|
- pointer-events: none!important;;
|
|
|
|
|
|
|
+.noshow {
|
|
|
|
|
+ opacity: 0 !important;
|
|
|
|
|
+ pointer-events: none !important;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-.images{
|
|
|
|
|
|
|
+.images {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
height: 100%;
|
|
height: 100%;
|
|
|
background-repeat: no-repeat;
|
|
background-repeat: no-repeat;
|
|
|
text-align: center;
|
|
text-align: center;
|
|
|
- .title{
|
|
|
|
|
|
|
+ .title {
|
|
|
max-width: 94%;
|
|
max-width: 94%;
|
|
|
padding: 8px 60px;
|
|
padding: 8px 60px;
|
|
|
display: inline-block;
|
|
display: inline-block;
|
|
@@ -114,18 +111,18 @@ export default {
|
|
|
font-size: 30px;
|
|
font-size: 30px;
|
|
|
min-height: 60px;
|
|
min-height: 60px;
|
|
|
// line-height: 60px;
|
|
// line-height: 60px;
|
|
|
- background: #0054A7;
|
|
|
|
|
|
|
+ background: #0054a7;
|
|
|
border-radius: 60px;
|
|
border-radius: 60px;
|
|
|
margin: 45px auto;
|
|
margin: 45px auto;
|
|
|
}
|
|
}
|
|
|
- .img-con{
|
|
|
|
|
|
|
+ .img-con {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
justify-content: space-around;
|
|
justify-content: space-around;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
position: relative;
|
|
position: relative;
|
|
|
padding-bottom: 40px;
|
|
padding-bottom: 40px;
|
|
|
- >span{
|
|
|
|
|
- @juli:68px;
|
|
|
|
|
|
|
+ > span {
|
|
|
|
|
+ @juli: 68px;
|
|
|
display: inline-block;
|
|
display: inline-block;
|
|
|
font-size: 0;
|
|
font-size: 0;
|
|
|
width: 70px;
|
|
width: 70px;
|
|
@@ -134,40 +131,40 @@ export default {
|
|
|
left: @juli;
|
|
left: @juli;
|
|
|
top: 50%;
|
|
top: 50%;
|
|
|
transform: translateY(-50%);
|
|
transform: translateY(-50%);
|
|
|
- >img{
|
|
|
|
|
|
|
+ > img {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
}
|
|
}
|
|
|
- &:last-of-type{
|
|
|
|
|
|
|
+ &:last-of-type {
|
|
|
left: unset;
|
|
left: unset;
|
|
|
right: @juli;
|
|
right: @juli;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- >img{
|
|
|
|
|
|
|
+ > img {
|
|
|
max-width: 1200px;
|
|
max-width: 1200px;
|
|
|
max-height: 650px;
|
|
max-height: 650px;
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
}
|
|
}
|
|
|
- .pagna{
|
|
|
|
|
|
|
+ .pagna {
|
|
|
position: absolute;
|
|
position: absolute;
|
|
|
bottom: 0;
|
|
bottom: 0;
|
|
|
text-align: center;
|
|
text-align: center;
|
|
|
z-index: 999;
|
|
z-index: 999;
|
|
|
- >li{
|
|
|
|
|
|
|
+ > li {
|
|
|
width: 60px;
|
|
width: 60px;
|
|
|
height: 6px;
|
|
height: 6px;
|
|
|
- background: #0054A7;
|
|
|
|
|
|
|
+ background: #0054a7;
|
|
|
display: inline-block;
|
|
display: inline-block;
|
|
|
margin: 0 4px;
|
|
margin: 0 4px;
|
|
|
- &.active{
|
|
|
|
|
- background: #00F3FF;
|
|
|
|
|
|
|
+ &.active {
|
|
|
|
|
+ background: #00f3ff;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- .desc{
|
|
|
|
|
|
|
+ .desc {
|
|
|
max-width: 1000px;
|
|
max-width: 1000px;
|
|
|
margin: 20px auto 0;
|
|
margin: 20px auto 0;
|
|
|
- color: #00F3FF;
|
|
|
|
|
|
|
+ color: #00f3ff;
|
|
|
text-align: left;
|
|
text-align: left;
|
|
|
line-height: 1.5;
|
|
line-height: 1.5;
|
|
|
max-height: 250px;
|
|
max-height: 250px;
|
|
@@ -176,39 +173,39 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-@position:62px;
|
|
|
|
|
-.mbimages{
|
|
|
|
|
|
|
+@position: 62px;
|
|
|
|
|
+.mbimages {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
height: 100%;
|
|
height: 100%;
|
|
|
background-repeat: no-repeat;
|
|
background-repeat: no-repeat;
|
|
|
background-size: 100% calc(100% + @position);
|
|
background-size: 100% calc(100% + @position);
|
|
|
background-position: 0 -@position;
|
|
background-position: 0 -@position;
|
|
|
text-align: center;
|
|
text-align: center;
|
|
|
- .title{
|
|
|
|
|
|
|
+ .title {
|
|
|
width: 90%;
|
|
width: 90%;
|
|
|
padding: 10px 20px;
|
|
padding: 10px 20px;
|
|
|
display: inline-block;
|
|
display: inline-block;
|
|
|
color: #fff;
|
|
color: #fff;
|
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
|
font-size: 18px;
|
|
font-size: 18px;
|
|
|
- background: #0054A7;
|
|
|
|
|
|
|
+ background: #0054a7;
|
|
|
border-radius: 44px;
|
|
border-radius: 44px;
|
|
|
margin: 20px auto;
|
|
margin: 20px auto;
|
|
|
}
|
|
}
|
|
|
- .swcon{
|
|
|
|
|
|
|
+ .swcon {
|
|
|
position: relative;
|
|
position: relative;
|
|
|
padding-bottom: 30px;
|
|
padding-bottom: 30px;
|
|
|
.swiper-wrapper {
|
|
.swiper-wrapper {
|
|
|
height: 70vh;
|
|
height: 70vh;
|
|
|
padding: 0;
|
|
padding: 0;
|
|
|
- .swiper-slide {
|
|
|
|
|
|
|
+ .swiper-slide {
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
transform-style: preserve-3d;
|
|
transform-style: preserve-3d;
|
|
|
position: relative;
|
|
position: relative;
|
|
|
height: 100%;
|
|
height: 100%;
|
|
|
margin: 0;
|
|
margin: 0;
|
|
|
- transform:translate3d(0,0,0);
|
|
|
|
|
- .sl-item{
|
|
|
|
|
|
|
+ transform: translate3d(0, 0, 0);
|
|
|
|
|
+ .sl-item {
|
|
|
position: absolute;
|
|
position: absolute;
|
|
|
top: 0;
|
|
top: 0;
|
|
|
left: 0;
|
|
left: 0;
|
|
@@ -218,7 +215,7 @@ export default {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
justify-content: center;
|
|
|
- >img{
|
|
|
|
|
|
|
+ > img {
|
|
|
max-width: 100%;
|
|
max-width: 100%;
|
|
|
max-height: 100%;
|
|
max-height: 100%;
|
|
|
}
|
|
}
|
|
@@ -226,35 +223,35 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .pagination{
|
|
|
|
|
|
|
+ .pagination {
|
|
|
position: absolute;
|
|
position: absolute;
|
|
|
bottom: 5px;
|
|
bottom: 5px;
|
|
|
- & /deep/ .swiper-pagination-bullet,& /deep/ .swiper-pagination-bullet-active{
|
|
|
|
|
- width: 40px!important;
|
|
|
|
|
- height: 4px!important;
|
|
|
|
|
- background: #005AFF!important;
|
|
|
|
|
- display: inline-block!important;
|
|
|
|
|
- margin: 0 4px!important;
|
|
|
|
|
- border-radius: 0;
|
|
|
|
|
- opacity: 1;
|
|
|
|
|
|
|
+ & /deep/ .swiper-pagination-bullet,
|
|
|
|
|
+ & /deep/ .swiper-pagination-bullet-active {
|
|
|
|
|
+ width: 40px !important;
|
|
|
|
|
+ height: 4px !important;
|
|
|
|
|
+ background: #005aff !important;
|
|
|
|
|
+ display: inline-block !important;
|
|
|
|
|
+ margin: 0 4px !important;
|
|
|
|
|
+ border-radius: 0;
|
|
|
|
|
+ opacity: 1;
|
|
|
}
|
|
}
|
|
|
- & /deep/ .swiper-pagination-bullet-active{
|
|
|
|
|
- background: #00F3FF!important;
|
|
|
|
|
|
|
+ & /deep/ .swiper-pagination-bullet-active {
|
|
|
|
|
+ background: #00f3ff !important;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- .desc{
|
|
|
|
|
- color: #00F3FF;
|
|
|
|
|
|
|
+
|
|
|
|
|
+ .desc {
|
|
|
|
|
+ color: #00f3ff;
|
|
|
text-align: left;
|
|
text-align: left;
|
|
|
width: 85%;
|
|
width: 85%;
|
|
|
margin: 20px auto 0;
|
|
margin: 20px auto 0;
|
|
|
- p{
|
|
|
|
|
|
|
+ p {
|
|
|
font-size: 16px;
|
|
font-size: 16px;
|
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
|
}
|
|
}
|
|
|
- div{
|
|
|
|
|
|
|
+ div {
|
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
margin-top: 10px;
|
|
margin-top: 10px;
|
|
|
line-height: 1.5;
|
|
line-height: 1.5;
|
|
@@ -263,6 +260,4 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-</style>
|
|
|
|
|
|
|
+</style>
|