<template>
	<view class="activity-detail">
		<image class="activity-img" :src="detail.imgUrl"></image>
    <view class="activity-base">
      <text class="title">{{ detail.title }}</text>
      <view class="time">
        <uni-icons class="detail-icon" custom-prefix="iconfont" type="icon-shijian" size="15"></uni-icons>
        <text>{{ detail.time }}</text>
      </view>
      <view class="location">
        <uni-icons class="detail-icon" type="location" size="20"></uni-icons>
        <text>{{ detail.location }}</text>
      </view>
    </view>
    
    <view class="activity-content">
      <text class="content-title">活动介绍</text>
      <text class="content-desc">{{ detail.content }}</text>
    </view>
    
    <view class="detail-bottom">
      <view class="detail-left">
        <!-- #ifdef MP-WEIXIN -->
        <button open-type="share" class="handle-btn">
          <uni-icons custom-prefix="iconfont" type="icon-fenxiang01" size="20"></uni-icons>
          <text class="share-text">分享</text>
        </button>
        <!-- #endif -->
        <button class="handle-btn" @click="toggleCollect">
          <!-- 已收藏 / 未收藏 自动切换图标 -->
          <uni-icons :type="isCollected ? 'heart-filled' : 'heart'" size="20" color="#ff4444"></uni-icons>
          <text class="share-text">{{ isCollected ? '已收藏' : '收藏' }}</text>
        </button>
      </view>
      
      <button class="join-btn" :class="detail.status === 0 ? 'disabled-btn' : ''">
        <text>{{ detail.status === 1 ? '我要参加' : '活动结束' }}</text>
      </button>
    </view>
	</view>
</template>

<script>
export default {
	data() {
		return {
			detail: {
				imgUrl: "",
				title: "",
				time: "",
				location: "",
				content: "",
				status: 1 // 1=可参加 0=已结束
			},
			isCollected: false, // 收藏状态
			activityId: "" // 活动唯一标识（用标题作为唯一ID）
		};
	},
	
	onLoad(options) {
		const title = options.title || "";
		this.activityId = title; // 用活动标题作为唯一标识
		this.getActivityDetail(title);
	},
	
	methods: {
		/**
		 * 模拟 获取活动详情接口
		 * @param {String} title 活动标题
		 */
		getActivityDetail(title) {
			uni.showLoading({ title: "加载中..." });
			setTimeout(() => {
				const res = {
					imgUrl: "https://qiniu.aiyxlib.com/1605060269830",
					title: title,
					time: "2025-11-03 00:00 ~ 2025-11-09 00:00",
					location: "图书馆一楼",
					content: "“酷爱书荟书香满园”作为酷车小镇的品牌活动，此次活动以“世界读书日”为契机，旨在推动“全民阅读”的文化风尚，激发公众的阅读兴趣，营造浓厚的阅读氛围。",
					// 模拟状态：标题包含数字3/6/9则结束
					status: title.includes("3") || title.includes("6") || title.includes("9") ? 0 : 1
				};
				this.detail = res;
				// 加载完活动数据后，检查收藏状态
				this.checkCollectStatus();
				uni.hideLoading();
			}, 1000);
		},
		
		// 检查当前活动是否已收藏
		checkCollectStatus() {
			const collectList = uni.getStorageSync('activityCollectList') || [];
			this.isCollected = collectList.includes(this.activityId);
		},
		
		// 切换收藏 / 取消收藏
		toggleCollect() {
			let collectList = uni.getStorageSync('activityCollectList') || [];
			
			if (this.isCollected) {
				// 取消收藏
				collectList = collectList.filter(id => id !== this.activityId);
				uni.showToast({ title: '取消收藏成功', icon: 'success' });
			} else {
				// 添加收藏
				collectList.push(this.activityId);
				uni.showToast({ title: '收藏成功', icon: 'success' });
			}
			
			// 保存到本地缓存
			uni.setStorageSync('activityCollectList', collectList);
			// 更新状态
			this.isCollected = !this.isCollected;
		}

    // 真实接口示例（备用）
    // getActivityDetail(title) {
    //   uni.showLoading();
    //   uni.request({
    //     url: "https://xxx.com/api/activity/detail",
    //     method: "GET",
    //     data: { title: title },
    //     success: (res) => {
    //       this.detail = res.data;
    //       this.checkCollectStatus();
    //     },
    //     complete: () => {
    //       uni.hideLoading();
    //     }
    //   });
    // }
	},
	
	// 微信分享
	onShareAppMessage() {
		return {
			title: this.detail.title,
			path: "/subpkg/pages/activity-detail/activity-detail?title=" + this.detail.title,
			imageUrl: this.detail.imgUrl
		};
	}
};
</script>

<style lang="scss" scoped>
.activity-img{
  width: 100%;
  height: 150px;
}
.activity-base{
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background-color: #fff;
  padding: 15px;
  .title{
    font-size: 16px;
    font-weight: bold;
    color: #333;
    padding-bottom: 10px;
  }
  .time,
  .location {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    font-size: 12px;
    color: #999;
    .detail-icon{
      width: 20px;
    }
  }
  .time {
    padding-bottom: 10px;
    .detail-icon{
      margin-top: 2px;
      margin-left: 2px;
    }
  }
}
.activity-content{
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  background-color: #fff;
  margin-top: 20px;
  padding: 15px 0;
  
  .content-title{
    position: relative;
    font-size: 16px;
    font-weight: bold;
		color: #333;
    padding-left: 12px;
    &::before{
      position: absolute;
      left: 0;
      top: 50%;
      margin-top: -9px;
      content: "";
      width: 4px;
      height: 18px;
      background-color: #01a4fe;
    }
  }
  .content-desc{
    padding: 15px;
    font-size: 14px;
    line-height: 24px;
  }
}
</style>