700 lines
18 KiB
JavaScript
700 lines
18 KiB
JavaScript
// pages/medinceOrderDetail/medinceOrderDetail.js
|
||
const app = getApp()
|
||
import {serviceDetail,cancelCheckPay,delCheckOrder,cancelCheckOrder,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:throttle(function(){
|
||
let {order_service_no}=this.data.order;
|
||
|
||
checkService(order_service_no).then((res)=>{
|
||
if(res.status==1){
|
||
console.log(res.data.order_no)
|
||
this.setData({
|
||
showWarn:true,
|
||
status:1,
|
||
confirmText:'前往',
|
||
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.user_doctor.user_id;
|
||
// /TUIService/pages/index?currentConversationID='+currentConversationID+'&order_inquiry_id='+custom.order_inquiry_id+'&inquiry_type='+custom.inquiry_type
|
||
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){
|
||
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()
|
||
})
|
||
},
|
||
|
||
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?5:4;
|
||
let inquiry_mode=order_service_type==1?9:8;
|
||
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')+"&inquiry_mode="+inquiry_mode
|
||
})
|
||
}),
|
||
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() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
|
||
}) |