<template>
<!--pages/activity/detail/index.wxml-->
<view class="activityDetail-page">
  <view class="activity-info-box">
    <view class="activity-banner">
      <image :src="activityDetail.images" mode="widthFix"></image>
    </view>
    <view class="activity-title line2">{{activityDetail.name}}</view>
    <view class="activity-tips-box acea-row">
      <view class="price">￥{{activityDetail.price}}/人</view>
      <view class="tips acea-row">
        <view v-for="(item, index) in activityDetail.flag" :key="index" :class="activityDetail.status == 3 ? 'default-btn' : 'tip-item'">{{item}}</view>
      </view>
    </view>
    <!-- <view class="step-box">
      <wux-steps current="{{ current }}">
        <wux-step title="筹备中" content="{{activityDetail.time1}}"></wux-step>
        <wux-step title="报名中" content="{{activityDetail.time2}}"></wux-step>
        <wux-step title="待举办" content="{{activityDetail.time3}}"></wux-step>
        <wux-step title="已结束" content="{{activityDetail.time4}}"></wux-step>
      </wux-steps>
    </view> -->
    <view class="activity-info">
      <view class="info-item">
        <view class="label">活动举办时间:</view>
        <view class="info">{{activityDetail.activityStartTime}} 至 {{activityDetail.activityEndTime}}</view>
      </view>
      <view class="info-item">
        <view class="label">报名截止时间:</view>
        <view class="info">{{activityDetail.applyEndTime}}</view>
      </view>
      <view class="info-item" @tap="openMap">
        <view class="label">活动举办地址:</view>
        <view class="info">{{activityDetail.address}}</view>
      </view>
      <view class="info-item">
        <view class="label">参加人数限制:</view>
        <view class="info">{{activityDetail.users.length}}/{{activityDetail.limit}}</view>
      </view>
    </view>
  </view>
  <view class="activity-des-box">
    <view class="title2">活动简介</view>
    <text class="line2">{{activityDetail.desc}}</text>
    <view class="see-detail acea-row row-center-wrapper" @tap="toDescribe">查看详情 <image src="/static/images/arror-r-s.png"></image></view>
  </view>
  <view class="info-item join-box">
    <view class="label" style="margin-right:0;">最近参与人:</view>
    <view class="info headerImg-info" v-if="activityDetail.users.length > 0">
      <image v-for="(item, index) in activityDetail.users" :key="index" :src="item.avatar"></image>
    </view>
    <view class="info headerImg-info" v-else>快分享给好友，一起报名参与吧！</view>
  </view>
  <view class="handle-box acea-row row-middle row-between">
    <view class="acea-row">
      <view class="call-box acea-row row-middle" @tap="call">
        <image src="/static/images/phone.png"></image>
        <text>拨号</text>
      </view>
      <view class="call-box  acea-row row-middle" @tap="collect">
        <image src="/static/images/collect.png"></image>
        <text>{{activityDetail.collect ? '已收藏':'收藏'}}</text>  
      </view>
    </view>
    <view class="handle-btn-box">
      <!-- <view class="cancel-btn">取消报名</view> -->
      <view class="cancel-btn" v-if="activityDetail.status == 2">报名截止</view>
      <view class="cancel-btn" v-if="activityDetail.status == 3">活动结束</view>
      <view class="cancel-btn" v-if="activityDetail.status == 0">等待报名</view>
      <view class="cancel-btn signIn-btn" @tap="toSignPage" v-if="activityDetail.status == 1">立即报名</view>
    </view>
  </view>
</view>
</template>
<script>
// pages/activity/detail/index.js
const app = getApp();
import util from '../../../utils/util';
// import wuxSteps from "../../../dist/steps/index";
// import wuxStep from "../../../dist/step/index";

