// packageE/solitaire/solitaire.js
var app = getApp();
Page({
  /**
   * 页面的初始数据
   */
  data: {
    activity_id: 0,
    activity_data: {},
    hand_goods_obj: {},
    hand_goods_id: 0,
    shareShow: false,
    specsShow: false,
    goodsPopupShow: false,
    cartListShow: false,
    currentTime: parseInt(new Date().getTime() / 1000),
    timeData: {},
    shareOptions: [
      { name: "生成海报", icon: "poster" },
      { name: "分享给好友", icon: "wechat", openType: "share" },
    ],
    goods_list: [],
    buyerListData: [],
    carList: [],
    goodsCartsTotal: {},
    language: {},
    posterShow: false,
    cartsNum: 0,
    cartsTotal: 0,
    cart_ids: [],
    good_ids: [],

    showChoose: false,
    radioChoose: "",
    dispatch_types: [],

    networkLoading: false, //网络请求

    buyerListDataLimit: [],
    page: 1, //分页数，当前页数
    isLoadMore: true, //判断是否要加载更多的标志
    total_page: 0, //总页

    end_time: "",
  },

  onChangeTime(e) {
    this.setData({
      timeData: e.detail,
    });
  },

  onCloseShare() {
    this.setData({ shareShow: false });
  },
  close_yz_cartList_popup() {
    this.setData({
      cartListShow: false,
    });
  },
  typeChange(event) {
    this.setData({
      radioChoose: Number(event.detail),
    });
  },
  close_yz_specs_popup(e) {
    console.log(e);
    if (e.detail.clicktype == 1) {
      //点击确认按钮
      this.addCartRequest({
        goods: { id: e.detail.goodsId },
        cartid: e.detail.cartid,
        total: e.detail.goodsCount,
        optionsId: e.detail.optionsId,
      });
      this.setData({
        specsShow: false,
        //	optionsId: e.detail.optionsId,
        //	goodsCount: e.detail.goodsCount
      });
    } else {
      this.setData({
        specsShow: false,
      });
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let activity_id = options.activity_id;
    let scene = decodeURIComponent(options.scene);
    if (scene) {
      var info_arr = [];
      info_arr = scene.split("&");
      console.log(info_arr);
      for (let i = 0; i < info_arr.length; i++) {
        let chil_arr = [];
        chil_arr = info_arr[i].split("=");
        console.log(chil_arr);
        if (chil_arr[0] == "activity_id") {
          activity_id = chil_arr[1];
        }
        if(chil_arr[0] == "mid"){
          app._setMid(chil_arr[1]);
        }
      }
      console.log(info_arr);
    }

    if (options.mid) {
      app._setMid(options.mid);
    }

    if (activity_id && activity_id != 0) {
      this.setData({ activity_id });
      this.getData(activity_id);
      this.getBuyerData(activity_id);
      this.getCartList();
    } else this.tips("参数错误");
  },
  initData() {
    this.data.page = 1;
    this.data.isLoadMore = true;
    this.data.total_page = 0;
  },
  getData(activity_id) {
    this.initData();
    let urlStr = app.getNetAddresss(
      "plugin.community-relay.frontend.activity.activity-detail"
    );
    app._postNetWork({
      url: urlStr,
      data: { activity_id },
      success: (resdata) => {
        let res = resdata.data;
        if (res.result !== 1) return this.tips(res.msg);
        // let date = new Date();
        this.data.end_time = (res.data.end_time - this.data.currentTime) * 1000;
        this.setData({
          goods_list: res.data.goods_list,
          networkLoading: true,
          activity_data: res.data,
        });
      },
    });
  },

  getBuyerData(activity_id) {
    let urlStr = app.getNetAddresss(
      "plugin.community-relay.frontend.activity.activity-buyer"
    );

    app._postNetWork({
      url: urlStr,
      data: { activity_id },
      success: (resdata) => {
        let res = resdata.data;
        if (res.result !== 1) return this.tips(res.msg);
        console.log(res);
        this.setData({
          buyerListDataLimit: res.data.data,
          buyerListData: res.data.data,
        });
        this.data.isLoadMore = true;
        this.data.total_page = res.data.last_page;
        if (!this.data.total_page) {
          this.data.total_page = 0;
        }
      },
    });
  },
  _getMoreData() {
    this.data.isLoadMore = false; // 防止多次请求分页数据
    if (this.data.page >= this.data.total_page) {
      // that.loading = true;
      return;
    } else {
      this.data.page += 1;
      let urlStr = app.getNetAddresss(
        "plugin.community-relay.frontend.activity.activity-buyer"
      );
      app._postNetWork({
        url: urlStr,
        data: {
          page: this.data.page,
          activity_id: this.options.activity_id,
        },
        success: (resdata) => {
          let res = resdata.data;
          this.data.isLoadMore = true;
          if (res.result === 1) {
            var nextPageData = res.data.data;
            let buyerListData = this.data.buyerListData.concat(nextPageData);
            this.setData({ buyerListData });
          } else {
            this.data.page = this.data.page - 1;
            this.data.isLoadMore = false;
          }
        },
      });
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    let language = wx.getStorageSync("langIndex");
    this.setData({ language: language.en });
  },

  gotoOrder() {
    wx.navigateTo({
      url: "/packageA/member/myOrder_v2/myOrder_v2?status=0",
    });
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {},

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

  openGoodsDetail(e) {
    let item = e.currentTarget.dataset.item;
    if (item.id == this.data.hand_goods_id) {
      this.setData({
        goodsPopupShow: true,
      });
    } else {
      this.data.hand_goods_id = item.id;
      this.getGoodsDetails(item.id, "goodsDetails");
    }
  },

  //不同规格的同一商品求和
  calculateTotal(arr) {
    let temp = {};
    for (let i in arr) {
      let key = arr[i].goods_id;
      this.data.good_ids.push(key);
      this.data.cart_ids.push(arr[i].id);
      if (temp[key]) {
        // temp[key].goods_id = temp[key].goods_id;
        temp[key].total = temp[key].total + arr[i].total;
      } else {
        temp[key] = {};
        temp[key].goods_id = arr[i].goods_id;
        temp[key].total = arr[i].total;
        temp[key].id = arr[i].id;
      }
    }
    this.setData({
      goodsCartsTotal: temp,
    });
  },
  //统计购物车的总价格和总数量
  getFirstCart(data) {
    this.data.carts = data;
    let cartsNum = 0;
    let cartsTotal = 0;
    this.data.carts.forEach((item) => {
      cartsNum += item.total;
      cartsTotal += item.total * item.goods.price;
    });
    cartsTotal = parseFloat(cartsTotal).toFixed(2);
    this.setData({
      cartsNum,
      cartsTotal,
    });
    this.calculateTotal(this.data.carts);
  },

  openShareShow() {
    this.setData({
      shareShow: true,
    });
  },

  openCartListPopup() {
    this.setData({
      cartListShow: !this.data.cartListShow,
    });
  },

  onSelectShare(evt) {
    this.onCloseShare();
    if (evt.detail.index == 0) {
      this.setData({
        posterShow: true,
      });
    }
    console.log(evt.detail.index);
  },

  openSpecs(e) {
    let item = e.currentTarget.dataset.item;
    if (item.id == this.data.hand_goods_id) {
      this.setData({
        specsShow: true,
      });
    } else {
      this.data.hand_goods_id = item.id;
      this.getGoodsDetails(item.id, "specs");
    }
  },

  getGoodsDetails(id, type) {
    let urlStr = app.getNetAddresss("goods.goods.get-goods-page");
    app._postNetWork({
      url: urlStr,
      data: { id: Number(id) },
      success: (resdata) => {
        let res = resdata.data;
        if (res.result !== 1) return this.tips(res.msg);
        let name = "";
        if (type == "goodsDetails") {
          name = "goodsPopupShow";
        } else if (type == "specs") {
          name = "specsShow";
        }
        res.data.get_goods.end_time = this.data.end_time;
        console.log("1111111111111111", this.data.end_time);
        this.setData({
          [name]: true,
          hand_goods_obj: res.data.get_goods,
        });
      },
    });
  },

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

  getCartList() {
    let activity_id = this.data.activity_id;
    let urlStr = app.getNetAddresss(
      "plugin.community-relay.frontend.activity.activity-cart"
    );
    app._postNetWork({
      url: urlStr,
      data: { activity_id },
      success: (resdata) => {
        let res = resdata.data;
        if (res.result !== 1) return this.tips(res.msg);
        let carList = res.data;
        this.setData({
          carList,
        });
        this.getFirstCart(carList);
        //	this.calculateTotal(carList);
        console.log(carList);
      },
    });
  },
  updateCartNum(evt) {
    console.log(evt);
    let item = evt.target.dataset.item;
    let cartid = evt.target.dataset.cartid;
    let value = evt.detail.value;
    let total = value;
    if (value == "" || value == 0) {
      total = 0;
    }
    if (this.data.goodsCartsTotal[item.id].total == total) return;
    this.reduceCartRequest({
      goods: item,
      cartid,
      total,
    });
  },

  reduceCartNum(evt) {
    let item = evt.currentTarget.dataset.item;
    let cartid = evt.currentTarget.dataset.cartid;
    this.reduceCartRequest({ goods: item, cartid });
  },
  reduceCartRequest(obj) {
    let { goods, cartid, total } = obj;
    let id = goods.id;
    let num = 0;
    if (total || total === 0) {
      num = total;
    } else {
      let obj = this.data.goodsCartsTotal;
      num = Number(obj[id].total) - 1;
      this.data.goodsCartsTotal[id].total = num;
    }

    let urlStr = "";
    let json = {};
    if (num <= 0) {
      //清楚购物车
      urlStr = app.getNetAddresss("member.member-cart.destroy");
      json = {
        ids: cartid,
      };
    } else {
      urlStr = app.getNetAddresss("member.member-cart.updateNumV2");
      json = {
        id: cartid,
        num: num,
      };
    }
    app._getNetWork({
      url: urlStr,
      data: json,
      success: (resdata) => {
        var res = resdata.data;
        this.tips(res.msg);
        if (res.result == 1) {
          this.getCartList();
        }
      },
    });
  },
  addCartNum(evt) {
    let item = evt.currentTarget.dataset.item;
    let cartid = evt.currentTarget.dataset.cartid;
    console.log(item);
    this.addCartRequest({ goods: item, cartid });
  },

  //加入购物车
  addCartRequest(obj) {
    let { goods, cartid, total, optionsId } = obj;
    console.log("加入购物车");
    if (goods.vip_level_status && goods.vip_level_status.status == 1) {
      return this.tips(goods.vip_level_status.tips);
    }

    if (goods.stock == 0) {
      return this.tips("库存为零");
    }
    let num = 1;
    let urlStr = "";
    let jsons = {};
    if (!app._isTextEmpty(this.data.goodsCartsTotal[goods.id]) && cartid != 0) {
      if (this.data.goodsCartsTotal[goods.id].total >= goods.stock) {
        return this.tips("库存不足");
      }
      let obj = this.data.goodsCartsTotal;
      num = Number(obj[goods.id].total) + 1;
      if (total && total > 0) {
        num = total;
      }
      this.data.goodsCartsTotal[goods.id].total = num;
      urlStr = app.getNetAddresss("member.member-cart.updateNumV2");
      jsons = {
        id: cartid,
        num: num,
      };
    } else {
      urlStr = app.getNetAddresss("member.member-cart.store");
      if (total && total > 0) {
        num = total;
      }
      jsons = {
        goods_id: goods.id,
        total: num,
      };
      if (optionsId && optionsId > 0) jsons.option_id = optionsId;
    }

    app._getNetWork({
      url: urlStr,
      data: jsons,
      success: (resdata) => {
        var res = resdata.data;
        this.tips(res.msg);
        if (res.result == 1) {
          this.getCartList();
        }
      },
    });
  },

  cartListAdd(item) {
    console.log(item.detail);
    console.log(this.data.goodsCartsTotal);
    this.addCartRequest({
      goods: item.detail.goods,
      cartid: item.detail.id,
      total: item.detail.total + 1,
    });
  },

  cartListReduce(item) {
    console.log(item.detail);
    this.reduceCartRequest({
      goods: item.detail.goods,
      cartid: item.detail.id,
      total: item.detail.total - 1,
    });
  },

  cartListInputBlur(item) {
    let cartList = this.data.carList;
    for (let obj of cartList) {
      console.log(item);
      if (obj.id == item.detail.id) {
        if (obj.total == item.detail.total) return;
      }
    }
    this.reduceCartRequest({
      goods: item.detail.goods,
      cartid: item.detail.id,
      total: item.detail.total,
    });
  },

  goodsDetailCartAdd(evt) {
    this.setData({
      goodsPopupShow: false,
      specsShow: true,
    });
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {},
  closeChoose() {
    this.setData({
      showChoose: false,
    });
  },
  checkGoods() {
    let urlStr = app.getNetAddresss("memberCart.checkout");
    app._getNetWork({
      url: urlStr,
      data: {
        cart_ids: this.data.cart_ids.join(","),
      },
      success: (resdata) => {
        let res = resdata.data;
        if (res.result !== 1) return this.tips(res.msg);
        if (res.data.need_choose == 1) {
          this.setData({
            dispatch_types: res.data.dispatch_types,
            showChoose: true,
          });
        } else {
          this.submitGoods();
        }
      },
    });
  },
  submitGoods() {
    if (this.data.showChoose && !this.data.radioChoose) {
      return this.tips("请先选择配送方式");
    }
    if (this.data.showChoose) {
      // 配送方式有冲突
      this.data.cart_ids = [];
      for (
        let i = 0;
        i < this.data.dispatch_types[this.data.radioChoose].member_carts.length;
        i++
      ) {
        this.data.cart_ids.push(
          this.data.dispatch_types[this.data.radioChoose].member_carts[i].id
        );
      }
    }
    this.verifyFrom();
    // wx.navigateTo({
    // 	url: '/packageD/buy/myOrder_v2/myOrder_v2?tag=-1' + '&cart_ids=' + JSON.stringify(this.data.cart_ids)
    // })
  },
  //下单前验证
  verifyFrom() {
    let that = this;
    let goods = [];
    goods.push(that.data.good_ids);
    let urlStr = app.getNetAddresss("from.div-from.isDisplay");
    urlStr += "&goods_ids=" + JSON.stringify(goods);
    app._getNetWork({
      showToastIn: false,
      url: urlStr,
      success: function (resdata) {
        var res = resdata.data;
        if (res.result == 1) {
          var _data = res.data;
          console.log("xxxx", _data);
          if (res.data.status && !res.data.member_status) {
            wx.showModal({
              title: "提示",
              content: "购买此商品,请补充您的个人信息",
              success(res) {
                if (res.confirm) {
                  //保税真实信息添加
                  // wx.navigateTo({
                  // 	url: '/packageB/member/address/myinfo/myinfo?tag=-1&cart_ids=' + JSON.stringify(that.data.cart_ids)
                  // })
                  wx.navigateTo({
                    url: "/packageB/member/address/myinfo/myinfo?tag=delta",
                  });
                } else if (res.cancel) {
                  console.log("用户点击取消");
                }
              },
            });
          } else {
            wx.navigateTo({
              url:
                "/packageD/buy/myOrder_v2/myOrder_v2?tag=-1" +
                "&cart_ids=" +
                JSON.stringify(that.data.cart_ids),
            });
          }
        } else {
          wx.showToast({
            icon: "none",
            title: res.msg,
            duration: 1500,
          });
        }
      },
      fail: function (res) {},
    });
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    if (this.data.isLoadMore) {
      this._getMoreData();
    } else {
      console.log("没有更多数据");
    }
  },
  tips(msg) {
    wx.showToast({
      title: msg,
      icon: "none",
    });
    return false;
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    var value = wx.getStorageSync('yz_uid');
    var mid = '';
    if (value) {
      mid = value;
    }
    return {
      title: this.data.activity_data.activity_name,
      path:
        "/packageE/community_solitaire/community_solitaire?activity_id=" +
        this.data.activity_id+ '&mid=' + mid,
    };
  },
});
