409 lines
9.8 KiB
JavaScript
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;
|
|
},
|
|
});
|