// pages/order/road/index.js import commonApi from "../../../utils/https/common" import util from "../../../utils/util" let app = getApp() Page({ /** * 页面的初始数据 */ data: { monthDays1:[0,0], monthDays2:[0,0], month:[], monthIndex:0, prices:{}, selectDate:null, id:21, sku:[], nums:[], price:0, infoFlag:false, productInfo:null }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.setData({ id:options.id }) // 获取产品下的规格 commonApi._post("product/get_product_detail",{ id:this.data.id }).then(res=>{ let nums = []; if(options.skuid){ let sku = res.data.sku.find(item=>item.id==options.skuid); res.data.sku = [sku]; } res.data.sku.map(item=>{ nums.push(0) }) for(let i=0;ires.data.sku[j].id){ [res.data.sku[i],res.data.sku[j]] = [res.data.sku[j],res.data.sku[i]] } } } this.setData({ productInfo:res.data, sku:res.data.sku, nums:nums }) }) this.initDate() }, changeMonth:function(e){ this.setData({ monthIndex:e.currentTarget.dataset.index }) }, initDate(){ let today = new Date(),month1 = today.getMonth()+1,month2 = (month1 + 1) % 12,year = today.getFullYear(),year2 = month1{ let prices={}; res.data.map(item=>{ // 给规格排序 for(let i=0;iitem.info[j].sku_info.id){ [item.info[i],item.info[j]] = [item.info[j],item.info[i]] } } } let stock = 0; item.info.map(i=>{ stock = stock+i.stock; }) item.stock = stock; if(item.stock>0){ let date = item.date.split("-").splice(1,2),newDate=[]; console.log(date) date.map(d=>{ d = parseInt(d); newDate.push(d) }) if(!selectDate){ selectDate = newDate[1]; selectMonth = newDate[0]; } prices[newDate.join("-")] = item; } }) this.setData({ prices:prices }) if(!selectDate) return; let info = prices[selectMonth+'-'+selectDate]; info.selectMonth = selectMonth; info.selectDate = selectDate; this.setData({ selectDate:info, monthIndex:selectMonth==month1?0:1 }) this.changePrice() }) }, // 获取这个月有几天 getMonthDays:function(month,year){ let date = new Date(year+"/"+month+"/01").getDay(); if(month==2){ if(year % 100 !==0 && year % 4==0 || year % 400 ==0){ return [29,date]; } else { return [28,date]; } } else if(month<8 && month % 2 ==1 || month>=8 && month % 2==0){ return [31,date]; } else { return [30,date]; } }, selectDate:function(e){ // 选择日期 let item = e.currentTarget.dataset.item,selectMonth = this.data.month[this.data.monthIndex]; if(!selectMonth) return let info = this.data.prices[selectMonth+'-'+(item+1)]; console.log(info) if(info && info.product_price && info.product_price!==null && info.stock!=0){ info.selectMonth = selectMonth; info.selectDate = item+1; this.setData({ selectDate:info }) this.changePrice() } }, minus:function(e){ if(!this.data.selectDate){ wx.showToast({ title: '请先选择出行日期', icon:'none' }) return; } let index = e.currentTarget.dataset.index,nums = this.data.nums; if(nums[index]==0) return; nums[index] = nums[index] - 1; this.setData({ nums:nums }) this.changePrice() }, add:function(e){ let index = e.currentTarget.dataset.index,nums = this.data.nums,selectDate = this.data.selectDate,sku = this.data.sku; if(!selectDate){ wx.showToast({ title: '请先选择出行日期', icon:'none' }) return; } if(selectDate.info[index].stock==nums[index]) return; nums[index] = nums[index] + 1; this.setData({ nums:nums }) this.changePrice() }, showInfo:function(){ this.setData({ infoFlag:!this.data.infoFlag }) }, changePrice:function(){ let selectDate = this.data.selectDate,nums = this.data.nums,price=0; nums.map((num,index)=>{ price = price + num * selectDate.info[index].price; }) this.setData({ price:price }) }, order:function(){ let selectDate = this.data.selectDate,sku = this.data.sku,nums = this.data.nums,allNum = 0; if(!selectDate){ wx.showToast({ title: '请先选择日期', icon:'none' }) return; } sku.map((item,index)=>{ item.num = nums[index]; allNum = allNum + nums[index]; item.price = selectDate.info[index].price; }) if(allNum==0){ wx.showToast({ title: '至少选择一个规格', icon:'none' }) return; }; app.globalData.product = { product:this.data.productInfo, sku:sku, selectDate:selectDate, price:this.data.price } wx.navigateTo({ url: '/pages/order/roadOrder/index', }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { } })