// pages/alert/eartag-alert-detail/eartag-alert-detail.js
const API = require('../../../utils/api').API

Page({
  data: {
    alertId: null,
    alertData: [],
    loading: true
  },

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

  /**
   * 加载预警详情
   */
  async loadAlertDetail(id) {
    try {
      this.setData({ loading: true })

      console.log('获取预警详情，ID:', id)
      const res = await API.getEartagAlertDetail(id)
      
      console.log('预警详情数据:', res)

      // 根据实际返回的数据结构调整
      const alertInfo = res.data || res

      // 格式化数据为展示格式
      const formattedData = this.formatAlertData(alertInfo)

      this.setData({
        alertData: formattedData,
        loading: false
      })

    } catch (error) {
      console.error('加载预警详情失败:', error)
      
      this.setData({ loading: false })

      wx.showToast({
        title: '加载失败',
        icon: 'none'
      })
    }
  },

  /**
   * 格式化预警数据
   */
  formatAlertData(data) {
    if (!data) return []

    const sections = [
      {
        title: '预警信息',
        items: [
          { label: '预警ID', value: data.id || '-' },
          { label: '预警类型', value: this.getAlertTypeText(data.alertType) },
          { label: '预警等级', value: this.getAlertLevelText(data.alertLevel) },
          { label: '预警时间', value: data.alertTime || '-' },
          { label: '预警描述', value: data.description || '-' }
        ]
      },
      {
        title: '设备信息',
        items: [
          { label: '设备ID', value: data.deviceId || '-' },
          { label: '设备名称', value: data.deviceName || '-' },
          { label: '耳标编号', value: data.eartagNumber || '-' },
          { label: '设备状态', value: data.deviceStatus || '-' }
        ]
      },
      {
        title: '监测数据',
        items: [
          { label: '当前温度', value: data.temperature ? `${data.temperature}°C` : '-' },
          { label: '电池电量', value: data.battery ? `${data.battery}%` : '-' },
          { label: 'GPS信号', value: data.gpsSignal || '-' },
          { label: '运动状态', value: data.movementStatus || '-' }
        ]
      },
      {
        title: '位置信息',
        items: [
          { label: '经度', value: data.longitude || '-' },
          { label: '纬度', value: data.latitude || '-' }
        ]
      },
      {
        title: '运动数据',
        items: [
          { label: '今日步数', value: data.dailySteps || 0 },
          { label: '昨日步数', value: data.yesterdaySteps || 0 },
          { label: '累计步数', value: data.totalSteps || 0 }
        ]
      }
    ]

    return sections
  },

  /**
   * 获取预警等级文本
   */
  getAlertLevelText(level) {
    const levelMap = {
      'low': '低',
      'medium': '中',
      'high': '高',
      'critical': '紧急'
    }
    return levelMap[level] || level || '-'
  },

  /**
   * 获取预警类型文本
   */
  getAlertTypeText(type) {
    const typeMap = {
      'temperature': '温度异常',
      'battery': '电量异常',
      'not_collected': '未采集',
      'movement': '运动异常',
      'fence': '围栏异常',
      'activity_high': '运动量偏高',
      'activity_low': '运动量偏低',
      'transfer_slow': '传输过慢'
    }
    return typeMap[type] || type || '-'
  }
})

