患者1.2

This commit is contained in:
zoujiandong
2024-01-10 08:57:23 +08:00
parent 49c01e8922
commit 5d865d1bbb
339 changed files with 23720 additions and 267 deletions
@@ -0,0 +1,643 @@
// pages/medinceOrderDetail/medinceOrderDetail.js
const app = getApp()
import {detectionDetail,bindCheck,cancelCheckPay,delCheckOrder,cancelCheckOrder,checkInquiry} from "../../../api/checkSugar.js"
import {cancelPay} from "../../../api/consultOrder"
import {cancelOrder} from "../../../api/consultOrder"
import {fllowDoctor,notfllowDoctor} from "../../../api/consultExpert"
import {throttle} from "../../../utils/util"
import {getSign} from "../../../api/common"
import Dialog from '@vant/weapp/dialog/dialog';
Page({
/**
* 页面的初始数据
*/
data: {
time: 30 * 60 * 60 * 1000,
showCover:true,
isWait:true,
cancelBtn:false,
order:{},
showError:false,
pay_money:0,
fileList:[],
checkSatus:1,
showCheckDialog:false,
checkmessage:'',
detection_bar_code:'',
detection_code:'',
order_detection_id:'',
showDialog:false,
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链接列表
})
},
uploadFile(File) {
wx.showLoading({
title: '图片上传中...',
mask: true
})
let THIS = this;
getSign({
user_type: 1,
scene: 4
}).then((resdata) => {
let {
accessid,
dir,
policy,
signature,
host
} = resdata;
let index = File.lastIndexOf("/");
let filename = File.substring(index + 1, File.length);
return new Promise((resolve, reject) => {
wx.uploadFile({
url: host, // 仅为示例,非真实的接口地址
filePath: File,
name: 'file',
formData: {
OSSAccessKeyId: accessid,
policy,
key: dir + filename,
signature
},
success(res) {
if (res.statusCode === 204) {
let url = host + '/' + dir + filename;
THIS.setData({
fileList: THIS.data.fileList.concat([url])
})
}
},
fail: err => {
console.log(err);
}
});
})
})
},
upload() {
if(this.data.fileList.length>=3){
wx.showToast({
title: '检测管照片最多上传3张',
icon:"none"
})
return false
};
let THIS = this;
wx.chooseMedia({
count: 3-this.data.fileList.length,
mediaType: ['image'],
sourceType: ['album', 'camera'],
success(res) {
var imgList = res.tempFiles;
var promiseFun = [];
for (let i = 0; i < imgList.length; i++) {
var file = imgList[i].tempFilePath;
promiseFun.push(
THIS.uploadFile(file)
)
};
Promise.all(promiseFun).then((res) => {
wx.showToast({
title: '图片上传成功',
icon: "none"
})
wx.hideLoading();
});
}
})
},
goBack(){
let {fromType}=this.data;
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='/'+url+"?fromType="+url;
}
//处理聊天收到消息不及时;
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',
})
}
})
}
}
},
bluript(event){
const {value}=event.detail;
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)$/;
let detection_status=this.data.order.detection_status;
if(detection_status!=3){
if(reg.test(value)){
this.setData({
showError:false
})
}else{
this.setData({
showError:true
})
}
}
},
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()
})
},
handleCheckInquiry:throttle(function(){
let id=this.data.order.order_detection_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)
// })
}),
handleBindCheck:throttle(function(){
let id=this.data.order.order_detection_id;
let detection_status=this.data.order.detection_status;
if(detection_status==3){
wx.showToast({
title: '您已提交,请等待结果',
icon:"none"
})
return false
}
const {detection_bar_code,fileList}=this.data;
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)$/;
if(!reg.test(detection_bar_code)){
wx.showToast({
title: '检测码格式不正确',
icon:"none"
})
this.setData({
showError:true
})
return false
}
bindCheck(id,{
detection_bar_code,
detection_pic:fileList
}).then(data=>{
this.handleDetectionDetail();
wx.showToast({
title: '提交成功',
icon:"none"
})
})
}),
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: '/pages/sugarDetail/sugarDetail',
})
}),
goExpert:throttle(function(){
let id=this.data.user_doctor.doctor_id;
app.method.navigateTo({
url: '/pages/expertDetail/expertDetail?doctor_id='+id,
})
}),
handleDetectionDetail(flag=false){
let id =this.data.order_detection_id;
detectionDetail(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:"是否确定要取消检测?"
})
},
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_detection_id;
cancelCheckOrder(id).then(data=>{
wx.showToast({
title: '取消成功',
icon:"none"
})
if(!flag){
this.goChat();
}
this.handleDetectionDetail();
})
},
handelCancelPayProduct(flag=true){
let id =this.data.order.order_detection_id;
cancelCheckPay(id).then(data=>{
wx.showToast({
title: '取消支付成功',
icon:"none"
})
if(!flag){
this.handleCheckInquiry();
}
this.handleDetectionDetail();
})
},
copy(event){
let text=event.target.dataset.text;
wx.setClipboardData({
data:text
})
},
goPay:throttle(function(){
let {order_detection_id,detection_no}=this.data.order;
app.method.navigateTo({
url: '/pages/payOrder/payOrder?inquiry_no='+ detection_no +"&order_detection_id="+order_detection_id+"&order_type=3&fromType="+encodeURIComponent('/sugarCheck/pages/checkOrder/checkOrder')
})
}),
handelDelProduct(){
let id =this.data.order.order_detection_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: '/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) {
const cover=wx.getStorageSync('showCover');
if(cover){
this.setData({
showCover:false
})
}
if(options.fromType){
this.setData({
fromType:options.fromType
})
}
let order_detection_id=options.order_detection_id;
console.log(order_detection_id)
if(order_detection_id){
this.setData({
order_detection_id
});
this.handleDetectionDetail();
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
this.setData({
img_host:app.hostConfig().imghost
});
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
})