|
|
|
|
@ -3,7 +3,7 @@
|
|
|
|
|
<div class="top">
|
|
|
|
|
<u-image mode="scaleToFill" width="100%" height="100%" :src="require('@/static/map-title-bkg.png')"></u-image>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="container">
|
|
|
|
|
<div class="container" id="img-container">
|
|
|
|
|
<img ref="image"
|
|
|
|
|
src="static/map.png"
|
|
|
|
|
alt="" @load="load">
|
|
|
|
|
@ -23,19 +23,6 @@
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box__text" :class="{ 'box__text--active': item.has_answer > 0 }" :style="{ 'transform': (item.d > 100 || item.d < -100) ? 'translate(-50rpx, 136rpx)' : '' }">{{ item.name }}</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<!-- <div class="box" :class="{ 'box--active': item.has_answer > 0 }" :style="{ 'transform': `rotate(${item.d}deg)` }">-->
|
|
|
|
|
<!-- <img :style="{ 'transform': `rotate(${-item.d}deg)` }" :src="item.image ? item.image.url : ''" alt="">-->
|
|
|
|
|
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
|
|
|
|
|
<!-- <div class="text"-->
|
|
|
|
|
<!-- :class="{ 'text--active': item.has_answer > 0 }"-->
|
|
|
|
|
<!-- :style="{-->
|
|
|
|
|
<!-- 'transform': translateText(item.d)-->
|
|
|
|
|
<!-- }">-->
|
|
|
|
|
<!-- {{ item.name }}-->
|
|
|
|
|
<!-- </div>-->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
@ -45,23 +32,31 @@
|
|
|
|
|
leave-to-class="fade-out">
|
|
|
|
|
<div class="progress" v-show="isShowProgress">
|
|
|
|
|
<div class="close">
|
|
|
|
|
<u-icon name="close-circle" :size="25" color="#666666" @click="isShowProgress = false"></u-icon>
|
|
|
|
|
<u-icon name="close-circle" :size="28" color="#555" @click="isShowProgress = false"></u-icon>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box">
|
|
|
|
|
<div class="box__line-progress">
|
|
|
|
|
<u-image class="box__line-progress--bkg" width="100%" mode="widthFix" :src="require('@/static/progress-img.png')"></u-image>
|
|
|
|
|
<u-line-progress :height="11" active-color="#b93736" :striped="true" :percent="(done/pointers.length)*100" :striped-active="true">
|
|
|
|
|
<template #default>
|
|
|
|
|
<div class="box__line-progress--img">
|
|
|
|
|
<u-image mode="heightFix" :height="97" :src="require('@/static/line-progress-img.png')"></u-image>
|
|
|
|
|
<u-image mode="heightFix" :height="83" :src="require('@/static/line-progress-img.png')"></u-image>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
</u-line-progress>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box__text">
|
|
|
|
|
<span>完成</span>
|
|
|
|
|
<span style="font-style: italic;padding-right: 4rpx;" class="box__text--red">{{pointers.length - done}}</span>
|
|
|
|
|
<span>家红色场馆打卡</span><br><span>即可获得</span>
|
|
|
|
|
<span class="box__text--red">荣誉证书</span>
|
|
|
|
|
<span>已完成</span>
|
|
|
|
|
<span style="font-style: italic;padding-right: 4rpx;" class="box__text--red">{{done}}</span>
|
|
|
|
|
<span>家红色场馆打卡</span>
|
|
|
|
|
<template v-if="done !== pointers.length">
|
|
|
|
|
<br><span>即可获得</span>
|
|
|
|
|
<span class="box__text--red">荣誉证书</span>
|
|
|
|
|
</template>
|
|
|
|
|
<template v-else>
|
|
|
|
|
<br><span>生成我的</span>
|
|
|
|
|
<span class="box__text--red" @click="$u.throttle(toCertificate)">荣誉证书</span>
|
|
|
|
|
</template>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
@ -112,6 +107,11 @@ export default {
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
toCertificate () {
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
url: '/pages/certificate/certificate'
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
toDetail (item) {
|
|
|
|
|
this.$u.vuex('vuex_point_id', item.id)
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
@ -122,6 +122,16 @@ export default {
|
|
|
|
|
load () {
|
|
|
|
|
this.area.w = this.$refs['image'].getBoundingClientRect().width
|
|
|
|
|
this.area.h = this.$refs['image'].getBoundingClientRect().height
|
|
|
|
|
|
|
|
|
|
this.$nextTick(() => {
|
|
|
|
|
let element = document.getElementById("img-container"); // 获取需要滚动的元素
|
|
|
|
|
let scrollLeft = element.scrollWidth / 2 - element.offsetWidth / 2; // 计算横向滚动条滚动的位置
|
|
|
|
|
let scrollTop = element.scrollHeight / 2 - element.offsetHeight / 2; // 计算纵向滚动条滚动的位置
|
|
|
|
|
element.scrollLeft = scrollLeft; // 设置横向滚动条的位置
|
|
|
|
|
element.scrollTop = scrollTop; // 设置纵向滚动条的位置
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
async getPoints () {
|
|
|
|
|
@ -203,13 +213,14 @@ export default {
|
|
|
|
|
& > img {
|
|
|
|
|
width: auto;
|
|
|
|
|
height: 100%;
|
|
|
|
|
object-fit: contain;
|
|
|
|
|
transition: all .2s;
|
|
|
|
|
|
|
|
|
|
padding: 20rpx 0;
|
|
|
|
|
transform: translateX(-50%);
|
|
|
|
|
//transform: translateX(-50%);
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0;
|
|
|
|
|
left: 50%;
|
|
|
|
|
left: 0;
|
|
|
|
|
}
|
|
|
|
|
& .area {
|
|
|
|
|
padding: 20rpx 0;
|
|
|
|
|
@ -253,7 +264,7 @@ export default {
|
|
|
|
|
position: absolute;
|
|
|
|
|
&__text {
|
|
|
|
|
width: 200rpx;
|
|
|
|
|
word-break: break-word;
|
|
|
|
|
word-break: break-all;
|
|
|
|
|
background: #F5D8AD;
|
|
|
|
|
border-radius: 6rpx;
|
|
|
|
|
filter: drop-shadow(2rpx 4rpx 2rpx #90D2CF);
|
|
|
|
|
@ -282,6 +293,7 @@ export default {
|
|
|
|
|
justify-content: center;
|
|
|
|
|
align-items: center;
|
|
|
|
|
filter: drop-shadow(2rpx 4rpx 4rpx #90D2CF);
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
|
|
|
|
& > img {
|
|
|
|
|
width: 106rpx;
|
|
|
|
|
@ -301,9 +313,8 @@ export default {
|
|
|
|
|
background: #b93736;
|
|
|
|
|
border-radius: 30rpx;
|
|
|
|
|
zoom: .8;
|
|
|
|
|
clip-path: circle(84rpx at 84% 178%);
|
|
|
|
|
|
|
|
|
|
padding: 6rpx 14rpx 5rpx 122rpx;
|
|
|
|
|
padding: 10rpx 14rpx 5rpx 124rpx;
|
|
|
|
|
z-index: 2;
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: -1rpx;
|
|
|
|
|
@ -448,6 +459,15 @@ export default {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
position: relative;
|
|
|
|
|
&--bkg {
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
transform: translateY(calc(-100% - 7rpx));
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 50%;
|
|
|
|
|
left: 0;
|
|
|
|
|
}
|
|
|
|
|
&--img {
|
|
|
|
|
overflow: auto;
|
|
|
|
|
|
|
|
|
|
@ -459,7 +479,7 @@ export default {
|
|
|
|
|
|
|
|
|
|
&__text {
|
|
|
|
|
text-align: center;
|
|
|
|
|
zoom: .85;
|
|
|
|
|
zoom: .95;
|
|
|
|
|
font-size: 16rpx;
|
|
|
|
|
font-weight: 400;
|
|
|
|
|
color: #666666;
|
|
|
|
|
|