123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 |
- var a = require("../utils/public");
- var app = getApp();
- var status = require('../utils/index.js');
- var util = require('../utils/util.js');
- module.exports = {
- data: {
- visible: false,
- stopClick: false
- },
- vipModal: function(t) {
- this.setData(t.detail)
- },
- authModal: function () {
- if (this.data.needAuth) {
- this.setData({ showAuthModal: !this.data.showAuthModal });
- return false;
- }
- return true;
- },
- openSku: function(t) {
- if (!this.authModal()) return;
- var that = this;
- let idx = t.currentTarget.dataset.idx;
- let rushList = this.data.list;
- let spuItem = rushList[idx];
- var goods_id = spuItem.actId;
- var options = spuItem.skuList;
- that.setData({
- addCar_goodsid: goods_id
- })
- let list = options.list || [];
- let arr = [];
- if (list.length > 0) {
- for (let i = 0; i < list.length; i++) {
- let sku = list[i]['option_value'][0];
- let temp = {
- name: sku['name'],
- id: sku['option_value_id'],
- index: i,
- idx: 0
- };
- arr.push(temp);
- }
- //把单价剔除出来begin
- var id = '';
- for (let i = 0; i < arr.length; i++) {
- if (i == arr.length - 1) {
- id = id + arr[i]['id'];
- } else {
- id = id + arr[i]['id'] + "_";
- }
- }
- var cur_sku_arr = options.sku_mu_list[id];
- cur_sku_arr.oneday_limit_count = spuItem.oneday_limit_count || 0;
- cur_sku_arr.total_limit_count = spuItem.total_limit_count || 0;
- cur_sku_arr.one_limit_count = spuItem.one_limit_count || 0;
- cur_sku_arr.goods_start_count = spuItem.goods_start_count || 1;
- that.setData({
- sku: arr,
- sku_val: 1,
- cur_sku_arr: cur_sku_arr,
- skuList: spuItem.skuList,
- visible: true,
- showSku: true
- });
- } else {
- let goodsInfo = spuItem;
- that.setData({
- sku: [],
- sku_val: 1,
- skuList: [],
- cur_sku_arr: goodsInfo
- })
- let formIds = {
- detail: {
- formId: ""
- }
- };
- formIds.detail.formId = "the formId is a mock one";
- that.gocarfrom(formIds, idx);
- }
- },
- /**
- * 确认加入购物车
- */
- gocarfrom: function (e, idx=0) {
- var that = this;
- wx.showLoading();
- a.collectFormIds(e.detail.formId);
- that.goOrder(idx);
- },
- goOrder: function (idx) {
- let that = this;
- let tdata = that.data;
- if (tdata.can_car) {
- tdata.can_car = false;
- }
- var token = wx.getStorageSync('token');
- var community = wx.getStorageSync('community');
- var community_id = community.communityId;
- var goods_id = tdata.addCar_goodsid;
- var quantity = tdata.sku_val;
- var cur_sku_arr = tdata.cur_sku_arr;
- let list = tdata.list;
- var sku_str = '';
- var is_just_addcar = 1;
- if (cur_sku_arr && cur_sku_arr.option_item_ids) {
- sku_str = cur_sku_arr.option_item_ids;
- }
- let data= {
- goods_id,
- community_id,
- quantity,
- sku_str,
- buy_type: 'dan',
- pin_id: 0,
- is_just_addcar
- }
- util.addCart(data).then(res=>{
- if(res.showVipModal==1) {
- wx.hideLoading();
- let { pop_vipmember_buyimage } = res.data;
- that.setData({ pop_vipmember_buyimage, showVipModal: true, visible: false });
- } else {
- if (res.data.code == 3) {
- wx.showToast({
- title: res.data.msg,
- icon: 'none',
- duration: 2000
- })
- } else if (res.data.code == 4) {
- wx.showToast({
- title: '您未登录',
- duration: 2000,
- success: () => {
- that.setData({
- needAuth: true
- })
- }
- })
- } else if (res.data.code == 6 || res.data.code == 7) {
- let max_quantity = res.data.max_quantity || '';
- (max_quantity > 0) && that.setData({
- sku_val: max_quantity
- })
- var msg = res.data.msg;
- wx.showToast({
- title: msg,
- icon: 'none',
- duration: 2000
- })
- } else {
- if (is_just_addcar == 1) {
- list[idx].car_count = res.data.cur_count || 0;
- that.setData({
- cartNum: res.data.total || 0,
- list
- })
- that.closeSku();
- status.indexListCarCount(goods_id, res.data.cur_count);
- wx.showToast({
- title: "已加入购物车",
- image: "../../images/addShopCart.png"
- })
- } else {
- var pages_all = getCurrentPages();
- if (pages_all.length > 3) {
- wx.redirectTo({
- url: '/lionfish_comshop/pages/buy/index?type=' + tdata.order.buy_type
- })
- } else {
- wx.navigateTo({
- url: '/lionfish_comshop/pages/buy/index?type=' + tdata.order.buy_type
- })
- }
- }
- }
- }
- })
- },
- changeCartNum(e) {
- let cartNum = e.detail || 0;
- cartNum && this.setData({ cartNum })
- },
- /**
- * 关闭购物车选项卡
- */
- closeSku: function() {
- this.setData({
- visible: false,
- stopClick: false
- });
- },
- changeNumber: function (t) {
- var e = t.detail;
- e && this.addCart(e);
- },
- outOfMax: function (t) {
- console.log(t)
- // var e = t.detail, canBuyNum = this.data.spuItem.spuCanBuyNum;
- // if (this.data.number >= canBuyNum) {
- wx.showToast({
- title: "不能购买更多啦",
- icon: "none"
- })
- // }
- },
- addCart: function (t) {
- // {value: 2, type: "plus/minus"}
- let idx = t.idx;
- let list = this.data.list;
- var token = wx.getStorageSync('token');
- var community = wx.getStorageSync('community');
- var goods_id = list[idx].actId;
- var community_id = community.communityId;
- let that = this;
- if (t.type == 'plus') {
- let data= {
- goods_id,
- community_id,
- quantity: 1,
- sku_str: '',
- buy_type: 'dan',
- pin_id: 0,
- is_just_addcar: 1
- }
-
- util.addCart(data).then(res=>{
- if(res.showVipModal==1) {
- let { pop_vipmember_buyimage } = res.data;
- that.triggerEvent("vipModal", { pop_vipmember_buyimage, showVipModal: true, visible: false });
- } else {
- if (res.data.code == 3) {
- let max_quantity = res.data.max_quantity || '';
- list[idx].car_count = max_quantity;
- (max_quantity > 0) && that.setData({ list })
- wx.showToast({
- title: res.data.msg,
- icon: 'none',
- duration: 2000
- })
- } else if (res.data.code == 6 || res.data.code == 7) {
- let max_quantity = res.data.max_quantity || '';
- list[idx].car_count = max_quantity;
- (max_quantity > 0) && that.setData({ cartNum: res.data.total || 0, list })
- var msg = res.data.msg;
- wx.showToast({
- title: msg,
- icon: 'none',
- duration: 2000
- })
- } else {
- list[idx].car_count = res.data.cur_count;
- that.setData({ cartNum: res.data.total || 0, list })
- wx.showToast({
- title: "已加入购物车",
- image: "../../images/addShopCart.png"
- })
- status.indexListCarCount(goods_id, res.data.cur_count);
- }
- }
- })
- } else {
- app.util.request({
- url: 'entry/wxapp/user',
- data: {
- controller: 'car.reduce_car_goods',
- token: token,
- goods_id: goods_id,
- community_id: community_id,
- quantity: 1,
- sku_str: '',
- buy_type: 'dan',
- pin_id: 0,
- is_just_addcar: 1
- },
- dataType: 'json',
- method: 'POST',
- success: function (res) {
- if (res.data.code == 3) {
- wx.showToast({
- title: res.data.msg,
- icon: 'none',
- duration: 2000
- })
- } else {
- list[idx].car_count = res.data.cur_count;
- that.setData({ list, cartNum: res.data.total || 0 })
- status.indexListCarCount(goods_id, res.data.cur_count);
- }
- }
- })
- }
- }
- }
|