goodsList.js 9.77 KB
var t = function (t) {
  return t && t.__esModule ? t : {
    default: t
  };
}(require("../../../../utils/LoadMore.js")), e = getApp(), a = new t.default(), oo = e.globalData.setting, ut = require("../../../../utils/util.js");
var regeneratorRuntime = require('../../../../utils/runtime.js');

Page({
  data: {
    url: e.globalData.setting.imghost,
    resourceUrl: e.globalData.setting.resourceUrl,
    iurl: e.globalData.setting.imghost,
    currentPage: 1,
    requestData: null,
    allData: null,
    openFilterModal: !1,
    baseUrl: "/api/weshop/goods/page?1=1",
    requestUrl: "",
    tabname: "sort",   //排序的字段
    adname: "asc",        //升降的字段
    is_new: 0,
    is_hot: 0,
    page:1,
    prom_goods_list: null,
    rq_data: null,
    isToggle: false, //切换商品视图控制符
  },

  onLoad: function (t) {

    this.data.rq_data = t;

    //接受有没有导购的参数
    var first_leader = t.first_leader;
    if (first_leader) {
      getApp().globalData.first_leader = first_leader;
      //调用接口判断是不是会员
      getApp().request.promiseGet("/api/weshop/shoppingGuide/get/" + oo.stoid + "/" + first_leader, {}).then(res => {
        if (res.data.code == 0) {
          getApp().globalData.guide_id = res.data.data.id;
        }
      })
    }
    // this.getShopGoods();
    var th = this;
    a.init(this, "", "requestData");
    var url = this.data.baseUrl;
    this.data.is_new = t.is_new;
    this.data.is_hot = t.is_hot;
    if (0 != t.cat_id && t.cat_id != undefined) {
      url += "&cat_id=" + t.cat_id;
      if (t.pid == undefined || t.pid == null) {
        url += "&parent_id=0";
      } else {
        if (t.pid != "three") {
          url += "&parent_id=" + t.pid;
        }
      }
    }

    if (0 != t.brand_id && t.brand_id != undefined) { url += "&brand_id=" + t.brand_id; }
    if (0 != t.nation_id && t.nation_id != undefined) { url += "&nation_id=" + t.nation_id; }

    if (0 != t.group_id && t.group_id != undefined) { url += "&group_id=" + t.group_id; }
    if (0 != t.gid && t.gid != undefined) { url += "&group_id=" + t.gid; }

    if (0 != t.max_price && t.max_price != undefined) { url += "&min_pirce=" + t.min_pirce + "&max_price=" + t.max_price; }

    if (0 != t.is_new && t.is_new != undefined) { url += "&is_new=" + t.is_new; }
    if (0 != t.is_hot && t.is_hot != undefined) { url += "&is_hot=" + t.is_hot; }

    if (getApp().globalData.userInfo) {
      url += "&user_id=" + getApp().globalData.userInfo.user_id;
    }
    this.requestGoodsList(url);
    //优惠活动的凑单
    if (t.prom_type == 3) {
      if (0 != t.prom_id && t.prom_id != undefined) { url += "&prom_id=" + t.prom_id; }
      if (0 != t.prom_type && t.prom_type != undefined) { url += "&prom_type=" + t.prom_type; }
      //-- 获取 --
      getApp().request.promiseGet("/api/weshop/promgoodslist/list", {
        data: { prom_id: t.prom_id }
      }).then(res => {
        if (res.data.code == 0) {
          var arr = res.data.data;
          th.set_prom_list(arr);
        }
      })
    }
    getApp().getConfig2(function (rs) {
      //计算等级价相关
      var swithc_list = rs.switch_list;
      var sw_arr = JSON.parse(swithc_list);
      //---如果后台又开等级卡的开关---
      if (sw_arr.rank_switch && sw_arr.rank_switch == "2") {
        th.setData({ rank_switch: true });
        var user = getApp().globalData.userInfo;
        var ti = setInterval(function () {
          if (!user) return false;
          clearInterval(ti);
          //---回调卡的列表---
          th.getPlusCardType(function (ob) {
            th.setData({ card_list: ob.card_list });
            if (user.card_field) {
              var str = user['card_expiredate'].replace(/-/g, '/');
              var end = new Date(str);
              end = Date.parse(end) / 1000;
              var now = ut.gettimestamp();

              //--- 判断是等级会员,且在有效期范围内 ---
              if (user.card_field && now < end) {
                var card_name = ob.name_map.get(user.card_field);
                // if(card_name.length>4) card_name=card_name.substring(0,4);
                th.setData({ card_field: user.card_field, card_name: card_name, card_list: ob.card_list });
              }
            }
          })
        }, 500)
      }
    });    
  },
  //设置优惠券的
  set_prom_list: async function (arr) {
    var th = this;
    for (var i in arr) {
      //优惠的实际内容
      var content = JSON.parse(arr[i].preferential_type);
      arr[i].content = content;
      //--送礼包--
      if (content.is_libao) {
        //-- 获取 --
        await getApp().request.promiseGet("/api/weshop/libao/libaoForm/page?id=" + content.libao + "&store_id=" + oo.stoid, {
        }).then(res => {
          if (res.data.code == 0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length > 0)
            arr[i].content.lb_name = res.data.data.pageData[0].lbtitle;
        })
      }
      //--送赠品--
      if (content.is_gift) {
        //-- 获取 --
        await getApp().request.promiseGet("/api/weshop/prom/gift/page?id=" + content.gift + "&store_id=" + oo.stoid, {
        }).then(res => {
          if (res.data.code == 0)
            arr[i].content.gift_name = res.data.data.pageData[0].goods_name;
        })
      }
    }
    th.setData({ prom_goods_list: arr });
  },

  changeTab: function (t) {
    var ord = t.currentTarget.dataset.href;
    var ad = t.currentTarget.dataset.ad;
    var url = this.data.requestUrl;

    if (this.data.tabname != ord) {
      this.setData({ tabname: ord, adname: "desc" });
    } else {
      ad = ad == "desc" ? "asc" : "desc";
      this.setData({ adname: ad });
    }
    this.resetData(), this.requestGoodsList(url);
  },

  requestGoodsList: async function (t) {

    if(this.data.is_no_more){
      getApp().showWarning("加载完啦", null, 500, !1);
      return false
    }
    var e = this;
    this.data.requestUrl = t;

    //不是商品分组的,不是默认排序的	
    if (t.indexOf("group_id") == -1 || e.data.tabname != "sort") {
      t += "&orderField=" + e.data.tabname;
      t += "&orderType=" + e.data.adname;
    }

    t += "&page=" + e.data.currentPage;
    t += "&pageSize=" + 20;
    t +="&store_id=" +oo.stoid;
    const { data: res } = await getApp().request.promiseGet(t, {
      isShowLoading: true,
    })
    console.log(res);
    if (res.code == 0 && res.data.pageData.length > 0) {
      this.setData({
        requestData: res.data.pageData,
        
      });
    }
  },
  getInput(e) {
    this.setData({
      keyword: e.detail.value.trim(),
    });
  },

  search: function (t) {
    let keyword = this.data.keyword;
    if (!keyword) {
      t.showWarning("请输入搜索关键词");
      return false
    }
    wx.navigateBack({
      delta: 2
    });
    getApp().globalData.key_word = keyword;
  },
  onReachBottom: function () {
    a.canloadMore() && this.requestGoodsList(this.data.requestUrl);
  },
  onPullDownRefresh: function () {
    this.resetData(), this.requestGoodsList(this.data.requestUrl);
  },
  openFilterModal: function () {
    this.setData({
      openFilterModal: !0
    });
  },
  closeFilterModal: function () {
    this.setData({
      openFilterModal: !1
    });
  },
  filterGoods: function (t) {
    this.resetData(), this.requestGoodsList(t.currentTarget.dataset.href), this.closeFilterModal();
  },
  resetData: function () {
    a.resetConfig(), this.data.requestData = null, this.data.currentPage = 1;
  },

  //---回复最初的设置---
  restoreData: function () {
    this.setData({
      requestData: null,
    });
    this.data.currentPage = 2;
  },
  //---------分享配置--------
  onShareAppMessage: function (e) {
      getApp().globalData.no_clear=1
    var curPage = this;
    var pagePath = curPage.route; //当前页面url
    if (pagePath.indexOf('/') != 0) {
      pagePath = '/' + pagePath;
    }

    if (this.data.rq_data && JSON.stringify(this.data.rq_data) != "{}") {
      var parm = ut.ob_to_parm(this.data.rq_data);
      pagePath += "?" + parm;
    }

    if (getApp().globalData.user_id) {
      if (pagePath.indexOf("?") > 0) {
        pagePath += "&first_leader=" + getApp().globalData.user_id;
      } else {
        pagePath += "?first_leader=" + getApp().globalData.user_id;
      }
    }
    console.log("11-11" + pagePath);
    return {
      title: "商品列表",
      path: pagePath,
    }
  },
  //---图片失败,默认图片---
  bind_bnerr2: function (e) {
    var _errImg = e.target.dataset.errorimg;
    var _errurl = e.target.dataset.url;
    var ii = _errurl.indexOf(oo.imghost);
    if (ii != -1) {
      // var _errObj = {};
      // _errObj[_errImg] = this.data.iurl + "/miniapp/images/default_g_img.gif";
      this.setData({
        [_errImg] : "/miniapp/images/default_g_img.gif",
      }) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; 
    }
  },

  //---  获取卡类列表 ---
  getPlusCardType: function (func) {
    var storid = oo.stoid;
    var th = this;
    getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?" + "storeId=" + storid, {}).then(res => {
      var plusCard = res.data.data;
      var arr = [1219, 2089, 3031];
      var new_arr = new Array();
      var card_name_map = new Map();
      var user = getApp().globalData.userInfo;
      for (var i = 0; i < plusCard.length; i++) {
        if ((!user || user.card_field == null || user.card_field == "") && (plusCard[i].IsStopBuy == true)) {
          continue;
        }
        var name = "card" + plusCard[i].CorrPrice.toLowerCase();
        card_name_map.set(name, plusCard[i].CardName);
        new_arr.push(plusCard[i]);
      }

      var ob = { "card_list": new_arr, "name_map": card_name_map };
      func(ob);
    })
  },



  // 切换显示
  bindToggleDisplay() {
    this.setData({
      isToggle: !this.data.isToggle,
    });
  },


});