// pages/device/eartag/eartag.js - 智能耳标页面
const { API } = require('../../../utils/api.js')

Page({
  data: {
    list: [],               // 数据列表
    page: 1,                // 当前页码
    limit: 10,              // 每页数量
    total: 0,               // 总数量
    totalPages: 0,          // 总页数
    searchValue: '',        // 搜索值
    loading: false,         // 加载状态
    refreshing: false       // 刷新状态
  },

  onLoad() {
    console.log('智能耳标页面加载')
    this.loadData()
  },

  onShow() {
    console.log('智能耳标页面显示')
  },

  onPullDownRefresh() {
    this.setData({ page: 1, refreshing: true })
    this.loadData(true)
  },

  /**
   * 加载数据
   */
  async loadData(isRefresh = false) {
    if (this.data.loading) return

    this.setData({ loading: true })

    try {
      const params = {
        page: this.data.page,
        limit: this.data.limit,
        _t: Date.now(),
        refresh: isRefresh
      }

      // 如果有搜索条件，添加到参数中
      if (this.data.searchValue) {
        params.eartagNumber = this.data.searchValue.trim() // 按耳标编号精确查询
        params.cid = this.data.searchValue.trim() // 兼容参数
        params.number = this.data.searchValue.trim() // 兼容参数
      }

      console.log('请求参数:', params)

      const res = await API.getEartagList(params)
      
      console.log('智能耳标数据:', res)

      // 根据实际返回的数据结构调整
      let list = res.data?.list || res.data || res.list || []
      const total = res.data?.total || res.total || 0
      
      // 如果有搜索条件，进行前端精确过滤（确保精确匹配）
      if (this.data.searchValue && this.data.searchValue.trim()) {
        const searchKey = this.data.searchValue.trim()
        list = list.filter(item => {
          const eartagNumber = String(item.eartagNumber || item.cid || item.number || '')
          // 精确匹配：完全相等
          return eartagNumber === searchKey
        })
        
        console.log('精确查找结果:', list.length, '条')
        
        if (list.length === 0) {
          wx.showToast({
            title: '未找到匹配的设备',
            icon: 'none',
            duration: 2000
          })
        }
      }
      
      const totalPages = Math.ceil((this.data.searchValue ? list.length : total) / this.data.limit)

      this.setData({
        list: list,
        total: total,
        totalPages: totalPages,
        loading: false,
        refreshing: false
      })

      // 停止下拉刷新
      if (isRefresh) {
        wx.stopPullDownRefresh()
      }

    } catch (error) {
      console.error('加载数据失败:', error)
      
      this.setData({
        loading: false,
        refreshing: false
      })

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

      if (isRefresh) {
        wx.stopPullDownRefresh()
      }
    }
  },

  /**
   * 搜索输入
   */
  onSearchInput(e) {
    this.setData({
      searchValue: e.detail.value
    })
  },

  /**
   * 执行搜索
   */
  handleSearch() {
    this.setData({ page: 1 })
    this.loadData(true)
  },

  /**
   * 清空搜索
   */
  clearSearch() {
    this.setData({ 
      searchValue: '',
      page: 1
    })
    this.loadData(true)
  },

  /**
   * 切换页码
   */
  changePage(e) {
    const page = e.currentTarget.dataset.page
    if (page === this.data.page || page < 1 || page > this.data.totalPages) {
      return
    }
    
    this.setData({ page: page })
    this.loadData()
    
    // 滚动到顶部
    wx.pageScrollTo({
      scrollTop: 0,
      duration: 300
    })
  },

  /**
   * 上一页
   */
  prevPage() {
    if (this.data.page > 1) {
      this.setData({ page: this.data.page - 1 })
      this.loadData()
      wx.pageScrollTo({ scrollTop: 0, duration: 300 })
    }
  },

  /**
   * 下一页
   */
  nextPage() {
    if (this.data.page < this.data.totalPages) {
      this.setData({ page: this.data.page + 1 })
      this.loadData()
      wx.pageScrollTo({ scrollTop: 0, duration: 300 })
    }
  },

  /**
   * 查看详情
   */
  viewDetail(e) {
    const id = e.currentTarget.dataset.id
    wx.navigateTo({
      url: `/pages/device/eartag-detail/eartag-detail?id=${id}`,
      fail: () => {
        wx.showToast({
          title: '详情页面开发中',
          icon: 'none'
        })
      }
    })
  }
})

