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

Page({
  data: {
    list: [],
    total: 0,
    page: 1,
    pageSize: 10,
    totalPages: 0,
    loading: false,
    refreshing: false,
    searchValue: ''
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.loadData()
  },

  /**
   * 加载数据
   */
  async loadData(isRefresh = false) {
    if (isRefresh) {
      this.setData({ refreshing: true })
    }

    this.setData({ loading: true })

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

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

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

      const res = await API.getExitRecords(params)
      
      console.log('离栏记录数据:', res)

      // 根据实际返回的数据结构调整
      let list = res.data?.list || res.data || res.list || []
      const pagination = res.data?.pagination || {}
      const total = pagination.total || res.total || list.length || 0
      
      // 数据预处理：格式化时间和数据
      list = list.map(item => {
        return {
          ...item,
          // 格式化离栏日期
          exitDateText: item.exitDate ? this.formatDateTime(item.exitDate) : '-',
          // 格式化创建时间
          createdAtText: item.created_at ? this.formatDateTime(item.created_at) : '-',
          // 格式化更新时间
          updatedAtText: item.updated_at ? this.formatDateTime(item.updated_at) : '-',
          // 原栏舍名称
          originalPenName: item.originalPen?.name || '-',
          // 养殖场名称
          farmName: item.farm?.name || '-'
        }
      })
      
      // 如果有搜索条件，进行前端精确过滤（确保精确匹配）
      if (this.data.searchValue && this.data.searchValue.trim()) {
        const searchKey = this.data.searchValue.trim()
        list = list.filter(item => {
          const earNumber = String(item.earNumber || '')
          // 精确匹配：完全相等
          return earNumber === searchKey
        })
        
        console.log('精确查找结果:', list.length, '条')
        
        if (list.length === 0) {
          wx.showToast({
            title: '未找到匹配的记录',
            icon: 'none',
            duration: 2000
          })
        }
      }
      
      const totalPages = pagination.pages || Math.ceil((this.data.searchValue ? list.length : total) / this.data.pageSize)

      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()
      }
    }
  },

  /**
   * 格式化日期时间
   */
  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')
    const seconds = String(date.getSeconds()).padStart(2, '0')
    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
  },

  /**
   * 搜索输入
   */
  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) {
      this.setData({ 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
    console.log('查看离栏记录详情:', id)
    
    // 跳转到详情页
    wx.navigateTo({
      url: `/pages/cattle/exit-detail/exit-detail?id=${id}`
    })
  },

  /**
   * 下拉刷新
   */
  onPullDownRefresh() {
    this.setData({ page: 1 })
    this.loadData(true)
  },

  /**
   * 上拉加载更多
   */
  onReachBottom() {
    if (this.data.page < this.data.totalPages && !this.data.loading) {
      this.setData({ page: this.data.page + 1 })
      this.loadData()
    }
  }
})

