患者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() {
},
/**
* 用户点击右上角分享
*/
})
@@ -0,0 +1,12 @@
{
"usingComponents": {
"van-count-down": "@vant/weapp/count-down/index",
"dialog":"../../../components/dialog/dialog",
"van-dialog": "@vant/weapp/dialog/index",
"van-icon": "@vant/weapp/icon/index",
"van-overlay": "@vant/weapp/overlay/index"
},
"navigationStyle":"custom",
"disableScroll":true,
"navigationBarTitleText": "肝胆相照互联网医院"
}
@@ -0,0 +1,258 @@
<!--pages/medinceOrderDetail/medinceOrderDetail.wxml-->
<wxs src="../../../filters/filter.wxs" module="filter"></wxs>
<view class="ui-navigatorbar" style="border-bottom: 1rpx solid #E3E4E5;background:#fff;">
<image class="ui-navigatorbar-back" bindtap="goBack" src="../../assets/images/back.png" />
<view class="ui-title">订单详情</view>
</view>
<view class="page">
<view class="outwraper {{order.detection_status==2?'active':''}}">
<view class="patientbox">
<view class="patient_name">
就诊人信息
</view>
<view class="rightcon">
{{order.patient_name}}<text wx:if="{{order.patient_sex==1}}">男</text><text wx:elif="{{order.patient_sex==2}}">女</text><text wx:else>未知</text>{{order.patient_age}}岁)
</view>
</view>
<view class="bindbox" wx:if="{{order.detection_status==2 || order.detection_status==3 || order.detection_status==4}}">
<view class="tiptitle" wx:if="{{!showError}}">
<view class="tipleft">
绑定检测码
</view>
<!-- <view class="tipright">
查看手册
</view> -->
</view>
<view class="errorbox" wx:else="{{showError}}">
<view class="errorleft">
<image src="../../assets/images/check_error.png" class="checkerror" mode=""/>
<text>检测码有误,请重新输入</text>
</view>
<image src="../../assets/images/check_close.png" class="checkclose" mode="" bindtap="closeError"/>
</view>
<view class="iptbox {{showError?'active':''}}" >
<input type="text" value="{{detection_bar_code}}" class="ipt" placeholder="请输入检测码或扫描条形码绑定" bindinput="chnageIpt" bindblur="bluript" disabled="{{order.detection_status==3 || order.detection_status==4}}"/>
<view class="mybar" wx:if="{{order.detection_status==2}}"></view>
<image src="../../assets/images/scancode.png" class="scan" mode="" bindtap="goScan" wx:if="{{order.detection_status==2}}"/>
</view>
<view class="tiptitle" hidden="{{(order.detection_status==3 && fileList.length==0)|| (order.detection_status==4 && fileList.length==0)}}">
<view class="tipleft">
检测管照片
</view>
</view>
<view class="uploadbox">
<image wx:for="{{fileList}}" src="{{item}}" mode="aspectFill" class="upload" bindtap="previewImage" data-id="{{idx}}" wx:for-index="idx" wx:key="idx">
<image src="{{img_host+'/xiaoclose.png'}}" class="close" catchtap="delImg" data-id="{{idx}}"></image>
</image>
<view class="upload" bindtap="upload" wx:if="{{order.detection_status==2}}">
<van-icon name="plus" />
<view class="text">
上传
</view>
</view>
</view>
<view class="finish" wx:if="{{order.detection_status==3 || order.detection_status==4 }}">
<view class="left">预计检测完成时间</view>
<view class="right">{{order.detection_success_time}}</view>
</view>
</view>
<view class="rowbox">
<view class="titlebox">
<view class="name">订单信息</view>
<!-- 检测订单状态(1:待支付 2:待绑定 3:检测中 4:检测完成 5:已取消) -->
<!-- 支付状态(1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款) -->
<view class="status" wx:if="{{order.detection_status==1}}">
<view class="waitpay">待支付</view>
<view class="countdown">
<van-count-down time="{{filter.countDown(order.created_at)}}" />
</view>
</view>
<view class="status waitpay" wx:elif="{{order.detection_status==2}}">待绑定</view>
<view class="status waitpay" wx:elif="{{order.detection_status==3}}">检测中</view>
<view class="status" wx:elif="{{order.detection_status==4}}" style="color:#3CC7C0">检测完成</view>
<view class="status" wx:elif="{{order.detection_status==5 && order.detection_pay_status!=5 }}">取消检测</view>
<view class="status waitpay" wx:elif="{{order.detection_status==5 && order.detection_pay_status==5}}">支付超时</view>
</view>
<view class="row first">
<view class="namebox">
<view class="name">订单编号</view>
<view class="dot"></view>
</view>
<view class="rightbox">
<view class="desc">{{order.detection_no}}</view>
<view class="bar">
|
</view>
<view class="copy" bindtap="copy" data-text="{{order.detection_no}}">复制</view>
</view>
</view>
<view class="row">
<view class="namebox">
<view class="name">下单时间</view>
<view class="dot"></view>
</view>
<view class="desc rightbox">{{order.created_at}}</view>
</view>
<view class="row">
<view class="namebox">
<view class="name">问诊类型</view>
<view class="dot"></view></view>
<view class="desc">糖组检测</view>
</view>
<view class="row">
<view class="namebox">
<view class="name">订单金额</view>
<view class="dot"></view>
</view>
<view class="desc rightbox">¥{{order.amount_total}}</view>
</view>
<view class="row">
<view class="namebox">
<view class="name"><text>优</text><text>惠</text><text>券</text></view>
<view class="dot"></view>
</view>
<view class="desc rightbox" wx:if="{{order.coupon_amount_total>0}}">¥{{order.coupon_amount_total}}</view>
<view class="desc rightbox" wx:else>无</view>
</view>
<view class="row">
<view class="namebox">
<view class="name">支付金额</view>
<view class="dot"></view>
</view>
<view class="desc price rightbox">
¥{{pay_money}}
</view>
</view>
<view class="row beizhu" wx:if="{{order.cancel_reason}}">
<view class="namebox">
<view class="name"><text>备</text><text>注</text></view>
<view class="dot"></view>
</view>
<!-- 取消订单原因(1:主动取消 2:客服取消 3:支付超时) -->
<view class="desc rightbox" wx:if="{{order.cancel_reason==1}}">主动取消 </view>
<view class="desc rightbox" wx:elif="{{order.cancel_reason==2}}">客服取消</view>
<view class="desc rightbox" wx:elif="{{order.cancel_reason==3}}">支付超时</view>
</view>
<!-- 商品订单退款状态(0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭) -->
<view class="row" wx:if="{{order.cancel_reason==2}}">
<view class="namebox">
<view class="name">退款进度</view>
<view class="dot"></view>
</view>
<view class="desc rightbox" wx:if="{{order.detection_refund_status==0}}">
无退款
</view>
<view class="desc rightbox" wx:elif="{{order.detection_refund_status==1}}">
申请退款
</view>
<view class="desc rightbox" wx:elif="{{order.detection_refund_status==2}}">
退款中
</view>
<view class="desc rightbox" wx:elif="{{order.detection_refund_status==3}}">
退款成功
</view>
<view class="desc rightbox" wx:elif="{{order.detection_refund_status==4}}">
拒绝退款
</view>
<view class="desc rightbox" wx:elif="{{order.detection_refund_status==5}}">
退款关闭
</view>
</view>
<!-- 检测订单状态(1:待支付 2:待绑定 3:检测中 4:检测完成 5:已取消) -->
<view class="contactbox" wx:if="{{order.detection_status==3 || order.detection_status==4}}" bindtap="orderMsg">
<image src="../../assets/images/kefu.png" class="kefu" mode=""/>
<text>联系客服</text>
</view>
<view class="contactbox" wx:if="{{order.detection_status==2}}" bindtap="confirmCancelOrder">
<text>取消检测</text>
</view>
<view class="contactbox" wx:if="{{order.detection_status==5}}" bindtap="confirmDelOrder">
<text>删除订单</text>
</view>
</view>
<view class="personinfobox" bindtap="goExpert" wx:if="user_doctor && user_doctor.doctor_id">
<view class="namebox" style="justify-content: flex-start;">
<image src="{{user_doctor.avatar}}" class="head" wx:if="{{user_doctor.avatar}}" mode="aspectFill"></image>
<image src="{{img_host+'/doctor_avatar.png'}}" class="head" wx:else></image>
<view class="namewraper">
<view class="row">
<view class="name">{{user_doctor.user_name}}</view>
<view class="type" wx:if="{{user_doctor.hospital_level_name}}">{{user_doctor.hospital_level_name}}</view>
<view class="type" wx:if="{{user_doctor.multi_point_status == 1 && user_doctor.multi_point_enable==1}}">可处方</view>
</view>
<view class="hospital">
<!-- 1主任医师、2主任中医师、3副主任医师、4副主任中医师、5主治医师、8住院医师 -->
<text class="doctor_title" wx:if="{{user_doctor.doctor_title}}">{{user_doctor.doctor_title}}</text>
<text class="doctor_title" wx:elif="{{user_doctor.doctor_title==2}}">主任中医师</text>
<text>{{user_doctor.department_custom_name}}</text>
</view>
<view class="hospital">{{user_doctor.hospital_name}}</view>
</view>
<view class="guanzhu" wx:if="{{!user_doctor.follow}}" catchtap="toggleFllow">
<image src="{{img_host+'/star.png'}}" ></image>
<text decode="true">&nbsp;&nbsp;关注</text>
</view>
<view class="guanzhu" wx:else catchtap="toggleFllow">
<image src="{{img_host+'/star_on.png'}}" ></image>
<text decode="true">&nbsp;&nbsp;关注</text>
</view>
</view>
<!-- <view class="borderbox">
<view class="goodjob" style="margin-top: 30rpx;">
擅长:{{user_doctor.be_good_at}}
</view>
</view> -->
</view>
<view class="contactbox" style="border:none;" wx:if="{{order.detection_status==2}}" bindtap="orderMsg">
<image src="../../assets/images/kefu.png" class="kefu" mode=""/>
<text>联系客服</text>
</view>
</view>
</view>
<!-- 检测订单状态(1:待支付 2:待绑定 3:检测中 4:检测完成 5:已取消) -->
<view class="paybox" wx:if="{{order.detection_pay_status==1}}">
<view class="left" bindtap="confirmCancelPay">取消支付</view>
<view class="right" bindtap="goPay">
立即支付
<!-- :¥{{order.payment_amount_total}} -->
</view>
</view>
<view class="paybox" wx:if="{{order.detection_status==2 || order.detection_status==3}}">
<view class="submitbtn {{order.detection_status==3?'active':''}}" bindtap="handleBindCheck">提交</view>
</view>
<view class="paybox" wx:if="{{order.detection_status==4}}">
<view class="left" bindtap="goReport">查看报告</view>
<view class="right" bindtap="handleCheckInquiry">
<text>报告解读</text>
<image src="../../assets/images/freetalk.png" class="freetalk" alt=""/>
</view>
</view>
<view class="paybox" wx:if="{{order.detection_status==5}}">
<view class="submitbtn" bindtap="goSugar">重新检测</view>
</view>
<dialog bind:confirm="confirm" cancelBtn="{{cancelBtn}}" showDialog="{{showDialog}}" message="{{message}}"></dialog>
<van-dialog id="van-dialog" confirm-button-color="#3CC7C0" />
<van-overlay show="{{ showCover }}" wx:if="{{order.detection_status==2}}">
<view class="wrapper">
<image src="../../assets/images/mask_check1.png" mode="widthFix" class="timg1" lazy-load/>
<image src="../../assets/images/mask_check2.png" mode="widthFix" class="timg2" lazy-load/>
<view class="button" bindtap="onClickHide">
知道了
</view>
</view>
</van-overlay>
<van-dialog id="van-dialog" confirm-button-color="#3CC7C0" />
<dialog bind:confirm="confirmCheck" cancelBtn="{{true}}" showDialog="{{showCheckDialog}}" message="{{checkmessage}}" confirmtext="继续"></dialog>
@@ -0,0 +1,887 @@
/* pages/medinceOrderDetail/medinceOrderDetail.wxss */
/**app.wxss**/
.container {
padding-top: 135px;
padding-bottom: 10rpx;
/* top:280rpx; */
/* position: absolute; */
width:100%;
/* overflow-y: scroll; */
background: #F2F2F2;
}
input{
font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica,
}
page{
position: relative;
width:100%;
height:100%;
font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica,
Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei',
sans-serif;
}
.page{
width:100vw;
height:100vh;
background: #f2f2f2;
}
.contain{padding: 0 30rpx 0rpx;height: 100%;overflow: hidden;position: relative;}
::-webkit-scrollbar {
display: none;
width: 0;
height: 0;
color: transparent;
}
.van-picker__confirm {
color:#3CC7C0!important;
font-size: 32rpx!important;
}
.van-picker__title{
font-weight: 600!important;
color: rgba(0,0,0,0.9)!important;
font-size: 32rpx!important;
}
.van-picker__cancel{
color: rgba(0,0,0,0.6)!important;
font-size: 32rpx!important;
}
.nonedata{
width:100%;
color:#666;
min-height: 320rpx;
font-size: 28rpx;
display: flex;
justify-content: center;
align-items: center;
}
.ui-navigatorbar {
position: fixed;
z-index:99;
top: 0;
width: 750rpx;
height: 172rpx;
background: #F2F2F2;
backdrop-filter: blur(20px);
}
.ui-navigatorbar-back {
position: absolute;
padding-left:40rpx;
padding-right:40rpx;
width:30rpx;
height:60rpx;
left: 0rpx;
bottom: 20rpx;
}
.ui-title {
position: absolute;
width: 350rpx;
height: 88rpx;
line-height: 56rpx;
font-size: 36rpx;
color: #000000;
bottom: 0;
left: 200rpx;
display: flex;
justify-content: center;
align-items: center;
}
.droptitle.active{
color:#3CC7C0;
}
.slotmsg{
-webkit-overflow-scrolling: touch;
font-size: 28rpx;
line-height:40rpx;
max-height:60vh;
overflow-y: auto;
padding:48rpx;
text-align: center;
}
.van-dropdown-item__title{
width:100%!important;
flex:1;
text-align: center;
}
.van-dropdown-item__icon{
z-index:2;
position: absolute!important;
right:25rpx;
}
.van-cell__value{
flex:none!important;
z-index:1;
}
.onlinebox .icon{
top:60rpx;
left:50%;
position: absolute;
margin-left: -48rpx;
width:96rpx;
height:34rpx;
border-radius: 0;
}
.page{
position: relative;
display: flex;
flex-direction: column;
margin-bottom:0rpx;
}
.outwraper{
flex:1;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
padding-bottom: 200rpx;
}
.outwraper.active{
padding-bottom: 220rpx;
}
.add {
width: 100%;
display: flex;
justify-content: center;
align-items: center;
height: 120rpx;
background: #FFFFFF;
font-weight: 600;
color: #ED9C00;
font-size: 32rpx;
}
.addicon{
width: 40rpx;
height:40rpx;
flex-shrink: 0;
}
.addressbox {
margin-top:172rpx;
align-items: center;
display: flex;
justify-content: space-between;
padding: 32rpx 32rpx;
background-color: #fff;
}
.addressbox .left {
display: flex;
align-items: center;
}
.addressbox .icon {
width: 40rpx;
flex-shrink: 0;
height: 47rpx;
}
.addressbox .info {
margin-left: 30rpx;
}
.addressbox .ricon {
width: 24rpx;
height: 48rpx;
}
.info .name {
font-size: 28rpx;
font-weight: 600;
color: #333333
}
.info .address {
margin-top: 10rpx;
color: #333333;
font-size: 28rpx;
}
.row {
align-items: center;
padding: 0 32rpx;
display: flex;
line-height: 52rpx
}
.row.first {
margin-top: 34rpx;
}
.rowbox .row .name {
white-space: nowrap;
font-size: 28rpx;
color: #333;
font-weight: 600;
display: flex;
width:114rpx;
align-items: baseline;
justify-content: space-between;
}
.row .dot{
font-weight: 600;
display: flex;
align-items: baseline;
}
.row .desc {
align-items: baseline;
font-size: 28rpx;
color: #333;
}
.rowdesc {
align-items: flex-start;
}
.rowdesc .desc {
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
line-clamp: 2;
-webkit-box-orient: vertical
}
.row .price {
color: #EF4F20;
font-weight: bold;
font-size: 34rpx
}
.row.last {
justify-content: space-between;
}
.copy {
height: 40rpx;
color: #000;
font-size: 24rpx;
display: flex;
margin-left: 20rpx;
align-items: center;
justify-content: center;
border-radius: 6rpx;
}
.row .left {
display: flex;
}
.row .right {
display: flex;
}
.titlebox .name {
color: #000;
font-size: 34rpx;
}
.rowbox{
margin-top: 20rpx;
background-color: #fff;
padding-bottom: 30rpx;
}
.titlebox {
padding: 0 32rpx;
height: 112rpx;
border-bottom: 1rpx solid #E3E4E5;
display: flex;
justify-content: space-between;
align-items: center;
}
.titlebox .status{
font-size: 28rpx
}
.waitpay {
text-align: right;
color: #EF4F20
}
.headicon {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
}
.van-count-down {
margin-top: 5rpx;
color: #EF4F20 !important;
}
.infobox {
margin-top: 20rpx;
background:#fff;
}
.infobox .status{
font-size: 28rpx;
font-weight: 400;
color: #333333;
}
.infobox .status.wait{
color: #EF4F20;
}
.infobox .status.timeout{
color: #EF4F20;
}
.infobox .title {
padding: 0 32rpx;
background-color: #fff;
font-size: 34rpx;
height: 112rpx;
align-items: center;
display: flex;
justify-content: space-between;
border-bottom: 1rpx solid #E3E4E5;
}
.imgbox {
border-radius:8rpx;
border:1rpx solid #ccc;
width: 200rpx;
height: 200rpx;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.yaoimg {
width: 120rpx;
height: 128rpx;
}
.imgbox .desc {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
position: absolute;
top: 50%;
font-size: 22rpx;
font-weight: 400;
color: #666666;
line-height: 30rpx;
transform: translateY(-50%);
}
.imgbox .desc .tip {
text-align: center;
}
.medincebox .cell {
padding: 30rpx 32rpx;
display: flex;
align-items: center;
border-bottom: 1rpx solid #E3E4E5;
}
.medincebox .cell:nth-last-child(2){
border-bottom:none;
}
.rightinfo {
margin-left: 30rpx;
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
}
.medincebox .cell .name {
word-break: break-all;
font-size: 32rpx;
font-weight: bold;
color: #333;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.row.beizhu{
align-items: flex-start;
}
.rightinfo .own {
margin-top: 47rpx;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 28rpx;
font-weight: 400;
color: #333333;
}
.btnbox{
display: flex;
padding:0 32rpx;
font-size: 30rpx;
padding-bottom: 30rpx;
justify-content: flex-end;
}
.btnbox .btn{
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 20rpx;
height:58rpx;
background: #FFFFFF;
border-radius: 30rpx;
margin-left: 20px;
}
.btnbox .orderDetail{
background: #3CC7C0;
color:#fff;
border: 1rpx solid #3CC7C0;
}
.personinfo{
margin-top: 20rpx;
background: #fff;
}
.personinfobox {
padding: 30rpx 32rpx 40rpx;
background: #fff;
margin-top: 20rpx;
margin-bottom:10rpx;
}
.personinfobox .title {
background-color: #fff;
font-size: 32rpx;
height: 112rpx;
align-items: center;
display: flex;
justify-content: space-between;
border-bottom: 1rpx solid #E3E4E5;
}
.personinfobox .namebox .head {
width: 80rpx;
height:80rpx;
border-radius: 50%;
}
.personinfobox .namebox .guanzhu image {
width: 28rpx;
height: 26rpx;
}
.personinfobox .namewraper {
flex:1;
display: flex;
justify-content: space-between;
flex-direction: column;
margin-left: 20rpx;
}
.personinfobox .type {
height: 32rpx;
display: flex;
margin-bottom: 6rpx;
line-height: 32rpx;
white-space: nowrap;
align-items: center;
margin-left: 18rpx;
padding: 0rpx 6rpx;
background: #ED9C00;
border-radius: 4rpx;
color: #FFFFFF;
font-size: 24rpx;
}
.personinfobox .namebox .row {
display: flex;
padding:0;
align-items: flex-end;
}
.personinfobox .namebox {
display: flex;
align-items:stretch;
justify-content: space-between;
}
.personinfobox .namebox .name {
display: inline-block;
overflow: hidden;
max-width:400rpx;
text-overflow: ellipsis;
white-space: nowrap;
font-weight: 600;
color: #333333;
font-size: 34rpx;
}
.personinfobox .position {
font-size: 30rpx;
white-space: normal;
word-break: break-all;
}
.doctor_title{
margin-right: 10rpx;
}
.personinfobox .namebox .row{
line-height: 40rpx;
align-items: flex-end;
}
.personinfobox .hospital {
margin-top: 12rpx;
color: #333333;
font-size: 28rpx;
white-space: normal;
word-break: break-all;
}
.personinfobox .namebox .position {
font-weight: normal;
white-space: nowrap;
margin-left: 15rpx;
font-size: 30rpx;
}
.personinfobox .goodjob {
color: #666666;
margin-top: 38rpx;
line-height: 42rpx;
margin-left: 100rpx;
font-size: 28rpx;
word-break: break-all;
}
.paybox{
bottom:0px;
height: 186rpx;
background: #FFFFFF;
position: absolute;
display: flex;
z-index:1;
width:100%;
}
.submitbtn{
width:100%;
margin:16px 32rpx 0;
height: 94rpx;
background: #3CC7C0;
border-radius: 47rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 36rpx;
color: #FFFFFF;
}
.submitbtn.active{
color: #000000;
background: rgba(0,0,0,0.1);
}
.paybox .left{
height: 94rpx;
border-radius: 47rpx;
font-size: 36rpx;
color: rgba(0,0,0,0.85);
border: 1rpx solid rgba(0,0,0,0.65);
margin-left: 32rpx;
flex:1;
font-size: 28rpx;
margin-top: 16rpx;
display: flex;
align-items: center;
justify-content: center;
}
.orderrow{
display: flex;
margin:10rpx 32rpx 0;
justify-content: flex-end;
}
.freetalk{
position: absolute;
width:403rpx;
height:79rpx;
top: -53rpx;
left:25rpx;
}
.paybox .right{
position: relative;
margin-right: 32rpx;
margin-top: 16rpx;
color: #FFFFFF;
display: flex;
margin-left: 24rpx;
align-items: center;
justify-content: center;
background: #3CC7C0;
height: 94rpx;
font-size: 36rpx;
color: #FFFFFF;
background: #3CC7C0;
border-radius: 47rpx;
flex:2;
}
.express{
width: 158rpx;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
background: #F8F8F8;
font-size: 26rpx;
font-weight: 400;
color: #353535;
border-radius: 6rpx;
border: 1rpx solid rgba(5,5,5,0.1);
}
.namenum{
font-size: 28rpx;
font-weight: 400;
color: #333333;
}
.row.wuliu{
margin-top: 20rpx;
align-items: flex-start;
}
.row.wuliu .desc{
margin-left: 20rpx;
}
.desc .dizhi{
font-size: 28rpx;
font-weight: 400;
color: #333333;
line-height: 28rpx;
}
.wuliucar{
width:40rpx;
height:33rpx;
flex-shrink: 0;
}
.row.wuliu .date{
font-size: 24rpx;
font-weight: 400;
color: #666666;
}
.guanzhu {
flex-shrink: 0;
display: flex;
white-space: nowrap;
color: #3CC7C0;
font-size: 30rpx;
font-weight: 600;
justify-content: center;
align-items: center;
font-size: 24rpx;
}
.namebox .guanzhu image {
width: 35rpx;
height: 32rpx;
}
.patientbox{
margin-top: 172rpx;
width:100%;
box-sizing: border-box;
padding:0 32rpx;
display: flex;
align-items: center;
justify-content: space-between;
height: 109rpx;
background: #FFFFFF;
}
.patient_name{
font-size: 32rpx;
font-weight: 400;
color: rgba(0,0,0,0.85)
}
.patientbox .rightcon{
font-size: 28rpx;
font-weight: 400;
color: rgba(0,0,0,0.65)
}
.namebox{
display: flex;
}
.rowbox .row{
justify-content: space-between;
}
.bar{
margin-left: 30rpx;
color: rgba(0,0,0,0.45);
height: 40rpx;
margin-bottom: 5rpx;
display: flex;
align-items: center;
}
.rightbox{
display: flex;
align-items: center;
}
.bindbox{
overflow: hidden;
padding:0 32rpx 10rpx;
margin:20rpx 0rpx;
background: #FFFFFF;
}
.errorbox{
margin-top: 10rpx;
display: flex;
height: 80rpx;
background: #FFF1F0;
border-radius: 8rpx;
padding:0 20rpx;
align-items: center;
justify-content: space-between;
}
.tiptitle{
height: 80rpx;
align-items: center;
display: flex;
justify-content: space-between;
margin-top: 10rpx;
}
.tipleft{
font-size: 32rpx;
color: rgba(0,0,0,0.85);
}
.tipright{
color:#4096FF;
font-size: 28rpx;
}
.iptbox{
margin-top: 24rpx;
width:100%;
height: 78rpx;
border-radius: 6rpx;
border: 2rpx solid #3CC7C0;
display: flex;
align-items: center;
}
.iptbox.active{
border: 2rpx solid #FF4D4F;
}
.mybar{
height:38rpx;
margin:0 30rpx;
width:2rpx;
background:#3CC7C0 ;
}
.ipt{
margin-left: 20rpx;
flex:1;
}
.scan{
margin-right: 20rpx;
width:40rpx;
height:40rpx;
}
.uploadbox{
margin:24rpx 0rpx 0;
display: flex;
flex-wrap: wrap ;
}
.uploadbox .close{
z-index:9;
top:5rpx;
right:5rpx;
position: absolute;
width:30rpx;
height:30rpx;
}
.uploadbox .upload{
position: relative;
object-fit: cover;
display: flex;
flex-direction: column;
margin: 5px 19rpx 5px 0;
}
.uploadbox .upload:nth-child(4n){
margin-right: 0;
}
.van-icon-plus{
color:#333;
font-size: 80rpx!important;
}
.upload{
width: 148rpx;
height:148rpx;
display: flex;
justify-content:center ;
align-items: center;
background: #F2F2F2;
border-radius: 4rpx
}
.uploadbox view:first-child{
margin-left: 0!important;
}
.upload .text{
font-size: 28rpx;
}
.errorleft{
display: flex;
align-items: center;
}
.checkerror{
margin-right: 10rpx;
width:40rpx;
height:40rpx;
}
.checkclose{
width:32rpx;
height:32rpx;
}
.wrapper{
width:100%;
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
margin:285rpx auto;
}
.timg1{
width:694rpx;
}
.timg2{
width:506rpx;
}
.button{
display: flex;
align-items: center;
justify-content: center;
width: 224rpx;
font-size: 32rpx;
height: 83rpx;
font-weight: 500;
margin-top: 72rpx;
color: #FFFFFF;
border-radius: 47rpx;
border: 1rpx solid #FFFFFF;
}
.contactbox{
width: 320rpx;
margin:20rpx auto 0rpx;
height: 72rpx;
border-radius: 39rpx;
border: 2rpx solid rgba(0,0,0,0.15);
align-items: center;
color: rgba(0,0,0,0.85);
font-size: 28rpx;
justify-content: center;
display: flex;
}
.kefu{
width: 32rpx;
margin-right: 10rpx;
height: 32rpx;
}
.finish{
margin-top: 20rpx;
display: flex;
justify-content: space-between;
margin-bottom: 20rpx;
align-items: center;
}
.finish .left{
font-size: 32rpx;
font-weight: 400;
color: rgba(0,0,0,0.85);
}
.finish .right{
font-size: 28rpx;
font-weight: 400;
color: rgba(0,0,0,0.45);
}