// pages/product-detail/product-detail.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 产品ID
    productId: '',
    
    // 当前激活的标签页
    activeTab: 'overview',
    
    // 产品信息
    productInfo: {},
    
    // 相关产品
    relatedProducts: [],
    
    // 是否已收藏
    isFavorited: false,
    
    // 是否可以投保
    canApply: false,
    
    // 加载状态
    loading: false
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log('产品详情页加载', options)
    const { id } = options
    if (id) {
      this.setData({ productId: id })
      this.loadProductDetail(id)
    } else {
      wx.showToast({
        title: '产品ID不能为空',
        icon: 'none'
      })
      setTimeout(() => {
        wx.navigateBack()
      }, 1500)
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
    console.log('产品详情页渲染完成')
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    console.log('产品详情页显示')
    this.checkLoginStatus()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    console.log('产品详情页隐藏')
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    console.log('产品详情页卸载')
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    console.log('下拉刷新')
    this.loadProductDetail(this.data.productId)
    wx.stopPullDownRefresh()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    console.log('上拉触底')
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    const { productInfo } = this.data
    return {
      title: productInfo.name || '保险产品详情',
      path: `/pages/product-detail/product-detail?id=${this.data.productId}`,
      imageUrl: productInfo.image || '/static/images/share-product.jpg'
    }
  },

  /**
   * 加载产品详情
   */
  loadProductDetail(productId) {
    this.setData({ loading: true })
    
    console.log('加载产品详情:', productId)
    
    // 模拟API调用
    setTimeout(() => {
      const mockProduct = this.getMockProductDetail(productId)
      this.setData({
        productInfo: mockProduct,
        relatedProducts: this.getMockRelatedProducts(),
        loading: false
      })
      this.checkFavoritedStatus()
    }, 1000)
  },

  /**
   * 获取模拟产品详情数据
   */
  getMockProductDetail(productId) {
    const mockProducts = {
      '1': {
        id: '1',
        name: '综合意外伤害保险',
        subtitle: '全面保障，安心出行',
        image: '/static/images/product-1.jpg',
        isHot: true,
        minPremium: 99,
        priceDesc: '年缴保费，保障一年',
        description: '本产品为综合意外伤害保险，提供全面的意外伤害保障，包括意外身故、意外伤残、意外医疗等保障内容，让您出行更安心。',
        features: [
          { icon: '🛡️', text: '全面保障' },
          { icon: '⚡', text: '快速理赔' },
          { icon: '💰', text: '性价比高' },
          { icon: '📱', text: '在线投保' }
        ],
        targetGroup: [
          '18-65周岁身体健康者',
          '经常出差或外出人员',
          '从事高风险职业者',
          '家庭经济支柱'
        ],
        highlights: [
          {
            icon: '🛡️',
            title: '保障全面',
            description: '涵盖意外身故、伤残、医疗等多种保障，全方位保护您的安全'
          },
          {
            icon: '⚡',
            title: '理赔快速',
            description: '7x24小时理赔服务，材料齐全3个工作日内完成理赔'
          },
          {
            icon: '💰',
            title: '性价比高',
            description: '保费低廉，保障全面，是您最经济实惠的选择'
          }
        ],
        coverage: [
          {
            name: '意外身故保险金',
            amount: '50万元',
            description: '被保险人因意外伤害导致身故，给付意外身故保险金',
            conditions: '意外伤害事故发生之日起180日内身故'
          },
          {
            name: '意外伤残保险金',
            amount: '最高50万元',
            description: '被保险人因意外伤害导致伤残，按伤残等级给付保险金',
            conditions: '意外伤害事故发生之日起180日内伤残'
          },
          {
            name: '意外医疗保险金',
            amount: '5万元',
            description: '被保险人因意外伤害产生的医疗费用，按比例报销',
            conditions: '免赔额100元，赔付比例90%'
          }
        ],
        terms: [
          {
            title: '保险期间',
            content: '本保险合同的保险期间为一年，自保险单载明的保险期间开始日零时起至保险期间届满日二十四时止。'
          },
          {
            title: '等待期',
            content: '本保险合同无等待期，自保险期间开始日零时起即承担保险责任。'
          },
          {
            title: '免赔额',
            content: '意外医疗保险金免赔额为100元，超出部分按90%比例赔付。'
          }
        ],
        notices: [
          '请仔细阅读保险条款，特别是责任免除条款',
          '投保时请如实告知健康状况，否则可能影响理赔',
          '保险期间内可随时退保，按日计算退还保费',
          '理赔时需提供相关证明材料',
          '如有疑问请及时联系客服'
        ]
      },
      '2': {
        id: '2',
        name: '重大疾病保险',
        subtitle: '重疾保障，守护健康',
        image: '/static/images/product-2.jpg',
        isHot: false,
        minPremium: 299,
        priceDesc: '年缴保费，保障终身',
        description: '本产品为重大疾病保险，提供重大疾病保障，包括恶性肿瘤、急性心肌梗塞、脑中风后遗症等重大疾病保障。',
        features: [
          { icon: '🏥', text: '重疾保障' },
          { icon: '💊', text: '医疗费用' },
          { icon: '🔄', text: '多次赔付' },
          { icon: '👨‍👩‍👧‍👦', text: '家庭保障' }
        ],
        targetGroup: [
          '18-55周岁身体健康者',
          '有家族病史者',
          '关注健康保障者',
          '家庭经济支柱'
        ],
        highlights: [
          {
            icon: '🏥',
            title: '重疾保障',
            description: '涵盖100种重大疾病，保障范围广泛，让您安心无忧'
          },
          {
            icon: '💊',
            title: '医疗费用',
            description: '提供高额医疗费用保障，减轻家庭经济负担'
          },
          {
            icon: '🔄',
            title: '多次赔付',
            description: '部分疾病可多次赔付，保障更全面'
          }
        ],
        coverage: [
          {
            name: '重大疾病保险金',
            amount: '30万元',
            description: '被保险人确诊重大疾病，给付重大疾病保险金',
            conditions: '等待期90天，确诊即赔'
          },
          {
            name: '轻症疾病保险金',
            amount: '6万元',
            description: '被保险人确诊轻症疾病，给付轻症疾病保险金',
            conditions: '等待期90天，最多赔付3次'
          },
          {
            name: '身故保险金',
            amount: '30万元',
            description: '被保险人身故，给付身故保险金',
            conditions: '等待期90天'
          }
        ],
        terms: [
          {
            title: '保险期间',
            content: '本保险合同的保险期间为终身，自保险单载明的保险期间开始日零时起至被保险人身故时止。'
          },
          {
            title: '等待期',
            content: '本保险合同的等待期为90天，等待期内因疾病导致保险事故，不承担保险责任。'
          },
          {
            title: '缴费期间',
            content: '缴费期间为20年，投保人可选择年缴或月缴。'
          }
        ],
        notices: [
          '请仔细阅读保险条款，特别是责任免除条款',
          '投保时请如实告知健康状况，否则可能影响理赔',
          '等待期内因疾病导致保险事故，不承担保险责任',
          '理赔时需提供医院诊断证明',
          '如有疑问请及时联系客服'
        ]
      }
    }
    
    return mockProducts[productId] || mockProducts['1']
  },

  /**
   * 获取模拟相关产品数据
   */
  getMockRelatedProducts() {
    return [
      {
        id: '2',
        name: '重大疾病保险',
        image: '/static/images/product-2.jpg',
        minPremium: 299
      },
      {
        id: '3',
        name: '定期寿险',
        image: '/static/images/product-3.jpg',
        minPremium: 199
      },
      {
        id: '4',
        name: '医疗保险',
        image: '/static/images/product-4.jpg',
        minPremium: 399
      }
    ]
  },

  /**
   * 检查登录状态
   */
  checkLoginStatus() {
    const token = wx.getStorageSync('token')
    this.setData({
      canApply: !!token
    })
  },

  /**
   * 检查收藏状态
   */
  checkFavoritedStatus() {
    const favorites = wx.getStorageSync('favorites') || []
    const isFavorited = favorites.includes(this.data.productId)
    this.setData({ isFavorited })
  },

  /**
   * 切换标签页
   */
  switchTab(e) {
    const tab = e.currentTarget.dataset.tab
    console.log('切换标签页:', tab)
    this.setData({ activeTab: tab })
  },

  /**
   * 添加到收藏
   */
  addToFavorites() {
    const { productId, isFavorited } = this.data
    let favorites = wx.getStorageSync('favorites') || []
    
    if (isFavorited) {
      // 取消收藏
      favorites = favorites.filter(id => id !== productId)
      wx.showToast({
        title: '已取消收藏',
        icon: 'success'
      })
    } else {
      // 添加收藏
      favorites.push(productId)
      wx.showToast({
        title: '已添加到收藏',
        icon: 'success'
      })
    }
    
    wx.setStorageSync('favorites', favorites)
    this.setData({ isFavorited: !isFavorited })
  },

  /**
   * 跳转到咨询页面
   */
  goToConsultation() {
    console.log('跳转到咨询页面')
    wx.navigateTo({
      url: '/pages/consultation/consultation'
    })
  },

  /**
   * 跳转到投保页面
   */
  goToApplication() {
    const { canApply, productId } = this.data
    
    if (!canApply) {
      wx.showModal({
        title: '提示',
        content: '请先登录后再进行投保',
        confirmText: '去登录',
        success: (res) => {
          if (res.confirm) {
            wx.navigateTo({
              url: '/pages/login/login'
            })
          }
        }
      })
      return
    }
    
    console.log('跳转到投保页面:', productId)
    wx.navigateTo({
      url: `/pages/application/application?productId=${productId}`
    })
  },

  /**
   * 跳转到其他产品详情页
   */
  goToProductDetail(e) {
    const productId = e.currentTarget.dataset.id
    console.log('跳转到产品详情页:', productId)
    wx.redirectTo({
      url: `/pages/product-detail/product-detail?id=${productId}`
    })
  }
})