|  |  | <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 activityBox_btn">
 | 
						
						
						
							|  |  | 							<text>{{isUnde(list.type_name)}}</text>
 | 
						
						
						
							|  |  | 						</view>
 | 
						
						
						
							|  |  | 					</view>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 					<view class="activityBox-row">
 | 
						
						
						
							|  |  | 						<text class="icon-shijian iconfont"></text>
 | 
						
						
						
							|  |  | 						<text>活动时间:{{getHm(list.start_time)}}-{{getHm(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 class="colortext activityBox-row" v-if="list.status==1">
 | 
						
						
						
							|  |  | 						{{list.rate_name}} (已报名{{list.orders_total}}人)
 | 
						
						
						
							|  |  | 					</view>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 				</view>
 | 
						
						
						
							|  |  | 			</view>
 | 
						
						
						
							|  |  | 			<view class="infoBox">
 | 
						
						
						
							|  |  | 				<view class="infoBox-title">
 | 
						
						
						
							|  |  | 					<text class="infoBox-titletxt">活动详情</text>
 | 
						
						
						
							|  |  | 				</view>
 | 
						
						
						
							|  |  | 				<view class="infoBox-content">
 | 
						
						
						
							|  |  | 					<rich-text  style="text-indent: 2em;font-size: 28rpx;" :nodes="list.content"></rich-text>
 | 
						
						
						
							|  |  | 				</view>
 | 
						
						
						
							|  |  | 			</view>
 | 
						
						
						
							|  |  | 			<view class="infofooter flex-row" v-if="list.isCanBook">
 | 
						
						
						
							|  |  | 				<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;
 | 
						
						
						
							|  |  | 				var nt = new Date();
 | 
						
						
						
							|  |  | 				this.util.request({
 | 
						
						
						
							|  |  | 					api: '/api/mobile/activity/show',
 | 
						
						
						
							|  |  | 					data: {
 | 
						
						
						
							|  |  | 						id: that.id,
 | 
						
						
						
							|  |  | 						latitude: that.latitude,
 | 
						
						
						
							|  |  | 						longitude: that.longitude
 | 
						
						
						
							|  |  | 					},
 | 
						
						
						
							|  |  | 					utilSuccess: function(res) {
 | 
						
						
						
							|  |  | 						res.isCanBook = that.$moment(nt).isBefore(res.end_plan);
 | 
						
						
						
							|  |  | 						that.list = res;
 | 
						
						
						
							|  |  | 						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 ""
 | 
						
						
						
							|  |  | 				}
 | 
						
						
						
							|  |  | 			},
 | 
						
						
						
							|  |  | 			getHm(val) {
 | 
						
						
						
							|  |  | 				if (val) {
 | 
						
						
						
							|  |  | 					return this.$moment(val).format("HH:mm:ss")
 | 
						
						
						
							|  |  | 				} else return "";
 | 
						
						
						
							|  |  | 			}
 | 
						
						
						
							|  |  | 		}
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | </script>
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | <style>
 | 
						
						
						
							|  |  | 	@import url("@/static/css/activitybox.css");
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 	page {
 | 
						
						
						
							|  |  | 		background-color: #f7f6f4;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 	.infoBox {
 | 
						
						
						
							|  |  | 		box-sizing: border-box;
 | 
						
						
						
							|  |  | 		padding: 40rpx 0rpx;
 | 
						
						
						
							|  |  | 		background: #FFFFFF;
 | 
						
						
						
							|  |  | 		margin-bottom: 40rpx;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 	.infoBox-title {
 | 
						
						
						
							|  |  | 		border-left: 3px solid #EF9525;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 	.infoBox-titletxt {
 | 
						
						
						
							|  |  | 		font-size: 30rpx;
 | 
						
						
						
							|  |  | 		color: #4E4E4E;
 | 
						
						
						
							|  |  | 		margin-left: 21rpx;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 	.infoBox-content {
 | 
						
						
						
							|  |  | 		padding: 37rpx 26rpx;
 | 
						
						
						
							|  |  | 		box-sizing: border-box;
 | 
						
						
						
							|  |  | 		font-size: 24rpx;
 | 
						
						
						
							|  |  | 		color: #828282;
 | 
						
						
						
							|  |  | 		margin-bottom: 100rpx;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 	.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;
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | 	.colortext {
 | 
						
						
						
							|  |  | 		color: #D98012
 | 
						
						
						
							|  |  | 	}
 | 
						
						
						
							|  |  | </style>
 |