index.js 7.72 KB

var t = getApp(),
  a = t.request,
  os = t.globalData.setting,
  ut = require("../../utils/util.js"),
  com = require("../../utils/common.js");
var regeneratorRuntime = require('../../utils/runtime.js');
var api = require('../../api/api.js');
var appd = getApp().globalData;

Page({
  data: {
    url: os.imghost,
    temp_id: 0,
    goodsGroupArr: [],
    //满屏顶部导航参数------------
    is_full_screen_navigation: false, //是否满屏
    is_full_screen_navigation_index: -1, //广告轮播满屏下标
    nav_title: '首页',
    nav_frontColor: "#ffffff",
    nav_backgroundColor: "#ff7295",
    nav_type: 1,  //导航类型
    searchbox_transparent: 1, //搜索框背景是否透明

    nav_but_color: '#32ACF9', //导航按钮颜色
    sele_pickup: null, //默认门店
    // nav_bg_color:'#e823e8', //导航按钮颜色
    //----------------
  },

  onLoad: function (e) {
    var th = this;
    this.data.temp_id = e.scene;
    if (!this.data.temp_id)
      this.data.temp_id = e.sence;
    if (!this.data.temp_id) wx.showModal({ title: "未读取到模板ID", })

    var first_leader = e.first_leader;
    if (first_leader) {
      //--  user_id代过来免登录 --
      getApp().globalData.first_leader = first_leader;
      //调用接口判断是不是会员
      getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + os.stoid + "/" + first_leader, {}).then(res => {
        if (res.data.code == 0) {
          getApp().globalData.guide_id = res.data.data.id;
          getApp().globalData.guide_pick_id = res.data.data.pickup_id
        }
      })

    }

    getApp().getConfig(function (e) {
      //--首页的问题--
      if (getApp().globalData.config && getApp().globalData.config.store_name != undefined && getApp().globalData.config.store_name != null) {
        wx.setNavigationBarTitle({
          title: getApp().globalData.config.store_name,
        });
        th.setData({
          nav_title:getApp().globalData.config.store_name
        })
      } else {
        wx.setNavigationBarTitle({
          title: getApp().globalData.setting.appName,
        });
        th.setData({
          nav_title: getApp().globalData.setting.appName,
        })
      };
    });



  },

  async onShow() {
    getApp().check_can_share();
    var th = this;
    await this.init_load();
    //如果是自定义模板
    if (this.data.isTemplate) {

    }
  },
  //获取商品模块实例
  newGoodsGroup() {
    let arr = []
    if (this.data.template_arr.length == 0) {
      return
    }
    this.data.template_arr.map((item, index) => {
      if (item.ename == 'goodsGroup') {
        arr.push(`goodsGroup${index}`)
      }
    })
    if (arr.length > 0) {
      this.setData({
        goodsGroupArr: arr
      })
      arr.map(item => {
        let a = '.' + item
        this[item] = this.selectComponent(a);
      })
    }
  },
  //当隐藏的时候就关闭计时器
  onHide: function () {

  },
  //同步初始加载
  async init_load() {
    var th = this;
    //因为营销版本的功能包含了自定义模板的功能,是同时的
    //读取全局是否有弄自定义模板
    await getApp().request.promiseGet("/api/weshop/store_module/get/" + th.data.temp_id + "/4", { 1: 1 }).then(res => {
      var data = res.data.data;
      if (data) {
        var temp_data = data;
        wx.setNavigationBarTitle({
          title: temp_data.page_title,
        });
        var t_arr = JSON.parse(temp_data.json_str);
                //增加判断是否是满屏
                let is_full_screen_navigation = false
                let is_full_screen_navigation_index = -1
                let nav_but_color ="#32ACF9"
                if (t_arr) {
                  t_arr.map((item,index)=>{
                    if (item && item.content && item.content.full_screen==1 && !is_full_screen_navigation) {
                      is_full_screen_navigation = true
                      is_full_screen_navigation_index = index
                      try {
                        nav_but_color = item.content.data[0].but_color               
                      } catch (error) {}
                    }
                  })
                }
        th.setData({
          nav_but_color,
          is_full_screen_navigation,
          is_full_screen_navigation_index,
          share_title: temp_data.page_title,
          template_arr: t_arr,
          isTemplate: 1,
          bgcolor_t: temp_data.bkcolor
        });
        setTimeout(() => {
          th.newGoodsGroup()
        }, 1000)

        //---如果有设定顶部的颜色的时候--
        if (temp_data.top_color && temp_data.top_color != 'null') {

          var top_w_color = "#ffffff";
          if (temp_data.top_word_color && temp_data.top_word_color == 'black') {
            top_w_color = "#000000";
          }

          wx.setNavigationBarColor({
            frontColor: top_w_color, // 必写项
            backgroundColor: temp_data.top_color, // 必写项
          })
          th.setData({
						// nav_frontColor: top_w_color, // 必写项
						nav_backgroundColor: temp_data.top_color, // 必写项
          })
        }

      }
    })



  },
    //广告轮播满屏按钮颜色传递方法
    bindbut_color_event_fn(even){
      let nav_but_color = even.detail.but_color
      this.setData({
        nav_but_color
      })
    },
  onPageScroll: function (e) {
    //满屏模式监听
    if (this.data.is_full_screen_navigation) {
      let num = e.scrollTop
      let nav_type = this.data.nav_type
      if (num >= 100 && nav_type) {
        this.setData({
          nav_type:0,
          searchbox_transparent:0,
          nav_frontColor:'#000'
        })
        // this.data.nav_type = 0
      }
      if (num < 100 && !nav_type) {
        this.setData({
          nav_type:1,
          searchbox_transparent:1,
          nav_frontColor:'#fff'
        })
        // this.data.nav_type = 1
      }
    }
    //-----------end-------


		// this.data.scrollTop = e.scrollTop;
		// var t = getCurrentPages();
		// "pages/index/index/index" == t[t.length - 1].route;

	},
  onPullDownRefresh: function (e) {

  },


  onShareAppMessage: async function (e) {
    var th = this;
    getApp().globalData.no_clear = 1;
    getApp().getConfig(await function (e) {
      th.setData({
        store_config: e
      })
    }.bind(this))

    var url = `pages/template/index?sence=` + this.data.temp_id;
    var userInfo = getApp().globalData.userInfo;
    //是分销商才带
    if (userInfo) {
      url += "&first_leader=" + userInfo.user_id;
    }

    var ob = {
      title: this.data.share_title,
      path: url,
      //imageUrl:this.data.url+this.data.store_config.store_logo,
    };
    return ob;
  },

  /**
  * 用户分享朋友圈
  */
  async onShareTimeline() {

    var th = this;
    getApp().globalData.no_clear = 1;
    getApp().getConfig(await function (e) {
      th.setData({
        store_config: e
      })
    }.bind(this))
    var { share_title, temp_id, store_config } = this.data;
    var url = `sence=${temp_id}`;

    var userInfo = getApp().globalData.userInfo;
    //是分销商才带
    if (userInfo) {
      url += "&first_leader=" + userInfo.user_id;
    }

    var ob = {
      title: share_title,
      query: url,
      //imageUrl:this.data.url+store_config.store_logo,
    };
    console.log(ob);
    return ob;
  },
  //---加载更多是靠这个函数----
  onReachBottom: function () {
    if (getApp().globalData.func_list) {
      for (let i in getApp().globalData.func_list) {
        let item = getApp().globalData.func_list[i];
        item.re_show();
      }
    }

    //自定义时商品自动加载更多
    let goodsGroupArr = this.data.goodsGroupArr
    if (this.data.isTemplate && goodsGroupArr.length > 0) {
      goodsGroupArr.map(item => {
        this[item].automore()
      })
    }
  },



});