// president//pages/good_books_new/good_books_new.js
import { routers, viewImage, sharePage, isFn, getGlobalVal } from '../../../utils/util.js'
import { GoodBooksToRead, CallInBooks, DeleteBooks, GetBooksTab} from '../../../utils/api.js'
const { navigateTo, redirectTo, navigateBack } = routers()
const { globalData } = getApp()
const { baseImgUrl, thumbnail } = globalData
Page({

  /**
   * 页面的初始数据
   */
  data: {
    baseImgUrl,
    thumbnail,
    isLoaded: 0,
    screenModel:false,
    pageSize: 5,
    pageNo: 1,
    isAll: 0,
    isSelect:false,
    isLoad:false,
    gradeList:[],
    themeList:[],
    parentCode:[],
    classList:[],
    bookList:[],
    childList:[],
    itemIndex: 0,
    isCheck:0,
    number:0,
    stat:2,
    isShai:false,
    isDown:false,
    list: [],
    footerData: {
      actIndex: 1,
      list: [
        {
          text: '在馆书籍',
          icon: '../../../assets/zai_guan_shu_ji_gray.png',
          actIcon: '../../../assets/zai_guan_shu_ji_blue.png',
          url: 'president/pages/library_books/library_books',
          zindex: 3
        },
        {
          text: '好书推荐',
          icon: '../../../assets/wish_gray.png',
          actIcon: '../../../assets/wish_blue.png',
          url: 'president/pages/good_books_new/good_books_new',
          zindex: 3
        },
        {
          text: '调书清单',
          icon: '../../../assets/diao_shu_qing_dan_gray.png',
          actIcon: '../../../assets/diao_shu_qing_dan_blue.png',
          url: 'president/pages/book_inventory/book_inventory',
          zindex: 3
        }
      ]
    },
    nodataArray: {
      text: "暂无数据"
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    options.vipId = getGlobalVal('vipId', `vipId_${getGlobalVal('userId')}`)
    options.libId = getGlobalVal('list').length > 0 ? getGlobalVal('list')[0].libId : ''
    this.setData(options)
    this.getBooksTab()
    this.getData(res => {
      this.setData({ isLoaded: 1 })
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    const obj = { navigateTo, redirectTo, navigateBack, viewImage }
    for (const i in obj) {
      this[i] = obj[i]
    }
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // debugger
    const show = wx.getStorageSync('hiddenModel')
    this.setData({ hiddenModel: show })
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
  * 页面相关事件处理函数--监听用户下拉动作
  */
  onPullDownRefresh: function () {
    this.setData({ pageNo:1})
    this.getData(() => {
      wx.stopPullDownRefresh()
    })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    const { isAll, isDown } = this.data
    if (isAll) {
      this.setData({ isDown: true })
      return
    } else {
      this.setData({ isLoad: true, isDown: false })
      this.getData(() => {
        this.setData({ isLoad: false })
      })
    } 
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    if (isFn(sharePage)) return sharePage()
  },
  /**
   * 提示框隐藏
   */
  allShowModel: function () {
    wx.setStorageSync('hiddenModel', false)
    this.setData({ hiddenModel: false })
  },
  screenShowModel:function(){
    this.setData({ screenModel: false })
  },
  /**
   * 随机调书
   */
  getRondam:function(){
    wx.setStorageSync('hiddenModel', true)
    this.setData({ hiddenModel: true })
  },
  /**
   * 筛选
   */
  getScreen:function(){
    this.setData({ screenModel: true })
  },
  /**
   * 热度排序
   */
  selectHot:function(){
    const {itemIndex} = this.data
    var idx = itemIndex != 1 ? 1 : 0
    this.setData({ itemIndex: idx, pageNo: 1})
    wx.showLoading({
      title: '加载中',
    })
    this.getData(() => {
      wx.hideLoading();
    })
  },
  /**
   * 调入
   */
  addBook:function(e){
    const { isbn13, detailid, infoid, size, number, index } = e.currentTarget.dataset
    const continuousFn = { fn: this.addBook, param: { ...arguments } }
    const { libId,list} = this.data
    var numbers = number;
    // console.log(list)
    var temp = {};
    if (numbers < size){
      numbers = numbers + 1;
      this.setData({ number: numbers })
      temp[`list[${index}].number`] = numbers
      this.setData(temp)
      CallInBooks({ data: { libId, bookInfoId: infoid,isbn13 }, continuousFn }).then(res => {
          wx.showToast({
            title: `已加入调入清单`,
            icon: 'none'
          })
          // this.getData()
        })
    }else{
      if (size == 1) {
        wx.showToast({
          title: `该书籍库存只有一本了,无法再添加了`,
          icon: 'none'
        })
      } else {
        wx.showToast({
          title: `已达上限`,
          icon: 'none'
        })
      }
      return
    }
  },
  /**
   * 删除
   */
  subtractionBook: function (e) {
    const { isbn13, detailid, infoid, size,number,index} = e.currentTarget.dataset
    const continuousFn = { fn: this.subtractionBook, param: { ...arguments } }
    const { list, libId} = this.data
    let ids=[];
    ids.push(
      infoid
    )
    var numbers = number;
    var temp={};
    // console.log(number, index)
    if (numbers >0) {
      numbers = numbers - 1;
      this.setData({ number: numbers })
      temp[`list[${index}].number`] = numbers
      this.setData(temp)
      DeleteBooks({ data: { ids, libId}, continuousFn }).then(res => {
      wx.showToast({
        title: `删除成功`,
        icon:'none'
      })
      // this.getData()
      })
    } else {
      wx.showToast({
        title: `已经删除`,
        icon: 'none'
      })
      return
    }

  },
  /**
   * 选择年级
   */
  selectGrade: function (e) {
    const { index } = e.currentTarget.dataset
    const { isCheck, gradeList, classList } = this.data
    const temp = {}
    temp[`gradeList[${index}].isCheck`] = gradeList[index].isCheck != 1 ? 1 : 0
    this.setData(temp)
    if (gradeList[index].isCheck == 1) {
      classList.push({
        grade: gradeList[index].grade
      })
    } else if (gradeList[index].isCheck == 0){
      for (var i in classList){
        if (gradeList[index].grade == classList[i].grade){
          classList.splice(i,1)
        }
      }
    }
    this.setData({ classList })
  },

  /**
  * 选择主题
  */
  selectTheme: function (e) {
    const { index, key, type } = e.currentTarget.dataset
    const { isCheck, themeList, bookList = [], childList = [] } = this.data
    const temp = {}
    if (type == 1) {
      temp[`themeList[${index}].isCheck`] = themeList[index].isCheck != 1 ? 1 : 0
      this.setData(temp)
      if (themeList[index].isCheck == 1) {
          bookList.push({
            code: themeList[index].code,
            childList
          })
      } else if (themeList[index].isCheck == 0){
          for (var i in bookList) {
            if (themeList[index].code == bookList[i].code) {
              bookList.splice(i, 1)
            }
          }
        }
      
    } else {
      temp[`themeList[${index}].childList[${key}].isCheck`] = themeList[index].childList[key].isCheck != 1 ? 1 : 0
      this.setData(temp)
      for (var i in themeList) {
        for (var j in themeList[i].childList) {
          if (themeList[i].childList[j].isCheck == 1) {
            if (themeList[i].code == themeList[index].code) {
              childList.push({
                code: themeList[i].childList[j].code
              })
            }
            bookList.push({
              code: themeList[i].code,
              childList
            })

          }
        }
      }
    }
    this.setData({ bookList })
    // console.log(bookList)
  },
  /**
  * 重置
  */
  getReset:function(){
    const { themeList, gradeList } = this.data
    const temp = {}
    for (var i in gradeList) {
      temp[`gradeList[${i}].isCheck`] = 0
    }
    for (var i in themeList) {
      temp[`themeList[${i}].isCheck`] = 0
      for (var j in themeList[i].childList){
        temp[`themeList[${i}].childList[${j}].isCheck`] =0
      }
    }
    this.setData(temp)
    this.setData({ classList: [], bookList: [], isShai: false})
  },
  /**
  * 提交
  */
  getSubmit:function(){
    const { classList, bookList, isSelect, isShai } = this.data
    // console.log(isShai)
    if (classList.length > 0 || bookList.length > 0) {
      this.setData({ isShai: true })
    } else {
      this.setData({ isShai: false })
    }
    // if (bookList.length == 0) {
    //   wx.showToast({
    //     title: `请选择主题`,
    //     icon: 'none'
    //   })
    //   return
    // }
    this.setData({ pageNo: 1, stat: 1})
    this.getData(res => {
      this.setData({ isSelect: true, screenModel: false})
    })
    
  },
  /**
   * 返回好书推荐
   */
  backBook:function(){
    this.setData({ isLoaded: 0, pageNo:1,isSelect: false, classList: [], bookList: [], stat:2 })
    this.getReset()
    this.getData(res => {
      this.setData({ isLoaded: 1})
    })
  },
  /**
   * 好书推荐
   */
  getData: function (cb) {
    const continuousFn = { fn: this.getData, param: { ...arguments } }
    const { pageNo, pageSize, itemIndex, classList, bookList, stat} = this.data
    GoodBooksToRead({ data: { pageNo, pageSize, type: ~~itemIndex + 1, stat, gradeList: classList, themeList: bookList}, continuousFn }).then(res => {
      const { list } = res.data
      const correctListTemp = (res => {
        // console.log(res)
        var d = []
        for (let i in res) {
          res[i].number = 0
        }
        return res
      })(list)
      let listTemp = []
      if (pageNo == 1) {
        listTemp = [].concat(correctListTemp)
      } else {
        listTemp = [].concat(this.data.list, correctListTemp)
      }
      // console.log(listTemp)
      this.setData({ list: listTemp, pageNo: list.length == pageSize ? pageNo + 1 : pageNo, isAll: list.length < pageSize })
      cb && cb(res)
    }).catch(res => {
      cb && cb(res)
    })
  },
  /**
   * 筛选
   */
  getBooksTab:function(){
    const continuousFn = { fn: this.getBooksTab, param: { ...arguments } }
    const { libId } = this.data
    GetBooksTab({ data: { libId}, continuousFn }).then(res => {
      const { gradeList, themeList}=res.data;
      this.setData({ gradeList, themeList})
    })
  },
  /**
   * 进入主题
   */
  enterTheme:function(e){
    const { child,theme } = e.currentTarget.dataset
    const { classList} = this.data
    navigateTo({
      url: 'president/pages/part_call_in/part_call_in?gradeList=' + JSON.stringify(classList) + '&childTheme=' + child + '&theme=' + theme
    })
    
  }
})