yuminge-app/yun-min-program-plugin-master/packageE/appointment/client/make_appointment/make_appointment.js

409 lines
9.8 KiB
JavaScript

// packageE/appointment/client/make_appointment/make_appointment.js
var app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
showProjects: false,
show1: false,
id: 0,
project_id: 0,
project: {},
store: [],
chooseTechnician: {
name: "",
},
result: "",
activeNames: ["1"],
times: [],
calendarEvents: [],
isRest: false,
AStore: {},
applyModel: {
order_id: "",
store_id: "",
worker_id: "",
customer_name: "",
customer_tel: "",
begin_time: "",
},
work_date: "",
start_time: "",
point: {},
appointmentLang: {},
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.data.id = options.id;
this.data.project_id = options.project_id;
this.getData();
this.getLocation();
this.data.today =
new Date().getFullYear() +
"-" +
(new Date().getMonth() + 1 >= 10
? new Date().getMonth() + 1
: "0" + (new Date().getMonth() + 1)) +
"-" +
(new Date().getDate() >= 10
? new Date().getDate()
: "0" + new Date().getDate());
this.data.work_date = this.data.today;
let yz_basic_info = wx.getStorageSync("yz_basic_info");
this.setData({ appointmentLang: yz_basic_info.lang.appointment });
console.log(yz_basic_info.lang);
this.setAppointment(options);
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {},
setAppointment(options) {
if (options.has_one_store) {
this.setData({
AStore: JSON.parse(options.has_one_store),
});
}
if (options.store_id) {
this.setData({
"applyModel.store_id": options.store_id,
});
}
if (options.has_one_worker) {
this.setData({
chooseTechnician: JSON.parse(options.has_one_worker),
});
}
},
closeProjects(evt) {
this.setData({
showProjects: !this.data.showProjects,
});
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {},
closeStore() {
this.setData({
show1: false,
});
},
changeCollapse(event) {
this.setData({
activeNames: event.detail,
});
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {},
inputCustomerName(event) {
console.log(event.detail.value);
this.data.applyModel.customer_name = event.detail.value;
},
inputCustomerTel(event) {
this.data.applyModel.customer_tel = event.detail.value;
},
inputRemark(event) {
this.data.applyModel.remark = event.detail.value;
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {},
chooseStore(evt) {
let item = evt.currentTarget.dataset.item;
this.setData({
AStore: item,
"applyModel.store_id": item.id,
show1: false,
start_time: "",
"chooseTechnician.name": "",
});
},
toTime() {
if (!this.data.applyModel.store_id) return this.tips("请先选择门店");
this.setData({
activeNames: ["1"],
});
this.getDate();
this.getTime();
},
onchangeRadio(event) {
console.log(event);
this.setData({
result: event.detail,
});
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {},
getDate() {
let urlStr = app.getNetAddresss(
"plugin.appointment.frontend.work-time.get-work-dates"
);
app._getNetWork({
url: urlStr,
data: {
store_id: this.data.applyModel.store_id,
},
success: (resdata) => {
let res = resdata.data;
if (res.result !== 1) return this.tips(res.msg);
let calendarEvents = res.data.map((item) => {
if (item.work_date_format == this.data.today) {
item.work_sattus == 1
? (this.data.isRest = true)
: (this.data.isRest = false);
}
if (item.work_status == 1) {
return item.work_date_format + "-休";
} else {
return item.work_date_format;
}
});
this.setData({
showProjects: true,
calendarEvents,
});
},
});
},
getTime() {
let urlStr = app.getNetAddresss(
"plugin.appointment.frontend.work-time.get-start-times"
);
app._getNetWork({
url: urlStr,
data: {
store_id: this.data.applyModel.store_id,
},
success: (resdata) => {
let res = resdata.data;
if (res.result !== 1) return this.tips(res.msg);
this.setData({
times: res.data,
});
},
});
},
getData() {
let urlStr = app.getNetAddresss(
"plugin.appointment.frontend.appointment-order.detail"
);
app._getNetWork({
url: urlStr,
data: {
project_id: this.data.id,
},
success: (resdata) => {
let res = resdata.data;
if (res.result !== 1) return this.tips(res.msg);
if (res.data.default_customer) {
this.setData({
"applyModel.customer_tel": res.data.default_customer.tel,
"applyModel.customer_name": res.data.default_customer.name,
});
}
this.setData({
project: res.data.project,
});
},
});
},
handSelect(e) {
//if(this.data.work_date == e.detail.work_date) return;
console.log(e);
this.setData({
work_date: e.detail.work_date,
start_time: "",
isRest: !e.detail.disabled,
});
},
selectedTime(e) {
this.setData({
activeNames: false,
start_time: e.currentTarget.dataset.time,
});
this.getTechnician();
},
clickTechnician(e) {
this.setData({
chooseTechnician: e.currentTarget.dataset.item,
});
console.log(e.currentTarget.dataset.item);
},
makeAppointment() {
if (!this.data.start_time) return this.tips("请选择时间");
if (!this.data.chooseTechnician.name)
return this.tips("请选择" + this.data.appointmentLang.worker);
if (!this.data.applyModel.customer_name) return this.tips("请填写姓名");
if (!this.data.applyModel.customer_tel) return this.tips("请填写电话");
this.data.applyModel.order_id = this.data.id;
this.data.applyModel.worker_id = this.data.chooseTechnician.id;
this.data.applyModel.begin_time =
this.data.work_date + " " + this.data.start_time;
let urlStr = app.getNetAddresss(
"plugin.appointment.frontend.appointment-service.create-service"
);
app._postNetWork({
url: urlStr,
data: this.data.applyModel,
success: (resdata) => {
let res = resdata.data;
if (res.result !== 1) return this.tips(res.msg);
app.confirm('预约成功',()=>{
wx.navigateBack();
},false);
},
});
},
getTechnician() {
let urlStr = app.getNetAddresss(
"plugin.appointment.frontend.worker.get-appointment-workers"
);
app._getNetWork({
url: urlStr,
data: {
store_id: this.data.applyModel.store_id,
project_id: this.data.project_id,
work_date: this.data.work_date,
start_time: this.data.start_time,
},
success: (resdata) => {
let res = resdata.data;
if (res.result !== 1) return this.tips(res.msg);
this.setData({
technician: res.data,
});
},
});
},
getStore() {
if (!this.data.point.lng) {
this.getLocation();
return;
}
let urlStr = app.getNetAddresss(
"plugin.appointment.frontend.store.get-list-by-project-id"
);
app._getNetWork({
url: urlStr,
data: {
lng: this.data.point.lng,
lat: this.data.point.lat,
project_id: this.data.project_id,
},
success: (resdata) => {
let res = resdata.data;
if (res.result !== 1) return this.tips(res.msg);
this.setData({
store: res.data,
show1: true,
});
},
});
},
async getLocation() {
// let userLocationFlag = await this.checkAlbum("scope.userLocation");
wx.getLocation({
type: "wgs84",
success: (res) => {
this.setData({
"point.lat": res.latitude,
"point.lng": res.longitude,
});
},
});
},
checkAlbum(scopeName) {
return new Promise(async (resolve, reject) => { // eslint-disable-line
let writePhotosAlbum = await this.getAuthSetting(scopeName);
if (!writePhotosAlbum) {
wx.showModal({
title: "请开启授权",
content: "是否跳转设置页开启授权",
success(res) {
if (res.confirm) {
wx.openSetting({
success(settingdata) {
if (settingdata.authSetting[scopeName]) {
resolve(true);
} else {
resolve(false);
}
},
});
} else if (res.cancel) {
resolve(false);
}
},
fail: () => {
resolve(false);
},
});
} else resolve(true);
});
},
getAuthSetting(authName) {
return new Promise((resolve, reject) => {
wx.getSetting({
success(res) {
if (!res.authSetting[authName]) {
wx.authorize({
scope: authName,
success() {
resolve(true);
},
fail() {
resolve(false);
},
});
} else resolve(true);
},
fail() {
resolve(false);
},
});
});
},
tips(msg) {
wx.showToast({
title: msg,
icon: "none",
duration: 2000,
});
return false;
},
});