yuminge-app/yun-min-program-plugin-master/packageA/mycomponent/goodsComponent/plugin/timeAppointment/timeAppointment.js

166 lines
4.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// packageA/mycomponent/goodsComponent/plugin/timeAppointment/timeAppointment.js
var app = getApp();
Component({
/**
* 组件的属性列表
*/
properties: {
goods_plugin:{
type:Object,
value:{}
},
goodsInfo:{
type:Object,
value:{}
}
},
/**
* 组件的初始数据
*/
data: {
personnel:[],
radio:0,
personnel_obj:{},
dateArr: [],
day_index:0,
time_index:null,
day_obj:{},
time_obj:{},
service_text:"服务",
reserve_obj_text:"预约人员"
},
lifetimes:{
attached(){
// let dateArr = this.GetDateStr(14);
// this.setData({dateArr});
wx.getStorage({
key: "yz_basic_info",
success: (res)=> {
this.setData({
service_text:res.data.lang.reserve_simple.service||'服务',
reserve_obj_text:res.data.lang.reserve_simple.reserve_obj||'预约人员',
});
},
});
if(this.data.goods_plugin && this.data.goods_plugin.reserve_simple_goods && this.data.goods_plugin.reserve_simple_goods.objs){
let personnel = this.data.goods_plugin.reserve_simple_goods.objs;
let changeData={personnel};
if(personnel.length>0){
changeData.radio = personnel[0].id;
changeData.personnel_obj = personnel[0];
}
this.setData(changeData);
if(personnel.length>0){
this.getWorkTime(personnel[0].id);
}
}
}
},
/**
* 组件的方法列表
*/
methods: {
getWeek(dateString) {
let dateArray = dateString.split("-");
let date = new Date(dateArray[0], parseInt(dateArray[1] - 1), dateArray[2]);
return "周" + "日一二三四五六".charAt(date.getDay());
},
onChangeRadio(event) {
this.setData({
radio: event.detail,
});
let obj = this.data.personnel.find((item)=>{
return item.id==event.detail;
});
this.setData({personnel_obj:obj});
this.getWorkTime(event.detail);
},
setDayIndex(evt){
let {item,index} = evt.currentTarget.dataset;
if(item.status==0) return;
this.setData({
day_index:index,
day_obj:item,
time_index:null
});
},
setTimeIndex(evt){
let {item,index} = evt.currentTarget.dataset;
if(item.status==0) return;
this.setData({
time_index:index,
time_obj:item
});
},
gotoOrder(){
if(this.data.time_index==null) return app.tips("请选择预约时间");
let {service_id,id,goods_option_id,name} = this.data.personnel_obj;
let begin_time = this.data.dateArr[this.data.day_index].work_date+" "+this.data.dateArr[this.data.day_index].periods[this.data.time_index].period_time_start_str;
let reserve_order = {service_id,obj_id:id,begin_time,name};
wx.navigateTo({
url: "/packageD/buy/myOrder_v2/myOrder_v2?tag=-2&total=1&optionsId="+goods_option_id+"&goodsId=" + this.data.goodsInfo.id + "&reserve_order=" + JSON.stringify(reserve_order)
});
},
gotoUserDe(evt){
let id = evt.currentTarget.dataset.id;
wx.navigateTo({
url: '/packageF/timeAppointment/AppointmentUserDe/AppointmentUserDe?id='+id,
});
},
getWorkTime(id){
let obj = this.data.personnel.find((item)=>{
return item.id==id;
});
console.log(obj);
if(!obj) return;
let urlStr = app.getNetAddresss("plugin.reserve-simple.frontend.work-time.get-service-obj-periods");
app._getNetWork({
url: urlStr,
data:{
obj_id:obj.id,
service_id:obj.service_id
},
success: (resdata) => {
var res = resdata.data;
if (res.result != 1) return app.tips(res.msg);
let list = res.data;
list.forEach((item)=>{
item.week = this.getWeek(item.work_date);
item.day = item.work_date.substr(-2,2);
item.month = item.work_date.substr(-5,5);
});
console.log(list);
this.setData({
dateArr:list,
day_obj:list[0]
});
}
});
},
GetDateStr(AddDayCount) {
let dateArr = [];
for (let i = 0; i < AddDayCount; i++) {
var dd = new Date();
dd.setDate(dd.getDate() + i); //获取AddDayCount天后的日期
var y = dd.getFullYear();
var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1; //获取当前月份的日期不足10补0
var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate(); //获取当前几号不足10补0
let weekStr = this.getWeek(y + "-" + m + "-" + d);
let str = {
day: d,
week: weekStr
};
dateArr.push(str);
}
return dateArr;
}
}
});