zoujiandong 6b055ab03d 4.23
2024-04-23 16:03:20 +08:00

729 lines
18 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.

// pages/medinceOrderDetail/medinceOrderDetail.js
const app = getApp()
import {serviceDetail,cancelCheckPay,delCheckOrder,cancelCheckOrder,checkInquiry,serviceEquityDetail,createServiceChatOrder,checkService} from "../../../api/health"
import {cancelPay} from "../../../api/consultOrder"
import {cancelOrder} from "../../../api/consultOrder"
import {fllowDoctor,notfllowDoctor} from "../../../api/consultExpert"
import {throttle} from "../../../utils/util"
import Dialog from '@vant/weapp/dialog/dialog';
Page({
/**
* 页面的初始数据
*/
data: {
confirmText:'确定',
restProduct:0,
showMoneyDetail:true,
status:'',
order_no:'',
showWarn:false,
order_inquiry_id:'',
messageWarn:'',
showJuan:true,
time: 30 * 60 * 60 * 1000,
showCover:true,
showExpand:true,
isWait:true,
cancelBtn:false,
order:{},
equity:{},//权益
showError:false,
showProduct:true,
productList:[],
yaoList:[],
pay_money:0,
fileList:[],
checkSatus:1,
showCheckDialog:false,
checkmessage:'',
detection_bar_code:'',
detection_code:'',
order_service_id:'',
showDialog:false,
inquiryList:[],
toggleList:[],
juanList:[{
id:1,
name:'1、价值5元的全品类药品优惠劵2张'
},{
id:2,
name:' 2、价值100元的肝胆商城优惠劵1张'
}],
message:'',
fromType:'',
user_doctor:{},
order:{},
patient_family_data:'',
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static'
},
onClickHide() {
this.setData({ showCover: false });
wx.setStorageSync("showCover",true);
},
closeError(){
this.setData({ showError: false });
},
delImg(event) {
let id = event.currentTarget.dataset.id;
this.data.fileList.splice(id, 1);
this.setData({
fileList: this.data.fileList
})
},
previewImage(event) {
let id = event.currentTarget.dataset.id;
let urls = this.data.fileList;
wx.previewImage({
current: urls[id], // 当前显示图片的http链接
urls: urls // 需要预览的图片http链接列表
})
},
toggleDetail(){
this.setData({
showMoneyDetail:!this.data.showMoneyDetail
})
},
toggleJuan(){
this.setData({
showJuan:!this.data.showJuan
})
let arr=[{
id:1,
name:'1、价值5元的全品类药品优惠劵2张'
},{
id:2,
name:' 2、价值100元的肝胆商城优惠劵1张'
}]
if(!this.data.showJuan){
this.setData({
juanList:arr.slice(0,1)
})
}else{
this.setData({
juanList:arr
})
}
},
toggleExpand(){
this.setData({
showExpand:!this.data.showExpand
})
let list=this.data.toggleList;
if(!this.data.showExpand){
this.setData({
inquriyList:list.slice(0,1)
})
}else{
this.setData({
inquriyList:list
})
}
},
toggleProduct(){
this.setData({
showProduct:!this.data.showProduct
})
let list=this.data.yaoList;
if(!this.data.Product){
this.setData({
productList:list.slice(0,1)
})
}else{
this.setData({
productList:list
})
}
},
goApp:throttle(function(e){
wx.navigateToMiniProgram({
appId: 'wxdee7006582529713',
path:'/pages/index/index',
envVersion: 'release',
success(res) {
// 打开成功
}
})
}),
goWelfare:throttle(function(e){
app.method.navigateTo({
url:'/patient/pages/myWelfare/myWelfare'
})
}),
goInquiry:throttle(function(e){
let {id}=e.currentTarget.dataset;
app.method.navigateTo({
url:'/patient/pages/orderDetail/orderDetail?order_inquiry_id='+id
})
}),
goProduct:throttle(function(e){
let {id}=e.currentTarget.dataset;
app.method.navigateTo({
url:'/patient/pages/medinceOrderDetail/medinceOrderDetail?order_product_id='+id
})
}),
goHasOrder(){
let status=this.data.status;
let {order_service_type,user_doctor,order_service_no}=this.data.order;
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,
})
}else if(status==1){
let id=this.data.order_no;
this.handleCreateServiceChatOrder(id)
}else if(status==3){
let doctor_id=this.data.order.user_doctor.doctor_id;
app.method.navigateTo({
url:'/patient/pages/expertDetail/expertDetail?doctor_id='+doctor_id
})
}
},
handleCheckService(){
let {order_service_no}=this.data.order;
checkService(order_service_no).then((res)=>{
if(res.status==1){
this.setData({
showWarn:true,
status:5,
confirmNext:'前往',
order_no:res.data.order_no,
messageWarn:'是否使用剩余问诊次数?'
})
}else if(res.status==2){
this.setData({
showWarn:true,
order_no:res.data.order_no,
status:2,
confirmText:'确定',
messageWarn:res.message
})
}else if(res.status==3){
this.setData({
showWarn:true,
status:3,
confirmNext:'前往',
messageWarn:'本月问诊次数已用完,您可选择医生其他服'
})
}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,
confirmText:'确定',
messageWarn:res.message
})
}
})
},
goXuFei:throttle(function(){
let {order_service_type,user_doctor,amount_total}=this.data.order;
let url=order_service_type==2?'/healthyService/pages/visitDetail/visitDetail?doctor_id='+user_doctor.doctor_id:'/healthyService/pages/healthyDetail/healthyDetail?doctor_id='+user_doctor.doctor_id+"&price="+amount_total
app.method.navigateTo({
url:url
})
}),
handleCreateServiceChatOrder(id){
createServiceChatOrder(id).then(res=>{
let order_inquiry_id=res.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=1&fromType=chat"
})
})
},
goBack(){
let {fromType}=this.data;
console.log(fromType)
if(app.globalData.origion==1){
wx.reLaunch({
url: '/pages/index/index',
})
}else if(app.globalData.origion==2){
wx.reLaunch({
url: '/pages/index/index',
})
}else{
if(fromType){
let url=decodeURIComponent(fromType);
let goUrl='';
if(url.indexOf('?')!=-1){
goUrl='/'+url+"&fromType="+url;
}else{
goUrl='/healthyService/pages/healthyOrder/healthyOrder'
}
console.log(goUrl)
//处理聊天收到消息不及时;
if(url.indexOf("TUIService/pages/index")!=-1){
app.method.navigateTo({
url:goUrl
})
}else{
wx.redirectTo({
url: goUrl
})
}
}else{
wx.navigateBack({
delta: 1,
fail:function(){
wx.reLaunch({
url: '/pages/index/index',
})
}
})
}
}
},
handelServiceEquityDetail(id){
serviceEquityDetail(id).then(res=>{
let package_product=res.order_service_package_product;
console.log(res.order_inquiry);
this.setData({
equity:res,
inquriyList:res.order_inquiry,
toggleList:res.order_inquiry,
productList:res.order_product,
yaoList:res.order_product,
restProduct:package_product.length>0?package_product[0].quantity-package_product[0].used_quantity:0
})
})
},
chnageIpt(event){thi.se
const {value}=event.detail;
this.setData({
detection_bar_code:value
})
},
handleCancelInquiryPay(){
let {order_inquiry_id} = this.data;
cancelPay(order_inquiry_id).then(data=>{
wx.showToast({
title: '取消支付成功',
icon:'none'
})
this.handleCheckInquiry();
})
},
handelCancelInquiryOrder(){
let id=this.data.order_inquiry_id;
cancelOrder(id).then(data=>{
wx.showToast({
title: '订单取消成功',
icon:"none"
});
//this.handleCheckInquiry();
// this.goChat()
})
},
handleCheckInquiry:throttle(function(){
let id=this.data.order.order_service_id;
checkInquiry(id).then(data=>{
console.log(data);
if(data.status==1){
this.setData({
order_inquiry_id:data.data,
})
this.goChat();
}else if(data.status==2){
this.setData({
showCheckDialog:true,
order_inquiry_id:data.data,
checkSatus:2,
checkmessage:'当前医生有您待支付的订单,点击“继续”将为您取消订单直接进入报告解读服务。'
})
}else if(data.status==3){
this.setData({
checkSatus:3,
showCheckDialog:true,
order_inquiry_id:data.data,
checkmessage:'当前医生有您待接诊的订单,点击“继续”将为您取消订单直接进入报告解读服务。'
})
}else if(data.status==4){
this.setData({
showCheckDialog:true,
checkSatus:4,
order_inquiry_id:data.data,
checkmessage:'当前医生有您接诊中的订单,点击“继续”将为您直接进入报告解读服务。'
})
}
})
},1000),
goReport:throttle(function(){
wx.showLoading({
mask:true,
title: '正在打开文件...',
});
let url=this.data.order.detection_result_pdf;
const randfile = new Date().getTime() + '检测报告';
const newPath = `${wx.env.USER_DATA_PATH}/${randfile}`;
wx.downloadFile({
// 示例 url并非真实存在
url:url,
filePath: newPath,
success: function (res) {
//const filePath = res.tempFilePath
wx.openDocument({
fileType:"pdf",
showMenu:true,
filePath: newPath,
success: function (res) {
wx.hideLoading()
console.log('打开文档成功')
},
fail:function(error){
wx.hideLoading()
wx.showToast({
title:res,
icon:"none"
})
}
})
},
fail:function(error){
wx.showToast({
title:error,
icon:"none"
})
}
})
// app.method.navigateTo({
// url:"/pages/linkPage/linkPage?url="+encodeURIComponent(url)
// })
}),
goChat:throttle(function(){
let {user_id}=this.data.user_doctor;
let order_inquiry_id=this.data.order.order_inquiry_id;
let anther_order_inquiry_id=this.data.order_inquiry_id;
let id='';
if(!order_inquiry_id && !anther_order_inquiry_id){
wx.showToast({
title: '服务器错误',
icon:'none'
});
return false
};
if(order_inquiry_id){
id=order_inquiry_id
}else if(anther_order_inquiry_id){
id=anther_order_inquiry_id
}
app.method.navigateTo({
url: '/TUIService/pages/index?currentConversationID=' + user_id + "&order_inquiry_id=" + id+ "&inquiry_type=5"
})
}),
orderMsg(){
wx.requestSubscribeMessage({
tmplIds: ['82rKSdbKkbFK_tHmIMnHyfyRJq9ujvmAsTjRHdxmCdE'],
success (res) {
Dialog.confirm({
title: '温馨提示',
confirmButtonOpenType:'contact',
message: '立即联系客服',
}).then(() => {
// on confirm
}).catch(()=>{
})
}
})
},
goSugar:throttle(function(){
app.method.navigateTo({
url: '/sugarCheck/pages/sugarDetail/sugarDetail',
})
}),
goExpert:throttle(function(){
let id=this.data.user_doctor.doctor_id;
app.method.navigateTo({
url: '/patient/pages/expertDetail/expertDetail?doctor_id='+id,
})
}),
handleServiceDetail(flag=false){
let id =this.data.order_service_id;
serviceDetail(id).then(data=>{
if(flag){
let pages = getCurrentPages();
let prevPage = pages[pages.length - 2]; //上一页
prevPage.setData({
changeStatus:data.detection_status,
changeId:id
});
};
let pay_money=(Number(data.amount_total)-Number(data.coupon_amount_total)).toFixed(2);
this.setData({
order:data,
detection_bar_code:data.detection_bar_code,
user_doctor:data.user_doctor,
pay_money
});
if(data.detection_pic && data.detection_pic.length>0){
this.setData({
fileList:data.detection_pic
})
}
})
},
goScan:throttle(function(){
let that=this;
wx.scanCode({
onlyFromCamera: true,
scanType:['qrCode','barCode','datamatrix','pdf417'],
success (res) {
const reg=/^SDB[A-Z](?:2[3-9]|2[0-2])[SP](?:1688[6-9]|1689\d|169\d\d|1[7-9]\d\d\d|[2-9][0-9]{4}|99999)$/;
console.log(res.result);
if(reg.test(res.result)){
that.setData({
detection_bar_code:res.result,
showCode:true,
showError:false
})
}else{
that.setData({
showDialog:true,
cancelBtn:false,
message:'无法识别,请手动输入检测码'
})
}
}
})
}),
confirmCancelOrder(){
this.setData({
showDialog:true,
cancelBtn:true,
message:"是否确定要取消订单?"
})
},
goChat:throttle(function(){
let user_id=this.data.order.user_id;
app.method.navigateTo({
url: '/TUIService/pages/index?currentConversationID=' + user_id + "&order_inquiry_id=" + id+ "&inquiry_type=1"
})
}),
goSickInfo(event){
let order_no=this.data.order_service_id;
app.method.navigateTo({
url: '/healthyService/pages/sickInfo/sickInfo?order_no='+order_no
})
},
confirmDelOrder(){
this.setData({
showDialog:true,
cancelBtn:true,
message:"您确定是要删除订单记录么?"
})
},
confirmCancelPay(){
this.setData({
showDialog:true,
cancelBtn:true,
message:"您确定取消支付么?"
})
},
confirm:throttle(function(event){
if(event.detail && this.data.message=="您确定是要删除订单记录么?"){
this.handelDelProduct();
}else if(event.detail && this.data.message=="您确定取消支付么?"){
this.handelCancelPayProduct();
}else if(event.detail && this.data.message=="是否确定要取消订单?"){
this.handelCancelCheckOrder();
}
}),
//未支付2 //待接诊需要重新请求检测订单3
confirmCheck:throttle(function(){
if(this.data.checkSatus==2){
this.handleCancelInquiryPay();
}else if(this.data.checkSatus==3){
this.handelCancelInquiryOrder();
}else if(this.data.checkSatus==4){
this.goChat();
}
}),
handelCancelCheckOrder(flag=true){
let id =this.data.order.order_service_no;
cancelCheckOrder(id).then(data=>{
wx.showToast({
title: '取消成功',
icon:"none"
})
this.handleServiceDetail();
})
},
handelCancelPayProduct(flag=true){
let id =this.data.order.order_service_no;
cancelCheckPay(id).then(data=>{
wx.showToast({
title: '取消支付成功',
icon:"none"
})
if(!flag){
this.handleCheckInquiry();
}
this.handleServiceDetail();
})
},
copy(event){
let text=event.target.dataset.text;
wx.setClipboardData({
data:text
})
},
goPay:throttle(function(){
let {order_service_id,order_service_no,order_service_type}=this.data.order;
let order_type=order_service_type==1?4:5;
app.method.navigateTo({
url: '/patient/pages/payOrder/payOrder?inquiry_no='+ order_service_no +"&order_service_id="+order_service_no+"&order_type="+order_type+"&fromType="+encodeURIComponent('healthyService/pages/healthyOrder/healthyOrder')
})
}),
handelDelProduct(){
let id =this.data.order.order_service_id;
delCheckOrder(id).then(data=>{
let pages = getCurrentPages();
//获取所需页面
let prevPage = pages[pages.length - 2]; //上一页
prevPage.setData({
delId: id//需要传过去的数据
});
wx.navigateBack({
delta: 1,
})
wx.showToast({
title: '订单删除成功',
icon:"none"
});
})
},
goPrescriptionDetail:throttle(function(event){
let id=event.currentTarget.dataset.id;
app.method.navigateTo({
url: '/patient/pages/prescriptDetail/prescriptDetail?order_prescription_id='+id,
})
}),
handelfllowDoctor(){
let id=this.data.user_doctor.doctor_id
fllowDoctor(id).then(data=>{
this.setData({
"user_doctor.follow":true
})
wx.showToast({
title: '关注成功',
icon:"none"
})
})
},
handenotfllowDoctor(){
let id=this.data.user_doctor.doctor_id;
notfllowDoctor(id).then(data=>{
this.setData({
"user_doctor.follow":false
})
wx.showToast({
title: '已取消关注',
icon:"none"
})
})
},
toggleFllow(){
if(this.data.order.user_doctor.follow){
this.handenotfllowDoctor()
}else{
this.handelfllowDoctor()
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
if(options.fromType){
this.setData({
fromType:options.fromType
})
}
let order_service_id=options.order_service_id;
console.log(order_service_id)
if(order_service_id){
this.setData({
order_service_id
});
this.handleServiceDetail();
this.handelServiceEquityDetail(order_service_id)
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
this.setData({
img_host:app.hostConfig().imghost
});
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
})