// subPackage/page/pages/subPage/subPage.js
const app = getApp()
const wxService = require('../../../../utils/wxService')
const utils = require('../../../../utils/util')
const envInfo = require('../../../../config/index').envInfo
let renderPage = null // 渲染页面数据对象(安全渲染)
let handlerDataOnPage = null
let config = require('../../../../configScreen/configScreen');
const logger = utils.logger

wxService.page({
  /**
   * 页面的初始数据
   */
  data: {
    pages:[],
    render: null, // 渲染页面数据对象(安全渲染)
    renderPageOver: false, // 渲染页面结束
    integralNum: 0,
    couponNum: 0,
    // isAllScreen: fullSucreen.isAllScreen
    isAllScreen: config.isAllScreen,
    token:'',
    isAuthorization: false,
    pageId: 3,
    currHomePageId: '',
    goHome: false // 默认隐藏回到首页 不存在 5 tabBar 显示
  },

 /**
   * 生命周期函数--监听页面加载
   */
  onLoad () {
    this.setData(
      {
        pages: [],
        groupLoadState: 'complete', // 活动分组加载标志
        homeApiLoading: true,
        render: null, // 渲染页面数据对象(安全渲染)
        isLastPage: false, // 页面段落加载完成
        renderPageOver: false, // 渲染页面结束
        // isAuthorization: true
      },
      () => {
        // this.loadMore()
      }
    )
    handlerDataOnPage = new utils.HandlerDataOnPage()
    renderPage = require('../../../../utils/renderPage').getRenderPage()
    handlerDataOnPage.init(this, 'pages')
  },
  /** 
   * 监听子组件事件
   * */ 
  updatePage(ev) {
    const {pageId} = ev.detail
    this.setData({
      pages: [],
      pageId
    },()=>{
      this.initPage(pageId)
    })
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow () {
    console.log('subbbbbbbbb', this.data.currentHasUserInfo)
    const { pageId } = this.options
    this.setData({
      token: wx.getStorageSync('token'),
      pages: [], // 清空当前页
      pageId,
    },()=>{
      let currentPageId = pageId? pageId : this.data.pageId
      this.initPage(currentPageId)
    })
    if (wx.getStorageSync('_baseUserInfo')){
      // 积分数量
      // this.getMemberPointInfo()
      // 优惠券数量
      // this.getMemberCouponInfo()
    }
  },
  // 查询积分信息
  getMemberPointInfo(){
    wx.showLoading({
      title: '加载中'
    })
    wxService.get(`/member/memberPoint/getMyPointInfo`).then(res => {
      if(res) {
        const { result, data } = res.data
        if (result == 0) {
          wx.hideLoading()
          this.setData({
            integralNum: data && data.point || 0
          })
        }
      } 
    })
  },
// 查询优惠券数量
  getMemberCouponInfo(){
    wx.showLoading({
      title: '加载中'
    })
    wxService.post(`/coupon/coupon/memberCouponCount`).then(res => {
      if(res){
        const { result, data } = res && res.data
        if (result == 0) {
          wx.hideLoading()
          this.setData({
            couponNum: data && data[1] || 0
          })
        }
      } else {
        wx.showToast({
          title: '请求失败',
          icon: 'none'
        })
      }
    })
  },
  // page 信息
  initPage(pageId){
    this.setData({
      products: []
    })
    wx.showLoading({
      title: '加载中'
    })
    wxService.post(`/merchant/modelPage/getDetailById?pageId=${pageId}&brandId=${app.globalData.brandId}`).then(res => {
      if(!res) return false
      const {result,data} = res.data
      if(result == 0){
        // 动态设置title
        wx.setNavigationBarTitle({
          title: data.page.title
        })
        // 首页 pageId
        // data.page.pageId
        this.setData({
          currHomePageId: data.page.pageId
        })
        // 段落
        const products = data.paragraphs
        const filterResult = products.map((res,index)=>{
          return {
            ...res,index
          }
        }).filter(item=> {
          // wx.hideLoading()
        })

        const render = renderPage.initPaging(filterResult).initRenderData(products)
        this.data.render = render
        const renderData = render.next()
        this.data.renderPageOver = renderData.done
        this.renderPageFunc({ products: renderData.value })
      }

    }).finally(() => {
      wx.hideLoading();
    })
  },
  /**
	 * 渲染数据(合并之前的数据)
	 * @param products 数组数据
	 * @param isLastPage
	 * @param now
	 */
  renderPageFunc({ products }) {
    // 9 plus(9/5-权重高)
    let newProducts = [...products]
    let typeArr = []
    newProducts.map(item => typeArr.push(item.type))
    if (typeArr.includes(9) && typeArr.includes(5)) {
      newProducts.forEach((item, index) => {
        if (item.type == 5) { newProducts.splice(index, 1) }
      })
    } else {
      // 默认隐藏回到首页 不存在 5 tabBar 显示
      newProducts.forEach(item => {
        if (item.type != 5) {
          this.setData({
            goHome: true
          })
        }
      })
    }

    // let productData = handlerDataOnPage.handlerArray(products)
    let productData = handlerDataOnPage.handlerArray(newProducts)
    logger.log('productData.keysNum', productData.keysNum(), productData)

    this.setData({
      ...productData
    }, () => {
      wx.hideLoading()
    })
  }
})