// pages/my/my.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');
import { Integer } from '../../utils/integerDigitalConvertion'

const logger = utils.logger

wxService.page({
  /**
   * 页面的初始数据
   */
  data: {
    pages: [],
    render: null, // 渲染页面数据对象(安全渲染)
    renderPageOver: false, // 渲染页面结束
    integralNum: 0,
    couponNum: 0,
    isAllScreen: config.isAllScreen,
    token: '',
    isAuthorization: false,
    pageId: 3,
    baseUserInfo: null,
    pageBackgroundColor: 0,
    guidePageModalShow: false,
    currHomePageId: '',
    skuVOList:[]
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    // 设置 导航栏背景颜色
    // wxService.getNavBarBackGroundColor('#000000', '#ff0000')
    this.setData(
      {
        pages: [],
        groupLoadState: 'complete', // 活动分组加载标志
        homeApiLoading: true,
        render: null, // 渲染页面数据对象(安全渲染)
        isLastPage: false, // 页面段落加载完成
        renderPageOver: false, // 渲染页面结束
        // isAuthorization: true,
        outoHeigth: 500,
      },
      () => {
        // this.loadMore()
      }
    )
    handlerDataOnPage = new utils.HandlerDataOnPage()
    renderPage = require('../../utils/renderPage').getRenderPage()
    handlerDataOnPage.init(this, 'pages')
    this.initPage(this.data.pageId)
  },
  /** 
   * 监听子组件事件
   * */
  updatePage(ev) {
    const { pageId } = ev.detail
    // this.setData({
    //   pages: [],
    //   pageId
    // },()=>{
    //   this.initPage(pageId)
    // })
    wxService.router(`/subPackage/page/pages/subPage/subPage`).search({ pageId })
  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 取会员卡号
    const baseUserInfo = wx.getStorageSync('_baseUserInfo')
    const cardMember = wx.getStorageSync('_cardMember')
    // 登录接口返回err
    const reLoginErrFlag = wx.getStorageSync('reLoginErr')
    if (baseUserInfo && !reLoginErrFlag) {
      this.setData({
        token: wx.getStorageSync('token'),
        baseUserInfo,
        cardMember,
        isAuthorization: false
      }, () => {
        // 积分数量
        // this.getMemberPointInfo()
        // 优惠券数量
        // this.getMemberCouponInfo()
      })
    }
    else if (!baseUserInfo && reLoginErrFlag) {
      this.setData({
        isAuthorization: true
      })
    }
    else {
      this.setData({
        isAuthorization: true
      })
    }
    // if (baseUserInfo){
    //   this.setData({
    //     token: wx.getStorageSync('token'),
    //     baseUserInfo,
    //     // cardMember,
    //     isAuthorization: false
    //   })

    //   // 积分数量
    //   this.getMemberPointInfo()
    //   // 优惠券数量
    //   this.getMemberCouponInfo()
    // } else {
    //   this.setData({
    //     isAuthorization: true
    //   })
    // }
    // 获取plus购买信息
    this.getPlusPurchase()
    // 获取手机信息
    wxService.getSystemInfo().then(res => {
      this.setData({
        outoHeigth: res.windowHeight
      })
    })
    // 设置当前选中 Tab 
    if (typeof this.getTabBar === 'function' &&
      this.getTabBar()) {
      this.getTabBar().setData({
        selected: 0
      })
    }
  },

  // page 信息
  initPage(pageId) {
    this.setData({
      products: []
    })
    wx.showLoading({
      title: '加载中'
    })
    // /mainSetting/page?brandId=&isMain=&type=2
    wxService.post(`/merchant/modelPage/mainSetting/page?brandId=${app.globalData.brandId}&isMain=2&type=2`).then(res => {
      if (!res) return false
      const { result, data } = res.data
      if (result == 0) {
        this.setData({
          pageBackgroundColor: data.page.backgroundColor || 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) }
      })
    }

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

    this.setData({
      ...productData
    }, () => {
      wx.hideLoading()
    })
  },
 
  // 获取plus购买信息
  getPlusPurchase() {
    wxService.get(`/sale/premium/query`).then(res => {
      const { result, data } = res.data
      if (result == 0) {
        this.setData({
          skuVOList: data
        })
      }
    }).finally(() => {
    })
  },
  /**
  * 用户点击右上角分享
  */
  onShareAppMessage: function (res) {
    let tentacleInfo = {
      content: '首页',
      title: '首页',
      contentType: app.globalData.contants.SHARE_TYPE.HOME,
      type: 3// 1:门店,2:员工(暂时不做),3:会员,4:第三方外部渠道,5:智能营销
    };
    wxService.getTentacleContent(tentacleInfo).then(res => {
      if (res && res.tentacleId) {
        let tentacleId = Integer.digit(res.tentacleId, 10, 64);
        var path = `pages/userCenter/userCenter?t=${tentacleId}`;
        return {
          path: path
        }
      }
    });
  }
})