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.

199 lines
4.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view>
<view class="">
<view class="activityBox">
<view class="activityBox-top">
<!-- <image src="../../static/img/img_activity.jpg" style="width: 100%;height: 333rpx;"></image> -->
<swiper autoplay="true" :interval="4000" :duration="1000" :indicator-dots="true"
indicator-active-color="rgba(255, 255, 255, 0.7)" indicator-color="rgba(239, 149, 37, 1)" :current="topSwiperIndex" @change="topSwiperTab">
<swiper-item v-for="(item,index) in list.banners" :key="index">
<view class="swiper-item">
<image :src="item.upload.url" mode="aspectFill"></image>
</view>
</swiper-item>
</swiper>
</view>
<view class="activityBox-content flex-col">
<view class="activityBox-row flex-row justify-between">
<text class="activityBox-title">{{isUnde(list.name)}}</text>
<view class="tag tag_green">
<text>{{isUnde(list.target_name)}}</text>
</view>
</view>
<view class="activityBox-row">
<text class="icon-shijian iconfont"></text>
<text>活动时间{{isUnde(list.start_time)}}-{{isUnde(list.end_time)}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodongfangshi iconfont"></text>
<text>活动方式{{isUnde(list.area_name)}}</text>
</view>
<view class="activityBox-row">
<text class="icon-huodong iconfont"></text>
<text>活动地址{{isUnde(list.address)}}</text>
</view>
<view class="activityBox-row">
<text class="icon-renshu iconfont"></text>
<text>人数限制{{isUnde(list.total)==0?'不限':isUnde(list.total)}}</text>
</view>
<view class="activityBox-row flex-row align-center" @click="tothere">
<text class="icon-ditu-dibiao iconfont"></text>
<text>距离{{isUnde(list.distance)}}km</text>
<view class="tomap">
<text class="icon-daohang1 iconfont" style="margin-right: 0;"></text>
</view>
</view>
</view>
</view>
<view class="infoBox">
<view class="infoBox-title">
<text class="infoBox-titletxt">活动详情</text>
</view>
<view class="infoBox-content">
<rich-text :nodes="list.content"></rich-text>
</view>
</view>
<view class="infofooter flex-row" v-if="list.status!=0">
<view style="margin-right: 14rpx;flex: 1;">
<u-button type="primary" @click="tobook('team')"></u-button>
</view>
<view style="margin-left: 14rpx;flex: 1;">
<u-button type="primary" @click="tobook('user')"></u-button>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
id:"",
latitude:"",
longitude:"",
list:{},
topSwiperIndex: 0,
}
},
onLoad(options){
var that = this;
that.id=options.id;
wx.getLocation({
success(res) {
console.log(res)
that.latitude=res.latitude;
that.longitude=res.longitude;
that.loadActiveInfo()
}
})
},
methods: {
tothere() {
uni.openLocation({
latitude: parseFloat(this.list.latitude),
longitude: parseFloat(this.list.longitude),
name: this.list.name,
address: this.list.address
})
},
tobook(type) {
uni.navigateTo({
url: "book?type=" + type + "&activity_id="+this.id
})
},
loadActiveInfo(){
var that = this;
this.util.request({
api: '/api/mobile/activity/show',
data:{
id:that.id,
latitude:that.latitude,
longitude:that.longitude
},
utilSuccess: function(res) {
that.list = res;
that.list.end_time = res.end_time.substring(11,res.end_time.length)
wx.setStorage({
key: 'activityinfo',
data: res,
success: ()=> {
console.log('存储成功');
}
})
},
utilFail: function(res) {
}
})
},
topSwiperTab(e) {
var that = this;
this.topSwiperIndex = Number(e.target.current);
},
isUnde(val){
if(val){
return val
}else{
return ""
}
}
}
}
</script>
<style>
@import url("@/static/css/activitybox.css");
page {
background-color: #f7f6f4;
}
.infoBox {
box-sizing: border-box;
padding: 40rpx 0rpx;
background: #FFFFFF;
}
.infoBox-title {
border-left: 3px solid #EF9525;
}
.infoBox-titletxt {
font-size: 26rpx;
color: #4E4E4E;
margin-left: 21rpx;
}
.infoBox-content {
padding: 37rpx 26rpx;
box-sizing: border-box;
font-size: 24rpx;
color: #828282;
}
.infofooter {
position: fixed;
width: 100%;
left: 0;
bottom: 0;
background: #FFFFFF;
box-shadow: 2px 3px 10px 0px rgba(107, 94, 77, 0.3);
padding: 22rpx 25rpx;
box-sizing: border-box;
}
swiper{
height:333rpx
}
swiper image{
width:100%;
height:333rpx;
}
</style>