var _request = require('../../utils/request.js') var _handle = require('../../utils/handle.js') var validator = require('../../utils/validator.js') Page({ data: { orderId: 0, count:1, cartList:{}, cartCount:0, cartTotal:0, checkeditems:'', checkeditemsnum:'', checkedtotal:0, selectedall:false, submitlock:false, x:0, currentX: 0, seckillruntimearr:[], localCartList:{} }, handleMovableChange: function(e) { // this.data.currentX = e.detail.x; this.data.currentX = e.detail.x; }, handleTouchend: function(e) { this.isMove = true; let index = e.currentTarget.id; let clist = this.data.cartList; if (this.data.currentX < -46) { // this.data.x = -92; clist[index]['movex'] = -100; this.setData({ cartList: clist }); } else { clist[index]['movex'] = 0; this.setData({ cartList: clist }); } }, onHide:function(){ clearInterval(this.data.timer); }, onLoad: function (options) { // this.getCartList(); }, onShow: function () { var that = this; this.getCartList(); this.setData({submitlock: false}); this.setData({selectedall: false}); setTimeout(function(){ that.getCartListAndSelected(); },50); }, getCartList:function(){ clearInterval(this.data.timer); console.log('getCartList') var that = this var url = 'v1/cart/list' var params = {} var success = function (res) { console.log(res) if(res.data.list){ var skrt = that.data.seckillruntimearr; var localcl = wx.getStorageSync('localCartList') ? wx.getStorageSync('localCartList') : res.data.list; console.log('localcl',localcl); for(let i in res.data.list){ res.data.list['movex'] = 0; skrt.push(''); for(let o in localcl){ if(res.data.list[i]['id'] == localcl[o]['id']){ // if(res.data.list[i]['count'] < localcl[o]['count']){ res.data.list[i]['count'] = localcl[o]['count']; // }else{ // localcl[o]['count'] = res.data.list[i]['count']; // } } } } that.setData({ cartList: res.data.list, cartCount: res.data.count, cartTotal: res.data.total, seckillruntimearr:skrt, localCartList: localcl }) that.seckilltime(); }else{ wx.showToast({ title: '请先授权登录~', icon: 'none', duration: 2000 }) } } _request.$get(url, params, success) }, getCartListAndSelected:function(){ console.log('getCartList') var that = this var url = 'v1/cart/list' var params = {} var success = function (res) { console.log(res) if(res.data.list){ var localcl = wx.getStorageSync('localCartList') ? wx.getStorageSync('localCartList') : res.data.list; console.log('localcl',localcl); for(let i in res.data.list){ for(let o in localcl){ if(res.data.list[i]['id'] == localcl[o]['id']){ // if(res.data.list[i]['count'] < localcl[o]['count']){ res.data.list[i]['count'] = localcl[o]['count']; // }else{ // localcl[o]['count'] = res.data.list[i]['count']; // } } } } that.setData({ cartList: res.data.list, cartCount: res.data.count, cartTotal: res.data.total, localCartList: localcl }) that.allSelect(); }else{ wx.showToast({ title: '请先授权登录~', icon: 'none', duration: 2000 }) } } _request.$get(url, params, success) }, add: function (e) { console.log('tapadd',e); var that = this; var itemid = e.currentTarget.dataset.id; var itemcount = e.currentTarget.dataset.count; console.log('itemcount',itemcount) if (itemcount) { var index = e.currentTarget.dataset.index; var count = itemcount + 1; this.setData({ ['cartList[' + index + '].count']:count, localCartList:that.data.cartList }) this.checkSelected(); // this.changeServercount(count,itemid); } }, mius: function (e) { console.log('tapmius',e) var that = this; var itemid = e.currentTarget.dataset.id; var itemcount = e.currentTarget.dataset.count; if (itemcount > 1) { var count = itemcount - 1; var index = e.currentTarget.dataset.index; this.setData({ ['cartList[' + index + '].count']:count, localCartList:that.data.cartList }) this.checkSelected(); // this.changeServercount(count,itemid); }else{ wx.showModal({ title: '提示', content: '需要删除改商品吗?', success: function (sm) { if (sm.confirm) { var url = "/v1/cart/mult_delele"; var params = { ids:itemid } var success = function (res) { console.log(res) if(res.data.result){ } that.getCartList(); that.setData({submitlock: false}); that.setData({selectedall: false}); // that.getCartListAndSelected(); } _request.$post(url, params, success); } else if (sm.cancel) { console.log('用户点击取消') } } }) } }, delitem:function(e){ var that = this; var itemid = e.currentTarget.dataset.id; console.log('itemid',itemid); wx.showModal({ title: '提示', content: '需要删除改商品吗?', success: function (sm) { if (sm.confirm) { var url = "/v1/cart/mult_delele"; var params = { ids:itemid } var success = function (res) { console.log(res) if(res.data.result){ } that.getCartList(); that.setData({submitlock: false}); that.setData({selectedall: false}); // that.getCartListAndSelected(); } _request.$post(url, params, success); } else if (sm.cancel) { console.log('用户点击取消') } } }) }, changeCount: function (val) { var count = val.detail.value var itemid = val.target.dataset.id; var index = val.target.dataset.index; if (count <= 0) { this.setData({ ['cartList[' + index + '].count']:1 }) this.checkSelected(); // this.changeServercount(1,itemid); } /*else if (count > this.data.project.left_count) { this.setData({ count: this.data.project.left_count }) this.changeCountService(this.data.project.left_count,itemid) }*/ else { this.setData({ ['cartList[' + index + '].count']:count }) this.checkSelected(); // this.changeServercount(count,itemid); } }, changeServercount:function(val,itemid){ console.log('changeCountService') var that = this var url = "/v1/cart/change_nums/" + itemid + "/" + val var params = {} var success = function (res) { console.log(res) if(res.result){ //修改成功 } } _request.$post(url, params, success); // this.getCartList(); that.setData({submitlock: false}); that.setData({selectedall: false}); that.getCartListAndSelected(); }, itemselected:function(e){ console.log(this) var nowitems = this.data.selectedItems; let index = e.currentTarget.dataset.index; var bool = this.data.cartList[index].IsBuy; console.log('bool',bool) if(this.data.cartList[index].seckill_end < 0 || (Date.parse(new Date()) / 1000 > this.data.cartList[index].seckill_start && Date.parse(new Date()) / 1000 < this.data.cartList[index].seckill_end)){ this.setData({ ['cartList[' + index + '].IsBuy']: !bool }) }else{ if(Date.parse(Date.parse(new Date()) / 1000 > this.data.cartList[index].seckill_end)){ wx.showToast({ title: '当前商品秒杀已结束~', icon: 'none', duration: 2000 }) }else{ wx.showToast({ title: '当前商品秒杀尚未开始~', icon: 'none', duration: 2000 }) } } this.checkSelected(); }, allSelect:function(){ if(this.data.selectedall){ for(var i in this.data.cartList){ this.setData({ ['cartList[' + i + '].IsBuy']: false }) } this.setData({ selectedall: false }) }else{ for(var i in this.data.cartList){ if(this.data.cartList[i].seckill_end < 0 || (Date.parse(new Date()) / 1000 > this.data.cartList[i].seckill_start && Date.parse(new Date()) / 1000 < this.data.cartList[i].seckill_end)){ this.setData({ ['cartList[' + i + '].IsBuy']: true }) } } this.setData({ selectedall: true }) } this.checkSelected(); }, checkSelected:function(){ var cartList = this.data.cartList; var checkitem = ''; var checkitemnum = ''; var checktotal = 0; var checkcount = 0; for(var i in cartList){ if(cartList[i].IsBuy){ checkitem = checkitem + cartList[i].id+','; checkitemnum = checkitemnum + cartList[i].count+','; checktotal = checktotal + (parseFloat(cartList[i].original_price) * parseInt(cartList[i].count)); checkcount = checkcount + parseInt(cartList[i].count); } } checkitem = checkitem.substr(0,checkitem.length - 1); checkitemnum = checkitemnum.substr(0,checkitemnum.length - 1); //setlocalcartlist wx.setStorageSync('localCartList',cartList); this.setData({ checkeditems:checkitem, checkeditemsnum:checkitemnum, cartCount: checkcount, cartTotal: checktotal }) // this.mulChangeState(); }, mulChangeState:function(){ var that = this; var itemid = this.data.checkeditems; var itemnum = this.data.checkeditemsnum; var url = "v1/cart/mult_change_state"; var params = { ids:itemid, nums:itemnum } var success = function (res) { console.log('mulChangeState',res) if(res.data.result){ that.getCartList(); that.setData({submitlock: false}); that.setData({selectedall: false}); // that.getCartListAndSelected(); } } _request.$post(url, params, success); }, mulChangeStateToPay:function(){ var that = this; var lock = this.data.submitlock; if(!lock){ that.setData({submitlock: true}) var itemid = this.data.checkeditems; var itemnum = this.data.checkeditemsnum; var url = "v1/cart/order_mul"; var params = { ids:itemid, nums:itemnum } var success = function (res) { wx.showToast({ title: '正在跳转到结算页,请稍后~', icon: 'none', duration: 2000 }) console.log('mulChangeState',res) if (res.data.order_id) { wx.navigateTo({ url: '../pay/pay?orderId=' + res.data.order_id }) } } var err = function(err){ console.log(err) that.setData({submitlock: false}) } _request.$post(url, params, success, err); } }, toPay:function(){ var that = this; var url = "/v1/cart/order_mul"; var params = {} var success = function (res) { console.log(res) if (res.data.order_id) { wx.navigateTo({ url: '../pay/pay?orderId=' + res.data.order_id }) } } _request.$get(url, params, success); }, delSelected:function(){ var that = this; var itemid = this.data.checkeditems; if(itemid== ''){ wx.showToast({ title: '没有选中任何商品~', icon: 'none', duration: 2000 }) }else{ wx.showModal({ title: '提示', content: '确定要删除选中的商品吗?', success: function (sm) { if (sm.confirm) { var url = "/v1/cart/mult_delele"; var params = { ids:itemid } var success = function (res) { console.log(res) if(res.data.result){ } that.getCartList(); that.setData({submitlock: false}); that.setData({selectedall: false}); // that.getCartListAndSelected(); } _request.$post(url, params, success); } else if (sm.cancel) { console.log('用户点击取消') } } }) } }, seckilltime() { var that = this; var runtime = setInterval(function () { var _cartlist = that.data.cartList; for(var index = 0;index<_cartlist.length;index++){ if(_cartlist[index].seckill_show_price > 0){ if(Date.parse(new Date()) / 1000 < _cartlist[index].seckill_end && Date.parse(new Date()) / 1000 > _cartlist[index].seckill_start){ var __cartdata = that.data.cartList[index]; var __cartindex = index; var t = Date.parse(new Date()) t = t / 1000; var leftTime = __cartdata['seckill_end'] - t var d, h, m, s, ms; if (leftTime >= 0) { // day = parseInt(ctime / 86400) h = parseInt(leftTime / 3600) m = parseInt(leftTime / 60 ) - parseInt(leftTime / 3600) * 60 s = parseInt(leftTime) - parseInt(leftTime / 60 ) * 60 s = s < 10 ? "0" + s : s m = m < 10 ? "0" + m : m h = h < 10 ? "0" + h : h __cartdata['seckill_runtime'] = h+':'+m+':'+s; var allcartlist = that.data.cartList; allcartlist[index] = __cartdata; that.setData({ // ['cartList[' + __cartindex + '].seckill_runtime']:h+':'+m+':'+s cartList:allcartlist, ['seckillruntimearr['+index+']']:'秒杀剩余时间 '+h+':'+m+':'+s }) } if (leftTime < 0) { // clearInterval(that.data.timer); that.setData({ ['cartList[' + __cartindex + '].seckill_runtime']:'秒杀剩余时间 00:00:00', ['seckillruntimearr['+index+']']:'秒杀剩余时间 00:00:00' }) } }else{ if(Date.parse(new Date()) / 1000 < _cartlist[index].seckill_start){ var __cartdata = that.data.cartList[index]; var __cartindex = index; var t = Date.parse(new Date()) t = t / 1000; var leftTime = __cartdata['seckill_start'] - t var d, h, m, s, ms; if (leftTime >= 0) { // day = parseInt(ctime / 86400) h = parseInt(leftTime / 3600) m = parseInt(leftTime / 60 ) - parseInt(leftTime / 3600) * 60 s = parseInt(leftTime) - parseInt(leftTime / 60 ) * 60 s = s < 10 ? "0" + s : s m = m < 10 ? "0" + m : m h = h < 10 ? "0" + h : h __cartdata['seckill_runtime'] = h+':'+m+':'+s; var allcartlist = that.data.cartList; allcartlist[index] = __cartdata; that.setData({ // ['cartList[' + __cartindex + '].seckill_runtime']:h+':'+m+':'+s cartList:allcartlist, ['seckillruntimearr['+index+']']:'距离秒杀开始 '+h+':'+m+':'+s }) } if (leftTime < 0) { // clearInterval(that.data.timer); that.setData({ ['cartList[' + __cartindex + '].seckill_runtime']:'距离秒杀开始 00:00:00', ['seckillruntimearr['+index+']']:'距离秒杀开始 00:00:00' }) } }else{ that.setData({ ['seckillruntimearr['+index+']']:'秒杀已结束' }) var url = "/v1/cart/mult_delele"; var params = { ids:that.data.cartList[index].id } var success = function (res) { console.log(res) if(res.data.result){ } clearInterval(that.data.timer); that.getCartList(); that.setData({submitlock: false}); that.setData({selectedall: false}); // that.getCartListAndSelected(); } _request.$post(url, params, success); } } }else{ that.setData({ ['seckillruntimearr['+index+']']:'' }) } } console.log('cartList',that.data.cartList); },1000); that.setData({ timer: runtime, }); } })