// pages/cattle/detail/detail.js
const API = require('../../../utils/api').API

Page({
  data: {
    id: null,
    cattle: null,
    loading: true
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if (options.id) {
      this.setData({ id: options.id })
      this.loadData()
    } else {
      wx.showToast({
        title: '参数错误',
        icon: 'none'
      })
      setTimeout(() => {
        wx.navigateBack()
      }, 1500)
    }
  },

  /**
   * 加载数据
   */
  async loadData() {
    this.setData({ loading: true })

    try {
      // 方式1：如果有详情接口
      // const res = await API.getCattleDetail(this.data.id)
      // const cattle = res.data || res
      
      // 方式2：从列表中获取（临时方案）
      // 先获取列表，找到对应ID的牛只
      const res = await API.getCattleList({ 
        page: 1, 
        pageSize: 1000  // 获取足够多的数据
      })
      
      const list = res.data?.list || res.list || []
      const cattle = list.find(item => item.id === parseInt(this.data.id))
      
      if (!cattle) {
        wx.showToast({
          title: '未找到该牛只信息',
          icon: 'none'
        })
        setTimeout(() => {
          wx.navigateBack()
        }, 1500)
        return
      }

      // 格式化数据
      const formattedCattle = {
        ...cattle,
        // 格式化出生日期
        birthdayText: cattle.birthday ? this.formatDate(cattle.birthday) : '-',
        // 格式化入场时间
        intoTimeText: cattle.intoTime ? this.formatDate(cattle.intoTime) : '-',
        // 格式化性别
        sexText: cattle.sex === 1 ? '公' : cattle.sex === 2 ? '母' : '未知',
        // 格式化生理阶段
        physiologicalStageText: this.getPhysiologicalStage(cattle.physiologicalStage),
        // 格式化来源
        sourceText: cattle.source === 1 ? '自繁' : cattle.source === 2 ? '外购' : '未知',
        // 格式化体重计算时间
        weightCalculateTimeText: cattle.weightCalculateTime ? this.formatDateTime(cattle.weightCalculateTime) : '-'
      }

      this.setData({
        cattle: formattedCattle,
        loading: false
      })

    } catch (error) {
      console.error('加载数据失败:', error)
      
      wx.showToast({
        title: '加载失败',
        icon: 'none'
      })
      
      this.setData({ loading: false })
      
      setTimeout(() => {
        wx.navigateBack()
      }, 1500)
    }
  },

  /**
   * 格式化日期（时间戳转日期）
   */
  formatDate(timestamp) {
    if (!timestamp) return '-'
    const date = new Date(timestamp * 1000)
    const year = date.getFullYear()
    const month = String(date.getMonth() + 1).padStart(2, '0')
    const day = String(date.getDate()).padStart(2, '0')
    return `${year}-${month}-${day}`
  },

  /**
   * 格式化日期时间
   */
  formatDateTime(dateString) {
    if (!dateString) return '-'
    const date = new Date(dateString)
    const year = date.getFullYear()
    const month = String(date.getMonth() + 1).padStart(2, '0')
    const day = String(date.getDate()).padStart(2, '0')
    const hours = String(date.getHours()).padStart(2, '0')
    const minutes = String(date.getMinutes()).padStart(2, '0')
    return `${year}-${month}-${day} ${hours}:${minutes}`
  },

  /**
   * 获取生理阶段文本
   */
  getPhysiologicalStage(stage) {
    const stages = {
      0: '犊牛期',
      1: '育成期',
      2: '成年期',
      3: '老年期'
    }
    return stages[stage] || '未知'
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.loadData()
    setTimeout(() => {
      wx.stopPullDownRefresh()
    }, 1000)
  }
})

