2025-06-14 18:23:32 +08:00

501 lines
14 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.

// 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
})
that.searchCustomer(e.detail.value)
},
searchCustomer(e){
let that= this
util.postUrl4(apiArr.phoneSearch,{
phone:e
},res=>{
console.log(res);
if(res.row){
that.setData({
customer_name:res.row.name,
address:res.row.address,
customer_id:res.row.info_id,
})
}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
})
},
onClose3() {
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();
// 默认展示第一条数据 的市区 和 城区
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', res.data.data.rows)
wx.setStorageSync('areaList', res1.data.data.rows)
wx.setStorageSync('businessList', res2.data.data.rows)
this.setData({
cityList: res.data.data.rows,
areaList: res1.data.data.rows,
businessList: res2.data.data.rows,
newAreaList: newArea, // 默认展示 市区
newBusiness: newbus, // 默认展示 县/区
confirmCity: res1.data.data.rows[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
console.log(that.data.package.package_id);
console.log(that.data.masterInfo);
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"
})
setTimeout(()=>{
wx.navigateBack({
delta:1
})
},1500)
}else{
wx.showToast({
title: '创建失败!',
icon:"none"
})
}
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let that = this
that.setData({
admin: wx.getStorageSync('admin')
})
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()
}
// that.getSSQ()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})