|
|
|
|
// 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: {}
|
|
|
|
|
},
|
|
|
|
|
// 是否是团体预约的场馆
|
|
|
|
|
isTeam: {
|
|
|
|
|
type: Number,
|
|
|
|
|
default: 0
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 组件的初始数据
|
|
|
|
|
*/
|
|
|
|
|
data: {
|
|
|
|
|
threeDays: [],
|
|
|
|
|
activeDate: "",
|
|
|
|
|
datelist: [],
|
|
|
|
|
showMoreDateFlag: false,
|
|
|
|
|
moreFlag: true,
|
|
|
|
|
timelist: [],
|
|
|
|
|
timeIndex: 0,
|
|
|
|
|
isSzMuseum: false,
|
|
|
|
|
kjIdCom: null,
|
|
|
|
|
gpIdCom: null,
|
|
|
|
|
date_price:0,
|
|
|
|
|
today:util.formatDate(new Date()),
|
|
|
|
|
tomorrow:util.formatMing(new Date()),
|
|
|
|
|
afterTom:util.formatHou(new Date()),
|
|
|
|
|
skuName:'',
|
|
|
|
|
monthList:[]
|
|
|
|
|
},
|
|
|
|
|
lifetimes: {
|
|
|
|
|
attached: function () {
|
|
|
|
|
console.log(app.globalData.product);
|
|
|
|
|
let skuName = app.globalData.product.sku.sku_name
|
|
|
|
|
this.setData({
|
|
|
|
|
kjIdCom: app.globalData.kjId,
|
|
|
|
|
gpIdCom: app.globalData.gp_id || app.globalData.team_id,
|
|
|
|
|
skuName
|
|
|
|
|
})
|
|
|
|
|
// 在组件实例进入页面节点树时执行
|
|
|
|
|
let product = app.globalData.product, today = util.formatDate(new Date()), end_date = util.formatDate(new Date(new Date().getTime() + 60 * 24 * 60 * 60 * 1000));
|
|
|
|
|
if (product.product.title.indexOf("苏州博物馆") != -1) {
|
|
|
|
|
this.setData({
|
|
|
|
|
isSzMuseum: true
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
let todayTimes = new Date(today.replace(/-/g,'/')).getTime()
|
|
|
|
|
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 => {
|
|
|
|
|
for (let i = 0; i < res.data.length; i++) {
|
|
|
|
|
if(new Date(res.data[i].date.replace(/-/g,'/')).getTime()==todayTimes && (this.properties.isTeam || this.properties.product && this.properties.product.isTeam==1)){
|
|
|
|
|
// 如果是团队预约的场馆 并且是今天的话 不能预定
|
|
|
|
|
res.data[i].stock=0;
|
|
|
|
|
// res.data.price=100;
|
|
|
|
|
res.data[i].tipText = '不可定'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 如果之前已经在详情页面选择了日期的话 默认日期不能是第一个有库存的日期了
|
|
|
|
|
if (app.globalData.product.infoDate) {
|
|
|
|
|
let dateIndex = res.data.slice(0, 3).findIndex(item => item.date == app.globalData.product.infoDate.date)
|
|
|
|
|
// if(!app.globalData.product.infoDate.short_date){
|
|
|
|
|
// app.globalData.product.infoDate.short_date = app.globalData.product.infoDate.date.split("-").splice(1,2).join("-")
|
|
|
|
|
// }
|
|
|
|
|
this.setData({
|
|
|
|
|
activeDate: app.globalData.product.infoDate,
|
|
|
|
|
moreFlag: dateIndex != -1
|
|
|
|
|
})
|
|
|
|
|
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) {
|
|
|
|
|
res.data[i].short_date = res.data[i].date.split("-").splice(1, 2).join("-")
|
|
|
|
|
this.setData({
|
|
|
|
|
activeDate: res.data[i]
|
|
|
|
|
})
|
|
|
|
|
this.getTimeStock()
|
|
|
|
|
this.triggerEvent("onChangeDate", this.data.activeDate)
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (this.data.gpIdCom) {
|
|
|
|
|
// 拼团的话 价格日历无效 所有价格都是sku里面的event_price
|
|
|
|
|
res.data.map(item => {
|
|
|
|
|
item.price = product.sku.event_price
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
this.setData({
|
|
|
|
|
datelist: res.data
|
|
|
|
|
})
|
|
|
|
|
res.data.forEach(item=> {
|
|
|
|
|
item.short_date = item.date.split("-").splice(1, 2).join("-")
|
|
|
|
|
item.week = this.getDay(item.date)
|
|
|
|
|
})
|
|
|
|
|
let seldDate = ''
|
|
|
|
|
if (app.globalData.product.changeFlag) {
|
|
|
|
|
if( app.globalData.product.date) {
|
|
|
|
|
res.data.forEach(item=> {
|
|
|
|
|
if (item.date == app.globalData.product.date.date) {
|
|
|
|
|
seldDate = item
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
this.changeDate(seldDate)
|
|
|
|
|
})
|
|
|
|
|
// this.setData({
|
|
|
|
|
// activeDate:seldDate
|
|
|
|
|
// })
|
|
|
|
|
// this.getTimeStock()
|
|
|
|
|
}
|
|
|
|
|
this.setData({
|
|
|
|
|
threeDays: res.data.slice(0, 3),
|
|
|
|
|
monthList: res.data,
|
|
|
|
|
// monthList: res.data.slice(0, 30),
|
|
|
|
|
})
|
|
|
|
|
console.log(this.data.monthList);
|
|
|
|
|
let index = this.data.threeDays.findIndex(item => item.date == this.data.activeDate.date)
|
|
|
|
|
console.log(this.data.activeDate);
|
|
|
|
|
this.setData({
|
|
|
|
|
moreFlag: index != -1
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
detached: function () {
|
|
|
|
|
// 在组件实例被从页面节点树移除时执行
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
pageLifetimes: {
|
|
|
|
|
show: function () {
|
|
|
|
|
this.setData({
|
|
|
|
|
kjIdCom: app.globalData.kjId,
|
|
|
|
|
gpIdCom: app.globalData.gp_id || app.globalData.team_id
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
/**
|
|
|
|
|
* 组件的方法列表
|
|
|
|
|
*/
|
|
|
|
|
methods: {
|
|
|
|
|
getDay: function (date) {
|
|
|
|
|
let d = new Date(date.replace(/-/g, '/')).getDay();
|
|
|
|
|
let days = ["周日", "周一", "周二", "周三", "周四", "周五", "周六"];
|
|
|
|
|
return days[d];
|
|
|
|
|
},
|
|
|
|
|
showMoreDate: function () {
|
|
|
|
|
this.setData({
|
|
|
|
|
showMoreDateFlag: true
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
hideCalendar: function () {
|
|
|
|
|
this.setData({
|
|
|
|
|
showMoreDateFlag: false
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
changeDate: function (e) {
|
|
|
|
|
let date = e.currentTarget ? e.currentTarget.dataset.date : e
|
|
|
|
|
if (date.stock <= 0) return;
|
|
|
|
|
if (date.stock == null) return;
|
|
|
|
|
if (date.price == null) return;
|
|
|
|
|
this.setData({
|
|
|
|
|
activeDate: date,
|
|
|
|
|
moreFlag: true,
|
|
|
|
|
date_price:date.price
|
|
|
|
|
})
|
|
|
|
|
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);
|
|
|
|
|
e.detail.date_price = this.data.activeDate.price;
|
|
|
|
|
this.setData({
|
|
|
|
|
activeDate: e.detail,
|
|
|
|
|
showMoreDateFlag: false,
|
|
|
|
|
moreFlag: flag
|
|
|
|
|
})
|
|
|
|
|
app.globalData.product.price = this.data.activeDate.price
|
|
|
|
|
this.triggerEvent("onChangeDate", this.data.activeDate)
|
|
|
|
|
this.getTimeStock()
|
|
|
|
|
},
|
|
|
|
|
getTimeStock: function () {
|
|
|
|
|
if (this.data.activeDate.is_time_stock != true) {
|
|
|
|
|
this.triggerEvent("onChangeTime", '')
|
|
|
|
|
return
|
|
|
|
|
};
|
|
|
|
|
commonApi.user_post("product/product_timestock_price", {
|
|
|
|
|
date: this.data.activeDate.date,
|
|
|
|
|
sku_id: this.data.activeDate.sku_id ? this.data.activeDate.sku_id : app.globalData.product.sku.id
|
|
|
|
|
}).then(res => {
|
|
|
|
|
let timeIndex = -1;
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
for (let i = 0; i < res.data.length; i++) {
|
|
|
|
|
|
|
|
|
|
if (res.data[i].stock_number > 0) {
|
|
|
|
|
if (app.globalData.product.changeFlag) {
|
|
|
|
|
if (res.data[i].start_time == app.globalData.product.time.start_time) {
|
|
|
|
|
timeIndex = i;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
timeIndex = i;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.setData({
|
|
|
|
|
timelist: res.data,
|
|
|
|
|
timeIndex: timeIndex
|
|
|
|
|
})
|
|
|
|
|
this.triggerEvent("onChangeTime", this.data.timelist[this.data.timeIndex])
|
|
|
|
|
})
|
|
|
|
|
app.globalData.product.price = this.data.activeDate.price
|
|
|
|
|
console.log('price',this.data.activeDate.price);
|
|
|
|
|
console.log(app.globalData.product);
|
|
|
|
|
},
|
|
|
|
|
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])
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|