You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
3.5 KiB
163 lines
3.5 KiB
<template> |
|
<view class="activity-detail"> |
|
<view class="head_box"> |
|
<cu-custom :isBack="true" :bgColor="'transparent'"></cu-custom> |
|
</view> |
|
<view class="activity-banner"> |
|
<image :src="detail.images"></image> |
|
</view> |
|
<view class="title-box"> |
|
<view class="title">{{detail.name}}</view> |
|
<view class="price">¥{{detail.price || 0}}</view> |
|
</view> |
|
<view class="activity-info"> |
|
<view class="title">活动介绍</view> |
|
<view class="address acea-row"> |
|
<image src="../../../static/images/address.png"></image> |
|
<view class="label line1" @click="openMap()">活动地点:{{detail.address || ''}}</view> |
|
</view> |
|
<view class="address acea-row"> |
|
<image src="../../../static/images/time.png"></image> |
|
<view class="label line1">活动时间:{{detail.activityStartTime || ''}}</view> |
|
</view> |
|
<view class="address acea-row"> |
|
<image src="../../../static/images/price.png"></image> |
|
<view class="label line1">活动费用:{{detail.price || ''}}</view> |
|
</view> |
|
<view class="info-content"> |
|
<rich-text :nodes="detail.content"></rich-text> |
|
</view> |
|
<view class="sign-btn" v-if="detail.status == 1" @click="toSignPage">立即报名</view> |
|
<view class="cancel-btn" v-if="detail.status == 2">报名截止</view> |
|
<view class="cancel-btn" v-if="detail.status == 3">活动结束</view> |
|
<view class="cancel-btn" v-if="detail.status == 0">等待报名</view> |
|
</view> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
import { getActivityInfo } from '@/api/home.js' |
|
import { formatRichText } from '@/utils/util.js' |
|
export default{ |
|
data(){ |
|
return { |
|
id: '', |
|
detail: {} |
|
} |
|
}, |
|
mounted() { |
|
this.id = this.$yroute.query.id |
|
this.getDetail() |
|
}, |
|
methods:{ |
|
getDetail(){ |
|
getActivityInfo(this.id).then((res)=>{ |
|
if(res.success){ |
|
res.data.content = formatRichText(res.data.content) |
|
this.detail = res.data |
|
} else{ |
|
uni.showToast({ |
|
title: '服务器错误', |
|
icon: 'none' |
|
}) |
|
} |
|
}) |
|
}, |
|
openMap(){ |
|
uni.openLocation({ |
|
latitude: this.detail.latitude, |
|
longitude: this.detail.longitude, |
|
success: function () { |
|
console.log('success'); |
|
} |
|
}); |
|
}, |
|
toSignPage() { |
|
uni.navigateTo({ |
|
url: '/pages/activity/signIn/index?id=' + this.detail.id |
|
}); |
|
}, |
|
} |
|
} |
|
</script> |
|
|
|
<style lang="less"> |
|
.cuIcon-back{ |
|
color: #fff; |
|
} |
|
.activity-detail{ |
|
width: 100%; |
|
position: relative; |
|
.activity-banner{ |
|
width: 100%; |
|
height: 750rpx; |
|
position: absolute; |
|
top: 0; |
|
image{ |
|
width: 100%; |
|
height: 100%; |
|
} |
|
} |
|
.title-box{ |
|
width: 100%; |
|
padding: 60rpx 40rpx 12rpx; |
|
border-radius: 34rpx 34rpx 0px 0px; |
|
background: #fff; |
|
border-bottom: 26rpx solid #F7F7F7; |
|
position: relative; |
|
top: 536rpx; |
|
left: 0; |
|
.title{ |
|
color: #212121; |
|
font-size: 38rpx; |
|
margin-bottom: 34rpx; |
|
} |
|
.price{ |
|
color: #E70012; |
|
font-size: 44rpx; |
|
line-height: 58rpx; |
|
} |
|
} |
|
.activity-info{ |
|
width: 100%; |
|
padding: 52rpx 40rpx 32rpx; |
|
background: #fff; |
|
position: absolute; |
|
top: 894rpx; |
|
left: 0; |
|
.title{ |
|
font-size: 40rpx; |
|
color: #000; |
|
margin-bottom: 34rpx; |
|
} |
|
.address{ |
|
font-size: 28rpx; |
|
color: #707070; |
|
margin-bottom: 20rpx; |
|
.label{ |
|
width: calc(100% - 70rpx); |
|
} |
|
image{ |
|
width: 30rpx; |
|
height: 30rpx; |
|
margin-right: 22rpx; |
|
} |
|
} |
|
.sign-btn{ |
|
width: 100%; |
|
height: 92rpx; |
|
font-size: 40rpx; |
|
color: #fff; |
|
line-height: 92rpx; |
|
text-align: center; |
|
background: #212121; |
|
margin-top: 52rpx; |
|
} |
|
.cancel-btn{ |
|
background: #F4F4F4; |
|
color: #868686; |
|
} |
|
} |
|
} |
|
|
|
</style>
|
|
|