| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420 |
- // index.js
- let myPro = require("../../utils/wxRequest.js");
- let util = require("../../utils/util.js");
- Page({
- data: {
- setBgHeight: getApp().globalData.setBgHeight,
- imgUrl: getApp().globalData.imgUrl,
- fare_type: 1, // 0外卖 1自提 默认自取
- is_member: 0, // 是否为会员
- showGoodsSpec: false,
- cartGoods: [], // 购物车商品
- addGoodList: [], // 活动加购商品
- resultArr: [], // 选中商品
- checkedAll: true,
- resultAll: [], // 测试
- totalNums: 0, // 加购商品总数
- totalPrice: 0, // 加购商品总价(原价)
- totalMemberPrice: 0, // 加购商品总价(会员价)
- showAdGoodsSpec: false,
- isHaveGoods: true // 是否有商品
- },
- onLoad: function (options) {
- // Do some initialize when page load.
- },
- onShow: function () {
- // Do something when page show.
- let that = this;
- that.setData({
- is_member: getApp().globalData.is_member
- });
- // 获取配送方式
- if(wx.getStorageSync('fare_type')){
- that.setData({
- fare_type: wx.getStorageSync('fare_type')
- })
- };
- that.getCartsList();
- },
- onReady: function () {
- // Do something when page ready.
- },
- onHide: function () {
- // Do something when page hide.
- },
- onUnload: function () {
- // Do something when page close.
- },
- onPullDownRefresh: function () {
- // Do something when pull down.
-
- },
- onReachBottom: function () {
- // Do something when page reach bottom.
- },
- onPageScroll: function () {
- // Do something when page scroll
-
- },
- onResize: function () {
- // Do something when page resize
- },
- // 获取购物车商品
- getCartsList(){
- let that = this;
- let params = {};
- myPro.wxRequest("user/v3/carts/list","GET",params).then(res=>{
- // 普通商品
- let list = res.result.list;
- if(list.length != 0){
- that.setData({
- isHaveGoods: true
- })
- }else{
- that.setData({
- isHaveGoods: false
- })
- }
- // 活动加购商品
- let addGoodList = res.result.add_good_list;
- that.setData({
- cartGoods: list,
- addGoodList: addGoodList,
- totalNums: res.result.total_num,
- totalPrice: res.result.money // 接口返回的,不需再关注是否为会员价
- });
- // 商品选中状态
- let resultArr = [];
- for(let i in list){
- if(list[i].selected){
- resultArr.push(''+list[i].id);
- }
- };
- that.setData({
- resultArr: resultArr
- });
- }).catch(err=>{
- console.log('报错信息',err);
- wx.showToast({
- title: err,
- icon: "none"
- });
- })
- },
- // 展示详情
- onGoodsSpec(event){
- let that = this;
- let item = event.currentTarget.dataset.item;
- that.setData({
- currentGoods: item, // 商品加购的规格(不带多规格)
- showGoodsSpec: true
- });
- },
- // 关闭详情
- closeGoodsSpec(){
- let that = this;
- that.setData({
- showGoodsSpec: false,
- });
- },
- // 更改购物车商品
- onChangeCartNum(event){
- let that = this;
- let nums = event.detail;
- let item = event.currentTarget.dataset.item;
- let params = {
- id: item.id,
- nums: nums
- };
- // console.log('event',event)
- // return;
- myPro.wxRequest("user/v3/carts/editnum","POST",params).then(res=>{
- that.getCartsList();
- }).catch(err=>{
- console.log('报错信息',err);
- wx.showToast({
- title: err,
- icon: "none"
- });
- })
- },
- // 删除商品
- bindDel(event){
- let that = this;
- console.log('event',event);
- let item = event.currentTarget.dataset.item;
- let params = {
- id: item.id
- };
- myPro.wxRequest("user/v3/carts/remove","POST",params).then(res=>{
- // 主动调购物车,更新信息
- that.getCartsList();
- }).catch(err=>{
- console.log('报错信息',err);
- wx.showToast({
- title: err,
- icon: "none"
- })
- })
- },
- // 选择
- onChangeResult(event){
- let that = this;
- console.log(event.detail);
- that.setData({
- resultArr: event.detail
- });
- },
- // 切换状态
- toggleGoods(event){
- console.log('切换状态',event);
- let that = this;
- let id = event.currentTarget.dataset.id;
- let resultArr = that.data.resultArr;
- let params = {
- id: id
- };
- if(resultArr.includes(''+id)){
- params.selected = 1;
- // 选中
- myPro.wxRequest("user/v3/carts/selected","POST",params).then(res=>{
- that.getCartsList();
- }).catch(err=>{
- console.log('报错信息',err);
- wx.showToast({
- title: err,
- icon: "none"
- })
- })
- }else{
- // 取消选中
- params.selected = 0;
- // 选中
- myPro.wxRequest("user/v3/carts/selected","POST",params).then(res=>{
- that.getCartsList();
- }).catch(err=>{
- console.log('报错信息',err);
- wx.showToast({
- title: err,
- icon: "none"
- })
- })
- }
- },
- // 去结算
- toPay(){
- let that = this;
- // 判断商品是否勾选(如果都未勾选提示一下)
- // console.log('resultArr',that.data.resultArr);
- let resultArr = that.data.resultArr;
- if(resultArr.length == 0){
- wx.showToast({
- title: "请勾选商品",
- icon: "none"
- })
- return;
- };
- // 验证是否能下单(有可能不在营业时间)
- wx.request({
- url: getApp().globalData.api + "user/v3/order/createlist",
- data: {
- "token": getApp().globalData.token
- },
- success: function(res) {
- if(res.data.code == 200){
- // 如果是外卖,看是否有收货地址
- if(that.data.fare_type == 0 ){
- if(!wx.getStorageSync('checkedAddress')){
- wx.navigateTo({
- url: "/pages/user/address/list/index"
- });
- }else{
- wx.navigateTo({
- url: "/pages/create-order/index"
- });
- }
- }else{
- // 路由跳转:需要保留购物车页面(因为从购物车往后的步骤都可能回退),但注意更新购物车
- wx.navigateTo({
- url: "/pages/create-order/index"
- });
- }
- }else{
- wx.showToast({
- title: res.data.msg,
- icon: "none"
- });
- }
- }
- });
- },
- // 活动加购商品
- onAdGoodsSpec(event){
- let that = this;
- let cartGoods = that.data.cartGoods;
- let item = event.currentTarget.dataset.item;
- let currentAdGoodsSpec = null;
- if(item.add_good_rule_good_spec && item.add_good_rule_good_spec.length != 0){
- for(let i in item.add_good_rule_good_spec){
- if(i == 0){
- item.add_good_rule_good_spec[i].is_checked = true; // 默认选中第一个
- currentAdGoodsSpec = item.add_good_rule_good_spec[i];
- }else{
- item.add_good_rule_good_spec[i].is_checked = false;
- }
- };
- // 跟购物车对比,拿数量
- for(let k in cartGoods){
- if(currentAdGoodsSpec.good_id == cartGoods[k].good_id && currentAdGoodsSpec.good_spec_id == cartGoods[k].good_specs_id && currentAdGoodsSpec.add_good_rule_id == cartGoods[k].add_good_rule_id){
- currentAdGoodsSpec.nums = cartGoods[k].nums;
- break;
- }
- }
- };
- that.setData({
- showAdGoodsSpec: true,
- currentAdGoods: item,
- currentAdGoodsSpec: currentAdGoodsSpec
- });
- // console.log('活动加购商品',that.data.currentAdGoods);
- },
- // 切换规格
- onChangeSpecGoods(event){
- let that = this;
- console.log(event);
- let specs = event.currentTarget.dataset.specs;
- let currentAdGoods = that.data.currentAdGoods;
- let cartGoods = that.data.cartGoods;
- if(currentAdGoods.add_good_rule_good_spec && currentAdGoods.add_good_rule_good_spec.length != 0){
- for(let i in currentAdGoods.add_good_rule_good_spec){
- let item = currentAdGoods.add_good_rule_good_spec[i];
- if(item.good_spec_id == specs.good_spec_id){
- item.is_checked = true;
- }else{
- item.is_checked = false;
- }
- };
- // 跟购物车对比,拿数量
- for(let k in cartGoods){
- if(specs.good_id == cartGoods[k].good_id && specs.good_spec_id == cartGoods[k].good_specs_id && specs.add_good_rule_id == cartGoods[k].add_good_rule_id){
- specs.nums = cartGoods[k].nums;
- break;
- }
- };
- };
- that.setData({
- currentAdGoods: currentAdGoods,
- currentAdGoodsSpec: specs
- });
- },
- // 关闭活动加购商品
- closeAdGoodsSpec(){
- let that = this;
- that.setData({
- showAdGoodsSpec: false
- })
- },
- // 点击活动加购商品(多规格)
- onChangeAdGoodsSpecNum(event){
- let that = this;
- let nums = event.detail;
- // console.log('event',event);
- let item = event.currentTarget.dataset.item;
- let itemObj = {
- good_id: item.good_id,
- add_good_rule_id: item.add_good_rule_id,
- good_specs_id: item.good_spec_id
- };
- // console.log('当前规格',itemObj);
- that.handleAdGoods(itemObj,nums);
- },
- // 点击活动加购商品(无规格)
- onChangeAdGoodsNum(event){
- let that = this;
- let nums = event.detail;
- let item = event.currentTarget.dataset.item;
- let itemObj = {
- good_id: item.add_good_id,
- add_good_rule_id: item.id,
- good_specs_id: item.add_good_spec_id
- };
- that.handleAdGoods(itemObj,nums);
- },
- // 加购商品增删改查
- handleAdGoods(item,nums){
- let that = this;
- let cartId = that.isAddCart(item);
- if(cartId){
- console.log('在')
- // 在购物车
- let params = {
- id: cartId // 购物车ID
- };
- // 活动加购商品
- if(nums != 0){
- params.nums = nums;
- // 修改数量
- myPro.wxRequest("user/v3/carts/editnum","POST",params).then(res=>{
- that.closeAdGoodsSpec();
- that.getCartsList();
- }).catch(err=>{
- console.log('报错信息',err);
- wx.showToast({
- title: err,
- icon: "none"
- })
- })
- }else{
- // 删除
- myPro.wxRequest("user/v3/carts/remove","POST",params).then(res=>{
- that.closeAdGoodsSpec();
- that.getCartsList();
- }).catch(err=>{
- console.log('报错信息',err);
- wx.showToast({
- title: err,
- icon: "none"
- })
- })
- }
- }else{
- console.log('不在')
- let params = {
- good_id: item.good_id,
- good_specs_id: item.good_specs_id,
- nums: nums,
- add_good_rule_id: item.add_good_rule_id,
- is_add: 1 // 是否为加购商品(1是 0否)
- };
- // console.log('参数',params);
- // return;
- myPro.wxRequest("user/v3/carts/create","POST",params).then(res=>{
- that.closeAdGoodsSpec();
- that.getCartsList();
- }).catch(err=>{
- console.log('报错信息',err);
- wx.showToast({
- title: err,
- icon: "none"
- })
- });
- }
- },
- // 核实商品是否存在于购物车
- isAddCart(item){
- let that = this;
- let oldCartGoods = that.data.cartGoods;
- let cartId = null;
- // console.log('item',item);
- // console.log('购物车',oldCartGoods);
- // 检测购物车是否有此商品
- for(let i in oldCartGoods){
- if(item.good_id == oldCartGoods[i].good_id && oldCartGoods[i].add_good_rule_id && item.add_good_rule_id && item.good_specs_id == oldCartGoods[i].good_specs_id){
- cartId = oldCartGoods[i].id;
- break;
- }
- };
- return cartId;
- },
- });
|