2023-11-17 09:51:35 +08:00

277 lines
5.6 KiB
JavaScript

// pages/allotDoctor/allotDoctor.js
const app = getApp()
import {
assignDoctor
} from "../../api/consult"
import {
doctorDetail,
fllowDoctor,
notfllowDoctor
} from "../../api/consultExpert"
import {throttle} from "../../utils/util"
import {cancelOrder} from "../../api/consultOrder"
Page({
/**
* 页面的初始数据
*/
data: {
order_inquiry_id: "",
doctor_id: '',
showDialog: false,
order_type: '',
fromType:'',
chat_id: '',
time: 0,
timeData: {},
allotCountDown:300000,
countDown:3000,
isAllot: 1, //1分配 //2 分配成功 //3分配超时
isLock: false,
timer: null,
timer2: null,
countTime: 0,
doctor: {
avatar: '',
user_name: '',
doctor_title_name: '',
department_custom_name: '',
hospital: {},
multi_point_status: null,
multi_point_enable:0,
follow: false
},
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static'
},
getDeatil(id) {
doctorDetail(id).then((res) => {
let doctor = this.data.doctor;
for (const key in doctor) {
let item=`doctor.${key}`;
if (res[key]) {
this.setData({
[item]: res[key]
})
}
};
})
},
toggleFllow() {
if (this.data.doctor.follow) {
this.handenotfllowDoctor()
} else {
this.handelfllowDoctor()
}
},
handelCancelOrder(){
let { order_inquiry_id, fromType} = this.data;
cancelOrder(order_inquiry_id).then(data=>{
app.method.navigateTo({
url: '/pages/orderDetail/orderDetail?order_inquiry_id='+order_inquiry_id+"&fromType="+fromType,
})
})
},
handelfllowDoctor() {
let id = this.data.doctor_id
fllowDoctor(id).then(data => {
this.setData({
"doctor.follow": true
})
wx.showToast({
title: '关注成功',
icon: "none"
})
})
},
handenotfllowDoctor() {
let id = this.data.doctor_id;
notfllowDoctor(id).then(data => {
this.setData({
"doctor.follow": false
})
wx.showToast({
title: '已取消关注',
icon: "none"
})
})
},
close(event) {
this.handelCancelOrder();
},
confirm(){
this.setData({
showDialog:false
})
},
goDetail:throttle(function(){
let {
order_inquiry_id,
fromType
} = this.data;
app.method.navigateTo({
url: '/pages/orderDetail/orderDetail?order_inquiry_id='+order_inquiry_id+"&fromType="+fromType
})
}),
finished(){
this.goChat();
},
finishedAllot(){
clearTimeout(this.data.timer);
this.setData({
isAllot: 3
})
},
onChangeCountDown(e){
let time=e.detail;
this.setData({
timeData:time
})
if(time.minutes==3 && time.seconds==0)
this.setData({
showDialog: true
})
},
//计算请求时间
countReqTime() {
var timer2 = setInterval(() => {
let countTime = this.data.countTime;
if (this.data.time >= 180000) {
this.setData({
isAllot: 3
})
};
if (this.data.time >= 300000) {
clearTimeout(this.data.timer);
this.setData({
showDialog: true
})
};
let currentTime = this.data.time + 1000;
this.setData({
time: currentTime
})
this.setData({
countTime: ++countTime
});
}, 1000);
this.setData({
timer2: timer2
})
},
//定时发送请求
reqCount(order_id){
var timer = setInterval(() => {
this.handelAssignDoctor(order_id);
}, 10000);
this.setData({
timer: timer
})
},
handelAssignDoctor(id) {
assignDoctor(id).then(data => {
if (data.user_id) {
this.setData({
chat_id: data.user_id,
doctor_id: data.doctor_id,
isAllot: 2
})
this.getDeatil(data.doctor_id);
let {timer, timer2} = this.data;
clearInterval(timer);
clearInterval(timer2);
}
})
},
handleGochat(){
const countDown = this.selectComponent('.control-count-down');
countDown.pause();
this.goChat();
},
goChat(){
let {
order_inquiry_id,
inquiry_type,
chat_id,
fromType
} = this.data;
app.method.navigateTo({
url: '/TUIService/pages/index?currentConversationID=' + chat_id + "&order_inquiry_id=" + order_inquiry_id + "&inquiry_type=" + inquiry_type+"&fromType="+fromType
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let order_inquiry_id = options.order_inquiry_id;
let inquiry_type = options.inquiry_type;
let order_id = options.order_id;
if(options.fromType){
this.setData({
fromType:options.fromType
})
}
if (order_inquiry_id) {
this.setData({
order_inquiry_id,
order_id,
inquiry_type
})
this.handelAssignDoctor(order_id);
this.reqCount(order_id);
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
this.setData({
img_host:app.hostConfig().imghost
});
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
clearInterval(this.data.timer);
clearInterval(this.data.timer2)
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
})