From 86d7cb9f6c9667c002c7c63b599a7f5c2a96ab07 Mon Sep 17 00:00:00 2001
From: yvan.ni <765199919@qq.com>
Date: Tue, 8 Oct 2019 14:43:34 +0800
Subject: [PATCH] 购物车
---
pages/cart/cart/cart.js | 1108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
pages/cart/cart/cart.wxml | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------
pages/cart/cart/cart.wxss | 286 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------
3 files changed, 902 insertions(+), 613 deletions(-)
diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js
index 9b8e343..5f54b62 100644
--- a/pages/cart/cart/cart.js
+++ b/pages/cart/cart/cart.js
@@ -1,53 +1,81 @@
-var t = getApp(), a = t.request, oo = t.globalData.setting, app = getApp(), rq = t.request;
+var t = getApp(),
+ a = t.request,
+ oo = t.globalData.setting,
+ app = getApp(),
+ rq = t.request;
var regeneratorRuntime = require('../../../utils/runtime.js');
Page({
- data: {
- url: t.globalData.setting.url,
- resourceUrl: t.globalData.setting.resourceUrl,
- requestData: null,
- checkAllToggle: 0,
- total_fee:0,
- allsto:null,
- imgUrl:t.globalData.setting.imghost,
- },
- onLoad: function() {
-
- wx.setNavigationBarTitle({ title: "购物车",})
-
- var a = this;
- t.auth.hadAuth() && t.getUserInfo(function() {
- a.getCardList();
+ data: {
+ url: t.globalData.setting.url,
+ resourceUrl: t.globalData.setting.resourceUrl,
+ iurl: t.globalData.setting.imghost,
+ requestData: null,
+ checkAllToggle: 0,
+ total_fee: 0,
+ allsto: null,
+ imgUrl: t.globalData.setting.imghost,
+ is_has_flash:0, //是否又秒杀活动
+ },
+ onLoad: function() {
+ wx.setNavigationBarTitle({title: "购物车", })
+ var a = this;
+ //判断是否有登陆
+ t.auth.hadAuth() && t.getUserInfo(function() {
+ a.getCardList();
+ });
+ },
+ onShow: function() {
+ var th=this;
+ this.getCardList();
+ //--获取是否又秒杀活动--
+ getApp().request.promiseGet("/api/ms/flash_sale/spikepage", {
+ data: {
+ store_id: oo.stoid,
+ timetype: 2,
+ is_end: 0,
+ is_show: 1,
+ pageSize: 1
+ },
+ }).then(res => {
+ if(res.data.code==0 && res.data.data && res.data.data.pageData.length>0){
+ th.setData({is_has_flash:1})
+ }
+ });
+
+ },
+
+ //-------------获取购物车列表,要安装门店进行分类订单-----------
+ getCardList: function() {
+ var th = this;
+ //如果门店还未读出来的时候
+ if (th.data.allsto == null) {
+ //读取门店
+ app.get_allsto(function(e) {
+ th.setData({
+ allsto: e
});
- },
- onShow: function() {
- this.getCardList();
- },
-
- //-------------获取购物车列表,要安装门店进行分类订单-----------
- getCardList: function () {
- var th = this;
- //如果门店还未读出来的时候
- if (th.data.allsto==null){
- //读取门店
- app.get_allsto(function(e){
- th.setData({ allsto: e});
- th.get_cart();
- })
- }else{ th.get_cart();}
+ th.get_cart();
+ })
+ } else {
+ th.get_cart();
+ }
},
//-----真的获取购物车--------
- get_cart:function(){
- var th=this;
+ get_cart: function() {
+ var th = this;
var rd = Math.random().toString(36).substr(2, 15);
getApp().request.get("/api/weshop/cart/list", {
data: {
- user_id: app.globalData.user_id, rd: rd,
- store_id: oo.stoid,pageSize:600},
- success: function (su) {
+ user_id: app.globalData.user_id,
+ rd: rd,
+ store_id: oo.stoid,
+ pageSize: 600
+ },
+ success: function(su) {
console.log("333");
- console.log(th.data.allsto);
-
+ console.log(th.data.allsto);
+
//按门店分类的数组
var arr = new Array();
var carr = su.data.data.pageData;
@@ -55,32 +83,39 @@ Page({
var item = carr[i];
item.original_img = oo.imghost + item.original_img;
- item.selected=0;
-
+ item.selected = 0;
+
var pcid = item.pick_id;
var find = 0;
//---------循环查找门店---
- if (arr.length>0){
- for (var j = 0; j < arr.length; j++) {
- if (arr[j].pid == pcid) {
- arr[j].goods.push(item);
- find = 1;
- break;
- }
+ if (arr.length > 0) {
+ for (var j = 0; j < arr.length; j++) {
+ if (arr[j].pid == pcid) {
+ arr[j].goods.push(item);
+ find = 1;
+ break;
}
+ }
}
//------如果没有找到-----
if (find == 0) {
var pikname = '';
//找到门店名称
- for (var k=0;k
= a.store_count)) {
- var e = {
- goods_num: a.goods_num + 1,
- id: a.id,
- goods_id:a.goods_id,
- store_id:oo.stoid
- };
- this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
- }
- },
- //-------------减数量---------------------
- subNum: function(t) {
- var a = t.currentTarget.dataset.item;
- var b = t.currentTarget.dataset.pitems;
- a = this.data.requestData[b].goods[a];
-
- if(a.goods_num - 1<0) return false;
-
- if (1 != a.goods_num) {
- var e = {
- goods_num: a.goods_num - 1,
- id: a.id,
- goods_id: a.goods_id,
- store_id:oo.stoid
- };
- this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
- }
- },
- //---------------全选,全选的时候要判断是否门店的匹配方式一致--------------
- checkAll: function() {
- var e = this, dda = e.data.requestData, tfeel = 0,text_arr="";
- for (var i = 0; i < dda.length; i++) {
- var item=dda[i].goods;
- if (!e.data.checkAllToggle){
- var txt = "requestData[" +i+ "].selected";
- e.setData({ [txt]:0,});
- }
- var fir=0;
- for(var j=0;j= a.store_count)) {
+ var e = {
+ goods_num: a.goods_num + 1,
+ id: a.id,
+ goods_id: a.goods_id,
+ store_id: oo.stoid
+ };
+ isShowLoading: 0;
+ this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
+ }
+ },
+ //-------------减数量---------------------
+ subNum: function(t) {
+ var a = t.currentTarget.dataset.item;
+ var b = t.currentTarget.dataset.pitems;
+ a = this.data.requestData[b].goods[a];
+
+ if (a.goods_num - 1 < 0) return false;
+
+ if (1 != a.goods_num) {
+ var e = {
+ goods_num: a.goods_num - 1,
+ id: a.id,
+ goods_id: a.goods_id,
+ store_id: oo.stoid
+ };
+ this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
+ }
+ },
+ //---------------全选,全选的时候要判断是否门店的匹配方式一致--------------
+ checkAll: function() {
+ var e = this,
+ dda = e.data.requestData,
+ tfeel = 0,
+ text_arr = "";
+ for (var i = 0; i < dda.length; i++) {
+ var item = dda[i].goods;
+ if (!e.data.checkAllToggle) {
+ var txt = "requestData[" + i + "].selected";
+ e.setData({
+ [txt]: 0,
+ });
}
- },
-
- //------门店全选按钮,要判断是否门店的匹配方式一致---------
- check_th_all_item:function(ele){
- var e=this,pitems = ele.currentTarget.dataset.pitems,item = this.data.requestData[pitems].goods;
- var sele = this.data.requestData[pitems].selected;
-
- var isok = 1, fir = 0, iarr = item;
- if (!sele && item.length > 0 ){
-
- console.log(item);
- for (var i = 0; i < iarr.length; i++) {
- if (iarr[i].distr_type != 0) {
- if (fir == 0) { fir = iarr[i].distr_type; }
- else {
- if (fir != iarr[i].distr_type && iarr[i].distr_type!=0 ) { isok = 0; break; }
- }
+ var fir = 0;
+ for (var j = 0; j < item.length; j++) {
+ if (fir == 0) {
+ fir = item[j].distr_type;
+ } else {
+ //如果同一门店有不同门店的商品,不能同一配送
+ if (fir != item[j].distr_type && !e.data.checkAllToggle && item[j].distr_type != 0) {
+ text_arr += item[j].goods_name + " ";
+ break;
}
}
- }
+ var txt = "requestData[" + i + "].goods[" + j + "].selected"
+ e.setData({
+ [txt]: !e.data.checkAllToggle,
+ })
+ if (!e.data.checkAllToggle)
+ tfeel += item[j].goods_num * item[j].goods_price;
+ }
+ }
- if (!isok) {
- wx.showModal({ title: '提示', content: '同一门店自提和物流的商品不能同时结算' }); return false;
+ if (text_arr != "") {
+ wx.showModal({
+ title: '提示',
+ content: text_arr + '不能与门店中其他商品一起结算,配送方式不一致'
+ });
+ return false;
+ e.setData({
+ total_fee: tfeel.toFixed(2),
+ });
+ } else {
+ e.setData({
+ checkAllToggle: !e.data.checkAllToggle,
+ total_fee: tfeel.toFixed(2),
+ });
+ }
+ },
+
+ //------门店全选按钮,要判断是否门店的匹配方式一致---------
+ check_th_all_item: function(ele) {
+ var e = this,
+ pitems = ele.currentTarget.dataset.pitems,
+ item = this.data.requestData[pitems].goods;
+ var sele = this.data.requestData[pitems].selected;
+
+ var isok = 1,
+ fir = 0,
+ iarr = item;
+ if (!sele && item.length > 0) {
+
+ console.log(item);
+ for (var i = 0; i < iarr.length; i++) {
+ if (iarr[i].distr_type != 0) {
+ if (fir == 0) {
+ fir = iarr[i].distr_type;
+ } else {
+ if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) {
+ isok = 0;
+ break;
+ }
+ }
}
+ }
+ }
- for(var i=0;i 1 && !a.selected){
- for (var i = 0; i < iarr.length;i++){
- //---当不是本身选择项目----
- var sel = iarr[i].selected;
- if (iarr[i].distr_type != 0 && (sel || iarr[i].id==a.id)) {
- if (fir == 0) { fir = iarr[i].distr_type; }
- else {
- if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) { isok = 0; break; }
- }
- }
+ if (!isok) {
+ wx.showModal({
+ title: '提示',
+ content: '同一门店自提和物流的商品不能同时结算'
+ });
+ return false;
+ }
+
+ for (var i = 0; i < item.length; i++) {
+ var txt = "requestData[" + pitems + "].goods[" + i + "].selected";
+ e.setData({
+ [txt]: Number(!sele),
+ });
+ }
+ var txt = "requestData[" + pitems + "].selected";
+ e.setData({
+ [txt]: Number(!sele),
+ });
+ this.doCheckAll();
+ },
+
+ //---------------单选,也要判断门店的配送方式是否一致--------------
+ check_th_item: function(t) {
+ var e = this,
+ item = t.currentTarget.dataset.item,
+ pitems = t.currentTarget.dataset.pitems;
+ a = this.data.requestData[pitems].goods[item];
+ var isok = 1,
+ fir = 0;
+ var iarr = e.data.requestData[pitems].goods;
+
+
+ //当数量大于1,且是选择的时候
+ if (iarr.length > 1 && !a.selected) {
+ for (var i = 0; i < iarr.length; i++) {
+ //---当不是本身选择项目----
+ var sel = iarr[i].selected;
+ if (iarr[i].distr_type != 0 && (sel || iarr[i].id == a.id)) {
+ if (fir == 0) {
+ fir = iarr[i].distr_type;
+ } else {
+ if (fir != iarr[i].distr_type && iarr[i].distr_type != 0) {
+ isok = 0;
+ break;
+ }
}
}
- if(!isok){
- wx.showModal({ title: '提示', content: '同一门店自提和物流的商品不能同时结算' });
- }else{
- var txt = "requestData[" + pitems + "].goods[" + item + "].selected";
- e.setData({
- [txt]: Number(!a.selected),
- });
- this.doCheckAll();
+ }
+ }
+ if (!isok) {
+ wx.showModal({
+ title: '提示',
+ content: '同一门店自提和物流的商品不能同时结算'
+ });
+ } else {
+ var txt = "requestData[" + pitems + "].goods[" + item + "].selected";
+ e.setData({
+ [txt]: Number(!a.selected),
+ });
+ this.doCheckAll();
+ }
+ },
+ //----------检查是否全选---------
+ doCheckAll: function() {
+ var th = this,
+ tfeel = 0,
+ ischeck = 1,
+ car = this.data.requestData;
+ for (var a = 0; a < car.length; a++) {
+ var item = car[a].goods;
+ var is_s_sele = 1;
+ for (var c = 0; c < item.length; c++) {
+ if (item[c].selected == 0) {
+ ischeck = 0;
+ is_s_sele = 0;
+ } else {
+ tfeel += item[c].goods_num * item[c].goods_price;
}
- },
- //----------检查是否全选---------
- doCheckAll: function() {
- var th=this,tfeel=0,ischeck = 1,car = this.data.requestData;
- for (var a = 0; a < car.length; a++) {
- var item = car[a].goods;
- var is_s_sele=1;
- for (var c = 0; c < item.length;c++){
- if(item[c].selected==0){
- ischeck=0;
- is_s_sele=0;
- }
- else{ tfeel += item[c].goods_num * item[c].goods_price; }
- }
+ }
- var txt = "requestData[" + a+ "].selected";
- th.setData({
- [txt]: Number(is_s_sele),
+ var txt = "requestData[" + a + "].selected";
+ th.setData({
+ [txt]: Number(is_s_sele),
+ });
+
+ }
+ this.setData({
+ checkAllToggle: ischeck,
+ total_fee: tfeel.toFixed(2),
+ });
+ },
+
+ //----------------------更新购物数量,加减,调用接口---------------------
+ postCardList: function(t, item, pitem) {
+ var e = this;
+ var user_id = getApp().globalData.user_id;
+ console.log('update');
+ console.log(t);
+ rq.get("/api/weshop/goods/get/" + oo.stoid + "/" + t.goods_id, {
+ isShowLoading:0,
+ async success(d) {
+ var limit = d.data.data.viplimited;
+ var store_count = d.data.data.store_count;
+
+ var goodsinfo = e.data.requestData[pitem].goods[item];
+ var promgoodsbuynum = 0;
+ var goodsbuynum = 0;
+ //--要获得商品,该用户买了多少件,同步应用--
+ await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
+ data: {
+ store_id: oo.stoid,
+ user_id: user_id,
+ goods_id: goodsinfo.goods_id,
+ prom_type: goodsinfo.prom_type,
+ prom_id: goodsinfo.prom_id
+ },
+ }).then(res => {
+ var buy_num_data = res.data.data;
+ if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
+ goodsbuynum = buy_num_data.goodsbuynum;
+ })
+
+ var buyed_mum2 = t.goods_num + goodsbuynum;
+ if (buyed_mum2 > limit && limit > 0) {
+ wx.showModal({
+ title: '提示',
+ content: '购买数量超出商品限购'
+ });
+ var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
+ var cbuy = limit - buyed_mum;
+ e.setData({
+ [txt]: cbuy > 0 ? cbuy : 0,
});
+ return false;
+ }
+ if (t.goods_num > store_count) {
+ wx.showModal({
+ title: '提示',
+ content: '购买数量超出商品库存'
+ });
+ var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
+ e.setData({
+ [txt]: store_count
+ });
+ return false;
}
- this.setData({
- checkAllToggle: ischeck,
- total_fee: tfeel.toFixed(2),
- });
- },
-
- //----------------------更新购物数量,加减,调用接口---------------------
- postCardList: function (t, item, pitem) {
- var e = this;
- var user_id=getApp().globalData.user_id;
- console.log('update');
- console.log(t);
- rq.get("/api/weshop/goods/get/" + oo.stoid + "/" + t.goods_id, {
- async success(d) {
- var limit = d.data.data.viplimited;
- var store_count = d.data.data.store_count;
-
- var goodsinfo=e.data.requestData[pitem ].goods[item];
- var promgoodsbuynum=0;
- var goodsbuynum=0;
- //--要获得商品,该用户买了多少件,同步应用--
- await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum",{
- data: {
- store_id: oo.stoid,
- user_id: user_id,
- goods_id: goodsinfo.goods_id,
- prom_type:goodsinfo.prom_type,
- prom_id:goodsinfo.prom_id
- },
- }).then(res=>{
- var buy_num_data=res.data.data;
- if(buy_num_data.promgoodsbuynum) promgoodsbuynum=buy_num_data.promgoodsbuynum;
- goodsbuynum=buy_num_data.goodsbuynum;
- })
-
- var buyed_mum2 = t.goods_num + goodsbuynum;
- if (buyed_mum2>limit && limit>0){
- wx.showModal({ title: '提示', content: '购买数量超出商品限购'});
- var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
- var cbuy = limit - buyed_mum;
- e.setData({ [txt]: cbuy > 0 ? cbuy:0, });
- return false;
- }
- if (t.goods_num > store_count) {
- wx.showModal({ title: '提示', content: '购买数量超出商品库存' });
- var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
- e.setData({ [txt]: store_count });
- return false;
- }
+ if (goodsinfo.prom_type == 1) {
+ //读取秒杀
+ rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, {
+ isShowLoading: 0,
+ success: function(res_d) {
+ var false_data = res_d.data.data;
+
+ //--判断库存--
+ if (t.goods_num > false_data.goods_num - false_data.buy_num) {
+ wx.showModal({
+ title: '提示',
+ content: '购买数量超出活动库存'
+ });
+ var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
+ e.setData({
+ [txt]: false_data.goods_num - false_data.buy_num
+ });
+ return false;
+ }
- if(goodsinfo.prom_type==1){
- //读取秒杀
- rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, {
- success: function (res_d) {
- var false_data=res_d.data.data;
-
- //--判断库存--
- if (t.goods_num > false_data.goods_num-false_data.buy_num){
- wx.showModal({ title: '提示', content: '购买数量超出活动库存' });
- var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
- e.setData({ [txt]: false_data.goods_num-false_data.buy_num });
- return false;
- }
-
- //--判断redis数量是否已经超出--
- if(t.goods_num >false_data.redisnum){
- wx.showModal({ title: '提示', content: '购买数量超出商品库存' });
- var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
- e.setData({ [txt]: false_data.redisnum });
- return false;
- }
-
- //--活动的限购是不是要判断--
- if(t.goods_num+promgoodsbuynum >false_data.buy_limit && false_data.buy_limit>0){
- wx.showModal({ title: '提示', content: '购买数量超出秒杀限购' });
- var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
- e.setData({ [txt]: false_data.false_data.buy_limit });
- return false;
- }
-
- e.update_cart(t,pitem,item);
- }
- })
- }else{
- e.update_cart(t,pitem,item);
- }
+ //--判断redis数量是否已经超出--
+ if (t.goods_num > false_data.redisnum) {
+ wx.showModal({
+ title: '提示',
+ content: '购买数量超出商品库存'
+ });
+ var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
+ e.setData({
+ [txt]: false_data.redisnum
+ });
+ return false;
}
- });
- },
-
- //更新购物车
- update_cart:function(t,pitem,item){
- var e=this;
- getApp().request.put("/api/weshop/cart/update", {
- data: t,
- success: function (ee) {
- var txt = "requestData[" + pitem + "].goods[" + item+"].goods_num";
+
+ //--活动的限购是不是要判断--
+ if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) {
+ wx.showModal({
+ title: '提示',
+ content: '购买数量超出秒杀限购'
+ });
+ var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
e.setData({
- [txt]: t.goods_num,
+ [txt]: false_data.false_data.buy_limit
});
- e.doCheckAll();
+ return false;
+ }
+
+ e.update_cart(t, pitem, item);
}
+ })
+ } else {
+ e.update_cart(t, pitem, item);
+ }
+ }
+ });
+ },
+
+ //更新购物车
+ update_cart: function(t, pitem, item) {
+ var e = this;
+ getApp().request.put("/api/weshop/cart/update", {
+ data: t,
+ success: function(ee) {
+ var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
+ e.setData({
+ [txt]: t.goods_num,
});
- },
-
- //-------下拉刷新---------
- onPullDownRefresh: function(t) {
- this.getCardList();
- },
-
- //--------------去结算------------
- async checkout() {
- var glist=""; //用逗号隔开的
- var map=new Map(); //使用map值键进行运算
- var map_limit=new Map(); //使用map值键进行存储限购
- var g_arr = new Array(); //已选的商品列表
- var user_id=getApp().globalData.user_id;
- var th=this;
-
- var ab = 0;//选中
- console.log('checkout');
- for (var i=0;i{
- var buy_num_data=res.data.data;
- if(buy_num_data.promgoodsbuynum) promgoodsbuynum=buy_num_data.promgoodsbuynum;
- goodsbuynum=buy_num_data.goodsbuynum;
- })
- var ie={promgoodsbuynum:promgoodsbuynum,goodsbuynum:goodsbuynum};
- map_limit.set(val.goods_id + "", ie);
- }
-
- try{
- ddata.forEach(function(val,ind){
- var num = map.get(val.goods_id+"");
- if (num<=0) {
- isok = 0; gname = val.goods_name;
- throw "购买数量不能为0";return false;
- }
- if ( num>val.store_count) {
- isok = 0; gname = val.goods_name;
- throw "超出库存"; return false;
- }
- if ( num>val.redisnum && val.redisnum) {
- isok = 0; gname = val.goods_name;
- throw "超出活动库存"; return false;
- }
- if ( num>val.goods_num-val.buy_num && val.goods_num) {
- isok = 0; gname = val.goods_name;
- throw "超出活动库存";return false;
- }
-
- var buyed=map_limit.get(val.goods_id+"");
- if (num+buyed.goodsbuynum>val.viplimited && val.viplimited>0) {
- isok = 0; gname = val.goods_name;
- throw "超出商品限购";return false;
- }
-
- if (num+buyed.promgoodsbuynum>val.buy_limit && val.buy_limit>0) {
- isok = 0; gname = val.goods_name;
- throw "超出活动限购";return false;
- }
-
- for (var i = 0; i < g_arr.length;i++){
- if (g_arr[i].goods_id==val.goods_id){
- if(g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price!=val.prom_price){
- isok = 0; gname = val.goods_name;
- throw "商品价格已经变化";
- }
- rq.put("/api/weshop/cart/update", {
- data: { id: g_arr[i].id, selected: 1,store_id:oo.stoid },
- success: function (ee) {
- console.log(ee);
- }
- });
- }
- }
-
- })
- } catch (e) { err=e;}
- if (isok==0){
- if (gname.length > 10) {
- gname = gname.substr(0, 10); gname+="...";
- }
- t.confirmBox(gname+":"+ err); return false;
+ }
+ }
+ if (ab == 0) {
+ t.my_warnning("未选择商品", 0, th);
+ return false;
+ }
+
+ glist = glist.substring(0, glist.length - 1);
+ //--取一下商品的限购 以及活动的限购,redis数量--
+ rq.get("/api/weshop/goods/getGoodsListNum", {
+ data: {
+ goodsidlist: glist,
+ store_id: oo.stoid
+ },
+ async success(ee) {
+ console.log(ee);
+ if (ee.data.code == 0) {
+ var ddata = ee.data.data,
+ isok = 1,
+ gname = "",
+ err = "";
+ //--组装--
+ for (var ij = 0; ij < ddata.length; ij++) {
+ var val = ddata[ij];
+ var obj = map_limit.get(val.goods_id + "");
+ if (obj) continue;
+
+ var promgoodsbuynum = 0;
+ var goodsbuynum = 0;
+ //--要获得商品,该用户买了多少件,同步应用--
+ await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
+ data: {
+ store_id: oo.stoid,
+ user_id: user_id,
+ goods_id: val.goods_id,
+ prom_type: val.prom_type,
+ prom_id: val.prom_id
+ },
+ }).then(res => {
+ var buy_num_data = res.data.data;
+ if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
+ goodsbuynum = buy_num_data.goodsbuynum;
+ })
+ var ie = {
+ promgoodsbuynum: promgoodsbuynum,
+ goodsbuynum: goodsbuynum
+ };
+ map_limit.set(val.goods_id + "", ie);
+ }
+
+ try {
+ ddata.forEach(function(val, ind) {
+ var num = map.get(val.goods_id + "");
+ if (num <= 0) {
+ isok = 0;
+ gname = val.goods_name;
+ throw "购买数量不能为0";
+ return false;
+ }
+ if (num > val.store_count) {
+ isok = 0;
+ gname = val.goods_name;
+ throw "超出库存";
+ return false;
+ }
+ if (num > val.redisnum && val.redisnum) {
+ isok = 0;
+ gname = val.goods_name;
+ throw "超出活动库存";
+ return false;
+ }
+ if (num > val.goods_num - val.buy_num && val.goods_num) {
+ isok = 0;
+ gname = val.goods_name;
+ throw "超出活动库存";
+ return false;
+ }
+
+ var buyed = map_limit.get(val.goods_id + "");
+ if (num + buyed.goodsbuynum > val.viplimited && val.viplimited > 0) {
+ isok = 0;
+ gname = val.goods_name;
+ throw "超出商品限购";
+ return false;
+ }
+
+ if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0) {
+ isok = 0;
+ gname = val.goods_name;
+ throw "超出活动限购";
+ return false;
+ }
+
+ for (var i = 0; i < g_arr.length; i++) {
+ if (g_arr[i].goods_id == val.goods_id) {
+ if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) {
+ isok = 0;
+ gname = val.goods_name;
+ throw "商品价格已经变化";
+ }
+ rq.put("/api/weshop/cart/update", {
+ data: {
+ id: g_arr[i].id,
+ selected: 1,
+ store_id: oo.stoid
+ },
+ success: function(ee) {
+ console.log(ee);
}
- wx.navigateTo({
- url: "/pages/cart/cart2/cart2"
- });
+ });
}
+ }
+
+ })
+ } catch (e) {
+ err = e;
}
- });
- },
-
- //结算到最后一个商品
- set_last: function (ab, isok, gname){
- if (isok == 0) {
- t.my_warnning(gname + "商品超出库存",0,this);
- } else {
- ab ? wx.navigateTo({
- url: "/pages/cart/cart2/cart2"
- }) : t.my_warnning("还没有选中商品",0,this);
+ if (isok == 0) {
+ t.confirmBox(gname + ":" + err);
+ return false;
+ }
+ wx.navigateTo({
+ url: "/pages/cart/cart2/cart2"
+ });
+ }
}
- },
+ });
+ },
+
+ //结算到最后一个商品
+ set_last: function(ab, isok, gname) {
+ if (isok == 0) {
+ t.my_warnning(gname + "商品超出库存", 0, this);
+ } else {
+ ab ? wx.navigateTo({
+ url: "/pages/cart/cart2/cart2"
+ }) : t.my_warnning("还没有选中商品", 0, this);
+ }
+ },
//图片失败,默认图片
- bind_bnerr2: function (e) {
+ 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) {
this.setData({
- [_errImg]: oo.imghost+"/miniapp/images/default_g_img.gif",
+ [_errImg]: oo.imghost + "/miniapp/images/default_g_img.gif",
})
}
+ },
+ //设置点击按钮为true或者false
+ radio_chick: function(checked, num) {
+ var th = this;
+ var requestData = th.data.requestData;
+
+
}
-});
+});
\ No newline at end of file
diff --git a/pages/cart/cart/cart.wxml b/pages/cart/cart/cart.wxml
index 7f8d9b3..98f9793 100644
--- a/pages/cart/cart/cart.wxml
+++ b/pages/cart/cart/cart.wxml
@@ -1,56 +1,91 @@
-
-
-
-
-
-
- 门店:{{item.pname}}
+
+
+
+
+
+
+
+
+
+
+
+ 商品数量:
+ {{requestData.length}}
+
+ 编辑
+
+
+
+
+
+
+
+
+ {{item.pname}}
-
-
-
+
+
+
+
+
+
+
+ 自选
+ 自提
+ 物流
+
+
+
+ {{items.goods_name}}
+ {{items.goods_color+items.goods_spec.length
+ <1? '规格1': ''}}{{items.goods_color}}{{items.goods_color.length>0?"/":''}}{{items.goods_spec}}
+
+
+
+
+ ¥
+ {{items.goods_price}}
-
-
-
-
- {{items.goods_name}}
- {{items.spec_key_name}}
- ¥{{items.goods_price}}
-
-
-
-
- -
-
- +
-
+
+ 一
+
+ +
+
-
-
+
+
+
+
-
-
-
-
- 总计 : {{total_fee}}
-
- 不包含运费
+
+
+
+
+ 全选
+
+
+
+ 合计:
+ ¥{{total_fee}}
+
+
+ 不含运费
+
+
+
+
+
+
-
- 购物车暂无商品
- 去逛逛
+
+ 购物车暂无商品
+ 去逛逛
diff --git a/pages/cart/cart/cart.wxss b/pages/cart/cart/cart.wxss
index 2a62032..e315198 100644
--- a/pages/cart/cart/cart.wxss
+++ b/pages/cart/cart/cart.wxss
@@ -1,144 +1,254 @@
page {
- background-color: #fff;
+ background-color: #fff;
+ font-family: crosoft yahei;
+}
+
+.padding {
+ padding: 0rpx 30rpx;
+}
+
+.alend {
+ align-items: flex-end;
+}
+
+.goods-price {
+ font-size: 18rpx;
+}
+
+.baseline {
+ display: flex;
+ align-items: baseline;
+}
+
+.picture {
+ width: 100%;
+ height: 220rpx;
}
.container {
- display: flex;
- height: 100%;
- align-items: center;
- justify-content: center;
- background-color: #fff;
- padding-bottom: 100rpx;
+ display: flex;
+ height: 100%;
+ align-items: center;
+ justify-content: center;
+ background-color: #fff;
+ padding-bottom: 100rpx;
+}
+
+radio {
+ transform: scale(0.8);
+ margin-right: 30rpx;
}
.login-in {
- width: 100%;
- box-sizing: border-box;
+ width: 100%;
+ box-sizing: border-box;
}
.order-item {
- display: flex;
- justify-content: space-around;
- height: 200rpx;
- padding: 10rpx 0;
- border-bottom: 1px solid #ddd;
+ display: flex;
+ height: 246rpx;
+ border-top: 3rpx solid rgb(245, 245, 245);
+ align-items: center;
}
.goods-ico {
- display: flex;
- align-items: center;
+ display: flex;
+ align-items: center;
}
.goods-img {
- width: 180rpx;
- height: 180rpx;
- font-size: 0;
- margin-top: 10rpx;
+ width: 180rpx;
+ height: 180rpx;
+ font-size: 0;
+ overflow: hidden;
}
.goods-cont {
- position: relative;
- width: 430rpx;
- height: 200rpx;
- font-size: 28rpx;
+ width: 400rpx;
+ height: 165rpx;
+ font-size: 28rpx;
+ margin-left: 35rpx;
+ padding-top: 10rpx;
+ padding-bottom: 5rpx;
}
.goods-name {
- width: 370rpx;
- height: 64rpx;
- margin: 8rpx 0;
- line-height: 32rpx;
- color: #333;
-
+ line-height: 32rpx;
+ color: #333;
+ height: 130rpx;
}
.goods-attribute {
- max-height: 52rpx;
- line-height: 26rpx;
- font-size: 24rpx;
- color: #999;
+ max-height: 52rpx;
+ line-height: 26rpx;
+ font-size: 24rpx;
+ color: #999;
}
-.goods-price {
- height: 40rpx;
- line-height: 40rpx;
- margin-top: 10rpx;
-}
+/* .goods-price {
+ height: 40rpx;
+ line-height: 40rpx;
+ margin-top: 10rpx;
+} */
.btn-del {
- position: absolute;
- right: 0;
- top: 8rpx;
- width: 34rpx;
- height: 34rpx;
+ position: absolute;
+ right: 0;
+ top: 8rpx;
+ width: 34rpx;
+ height: 34rpx;
}
.count {
- position: absolute;
- right: 0;
- bottom: 5rpx;
- width: 156rpx;
- height: 50rpx;
- border: 1px solid #ddd;
+ display: flex;
+ bottom: 5rpx;
+ border: 2rpx solid rgb(236, 236, 236);
+ margin-bottom: 3rpx;
+}
+
+.count>view, .count>input {
+ width: 40rpx;
+ height: 35rpx;
+ line-height: 34rpx;
+ text-align: center;
+ display: flex;
+ font-size: 18rpx;
+ justify-content: center;
+ min-height: 35rpx;
}
-.count>view,.count>input {
- float: left;
- width: 50rpx;
- height: 50rpx;
- line-height: 50rpx;
- text-align: center;
+.count>.goodadd {
+ width: 64rpx;
+ font-size: 24rpx;
+}
+
+.count>.add {
+ font-size: 32rpx;
}
.sub {
- border-right: 1px solid #ddd;
+ border-right: 2rpx solid rgb(236, 236, 236);
}
.add {
- border-left: 1px solid #ddd;
+ border-left: 2rpx solid rgb(236, 236, 236);
}
.pay-for {
- width: 100%;
- height: 100rpx;
- position: fixed;
- left: 0;
- bottom: 0;
- font-size: 28rpx;
- color: #666;
- background-color: #f0f2f5;
+ width: 100%;
+ height: 100rpx;
+ position: fixed;
+ left: 0;
+ bottom: 0;
+ font-size: 28rpx;
+ color: #666;
+ background-color: rgb(255, 255, 255);
+ z-index: 2;
+ border-top: 1rpx solid rgb(236, 236, 236);
+ border-bottom: 1rpx solid rgb(236, 236, 236);
}
.pay-for .pay-btn {
- float: right;
- width: 200rpx;
- height: 100rpx;
- line-height: 100rpx;
- text-align: center;
- background-color: #f23030;
- color: #fff;
- border-radius: 0;
+ width: 220rpx;
+ height: 100rpx;
+ line-height: 100rpx;
+ background-color: rgb(219, 27, 52);
+ color: #fff;
+ border-radius: 0;
+ font-size: 31rpx;
}
.pay-for .consumer {
- float: right;
- margin-right: 20rpx;
- line-height: 50rpx;
+ margin-right: 23rpx;
+ color: rgb(0, 0, 0);
+ letter-spacing: 1rpx;
+}
+
+.pay-for .consumer .total {
+ color: rgb(0, 0, 0);
+}
+
+.pay-for .consumer .tips {
+ color: rgb(153, 153, 153);
}
.pay-for .checkbox {
- float: left;
- padding-left: 40rpx;
- line-height: 100rpx;
- display: flex;
- align-items: center;
+ float: left;
+ padding-left: 40rpx;
+ line-height: 100rpx;
+ display: flex;
+ align-items: center;
}
.pay-for .ico-check {
- display: flex;
- align-items: center;
- margin-right: 20rpx;
+ display: flex;
+ align-items: center;
+ margin-right: 20rpx;
+}
+
+.shmd_m {
+ height: 80rpx;
+ line-height: 80rpx;
+ display: flex;
+}
+
+.shmd_m image {
+ height: 50rpx;
+ width: 55rpx;
+ margin-left: -10rpx;
+}
+
+.shmd_m .goods-ico icon {
+ margin-top: 26rpx;
+}
+
+.shmd {
+ margin-left: 5rpx;
+}
+
+.store {
+ border-top: 7rpx solid rgb(245, 245, 245);
+}
+
+.login-in .Storenum {
+ height: 80rpx;
+ color: rgb(51, 51, 51);
+}
+
+.login-in .goods_num {
+ margin-left: 13rpx;
+}
+
+.allradio {
+ padding-left: 30rpx;
+ width: 600rpx;
+}
+
+.allradio .all {
+ color: rgb(0, 0, 0);
+}
+
+.Specifications {
+ padding: 3rpx 5rpx;
+ margin-top: 8rpx;
+ font-size: 20rpx;
+ max-width: 105rpx;
+ height: 30rpx;
+ line-height: 29rpx;
+ background-color: rgb(236, 236, 236);
+ border-radius: 8rpx;
+ white-space: nowrap;
+ overflow: hidden;
+ color: rgb(63, 63, 63);
+}
+
+.abs {
+ top: 15rpx;
+ left: -39rpx;
+ width: 154rpx;
+ height: 40rpx;
+ background-color: rgb(16, 202, 220);
+ transform: rotate(320deg);
+ color: rgb(255, 255, 255);
+ line-height: 40rpx;
}
-.shmd_m{margin-left: 5rpx; height: 80rpx; line-height: 80rpx; display: flex;border-bottom: 1rpx solid #ddd}
-.shmd_m .goods-ico icon{margin-top: 26rpx;}
-.shmd{margin-left: 20rpx;}
\ No newline at end of file
--
libgit2 0.21.4