You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

201 lines
5.9 KiB

5 years ago
// pages/order/components/date/index.js
import commonApi from "../../../../utils/https/common"
import util from "../../../../utils/util"
let app = getApp()
Component({
/**
* 组件的属性列表
*/
options: {
styleIsolation: 'apply-shared',
addGlobalClass: true
},
properties: {
product:{
type:Object,
default:{}
}
},
/**
* 组件的初始数据
*/
data: {
threeDays:[],
activeDate:"",
datelist:[],
showMoreDateFlag:false,
moreFlag:true,
timelist:[],
5 years ago
timeIndex:0,
5 years ago
isSzMuseum:false,
5 years ago
kjIdCom:null,
gpIdCom:null
5 years ago
},
lifetimes: {
attached: function() {
5 years ago
this.setData({
5 years ago
kjIdCom:app.globalData.kjId,
gpIdCom:app.globalData.gp_id || app.globalData.team_id
5 years ago
})
5 years ago
// 在组件实例进入页面节点树时执行
let product = app.globalData.product,today = util.formatDate(new Date()),end_date = util.formatDate(new Date(new Date().getTime() + 60 * 24 * 60 * 60 * 1000));
5 years ago
if(product.product.title.indexOf("苏州博物馆")!=-1){
this.setData({
isSzMuseum:true
})
}
5 years ago
commonApi.user_post("token/check").then(res=>{
if(res.code==1){
// 获取价格日历
commonApi.user_post("product/product_date_price",{
start_date:today,
end_date:end_date,
sku_id:product.sku.id
}).then(res=>{
5 years ago
// 如果之前已经在详情页面选择了日期的话 默认日期不能是第一个有库存的日期了
if(app.globalData.product.infoDate){
5 years ago
let dateIndex = res.data.slice(0,3).findIndex(item=>item.date==app.globalData.product.infoDate.date)
5 years ago
// if(!app.globalData.product.infoDate.short_date){
// app.globalData.product.infoDate.short_date = app.globalData.product.infoDate.date.split("-").splice(1,2).join("-")
// }
5 years ago
this.setData({
5 years ago
activeDate:app.globalData.product.infoDate,
moreFlag:dateIndex!=-1
5 years ago
})
this.getTimeStock()
this.triggerEvent("onChangeDate",app.globalData.product.infoDate)
}
else {
for(let i=0;i<res.data.length;i++){
if(res.data[i].stock>0){
5 years ago
res.data[i].short_date = res.data[i].date.split("-").splice(1,2).join("-")
5 years ago
this.setData({
activeDate:res.data[i]
})
this.getTimeStock()
this.triggerEvent("onChangeDate",this.data.activeDate)
break;
}
5 years ago
}
}
5 years ago
if(this.data.gpIdCom){
// 拼团的话 价格日历无效 所有价格都是sku里面的event_price
res.data.map(item=>{
item.price = product.sku.event_price
})
}
5 years ago
this.setData({
datelist:res.data
})
this.setData({
threeDays:res.data.slice(0,3)
})
5 years ago
let index = this.data.threeDays.findIndex(item=>item.date==this.data.activeDate.date)
this.setData({
moreFlag:index!=-1
})
5 years ago
console.log(res)
})
}
})
},
detached: function() {
// 在组件实例被从页面节点树移除时执行
},
},
5 years ago
pageLifetimes:{
show:function(){
this.setData({
5 years ago
kjIdCom:app.globalData.kjId,
gpIdCom:app.globalData.gp_id || app.globalData.team_id
5 years ago
})
}
},
5 years ago
/**
* 组件的方法列表
*/
methods: {
showMoreDate:function(){
this.setData({
showMoreDateFlag:true
})
},
hideCalendar:function(){
this.setData({
showMoreDateFlag:false
})
},
changeDate:function(e){
let date = e.currentTarget.dataset.date;
if(date.stock<=0) return;
if(date.stock==null) return;
if(date.price==null) return;
this.setData({
activeDate:date,
moreFlag:true
})
this.triggerEvent("onChangeDate",this.data.activeDate)
this.getTimeStock()
},
// 修改日期
onTapDay:function(e){
let threeDays = this.data.threeDays,flag=false;
threeDays.map(item=>{
if(item.date==e.detail.date){
flag = true
}
})
e.detail.short_date = e.detail.date.substr(5,5);
this.setData({
activeDate:e.detail,
showMoreDateFlag:false,
moreFlag:flag
})
this.triggerEvent("onChangeDate",this.data.activeDate)
this.getTimeStock()
},
getTimeStock:function(){
if(this.data.activeDate.is_time_stock!=true) return;
commonApi.user_post("product/product_timestock_price",{
date:this.data.activeDate.date,
5 years ago
sku_id:this.data.activeDate.sku_id?this.data.activeDate.sku_id:app.globalData.product.sku.id
5 years ago
}).then(res=>{
let timeIndex = -1;
5 years ago
if(app.globalData.product.infoTime){
this.triggerEvent("onChangeTime",app.globalData.product.infoTime);
timeIndex = res.data.findIndex(item=>item.start_time==app.globalData.product.infoTime.start_time)
this.setData({
timelist:res.data,
timeIndex:timeIndex
})
return;
}
5 years ago
for(let i=0;i<res.data.length;i++){
if(res.data[i].stock_number>0){
timeIndex = i;
break;
}
}
this.setData({
timelist:res.data,
timeIndex:timeIndex
})
this.triggerEvent("onChangeTime",this.data.timelist[this.data.timeIndex])
})
},
selectTime:function(e){
if(this.data.timelist[e.currentTarget.dataset.index].stock_number!=0){
this.setData({
timeIndex:e.currentTarget.dataset.index
})
this.triggerEvent("onChangeTime",this.data.timelist[this.data.timeIndex])
}
}
}
})