export default {
  data() {
    return {
      activityId: '',
      activityDetail: {},
      current: 1
    };
  },

  components: {
    // wuxSteps,
    // wuxStep
  },
  props: {},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let erCodeId = uni.getStorageSync('activityId');
		console.log(options)
    if (options.id) {
      this.setData({
        activityId: options.id
      });
      this.getDetail();
    }

    if (erCodeId && !options.id) {
      //扫码进来
      console.log('扫码进来');
      this.setData({
        activityId: erCodeId
      });
      this.getDetail();
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {},
  methods: {
    getDetail() {
      app.http('GET', 'activity/activityInfo/' + this.activityId).then(res => {
        if (res.data.success) {
          let detail = res.data.data;
          detail.time1 = util.setTime(detail.createTime).split(' ')[0];
          detail.time2 = util.setTime(detail.applyStartTime).split(' ')[0];
          detail.time3 = util.setTime(detail.applyEndTime).split(' ')[0];
          detail.time4 = util.setTime(detail.activityEndTime).split(' ')[0];
          detail.flag = detail.flag.split(',');
          detail.activityStartTime = util.setTime(detail.activityStartTime);
          detail.activityEndTime = util.setTime(detail.activityEndTime);
          detail.applyStartTime = util.setTime(detail.applyStartTime);
          detail.applyEndTime = util.setTime(detail.applyEndTime);
          this.setData({
            activityDetail: detail,
            current: detail.status
          });
        } else {
          uni.showToast({
            title: res.data.msg,
            icon: 'none'
          });
        }
      });
    },

    openMap() {
      const latitude = this.activityDetail.latitude;
      const longitude = this.activityDetail.longitude;
      uni.openLocation({
        latitude,
        longitude,
        scale: 18
      });
    },

    shareClic() {
      uni.showShareMenu({
        withShareTicket: true,
        menus: ['shareAppMessage', 'shareTimeline']
      });
    },

    call() {
      uni.makePhoneCall({
        phoneNumber: this.activityDetail.publisherVo.phone,
        fail: function () {
          console.log('取消');
        }
      });
    },

    collect() {
      let data = {};
      data.id = this.activityDetail.id;
      data.type = 'collect';
      data.status = this.activityDetail.collect ? false : true;

      if (uni.getStorageSync('userInfo') != '') {
        this.requestCollect(data);
      } else {
        uni.getUserProfile({
          desc: '展示用户信息',
          // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
          success: res => {
            console.log(res);
            var iv = res.iv;
            var encryptedData = res.encryptedData;
            var userInfo = res.userInfo;
            uni.login({
              success: request => {
                // 发送 res.code 到后台换取 openId, sessionKey, unionId
                app.http('POST', 'wxapp/auth', {
                  code: request.code,
                  iv: iv,
                  encryptedData: encryptedData
                }).then(response => {
                  if (response.data.success) {
                    uni.setStorageSync('token', 'Bearer ' + response.data.data.token);
                    uni.setStorageSync('userInfo', userInfo);
                    this.requestCollect(data);
                  } else {
                    uni.showToast({
                      title: response.data.msg,
                      icon: 'none'
                    });
                  }
                });
              }
            });
          }
        });
      }
    },

    requestCollect(data) {
      app.http('POST', 'activity/collect', data).then(res => {
        if (res.data.success) {
          uni.showToast({
            title: '操作成功！'
          });
          this.getDetail();
        } else {
          uni.showToast({
            title: res.data.msg,
            icon: 'none'
          });
        }
      });
    },

    toSignPage() {
      if (uni.getStorageSync('userInfo') != '') {
        uni.navigateTo({
          url: '../signIn/index?id=' + this.activityId
        });
      } else {
        this.getUserProfile();
      }
    },

    toDescribe() {
      uni.navigateTo({
        url: '../describe/index?id=' + this.activityDetail.id
      });
    },

    getUserProfile() {
      uni.getUserProfile({
        desc: '展示用户信息',
        // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
        success: res => {
          console.log(res);
          var iv = res.iv;
          var encryptedData = res.encryptedData;
          var userInfo = res.userInfo;
          uni.login({
            success: request => {
              // 发送 res.code 到后台换取 openId, sessionKey, unionId
              app.http('POST', 'wxapp/auth', {
                code: request.code,
                iv: iv,
                encryptedData: encryptedData
              }).then(response => {
                if (response.data.success) {
                  uni.setStorageSync('token', 'Bearer ' + response.data.data.token);
                  uni.setStorageSync('userInfo', userInfo);
                  uni.navigateTo({
                    url: '../signIn/index?id=' + this.activityId
                  });
                } else {
                  uni.showToast({
                    title: response.data.msg,
                    icon: 'none'
                  });
                }
              });
            }
          });
        }
      });
    }

  }
};
</script>
<style>
/* pages/activity/detail/index.wxss */
.activityDetail-page{
  background: #f2f2f2;
  min-height: 100%;
  padding-bottom: 240rpx;
}
.activity-info-box,.company-info-box,.activity-des-box,.join-box{
  width: 100%;
  box-sizing: border-box;
  padding: 0 32rpx 40rpx;
  background: #fff;
  font-size: 32rpx;
}
.activity-banner{
  width: 100%;
  height: 404rpx;
  border-radius: 12rpx;
  overflow: hidden;
}
image{
  width: 100%;
}
.activity-title{
  color: #333333;
  font-weight: 600;
  line-height: 44rpx;
  margin: 32rpx 0 10rpx;
}
.price{
  min-width: 200rpx;
  color: #EBB672;
  font-weight: 600;
  margin-right: 28rpx;
}
.tips{
  width: 74%;
  flex-wrap: wrap;
  margin-top: 12rpx;
}
.tip-item{
  height: 36rpx;
  margin-bottom: 6rpx;
  line-height: 36rpx;
  text-align: center;
  padding: 0rpx 16rpx;
  color: #fff;
  font-size: 20rpx;
  background: #C93535;
  margin-right: 24rpx;
}
.default-btn{
  height: 36rpx;
  margin-bottom: 6rpx;
  line-height: 36rpx;
  text-align: center;
  padding: 0rpx 16rpx;
  color: #fff;
  font-size: 20rpx;
  background: #A29E9E;
  margin-right: 24rpx;
}
.join-box{
  height: 100rpx;
  padding: 26rpx 32rpx;
  box-sizing: border-box;
  color: #727272;
}

.step-box{
  margin-top: 32rpx;
}
.wux-step--process .wux-step__icon {
  background: #FFC985 !important;
  border-color: #FFC985 !important;
}
.wux-step__title {
  color: #B5B5B5 !important;
  font-size: 20rpx !important;
  font-weight: 400 !important;
}
.wux-step--process .wux-step__title{
  color: #FFC985 !important;
}
.wux-step__content{
  font-size: 20rpx !important;
  margin-top: 0 !important;
}
.wux-step--process .wux-step__content{
  color: #FFC985 !important;
}
.wux-step__bd {
  margin-top: 10rpx !important;
}

.info-item{
  display: flex;
  justify-content: start;
  align-items: center;
  margin-top: 40rpx;
  color: #353535;
  font-size: 28rpx;
}
.label{
  width: 180rpx;
  text-align: left;
  margin-right: 20rpx;
  color: #868686;
}
.headerImg-info{
  width: calc(100% - 180rpx);
  color: #333333;
  overflow-x: scroll;
  white-space: nowrap;
}
.info image{
  width: 68rpx;
  height: 68rpx;
  margin-left: 16rpx;
  display: inline-block;
  border-radius: 50%;
}

.company-info-box,.activity-des-box{
  margin-top: 32rpx;
  padding-top: 32rpx;
  font-size: 24rpx;
}
.company-logo image{
  width: 132rpx;
  height: 132rpx;
  margin-right: 24rpx;
  border-radius: 50%;
}
.company-name{
  color: #333333;
  font-size: 28rpx;
  margin-bottom: 16rpx;
}
.activity-des-box{
  color: #727272;
}
.title2{
  color: #333;
  font-size: 32rpx;
  margin-bottom: 24rpx;
}
.see-detail{
  color: #333;
  text-align: center;
  margin-top: 12rpx;
}
.see-detail image{
  width: 24rpx;
  height: 24rpx;
}
.handle-box {
  width: 100%;
  box-sizing: border-box;
  position: fixed;
  bottom: 0;
  left: 0;
  background: #fff;
  padding: 42rpx 32rpx 80rpx;
  box-shadow: 0px -2px 8px 0px rgba(0,0,0,0.1);
}
.call-box{
  margin-right: 54rpx;
}
.call-box image{
  width: 37rpx;
  height: 37rpx;
  font-size: 28rpx;
  color: #333333;
  margin-right: 12rpx;
}
.cancel-btn{
  width: 234rpx;
  height: 60rpx;
  text-align: center;
  line-height: 60rpx;
  background: #F4F4F4;
  border-radius: 30rpx;
  color: #868686;
  font-size: 32rpx;
}
.signIn-btn{
  background: #EBB672;
  color: #fff;
}
</style>