2024-04-15 17:13:49 +08:00

397 lines
9.0 KiB
JavaScript

// healthyService/pages/healthyDetail/healthyDetail.js
import {doctorDetail} from "../../../api/consultExpert"
import {getItems,createServiceChatOrder} from "../../../api/health"
import {family,addfamily} from "../../../api/familyDoc";
import {getServiceDetail} from "../../../api/health"
import {throttle} from "../../../utils/util"
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
order_no:'',
order_inquiry_id:'',
chat_id:'',
status:'',
follow_package_item_id:'',
message:'',
showWarn:false,
img_host:app.hostConfig().imghost,
doctor_id:'',
currentData:0,
inquiry_mode:9,
inquiry_type:1,
current_price:'',
avatar: '',
user_name: '',
doctor_title: '',
doctor_id: '',
doctor_title_name:'',
user_id:'',
is_online:'0',
hospital: null,
priceList:[],
show:false,
currentFamilyId:'',
realName:'',
idCard:'',
phoneNumber:'',
relationId:'',
sex:'',
service_type:2,
chat_id:'',
img_host:app.hostConfig().imghost
},
inputChange(e) {
this.setData({
[e.target.dataset.id]: e.detail.value
})
},
goNext:throttle(function() {
this.handleGetServiceDetail();
}),
addFamily() {
let {
realName,
idCard,
phoneNumber,
relationId,
sex
} = this.data;
addfamily({
card_name: realName,
type: 1,
id_number: idCard,
mobile: phoneNumber,
is_default: 0,
relation: relationId
}).then((data) => {
this.getFamily();
this.setData({
currentFamilyId:data.family_id,
realName:'',
idCard:'',
phoneNumber:'',
relationId:'',
relation:'',
showAdd:false
})
})
},
goHasOrder(){
let status=this.data.status;
if(status==4){
let id=this.data.order_inquiry_id;
app.method.navigateTo({
url: '/patient/pages/orderDetail/orderDetail?order_inquiry_id='+id,
})
}else if(status==2){
let id=this.data.order_no;
app.method.navigateTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id='+id,
})
}
},
addPatient() {
this.setData({
showAdd: true,
currentFamilyId: '',
sex: ''
})
},
selectPatient(e) {
let currentFamilyId=e.currentTarget.dataset.familyid;
let sex=e.currentTarget.dataset.sex;
let name=e.currentTarget.dataset.name;
let age=e.currentTarget.dataset.age;
this.setData({
currentFamilyId:currentFamilyId,
sex:sex
})
},
transforpage(arr) {
const pages = []
let newArr = arr.concat([{
type: "add"
}])
newArr.forEach((item, index) => {
const page = Math.floor(index / 2)
if (!pages[page]) {
pages[page] = []
}
pages[page].push(item)
});
return pages
},
confirmNext() {
if (!/^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$/.test(this.data.realName)) {
wx.showToast({
title: `姓名要求在2-10个字符`,
icon: 'none',
});
return false;
};
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)) {
wx.showToast({
title: `请输入有效的身份证号`,
icon: 'none',
});
return false;
};
if (!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)) {
wx.showToast({
title: `请输入有效的手机号码!`,
icon: 'none',
});
return false;
}
},
getFamily() {
family().then((data) => {
this.setData({
family: this.transforpage(data)
})
})
},
goSick:throttle(function() {
if (!/^([\u4e00-\u9fa5\·]{2,10})$/.test(this.data.realName)) {
wx.showToast({
title: `姓名要求在2-10个汉字`,
icon: 'none',
});
return false;
};
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)) {
wx.showToast({
title: `请输入有效的身份证号`,
icon: 'none',
});
return false;
};
if (this.data.phoneNumber) {
if (!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)) {
wx.showToast({
title: `请输入有效的手机号码!`,
icon: 'none',
});
return false;
}
};
let idInfo = this.getIdInfo(this.data.idCard);
if (idInfo.age < 6) {
wx.showToast({
title: `六岁以下儿童不支持线上问诊`,
icon: 'none',
});
return false;
}
this.setData({
sex:idInfo.sex
})
this.addFamily()
}),
//获取身份证号信息
getIdInfo(IdCard) {
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (reg.test(IdCard)) {
let sex
if (parseInt(IdCard.substr(16, 1)) % 2 === 1) {
sex = '1'
} else {
sex = '2'
}
var ageDate = new Date()
var month = ageDate.getMonth() + 1
var day = ageDate.getDate()
var age = ageDate.getFullYear() - IdCard.substring(6, 10) - 1
if (IdCard.substring(10, 12) < month || (IdCard.substring(10, 12) === month && IdCard.substring(12, 14) <= day)) {
age++
}
if (age <= 0) {
age = 1
}
return {
sex,
age
}
} else {
return false;
}
},
onClose() {
this.setData({
show: false
});
},
onCloseAdd() {
this.setData({
showAdd: false
});
},
hanldeGetItems(id){
getItems(id).then(res=>{
let arr=res.map((item,index)=>{
return {
price:item.service_price+'元/'+ Number(item.service_period)/30+'月',
follow_package_item_id:item.follow_package_item_id,
service_price:item.service_price
}
});
this.setData({
priceList:arr,
current_price:res[0].service_price,
follow_package_item_id:res[0].follow_package_item_id
})
})
},
getDeatil(id) {
doctorDetail(id).then((res) => {
for (const key in this.data) {
if (res[key]) {
this.setData({
[key]: res[key]
})
}
};
this.setData({
chat_id:res.data.user_id
})
})
},
handleGetServiceDetail(){
let {doctor_id,currentFamilyId,service_type,follow_package_item_id,chat_id,sex,inquiry_mode,inquiry_type}=this.data;
getServiceDetail({
doctor_id,
family_id:currentFamilyId,
service_type,
follow_package_item_id
}).then((res)=>{
if(res.status==1){
app.method.navigateTo({
url:'/healthyService/pages/writeSick/writeSick?doctor_id='+doctor_id+"&family_id="+currentFamilyId+"&chat_id="+chat_id+"&inquiry_type="+inquiry_type+"&sex="+sex+"&inquiry_mode="+inquiry_mode+"&package_id="+follow_package_item_id
})
}else if(res.status==2){
this.setData({
showWarn:true,
order_no:res.data.order_no,
status:2,
message:res.message
})
}else if(res.status==3){
app.method.navigateTo({
url:'/patient/pages/expertDetail/expertDetail?doctor_id='+doctor_id
})
}else if(res.status==4){
this.setData({
showWarn:true,
order_no:res.data.order_no,
order_inquiry_id:res.data.order_inquiry_id,
status:4,
message:res.message
})
}else if(res.status==5){
this.handleCreateServiceChatOrder(res.data.order_no)
}
})
},
handleCreateServiceChatOrder(id){
createServiceChatOrder(id).then(res=>{
let order_inquiry_id=res.data.order_inquiry_id;
let chat_id=this.data.chat_id;
app.method.navigateTo({
url: '/TUIService/pages/index?currentConversationID=' + chat_id + "&order_inquiry_id=" + order_inquiry_id + "&inquiry_type=3&fromType=chat"
})
})
},
showPatient(){
this.setData({
show:true
})
},
choosePrice(e){
let {id,price}=e.currentTarget.dataset;
console.log(price);
this.setData({
follow_package_item_id:id,
current_price:price
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.setData({
doctor_id:options.doctor_id
})
this.getDeatil(options.doctor_id);
this.hanldeGetItems(options.doctor_id);
this.getFamily();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})