535 lines
15 KiB
JavaScript
535 lines
15 KiB
JavaScript
// packages/partner/pages/newWorkOrder/newWorkOrder.js
|
||
import apiArr from '../../../../api/partner';
|
||
import apiArr2 from '../../../../api/water_filter'
|
||
import util from '../../../../utils/util';
|
||
|
||
Page({
|
||
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
admin: "",
|
||
show: false,
|
||
|
||
region: "",//省市区
|
||
remark: "",//备注
|
||
address: "",//详细地址?
|
||
|
||
package: {},//套餐
|
||
customer_name: "",//顾客姓名
|
||
customer_phone: "",//顾客电话
|
||
customer_id: "",
|
||
area: "",
|
||
address: "",
|
||
|
||
show3: false,
|
||
show2: false,
|
||
show4: false,
|
||
cityList: [],
|
||
areaList: [],
|
||
businessList: [],
|
||
newAreaList: [], // 默认展示 市区
|
||
newBusiness: [], // 默认展示 县/区
|
||
confirmCity: '',
|
||
confirmArea: '',
|
||
confirmBusiness: '',
|
||
minDate: new Date().getTime(),
|
||
time: "",
|
||
packageList: [],//套餐列表
|
||
masterList: [], //师傅列表
|
||
formatter(type, value) {
|
||
if (type === 'year') {
|
||
return `${value}年`;
|
||
}
|
||
if (type === 'month') {
|
||
return `${value}月`;
|
||
}
|
||
if (type === 'day') {
|
||
return `${value}日`;
|
||
}
|
||
return value;
|
||
},
|
||
product: "",
|
||
show5: false,
|
||
productList: []
|
||
},
|
||
|
||
changeShow5() {
|
||
let that = this
|
||
that.setData({
|
||
show5: true
|
||
})
|
||
},
|
||
cancel5() {
|
||
let that = this
|
||
that.setData({
|
||
show5: false
|
||
})
|
||
},
|
||
changeCustomerName(e) {
|
||
let that = this
|
||
that.setData({
|
||
customer_name: e.detail.value
|
||
})
|
||
},
|
||
changeCustomerPhone(e) {
|
||
let that = this
|
||
that.setData({
|
||
customer_phone: e.detail.value
|
||
})
|
||
if(e.detail.value.length == 11){
|
||
that.searchCustomer(e.detail.value)
|
||
}
|
||
},
|
||
|
||
searchCustomer(e) {
|
||
let that = this
|
||
util.postUrl4(apiArr.phoneSearch, {
|
||
phone: e
|
||
}, res => {
|
||
console.log(res);
|
||
if (res.row.length == 1) {
|
||
that.setData({
|
||
customer_name: res.row[0].name,
|
||
address: res.row[0].address,
|
||
customer_id: res.row[0].info_id,
|
||
area:res.row[0].region,
|
||
address:res.row[0].address,
|
||
customer_phone:res.row[0].phone,
|
||
})
|
||
} else {
|
||
that.setData({
|
||
customer_name: '',
|
||
address: '',
|
||
customer_id: 0
|
||
})
|
||
}
|
||
})
|
||
},
|
||
|
||
changeAddress(e) {
|
||
let that = this
|
||
that.setData({
|
||
address: e.detail.value
|
||
})
|
||
},
|
||
onClose() {
|
||
let that = this
|
||
that.setData({
|
||
show: false
|
||
})
|
||
},
|
||
onClose2() {
|
||
let that = this
|
||
that.setData({
|
||
show2: false
|
||
})
|
||
},
|
||
onClose6() {
|
||
console.log(123);
|
||
let that = this
|
||
that.setData({
|
||
show3: false
|
||
})
|
||
},
|
||
onClose4() {
|
||
let that = this
|
||
that.setData({
|
||
show4: false
|
||
})
|
||
},
|
||
changeShow3() {
|
||
let that = this
|
||
that.setData({
|
||
show3: true
|
||
})
|
||
},
|
||
changeShow4() {
|
||
let that = this
|
||
that.setData({
|
||
show4: true
|
||
})
|
||
},
|
||
|
||
onInput(event) {
|
||
let that = this
|
||
const date = new Date(event.detail); // 获取选中的 Date 对象
|
||
const year = date.getFullYear(); // 获取年份
|
||
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,所以需要+1
|
||
const day = String(date.getDate()).padStart(2, '0');
|
||
const hours = String(date.getHours()).padStart(2, '0'); // 小时补零
|
||
const minutes = String(date.getMinutes()).padStart(2, '0'); // 分钟补零
|
||
const time = `${year}-${month}-${day} ${hours}:${minutes}`;
|
||
that.setData({
|
||
time,
|
||
show4: false
|
||
})
|
||
},
|
||
|
||
headerAreaClick() {
|
||
this.setData({
|
||
show2: true
|
||
})
|
||
},
|
||
// 省市区选择器
|
||
bindChange(e) {
|
||
const { value } = e.detail;
|
||
const { cityList, areaList, businessList } = this.data;
|
||
// 每次切换时,根据当前点击的省过滤出所属市区,并且试试变化县/区
|
||
let newArea = areaList.filter((item) => item.city_id === cityList[value[0]].city_id);
|
||
let newbus = businessList.filter((item) => item.area_id === newArea[value[1]].area_id);
|
||
this.setData({
|
||
newAreaList: newArea,
|
||
newBusiness: newbus,
|
||
confirmCity: cityList[value[0]],
|
||
confirmArea: newArea[value[1]],
|
||
confirmBusiness: newbus[value[2]],
|
||
})
|
||
|
||
},
|
||
onOk() {
|
||
const { confirmCity, confirmArea, confirmBusiness } = this.data;
|
||
console.log(confirmCity, confirmArea, confirmBusiness);
|
||
this.setData({
|
||
show2: false,
|
||
area: `${confirmCity.name}${confirmArea.area_name}${confirmBusiness.business_name}`,
|
||
})
|
||
},
|
||
onClose3() {
|
||
this.setData({
|
||
show2: false,
|
||
})
|
||
},
|
||
getSSQ() {
|
||
let that = this
|
||
util.postUrl2(apiArr2.city, {}, res => {
|
||
util.postUrl2(apiArr2.area, {}, res1 => {
|
||
util.postUrl2(apiArr2.business, {}, res2 => {
|
||
wx.hideLoading();
|
||
// 省列表来自 res
|
||
let cityList = res.data.data.rows;
|
||
|
||
// 市列表来自 res1
|
||
let areaList = res1.data.data.rows;
|
||
// 区列表来自 res2
|
||
let businessList = res2.data.data.rows;
|
||
|
||
// 处理市列表,将衡水市放到最后
|
||
let hengshuiIndex = areaList.findIndex(item => item.name === '衡水市');
|
||
console.log(hengshuiIndex, 'hengshuiIndex');
|
||
if (hengshuiIndex !== -1) {
|
||
const hengshui = areaList.splice(hengshuiIndex, 1)[0];
|
||
areaList.push(hengshui);
|
||
}
|
||
|
||
console.log(businessList);
|
||
// 处理区列表,将衡水市的桃城区放到最后一个
|
||
let taochengIndex = businessList.findIndex(item => item.business_name === '桃城区');
|
||
if (taochengIndex !== -1) {
|
||
const taocheng = businessList.splice(taochengIndex, 1)[0];
|
||
businessList.unshift(taocheng);
|
||
}
|
||
|
||
|
||
// 默认展示第一条数据的省、市和区
|
||
let newArea = res1.data.data.rows.filter((item) => {
|
||
return item.city_id === res.data.data.rows[0].city_id
|
||
});
|
||
let newbus = res2.data.data.rows.filter((item) => {
|
||
return item.area_id === res1.data.data.rows[0].area_id
|
||
});
|
||
|
||
// 正确存储数据
|
||
wx.setStorageSync('cityList', cityList)
|
||
wx.setStorageSync('areaList', areaList)
|
||
wx.setStorageSync('businessList', businessList)
|
||
|
||
this.setData({
|
||
cityList: cityList,
|
||
areaList: areaList,
|
||
businessList: businessList,
|
||
newAreaList: newArea, // 默认展示市
|
||
newBusiness: newbus, // 默认展示区
|
||
confirmCity: cityList[0],
|
||
confirmArea: newArea[0],
|
||
confirmBusiness: newbus[0],
|
||
})
|
||
})
|
||
})
|
||
})
|
||
},
|
||
|
||
changeRemark(e) {
|
||
let that = this
|
||
that.setData({
|
||
remark: e.detail.value
|
||
})
|
||
},
|
||
|
||
confirmPackage3(e) {
|
||
console.log(e);
|
||
let that = this
|
||
that.setData({
|
||
masterInfo: e.detail.value,
|
||
show3: false
|
||
})
|
||
},
|
||
|
||
|
||
//套餐显示
|
||
changeShow1() {
|
||
let that = this
|
||
that.setData({
|
||
show: true
|
||
})
|
||
},
|
||
//套餐取消
|
||
cancel1() {
|
||
let that = this
|
||
that.setData({
|
||
show: false
|
||
})
|
||
},
|
||
confirmproduct(e) {
|
||
let that = this
|
||
that.setData({
|
||
product: e.detail.value,
|
||
show5: false,
|
||
})
|
||
},
|
||
confirmPackage(e) {
|
||
let that = this
|
||
that.setData({
|
||
package: e.detail.value,
|
||
show: false,
|
||
})
|
||
util.postUrl4(apiArr.getproductList, {
|
||
package_id: e.detail.value.package_id
|
||
}, res => {
|
||
console.log(res);
|
||
that.setData({
|
||
productList: res.rows
|
||
})
|
||
})
|
||
},
|
||
//获取套餐详情
|
||
getPackageList() {
|
||
let that = this
|
||
util.postUrl4(apiArr.getPackageList, {
|
||
dealer_id: that.data.admin.shop_id
|
||
}, res => {
|
||
|
||
if (res.msg == '操作成功') {
|
||
that.setData({
|
||
packageList: res.rows
|
||
})
|
||
}
|
||
})
|
||
},
|
||
|
||
|
||
getMasterList() {
|
||
let that = this
|
||
util.postUrl4(apiArr.getMasterList, {
|
||
page_num: 1,
|
||
page_size: 50,
|
||
dealer_id: that.data.admin.shop_id
|
||
}, res => {
|
||
if (res.msg == '操作成功') {
|
||
that.setData({
|
||
masterList: res.rows
|
||
})
|
||
}
|
||
})
|
||
},
|
||
|
||
submit() {
|
||
let that = this
|
||
|
||
if (!that.data.package) {
|
||
return wx.showToast({
|
||
title: '请选择套餐',
|
||
icon: "none"
|
||
})
|
||
}
|
||
if (!that.data.product) {
|
||
return wx.showToast({
|
||
title: '请选择产品',
|
||
icon: "none"
|
||
})
|
||
}
|
||
if (!that.data.customer_name) {
|
||
return wx.showToast({
|
||
title: '请输入客户姓名',
|
||
icon: "none"
|
||
})
|
||
}
|
||
if (!that.data.customer_phone) {
|
||
return wx.showToast({
|
||
title: '请输入客户电话',
|
||
icon: "none"
|
||
})
|
||
}
|
||
if (!util.isPhone(that.data.customer_phone)) {
|
||
return wx.showToast({
|
||
title: '请输入正确客户电话',
|
||
icon: "none"
|
||
})
|
||
}
|
||
if (!that.data.area) {
|
||
return wx.showToast({
|
||
title: '请选择所在区域',
|
||
icon: "none"
|
||
})
|
||
}
|
||
if (!that.data.address) {
|
||
return wx.showToast({
|
||
title: '请输入详细地址',
|
||
icon: "none"
|
||
})
|
||
}
|
||
if (!that.data.masterInfo) {
|
||
return wx.showToast({
|
||
title: '请选择维修师傅',
|
||
icon: "none"
|
||
})
|
||
}
|
||
if (!that.data.time) {
|
||
return wx.showToast({
|
||
title: '请选择预约时间',
|
||
icon: "none"
|
||
})
|
||
}
|
||
|
||
util.postUrl4(apiArr.createNewOrder, {
|
||
packages_id: that.data.package.package_id,
|
||
product_id: that.data.product.product_id,
|
||
customer_id: that.data.customer_id,
|
||
customer_name: that.data.customer_name,
|
||
customer_phone: that.data.customer_phone,
|
||
region: that.data.area,
|
||
address: that.data.address,
|
||
remark: that.data.remark,
|
||
repairman_id: that.data.masterInfo.info_id,
|
||
dealer_id: that.data.admin.shop_id,
|
||
city_id: that.data.confirmCity.city_id,
|
||
area_id: that.data.confirmArea.area_id,
|
||
business_id: that.data.confirmBusiness.business_id,
|
||
appointment_time: that.data.time + ':00',
|
||
user_id: wx.getStorageSync('userId') ? wx.getStorageSync('userId') : 0,
|
||
}, res => {
|
||
console.log(res);
|
||
if (res.msg == '操作成功') {
|
||
wx.showToast({
|
||
title: '创建成功!',
|
||
icon: "none"
|
||
})
|
||
// wx.navigateBack({ //返回上一页
|
||
// delta: 1
|
||
// })
|
||
setTimeout(()=>{
|
||
wx.navigateTo({
|
||
url: `/packages/partner/pages/OrderMsgInfo/OrderMsgInfo?type=0&id=${res.install_id}`,
|
||
})
|
||
},1500)
|
||
|
||
} else {
|
||
wx.showToast({
|
||
title: '创建失败!',
|
||
icon: "none"
|
||
})
|
||
}
|
||
})
|
||
},
|
||
|
||
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad(options) {
|
||
let that = this
|
||
that.setData({
|
||
admin: wx.getStorageSync('admin')
|
||
})
|
||
console.log(apiArr.getPackageList,'asd');
|
||
|
||
that.getPackageList()
|
||
that.getMasterList()
|
||
|
||
if (wx.getStorageSync('cityList') && wx.getStorageSync('areaList') && wx.getStorageSync('businessList')) {
|
||
let res = wx.getStorageSync('cityList')
|
||
let res1 = wx.getStorageSync('areaList')
|
||
let res2 = wx.getStorageSync('businessList')
|
||
console.log(res1);
|
||
// 默认展示第一条数据 的市区 和 城区
|
||
let newArea = res1.filter((item) => {
|
||
return item.city_id === res[0].city_id
|
||
});
|
||
let newbus = res2.filter((item) => {
|
||
return item.area_id === res1[0].area_id
|
||
});
|
||
this.setData({
|
||
cityList: res,
|
||
areaList: res1,
|
||
businessList: res2,
|
||
newAreaList: newArea, // 默认展示 市区
|
||
newBusiness: newbus, // 默认展示 县/区
|
||
confirmCity: res1[0],
|
||
confirmArea: newArea[0],
|
||
confirmBusiness: newbus[0],
|
||
})
|
||
} else {
|
||
that.getSSQ()
|
||
}
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage() {
|
||
|
||
}
|
||
}) |