Merge branch 'dev'

This commit is contained in:
zoujiandong 2024-05-17 09:20:48 +08:00
commit b3cf69436b
85 changed files with 9118 additions and 122 deletions

View File

@ -59,6 +59,15 @@ Component({
}); });
}, },
}, },
serviceInfo:{
type: Object,
value:{},
observer(newVal) {
this.setData({
serviceInfo:newVal
});
},
},
patient_family_data:{ patient_family_data:{
type: Object, type: Object,
value:{}, value:{},
@ -153,6 +162,7 @@ Component({
inquiry_type:'', inquiry_type:'',
inquiry_mode:'', inquiry_mode:'',
patient_family_data:{}, patient_family_data:{},
serviceInfo:{},
message: '', message: '',
message_rounds:0, message_rounds:0,
rest_rounds:0, rest_rounds:0,
@ -219,6 +229,7 @@ Component({
}); });
} }
this.sendCallback(); this.sendCallback();
let {serviceInfo}=this.data;
const message = wx.$TUIKit.createAudioMessage({ const message = wx.$TUIKit.createAudioMessage({
to: this.getToAccount(), to: this.getToAccount(),
conversationType: this.data.conversation.type, conversationType: this.data.conversation.type,
@ -231,6 +242,13 @@ Component({
inquiry_mode:this.data.inquiry_mode, inquiry_mode:this.data.inquiry_mode,
message_rounds:this.data.msgData.msg_round, message_rounds:this.data.msgData.msg_round,
patient_family_data:this.data.patient_family_data, patient_family_data:this.data.patient_family_data,
remaining_month_inquiry_count:serviceInfo.remaining_month_inquiry_count,
month_inquiry_count:serviceInfo.month_inquiry_count,
service_package_start_time:serviceInfo.start_time,
service_package_finish_time:serviceInfo.finish_time,
monthly_frequency:serviceInfo.monthly_frequency,
service_period:serviceInfo.service_period,
remaining_quantity:serviceInfo.remaining_quantity,
is_system:0 is_system:0
}) })
}); });
@ -539,6 +557,7 @@ pageLifetimes:{
// 发送图片消息 // 发送图片消息
handleSendImageMessage(file) { handleSendImageMessage(file) {
let {serviceInfo}=this.data;
const message = wx.$TUIKit.createImageMessage({ const message = wx.$TUIKit.createImageMessage({
to: this.getToAccount(), to: this.getToAccount(),
conversationType: this.data.conversation.type, conversationType: this.data.conversation.type,
@ -551,6 +570,13 @@ pageLifetimes:{
inquiry_mode:this.data.inquiry_mode, inquiry_mode:this.data.inquiry_mode,
message_rounds:this.data.msgData.msg_round, message_rounds:this.data.msgData.msg_round,
patient_family_data:this.data.patient_family_data, patient_family_data:this.data.patient_family_data,
remaining_month_inquiry_count:serviceInfo.remaining_month_inquiry_count,
month_inquiry_count:serviceInfo.month_inquiry_count,
service_package_start_time:serviceInfo.start_time,
service_package_finish_time:serviceInfo.finish_time,
service_period:serviceInfo.service_period,
monthly_frequency:serviceInfo.monthly_frequency,
remaining_quantity:serviceInfo.remaining_quantity,
is_system:0 is_system:0
}), }),
onProgress: (percent) => { onProgress: (percent) => {
@ -878,6 +904,7 @@ pageLifetimes:{
const text = flag ? msg : this.data.message; const text = flag ? msg : this.data.message;
const { FEAT_NATIVE_CODE } = constant; const { FEAT_NATIVE_CODE } = constant;
this.sendCallback(); this.sendCallback();
let {serviceInfo}=this.data;
const message = wx.$TUIKit.createTextMessage({ const message = wx.$TUIKit.createTextMessage({
to, to,
conversationType: this.data.conversation.type, conversationType: this.data.conversation.type,
@ -890,6 +917,13 @@ pageLifetimes:{
inquiry_mode:this.data.inquiry_mode, inquiry_mode:this.data.inquiry_mode,
message_rounds:this.data.msgData.msg_round, message_rounds:this.data.msgData.msg_round,
patient_family_data:this.data.patient_family_data, patient_family_data:this.data.patient_family_data,
remaining_month_inquiry_count:serviceInfo.remaining_month_inquiry_count,
month_inquiry_count:serviceInfo.month_inquiry_count,
service_package_start_time:serviceInfo.start_time,
service_package_finish_time:serviceInfo.finish_time,
service_period:serviceInfo.service_period,
monthly_frequency:serviceInfo.monthly_frequency,
remaining_quantity:serviceInfo.remaining_quantity,
is_system:0 is_system:0
}), }),
}); });
@ -927,6 +961,7 @@ pageLifetimes:{
// 发送正在输入状态消息 // 发送正在输入状态消息
sendTypingStatusMessage() { sendTypingStatusMessage() {
const { BUSINESS_ID_TEXT, FEAT_NATIVE_CODE } = constant; const { BUSINESS_ID_TEXT, FEAT_NATIVE_CODE } = constant;
let {serviceInfo}=this.data;
// 创建正在输入状态消息, "typingStatus":1,正在输入中1, 输入结束0, "version": 1 兼容老版本,userAction:0, // 14表示正在输入,actionParam:"EIMAMSG_InputStatus_Ing" //"EIMAMSG_InputStatus_Ing" 表示正在输入, "EIMAMSG_InputStatus_End" 表示输入结束 // 创建正在输入状态消息, "typingStatus":1,正在输入中1, 输入结束0, "version": 1 兼容老版本,userAction:0, // 14表示正在输入,actionParam:"EIMAMSG_InputStatus_Ing" //"EIMAMSG_InputStatus_Ing" 表示正在输入, "EIMAMSG_InputStatus_End" 表示输入结束
const typingMessage = wx.$TUIKit.createCustomMessage({ const typingMessage = wx.$TUIKit.createCustomMessage({
to: this.getToAccount(), to: this.getToAccount(),
@ -948,6 +983,13 @@ pageLifetimes:{
inquiry_mode:this.data.inquiry_mode, inquiry_mode:this.data.inquiry_mode,
message_rounds:this.data.msgData.msg_round, message_rounds:this.data.msgData.msg_round,
patient_family_data:this.data.patient_family_data, patient_family_data:this.data.patient_family_data,
remaining_month_inquiry_count:serviceInfo.remaining_month_inquiry_count,
month_inquiry_count:serviceInfo.month_inquiry_count,
service_package_start_time:serviceInfo.start_time,
service_package_finish_time:serviceInfo.finish_time,
service_period:serviceInfo.service_period,
monthly_frequency:serviceInfo.monthly_frequency,
remaining_quantity:serviceInfo.remaining_quantity,
is_system:0 is_system:0
}), }),
}); });

View File

@ -24,7 +24,7 @@
</view> </view>
<view class="linebox"> <view class="linebox">
<view class="line"></view> <view class="line"></view>
<view class="pingjia">非常满意</view> <view class="pingjia">评价</view>
<view class="line"></view> <view class="line"></view>
</view> </view>
<view class="ratebox"> <view class="ratebox">

View File

@ -14,7 +14,7 @@ import {
import { import {
chatMsg chatMsg,serviceChatMsg
} from "../../../../api/common" } from "../../../../api/common"
import {throttle} from "../../../../utils/util" import {throttle} from "../../../../utils/util"
@ -117,6 +117,7 @@ Component({
}) })
console.log(this.data.order_inquiry_id); console.log(this.data.order_inquiry_id);
this.handleChatMsg(this.data.order_inquiry_id); this.handleChatMsg(this.data.order_inquiry_id);
}, },
hide: function() { hide: function() {
@ -134,6 +135,7 @@ Component({
*/ */
data: { data: {
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static',
serviceInfo:{},
conversationName: '', conversationName: '',
isEvaluation:false, isEvaluation:false,
conversation: {}, conversation: {},
@ -164,6 +166,7 @@ Component({
duration: 0, duration: 0,
reception_time: null, reception_time: null,
rest_time: 0, rest_time: 0,
inquiry_mode:'',
doctor_id: '', doctor_id: '',
doctor_user_id:'', doctor_user_id:'',
timeData: {}, timeData: {},
@ -437,8 +440,17 @@ Component({
this.handelfllowDoctor() this.handelfllowDoctor()
} }
}, },
handleServiceChatMsg(id){
serviceChatMsg(id).then(res=> {
console.log(res)
this.setData({
serviceInfo:res
})
})
},
handleChatMsg(id) { handleChatMsg(id) {
chatMsg(id).then(data => { chatMsg(id).then(data => {
this.handleServiceChatMsg(id);
// console.log("接口请求收到时间66666"+dayjs().format("YYYY-MM-DD HH:mm:ss:SSS")); // console.log("接口请求收到时间66666"+dayjs().format("YYYY-MM-DD HH:mm:ss:SSS"));
// console.log(data); // console.log(data);
let promise=wx.$TUIKit.getUserProfile({ let promise=wx.$TUIKit.getUserProfile({

View File

@ -37,7 +37,7 @@
<view class="circle"></view> <view class="circle"></view>
<view>问诊中</view> <view>问诊中</view>
<view class="bar" wx:if="{{doctorChatData.rest_time!==0 && !isEnd}}">|</view> <view class="bar" wx:if="{{doctorChatData.rest_time!==0 && !isEnd}}">|</view>
<view class="desc" wx:if="{{doctorChatData.rest_time!==0 && !isEnd}}"> <view class="desc" wx:if="{{doctorChatData.rest_time!==0 && !isEnd && !(doctorChatData.inquiry_mode==8 || doctorChatData.inquiry_mode==9)}}">
<view class="desc"wx:if="{{doctorChatData.rest_time==-2}}">不限时间</view> <view class="desc"wx:if="{{doctorChatData.rest_time==-2}}">不限时间</view>
<view class="desc" wx:elif="{{doctorChatData.rest_time>0}}"> <view class="desc" wx:elif="{{doctorChatData.rest_time>0}}">
剩余<van-count-down use-slot time="{{doctorChatData.rest_time}}" bind:change="onChangeTime" format="HH:mm:ss"> 剩余<van-count-down use-slot time="{{doctorChatData.rest_time}}" bind:change="onChangeTime" format="HH:mm:ss">
@ -51,6 +51,10 @@
<text class="red" decode="true" wx:else>&nbsp;{{rest_rounds>=0?rest_rounds:0}}个</text> <text class="red" decode="true" wx:else>&nbsp;{{rest_rounds>=0?rest_rounds:0}}个</text>
<text>沟通回合</text> <text>沟通回合</text>
</view> </view>
<view class="count_time" wx:if="{{doctorChatData.rest_time!==0 && !isEnd && (doctorChatData.inquiry_mode==8 || doctorChatData.inquiry_mode==9)}}">
<text class="red" wx:if="{{serviceInfo.monthly_frequency==0}}">不限问诊次数,{{serviceInfo.remaining_finish_day}}天后结束</text>
<text wx:else >当月剩余:<text class="red">{{serviceInfo.monthly_frequency-serviceInfo.month_inquiry_count}}</text>次</text>
</view>
</view> </view>
</view> </view>
<view class="statusbox" wx:elif="{{doctorChatData.inquiry_status==7}}"> <view class="statusbox" wx:elif="{{doctorChatData.inquiry_status==7}}">
@ -83,7 +87,9 @@
</view> </view>
<view class="input-area" wx:if="{{doctorChatData.inquiry_status==3 || doctorChatData.inquiry_status==4}}"> <view class="input-area" wx:if="{{doctorChatData.inquiry_status==3 || doctorChatData.inquiry_status==4}}">
<view class="message-input" style="{{viewData.style}}" wx:if="{{showChat}}"> <view class="message-input" style="{{viewData.style}}" wx:if="{{showChat}}">
<MessageInput id="MessageInput" duration="{{doctorChatData.duration}}" rest_time="{{doctorChatData.rest_time}}" times_number="{{doctorChatData.times_number}}" msgData="{{msgData}}" order_inquiry_id="{{order_inquiry_id}}" inquiry_type="{{inquiry_type}}" inquiry_mode="{{inquiry_mode}}" conversation="{{conversation}}" patient_family_data="{{patient_family_data}}" rest_rounds="{{rest_rounds}}" doctor_user_id="{{doctorChatData.doctor_user_id}}" hasCallKit="{{hasCallKit}}" <MessageInput id="MessageInput" duration="{{doctorChatData.duration}}" rest_time="{{doctorChatData.rest_time}}" times_number="{{doctorChatData.times_number}}" msgData="{{msgData}}" order_inquiry_id="{{order_inquiry_id}}" inquiry_type="{{inquiry_type}}" inquiry_mode="{{inquiry_mode}}" conversation="{{conversation}}"
serviceInfo="{{serviceInfo}}"
patient_family_data="{{patient_family_data}}" rest_rounds="{{rest_rounds}}" doctor_user_id="{{doctorChatData.doctor_user_id}}" hasCallKit="{{hasCallKit}}"
bind:sendMessage="sendMessage" bind:freshChatStatus="freshChatStatus" bind:sendMessage="sendMessage" bind:freshChatStatus="freshChatStatus"
bind:changeTimeStatus="changeTimeStatus" bind:changeTimeStatus="changeTimeStatus"
bind:downKeysBoards="downKeysBoards" bind:pullKeysBoards="pullKeysBoards" bind:showMessageErrorImage="showMessageErrorImage" bind:handleCall="handleCall" bind:getMessageRounds="getMessageRounds"></MessageInput> bind:downKeysBoards="downKeysBoards" bind:pullKeysBoards="pullKeysBoards" bind:showMessageErrorImage="showMessageErrorImage" bind:handleCall="handleCall" bind:getMessageRounds="getMessageRounds"></MessageInput>

View File

@ -634,3 +634,6 @@ border-radius: 30rpx;
width:80rpx; width:80rpx;
height:80rpx; height:80rpx;
} }
.count_time .red{
color:#E34D59;
}

View File

@ -28,6 +28,9 @@ function job(){//获取职业数据
function chatMsg(id){//获取问诊订单消息内页基础数据 function chatMsg(id){//获取问诊订单消息内页基础数据
return request('/im/inquiry/basic/'+id,'GET') return request('/im/inquiry/basic/'+id,'GET')
}; };
function serviceChatMsg(id){
return request('/im/inquiry/basic/service/'+id,'GET')
}
function hotSearch(data){//热门搜索 function hotSearch(data){//热门搜索
return request('/basic/keyword/search','GET',data) return request('/basic/keyword/search','GET',data)
}; };
@ -39,6 +42,7 @@ function agreement(id){
} }
module.exports={ module.exports={
serviceChatMsg,
sickType, sickType,
sickList, sickList,
getSign, getSign,

53
api/health.js Normal file
View File

@ -0,0 +1,53 @@
import {request} from '../utils/request.js'
function getItems(id){ //获取地址
return request('/doctor/inquiry/service/follow/item/'+id,'GET',{},true)
};
function getServiceDetail(data){
return request('/patient/service/detail','GET',data,true)
}
function createServiceOrder(data){
return request('/patient/service','POST',data,true)
}
function serviceList(data){ //获取患者检测订单列表
return request('/patient/order/service','GET',data)
};
function serviceDetail(id){ //获取患者检测订单详情
return request('/patient/order/service/'+id,'GET',{},true)
};
function cancelCheckPay(id){ //取消支付
return request('/patient/order/cancel-pay/'+id,'PUT')
};
function cancelCheckOrder(id){ //取消支付
return request('/patient/order/cancel/'+id,'PUT')
};
function delCheckOrder(id){
return request('/patient/order/detection/'+id,'DELETE')
};
function createServiceChatOrder(id){
return request('/patient/service/inquiry/'+id,'POST',{},true)
}
function serviceEquityDetail(id){ //获取患者服务包订单服务权益详情
return request('/patient/order/service/detail/'+id,'GET',{},true)
};
function serviceSickInfo(id){ //获取服务包订单病例详情-基础益详情
return request('/case/service/'+id,'GET',{})
};
function checkService(id){ //检测是否可创建服务包问诊订单
return request('/patient/service/check/'+id,'GET',{},true)
};
module.exports={
checkService,
serviceSickInfo,
serviceEquityDetail,
createServiceChatOrder,
cancelCheckPay,
cancelCheckOrder,
serviceDetail,
serviceList,
getItems,
getServiceDetail,
createServiceOrder
}

View File

@ -77,7 +77,7 @@
"pages/checkOrder/checkOrder", "pages/checkOrder/checkOrder",
"pages/checkOrderDetail/checkOrderDetail" "pages/checkOrderDetail/checkOrderDetail"
], ],
"independent": true "independent": false
}, },
{ {
"root": "TUICallKit", "root": "TUICallKit",
@ -86,6 +86,21 @@
"pages/globalCall/globalCall" "pages/globalCall/globalCall"
], ],
"independent": false "independent": false
},
{
"root": "healthyService",
"name": "healthyService",
"pages": [
"pages/healthyIntro/healthyIntro",
"pages/healthyDetail/healthyDetail",
"pages/visitDetail/visitDetail",
"pages/healthyOrder/healthyOrder",
"pages/healthyOrderDetail/healthyOrderDetail",
"pages/writeSick/writeSick",
"pages/visitList/visitList",
"pages/sickInfo/sickInfo"
],
"independent": false
} }
], ],
"preloadRule": { "preloadRule": {

View File

@ -26,7 +26,7 @@ Component({
}, },
goInquirtForm(){ goInquirtForm(){
// wx.navigateTo({ // wx.navigateTo({
// url: '/patient/pages/expertDetail/expertDetail?doctor_id=516904855116750848', // url: '/healthyService/pages/visitList/visitList',
// }) // })
} }
}, },

View File

@ -91,6 +91,8 @@ function transforDay(time, type) {
time_str = y + '-' + m + '-' + d; time_str = y + '-' + m + '-' + d;
} else if(type == 'dateminute'){ } else if(type == 'dateminute'){
time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i
}else if(type == 'dotdateminute'){
time_str = y + '.' + m + '.' + d + ' ' + h + ':' + i
}else if (type == 'datetime') { }else if (type == 'datetime') {
time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s; time_str = y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;
} else if (type == 'onlyMonth') { } else if (type == 'onlyMonth') {
@ -202,7 +204,21 @@ function hasTuWen(arr){
} }
return false return false
} }
function formatHealthPrcice(arr){
var price=null;
if(arr){
for (var i = 0; i < arr.length; i++) {
if(arr[i].inquiry_type==1 && arr[i].inquiry_mode==8){
return arr[i].inquiry_price;
}
}
}
return price
};
module.exports = { module.exports = {
formatHealthPrcice:formatHealthPrcice,
formatwenzhenList:formatwenzhenList, formatwenzhenList:formatwenzhenList,
formatChufang:formatChufang, formatChufang:formatChufang,
formatPrice:formatPrice, formatPrice:formatPrice,

View File

@ -0,0 +1,438 @@
// healthyService/pages/healthyDetail/healthyDetail.js
import {doctorDetail} from "../../../api/consultExpert"
import {family,addfamily} from "../../../api/familyDoc";
import {getServiceDetail,createServiceChatOrder} from "../../../api/health"
import {doctorService} from "../../../api/consultExpert"
import {throttle} from "../../../utils/util"
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
order_no:'',
confirmNext:'确定',
order_inquiry_id:'',
chat_id:'',
showPicker:false,
columns:[
{text:"本人",value:1},
{text:"父母",value:2},
{text:"爱人",value:3},
{text:"子女",value:4},
{text:"亲戚",value:5},
{text:"其他 ",value:6}
],
showWarn:false,
status:'',
active:0,
img_host:app.hostConfig().imghost,
doctor_id:'',
currentData:0,
inquiry_mode:8,
inquiry_type:1,
current_price:'',
avatar: '',
user_name: '',
doctor_title: '',
doctor_id: '',
doctor_title_name:'',
user_id:'',
is_online:'0',
hospital: null,
multi_point_enable:'',
multi_point_status:'',
hospital:{},
priceList:[],
show:false,
currentFamilyId:'',
realName:'',
idCard:'',
phoneNumber:'',
relationId:'',
sex:'',
service_type:1,
chat_id:'',
},
goHasOrder(){
let {status,doctor_id,order_no}=this.data;
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==3){
app.method.navigateTo({
url:'/patient/pages/expertDetail/expertDetail?doctor_id='+doctor_id
})
}else if(status==5){
this.handleCreateServiceChatOrder(order_no)
}
},
onConfirm(event) {
const { value} = event.detail;
this.setData({
relationId: `${value.value}`,
relation:`${value.text}`,
showPicker:false
});
},
openPicker(){
this.setData({
showPicker:true
})
},
closePicker(){
this.setData({
showPicker:false
})
},
inputChange(e) {
this.setData({
[e.target.dataset.id]: e.detail.value
})
},
goNext:throttle(function() {
this.handleGetServiceDetail();
}),
addFamily() {
let {
realName,
idCard,
phoneNumber,
relationId,
sex
} = this.data;
addfamily({
card_name: realName,
type: 1,
id_number: idCard,
mobile: phoneNumber,
is_default: 0,
relation: relationId
}).then((data) => {
this.getFamily();
this.setData({
currentFamilyId:data.family_id,
realName:'',
idCard:'',
phoneNumber:'',
relationId:'',
relation:'',
showAdd:false
})
})
},
showPatient(){
this.setData({
show:true
})
},
addPatient() {
this.setData({
showAdd: true,
currentFamilyId: '',
sex: ''
})
},
selectPatient(e) {
let currentFamilyId=e.currentTarget.dataset.familyid;
let sex=e.currentTarget.dataset.sex;
let name=e.currentTarget.dataset.name;
let age=e.currentTarget.dataset.age;
this.setData({
currentFamilyId:currentFamilyId,
sex:sex
})
},
transforpage(arr) {
const pages = []
let newArr = arr.concat([{
type: "add"
}])
newArr.forEach((item, index) => {
const page = Math.floor(index / 2)
if (!pages[page]) {
pages[page] = []
}
pages[page].push(item)
});
return pages
},
confirmNext() {
if (!/^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$/.test(this.data.realName)) {
wx.showToast({
title: `姓名要求在2-10个字符`,
icon: 'none',
});
return false;
};
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)) {
wx.showToast({
title: `请输入有效的身份证号`,
icon: 'none',
});
return false;
};
if (!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)) {
wx.showToast({
title: `请输入有效的手机号码!`,
icon: 'none',
});
return false;
}
},
getFamily() {
family().then((data) => {
this.setData({
family: this.transforpage(data)
})
})
},
goSick:throttle(function() {
if (!/^([\u4e00-\u9fa5\·]{2,10})$/.test(this.data.realName)) {
wx.showToast({
title: `姓名要求在2-10个汉字`,
icon: 'none',
});
return false;
};
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)) {
wx.showToast({
title: `请输入有效的身份证号`,
icon: 'none',
});
return false;
};
if (this.data.phoneNumber) {
if (!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)) {
wx.showToast({
title: `请输入有效的手机号码!`,
icon: 'none',
});
return false;
}
};
let idInfo = this.getIdInfo(this.data.idCard);
if (idInfo.age < 6) {
wx.showToast({
title: `六岁以下儿童不支持线上问诊`,
icon: 'none',
});
return false;
}
this.setData({
sex:idInfo.sex
})
this.addFamily()
}),
//获取身份证号信息
getIdInfo(IdCard) {
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (reg.test(IdCard)) {
let sex
if (parseInt(IdCard.substr(16, 1)) % 2 === 1) {
sex = '1'
} else {
sex = '2'
}
var ageDate = new Date()
var month = ageDate.getMonth() + 1
var day = ageDate.getDate()
var age = ageDate.getFullYear() - IdCard.substring(6, 10) - 1
if (IdCard.substring(10, 12) < month || (IdCard.substring(10, 12) === month && IdCard.substring(12, 14) <= day)) {
age++
}
if (age <= 0) {
age = 1
}
return {
sex,
age
}
} else {
return false;
}
},
onClose() {
this.setData({
show: false
});
},
onCloseAdd() {
this.setData({
showAdd: false
});
},
getDeatil(id) {
doctorDetail(id).then((res) => {
for (const key in this.data) {
if (res[key]) {
this.setData({
[key]: res[key]
})
}
};
this.setData({
chat_id:res.user_id
})
})
},
handleGetServiceDetail(){
let {doctor_id,currentFamilyId,service_type,follow_package_item_id,chat_id,sex,inquiry_mode,inquiry_type}=this.data;
getServiceDetail({
doctor_id,
family_id:currentFamilyId,
service_type,
follow_package_item_id
}).then((res)=>{
if(res.status==1){
app.method.navigateTo({
url:'/healthyService/pages/writeSick/writeSick?doctor_id='+doctor_id+"&family_id="+currentFamilyId+"&chat_id="+chat_id+"&inquiry_type="+inquiry_type+"&sex="+sex+"&inquiry_mode="+inquiry_mode+"&package_id="+follow_package_item_id
})
}else if(res.status==2){
this.setData({
showWarn:true,
order_no:res.data.order_no,
status:2,
confirmNext:'确定',
message:res.message
})
}else if(res.status==3){
this.setData({
showWarn:true,
status:3,
confirmNext:'前往',
message:'本月问诊次数已用完,您可选择医生其他服务'
})
}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,
confirmNext:'确定',
message:res.message
})
}else if(res.status==5){
this.setData({
showWarn:true,
status:5,
confirmNext:'前往',
order_no:res.data.order_no,
message:'是否使用剩余问诊次数?'
})
}
})
},
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"
})
})
},
showPatient(){
this.setData({
show:true
})
},
getService(id){
doctorService(id).then(res=>{
for (let i = 0; i < res.length; i++) {
if(res[i].inquiry_mode==8 && res[i].inquiry_type==1){
this.setData({
current_price:res[i].inquiry_price
})
};
//
}
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.setData({
doctor_id:options.doctor_id,
})
this.getDeatil(options.doctor_id);
this.getService(options.doctor_id);
this.getFamily();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,9 @@
{
"usingComponents": {
"nav":"../../../components/nav/nav",
"van-popup": "@vant/weapp/popup/index",
"van-picker": "@vant/weapp/picker/index",
"van-dialog": "@vant/weapp/dialog/index"
},
"navigationStyle":"custom"
}

View File

@ -0,0 +1,174 @@
<!--healthyService/pages/healthyDetail/healthyDetail.wxml-->
<nav navName="健康包服务详情"></nav>
<view class="page">
<image src="{{img_host+'/mybg.png'}}" mode="widthFix" class="dcimg" lazy-load/>
<view class="viewcell" >
<view class="left">
<image src="{{avatar}}" wx:if="{{avatar}}" mode="aspectFill" class="headimg"></image>
<image src="{{img_host+'/doctor_avatar.png'}}" class="headimg" wx:else></image>
<view class="onlinebox" wx:if="{{is_online==1}}">
<image src="{{img_host+'/online.gif'}}" mode="" class="icon"/>
</view>
</view>
<view class="right">
<view class="namebox">
<view class="name">{{user_name}}</view>
<view class="type" wx:if="{{hospital.hospital_level_name != '未知'&& hospital.hospital_level_name}}">{{hospital.hospital_level_name}}</view>
<view class="type" wx:if="{{multi_point_status == 1 && multi_point_enable==1}}">可处方</view>
</view>
<view class="hospital"><text class="hospital_name" wx:if="{{doctor_title_name}}">{{doctor_title_name}}</text> <text wx:if="{{item.department_custom_name}}">{{item.department_custom_name}}</text></view>
<view class="hospital"><text class="hospital_name" >{{hospital.hospital_name}}</text></view>
</view>
</view>
<view class="detailbox">
<view class="quanyi">
<image src="../../static/images/quanyi.png" class="quanyiImg"/>
<view class="quanyiText">服务权益</view>
</view>
<view class="con">
<view class="cell">
<view class="celltitle">专属标识:</view>
<view class="celldesc">享有特殊标识,获得医生全面照护</view>
</view>
<view class="cell">
<view class="celltitle">服务周期:</view>
<view class="celldesc">购买后从第一次消费起90天内</view>
</view>
<view class="cell">
<view class="celltitle">图文问诊2次/月</view>
<view class="celldesc">1、医生接诊后每次可持续48小时; </view>
<view class="celldesc">
2、图片、文字、语音形式无限制的进行沟通;
</view>
<view class="celldesc">3、超出的问诊需按原价的图文服务购买。</view>
</view>
<view class="cell">
<view class="celltitle">处方:</view>
<view class="celldesc">1、每次问诊只可产生一个处方单
</view>
<view class="celldesc">
2、服务包含30盒肝爽颗粒步长每月和医生问诊时医生开具处方。
</view>
</view>
<view class="cell">
<view class="celltitle">优惠劵:</view>
<view class="celldesc">1、赠送全品类药品劵10元不可与其他优惠劵叠加使用
</view>
<view class="celldesc">
2、赠送肝胆相照商城优惠劵100元仅限纽娃复合蛋白营养素固体饮料使用注册肝胆相照商城后2~3个工作日到账
</view>
</view>
<view class="cell">
<view class="celltitle">退费:</view>
<view class="celldesc">1、未使用随时退;
</view>
<view class="celldesc">
2、健康包开始使用后如需退款请联系客服退款不收取任何服务费等额外费用但不支持部分退款
</view>
<view class="celldesc">
3、药品一经发出问诊一经接诊均概不退换
</view>
<view class="celldesc">
4、未消费健康包内容可退款已消费服务的部分按原价计费已发生的问诊按照问诊时互联网医院显示的价格结算肝爽颗粒按照原价每盒42.8元结算。
</view>
</view>
</view>
</view>
<view class="buttonbox">
<view class="btn" bind:tap="showPatient">立即购买:¥{{current_price}}</view>
</view>
</view>
<van-popup show="{{ show }}" bind:close="onClose" closeable
position="bottom" round
custom-style="min-height: 60%">
<view class="titlepop">选择患者</view>
<view class="personbox">
<view class="row" wx:for-item="itemName" wx:for="{{family}}" wx:key="*this">
<view class="cell" wx:for-item="item" wx:for="{{itemName}}" wx:key="family_id">
<view class="cellinner" wx:if="{{!item.type}}" bindtap="selectPatient" data-familyId="{{item.family_id}}" data-sex="{{item.sex}}">
<view class="person">
<view class="name">{{item.card_name}}</view>
<view class="tag" wx:if="{{item.relation==1}}">本人</view>
<view class="tag" wx:elif="{{item.relation==2}}">父母</view>
<view class="tag" wx:elif="{{item.relation==3}}">爱人</view>
<view class="tag" wx:elif="{{item.relation==4}}">子女</view>
<view class="tag" wx:elif="{{item.relation==5}}">亲戚</view>
<view class="tag" wx:elif="{{item.relation==6}}">其他</view>
</view>
<view class="desc">
<view class="sex" wx:if="{{item.sex===0}}">性别未知</view>
<view class="sex" wx:elif="{{item.sex==1}}">男</view>
<view class="sex" wx:else>女</view>
<view class="age">{{item.age}}岁</view>
</view>
<image src="{{img_host+'/gou.png'}}" class="gou" wx:if="{{item.family_id==currentFamilyId}}"></image>
</view>
<view class="celladd" bindtap="addPatient" wx:elif="{{item.type}}">
+新建患者
</view>
</view>
</view>
</view>
<view class="btnbox">
<button class="btn" plain="true" disabled="{{currentFamilyId?false:true}}" bindtap="goNext">下一步</button>
</view>
</van-popup>
<van-popup show="{{showAdd}}" round closeable z-index="999" position="bottom" custom-style="height:{{height}}rpx" bind:close="onCloseAdd">
<view class="infobox">
<view class="title">新建患者</view>
<view class="info">
<view class="name">真实姓名<text>*</text></view>
<input value="{{realName}}" type="text" bindinput="inputChange" placeholder="请输入真实姓名" data-id="realName"/>
</view>
<view class="info">
<view class="name">身份证号<text>*</text></view>
<input value="{{idCard}}" type="idcard" bindinput="inputChange" placeholder="请输入真实身份证号" data-id="idCard"/>
</view>
<view class="info">
<view class="name">联系电话</view>
<input value="{{phoneNumber}}" type="number" bindblur="onblur" bindfocus="onfocus" cursor-spacing="100" bindinput="inputChange" bindinput="inputChange" placeholder="请输入联系电话" data-id="phoneNumber"/>
</view>
<view class="info" bindtap="openPicker">
<view class="name">患者关系</view>
<input type="text" value="{{relation}}" placeholder="请选择与患者的关系" disabled="true" />
</view>
<view class="tip">
<view class="warntitle">温馨提示:</view>
<view class="warn">
<view>1、根据国家卫健委要求,就医实行实名制,请如实填写患者信息。</view>
<view>2、信息受隐私保护仅接诊医生可见。
</view>
<view>3、6岁以下儿童不支持线上问诊请到线下就诊。
</view>
</view>
</view>
<view class="next" bindtap="goSick">
确定
</view>
</view>
</van-popup>
<van-dialog
show-cancel-button
class="mydailog"
bind:confirm="goHasOrder"
title="温馨提示"
message="{{message}}"
z-index="9999"
theme='green'
show="{{showWarn}}"
confirm-button-color="#3CC7C0"
cancel-button-text="取消"
>
</van-dialog>
<van-popup show="{{ showPicker }}" round position="bottom"
z-index="9999"
custom-style="height:auto" bind:close="closePicker">
<van-picker show-toolbar title="选择与患者之间的关系" columns="{{ columns }}" bind:cancel="closePicker" bind:confirm="onConfirm" />
</van-popup>

View File

@ -0,0 +1,369 @@
page{
height:100vh;
overflow: hidden;
}
/* healthyService/pages/healthyDetail/healthyDetail.wxss */
.page{
width:100%;
height:calc(100% - 172rpx);
margin-top: 172rpx;
display: flex;
overflow: hidden;
flex-direction: column;
}
.dcimg{
width:100%;
position: absolute;
z-index:-1;
}
.detailbox{
overflow: hidden;
/* position: relative; */
z-index:1;
flex:1;
display: flex;
flex-direction: column;
margin:0rpx;
background: #FFFFFF;
border-radius: 32rpx 32rpx 0rpx 0rpx;
}
.con{
flex:1;
padding: 0 30rpx;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
.quanyi{
position: relative;
width:260rpx;
margin:0 auto;
height:70rpx;
}
.quanyiImg{
width:260rpx;
height:70rpx;
}
.cell{
margin-bottom: 30rpx;
}
.quanyiText{
top:0;
position: absolute;
font-size: 34rpx;
width:260rpx;
height:70rpx;
display: flex;
justify-content: center;
align-items: center;
color: #FFFFFF;
}
.celltitle{
font-weight: 550;
font-size: 30rpx;
color: #000000;
}
.celldesc{
margin-top: 15rpx;
font-size: 30rpx;
color: #000000;
}
.buttonbox{
width:100%;
height:200rpx;
}
.btn{
height: 94rpx;
margin:35rpx 30rpx 0;
background: #3CC7C0;
border-radius: 47rpx;
font-size: 36rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
line-height: 50rpx;
text-align: center;
}
.viewcell{
display: flex;
background-color: #fff;
margin:30rpx;
padding:20rpx;
box-shadow: 0rpx 8rpx 20rpx 2rpx rgba(0,0,0,0.04);
border-radius: 10rpx;
}
.headimg{
width:120rpx;
height:120rpx;
border-radius: 50%;
}
.viewcell .type{
height: 32rpx;
margin-bottom: 6rpx;
line-height: 32rpx;
display: flex;
white-space: nowrap;
align-items: center;
margin-left: 18rpx;
padding:0rpx 6rpx;
background: #ED9C00;
border-radius: 4rpx;
color: #FFFFFF;
font-size: 24rpx;
}
.viewcellbox .hospital{
margin-top: 12rpx;
color: #333333;
display: flex;
font-size: 30rpx;
word-wrap: break-word;
}
.hospital_name{
font-size: 28rpx;
word-wrap: break-word;
margin-right: 10rpx;
overflow: hidden;
white-space: nowrap;
color:#333;
text-overflow: ellipsis;
}
.viewcell .right{
flex:1;
margin-left: 20rpx;
}
.namebox{
display: flex;
font-size: 34rpx;
font-weight: 600;
color:#333;
align-items: flex-end;
}
.personbox {
border-radius: 10rpx;
background-color: #fff;
padding: 40rpx 20rpx 144rpx;
overflow-y: scroll;
}
.personbox .row {
margin-top: 30rpx;
display: flex;
justify-content: space-between;
}
.personbox .row:first-child {
margin-top: 0;
}
.personbox .row .cell {
position: relative;
width: 47%;
height: 120rpx;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 30rpx;
border-radius: 10rpx;
border: 1px solid #CCCCCC;
}
.personbox .row .cell:first-child {
margin-left: 0rpx;
}
.personbox .person {
display: flex;
margin: 0 25rpx;
align-items: center;
}
.personbox .tag {
margin-left: 32rpx;
font-size: 24rpx;
display: flex;
align-items: center;
line-height: 24rpx;
justify-content: center;
color: #666666;
width: 80rpx;
height: 32rpx;
border-radius: 4rpx;
transform: rotateZ(360deg);
border: 1rpx solid #979797;
}
.personbox .desc {
display: flex;
margin: 0 25rpx;
font-size: 28rpx;
color: #666;
margin-top: 3px;
}
.personbox .name {
white-space: nowrap;
overflow: hidden;
max-width: 200rpx;
text-overflow: ellipsis;
font-size: 34rpx;
color: #333;
}
.personbox .age {
margin-left: 12rpx;
}
.personbox .cell .gou {
position: absolute;
bottom: -1rpx;
right: 0rpx;
width: 66rpx;
height: 53.7rpx;
}
.personbox .add {
justify-content: center;
align-items: center;
font-size: 34rpx;
color: #333;
}
.own .add.disabled{
color: #999;
}
.titlepop{
font-size: 34rpx;
font-weight: 400;
color: #333333;
padding:40rpx 0;
text-align: center;
width:100%;
border-bottom:1rpx solid #E7E7E7;
}
.van-icon-cross {
color: #333;
font-size: 40rpx !important;
}
.infobox {
margin-top: 40rpx;
}
.info {
border-bottom: 1rpx solid #E7E7E7;
display: flex;
align-items: center;
height: 112rpx;
color: #333333;
}
.infobox .title {
border-bottom: 1rpx solid #E7E7E7;
text-align: center;
font-size: 34rpx;
padding-bottom: 35rpx;
}
.info .name {
white-space: nowrap;
width: 180rpx;
display: flex;
align-items: center;
margin-left: 52rpx;
color: #333333;
font-size: 34rpx;
}
.info text {
margin-top: 20rpx;
color:#E34D59;
display: flex;
align-items: center;
}
.info input {
margin-left: 15rpx;
margin-right: 52rpx;
flex: 1;
}
.input-placeholder {
color: #999999;
font-size: 28rpx;
}
.tip{
padding:30rpx 52rpx 20rpx;
}
.warntitle{
color: #E34D59;
font-size: 28rpx;
}
.warn{
margin-top: 20rpx;
font-size: 24rpx;
line-height: 36rpx;
color: #666666;
}
.next{
display: flex;
align-items: center;
justify-content: center;
height: 94rpx;
font-size: 36rpx;
left: 30rpx;
right: 30rpx;
margin:0 52rpx;
border-radius: 47rpx;
color: #fff;
margin-bottom: 40rpx;
background: #3CC7C0;
}
.celladd{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 120rpx;
}
.btnbox{
position: fixed;
width:100%;
bottom:0rpx;
height: 134rpx;
background:#fff;
}
.btnbox .btn{
border-radius: 47rpx;
border:none;
background: #3CC7C0!important;
margin:0 32rpx;
height: 94rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 36rpx;
color: #FFFFFF!important;
}
.btnbox .btn[disabled]{
color: #000000!important;
background:rgba(0,0,0,0.1)!important;
}
.viewcell .left{
position: relative;
}
.onlinebox .icon {
top: 90rpx;
left: 50%;
position: absolute;
margin-left: -48rpx;
width: 96rpx;
height: 34rpx;
border-radius: 0;
}

View File

@ -0,0 +1,224 @@
// healthyService/pages/healthyIntro/healthyIntro.js
import {throttle} from "../../../utils/util"
import {doctorList} from "../../../api/consultExpert"
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
blockHeight:"150rpx",
type:'',
doctorList:[],
page:1,
pageNumber:10,
isTriggered:false,
show:false,
expertise_id:'',
province_id:'',
city_id:'',
keyword:'',
lock:false,
is_online:0,
sort_order:1,
inquiry_type:'1',
inquiry_mode:'8',
},
handleRefresher(){
this.setData({
lock:false,
page:1,
doctorList:[]
});
this.getDoctorList()
},
goExpertDetail:throttle(function(e){
let {doctorid,price}=e.currentTarget.dataset;
if(price){
app.method.navigateTo({
url:'/healthyService/pages/healthyDetail/healthyDetail?doctor_id='+doctorid
})
}
else{
app.method.navigateTo({
url:'/healthyService/pages/healthyDetail/healthyDetail?doctor_id='+doctorid+"&price="+price
})
wx.showToast({
title: '未设置健康包价格',
icon:'none'
})
}
}),
getDoctorList(){
let {expertise_id,province_id, city_id,sort_order,keyword,page,pageNumber,is_online,inquiry_type,inquiry_mode}=this.data;
doctorList({
expertise_id:expertise_id,
province_id:province_id,
city_id:city_id,
sort_order: sort_order,
is_first_online:is_online,
keyword:keyword,
inquiry_type,
inquiry_mode,
page:page,
per_page:pageNumber
}).then((res)=>{
let {doctorList}=this.data;
if(res.data.length==0){
this.setData({
lock:true,
isTriggered:false
});
return false;
}else{
this.setData({
isTriggered:false,
doctorList:doctorList.concat(res.data)
})
}
})
},
onfresh(){
this.setData({
page:1,
doctorList:[],
lock:false
})
this.getDoctorList();
},
lower(e) {
let {lock}=this.data;
let addPage=this.data.page+1;
if(!lock){
this.setData({
page:addPage
});
this.getDoctorList();
}
},
goAgree(){
this.setData({
showRight:false
})
},
lookGood:throttle(function(){
this.setData({
showRight:true
})
}),
// 显示遮罩层
showModal() {
this.setData({
hideModal: true,
blockHeight:"1130rpx"
})
},
// 隐藏遮罩层
hideModal() {
this.setData({
hideModal: false,
blockHeight:"150rpx"
})
},
touchstart(e) {
this.setData({
startX: e.changedTouches[0].clientX,
startY: e.changedTouches[0].clientY
})
},
angle(start, end) {
var _X = end.X - start.X,
_Y = end.Y - start.Y;
//返回角度 Math.atan()返回数字的反正切值
return 360 * Math.atan(_Y / _X) / (2 * Math.PI);
},
touchend(e) {
let {startX,startY} = this.data;
let slidingRange = 45; //
let touchMoveX = e.changedTouches[0].clientX;
let touchMoveY = e.changedTouches[0].clientY;
let angle = this.angle({
X: startX,
Y: startY
}, {
X: touchMoveX,
Y: touchMoveY
});
//为了方便计算取绝对值判断
if (Math.abs(angle) > slidingRange && touchMoveY < startY) {
this.showModal()
// 向上滑动
};
if (Math.abs(angle) > slidingRange && touchMoveY > startY ) {
this.hideModal()
// 向下滑动
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
if(options.type){
this.setData({
type:'visit'
})
}
this.getDoctorList();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,8 @@
{
"usingComponents": {
"nav":"../../../components/nav/nav",
"van-popup": "@vant/weapp/popup/index",
"van-dialog": "@vant/weapp/dialog/index"
},
"navigationStyle":"custom"
}

View File

@ -0,0 +1,186 @@
<nav navName="健康包服务医生"></nav>
<wxs src="../../../filters/filter.wxs" module="moduleFilter"></wxs>
<view class="page">
<view class="imgbox">
<image src="../../static/images/healthy_bg.jpg" class="bg" mode="widthFix"/>
<image src="../../static/images/healthy_button.png" class="btn" bind:tap="lookGood"/>
</view>
</view>
<van-popup class="mypop" id="mypop" show="{{true}}" lock-scroll="{{true}}" position="bottom" overlay="{{blockHeight=='1130rpx'?true:false}}" duration="500" z-index="9999" custom-style=" border-radius:8rpx;transition: height 0.5s;height:{{blockHeight}};overflow:hidden;" bind:close="onClose">
<view class="popwrper" id="popwrper" bindtouchstart="touchstart" bindtouchend="touchend" style="height:{{blockHeight}}" >
<view class="top">
<image src="../../static/images/up.png" class="up {{blockHeight=='1130rpx'?'active':''}}"></image>
</view>
<view class="popname">
健康包服务医生
</view>
<view class="scrollwraper">
<scroll-view scroll-y style="width: 100%;height:100%" bindrefresherrefresh="handleRefresher" refresher-triggered="{{isTriggered}}" refresher-threshold="100" refresher-enabled="true" bindscrolltolower="lower" id="scroller" bounces="false">
<view wx:if="{{doctorList.length>0}}">
<view class="viewcell" bindtap="goExpertDetail" wx:for="{{doctorList}}" wx:key="doctor_id" data-doctorid="{{item.doctor_id}}" data-price="{{moduleFilter.formatHealthPrcice(item.doctor_inquiry_config)}}">
<view class="left">
<image src="{{item.avatar}}" wx:if="{{item.avatar}}" mode="aspectFill"></image>
<image src="{{img_host+'/doctor_avatar.png'}}" wx:else></image>
<view class="onlinebox" wx:if="{{item.user.is_online==1}}">
<image src="{{img_host+'/online.gif'}}" mode="" class="icon"/>
</view>
</view>
<view class="right">
<view class="namebox">
<view class="name">{{item.user_name}}</view>
<!-- <view class="position" >{{item.doctor_title_name}}</view> -->
<view class="type" wx:if="{{item.hospital.hospital_level_name != '未知'&& item.hospital.hospital_level_name}}">{{item.hospital.hospital_level_name}}</view>
<view class="type" wx:if="{{item.multi_point_status == 1 && item.multi_point_enable==1}}">可处方</view>
</view>
<view class="hospital"><text class="hospital_name" wx:if="{{item.doctor_title_name}}">{{item.doctor_title_name}}</text> <text wx:if="{{item.department_custom_name}}">{{item.department_custom_name}}</text></view>
<view class="hospital"><text class="hospital_name" >{{item.hospital.hospital_name}}</text></view>
<view class="goodjob" wx:if="{{item.be_good_at}}">擅长:{{item.be_good_at}}</view>
<view class="diseaseType" wx:for="{{item.doctor_expertise}}" wx:for-item="cell" wx:key="index">{{cell.expertise_name}}</view>
<view class="detail" wx:if="{{item.is_display_score}}">
<view>评分: <text wx:if="{{item.praise_rate>0}}">{{item.praise_rate}} </text><text wx:else>暂无</text></view>
<view>问诊量: <text wx:if="{{item.served_patients_num>0}}">{{item.served_patients_num}}</text><text wx:else>暂无</text></view>
<view>平均回复: <text wx:if="{{item.avg_response_time>0}}"> {{moduleFilter.formatReply(item.avg_response_time)}}h</text><text wx:else>暂无</text></view>
</view>
<view class="consultbox">
<view class="price" wx:for="{{item.doctor_inquiry_config}}" wx:for-item="itemName" wx:if="{{itemName.inquiry_type==1 && itemName.inquiry_mode==8 && itemName.inquiry_price}}">
<view class="pricecell">健康包:<text>¥{{itemName.inquiry_price}}</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="nonedata" wx:else>暂无数据!</view>
<!-- <view class="viewcell">
<view class="left">
<image src="https://img.applets.igandanyiyuan.com/applet/patient/static/home.png"></image>
</view>
<view class="right">
<view class="namebox">
<view class="name">魏胜昭</view>
<view class="position"> 教授</view>
<view class="type">三甲</view>
<view class="type">可处方</view>
</view>
<view class="hospital">首都医科大学佑安医院 <text decode="true">&nbsp;耳鼻科</text></view>
<view class="goodjob">擅长:治疗耳鼻喉疑难病。比如: 人工关节置换、传导性耳聋、人工晶体植入、肾移···</view>
<view class="diseaseType">中西医结合</view>
<view class="detail">
<view>好评率: <text>5 </text> </view>
<view>服务患者数: <text>100</text></view>
<view>平均回复: <text> 0.5h </text></view>
</view>
<view class="consultbox">
<view class="price">公益问诊:<text>¥100</text></view>
<view class="consult">立即咨询</view>
</view>
</view>
</view> -->
</scroll-view>
</view>
<!-- <view class="infobox" style="margin-top: 32rpx;margin-bottom: 0rpx;padding-bottom: 0;">
<view class="namebox" style="justify-content: flex-start;">
<image src="{{doctorDetail.avatar}}" class="head" wx:if="{{doctorDetail.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">{{doctorDetail.user_name}}</view>
<view class="type" wx:if="{{doctorDetail.hospital.hospital_level_name!='未知' && doctorDetail.hospital.hospital_level_name}}">{{doctorDetail.hospital.hospital_level_name}}</view>
<view class="type" wx:if="{{doctorDetail.multi_point_status==1 && doctorDetail.multi_point_enable==1}}">可处方</view>
</view>
<view class="hospital"><text wx:if="{{doctorDetail.doctor_title_name}}" class="doctor_title">{{doctorDetail.doctor_title_name}}</text><text>{{doctorDetail.department_custom_name}}</text></view>
<view class="hospital">{{doctorDetail.hospital.hospital_name}}</view>
</view>
</view>
<view class="borderbox">
<view class="goodjob" style="margin-top: 30rpx;">
擅长:{{doctorDetail.be_good_at}}
</view>
</view>
</view> -->
</view>
</van-popup>
<van-dialog
use-slot
class="mydailog"
bind:confirm="goAgree"
title="温馨提示"
z-index="9999"
theme='green'
show="{{showRight}}"
confirm-button-color="#3CC7C0"
cancel-button-text="确定"
>
<view class="slotmsg">
<view class="rowbox">
<view class="rowtitle">服务内容:</view>
<view class="row">
<view class="rowleft">1、</view>
<view class="rowright">每个月2次问诊</view>
</view>
<view class="row">
<view class="rowleft">2、</view>
<view class="rowright">30盒肝爽颗粒(3g*9袋) 。
</view>
</view>
</view>
<view class="rowbox">
<view class="rowtitle">服务价格:</view>
<view class="row">
<view class="rowleft">1、</view>
<view class="rowright">健康包价格低至1080元起内所含每月两次问诊费用低至5折超出次数需按照原价支付问诊费</view>
</view>
<view class="row">
<view class="rowleft">2、</view>
<view class="rowright">健康包内包含30盒肝爽颗粒(3g*9袋)原价42.8元/盒健康包内售价为35元/盒超出30盒的可按38.8元/盒优惠价购买;
</view>
</view>
<view class="row">
<view class="rowleft">3、</view>
<view class="rowright">赠送全品类药品劵10元
</view>
</view>
<view class="row">
<view class="rowleft">4、</view>
<view class="rowright">
<view class="desc">赠送肝胆相照商城优惠劵100元。</view>
<view class="tips">(药品总价满100元方可使用不可与其他优惠劵叠加使用)。</view>
</view>
</view>
</view>
<view class="rowbox">
<view class="rowtitle">退款说明:</view>
<view class="row">
<view class="rowleft">1、</view>
<view class="rowright">未使用随时退; </view>
</view>
<view class="row">
<view class="rowleft">2、</view>
<view class="rowright">
健康包开始使用后如需退款请联系客服,退款不收取任何服务费等额外费用,但不支持部分退款;
</view>
</view>
<view class="row">
<view class="rowleft">3、</view>
<view class="rowright">药品一经发出,问诊一经接诊,均概不退换;
</view>
</view>
<view class="row">
<view class="rowleft">4、</view>
<view class="rowright">未消费健康包内容可退款已消费服务的部分按原价计费已发生的问诊按照问诊时互联网医院显示的价格结算肝爽颗粒按照原价每盒42.8元结算。
</view>
</view>
</view>
</view>
</van-dialog>

View File

@ -0,0 +1,461 @@
/* healthyService/pages/healthyIntro/healthyIntro.wxss */
.page {
margin-top: 172rpx;
overflow-y: scroll;
height: calc(100vh - 172rpx - 60rpx);
position: relative;
}
.imgbox {
position: relative;
}
page {
height: 100vh;
overflow: hidden;
}
.btn {
position: absolute;
left: 50%;
margin-left: -232rpx;
width: 464rpx;
height: 86rpx;
bottom: 130rpx;
}
.bg {
width: 100%;
}
.top {
/* position: absolute;
top: 10rpx; */
width: 100%;
display: flex;
justify-content: center;
padding: 20rpx 0;
}
.top .up {
width: 40rpx;
height: 22rpx;
transition: all 0.5s;
}
.top .up.active {
transform: rotate(180deg);
}
.popname {
margin-top: 0rpx;
padding: 20rpx 52rpx 30rpx;
font-size: 34rpx;
color: #333;
border-bottom: 1px solid #E7E7E7;
}
.popwrper {
/* top: 0rpx; */
background-color: #fff;
/* position: relative; */
transition: height 0.5s;
width: 100%;
border-radius: 20rpx;
overflow: hidden;
height: 100%;
bottom: 0px;
}
.wraper {
height: 100%;
}
.containexpert {
margin-top: 172rpx;
padding: 0 30rpx 0rpx;
overflow: hidden;
position: relative;
transform: all 0.3s ease;
}
.droptitle,
.van-ellipsis {
font-size: 30rpx !important;
}
.namebox .name {
max-width: 400rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.droptitle.active {
color: #3CC7C0;
}
.searchbox {
width: 100%;
height: 72rpx;
display: flex;
border-radius: 40rpx;
align-items: center;
margin-top: 20rpx;
background: #FBFBFB;
border-radius: 36px;
border: 1rpx solid #CCCCCC;
}
.searchbox input {
margin-left: 30rpx;
flex: 1;
font-size: 32rpx;
height: 80rpx;
}
.searchbox image {
width: 30rpx;
height: 30rpx;
margin-right: 28rpx;
}
.scroll-view_H {
height: 195rpx;
white-space: nowrap;
vertical-align: top;
}
.scroll-view-item_H {
/* width: 154rpx; */
padding: 0 15rpx;
background: #F4F4F4;
border-radius: 30rpx;
font-size: 28rpx;
color: #666666;
margin-left: 36rpx;
border: 1rpx solid #F4F4F4;
height: 58rpx;
display: inline-block;
text-align: center;
line-height: 58rpx;
}
.page-section-spacing .row {
margin-top: 40rpx;
margin-bottom: 30rpx;
}
.page-section-spacing .row:last-child {
margin-top: 30rpx;
margin-bottom: 10rpx;
}
.scroll-view_H .scroll-view-item_H:first-child {
margin-left: 0rpx;
}
.scroll-view-item_H.active {
background: #E2FFFE;
color: #3CC7C0;
border: 1rpx solid #3CC7C0;
}
.van-dropdown-menu {
box-shadow: none !important;
}
.viewcell {
display: flex;
overflow: hidden;
box-sizing: border-box;
padding: 40rpx 30rpx 30rpx;
width: 100%;
border-radius: 10rpx;
background-color: #fff;
border-bottom: 1rpx solid #E7E7E7;
}
.viewcell:last-child {
border-bottom: none;
}
.viewcell .type {
height: 32rpx;
margin-bottom: 6rpx;
line-height: 32rpx;
display: flex;
white-space: nowrap;
align-items: center;
margin-left: 18rpx;
padding: 0rpx 6rpx;
background: #ED9C00;
border-radius: 4rpx;
color: #FFFFFF;
font-size: 24rpx;
}
.viewcell .hospital {
margin-top: 12rpx;
color: #333333;
display: flex;
font-size: 30rpx;
word-wrap: break-word;
}
.hospital_name {
word-wrap: break-word;
margin-right: 10rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.goodjob {
color: #666666;
margin-top: 28rpx;
line-height: 42rpx;
font-size: 28rpx;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
/* 这里是超出几行省略 */
overflow: hidden;
}
.price {
font-size: 28rpx;
position: relative;
}
.price text {
margin-left: 5rpx;
font-size: 32rpx;
color: #EF4F20;
}
.viewcell .right {
flex: 1;
margin-left: 20rpx;
}
.viewcell image {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
}
.namebox {
display: flex;
font-size: 34rpx;
font-weight: 600;
color: #333;
align-items: flex-end;
}
.namebox .position {
font-weight: normal;
margin-left: 15rpx;
font-size: 30rpx;
}
.dropOnline.active {
color: #3CC7C0;
}
.diseaseType {
height: 40rpx;
background: #E2FFFE;
border-radius: 20rpx;
margin-right: 20rpx;
border: 1rpx solid #3CC7C0;
color: #3CC7C0;
font-size: 24rpx;
display: inline-flex;
text-align: center;
padding: 0 15rpx;
align-items: center;
justify-content: center;
margin-top: 20rpx;
white-space: nowrap;
}
.detail {
margin-top: 20rpx;
display: flex;
font-size: 24rpx;
}
.detail view {
margin-right: 40rpx;
}
.detail view text {
font-size: 28rpx;
color: #3CC7C0;
}
.consultbox {
position: relative;
margin-top: 28rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.consult {
height: 60rpx;
background: #3CC7C0;
border-radius: 30rpx;
color: #FFFFFF;
display: flex;
align-items: center;
padding: 0 20rpx;
font-size: 30rpx;
}
.wraper {
display: flex;
flex-direction: column;
}
.scrollwraper {
flex: 1;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
.dropdown {
width: 100%;
position: relative;
justify-content: center;
align-items: center;
border-bottom: 1rpx solid #E7E7E7;
display: flex;
}
.dropdown .bar {
height: 40rpx;
width: 1rpx;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
position: absolute;
background: #ccc;
opacity: 0.9;
}
.dropbar {
background: #ccc;
opacity: 0.9;
height: 40rpx;
width: 1rpx;
position: static;
margin-top: 30rpx;
}
.dropOnline {
display: flex;
justify-content: center;
align-items: center;
width: 33.33%;
}
.viewcell .left {
position: relative;
}
.price .expert_prcie {
text-decoration: line-through;
color: #999;
}
.price .expert_prcie .priceactive {
color: #999;
}
.pricecell {
display: flex;
font-size: 30rpx;
align-items: center;
white-space: nowrap;
}
.videocell {
position: absolute;
right: 0rpx;
}
.price.qs {
display: none;
}
.price.gy,
.price.hasfree {
display: none;
}
.nonekaitong {
position: absolute;
top: 0rpx;
font-size: 30rpx;
right: 320rpx;
}
.nonekaitong text {
font-size: 30rpx;
}
.popwrper {
display: flex;
flex-direction: column;
}
.slotmsg {
height: 500rpx;
overflow-y: scroll;
padding: 30rpx;
}
.row {
display: flex;
margin-bottom: 6rpx;
line-height: 45rpx;
font-weight: 400;
font-size: 28rpx;
color: #333333;
}
.slotmsg .rowtitle {
margin-bottom: 15rpx;
font-weight: 500;
font-size: 32rpx;
text-align: left;
color: #000000;
}
.slotmsg .rowright{
text-align: left;
}
.rowbox {
margin-bottom: 20rpx;
}
.row .tips {
margin-top: 10rpx;
display: flex;
height: 113rpx;
padding: 0 18rpx;
align-items: center;
background: #F1F1F1;
border-radius: 10rpx;
}

View File

@ -0,0 +1,273 @@
// pages/consultOrder/consultOrder.js
const app = getApp()
import {serviceList} from "../../../api/health"
import{family} from "../../../api/familyDoc"
Page({
/**
* 页面的初始数据
*/
data: {
time: 0,
changeStatus:'',
changeId:'',
isLoading:true,
selectstatus:false,
selectfamily:false,
delId:'',
option1: [
{ text: '全部订单', value: 0 },
{ text: '待支付', value: 1 },
{ text: '待接诊', value: 2 },
{ text: '服务中', value: 3},
{ text: '完成/取消', value: 4}
],
page:1,
isTriggered:false,
pageNumber:10,
option2: [],
order_service_status: 0,
family_id:0,
orderList:[],
isLock:false,
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static',
fromType:''
},
handleRefresher(){
this.setData({
isLock:false,
page:1,
orderList:[]
})
this.getServiceList();
},
goBack(flag=true){
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){
wx.reLaunch({
url: '/pages/my/my',
})
}else{
if(true){
wx.navigateBack({
delta: 1,
fail:function(){
wx.reLaunch({
url: '/pages/index/index',
})
}
})
}
}
}
},
lower(e) {
if(!this.data.isLock){
this.setData({
page: ++this.data.page
})
this.getServiceList()
}
},
goExpertList(){
app.method.navigateTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail' //'/pages/expertConsult/expertConsult',
})
},
changeStatus({ detail }){
this.setData({
isLock:false,
page:1,
selectstatus:true,
order_service_status:detail,
orderList:[]
})
this.getServiceList()
},
changeFamily({ detail }){
this.setData({
family_id:detail,
isLock:false,
selectfamily:true,
page:1,
orderList:[]
})
this.getServiceList()
},
getServiceList(){
let {order_service_status,family_id,page,pageNumber}=this.data;
this.setData({
isLoading:true
})
serviceList({
order_service_status,
family_id,
page,
per_page:pageNumber
}).then(data=>{
let result=data.data;
this.setData({
isLoading:false
})
if(result.length==0){
this.setData({
isLock:true,
isTriggered:false
})
return false
};
this.setData({
orderList:this.data.orderList.concat(result),
isTriggered:false
})
})
},
handelCancelOrder(id){
cancelOrder(id).then(data=>{
wx.showToast({
title: '订单取消成功',
icon:"none"
})
})
},
getfamily(){
family().then(data=>{
let arr=[];
data.forEach((item,index)=>{
arr[index]={};
let sex="";
switch (item.sex){
case '0':sex="未知";
break;
case '1':sex="男";
break;
case '2':sex="女";
break;
}
let age=item.age;
arr[index].text=item.card_name+""+sex+""+age+"";
arr[index].value=item.family_id;
})
arr=[{text:"全部成员",value:0}].concat(arr);
this.setData({
option2:arr
})
this.getServiceList();
})
},
goDetail(event){
let id=event.currentTarget.dataset.id;
app.method.navigateTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id='+id,
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
if(options.fromType){
this.setData({
fromType:options.fromType
})
};
if(options.prevData){
let json=JSON.parse(options.prevData);
this.setData({
changeStatus:json.changeStatus,
changeId:json.changesId
});
}
this.getfamily();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
this.setData({
img_host:app.hostConfig().imghost
});
//刷新列表
let {delId,orderList,changeStatus,changeId}=this.data;
if(delId){
let list=orderList.filter((item)=>{
return item.order_service_id!=delId
})
this.setData({
orderList:list
})
}else if(changeStatus && changeId){
for (let i = 0; i < orderList.length; i++) {
const item =orderList[i];
if(item.order_service_id==changeId){
let currentitem=`orderList[${i}].order_service_status`
this.setData({
[currentitem]:changeStatus
})
break;
}
}
}else{
// this.setData({
// isLock:false,
// page:1,
// orderList:[]
// })
// this.getDetectionList();
// this.getfamily();
}
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
// this.goBack(false)
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
})

View File

@ -0,0 +1,11 @@
{
"usingComponents": {
"van-dropdown-menu": "@vant/weapp/dropdown-menu/index",
"van-dropdown-item": "@vant/weapp/dropdown-item/index",
"van-count-down": "@vant/weapp/count-down/index"
},
"navigationStyle":"custom",
"navigationBarTitleText":"肝胆相照互联网医院"
}

View File

@ -0,0 +1,108 @@
<!--pages/consultOrder/consultOrder.wxml-->
<wxs src="../../../filters/filter.wxs" module="timeModule"></wxs>
<view class="page">
<view class="ui-navigatorbar" style="border-bottom: 1rpx solid #E3E4E5;background:#fff">
<image class="ui-navigatorbar-back" bindtap="goBack" src="{{img_host+'/back.png'}}" />
<view class="ui-title">服务包订单</view>
</view>
<view class="dropdown">
<view class="bar"></view>
<van-dropdown-menu active-color="#3CC7C0">
<van-dropdown-item value="{{ order_service_status }}" options="{{ option1 }}" title-class="droptitle {{selectstatus?'active':''}}" bind:change="changeStatus" />
<van-dropdown-item value="{{ family_id }}" title-class="droptitle {{selectfamily?'active':''}}" options="{{ option2 }}" bind:change="changeFamily" />
</van-dropdown-menu>
</view>
<scroll-view scroll-y="true" bindrefresherrefresh="handleRefresher" refresher-triggered="{{isTriggered}}" refresher-threshold="100" refresher-enabled="true" class="hasdata" bindscrolltolower="lower" wx:if="{{orderList.length>0}}">
<view class="databox">
<view class="datacell" bindtap="goDetail" wx:for="{{orderList}}" wx:key="order_service_id" data-id="{{item.order_service_no}}">
<view class="titlebox">
<view class="name" >{{item.order_service_type==1?'健康包':'随访包'}}</view>
<view class="status" wx:if="{{item.order_service_status==1 && item.pay_status==1}}">
<view class="waitpay">待支付</view>
<view class="countdown">
<van-count-down time="{{timeModule.countDown(item.created_at)}}" />
</view>
</view>
<view class="status waitpay" wx:elif="{{item.order_service_status==2}}">待接诊</view>
<view class="status waitpay" wx:elif="{{item.order_service_status==3}}">服务中</view>
<view class="status" wx:elif="{{item.order_service_status==4}}" >已完成</view>
<view class="status" wx:elif="{{item.order_service_status==5 && item.pay_status!=5 }}">已取消</view>
<view class="status" wx:elif="{{item.order_service_status==5 && item.pay_status==5}}">
<view class="waitpay">支付超时</view>
</view>
</view>
<view class="infobox">
<image src="{{item.user_doctor.avatar}}" class="headicon" wx:if="{{item.user_doctor.avatar}}" mode="aspectFill"></image>
<image src="{{img_host+'/doctor_avatar.png'}}" class="headicon" wx:else></image>
<view class="namebox">
<view class="name" wx:if="{{item.user_doctor.user_name}}">{{item.user_doctor.user_name}} <text class="position">{{item.user_doctor.doctor_title}}</text></view>
<view class="name" wx:elif="{{item.order_service_status==2}}">平台分配医生中</view>
<view class="name" wx:else>接诊医生</view>
<view class="hospital" wx:if="{{item.user_doctor.hospital_name}}">
{{item.user_doctor.hospital_name}}
</view>
</view>
</view>
<div class="validatetime" wx:if="{{item.order_service_status==3}}">有效期:{{item.start_time+"-"+item.finish_time}}</div>
<view class="row first">
<view class="name"><text>就</text><text>诊</text><text>人</text></view>
<view class="dot"></view>
<view class="desc">
<view class="namedesc">
{{item.patient_name}}<text wx:if="{{item.patient_sex==0}}">未知</text><text wx:if="{{item.patient_sex==1}}">男</text><text wx:else>女</text><text decode="true" class="agebar"></text><text>{{item.patient_age}}岁)</text></view>
</view>
</view>
<view class="row rowdesc" wx:if="{{item.order_service_status!=1}}">
<view class="name">病情描述</view>
<view class="dot"></view>
<view class="desc">{{item.disease_desc}}</view>
</view>
<!-- <view class="row rowdesc" wx:else>
<view class="name">下单时间</view>
<view class="dot"></view>
<view class="desc">{{item.created_at}}</view>
</view>-->
<view class="row last" wx:if="{{item.order_service_status!=1}}">
<view class="left">
<view class="name">下单时间</view>
<view class="dot"></view>
<view class="desc">{{item.created_at}}</view>
</view>
<view class="right">
<view class="detail">详情</view>
<image src="{{img_host+'/righticon.png'}}" class="righticon"> </image>
</view>
</view>
<view class="row rowdesc" wx:if="{{item.order_service_status==1}}">
<view class="name">下单时间</view>
<view class="dot"></view>
<view class="desc">{{item.created_at}}</view>
</view>
<view class="row last" wx:if="{{item.order_service_status==1}}">
<view class="left">
<view class="name">待付金额</view>
<view class="dot"></view>
<view class="desc red">¥{{item.payment_amount_total}}</view>
</view>
<view class="right">
<view class="detail">详情</view>
<image src="{{img_host+'/righticon.png'}}"class="righticon"> </image>
</view>
</view>
</view>
</view>
</scroll-view>
<view class="nodata" wx:elif="{{!isLoading && orderList.length==0}}">
<image src="{{img_host+'/nocheck.png'}}" class="noorder"></image>
<view class="tips">暂无服务包订单</view>
<!-- <view class="btn" bindtap="goExpertList">专家问诊</view> -->
</view>
</view>

View File

@ -0,0 +1,343 @@
/* pages/consultOrder/consultOrder.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 {
display: flex;
flex-direction: column;
}
.dropdown {
position: relative;
height:102rpx;
margin-top: 172rpx;
}
.dropdown .bar {
position: absolute;
height: 40rpx;
width: 1rpx;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
background: #ccc;
opacity: 0.9;
}
.van-dropdown-menu {
box-shadow: none !important;
border-bottom: 1rpx solid #E7E7E7;
}
.btn {
position: absolute;
bottom: 20rpx;
left: 32rpx;
right: 32rpx;
display: flex;
height: 94rpx;
background: #3CC7C0;
border-radius: 47rpx;
justify-content: center;
align-items: center;
color: #fff;
background: #3CC7C0;
}
.nodata {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
}
.noorder {
margin-top: 150rpx;
width: 518rpx;
height: 325rpx;
}
.tips {
font-size: 28rpx;
font-weight: 400;
color: #666666;
}
.hasdata{
flex: 1;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
margin-top: 20rpx;
}
.datacell{
background:#fff;
padding-bottom: 20rpx;
margin-bottom:10rpx;
}
.datacell:last-child{
margin-bottom: 0;
}
.status{
color: #333333;
font-size: 28rpx;
}
.titlebox .name{
color: #000;
font-size: 32rpx;
}
.titlebox{
padding:0 32rpx;
height: 112rpx;
border-bottom: 1rpx solid #E3E4E5;
display: flex;
justify-content: space-between;
align-items: center;
}
.waitpay{
text-align: right;
color: #EF4F20
}
.headicon{
width:80rpx;
height:80rpx;
flex-shrink: 0;
border-radius: 50%;
}
.van-count-down {
margin-top: 5rpx;
color: #EF4F20!important;
}
.infobox{
padding:20rpx 32rpx 0;
align-items: center;
display: flex;
}
.infobox .name{
margin-left: 30rpx;
font-weight: 600;
}
.hospital{
margin-left: 30rpx;
font-size: 28rpx;
font-weight: 400;
color: #333333;
}
.infobox .position{
font-weight:normal;
}
.validatetime{
height: 64rpx;
display: flex;
background: #FAFAFA;
padding: 10rpx;
font-size: 28rpx;
color: #333;
margin:20rpx 32rpx 0;
align-items: center;
border-radius: 8rpx;
}
.row{
align-items: center;
padding:0 32rpx;
display: flex;
line-height: 52rpx
}
.row.first{
margin-top: 15rpx;
}
.row .name{
white-space: nowrap;
font-size: 28rpx;
color:#333;
font-weight: 600;
width:112rpx;
align-items: baseline;
}
.row.first .name{
display: flex;
justify-content: space-between;
}
.row .dot{
align-items: baseline;
height: 52rpx;
font-weight: 600;
display: flex;
}
.row .desc{
align-items: baseline;
font-size: 28rpx;
line-height: 52rpx;
color:#333;
}
.row .desc.red{
color:rgba(239, 79, 32, 1);
}
.rowdesc{
align-items: flex-start;
}
.namedesc{
display: flex;
align-items: center;
}
.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;
}
.row .left{
display: flex;
}
.row .right{
display: flex;
}
.righticon{
width:24rpx;
height:48rpx;
}
.right .detail{
margin-right: 10rpx;
color: #666666;
}
.agebar{
display: inline-block;
width:2rpx;
background: #333;
height:26rpx;
margin: 0rpx 10rpx 0;
}

View File

@ -0,0 +1,705 @@
// 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,
columns:[],
showMoneyDetail:true,
status:'',
order_no:'',
showWarn:false,
order_inquiry_id:'',
messageWarn:'',
showJuan:true,
refund:{},
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.showProduct){
this.setData({
productList:list.slice(0,1)
})
}else{
this.setData({
productList:list
})
}
},
goApp:throttle(function(e){
wx.navigateToMiniProgram({
appId: 'wxdee7006582529713',
path:'/pages/home/dashboard/index',
envVersion: 'release',
success(res) {
// 打开成功
}
})
}),
goWelfare:throttle(function(e){
let {status}=e.currentTarget.dataset;
app.method.navigateTo({
url:'/patient/pages/myWelfare/myWelfare?status='+status
})
}),
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
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,
refund:data.order_refund[0],
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();
this.handelServiceEquityDetail(this.data.order_service_id)
})
},
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() {
},
/**
* 用户点击右上角分享
*/
})

View File

@ -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": "肝胆相照互联网医院"
}

View File

@ -0,0 +1,393 @@
<!--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="{{img_host+'/back.png'}}" />
<view class="ui-title">服务包订单详情</view>
</view>
<view class="page">
<view class="outwraper {{order.order_service_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="rowbox" style="margin-top: 172rpx;">
<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.order_service_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.order_service_status==2}}">待接诊</view>
<view class="status waitpay" wx:elif="{{order.order_service_status==3}}">服务中</view>
<view class="status" wx:elif="{{order.order_service_status==4}}" >服务完成</view>
<view class="status" wx:elif="{{order.order_service_status==5 && order.pay_status!=5 }}">服务取消</view>
<view class="status waitpay" wx:elif="{{order.order_service_status==5 && order.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.order_service_no}}</view>
<view class="bar">
|
</view>
<view class="copy" bindtap="copy" data-text="{{order.order_service_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">{{order.order_service_type==1?"健康包":'随访包'}}</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 class="moneydetail" bind:tap="toggleDetail" wx:if="{{order.order_service_type==1}}">明细<van-icon name="{{showMoneyDetail?'arrow-down':'arrow-up'}}" color="#fff" size="12"/></view>
</view>
<view class="detaibox" wx:if="{{showMoneyDetail && order.order_service_type==1}}">
<view class="row">
<view class="namebox">
<view class="name">
<view class="threeword">
<view>药</view>
<view>品</view>
<view>费</view>
</view>
</view>
<view class="dot"></view>
</view>
<view class="desc ">
¥{{order.discount_product_total_amount}}
</view>
</view>
<view class="row">
<view class="namebox">
<view class="name">
<view class="threeword">
<view>问</view>
<view>诊</view>
<view>费</view>
</view>
</view>
<view class="dot"></view>
</view>
<view class="desc ">
¥{{(pay_money-order.discount_product_total_amount)}}
</view>
</view>
</view>
<view class="row beizhu" wx:if="{{order.cancel_remarks}}">
<view class="namebox">
<view class="name"><text>备</text><text>注</text></view>
<view class="dot"></view>
</view>
<!-- 取消订单原因1:主动取消 2:客服取消 3:支付超时) -->
<view class="desc rightbox">{{order.cancel_remarks}}</view>
<!-- <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>
<view class="row beizhu" wx:if="{{order.order_service_status==2}}">
<view class="namebox">
<view class="name"><text>备</text><text>注</text></view>
<view class="dot"></view>
</view>
<!-- 取消订单原因1:主动取消 2:客服取消 3:支付超时) -->
<view class="desc rightbox">
医生接诊前可点击取消订单按钮,自动退款</view>
</view>
<!-- 商品订单退款状态0:无退款 1:申请退款 2:退款中 3:退款成功 4:拒绝退款 5:退款关闭) -->
<view class="row" wx:if="{{order.order_refund.length>0}}">
<view class="namebox">
<view class="name">退款进度</view>
<view class="dot"></view>
</view>
<view class="desc rightbox" wx:if="{{refund.refund_status==0}}">
无退款
</view>
<view class="desc rightbox" wx:elif="{{refund.refund_status==1}}">
申请退款
</view>
<view class="desc rightbox" wx:elif="{{refund.refund_status==2}}">
退款中
</view>
<view class="desc rightbox" wx:elif="{{refund.refund_status==3}}">
退款成功
</view>
<view class="desc rightbox" wx:elif="{{refund.refund_status==4}}">
拒绝退款
</view>
<view class="desc rightbox" wx:elif="{{refund.refund_status==5}}">
退款关闭
</view>
</view>
<view class="row" wx:if="{{order.order_refund.length>0}}">
<view class="namebox">
<view class="name">退款金额</view>
<view class="dot"></view>
</view>
<view class="desc rightbox" >
¥{{refund.refund_total}}
</view>
</view>
<!-- 检测订单状态(1:待支付 2:待绑定 3:检测中 4:检测完成 5:已取消) -->
<view class="dealbox">
<view class="cancelbtn" wx:if="{{order.order_service_status==2}}" bind:tap="confirmCancelOrder">取消订单</view>
<view class="linkbtn" style="margin-left: 20rpx;" wx:if="{{order.order_service_status==2 || order.order_service_status==3 || order.order_service_status==4 || (order.order_service_status==5 && order.refund_status==2)}}" bindtap="orderMsg">
联系客服
</view>
</view>
</view>
<view class="quanyibox rowbox " wx:if="{{(order.order_service_status==1 || order.order_service_status==2 || order.order_service_status==3 || order.order_service_status==4 || (order.order_service_status==5 && order.cancel_reason==4))}}">
<view class="topbox">
<view class="title">服务权益</view>
<view class="row {{order.order_service_status==2?'mb':''}}" wx:if="{{order.order_service_status==2 || order.order_service_status==3 || order.order_service_status==4}}">
<view class="namebox">
<view class="name">有 效 期</view>
<view class="dot"></view>
</view>
<view class="desc time" wx:if="{{order.order_service_status==2}}"><text class="red">接诊后有效</text></view>
<view class="desc time" wx:elif="{{order.order_service_status==3 || order.order_service_status==4}}"><text class="red">{{filter.transforDay(equity.order_service_package.start_time,'dotdateminute')+'-'+filter.transforDay(equity.order_service_package.finish_time,'dotdateminute')}}</text></view>
</view>
<view class="row" style="align-items: flex-start;" wx:if="{{ order.order_service_status==3 }}">
<view class="namebox">
<view class="name">当月时间</view>
<view class="dot"></view>
</view>
<view class="desc time" wx:if="{{order.order_service_status==3}}">{{equity.order_service_package.current_month_start_date+'-'+equity.order_service_package.current_month_finish_date}}</view>
</view>
</view>
<view class="medbox" wx:if="{{equity.order_service_package.order_service_type==2}}" >
<view class="title">问诊服务</view>
<view class="row" style="position: relative;margin-bottom: 22rpx;" wx:if="{{order.order_service_status==1 || order.order_service_status==2 || (order.order_service_status==5 && order.cancel_reason!=4)}}">
<view class="namebox">
<view class="name"><text decode>内&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;容</text></view>
<view class="dot"></view>
</view>
<view class="desc"><text class="red">{{equity.order_service_package_detail.service_period/30}}个</text>月内,每月<text class="red">{{equity.order_service_package_detail.monthly_frequency==0?'不限':equity.order_service_package_detail.monthly_frequency}}次</text>问诊</view>
</view>
<view class="row" style="position: relative;margin-bottom: 22rpx;" wx:if="{{order.order_service_status==3 || order.order_service_status==4 }}">
<view class="namebox" wx:if="{{!(equity.order_inquiry.length==0 && equity.product.length==0) }}">
<view class="name">当月剩余</view>
<view class="dot"></view>
</view>
<view class="desc" wx:if="{{!(equity.order_inquiry.length==0 && equity.product.length==0)}}"><text class="red">{{equity.order_service_package_detail.monthly_frequency==0?'不限':(equity.order_service_package_detail.monthly_frequency-equity.order_service_package_detail.month_inquiry_count)}}次</text>图文</view>
<view class="expand" wx:if="{{ equity.order_inquiry.length>1 && (order.order_service_status==3 || order.order_service_status==4 || (order.order_service_status==5 && order.pay_status!=5))}}" bind:tap="toggleExpand">{{showExpand?'收起':'展开'}} <van-icon name="{{showExpand?'arrow-down':'arrow-up'}}" /></view>
</view>
<view class="usebox" wx:for="{{inquriyList}}"
wx:if="{{ equity.order_inquiry.length>0 && (order.order_service_status==3 || order.order_service_status==4 || (order.order_service_status==5 && order.pay_status!=5))}}"
wx:key="order_inquiry_id" bind:tap="goInquiry" data-id="{{item.order_inquiry_id}}">
<view class="time">问诊时间:{{item.created_at}}</view>
<view class="detail">{{item.inquiry_status==1?'待支付':item.inquiry_status==2?'待分配':item.inquiry_status==3?'待接诊':item.inquiry_status==4?'问诊中':item.inquiry_status==5?'问诊完成':item.inquiry_status==6?'问诊结束':'问诊取消'}}<van-icon name="arrow" size="12px" color="#999"/></view>
</view>
</view>
<view class="medbox" wx:if="{{equity.order_service_package.order_service_type==1}}">
<view class="title">问诊服务</view>
<view class="row" style="position: relative;margin-bottom: 22rpx;" wx:if="{{order.order_service_status==1 || order.order_service_status==2 || (order.order_service_status==5 && order.cancel_reason!=4)}}">
<view class="namebox">
<view class="name"><text decode>内&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;容</text></view>
<view class="dot"></view>
</view>
<view class="desc"><text class="red">3个</text>月内,每月<text class="red">2次</text>问诊</view>
</view>
<view class="row" style="position: relative;margin-bottom: 22rpx;" wx:if="{{order.order_service_status==3}}">
<view class="namebox" wx:if="{{!(equity.order_inquiry.length==0 && equity.product.length==0) }}">
<view class="name">当月剩余</view>
<view class="dot"></view>
</view>
<view class="desc" wx:if="{{!(equity.order_inquiry.length==0 && equity.product.length==0)}}"><text class="red">{{equity.order_service_package_detail.monthly_frequency==0?'不限':(equity.order_service_package_detail.remaining_inquiry_count)}}次</text>图文</view>
<view class="expand" wx:if="{{ equity.order_inquiry.length>1 && (order.order_service_status==3 || order.order_service_status==4 || (order.order_service_status==5 && order.pay_status!=5))}}" bind:tap="toggleExpand">{{showExpand?'收起':'展开'}} <van-icon name="{{showExpand?'arrow-down':'arrow-up'}}" /></view>
</view>
<view class="usebox" wx:for="{{inquriyList}}"
wx:if="{{ equity.order_inquiry.length>0 && (order.order_service_status==3 || order.order_service_status==4 || (order.order_service_status==5 && order.pay_status!=5))}}"
wx:key="order_inquiry_id" bind:tap="goInquiry" data-id="{{item.order_inquiry_id}}">
<view class="time">问诊时间:{{item.created_at}}</view>
<view class="detail">{{item.inquiry_status==1?'待支付':item.inquiry_status==2?'待分配':item.inquiry_status==3?'待接诊':item.inquiry_status==4?'问诊中':item.inquiry_status==5?'问诊完成':item.inquiry_status==6?'问诊结束':'问诊取消'}}<van-icon name="arrow" size="12px" color="#999"/></view>
</view>
</view>
<view class="medbox" wx:if="{{equity.order_service_package.order_service_type==1}}">
<view class="title">药品服务</view>
<view class="row" style="position: relative;margin-bottom: 22rpx;" wx:if="{{order.order_service_status==1 || order.order_service_status==2 || (order.order_service_status==5 && order.cancel_reason!=4) }}">
<view class="namebox">
<view class="name"><text decode>内&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;容</text></view>
<view class="dot"></view>
</view>
<view class="desc"><text class="red">30盒</text>肝爽颗粒(步长)</view>
</view>
<view class="row" style="position: relative;margin-bottom: 22rpx;" wx:if="{{order.order_service_status==3}}">
<view class="namebox" wx:if="{{!(equity.order_inquiry.length==0 && equity.product.length==0)}}">
<view class="name">药品剩余</view>
<view class="dot"></view>
</view>
<view class="desc" wx:if="{{!(equity.order_inquiry.length==0 && equity.order_product.length==0)}}"><text class="red">{{equity.order_service_package_detail.remaining_quantity}}盒</text>肝爽颗粒(步长) </view>
<view class="expand" bind:tap="toggleProduct" wx:if="{{yaoList.length>1 && (order.order_service_status==3 || order.order_service_status==4 || (order.order_service_status==5 && order.pay_status!=5))}}">{{showProduct?'收起':'展开'}} <van-icon name="{{showProduct?'arrow-down':'arrow-up'}}" /></view>
</view>
<view class="usebox" wx:for="{{productList}}" wx:key="order_product_id" bind:tap="goProduct" data-id="{{item.order_product_id}}">
<view class="time">下单时间:{{item.created_at}}</view>
<view class="detail">{{item.order_product_status==1?'待支付':item.order_product_status==2?'待发货':item.order_product_status==3?'已发货':item.order_product_status==4?'已签收':'已取消'}}<van-icon name="arrow" size="12px" color="#999"/></view>
</view>
</view>
<view class="medbox" wx:if="{{equity.order_service_package.order_service_type==1}}">
<view class="title">优惠卷</view>
<view class="row" style="position: relative;margin-bottom: 22rpx;align-items: flex-start;">
<view class="namebox">
<view class="name"><text decode>内&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;容</text></view>
<view class="dot"></view>
</view>
<view class="desc">
<view wx:for="{{juanList}}" wx:key="id">{{item.name}}</view>
</view>
<view class="expand" bind:tap="toggleJuan" wx:if="{{juanList.length>0 && (order.order_service_status==3 || order.order_service_status==4 || (order.order_service_status==5 && order.pay_status!=5))}}">{{showJuan?'收起':'展开'}} <van-icon name="{{showJuan?'arrow-down':'arrow-up'}}" /></view>
</view>
<view wx:if="{{order.order_service_status!=1 && !(order.order_service_status==5 && order.pay_status==5)}}" wx:for="{{equity.order_service_package_coupon}}" wx:key="coupon_id" bind:tap="goWelfare" class="usebox" data-status="{{item.user_coupon_status}}">
<view class="time">{{item.coupon.coupon_name}}</view>
<view class="detail">{{item.user_coupon_status==0?'未使用':item.user_coupon_status==1?'已使用':'已过期'}}<van-icon name="arrow" size="12px" color="#999"/></view>
</view>
<view class="usebox" bind:tap="goApp" wx:if="{{order.order_service_status!=1 && order.order_service_status!=2 && !(order.order_service_status==5 && order.pay_status==5)}}">
<view class="time">100元的肝胆商城优惠劵</view>
<view class="detail">注册即发放<van-icon name="arrow" size="12px" color="#999"/></view>
</view>
</view>
</view>
<view class="patientBox">
<view class="titlebox">
<view class="title">患者信息</view>
<view class="more" bind:tap="goSickInfo">查看详情病情信息<van-icon name="arrow" /></view>
</view>
<view class="patientdesc">
<view class="name">{{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 class="nameinfo">
<view class="name">所患疾病:{{order.case.disease_class_name}}</view>
<view class="name">病情主诉:{{order.case.disease_desc}}</view>
</view>
</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>
</view>
</view>
<!-- 检测订单状态(1:待支付 2:待绑定 3:检测中 4:检测完成 5:已取消) -->
<view class="paybox" wx:if="{{order.pay_status==1&& order.order_service_status!=5}}">
<view class="left" bindtap="confirmCancelPay">取消支付</view>
<view class="right" bindtap="goPay">
立即支付
</view>
</view>
<view class="paybox" style="background-color: transparent;" wx:if="{{order.order_service_status==3 }}">
<view class="submitbtn" bindtap="handleCheckService">去使用</view>
</view>
<view class="paybox" style="background-color: transparent;" wx:if="{{order.order_service_status==4 || (equity.order_service_package_detail.monthly_frequency!=0 && equity.order_service_package_detail.monthly_frequency-equity.order_service_package_detail.month_inquiry_count==0)}}">
<view class="submitbtn" bindtap="goXuFei">去续费</view>
</view>
<dialog bind:confirm="confirm" cancelBtn="{{cancelBtn}}" showDialog="{{showDialog}}" message="{{message}}"></dialog>
<van-dialog id="van-dialog" confirm-button-color="#3CC7C0" />
<van-dialog id="van-dialog" confirm-button-color="#3CC7C0" />
<dialog bind:confirm="confirmCheck" cancelBtn="{{true}}" showDialog="{{showCheckDialog}}" message="{{checkmessage}}" confirmtext="继续"></dialog>
<van-dialog
show-cancel-button
class="mydailog"
bind:confirm="goHasOrder"
title="温馨提示"
message="{{messageWarn}}"
z-index="9999"
theme='green'
show="{{showWarn}}"
confirm-button-color="#3CC7C0"
cancel-button-text="取消"
confirm-button-text="{{confirmText}}"
>
</van-dialog>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,189 @@
// pages/sickInfo/sickInfo.js
const app = getApp();
import {serviceSickInfo} from "../../../api/health"
import {formatDateText} from "../../../utils/util"
Page({
/**
* 页面的初始数据
*/
data: {
sick:{
},
otherList:[]
},
previewImage(event) {
let id = event.currentTarget.dataset.id;
let urls = this.data.sick.diagnose_images;
wx.previewImage({
current: urls[id], // 当前显示图片的http链接
urls: urls // 需要预览的图片http链接列表
})
},
getsickInfo(id){
serviceSickInfo(id).then(data=>{
this.setData({
sick:data,
});
//infoType 1 只有是否 2 饮酒,吸烟 3 化合物 4 只有文字叙述
let filter1=[];
let filter2=[];
let arr=[
{
type:"taboo",
name:'是否服用过您想购买的药品且无相关禁忌:',
nameTip:'',
status:data.is_taboo,
desc:"",
infoType:1
},
{
type:"allergy_history",
name:'是否有过敏史:',
nameTip:'过敏史:',
infoType:1,
status:data.is_allergy_history,
desc:data.allergy_history
},
{
type:"family_history",
name:'是否有家族史:',
nameTip:'家族史:',
infoType:1,
status:data.is_family_history,
desc:data.family_history
},
{
infoType:1,
type:"pregnant",
name:'是否处于备孕、妊娠、哺乳期:',
nameTip:'',
status:data.is_pregnant,
desc:data.pregnant
},
{ infoType:1,
type:"operation",
name:'是否做过手术:',
nameTip:'手术史',
status:data.is_operation,
desc:data.operation
},
{
infoType:2,
type:"drink_wine",
name:'是否有饮酒史:',
nameTip:'',
status:data.drink_wine_status,
desc:''
},
{
infoType:2,
type:"smoke",
name:'是否有吸烟史:',
nameTip:'',
status:data.smoke_status,
desc:''
},
{
infoType:3,
type:"chemical",
name:'是否有接触过化学物:',
nameTip:'接触过的化学物:',
status:data.chemical_compound_status,
desc:data.chemical_compound_describe
},
{
infoType:4,
type:'hospital',
name:'确诊医院:',
status:'',
nameTip:'',
desc:data.diagnosis_hospital
},
{
type:"takeMedince",
name:'是否服药:',
nameTip:'正在服药:',
status:data.is_take_medicine,
desc:data.drugs_name,
infoType:1
}
]
if(data.sex==1){
filter1=arr.filter((item)=>{
return item.type!="pregnant"
});
}else{
filter1=arr;
}
if(!data.diagnosis_hospital){
filter2=filter1.filter((item)=>{
return item.type!="hospital"
});
}else{
filter2=filter1
}
let newarr=filter2.filter((item)=>{
return item.status!=null
});
let date=formatDateText(this.data.sick.diagnosis_date);
this.setData({
otherList:newarr,
"sick.diagnosis_date":date
})
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.getsickInfo(options.order_no)
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
})

View File

@ -0,0 +1,7 @@
{
"usingComponents": {
"nav":"../../../components/nav/nav"
},
"navigationStyle":"custom",
"navigationBarTitleText": "肝胆相照互联网医院"
}

View File

@ -0,0 +1,93 @@
<!--pages/sickInfo/sickInfo.wxml-->
<nav navName="病例信息"></nav>
<view class="page">
<view class="wraper">
<view class="databox">
<view class="title">基本信息</view>
<view class="cell">
<view class="name">{{sick.name}}<text wx:if="{{sick.sex=='1'}}">男</text><text wx:elif="{{sick.sex=='2'}}">女</text><text wx:else>未知</text>{{sick.age}}岁)</view>
</view>
<view class="info">
<view class="row">
<view class="name">所患疾病:</view>
<view class="desc">{{sick.disease_class_name}}</view>
</view>
<view class="row">
<view class="name">确诊日期:</view>
<view class="desc">{{sick.diagnosis_date}}</view>
</view>
<view class="row">
<view class="name">病情主诉:</view>
<view class="desc">{{sick.disease_desc}}
</view>
</view>
<view class="row textbox" wx:if="{{sick.product.length>0}}">
<view class="name">用药意向:</view>
<view class="desc">
<text class="goods" wx:for="{{sick.product}}" wx:key="product_id">{{item}}</text>
</view>
</view>
<view class="row" wx:if="{{sick.diagnose_images.length>0}}">
<view class="name">复诊凭证:</view>
</view>
<view class="imglist">
<image src="{{item}}" class="img" wx:for="{{sick.diagnose_images}}" mode="aspectFill" wx:for-index="idx" wx:key="idx" bindtap="previewImage" data-id="{{idx}}" ></image>
</view>
</view>
</view>
<view class="databox other">
<view class="title">其他信息</view>
<view class="cell" wx:if="{{otherList.length>0}}">
<view class="row" wx:for="{{otherList}}" wx:key="type">
<view class="num">{{index+1}}、</view>
<view class="qabox" wx:if="{{item.infoType==1}}">
<view class="qa">
{{item.name}}
<text class="answer" wx:if="{{item.status==1}}">是</text><text class="answer" wx:else>否</text>
</view>
<view class="radiotip" wx:if="{{item.status==1 && item.desc}}">
<text>{{item.nameTip}}</text>
{{item.desc}}
</view>
</view>
<view class="qabox" wx:elif="{{item.infoType==2}}">
<view class="qa">
{{item.name}}
<text class="answer" wx:if="{{item.status==1}}">从不</text>
<text class="answer" wx:elif="{{item.status==2}}">偶尔</text>
<text class="answer" wx:elif="{{item.status==3}}">经常 </text>
<text class="answer" wx:elif="{{item.status==4}}">每天</text>
<text class="answer" wx:else>
<text wx:if="{{item.type=='smoke'}}">已戒烟</text>
<text wx:else>已戒酒</text>
</text>
</view>
</view>
<view class="qabox" wx:elif="{{item.infoType==3}}">
<view class="qa">
{{item.name}}
<text class="answer" wx:if="{{item.status==1}}">从不</text>
<text class="answer" wx:elif="{{item.status==2}}">偶尔</text>
<text class="answer" wx:elif="{{item.status==3}}">经常 </text>
<text class="answer" wx:elif="{{item.status==4}}">每天</text>
</view>
<view class="radiotip" wx:if="{{item.status && item.status!=1}}">
<text>{{item.nameTip}}</text>
{{item.desc}}
</view>
</view>
<view class="qabox" wx:elif="{{item.infoType==4}}">
<view class="qa">
{{item.name}}
<text class="answer" >{{item.desc}}</text>
</view>
</view>
</view>
</view>
<view class="nonedata cell" style="padding-bottom: 0;" wx:else>暂无数据!</view>
</view>
</view>
</view>

View File

@ -0,0 +1,142 @@
/* pages/sickInfo/sickInfo.wxss */
.page{
height:100vh;
display: flex;
flex-direction: column;
background: #f2f2f2;
}
.wraper{
overflow: scroll;
flex:1;
margin-top: 172rpx;
-webkit-overflow-scrolling: touch;
}
.databox{
margin:0 32rpx;
}
.databox .title{
margin:30rpx 0 20rpx;
}
.cell{
background-color: #fff;
border-radius: 10rpx;
}
.other .cell{
margin-bottom: 20rpx;
min-height: 200rpx;
}
.other .cell{
padding-bottom: 30rpx;
}
.cell .name{
color: #333333;
height: 94rpx;
display: flex;
padding:0 20rpx;
align-items: center;
font-size: 34rpx;
border-bottom:1rpx solid #E7E7E7;
}
.info{
background-color: #fff;
padding-bottom: 30rpx;
}
.info .row{
line-height: 52rpx;
display: flex;
padding:0 20rpx;
}
.qabox{
width:100%;
}
.info .row:first-child{
padding-top: 30rpx;
}
.info .name{
white-space: nowrap;
font-size:32rpx;
color:#333;
}
.info .desc{
font-size:28rpx;
color:#666!important;
word-break: break-all;
}
.textbox .desc{
word-break: break-all;
line-height: 42rpx;
color: #666;
margin-bottom: 20rpx;
font-size: 28rpx;
}
.textbox .goods{
color:#666!important;
display: inline;
white-space:normal;
}
.textbox .goods:after{
content:""
}
.textbox .goods:last-child:after{
content:""
}
.textbox view:last-child{
margin-bottom: 0;
}
.textbox text{
color: #333333;
font-size: 28rpx;
}
.imglist{
display: flex;
padding:0 20rpx;
flex-wrap: wrap;
}
.img{
width: 148rpx;
height:148rpx;
margin-right: 18rpx;
margin-bottom: 18rpx;
}
.img:nth-child(4n){
margin-right: 0;
}
.other .row{
display: flex;
line-height: 52rpx;
padding:0 20rpx;
}
.other .row:first-child{
padding-top: 30rpx;
}
.other .row .answer{
color:#666;
font-size: 28rpx;
}
.radiotip{
padding:24rpx 20rpx;
word-break: break-all;
margin-right: 20rpx;
margin-bottom: 20rpx;
justify-content: center;
margin-top: 20rpx;
line-height: 42rpx;
background: #F2F2F2;
border-radius: 10rpx;
font-size: 28rpx;
color:#999;
}
.radiotip text{
white-space: nowrap;
color:#333;
}

View File

@ -0,0 +1,448 @@
// healthyService/pages/healthyDetail/healthyDetail.js
import {doctorDetail} from "../../../api/consultExpert"
import {getItems,createServiceChatOrder,getServiceDetail} from "../../../api/health"
import {family,addfamily} from "../../../api/familyDoc";
import {throttle} from "../../../utils/util"
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
order_no:'',
monthly_frequency:'',
columns:[
{text:"本人",value:1},
{text:"父母",value:2},
{text:"爱人",value:3},
{text:"子女",value:4},
{text:"亲戚",value:5},
{text:"其他 ",value:6}
],
order_inquiry_id:'',
chat_id:'',
confirmText:'确定',
multi_point_enable:'',
multi_point_status:'',
hospital:{},
status:'',
follow_package_item_id:'',
message:'',
showWarn:false,
img_host:app.hostConfig().imghost,
doctor_id:'',
currentData:0,
inquiry_mode:9,
inquiry_type:1,
current_price:'',
avatar: '',
user_name: '',
doctor_title: '',
doctor_title_name:'',
user_id:'',
is_online:'0',
hospital: null,
priceList:[],
show:false,
currentFamilyId:'',
realName:'',
idCard:'',
phoneNumber:'',
relationId:'',
sex:'',
service_type:2,
chat_id:'',
img_host:app.hostConfig().imghost
},
onConfirm(event) {
const { value} = event.detail;
this.setData({
relationId: `${value.value}`,
relation:`${value.text}`,
showPicker:false
});
},
openPicker(){
this.setData({
showPicker:true
})
},
closePicker(){
this.setData({
showPicker:false
})
},
inputChange(e) {
this.setData({
[e.target.dataset.id]: e.detail.value
})
},
goNext:throttle(function() {
this.handleGetServiceDetail();
}),
addFamily() {
let {
realName,
idCard,
phoneNumber,
relationId,
sex
} = this.data;
addfamily({
card_name: realName,
type: 1,
id_number: idCard,
mobile: phoneNumber,
is_default: 0,
relation: relationId
}).then((data) => {
this.getFamily();
this.setData({
currentFamilyId:data.family_id,
realName:'',
idCard:'',
phoneNumber:'',
relationId:'',
relation:'',
showAdd:false
})
})
},
goHasOrder(){
let {status,doctor_id,order_no}=this.data;
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==3){
app.method.navigateTo({
url:'/patient/pages/expertDetail/expertDetail?doctor_id='+doctor_id
})
}else if(status==5){
this.handleCreateServiceChatOrder(order_no)
}
},
addPatient() {
this.setData({
showAdd: true,
currentFamilyId: '',
sex: ''
})
},
selectPatient(e) {
let currentFamilyId=e.currentTarget.dataset.familyid;
let sex=e.currentTarget.dataset.sex;
let name=e.currentTarget.dataset.name;
let age=e.currentTarget.dataset.age;
this.setData({
currentFamilyId:currentFamilyId,
sex:sex
})
},
transforpage(arr) {
const pages = []
let newArr = arr.concat([{
type: "add"
}])
newArr.forEach((item, index) => {
const page = Math.floor(index / 2)
if (!pages[page]) {
pages[page] = []
}
pages[page].push(item)
});
return pages
},
confirmNext() {
if (!/^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$/.test(this.data.realName)) {
wx.showToast({
title: `姓名要求在2-10个字符`,
icon: 'none',
});
return false;
};
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)) {
wx.showToast({
title: `请输入有效的身份证号`,
icon: 'none',
});
return false;
};
if (!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)) {
wx.showToast({
title: `请输入有效的手机号码!`,
icon: 'none',
});
return false;
}
},
getFamily() {
family().then((data) => {
this.setData({
family: this.transforpage(data)
})
})
},
goSick:throttle(function() {
if (!/^([\u4e00-\u9fa5\·]{2,10})$/.test(this.data.realName)) {
wx.showToast({
title: `姓名要求在2-10个汉字`,
icon: 'none',
});
return false;
};
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)) {
wx.showToast({
title: `请输入有效的身份证号`,
icon: 'none',
});
return false;
};
if (this.data.phoneNumber) {
if (!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)) {
wx.showToast({
title: `请输入有效的手机号码!`,
icon: 'none',
});
return false;
}
};
let idInfo = this.getIdInfo(this.data.idCard);
if (idInfo.age < 6) {
wx.showToast({
title: `六岁以下儿童不支持线上问诊`,
icon: 'none',
});
return false;
}
this.setData({
sex:idInfo.sex
})
this.addFamily()
}),
//获取身份证号信息
getIdInfo(IdCard) {
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (reg.test(IdCard)) {
let sex
if (parseInt(IdCard.substr(16, 1)) % 2 === 1) {
sex = '1'
} else {
sex = '2'
}
var ageDate = new Date()
var month = ageDate.getMonth() + 1
var day = ageDate.getDate()
var age = ageDate.getFullYear() - IdCard.substring(6, 10) - 1
if (IdCard.substring(10, 12) < month || (IdCard.substring(10, 12) === month && IdCard.substring(12, 14) <= day)) {
age++
}
if (age <= 0) {
age = 1
}
return {
sex,
age
}
} else {
return false;
}
},
onClose() {
this.setData({
show: false
});
},
onCloseAdd() {
this.setData({
showAdd: false
});
},
hanldeGetItems(id){
getItems(id).then(res=>{
let arr=res.map((item,index)=>{
return {
price:item.service_price+'元/'+ Number(item.service_period)/30+'月',
follow_package_item_id:item.follow_package_item_id,
service_price:item.service_price,
monthly_frequency:item.monthly_frequency
}
});
arr.sort((a, b) =>a.service_period-b.service_period);
this.setData({
monthly_frequency:res[0].monthly_frequency,
priceList:arr,
current_price:res[0].service_price,
follow_package_item_id:res[0].follow_package_item_id
})
})
},
getDeatil(id) {
doctorDetail(id).then((res) => {
for (const key in this.data) {
if (res[key]) {
this.setData({
[key]: res[key]
})
}
};
this.setData({
chat_id:res.user_id
})
})
},
handleGetServiceDetail(){
let {doctor_id,currentFamilyId,service_type,follow_package_item_id,chat_id,sex,inquiry_mode,inquiry_type}=this.data;
getServiceDetail({
doctor_id,
family_id:currentFamilyId,
service_type,
follow_package_item_id
}).then((res)=>{
if(res.status==1){
app.method.navigateTo({
url:'/healthyService/pages/writeSick/writeSick?doctor_id='+doctor_id+"&family_id="+currentFamilyId+"&chat_id="+chat_id+"&inquiry_type="+inquiry_type+"&sex="+sex+"&inquiry_mode="+inquiry_mode+"&package_id="+follow_package_item_id
})
}else if(res.status==2){
this.setData({
showWarn:true,
order_no:res.data.order_no,
status:2,
confirmNext:'确定',
message:res.message
})
}else if(res.status==3){
this.setData({
showWarn:true,
status:3,
confirmNext:'前往',
message:'本月问诊次数已用完,您可选择医生其他服务'
})
}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,
confirmNext:'确定',
message:res.message
})
}else if(res.status==5){
this.setData({
showWarn:true,
status:5,
confirmNext:'前往',
order_no:res.data.order_no,
message:'是否使用剩余问诊次数?'
})
}
})
},
handleCreateServiceChatOrder(id){
createServiceChatOrder(id).then(res=>{
console.log(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"
})
})
},
showPatient(){
this.setData({
show:true
})
},
choosePrice(e){
let {id,price}=e.currentTarget.dataset;
console.log(price);
this.setData({
follow_package_item_id:id,
current_price:price
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
this.setData({
doctor_id:options.doctor_id
})
this.getDeatil(options.doctor_id);
this.hanldeGetItems(options.doctor_id);
this.getFamily();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,9 @@
{
"usingComponents": {
"nav":"../../../components/nav/nav",
"van-popup": "@vant/weapp/popup/index",
"van-picker": "@vant/weapp/picker/index",
"van-dialog": "@vant/weapp/dialog/index"
},
"navigationStyle":"custom"
}

View File

@ -0,0 +1,180 @@
<!--healthyService/pages/healthyDetail/healthyDetail.wxml-->
<wxs src="../../../filters/filter.wxs" module="moduleFilter"></wxs>
<nav navName="随访包服务详情"></nav>
<view class="page">
<image src="{{img_host+'/mybg.png'}}" mode="widthFix" class="dcimg" lazy-load/>
<view class="viewcell" >
<view class="left">
<image src="{{avatar}}" wx:if="{{avatar}}" mode="aspectFill" class="headimg"></image>
<image src="{{img_host+'/doctor_avatar.png'}}" class="headimg" wx:else></image>
<view class="onlinebox" wx:if="{{is_online==1}}">
<image src="{{img_host+'/online.gif'}}" mode="" class="icon"/>
</view>
</view>
<view class="right">
<view class="namebox">
<view class="name">{{user_name}}</view>
<view class="type" wx:if="{{hospital.hospital_level_name != '未知'&& hospital.hospital_level_name}}">{{hospital.hospital_level_name}}</view>
<view class="type" wx:if="{{multi_point_status == 1 && multi_point_enable==1}}">可处方</view>
</view>
<view class="hospital"><text class="hospital_name" wx:if="{{doctor_title_name}}">{{doctor_title_name}}</text> <text wx:if="{{item.department_custom_name}}">{{item.department_custom_name}}</text></view>
<view class="hospital"><text class="hospital_name" >{{hospital.hospital_name}}</text></view>
</view>
</view>
<view class="servicebox">
<view class="ser_title">请选择服务</view>
<view class="row">
<view class="moneyType {{follow_package_item_id==item.follow_package_item_id?'on':''}}" wx:for="{{ priceList}}" wx:key="follow_package_item_id" bind:tap="choosePrice" data-id="{{item.follow_package_item_id}}" data-price="{{item.service_price}}">{{item.price}}</view>
<!-- <view class="moneyType">500元/3月</view>
<view class="moneyType">1000元/6月</view>
<view class="moneyType">2000元/12月</view> -->
</view>
<!-- <view class="row">
<view class="moneyType">1000元/6月</view>
<view class="moneyType">2000元/12月</view>
</view> -->
</view>
<view class="detailbox">
<view class="servicebox">
</view>
<view class="quanyi">
<image src="../../static/images/quanyi.png" class="quanyiImg"/>
<view class="quanyiText">服务权益</view>
</view>
<view class="con">
<view class="cell">
<view class="celltitle">专属标识:</view>
<view class="celldesc">享有特殊标识,获得医生全面照护。</view>
</view>
<view class="cell">
<view class="celltitle">图文问诊<text class="red">{{monthly_frequency==='0'?'不限':monthly_frequency}}次</text></view>
<view class="celldesc">服务期间每次可持续48小时图片、文字、语音形式无限制的进行沟通。
</view>
</view>
<view class="cell">
<view class="celltitle">处方:</view>
<view class="celldesc">一次问诊只可开具一个处方单。
</view>
</view>
<view class="cell">
<view class="celltitle">退费:</view>
<view class="celldesc">1、未使用随时退
</view>
<view class="celldesc">
2、服务开始使用后如需退款请联系客服退款不收取任何服务费等额外费用但不支持部分退款
</view>
<view class="celldesc">
3、已接诊的订单不再退款
</view>
<view class="celldesc">
4、未消费服务包内容可退款已消费服务的部分按原价计费已发生的问诊按照问诊时互联网医院显示的价格结算。
</view>
</view>
</view>
</view>
<view class="buttonbox">
<view class="btn" bind:tap="showPatient">立即购买:¥{{current_price}}</view>
</view>
</view>
<van-popup show="{{ show }}" bind:close="onClose" closeable
position="bottom" round
custom-style="min-height: 60%">
<view class="titlepop">选择患者</view>
<view class="personbox">
<view class="row" wx:for-item="itemName" wx:for="{{family}}" wx:key="*this">
<view class="cell" wx:for-item="item" wx:for="{{itemName}}" wx:key="family_id">
<view class="cellinner" wx:if="{{!item.type}}" bindtap="selectPatient" data-familyId="{{item.family_id}}" data-sex="{{item.sex}}">
<view class="person">
<view class="name">{{item.card_name}}</view>
<view class="tag" wx:if="{{item.relation==1}}">本人</view>
<view class="tag" wx:elif="{{item.relation==2}}">父母</view>
<view class="tag" wx:elif="{{item.relation==3}}">爱人</view>
<view class="tag" wx:elif="{{item.relation==4}}">子女</view>
<view class="tag" wx:elif="{{item.relation==5}}">亲戚</view>
<view class="tag" wx:elif="{{item.relation==6}}">其他</view>
</view>
<view class="desc">
<view class="sex" wx:if="{{item.sex===0}}">性别未知</view>
<view class="sex" wx:elif="{{item.sex==1}}">男</view>
<view class="sex" wx:else>女</view>
<view class="age">{{item.age}}岁</view>
</view>
<image src="{{img_host+'/gou.png'}}" class="gou" wx:if="{{item.family_id==currentFamilyId}}"></image>
</view>
<view class="celladd" bindtap="addPatient" wx:elif="{{item.type}}">
+新建患者
</view>
</view>
</view>
</view>
<view class="btnbox">
<button class="btn" plain="true" disabled="{{currentFamilyId?false:true}}" bindtap="goNext">下一步</button>
</view>
</van-popup>
<van-popup show="{{showAdd}}" round closeable z-index="999" position="bottom" custom-style="height:{{height}}rpx" bind:close="onCloseAdd">
<view class="infobox">
<view class="title">新建患者</view>
<view class="info">
<view class="name">真实姓名<text>*</text></view>
<input value="{{realName}}" type="text" bindinput="inputChange" placeholder="请输入真实姓名" data-id="realName"/>
</view>
<view class="info">
<view class="name">身份证号<text>*</text></view>
<input value="{{idCard}}" type="idcard" bindinput="inputChange" placeholder="请输入真实身份证号" data-id="idCard"/>
</view>
<view class="info">
<view class="name">联系电话</view>
<input value="{{phoneNumber}}" type="number" bindblur="onblur" bindfocus="onfocus" cursor-spacing="100" bindinput="inputChange" bindinput="inputChange" placeholder="请输入联系电话" data-id="phoneNumber"/>
</view>
<view class="info" bindtap="openPicker">
<view class="name">患者关系</view>
<input type="text" value="{{relation}}" placeholder="请选择与患者的关系" disabled="true" />
</view>
<view class="tip">
<view class="warntitle">温馨提示:</view>
<view class="warn">
<view>1、根据国家卫健委要求,就医实行实名制,请如实填写患者信息。</view>
<view>2、信息受隐私保护仅接诊医生可见。
</view>
<view>3、6岁以下儿童不支持线上问诊请到线下就诊。
</view>
</view>
</view>
<view class="next" bindtap="goSick">
确定
</view>
</view>
</van-popup>
<van-dialog
show-cancel-button
class="mydailog"
bind:confirm="goHasOrder"
title="温馨提示"
message="{{message}}"
z-index="9999"
theme='green'
show="{{showWarn}}"
confirm-button-color="#3CC7C0"
cancel-button-text="取消"
confirm-button-text="{{confirmText}}"
>
</van-dialog>
<van-popup show="{{ showPicker }}" round position="bottom"
z-index="9999" custom-style="height:auto" bind:close="closePicker">
<van-picker show-toolbar title="选择与患者之间的关系" columns="{{ columns }}" bind:cancel="closePicker" bind:confirm="onConfirm" />
</van-popup>

View File

@ -0,0 +1,441 @@
page{
height:100vh;
overflow: hidden;
}
/* healthyService/pages/healthyDetail/healthyDetail.wxss */
.page{
width:100%;
background: #F2F2F2;
height:calc(100% - 172rpx);
margin-top: 172rpx;
display: flex;
overflow: hidden;
flex-direction: column;
}
.viewcell{
display: flex;
background-color: #fff;
margin:30rpx;
padding:20rpx;
box-shadow: 0rpx 8rpx 20rpx 2rpx rgba(0,0,0,0.04);
border-radius: 10rpx;
}
.dcimg{
width:100%;
position: absolute;
z-index:-1;
}
.detailbox{
overflow: hidden;
/* position: relative; */
z-index:1;
flex:1;
display: flex;
flex-direction: column;
margin-top:30rpx;
background: #FFFFFF;
border-radius: 32rpx 32rpx 0rpx 0rpx;
}
.con{
flex:1;
padding: 0 30rpx;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
.quanyi{
position: relative;
width:260rpx;
margin:0 auto;
height:70rpx;
}
.quanyiImg{
width:260rpx;
height:70rpx;
}
.cell{
margin-bottom: 30rpx;
}
.quanyiText{
top:0;
position: absolute;
font-size: 34rpx;
width:260rpx;
height:70rpx;
display: flex;
justify-content: center;
align-items: center;
color: #FFFFFF;
}
.celltitle{
font-weight: 550;
font-size: 30rpx;
color: #000000;
}
.celldesc{
margin-top: 15rpx;
font-size: 30rpx;
color: #000000;
}
.buttonbox{
width:100%;
height:200rpx;
}
.btn{
height: 94rpx;
margin:35rpx 30rpx 0;
background: #3CC7C0;
border-radius: 47rpx;
font-size: 36rpx;
color: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
line-height: 50rpx;
text-align: center;
}
.red{
color:red;
}
.servicebox{
margin:0 30rpx;
padding:27rpx 30rpx;
background: #FFFFFF;
border-radius: 10rpx;
}
.servicebox .ser_title{
font-weight: 550;
font-size: 30rpx;
color: #000000;
}
.row{
display: flex;
justify-content: space-between;
flex-wrap: wrap;
}
.moneyType{
margin-top: 30rpx;
width: 300rpx;
height: 120rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 34rpx;
color: #333333;
border: 1rpx solid #CCCCCC;
border-radius: 10rpx;
}
.moneyType.on{
background: #3CC7C0;
color:#fff;
border: 1rpx solid #3CC7C0;
}
.viewcell .type{
height: 32rpx;
margin-bottom: 6rpx;
line-height: 32rpx;
display: flex;
white-space: nowrap;
align-items: center;
margin-left: 18rpx;
padding:0rpx 6rpx;
background: #ED9C00;
border-radius: 4rpx;
color: #FFFFFF;
font-size: 24rpx;
}
.viewcellbox .hospital{
margin-top: 12rpx;
color: #333333;
display: flex;
font-size: 30rpx;
word-wrap: break-word;
}
.hospital_name{
font-size: 28rpx;
word-wrap: break-word;
margin-right: 10rpx;
overflow: hidden;
white-space: nowrap;
color:#333;
text-overflow: ellipsis;
}
.goodjob{
color: #666666;
margin-top: 28rpx;
line-height: 42rpx;
font-size: 28rpx;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2; /* 这里是超出几行省略 */
overflow: hidden;
}
.price{
font-size: 28rpx;
position: relative;
}
.price text{
margin-left: 5rpx;
font-size: 32rpx;
color:#EF4F20;
}
.viewcell .right{
flex:1;
margin-left: 20rpx;
}
.viewcell image{
width:120rpx;
height:120rpx;
border-radius:50%;
}
.namebox{
display: flex;
font-size: 34rpx;
font-weight: 600;
color:#333;
align-items: flex-end;
}
.namebox .position{
font-weight: normal;
margin-left: 15rpx;
font-size: 30rpx;
}
.headimg{
width:120rpx;
height:120rpx;
border-radius: 50%;
}
.personbox {
border-radius: 10rpx;
background-color: #fff;
padding: 40rpx 20rpx 144rpx;
overflow-y: scroll;
}
.personbox .row {
margin-top: 30rpx;
display: flex;
justify-content: space-between;
}
.personbox .row:first-child {
margin-top: 0;
}
.personbox .row .cell {
position: relative;
width: 47%;
height: 120rpx;
display: flex;
flex-direction: column;
justify-content: center;
margin-left: 30rpx;
border-radius: 10rpx;
border: 1px solid #CCCCCC;
}
.personbox .row .cell:first-child {
margin-left: 0rpx;
}
.personbox .person {
display: flex;
margin: 0 25rpx;
align-items: center;
}
.personbox .tag {
margin-left: 32rpx;
font-size: 24rpx;
display: flex;
align-items: center;
line-height: 24rpx;
justify-content: center;
color: #666666;
width: 80rpx;
height: 32rpx;
border-radius: 4rpx;
transform: rotateZ(360deg);
border: 1rpx solid #979797;
}
.personbox .desc {
display: flex;
margin: 0 25rpx;
font-size: 28rpx;
color: #666;
margin-top: 3px;
}
.personbox .name {
white-space: nowrap;
overflow: hidden;
max-width: 200rpx;
text-overflow: ellipsis;
font-size: 34rpx;
color: #333;
}
.personbox .age {
margin-left: 12rpx;
}
.personbox .cell .gou {
position: absolute;
bottom: -1rpx;
right: 0rpx;
width: 66rpx;
height: 53.7rpx;
}
.personbox .add {
justify-content: center;
align-items: center;
font-size: 34rpx;
color: #333;
}
.own .add.disabled{
color: #999;
}
.titlepop{
font-size: 34rpx;
font-weight: 400;
color: #333333;
padding:40rpx 0;
text-align: center;
width:100%;
border-bottom:1rpx solid #E7E7E7;
}
.van-icon-cross {
color: #333;
font-size: 40rpx !important;
}
.infobox {
margin-top: 40rpx;
}
.info {
border-bottom: 1rpx solid #E7E7E7;
display: flex;
align-items: center;
height: 112rpx;
color: #333333;
}
.infobox .title {
border-bottom: 1rpx solid #E7E7E7;
text-align: center;
font-size: 34rpx;
padding-bottom: 35rpx;
}
.info .name {
white-space: nowrap;
width: 180rpx;
display: flex;
align-items: center;
margin-left: 52rpx;
color: #333333;
font-size: 34rpx;
}
.info text {
margin-top: 20rpx;
color:#E34D59;
display: flex;
align-items: center;
}
.info input {
margin-left: 15rpx;
margin-right: 52rpx;
flex: 1;
}
.input-placeholder {
color: #999999;
font-size: 28rpx;
}
.tip{
padding:30rpx 52rpx 20rpx;
}
.warntitle{
color: #E34D59;
font-size: 28rpx;
}
.warn{
margin-top: 20rpx;
font-size: 24rpx;
line-height: 36rpx;
color: #666666;
}
.next{
display: flex;
align-items: center;
justify-content: center;
height: 94rpx;
font-size: 36rpx;
left: 30rpx;
right: 30rpx;
margin:0 52rpx;
border-radius: 47rpx;
color: #fff;
margin-bottom: 40rpx;
background: #3CC7C0;
}
.celladd{
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 120rpx;
}
.btnbox{
position: fixed;
width:100%;
bottom:0rpx;
height: 134rpx;
background:#fff;
}
.btnbox .btn{
border-radius: 47rpx;
border:none;
background: #3CC7C0!important;
margin:0 32rpx;
height: 94rpx;
display: flex;
justify-content: center;
align-items: center;
font-size: 36rpx;
color: #FFFFFF!important;
}
.btnbox .btn[disabled]{
color: #000000!important;
background:rgba(0,0,0,0.1)!important;
}
.viewcell .left{
position: relative;
}
.onlinebox .icon {
top: 90rpx;
left: 50%;
position: absolute;
margin-left: -48rpx;
width: 96rpx;
height: 34rpx;
border-radius: 0;
}

View File

@ -0,0 +1,159 @@
// healthyService/pages/healthyIntro/healthyIntro.js
import {throttle} from "../../../utils/util"
import {doctorList} from "../../../api/consultExpert"
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
blockHeight:"150rpx",
type:'',
doctorList:[],
page:1,
pageNumber:10,
isTriggered:false,
show:false,
expertise_id:'',
province_id:'',
city_id:'',
keyword:'',
lock:false,
is_online:0,
sort_order:1,
inquiry_type:'1',
inquiry_mode:'9',
},
handleRefresher(){
this.setData({
lock:false,
page:1,
doctorList:[]
});
this.getDoctorList()
},
goExpertDetail:throttle(function(e){
let {doctorid}=e.currentTarget.dataset;
app.method.navigateTo({
url:'/healthyService/pages/visitDetail/visitDetail?doctor_id='+doctorid
})
}),
getDoctorList(){
let {expertise_id,province_id, city_id,sort_order,keyword,page,pageNumber,is_online,inquiry_type,inquiry_mode}=this.data;
doctorList({
expertise_id:expertise_id,
province_id:province_id,
city_id:city_id,
sort_order: sort_order,
is_first_online:is_online,
keyword:keyword,
inquiry_type,
inquiry_mode,
page:page,
per_page:pageNumber
}).then((res)=>{
let {doctorList}=this.data;
if(res.data.length==0){
this.setData({
lock:true,
isTriggered:false
});
return false;
}else{
this.setData({
isTriggered:false,
doctorList:doctorList.concat(res.data)
})
}
})
},
onfresh(){
this.setData({
page:1,
doctorList:[],
lock:false
})
this.getDoctorList();
},
lower(e) {
let {lock}=this.data;
let addPage=this.data.page+1;
if(!lock){
this.setData({
page:addPage
});
this.getDoctorList();
}
},
goDetail:throttle(function(){
let url=this.data.type?'/healthyService/pages/visitDetail/visitDetail':'/healthyService/pages/healthyDetail/healthyDetail'
app.method.navigateTo({
url: url
})
}),
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
if(options.type){
this.setData({
type:'visit'
})
}
this.getDoctorList();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,7 @@
{
"usingComponents": {
"nav":"../../../components/nav/nav",
"van-popup": "@vant/weapp/popup/index"
},
"navigationStyle":"custom"
}

View File

@ -0,0 +1,47 @@
<nav navName="随访包服务医生"></nav>
<wxs src="../../../filters/filter.wxs" module="moduleFilter"></wxs>
<view class="page">
<view class="scrollwraper">
<scroll-view scroll-y style="width: 100%;height:100%" bindrefresherrefresh="handleRefresher" refresher-triggered="{{isTriggered}}" refresher-threshold="100" refresher-enabled="true" bindscrolltolower="lower" id="scroller" bounces="false">
<view wx:if="{{doctorList.length>0}}">
<view class="viewcell" bindtap="goExpertDetail" wx:for="{{doctorList}}" wx:key="doctor_id" data-doctorid="{{item.doctor_id}}" >
<view class="left">
<image src="{{item.avatar}}" wx:if="{{item.avatar}}" mode="aspectFill"></image>
<image src="{{img_host+'/doctor_avatar.png'}}" wx:else></image>
<view class="onlinebox" wx:if="{{item.user.is_online==1}}">
<image src="{{img_host+'/online.gif'}}" mode="" class="icon"/>
</view>
</view>
<view class="right">
<view class="namebox">
<view class="name">{{item.user_name}}</view>
<!-- <view class="position" >{{item.doctor_title_name}}</view> -->
<view class="type" wx:if="{{item.hospital.hospital_level_name != '未知'&& item.hospital.hospital_level_name}}">{{item.hospital.hospital_level_name}}</view>
<view class="type" wx:if="{{item.multi_point_status == 1 && item.multi_point_enable==1}}">可处方</view>
</view>
<view class="hospital"><text class="hospital_name" wx:if="{{item.doctor_title_name}}">{{item.doctor_title_name}}</text> <text wx:if="{{item.department_custom_name}}">{{item.department_custom_name}}</text></view>
<view class="hospital"><text class="hospital_name" >{{item.hospital.hospital_name}}</text></view>
<view class="goodjob" wx:if="{{item.be_good_at}}">擅长:{{item.be_good_at}}</view>
<view class="diseaseType" wx:for="{{item.doctor_expertise}}" wx:for-item="cell" wx:key="index">{{cell.expertise_name}}</view>
<view class="detail" wx:if="{{item.is_display_score}}">
<view>评分: <text wx:if="{{item.praise_rate>0}}">{{item.praise_rate}} </text><text wx:else>暂无</text></view>
<view>问诊量: <text wx:if="{{item.served_patients_num>0}}">{{item.served_patients_num}}</text><text wx:else>暂无</text></view>
<view>平均回复: <text wx:if="{{item.avg_response_time>0}}"> {{moduleFilter.formatReply(item.avg_response_time)}}h</text><text wx:else>暂无</text></view>
</view>
<view class="consultbox">
<view class="price" wx:for="{{item.doctor_inquiry_config}}" wx:for-item="itemName" wx:if="{{itemName.inquiry_type==1 && itemName.inquiry_mode==9 && itemName.inquiry_price}}">
<view class="pricecell">随访包:<text>¥{{itemName.inquiry_price}}/月起</text>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="nonedata" wx:else>暂无数据!</view>
</scroll-view>
</view>
</view>

View File

@ -0,0 +1,376 @@
/* healthyService/pages/healthyIntro/healthyIntro.wxss */
.page{
margin-top: 172rpx;
overflow: hidden;
display: flex;
flex-direction: column;
height: calc(100vh - 172rpx);
position: relative;
}
.imgbox{
position: relative;
}
page{
height: 100vh;
overflow: hidden;
}
.btn{
position: absolute;
left: 50%;
margin-left: -232rpx;
width:464rpx;
height: 86rpx;
bottom:130rpx;
}
.bg{
width:100%;
}
.top{
position: absolute;
top:10rpx;
width:100%;
display: flex;
justify-content: center;
padding:20rpx 0;
}
.top .up{
width:40rpx;
height:22rpx;
transition: all 0.5s;
}
.top .up.active{
transform: rotate(180deg);
}
.popname{
margin-top: 60rpx;
padding:20rpx 52rpx 30rpx;
font-size: 34rpx;
color:#333;
border-bottom: 1px solid #E7E7E7;
}
.popwrper{
top:0rpx;
background-color: #fff;
position: relative;
transition: height 0.5s;
width:100%;
border-radius: 20rpx;
overflow: hidden;
height:100%;
bottom:0px;
}
.wraper{
height: 100%;
}
.containexpert{
margin-top: 172rpx;
padding: 0 30rpx 0rpx;
overflow: hidden;
position: relative;
transform: all 0.3s ease;
}
.droptitle,.van-ellipsis{
font-size: 30rpx!important;
}
.namebox .name{
max-width:400rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.droptitle.active{
color:#3CC7C0;
}
.searchbox {
width: 100%;
height: 72rpx;
display: flex;
border-radius: 40rpx;
align-items: center;
margin-top: 20rpx;
background: #FBFBFB;
border-radius: 36px;
border: 1rpx solid #CCCCCC;
}
.searchbox input {
margin-left: 30rpx;
flex: 1;
font-size: 32rpx;
height: 80rpx;
}
.searchbox image {
width: 30rpx;
height: 30rpx;
margin-right: 28rpx;
}
.scroll-view_H {
height:195rpx;
white-space: nowrap;
vertical-align: top;
}
.scroll-view-item_H{
/* width: 154rpx; */
padding:0 15rpx;
background: #F4F4F4;
border-radius: 30rpx;
font-size: 28rpx;
color: #666666;
margin-left: 36rpx;
border: 1rpx solid #F4F4F4;
height: 58rpx;
display: inline-block;
text-align: center;
line-height: 58rpx;
}
.page-section-spacing .row{
margin-top: 40rpx;
margin-bottom: 30rpx;
}
.page-section-spacing .row:last-child{
margin-top: 30rpx;
margin-bottom: 10rpx;
}
.scroll-view_H .scroll-view-item_H:first-child{
margin-left: 0rpx;
}
.scroll-view-item_H.active {
background: #E2FFFE;
color: #3CC7C0;
border: 1rpx solid #3CC7C0;
}
.van-dropdown-menu{
box-shadow: none!important;
}
.viewcell{
display: flex;
overflow: hidden;
box-sizing: border-box;
padding:40rpx 30rpx 30rpx;
width:100%;
border-radius: 10rpx;
background-color: #fff;
border-bottom: 1rpx solid #E7E7E7;
}
.viewcell:last-child{
border-bottom: none;
}
.viewcell .type{
height: 32rpx;
margin-bottom: 6rpx;
line-height: 32rpx;
display: flex;
white-space: nowrap;
align-items: center;
margin-left: 18rpx;
padding:0rpx 6rpx;
background: #ED9C00;
border-radius: 4rpx;
color: #FFFFFF;
font-size: 24rpx;
}
.viewcell .hospital{
margin-top: 12rpx;
color: #333333;
display: flex;
font-size: 30rpx;
word-wrap: break-word;
}
.hospital_name{
word-wrap: break-word;
margin-right: 10rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
.goodjob{
color: #666666;
margin-top: 28rpx;
line-height: 42rpx;
font-size: 28rpx;
word-break: break-all;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2; /* 这里是超出几行省略 */
overflow: hidden;
}
.price{
font-size: 28rpx;
position: relative;
}
.price text{
margin-left: 5rpx;
font-size: 32rpx;
color:#EF4F20;
}
.viewcell .right{
flex:1;
margin-left: 20rpx;
}
.viewcell image{
width:80rpx;
height:80rpx;
border-radius:50%;
}
.namebox{
display: flex;
font-size: 34rpx;
font-weight: 600;
color:#333;
align-items: flex-end;
}
.namebox .position{
font-weight: normal;
margin-left: 15rpx;
font-size: 30rpx;
}
.dropOnline.active{
color: #3CC7C0;
}
.diseaseType{
height: 40rpx;
background: #E2FFFE;
border-radius: 20rpx;
margin-right: 20rpx;
border: 1rpx solid #3CC7C0;
color: #3CC7C0;
font-size: 24rpx;
display: inline-flex;
text-align: center;
padding:0 15rpx;
align-items: center;
justify-content: center;
margin-top: 20rpx;
white-space: nowrap;
}
.detail{
margin-top: 20rpx;
display: flex;
font-size: 24rpx;
}
.detail view{
margin-right:40rpx;
}
.detail view text{
font-size: 28rpx;
color:#3CC7C0;
}
.consultbox{
position: relative;
margin-top: 28rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
.consult{
height: 60rpx;
background: #3CC7C0;
border-radius: 30rpx;
color: #FFFFFF;
display: flex;
align-items: center;
padding:0 20rpx;
font-size: 30rpx;
}
.wraper{
display: flex;
flex-direction: column;
}
.scrollwraper{
flex: 1;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
.dropdown{
width:100%;
position: relative;
justify-content:center;
align-items: center;
border-bottom: 1rpx solid #E7E7E7;
display: flex;
}
.dropdown .bar{
height:40rpx;
width:1rpx;
left: 50%;
top:50%;
transform: translate(-50%,-50%);
position: absolute;
background:#ccc;
opacity: 0.9;
}
.dropbar{
background:#ccc;
opacity: 0.9;
height:40rpx;
width:1rpx;
position: static;
margin-top: 30rpx;
}
.dropOnline{
display: flex;
justify-content: center;
align-items: center;
width:33.33%;
}
.viewcell .left{
position: relative;
}
.price .expert_prcie{
text-decoration: line-through;
color:#999;
}
.price .expert_prcie .priceactive{
color:#999;
}
.pricecell{
display: flex;
font-size: 30rpx;
align-items: center;
white-space: nowrap;
}
.videocell{
position: absolute;
right:0rpx;
}
.price.qs{
display: none;
}
.price.gy,.price.hasfree{
display: none;
}
.nonekaitong{
position: absolute;
top:0rpx;
font-size: 30rpx;
right:320rpx;
}
.nonekaitong text{
font-size: 30rpx;
}
.popwrper{
display: flex;
flex-direction: column;
}
.nonedata{
display:flex;
width:100%;
min-height:500rpx;
align-items: center;
justify-content: center;
}

View File

@ -0,0 +1,916 @@
// pages/writeSick/writeSick.js
const app = getApp()
import Dialog from '@vant/weapp/dialog/dialog';
import dayjs from '../../../utils/dayjs.min.js'
import {
createServiceOrder
} from "../../../api/health"
import {
getSign
} from "../../../api/common"
import {
lastSick
} from "../../../api/consultExpert"
import {
throttle
} from "../../../utils/util"
import {client_type} from "../../../utils/isPc"
import {isExist,pathographyDetail} from "../../../api/sickRecord"
let urlHost=app.hostConfig().agreehost;
console.log(client_type);
Page({
/**
* 页面的初始数据
*/
data: {
prevData: null,
pathography_id:'',
showdialog: false,
order_no:'',
showAgreeDialog: false,
message: '',
order_inquiry_id:'',
doctor_id: '',
family_id: '',
chat_id: '',
inquiry_type: 1,
inquiry_mode: 1,
messageTitle: '',
disease_class_name: '',
disease_class_id:null,
show: false,
startIndex: 0,
cancelBtn: false,
showSick: false,
hideSick: false,
hideGuomin: false,
hidePregnant:false,
disease_desc: '',
hideFamilysick: false,
showBack: false,
is_exist:false,
fileList: [],
lockBtn: false,
checkSign: false,
is_allergy_history:null,
is_family_history:null,
is_pregnant:null,
pregnant: '',
checkAgree: false,
is_taboo:null,
diagnosis_date:null,
service_type:2,
product: [],
follow_package_item_id:'',
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static',
allergy_history: '',
family_history: '',
currentDate: new Date().getTime(),
minDate: new Date('1900/01/01 00:00:00').getTime(),
maxDate: new Date().getTime(),
formatter(type, value) {
if (type === 'year') {
return `${value}`;
}
if (type === 'month') {
return `${value}`;
}
if (type === 'day') {
return `${value}`;
}
return value;
}
},
setInfo(obj){
let Info =obj;
for (const key in Info) {
if (key != "product") {
if (Info[key]) {
this.setData({
[key]: Info[key]
})
}
}
};
if (Info.disease_desc) {
this.setData({
hideSick: true
})
};
if (Info.pregnant) {
this.setData({
hidePregnant: true
})
};
if (Info.allergy_history) {
this.setData({
hideGuomin: true
})
};
if (Info.family_history) {
this.setData({
hideFamilysick: true
})
};
if (Info.fileList) {
this.setData({
fileList:Info.fileList,
checkSign: false
})
} else {
this.setData({
checkSign: true
})
}
},
getlocalInfo(id){
let sickInfo = wx.getStorageSync('sickInfo');
if (sickInfo) {
var InfoObj = JSON.parse(sickInfo);
if (InfoObj instanceof Array) {
let obj=null;
let isHas= InfoObj.some((item)=>{
if(item.family_id==id){
obj=item;
}
return item.family_id==id;
})
if(isHas){
this.setInfo(obj)
}else{
this.handleOnlineSick(this.data.family_id);
}
// for (let i = 0; i < InfoObj.length; i++) {
// if (InfoObj[i].family_id == id) {
// Dialog.confirm({
// title: '温馨提示',
// message: '是否加载之前保存的病情信息?',
// }).then(() => {
// this.setInfo(InfoObj[i])
// }).catch(() => {
// });
// break;
// };
// }
}
}else{
this.handleOnlineSick(this.data.family_id);
}
},
handleSetValue(data){
if(data){
let obj = {
disease_class_name: '',
disease_class_id: '',
diagnosis_date: '',
disease_desc: '',
is_allergy_history:null,
product: [],
is_taboo:null,
is_pregnant:null,
pregnant: '',
is_family_history:null,
allergy_history: '',
family_history: '',
}
for (const key in obj) {
if (key != "product") {
if(key=="is_taboo" && !data[key]){
this.setData({
[key]: null
})
}else{
this.setData({
[key]: data[key]
})
}
}
};
if (data.disease_desc) {
this.setData({
hideSick: true
})
};
if (data.pregnant) {
this.setData({
hidePregnant: true
})
};
if (data.allergy_history) {
this.setData({
hideGuomin: true
})
};
if (data.family_history) {
this.setData({
hideFamilysick: true
})
};
if (data.diagnose_images) {
this.setData({
fileList: data.diagnose_images,
checkSign: false
})
} else {
this.setData({
checkSign: false
})
}
}
},
handleOnlineSick(id){
lastSick(id).then(data => {
this.handleSetValue(data);
})
},
// handleLastSick(id) {
// lastSick(id).then(data => {
// if (!data){
// this.getlocalInfo(id);
// } else {
// }
// })
// },
onConfirm(event) {
const {
value
} = event.detail;
this.setData({
disease_class_name: `${value.disease_class_name}`,
disease_class_id: `${value.disease_class_id}`,
showSick: false
})
},
showSick() {
app.method.navigateTo({
url: '/patient/pages/commonSick/commonSick'
})
},
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: 2
}).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>=9){
wx.showToast({
title: '复诊凭证最多上传9张',
icon:"none"
})
return false
};
let THIS = this;
wx.chooseMedia({
count: 9-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"
})
THIS.setData({
checkSign: false
})
wx.hideLoading();
});
}
})
},
onCancel() {
this.setData({
showSick: false
})
},
goRecord:throttle(function(){
app.method.navigateTo({
url:'/patient/pages/sickRecord/sickRecord?family_id='+this.data.family_id
})
}),
handleThrottle: throttle(function () {
this.create_Order()
}),
create_Order() {
let {
inquiry_type,
inquiry_mode,
doctor_id,
family_id,
disease_class_id,
diagnosis_date,
disease_desc,
fileList,
is_allergy_history,
checkSign,
is_pregnant,
pregnant,
is_family_history,
allergy_history,
family_history,
checkAgree,
sex,
service_type,
follow_package_item_id
} = this.data;
if (!disease_class_id) {
wx.showToast({
title: '请选择所患疾病',
icon: "none"
})
return false;
};
if (!diagnosis_date) {
wx.showToast({
title: '请选择确诊日期',
icon: "none"
})
return false;
};
if (!disease_desc) {
wx.showToast({
title: '请填写病情主诉',
icon: "none"
})
return false;
};
if(disease_desc.length<10){
wx.showToast({
title: '病情主诉不少于10个字',
icon: "none"
})
return false;
};
if (fileList.length == 0 && !checkSign) {
wx.showToast({
title: '请上传复诊凭证或者勾选凭证遗失或不在身边',
icon: "none"
})
return false;
}
if (inquiry_type == 4 && allergy_history) {
for (let i = 0; i < product.length; i++) {
if (allergy_history.indexOf(product[i].product_name) != -1) {
this.setData({
showdialog: true,
messageTitle: "您的情况不适合线上问诊开方,建议线下就诊"
})
return false
}
}
};
if(is_allergy_history==null){
wx.showToast({
title: '请选择您是否有过敏史',
icon: "none"
})
return false;
};
if(is_allergy_history==1){
if(!allergy_history){
wx.showToast({
title: '过敏史内容不能为空',
icon: "none"
})
return false;
}
};
if(is_family_history==null){
wx.showToast({
title: '请选择您是否有家族病史',
icon: "none"
})
return false;
};
if(is_family_history==1){
if(!family_history){
wx.showToast({
title: '家族病史内容不能为空',
icon: "none"
})
return false;
}
};
if(is_pregnant==null && sex==2){
wx.showToast({
title: '请选择您是否处于备孕、妊娠、哺乳期',
icon: "none"
})
return false;
};
if (is_pregnant == 1) {
wx.showToast({
title: '您的情况不适合线上问诊开方,建议线下就诊',
icon: "none"
})
return false;
}
if (!checkAgree) {
this.setData({
showAgreeDialog: true
})
return false;
};
this.setData({
lockBtn: true
});
createServiceOrder({
patient_id: wx.getStorageSync('CLIENT_USER_ID'),
doctor_id: doctor_id,
family_id: family_id,
disease_class_id: disease_class_id,
diagnosis_date: diagnosis_date,
disease_desc: disease_desc,
is_allergy_history:is_allergy_history,
allergy_history: allergy_history,
family_history: family_history,
is_family_history: is_family_history,
is_pregnant: is_pregnant,
pregnant: pregnant,
inquiry_type: inquiry_type,
inquiry_mode: inquiry_mode,
diagnose_images: fileList,
client_type:client_type ,
service_type:service_type,
follow_package_item_id:follow_package_item_id
}).then((data) => {
console.log(data);
let {
order_no
} = data.data;
let {
chat_id,
inquiry_type,
inquiry_mode
} = this.data;
this.setData({
lockBtn: false
});
if(data.status==1){
let order_type=inquiry_mode==8?5:4
app.method.navigateTo({
url: '/patient/pages/payOrder/payOrder?doctor_id=' + doctor_id + '&inquiry_no=' + order_no + "&chat_id=" + chat_id + "&inquiry_type=" + inquiry_type + "&inquiry_mode=" + inquiry_mode + "&fromType=chat&&order_type="+order_type
})
}else if(data.status==2){
this.setData({
showdialog:true,
messageTitle:"存在未支付订单",
order_no: order_no,
cancelBtn:true
})
}else if(data.status==4){
this.setData({
showdialog:true,
messageTitle:"当前患者存在进行中问诊订单",
order_no:order_no,
cancelBtn:true
})
}
}).catch((error)=>{
// this.setData({
// showdialog:true,
// messageTitle:error.message,
// cancelBtn:true
// })
})
},
inputChange(e) {
this.setData({
[e.target.dataset.id]: e.detail.value
})
},
openPop() {
this.setData({
show: true
})
},
handleClose() {
this.setData({
show: false
})
},
handleConfirm(event) {
this.setData({
show: false
});
this.setData({
diagnosis_date: dayjs(event.detail).format('YYYY-MM-DD')
});
},
handlepathographyDetail(id){
pathographyDetail(id).then(data=>{
this.handleSetValue(data);
})
},
handleIsExist(){
let {family_id}=this.data;
isExist({
family_id
}).then(data=>{
this.setData({
is_exist:data.is_exist==0?false:true
})
})
},
handelFocus(e) {
let key = e.target.dataset.id;
let value = e.target.dataset.value;
if (!e.detail.value) {
this.setData({
[key]: false,
[value]: e.detail.value
})
} else {
this.setData({
[key]: true,
[value]: e.detail.value
})
}
},
handelTextFocus(e) {
let key = e.target.dataset.id;
let value = e.target.dataset.value;
if (!e.detail) {
this.setData({
[key]: false,
[value]: e.detail
})
} else {
this.setData({
[key]: true,
[value]: e.detail
})
}
},
goBack() {
if (app.globalData.origion == 1) {
wx.reLaunch({
url: '/pages/index/index',
})
} else if (app.globalData.origion == 2) {
wx.reLaunch({
url: '/pages/index/index',
})
} else {
let {
disease_class_name,
diagnosis_date,
fileList,
is_allergy_history,
is_pregnant,
checkSign,
checkAgree,
is_family_history,
disease_desc
} = this.data;
//封装组件后退有bug,通过引用,回退正常
if (disease_class_name || is_allergy_history || is_pregnant || is_family_history || fileList.length > 0 || diagnosis_date || disease_desc || checkSign || checkAgree) {
Dialog.confirm({
title: '温馨提示',
message: '是否保存填写的病情信息?',
}).then(() => {
this.onSave()
})
.catch(() => {
//wx.setStorageSync('sickInfo','');
wx.navigateBack({
delta: 1,
fail: function () {
wx.reLaunch({
url: '/pages/index/index',
})
}
})
});
} else {
wx.navigateBack({
delta: 1
})
}
}
},
agreeConfirm(){
this.setData({
checkAgree:true
})
},
confirm(event) {
if (event.detail) {
this.setData({
showdialog: false
})
}
if(this.data.messageTitle=="存在未支付订单"){
let {order_no}=this.data;
app.method.navigateTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id='+order_no,
})
}else if(this.data.messageTitle=="当前患者存在进行中问诊订单"){
let {order_no}=this.data;
app.method.navigateTo({
url: '/patient/pages/orderDetail/orderDetail?order_inquiry_id='+order_no,
})
}
},
cancelAlert(){
this.setData({
showdialog: false
})
},
onChangeSign() {
this.setData({
checkSign: !this.data.checkSign
})
if (this.data.checkSign) {
this.setData({
fileList: []
})
}
},
onChange(event) {
let key = event.target.dataset.id;
this.setData({
[key]: event.detail
});
if (event.detail == 0) {
if (key == "is_allergy_history") {
this.setData({
allergy_history: ''
})
};
if (key == "is_family_history") {
this.setData({
family_history: ''
})
};
if (key == "is_pregnant") {
this.setData({
pregnant: ''
})
}
}
},
onSave() {
let {
family_id,
allergy_history,
family_history,
disease_desc,
disease_class_name,
disease_class_id,
diagnosis_date,
fileList,
checkSign,
checkAgree,
is_allergy_history,
is_pregnant,
pregnant,
is_family_history,
} = this.data;
let sickInfo = {
family_id,
disease_class_name,
diagnosis_date,
fileList,
disease_class_id,
disease_desc,
allergy_history,
family_history,
is_allergy_history,
is_pregnant,
pregnant,
checkSign,
checkAgree,
is_family_history
};
let sickInfo_stroage = wx.getStorageSync("sickInfo");
if (sickInfo_stroage) {
let sickInfoObj = JSON.parse(sickInfo_stroage);
if (sickInfoObj instanceof Array) {
for (let i = 0; i < sickInfoObj.length; i++) {
if (sickInfoObj[i].family_id == family_id) {
sickInfoObj.splice(i, 1);
}
}
sickInfoObj.push(sickInfo);
wx.setStorageSync('sickInfo', JSON.stringify(sickInfoObj));
} else {
sickInfoObj.family_id = family_id;
wx.setStorageSync('sickInfo', JSON.stringify([sickInfoObj]));
}
} else {
wx.setStorageSync('sickInfo', JSON.stringify([sickInfo]));
}
wx.navigateBack({
delta: 1
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
// 订单类型1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
console.log(options.package_id)
console.log(options.inquiry_mode)
if (options.inquiry_type == 1 || options.inquiry_type == 3) {
this.setData({
follow_package_item_id:options.package_id?options.package_id:'',
doctor_id: options.doctor_id,
family_id: options.family_id,
chat_id: options.chat_id,
inquiry_type: options.inquiry_type,
inquiry_mode: options.inquiry_mode,
service_type:options.inquiry_mode==9?2:1,
sex: options.sex
})
} else {
if (options.inquiry_type == 4) {
this.setData({
startIndex: 1
})
}
this.setData({
// product: options.product ? JSON.parse(options.product) : [],
family_id: options.family_id,
inquiry_type: options.inquiry_type,
sex: options.sex,
inquiry_mode: 1
})
}
//this.getSick();
this.handleIsExist();
this.getlocalInfo(options.family_id);
},
goAgreement:throttle(function(){
app.method.navigateTo({
url:"/patient/pages/linkPage/linkPage?url="+encodeURIComponent(urlHost+'/basic/file/agreement.htm?id=1')
})
}),
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
this.setData({
img_host:app.hostConfig().imghost
});
let {
prevData,
pathography_id,
family_id
} = this.data;
if (prevData) {
this.setData({
disease_class_name: prevData.disease_class_name,
disease_class_id: prevData.disease_class_id,
})
}
console.log(pathography_id)
if(pathography_id){
this.handlepathographyDetail(pathography_id)
}
// else{
// //this.handleLastSick(options.family_id);
// }
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
})

View File

@ -0,0 +1,17 @@
{
"usingComponents": {
"van-field": "@vant/weapp/field/index",
"van-checkbox": "@vant/weapp/checkbox/index",
"van-radio": "@vant/weapp/radio/index",
"van-radio-group": "@vant/weapp/radio-group/index",
"van-datetime-picker": "@vant/weapp/datetime-picker/index",
"van-popup": "@vant/weapp/popup/index",
"van-picker": "@vant/weapp/picker/index",
"van-icon": "@vant/weapp/icon/index",
"dialog":"../../../components/dialog/dialog",
"van-dialog": "@vant/weapp/dialog/index",
"nav":"../../../components/nav/nav"
},
"navigationStyle":"custom",
"navigationBarTitleText": "肝胆相照互联网医院"
}

View File

@ -0,0 +1,168 @@
<!--pages/writeSick/writeSick.wxml-->
<wxs src="../../../filters/filter.wxs" module="filter"></wxs>
<view class="content">
<view class="ui-navigatorbar">
<image class="ui-navigatorbar-back" bindtap="goBack" src="{{img_host+'/back.png'}}" />
<view class="ui-title">填写病情</view>
</view>
<view class="infobox">
<view class="sickHisbox" wx:if="{{is_exist}}">
<view class="name">病情历史</view>
<view class="hisBtn" bindtap="goRecord">查看记录</view>
</view>
<view class="info" bindtap="showSick">
<view class="name">所患疾病</view>
<input type="text" value="{{disease_class_name}}" placeholder="请填写所患疾病名称" class="ipt" disabled="true">
</input>
</view>
<view class="info" bindtap="openPop">
<view class="name">确诊日期</view>
<input type="text" auto-focus value="{{filter.formatDay(diagnosis_date) }}" placeholder="请选择日期(年月日)" class="ipt" disabled="true" />
</view>
<view class="info">
<view class="name">病情主诉</view>
</view>
<view class="textareaview">
<view class="textwrap" style="background: #f2f2f2!important;">
<view class="textbox" hidden="{{hideSick}}">
<view class="desc"><text>临床症状:</text>如没有力气、食欲不好、眼睛发黄、面色晦暗、尿液发黄、肝区疼痛等等</view>
<view class="desc"><text>诊疗情况:</text>描述做过哪些检查以及重要结果,是否开始治疗?治疗方案是什么(写出具体药物)、治疗效果如何?</view>
<view class="desc"><text>希望解答的问题:</text>1、是否需要更换抗病毒药物 2、如果需要更换请问哪种药物更合适</view>
</view>
<van-field show-confirm-bar="{{false}}" maxlength="500" bind:change="handelTextFocus" data-id="hideSick" data-value="disease_desc" custom-style="height: 458rpx!important; border-radius: 10px;position:relative;" input-class="iptclass" class="sickArea" show-word-limit value="{{ disease_desc }}" label="" type="textarea" placeholder="" border="{{ false }}"></van-field>
</view>
</view>
<view class="infobox" style="margin-top: 20rpx;background-color: #fff;padding-bottom: 30rpx;" wx:if="{{inquiry_type==4}}">
<view class="info">
<view class="name">用药意向</view>
</view>
<view class="radiotip" style="margin:30rpx 32rpx 0;padding-bottom: 20rpx;overflow:hidden">
<view class="textbox" style="position: static;height:auto;">
<view class="desc" ><text class="goods" wx:for="{{product}}" wx:key="product_id">{{item.product_name}}{{item.product_spec}}(数量{{item.product_num}}</text></view>
</view>
</view>
</view>
<view class="info" style="flex-direction: column;height:auto;align-items:flex-start;padding: 40rpx 0;margin-top: 20rpx;">
<view class="name">上传复诊凭证最多9张</view>
<view class="tip">请上传问诊本人清晰的复诊凭证(病例/处方单/检查报告/住院单),仅接诊医生可见。</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">
<van-icon name="plus" />
</view>
</view>
<view class="agreebox">
<van-checkbox value="{{checkSign}}" data-id="checkSign" bind:change="onChangeSign" checked-color="#3cc7c0" label-class="desc">复诊凭证遗失或不在身边,请勾选本项,未上传凭证可能会影响医生对您的诊断</van-checkbox>
</view>
</view>
<view class="sickHis">
<view class="list">
<view class="qa" wx:if="{{inquiry_type==4}}">
<view class="num">{{startIndex}}、</view>
<view class="titlebox">
<view class="title">是否服用过您想购买的药品且无相关禁忌?</view>
<view class="radio">
<van-radio-group value="{{filter.numberTOstring(is_taboo)}}" data-id="is_taboo" bind:change="onChange" direction="horizontal">
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
<van-radio name="0" checked-color="#3cc7c0" style="margin-left: 140rpx;">否</van-radio>
</van-radio-group>
</view>
</view>
</view>
<view class="qa">
<view class="num">{{startIndex+1}}、</view>
<view class="titlebox">
<view class="title">您是否有过敏史?</view>
<view class="radio">
<van-radio-group value="{{filter.numberTOstring(is_allergy_history)}}" data-id="is_allergy_history" bind:change="onChange" direction="horizontal">
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
<van-radio name="0" checked-color="#3cc7c0" style="margin-left: 140rpx;">否</van-radio>
</van-radio-group>
<view class="radiotip" hidden="{{is_allergy_history!=1}}">
<textarea placeholder=" " class="textarea" show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" value="{{allergy_history}}" bindinput="handelFocus" data-id="hideGuomin" data-value="allergy_history"></textarea>
<view class="textbox" hidden="{{hideGuomin}}">
<view class="desc"><text>过敏史:</text>请填写过敏源如药物请写出药名如食物请写具体如鸡蛋、牛奶等限制50个字</view>
</view>
<!-- <text> 过敏史:</text>
请填写过敏源,如药物,请写出药名;如食物,请写具体如鸡蛋、牛奶等 -->
</view>
</view>
</view>
</view>
<view class="qa">
<view class="num">{{startIndex+2}}、</view>
<view class="titlebox">
<view class="title">您是否有家族病史?</view>
<view class="radio">
<van-radio-group value="{{ filter.numberTOstring(is_family_history) }}" data-id="is_family_history" bind:change="onChange" direction="horizontal">
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
<van-radio name="0" checked-color="#3cc7c0" style="margin-left: 140rpx;">否</van-radio>
</van-radio-group>
</view>
<view class="radiotip" hidden="{{is_family_history!=1}}">
<textarea class="textarea" placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" value="{{family_history}}" bindinput="handelFocus" data-id="hideFamilysick" data-value="family_history"></textarea>
<view class="textbox" hidden="{{hideFamilysick}}">
<view class="desc"><text>家族病史:</text>如果是肝病请写明患肝炎、肝硬化、肝衰竭还是肝癌。限制50个字</view>
</view>
<!-- <text> 过敏史:</text>
请填写过敏源,如药物,请写出药名;如食物,请写具体如鸡蛋、牛奶等 -->
</view>
</view>
</view>
<view class="qa" wx:if="{{sex==2}}">
<view class="num">{{startIndex+3}}、</view>
<view class="titlebox">
<view class="title">您是否处于备孕、妊娠、哺乳期?</view>
<view class="radio">
<van-radio-group value="{{ filter.numberTOstring(is_pregnant)}}" data-id="is_pregnant" bind:change="onChange" direction="horizontal">
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
<van-radio name="0" checked-color="#3cc7c0" style="margin-left: 140rpx;">否</van-radio>
</van-radio-group>
</view>
<!-- <view class="radiotip" hidden="{{is_pregnant!=1}}">
<textarea class="textarea" placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" value="{{pregnant}}" bindinput="handelFocus" data-id="hidePregnant" data-value="pregnant"></textarea>
<view class="textbox" hiden="{{hidePregnant}}">
<view class="desc">请描述您目前所处阶段如备孕中、哺乳期中、妊娠月份。限制50个字</view>
</view>
</view> -->
</view>
</view>
</view>
</view>
<view class="agreebox" style="margin: 20rpx 0 0 0;">
<view class="xieyi">
<van-checkbox value="{{ checkAgree }}" data-id="checkAgree" bind:change="onChange" checked-color="#3cc7c0" label-class="desc" label-disabled>胆相照互联网医院平台医生为您提供健康咨询服务,医生建议仅供参考。根据国家互联网诊疗相关政策要求,请您在提交服务前仔细阅读<text bindtap="goAgreement">《风险告知与知情同意书》</text>。继续操作表示您知悉并同意上述全部内容。</van-checkbox>
</view>
</view>
<view class="nextbox">
<button class="next" type="primary" bindtap="handleThrottle" disabled="{{btnLock}}">下一步</button>
</view>
</view>
<van-popup show="{{ show }}" position="bottom" custom-style="height: auto">
<van-datetime-picker title="选择确诊日期" min-date="{{ minDate }}" toolbar-class="dateTitle" type="date" value="{{ currentDate }}" bind:cancel="handleClose" bind:confirm="handleConfirm" max-date="{{ maxDate }}" formatter="{{ formatter }}" />
</van-popup>
<van-popup show="{{ showSick }}" position="bottom" custom-style="height: auto">
<van-picker show-toolbar title="选择所患疾病" columns="{{ columns }}" value-key="disease_class_name" bind:cancel="onCancel" bind:confirm="onConfirm" />
</van-popup>
</view>
<dialog bind:confirm="confirm" bind:cancel="cancelAlert" showDialog="{{showdialog}}" message="{{messageTitle}}" cancelBtn="{{cancelBtn}}"></dialog>
<van-dialog
use-slot
class="mydailog"
bind:confirm="agreeConfirm"
title="温馨提示"
theme='green'
show="{{showAgreeDialog}}"
confirm-button-color="#3CC7C0"
cancel-button-text="确定"
>
<view class="slotmsg">
请您先仔细阅读并同意<text class="green" bindtap="goAgreement">《风险告知与知情同意书》</text>
</view>
</van-dialog>
<van-dialog id="van-dialog" confirm-button-color="#3CC7C0" />

View File

@ -0,0 +1,365 @@
/* pages/writeSick/writeSick.wxss */
.content{
min-height: 100%;
background: #f2f2f2;
}
.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;
white-space: nowrap;
color: #000000;
bottom: 0;
left: 200rpx;
display: flex;
justify-content: center;
align-items: center;
}
.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;
}
.infobox {
margin-top:172rpx;
}
.sickHisbox{
display: flex;
height:100rpx;
align-items: center;
margin-bottom: 20rpx;
background-color: #fff;
padding:0 55rpx;
justify-content: space-between;
}
.hisBtn{
width: 166rpx;
height: 60rpx;
color:#3CC7C0;
display: flex;
font-size: 26rpx;
align-items: center;
justify-content: center;
background: #E2FFFE;
border-radius: 6rpx;
border: 1rpx solid #3CC7C0;
}
.info {
border-bottom: 1rpx solid #E7E7E7;
display: flex;
background-color: #fff;
align-items: center;
height: 112rpx;
color: #333333;
}
.info .name {
white-space: nowrap;
width: 180rpx;
display: flex;
align-items: center;
margin-left: 52rpx;
color: #333333;
font-size: 34rpx;
}
.info text {
margin-top: 20rpx;
color:#E34D59;
display: flex;
align-items: center;
}
.info .ipt {
margin-left: 15rpx;
margin-right: 52rpx;
flex: 1;
}
.input-placeholder {
color: #999999;
font-size: 28rpx;
}
.textareaview{
position: relative;
padding:40rpx 52rpx;
background: #fff!important;
}
.textwrap{
background: #F2F2F2!important;
border-radius: 10rpx;
}
.van-cell{
position: relative;
z-index:2;
background-color:transparent!important;
}
.van-field__body--textarea{
height:360rpx;
width:580rpx;
}
.iptclass{
top:0;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
height:360rpx!important;
bottom:0;
left:0rpx;
right:0rpx;
width:100%!important;
background-color: transparent;
}
.mydailog .dialog-index--van-dialog__confirm{
background:#ebf9f9!important;
}
/*
.van-field__control {
display: flex;
align-self: start;
} */
.van-field__word-limit {
color: #999999!important;
font-size: 24rpx;
}
.green{
color:rgba(60, 199, 192, 1)
}
.van-field__word-num--full{
color: #ee0a24!important;
}
.textbox{
left:86rpx;
right:86rpx;
top:60rpx;
height:380rpx;
z-index:0;
position: absolute;
}
.textbox .desc{
word-break: break-all;
line-height: 42rpx;
color: #999;
margin-bottom: 20rpx;
font-size: 28rpx;
}
.textbox .goods{
display: inline;
white-space:normal;
}
.textbox .goods:after{
content:""
}
.textbox .goods:last-child:after{
content:""
}
.textbox view:last-child{
margin-bottom: 0;
}
.textbox text{
color: #333333;
font-size: 28rpx;
}
.info .tip{
line-height: 36rpx;
color: #666666;
margin:20rpx 52rpx 0;
font-size: 24rpx;
}
.uploadbox{
margin:30rpx 52rpx 0;
display: flex;
flex-wrap: wrap ;
}
.uploadbox .close{
z-index:99;
top:5rpx;
right:5rpx;
position: absolute;
width:30rpx;
height:30rpx;
}
.uploadbox .upload{
position: relative;
object-fit: cover;
margin: 5px 19rpx 5px 0;
}
.uploadbox .upload:nth-child(4n){
margin-right: 0;
}
.van-icon-plus{
color:#333;
font-size: 80rpx!important;
}
.agreebox{
margin:30rpx 52rpx 0;
display: flex;
}
.agreebox .desc{
color: #666666;
line-height: 36rpx;
font-size: 24rpx;
}
.van-checkbox{
display: flex;
align-items: flex-start!important;
}
.sickHis{
background-color: #fff;
margin-top: 20rpx;
padding:40rpx 52rpx;
}
textarea{
width:100%;
color:#333;
height:132rpx;
}
.list .qa{
display: flex;
}
.titlebox{
flex:1;
}
.radio{
margin: 40rpx 0rpx 30rpx 0;
}
.sickArea{
position: relative;
z-index:1;
}
.upload{
width: 148rpx;
height:148rpx;
display: flex;
justify-content:center ;
align-items: center;
background: #F2F2F2;
border-radius: 4rpx
}
.radiotip{
position: relative;
padding:24rpx 20rpx;
justify-content: center;
margin-top: 30rpx;
line-height: 42rpx;
background: #F2F2F2;
border-radius: 10rpx;
font-size: 28rpx;
color:#999;
margin-bottom: 20rpx;
}
.radiotip .textbox{
top:20rpx;
left:20rpx;
height: 100rpx;
right:20rpx;
}
.radiotip .textarea{
position: relative;
z-index:2;
}
.radiotip text{
white-space: nowrap;
color:#333;
}
.xieyi{
width:100%;
padding:30rpx 52rpx 40rpx;
background-color: #fff;
}
.agreebox text{
color:#3CC7C0;
}
.nextbox{
padding-bottom: 20rpx;
background-color: #fff;
}
.next{
display: flex;
align-items: center;
justify-content: center;
height: 94rpx;
font-size: 36rpx;
border:none;
outline: none;
margin:0 52rpx;
border-radius: 47rpx;
color: #fff;
margin-bottom: 40rpx;
background: #3CC7C0!important;
}
.datePicker{
width:100%;
position: fixed;
bottom:0;
}
.dateTitle{
border:1rpx solid #E7E7E7;
}
.van-uploader__preview-image,.van-uploader__upload{
width: 148rpx!important;
height: 148rpx!important;
}
.van-uploader__preview{
margin: 0 6px 8px 0;
}
.slotmsg{
-webkit-overflow-scrolling: touch;
font-size: 28rpx;
line-height:40rpx;
max-height:60vh;
overflow-y: auto;
padding:48rpx;
text-align: center;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 925 B

View File

@ -41,7 +41,7 @@ Page({
} }
}), }),
goH5:throttle(function(event){ goH5:throttle(function(event){
let {url,name}=event.currentTarget.dataset; let {url,name,type}=event.currentTarget.dataset;
if(url.indexOf("http")!=-1){ if(url.indexOf("http")!=-1){
let urlName=(decodeURIComponent(url)) let urlName=(decodeURIComponent(url))
if(this.verifySuffix(urlName)){ if(this.verifySuffix(urlName)){
@ -55,14 +55,21 @@ Page({
} }
}else{ }else{
wx.navigateToMiniProgram({ if(type==4){
appId: 'wxdee7006582529713', app.method.navigateTo({
path:url, url:'/'+url
envVersion: 'release', })
success(res) { }else{
// 打开成功 wx.navigateToMiniProgram({
} appId: 'wxdee7006582529713',
}) path:url,
envVersion: 'release',
success(res) {
// 打开成功
}
})
}
} }
}), }),

View File

@ -107,7 +107,7 @@
<block wx:for="{{banner}}" wx:key="banner_id"> <block wx:for="{{banner}}" wx:key="banner_id">
<swiper-item> <swiper-item>
<view class="swiper-item"> <view class="swiper-item">
<image class="swiperimg" src="{{item.banner_path}}" data-url="{{item.banner_link}}" data-name="{{item.banner_name}}" bindtap="goH5"></image> <image class="swiperimg" src="{{item.banner_path}}" data-url="{{item.banner_link}}" data-name="{{item.banner_name}}" data-type="{{item.open_with}}" bindtap="goH5"></image>
</view> </view>
</swiper-item> </swiper-item>
</block> </block>

View File

@ -73,6 +73,11 @@ Page({
url: '/sugarCheck/pages/checkOrder/checkOrder', url: '/sugarCheck/pages/checkOrder/checkOrder',
}) })
}), }),
goHealthyOrder:throttle(function(){
app.method.navigateTo({
url: '/healthyService/pages/healthyOrder/healthyOrder',
})
}),
goMyPrescript:throttle(function(){ goMyPrescript:throttle(function(){
app.method.navigateTo({ app.method.navigateTo({
url: '/patient/pages/myPrescript/myPrescript', url: '/patient/pages/myPrescript/myPrescript',

View File

@ -46,6 +46,14 @@
<view class="name">检测</view> <view class="name">检测</view>
<view class="bage" wx:if="{{patient_info.order_detection_count>0}}">{{filter.formatNumber(patient_info.order_detection_count)}}</view> <view class="bage" wx:if="{{patient_info.order_detection_count>0}}">{{filter.formatNumber(patient_info.order_detection_count)}}</view>
</view> </view>
</view>
<view class="iconbox" style="margin-top: 20rpx;">
<view class="iconcell" bindtap="goHealthyOrder">
<image src="{{img_host+'/servicePackage.png'}}" class="myicon"></image>
<view class="name">服务包</view>
<view class="bage" wx:if="{{patient_info.order_detection_count>0}}">{{filter.formatNumber(patient_info.order_detection_count)}}</view>
</view>
</view> </view>
</view> </view>
<view class="fuli" style="background: #FFF3F3;" wx:if="{{show_fuli}}" bindtap="goWelfare"> <view class="fuli" style="background: #FFF3F3;" wx:if="{{show_fuli}}" bindtap="goWelfare">

View File

@ -121,7 +121,7 @@ color: rgba(0,0,0,0.65);
margin-top: 30rpx; margin-top: 30rpx;
width: 100%; width: 100%;
padding-bottom: 20rpx; padding-bottom: 20rpx;
height: 256rpx;
overflow: hidden; overflow: hidden;
background: #FFFFFF; background: #FFFFFF;
border-radius: 10rpx; border-radius: 10rpx;
@ -144,7 +144,7 @@ color: rgba(0,0,0,0.65);
.iconbox { .iconbox {
display: flex; display: flex;
margin: 30rpx 52rpx 0; margin: 30rpx 52rpx 0;
flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
} }

View File

@ -20,6 +20,9 @@
<view class="name" wx:elif="{{item.inquiry_type==1 && item.inquiry_mode==2}}">专家问诊-视频</view> <view class="name" wx:elif="{{item.inquiry_type==1 && item.inquiry_mode==2}}">专家问诊-视频</view>
<view class="name" wx:elif="{{item.inquiry_type==1 && item.inquiry_mode==6}}">专家问诊-疑难会诊</view> <view class="name" wx:elif="{{item.inquiry_type==1 && item.inquiry_mode==6}}">专家问诊-疑难会诊</view>
<view class="name" wx:elif="{{item.inquiry_type==1 && item.inquiry_mode==7}}">专家问诊-附赠回复</view> <view class="name" wx:elif="{{item.inquiry_type==1 && item.inquiry_mode==7}}">专家问诊-附赠回复</view>
<view class="name" wx:elif="{{item.inquiry_type==1 && item.inquiry_mode==8}}">健康包-单次问诊</view>
<view class="name" wx:elif="{{item.inquiry_type==1 && item.inquiry_mode==9}}">随访包-单次问诊</view>
<view class="name" wx:elif="{{item.inquiry_type==2 && item.inquiry_mode!=7}}">快速问诊</view> <view class="name" wx:elif="{{item.inquiry_type==2 && item.inquiry_mode!=7}}">快速问诊</view>
<view class="name" wx:elif="{{item.inquiry_type==2 && item.inquiry_mode==7}}">快速问诊-附赠回复</view> <view class="name" wx:elif="{{item.inquiry_type==2 && item.inquiry_mode==7}}">快速问诊-附赠回复</view>
<view class="name" wx:elif="{{item.inquiry_type==3 && item.inquiry_mode!=7}}">公益问诊</view> <view class="name" wx:elif="{{item.inquiry_type==3 && item.inquiry_mode!=7}}">公益问诊</view>

View File

@ -69,12 +69,17 @@ Page({
this.onfresh(); this.onfresh();
}, },
onScroll(event) { onScroll(event) {
let {doctorList}=this.data;
wx.createSelectorQuery().select('#scroller') wx.createSelectorQuery().select('#scroller')
.boundingClientRect((res) => { .boundingClientRect((res) => {
// console.log(event.detail.scrollTop) let H=0;
let H=0; if(event.detail.scrollTop>175){
if(event.detail.scrollTop>=175){ if(doctorList.length<=3){
H=0; H=150;
}else{
H=1;
}
}else{ }else{
H=150 H=150
} }
@ -83,6 +88,7 @@ Page({
// offsetTop: res.top, // offsetTop: res.top,
scrollHeight:H scrollHeight:H
}); });
}).exec(); }).exec();
}, },
transforpage(arr) { transforpage(arr) {

View File

@ -4,7 +4,7 @@
<view class="wraper"> <view class="wraper">
<view class="containexpert" style="height:{{scrollHeight}}px"> <view class="containexpert" style="{{'height:'+scrollHeight+'px'}}" >
<view class="searchbox"> <view class="searchbox">
<input type="text" placeholder="输入姓名或医院查找医生" disabled="{{true}}" bindtap="goSearch" bindconfirm="getIptvalue"/> <input type="text" placeholder="输入姓名或医院查找医生" disabled="{{true}}" bindtap="goSearch" bindconfirm="getIptvalue"/>
<image src="{{img_host+'/ss.png'}}"></image> <image src="{{img_host+'/ss.png'}}"></image>

View File

@ -15,11 +15,12 @@ Page({
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
toView:'item0',
tab3Height:500, tab3Height:500,
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static', img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static',
showDialog:false, showDialog:false,
avatar: '',
currentData:0, currentData:0,
avatar: '',
user_name: '', user_name: '',
doctor_title: '', doctor_title: '',
doctor_id: '', doctor_id: '',
@ -35,6 +36,10 @@ Page({
canTuwen:false, canTuwen:false,
canVideo:false, canVideo:false,
canDiffcult:false, canDiffcult:false,
canHealthy:false,
canVisit:false,
healthyPrice:'',
visitPrice:'',
brief_introduction:'', brief_introduction:'',
multi_point_status: 0, multi_point_status: 0,
multi_point_enable:0, multi_point_enable:0,
@ -78,7 +83,7 @@ Page({
this.setData({ this.setData({
tab3Height:(rect.height) tab3Height:(rect.height)
}) })
console.log('元素高度为:', rect.height)
}).exec() }).exec()
}, },
handleThrottle:throttle(function(e){ handleThrottle:throttle(function(e){
@ -123,11 +128,37 @@ Page({
bindchange(e){ bindchange(e){
const that = this; const that = this;
console.log(e);
that.setData({ that.setData({
currentData: e.detail.current currentData: e.detail.current
}) })
}, },
goVisit:throttle(function(){
let doctorid=this.data.doctor_id;
if(this.data.canVisit){
app.method.navigateTo({
url:'/healthyService/pages/visitDetail/visitDetail?doctor_id='+doctorid
})
}else{
app.method.navigateTo({
url:'/healthyService/pages/visitList/visitList'
})
}
}),
goHealthy:throttle(function(){
let doctorid=this.data.doctor_id;
let price=this.data.healthyPrice;
if(this.data.canHealthy){
app.method.navigateTo({
url:'/healthyService/pages/healthyDetail/healthyDetail?doctor_id='+doctorid+"&price="+price
})
}else{
app.method.navigateTo({
url:'/healthyService/pages/healthyIntro/healthyIntro'
})
}
}),
switchTab(e){ switchTab(e){
let {id}=e. currentTarget.dataset; let {id}=e. currentTarget.dataset;
this.setData({ this.setData({
@ -141,18 +172,32 @@ bindchange(e){
}) })
}else if(id==1){ }else if(id==1){
this.getHeight(2); this.setData({
inquiry_type:1,
inquiry_mode:9,
tab3Height:0
})
this.goVisit();
}else if(id==2){
this.setData({
inquiry_type:1,
inquiry_mode:8,
tab3Height:0
})
this.goHealthy();
}else if(id==3){
this.getHeight(4);
let {hasVideoList,canVideo}=this.data; let {hasVideoList,canVideo}=this.data;
this.setData({ this.setData({
inquiry_type:1, inquiry_type:1,
inquiry_mode:2 inquiry_mode:2,
}) })
if(hasVideoList && !canVideo){ this.getVideoDoctorList();
this.goVideo(); // if(hasVideoList && !canVideo){
} // this.goVideo();
// }
}else { }else {
this.getHeight(3) this.getHeight(5)
this.setData({ this.setData({
inquiry_type:1, inquiry_type:1,
inquiry_mode:6 inquiry_mode:6
@ -307,7 +352,8 @@ bindchange(e){
}) })
}; };
this.setData({ this.setData({
expertAmount:arr[i].work_num_day-arr[i].order_inquiry_count expertAmount:arr[i].work_num_day-arr[i].order_inquiry_count,
expertInquiry_price: arr[i].inquiry_price
}) })
} }
if(arr[i].inquiry_type==1 && arr[i].inquiry_mode==2){ if(arr[i].inquiry_type==1 && arr[i].inquiry_mode==2){
@ -333,6 +379,26 @@ bindchange(e){
yinanPrice:arr[i].inquiry_price yinanPrice:arr[i].inquiry_price
}) })
} }
if(arr[i].inquiry_type==1 && arr[i].inquiry_mode==8){
if(arr[i].is_enable==1){
this.setData({
canHealthy:true
})
}
this.setData({
healthyPrice: arr[i].inquiry_price
})
}
if(arr[i].inquiry_type==1 && arr[i].inquiry_mode==9){
if(arr[i].is_enable==1){
this.setData({
canVisit:true
})
}
this.setData({
visitPrice: arr[i].inquiry_price
})
}
} }
} }
@ -367,6 +433,26 @@ bindchange(e){
cycle:arr[i].duration cycle:arr[i].duration
}) })
}; };
if(arr[i].inquiry_type==1 && arr[i].inquiry_mode==8){
if(arr[i].is_enable==1){
this.setData({
canHealthy:true
})
}
this.setData({
healthyPrice: arr[i].inquiry_price
})
}
if(arr[i].inquiry_type==1 && arr[i].inquiry_mode==9){
if(arr[i].is_enable==1){
this.setData({
canVisit:true
})
}
this.setData({
visitPrice: arr[i].inquiry_price
})
}
if(arr[i].inquiry_type==1 && arr[i].inquiry_mode==2){ if(arr[i].inquiry_type==1 && arr[i].inquiry_mode==2){
if(arr[i].is_enable==1){ if(arr[i].is_enable==1){
this.setData({ this.setData({
@ -410,6 +496,11 @@ bindchange(e){
} }
return a return a
}, },
// 禁止用户滑动
catchTouchMove() {
return false;
},
getDeatil(id) { getDeatil(id) {
doctorDetail(id).then((res) => { doctorDetail(id).then((res) => {
for (const key in this.data) { for (const key in this.data) {
@ -423,6 +514,7 @@ bindchange(e){
}) })
}, },
getVideoDoctorList(){ getVideoDoctorList(){
let {canVideo}=this.data;
doctorList({ doctorList({
page:1, page:1,
inquiry_type:1, inquiry_type:1,
@ -434,11 +526,15 @@ bindchange(e){
this.setData({ this.setData({
hasVideoList:false hasVideoList:false
}); });
}else{ }else{
this.setData({ this.setData({
hasVideoList:true hasVideoList:true
}) })
if(!canVideo){
this.goVideo();
}
} }
}) })
}, },
@ -482,6 +578,7 @@ bindchange(e){
if(this.data.canTuwen){ if(this.data.canTuwen){
this.setData({ this.setData({
currentData:0, currentData:0,
toView:'item0',
inquiry_type:this.data.current_inquiry_config.inquiry_type, inquiry_type:this.data.current_inquiry_config.inquiry_type,
inquiry_mode:this.data.current_inquiry_config.inquiry_mode inquiry_mode:this.data.current_inquiry_config.inquiry_mode
}) })
@ -490,23 +587,27 @@ bindchange(e){
if(this.data.canVideo){ if(this.data.canVideo){
let {hasVideoList,canVideo}=this.data; let {hasVideoList,canVideo}=this.data;
this.setData({ this.setData({
currentData:1, currentData:3,
inquiry_type:1, inquiry_type:1,
inquiry_mode:2 inquiry_mode:2,
toView:'item3'
}) })
if(hasVideoList && !canVideo){ this.getVideoDoctorList();
this.goVideo(); this.getHeight(4)
}
this.getHeight(2)
}else{ }else{
if(this.data.canDiffcult){ if(this.data.canDiffcult){
this.setData({ this.setData({
currentData:2, currentData:4,
toView:'item4',
inquiry_type:1, inquiry_type:1,
inquiry_mode:6 inquiry_mode:6
}) })
this.getHeight(3) this.getHeight(5)
}else{ }else{
this.setData({
currentData:0,
toView:'item0'
})
this.getHeight(1) this.getHeight(1)
} }
} }
@ -530,9 +631,9 @@ bindchange(e){
}) })
this.getDeatil(doctor_id); this.getDeatil(doctor_id);
this.getService(doctor_id);
this.getEvaluationList(); this.getEvaluationList();
this.getVideoDoctorList(); //this.getVideoDoctorList();
}, },
@ -550,6 +651,7 @@ bindchange(e){
this.setData({ this.setData({
img_host:app.hostConfig().imghost img_host:app.hostConfig().imghost
}); });
this.getService(this.data.doctor_id);
}, },
/** /**

View File

@ -72,9 +72,10 @@
<view class="title">医生服务</view> <view class="title">医生服务</view>
<viwe class="tag" wx:if="{{filter.formatYear(days)}}">{{filter.formatYear(days)}}内服务过您</viwe> <viwe class="tag" wx:if="{{filter.formatYear(days)}}">{{filter.formatYear(days)}}内服务过您</viwe>
</view> </view>
<view class="tabs"> <scroll-view class="tabbox" scroll-x scroll-into-view="{{toView}}">
<view class="tab " bindtap="switchTab" data-id="0"> <view class="tabs">
<image wx:if="{{currentData==0 && canTuwen}}" src="{{img_host+'/tuwen_on.png'}}" alt="" class="tabbg on" ></image> <view class="tab " bindtap="switchTab" data-id="0" id="item0">
<image wx:if="{{currentData==0 && canTuwen}}" src="{{img_host+'/tuwen_on.png'}}" alt="" class="tabbg on" ></image>
<image wx:elif="{{currentData==0 && !canTuwen}}" src="{{img_host+'/tuwen_disable_on.png'}}" alt="" class="tabbg on" ></image> <image wx:elif="{{currentData==0 && !canTuwen}}" src="{{img_host+'/tuwen_disable_on.png'}}" alt="" class="tabbg on" ></image>
<image wx:elif="{{currentData!=0 && canTuwen}}" src="{{img_host+'/tuwen.png'}}" alt="" class="tabbg" ></image> <image wx:elif="{{currentData!=0 && canTuwen}}" src="{{img_host+'/tuwen.png'}}" alt="" class="tabbg" ></image>
<image wx:else src="{{img_host+'/tuwen_disable.png'}}" alt="" class="tabbg" ></image> <image wx:else src="{{img_host+'/tuwen_disable.png'}}" alt="" class="tabbg" ></image>
@ -92,7 +93,7 @@
<view class="price" wx:if="{{freeAmount>0}}">¥{{freePrice}}/次</view> <view class="price" wx:if="{{freeAmount>0}}">¥{{freePrice}}/次</view>
<view class="price" wx:if="{{freeAmount<=0 && expertAmount>0}}">¥{{expertInquiry_price}}/次</view> <view class="price" wx:if="{{freeAmount<=0 && expertAmount>0}}">¥{{expertInquiry_price}}/次</view>
<view class="price" wx:if="{{freeAmount<=0 && expertAmount<=0}}">¥{{freePrice}}/次</view> <view class="price" wx:if="{{freeAmount<=0 && expertAmount<=0}}">¥{{freePrice}}/次</view>
<view class="jiaprice" wx:if="{{expertInquiry_price && current_inquiry_config.inquiry_type==3 && !(freeAmount<=0 && expertAmount>0)}}">¥{{expertInquiry_price}}/次</view> <view class="jiaprice" wx:if="{{expertInquiry_price && current_inquiry_config.inquiry_type==3 && freeAmount>0}}">¥{{expertInquiry_price}}/次</view>
</view> </view>
<!-- <view class="price">¥{{current_inquiry_config.inquiry_price}}/次</view> <!-- <view class="price">¥{{current_inquiry_config.inquiry_price}}/次</view>
<view class="jiaprice" wx:if="{{expertInquiry_price && current_inquiry_config.inquiry_type==3 }}">¥{{expertInquiry_price}}/次</view> --> <view class="jiaprice" wx:if="{{expertInquiry_price && current_inquiry_config.inquiry_type==3 }}">¥{{expertInquiry_price}}/次</view> -->
@ -104,10 +105,33 @@
<view class="price" wx:if="{{!(expertInquiry_price && freePrice)}}">暂未开通</view> <view class="price" wx:if="{{!(expertInquiry_price && freePrice)}}">暂未开通</view>
</view> </view>
</view> </view>
<view class="tab " bindtap="switchTab" data-id="1"> <view class="tab add" bindtap="switchTab" data-id="1" id="item1">
<image src="{{img_host+'/video_on.png'}}" wx:if="{{currentData==1 && canVideo}}" alt="" class="tabbg on" ></image>
<image wx:elif="{{currentData==1 && !canVideo}}" src="{{img_host+'/video_disable_on.png'}}" alt="" class="tabbg on" ></image> <image src="{{img_host+'/suifang_on.png'}}" alt="" class="tabbg" wx:if="{{canVisit}}"></image>
<image wx:elif="{{currentData!=1 && canVideo}}" src="{{img_host+'/video.png'}}" alt="" class="tabbg" ></image> <image src="{{img_host+'/suifang_disable.png'}}" alt="" class="tabbg" wx:else></image>
<view class="typebox {{!canVisit?'disable':''}}" >
<view class="name">随访包</view>
<view class="price" wx:if="{{visitPrice}}">¥{{visitPrice}}起</view>
<view class="price" wx:else style="color: #999999;">暂未开通</view>
</view>
<!-- <view class="typebox disable" wx:else >
<view class="name">视频问诊</view>
<view class="price">{{videoPrice?'¥'+videoPrice+'/次':'暂未开通'}}</view>
</view> -->
</view>
<view class="tab add" bindtap="switchTab" data-id="2" id="item2">
<image src="{{img_host+'/healthy_on.png'}}" alt="" class="tabbg" wx:if="{{canHealthy}}"></image>
<image src="{{img_host+'/healthy_disable.png'}}" alt="" class="tabbg" wx:else></image>
<view class="typebox {{!canHealthy?'disable':''}}" >
<view class="name">健康包</view>
<view class="price" wx:if="{{healthyPrice}}">¥{{healthyPrice}}/次</view>
<view class="price" wx:else style="color: #999999;">暂未开通</view>
</view>
</view>
<view class="tab " bindtap="switchTab" data-id="3" id="item3">
<image src="{{img_host+'/video_on.png'}}" wx:if="{{currentData==3 && canVideo}}" alt="" class="tabbg on" ></image>
<image wx:elif="{{currentData==3 && !canVideo}}" src="{{img_host+'/video_disable_on.png'}}" alt="" class="tabbg on" ></image>
<image wx:elif="{{currentData!=3 && canVideo}}" src="{{img_host+'/video.png'}}" alt="" class="tabbg" ></image>
<image wx:else src="{{img_host+'/video_disable.png'}}" alt="" class="tabbg" ></image> <image wx:else src="{{img_host+'/video_disable.png'}}" alt="" class="tabbg" ></image>
<view class="typebox" wx:if="{{canVideo}}"> <view class="typebox" wx:if="{{canVideo}}">
<view class="name">视频问诊</view> <view class="name">视频问诊</view>
@ -118,10 +142,11 @@
<view class="price">{{videoPrice?'¥'+videoPrice+'/次':'暂未开通'}}</view> <view class="price">{{videoPrice?'¥'+videoPrice+'/次':'暂未开通'}}</view>
</view> </view>
</view> </view>
<view class="tab " bindtap="switchTab" data-id="2">
<image wx:if="{{currentData==2 && canDiffcult}}" src="{{img_host+'/yinan_on.png'}}" alt="" class="tabbg on" ></image> <view class="tab " bindtap="switchTab" data-id="4" id="item4">
<image wx:elif="{{currentData==2 && !canDiffcult}}" src="{{img_host+'/yinan_disable_on.png'}}" alt="" class="tabbg on" ></image> <image wx:if="{{currentData==4 && canDiffcult}}" src="{{img_host+'/yinan_on.png'}}" alt="" class="tabbg on" ></image>
<image wx:elif="{{currentData!=2 && canDiffcult}}" src="{{img_host+'/yinan.png'}}" alt="" class="tabbg" ></image> <image wx:elif="{{currentData==4 && !canDiffcult}}" src="{{img_host+'/yinan_disable_on.png'}}" alt="" class="tabbg on" ></image>
<image wx:elif="{{currentData!=4 && canDiffcult}}" src="{{img_host+'/yinan.png'}}" alt="" class="tabbg" ></image>
<image wx:else src="{{img_host+'/yinan_disable.png'}}" alt="" class="tabbg" ></image> <image wx:else src="{{img_host+'/yinan_disable.png'}}" alt="" class="tabbg" ></image>
<view class="typebox" wx:if="{{canDiffcult}}"> <view class="typebox" wx:if="{{canDiffcult}}">
<view class="name">疑难问诊</view> <view class="name">疑难问诊</view>
@ -134,8 +159,9 @@
</view> </view>
</view> </view>
<swiper current="{{currentData}}" class="swiperbox" bindchange="bindchange" style="height:{{tab3Height+'px'}}"> </scroll-view>
<swiper-item > <swiper current="{{currentData}}" class="swiperbox" bindchange="bindchange" style="height:{{tab3Height+'px'}};margin-top:{{tab3Height==0?'0rpx':'20rpx'}}" disable-touch="{{true}}">
<swiper-item catchtouchmove="catchTouchMove">
<view class="swiper-item" id="swiperitem1"> <view class="swiper-item" id="swiperitem1">
<image src="{{img_host+'/tuwen_bg.png'}}" class="itembg" style="height:auto;" mode="widthFix" wx:if="{{canTuwen}}"></image> <image src="{{img_host+'/tuwen_bg.png'}}" class="itembg" style="height:auto;" mode="widthFix" wx:if="{{canTuwen}}"></image>
@ -163,8 +189,10 @@
</view> </view>
</view> </view>
</swiper-item> </swiper-item>
<swiper-item> <swiper-item class="swiper-item" id="swiperitem2" catchtouchmove="catchTouchMove"> </swiper-item>
<view class="swiper-item" id="swiperitem2"> <swiper-item class="swiper-item" id="swiperitem3" catchtouchmove="catchTouchMove"> </swiper-item>
<swiper-item catchtouchmove="catchTouchMove">
<view class="swiper-item" id="swiperitem4">
<image src="{{img_host+'/video_bg.png'}}" class="itembg" style="height:auto;" mode="widthFix" wx:if="{{canVideo}}"></image> <image src="{{img_host+'/video_bg.png'}}" class="itembg" style="height:auto;" mode="widthFix" wx:if="{{canVideo}}"></image>
<image src="{{img_host+'/video_bg_disable.png'}}" style="height:auto;" mode="widthFix" class="itembg" wx:else></image> <image src="{{img_host+'/video_bg_disable.png'}}" style="height:auto;" mode="widthFix" class="itembg" wx:else></image>
<view class="itembox"> <view class="itembox">
@ -206,8 +234,8 @@
</view> </view>
</view> </view>
</swiper-item> </swiper-item>
<swiper-item > <swiper-item catchtouchmove="catchTouchMove" >
<view class="swiper-item" id="swiperitem3"> <view class="swiper-item" id="swiperitem5">
<image src="{{img_host+'/yinan_bg.png'}}" class="itembg" wx:if="{{canDiffcult}}" style="height:auto;" mode="widthFix"></image> <image src="{{img_host+'/yinan_bg.png'}}" class="itembg" wx:if="{{canDiffcult}}" style="height:auto;" mode="widthFix"></image>
<image src="{{img_host+'/video_bg_disable.png'}}" class="itembg" style="height:auto;" mode="widthFix" wx:else></image> <image src="{{img_host+'/video_bg_disable.png'}}" class="itembg" style="height:auto;" mode="widthFix" wx:else></image>
<view class="itembox"> <view class="itembox">
@ -317,10 +345,10 @@
</view> </view>
<!-- <view></view> --> <!-- <view></view> -->
<view class="ask" wx:if="{{(current_inquiry_config && current_inquiry_config.recieveStatus>0) && currentData==0}}" bindtap="handleThrottle" hidden="{{!isFinished}}" data-type="{{currentData}}">立即咨询</view> <view class="ask" wx:if="{{(current_inquiry_config && current_inquiry_config.recieveStatus>0) && currentData==0}}" bindtap="handleThrottle" hidden="{{!isFinished}}" data-type="{{currentData}}">立即咨询</view>
<view class="ask" wx:elif="{{canVideo && currentData==1}}" bindtap="handleThrottle" hidden="{{!isFinished}}" data-type="{{currentData}}">立即咨询</view> <view class="ask" wx:elif="{{canVideo && currentData==3}}" bindtap="handleThrottle" hidden="{{!isFinished}}" data-type="{{currentData}}">立即咨询</view>
<view class="noask" wx:elif="{{!canVideo && currentData==1 && !hasVideoList}}" hidden="{{!isFinished}}" data-type="{{currentData}}">暂不接诊</view> <view class="noask" wx:elif="{{!canVideo && currentData==3 && !hasVideoList}}" hidden="{{!isFinished}}" data-type="{{currentData}}">暂不接诊</view>
<view class="noask" wx:elif="{{!canVideo && currentData==1 && hasVideoList}}" hidden="{{!isFinished}}" data-type="{{currentData}}">{{videoPrice?'暂不接诊':'暂未开通'}}</view> <view class="noask" wx:elif="{{!canVideo && currentData==3 && hasVideoList}}" hidden="{{!isFinished}}" data-type="{{currentData}}">{{videoPrice?'暂不接诊':'暂未开通'}}</view>
<view class="ask" wx:elif="{{canDiffcult && currentData==2}}" bindtap="handleThrottle" hidden="{{!isFinished}}" data-type="{{currentData}}">立即咨询</view> <view class="ask" wx:elif="{{canDiffcult && currentData==4}}" bindtap="handleThrottle" hidden="{{!isFinished}}" data-type="{{currentData}}">立即咨询</view>
<view class="noask" wx:elif="{{!canDiffcult && currentData==2}}" hidden="{{!isFinished}}" data-type="{{currentData}}">{{yinanPrice?'暂不接诊':'暂未开通'}}</view> <view class="noask" wx:elif="{{!canDiffcult && currentData==2}}" hidden="{{!isFinished}}" data-type="{{currentData}}">{{yinanPrice?'暂不接诊':'暂未开通'}}</view>
<view class="noask" bindtap="notAsk" data-type="{{currentData}}" wx:else hidden="{{!isFinished}}">{{(!current_inquiry_config.inquiry_price && !expertInquiry_price)?'暂未开通':'暂不接诊'}}</view> <view class="noask" bindtap="notAsk" data-type="{{currentData}}" wx:else hidden="{{!isFinished}}">{{(!current_inquiry_config.inquiry_price && !expertInquiry_price)?'暂未开通':'暂不接诊'}}</view>
</view> </view>

View File

@ -517,26 +517,37 @@ justify-content:center;
.wz_tabbox{ .wz_tabbox{
margin-top: 20rpx; margin-top: 20rpx;
} }
.tabbox{
margin-top: 16rpx;
overflow-x: scroll;
width:100%;
}
.tabs{ .tabs{
margin-top: 16rpx; height:330rpx;
display: flex; display: flex;
justify-content: space-between; width:1100rpx;
} }
.tabs .tab{ .tabs .tab{
width: 214rpx; width: 210rpx;
height: 300rpx; height: 300rpx;
position: relative; position: relative;
margin-right: 16rpx;
box-shadow: 0rpx 8rpx 20rpx 2rpx rgba(0,0,0,0.04); box-shadow: 0rpx 8rpx 20rpx 2rpx rgba(0,0,0,0.04);
} }
.tabs .tab:last-child{
margin-right: 0;
}
.tabbg{ .tabbg{
top:0rpx; top:0rpx;
width: 100%; width: 100%;
z-index:0; z-index:0;
height: 314rpx; height: 300rpx;
position: absolute; position: absolute;
} }
.tabbg.on{ .tabbg.on{
height: 330rpx; height: 325rpx;
} }
.typebox{ .typebox{
margin-top: 158rpx; margin-top: 158rpx;
@ -568,7 +579,7 @@ color: #999999;
text-decoration: line-through; text-decoration: line-through;
} }
.swiperbox{ .swiperbox{
margin-top: 45rpx; margin-top: 35rpx;
} }
.swiper-item{ .swiper-item{
border-radius: 20rpx; border-radius: 20rpx;

View File

@ -87,7 +87,9 @@ Page({
}else if(link_type==13){ }else if(link_type==13){
url='/patient/pages/prescriptDetail/prescriptDetail?order_prescription_id='+link_params.order_prescription_id url='/patient/pages/prescriptDetail/prescriptDetail?order_prescription_id='+link_params.order_prescription_id
}; }else if(link_type==15){
url='/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id='+link_params.order_no
};
app.method.navigateTo({ app.method.navigateTo({
url: url, url: url,
}) })

View File

@ -80,7 +80,13 @@ Page({
user_type: 1, user_type: 1,
wx_code: res wx_code: res
}).then((data)=>{ }).then((data)=>{
 wx.setStorageSync('AUTH_TOKEN', data.token); const { envVersion } = wx.getAccountInfoSync().miniProgram;
if(envVersion=='release'){
 wx.setStorageSync('AUTH_TOKEN', data.token);
}else{
 wx.setStorageSync('DEV_AUTH_TOKEN', data.token);
}
 wx.setStorageSync('CLIENT_USER_ID',data.client_user_id);  wx.setStorageSync('CLIENT_USER_ID',data.client_user_id);
 wx.setStorageSync('USER_ID',data.user_id);  wx.setStorageSync('USER_ID',data.user_id);
let url=this.data.redirectUrl?this.data.redirectUrl:'/pages/index/index'; let url=this.data.redirectUrl?this.data.redirectUrl:'/pages/index/index';

View File

@ -38,7 +38,8 @@ Page({
if(url.indexOf('?')!=-1){ if(url.indexOf('?')!=-1){
goUrl='/'+url+"&fromType="+url; goUrl='/'+url+"&fromType="+url;
}else{ }else{
goUrl='/'+url+"?fromType="+url; // goUrl='/'+url+"?fromType="+url;
goUrl='/patient/pages/medinceOrder/medinceOrder'
} }
//处理聊天收到消息不及时; //处理聊天收到消息不及时;
if(url.indexOf("TUIService/pages/index")!=-1){ if(url.indexOf("TUIService/pages/index")!=-1){

View File

@ -71,6 +71,11 @@
<view class="dot"></view> <view class="dot"></view>
<view class="desc price">¥{{order_product.logistics_fee}}</view> <view class="desc price">¥{{order_product.logistics_fee}}</view>
</view> </view>
<view class="row">
<view class="name">优惠金额</view>
<view class="dot"></view>
<view class="desc price">-¥{{order_product.discount_amount}}</view>
</view>
<view class="row"> <view class="row">
<view class="name">支付金额</view> <view class="name">支付金额</view>
<view class="dot"></view> <view class="dot"></view>

View File

@ -128,7 +128,12 @@ Page({
user_type:1, user_type:1,
wx_code:res wx_code:res
}).then((data)=>{ }).then((data)=>{
 wx.setStorageSync('AUTH_TOKEN', data.token); const { envVersion } = wx.getAccountInfoSync().miniProgram;
if(envVersion=='release'){
 wx.setStorageSync('AUTH_TOKEN', data.token);
}else{
 wx.setStorageSync('DEV_AUTH_TOKEN', data.token);
}
 wx.setStorageSync('CLIENT_USER_ID',data.client_user_id);  wx.setStorageSync('CLIENT_USER_ID',data.client_user_id);
 wx.setStorageSync('USER_ID',data.user_id);  wx.setStorageSync('USER_ID',data.user_id);
let url=this.data.redirectUrl?this.data.redirectUrl:'/pages/index/index'; let url=this.data.redirectUrl?this.data.redirectUrl:'/pages/index/index';

View File

@ -106,7 +106,7 @@
font-weight:600; font-weight:600;
align-items: baseline; align-items: baseline;
justify-content: space-between; justify-content: space-between;
width:114rpx; width:116rpx;
} }
.row .dot{ .row .dot{
display: flex; display: flex;

View File

@ -11,6 +11,7 @@ Page({
nouseList: [], nouseList: [],
useList: [], useList: [],
expireList: [], expireList: [],
active:0,
user_coupon_status:0, user_coupon_status:0,
}, },
goIndex() { goIndex() {
@ -55,10 +56,12 @@ Page({
*/ */
onChange(event) { onChange(event) {
let tabIndex = `${event.detail.index}` let tabIndex = `${event.detail.index}`
console.log(event.detail.index);
if(tabIndex==2){ if(tabIndex==2){
tabIndex=3 tabIndex=3
} }
this.setData({ this.setData({
active:`${event.detail.index}`,
nouseList: [], nouseList: [],
useList: [], useList: [],
expireList: [], expireList: [],
@ -72,7 +75,26 @@ Page({
}) })
}, },
onLoad(options) { onLoad(options) {
this.getcoupon() console.log('状态');
console.log(options.status)
if(options.status==0){
this.setData({
user_coupon_status:0,
active:0
})
}else if(options.status==1){
this.setData({
user_coupon_status:1,
active:1
})
}else if(options.status==3){
this.setData({
user_coupon_status:3,
active:2
})
}
this.getcoupon();
}, },
/** /**

View File

@ -3,7 +3,9 @@
<nav navName="我的福利"></nav> <nav navName="我的福利"></nav>
<view class="page"> <view class="page">
<van-tabs animated type="line" tab-class="tabdiv" wrap-class="tabwrap" custom-class="tabbox" line-width="50rpx" tab-active-class="tabactive" title-inactive-color="#1C2023;" line-height="height: 10rpx;" swipeable title-active-color="#3CC7C0" color="#3CC7C0" bind:change="onChange"> <van-tabs animated type="line" tab-class="tabdiv" wrap-class="tabwrap" custom-class="tabbox"
active="{{ active }}"
line-width="50rpx" tab-active-class="tabactive" title-inactive-color="#1C2023;" line-height="height: 10rpx;" swipeable title-active-color="#3CC7C0" color="#3CC7C0" bind:change="onChange">
<van-tab title="未使用" class="vantab"> <van-tab title="未使用" class="vantab">
<scroll-view scroll-y class="scrollwraper" bindrefresherrefresh="handleRefresher" refresher-triggered="{{isTriggered}}" refresher-threshold="100" refresher-enabled="true" > <scroll-view scroll-y class="scrollwraper" bindrefresherrefresh="handleRefresher" refresher-triggered="{{isTriggered}}" refresher-threshold="100" refresher-enabled="true" >
<view class="listbox" wx:if="{{nouseList.length>0}}"> <view class="listbox" wx:if="{{nouseList.length>0}}">
@ -13,11 +15,14 @@
<view class="name"> <view class="name">
<view class="tag" wx:if="{{item.application_scope==5}}">单品补贴</view> <view class="tag" wx:if="{{item.application_scope==5}}">单品补贴</view>
<view class="names">{{item.coupon_name}}</view></view> <view class="names">{{item.coupon_name}}</view></view>
<view class="range" wx:if="{{item.application_scope==1}}">使用范围:全场通用</view> <view class="rangbox">
<view class="range" wx:if="{{item.application_scope==1}}">使用范围:全场通用</view>
<view class="range" wx:elif="{{item.application_scope==2}}">使用范围:问诊适用</view> <view class="range" wx:elif="{{item.application_scope==2}}">使用范围:问诊适用</view>
<view class="range" wx:elif="{{item.application_scope==3}}">使用范围:购药</view> <view class="range" wx:elif="{{item.application_scope==3}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==4}}">使用范围:购药</view> <view class="range" wx:elif="{{item.application_scope==4}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==5}}">使用范围:购药</view> <view class="range" wx:elif="{{item.application_scope==5}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==6}}">使用范围:购药</view>
</view>
<view class="date">有效期:{{item.valid_end_time}}</view> <view class="date">有效期:{{item.valid_end_time}}</view>
</view> </view>
<view class="right"> <view class="right">
@ -40,11 +45,19 @@
<view class="name"> <view class="name">
<view class="tag" wx:if="{{item.application_scope==5}}">单品补贴</view> <view class="tag" wx:if="{{item.application_scope==5}}">单品补贴</view>
<view class="names">{{item.coupon_name}}</view></view> <view class="names">{{item.coupon_name}}</view></view>
<view class="range" wx:if="{{item.application_scope==1}}">使用范围:全场通用</view> <view class="rangbox">
<view class="range" wx:if="{{item.application_scope==1}}">使用范围:全场通用</view>
<view class="range" wx:elif="{{item.application_scope==2}}">使用范围:问诊适用</view> <view class="range" wx:elif="{{item.application_scope==2}}">使用范围:问诊适用</view>
<view class="range" wx:elif="{{item.application_scope==3}}">使用范围:购药</view> <view class="range" wx:elif="{{item.application_scope==3}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==4}}">使用范围:购药</view> <view class="range" wx:elif="{{item.application_scope==4}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==5}}">使用范围:购药</view> <view class="range" wx:elif="{{item.application_scope==5}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==6}}">使用范围:购药</view>
</view>
<!-- <view class="range" wx:if="{{item.application_scope==1}}">使用范围:全场通用</view>
<view class="range" wx:elif="{{item.application_scope==2}}">使用范围:问诊适用</view>
<view class="range" wx:elif="{{item.application_scope==3}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==4}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==5}}">使用范围:购药</view> -->
<view class="date">有效期:{{item.valid_end_time}}</view> <view class="date">有效期:{{item.valid_end_time}}</view>
</view> </view>
<view class="right"> <view class="right">
@ -66,11 +79,20 @@
<view class="name"> <view class="name">
<view class="tag" wx:if="{{item.application_scope==5}}">单品补贴</view> <view class="tag" wx:if="{{item.application_scope==5}}">单品补贴</view>
<view class="names">{{item.coupon_name}}</view></view> <view class="names">{{item.coupon_name}}</view></view>
<view class="range" wx:if="{{item.application_scope==1}}">使用范围:全场通用</view> <view class="rangbox">
<view class="range" wx:if="{{item.application_scope==1}}">使用范围:全场通用</view>
<view class="range" wx:elif="{{item.application_scope==2}}">使用范围:问诊适用</view> <view class="range" wx:elif="{{item.application_scope==2}}">使用范围:问诊适用</view>
<view class="range" wx:elif="{{item.application_scope==3}}">使用范围:购药</view> <view class="range" wx:elif="{{item.application_scope==3}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==4}}">使用范围:购药</view> <view class="range" wx:elif="{{item.application_scope==4}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==5}}">使用范围:购药</view> <view class="range" wx:elif="{{item.application_scope==5}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==6}}">使用范围:购药</view>
</view>
<!-- <view class="range" wx:if="{{item.application_scope==1}}">使用范围:全场通用</view>
<view class="range" wx:elif="{{item.application_scope==2}}">使用范围:问诊适用</view>
<view class="range" wx:elif="{{item.application_scope==3}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==4}}">使用范围:购药</view>
<view class="range" wx:elif="{{item.application_scope==5}}">使用范围:购药</view> -->
<view class="date">有效期:{{item.valid_end_time}}</view> <view class="date">有效期:{{item.valid_end_time}}</view>
</view> </view>
<view class="right"> <view class="right">

View File

@ -94,9 +94,13 @@ border-radius: 10rpx;
display: inline; display: inline;
word-break: break-all; word-break: break-all;
} }
.fulibox .left .rangbox{
margin-top: 20rpx;
height: 30rpx;
}
.fulibox .left .range{ .fulibox .left .range{
color: #E34D59; color: #E34D59;
margin-top: 20rpx;
font-size: 28rpx; font-size: 28rpx;
} }
.fulibox .left .date{ .fulibox .left .date{
@ -124,6 +128,7 @@ border-radius: 10rpx;
} }
.fulibox .right .use{ .fulibox .right .use{
margin-top: 10rpx; margin-top: 10rpx;
margin-bottom: 10rpx;
width: 152rpx; width: 152rpx;
height: 60rpx; height: 60rpx;
background: #FFFFFF; background: #FFFFFF;

View File

@ -47,6 +47,8 @@
<view class="desc" wx:elif="{{order.inquiry_type==1 && order.inquiry_mode==2}}">专家问诊-视频</view> <view class="desc" wx:elif="{{order.inquiry_type==1 && order.inquiry_mode==2}}">专家问诊-视频</view>
<view class="desc" wx:elif="{{order.inquiry_type==1 && order.inquiry_mode==6}}">专家问诊-疑难会诊</view> <view class="desc" wx:elif="{{order.inquiry_type==1 && order.inquiry_mode==6}}">专家问诊-疑难会诊</view>
<view class="desc" wx:elif="{{order.inquiry_type==1 && order.inquiry_mode==7}}">专家问诊-附赠回复</view> <view class="desc" wx:elif="{{order.inquiry_type==1 && order.inquiry_mode==7}}">专家问诊-附赠回复</view>
<view class="desc" wx:elif="{{order.inquiry_type==1 && order.inquiry_mode==8}}">健康包服务</view>
<view class="desc" wx:elif="{{order.inquiry_type==1 && order.inquiry_mode==9}}">随访包服务</view>
<view class="desc" wx:elif="{{order.inquiry_type==2 && order.inquiry_mode!=7}}">快速问诊</view> <view class="desc" wx:elif="{{order.inquiry_type==2 && order.inquiry_mode!=7}}">快速问诊</view>
<view class="desc" wx:elif="{{order.inquiry_type==2 && order.inquiry_mode==7}}">快速问诊-附赠回复</view> <view class="desc" wx:elif="{{order.inquiry_type==2 && order.inquiry_mode==7}}">快速问诊-附赠回复</view>
<view class="desc" wx:elif="{{order.inquiry_type==3 && order.inquiry_mode!=7}}">公益问诊</view> <view class="desc" wx:elif="{{order.inquiry_type==3 && order.inquiry_mode!=7}}">公益问诊</view>
@ -106,7 +108,7 @@
<!-- <view class="row" style="justify-content: flex-end;" wx:if="{{order.inquiry_status==1 && order.inquiry_pay_status==1}}"> <!-- <view class="row" style="justify-content: flex-end;" wx:if="{{order.inquiry_status==1 && order.inquiry_pay_status==1}}">
<view class="del">去支付</view> <view class="del">去支付</view>
</view> --> </view> -->
<view class="row" style="justify-content: flex-end;" wx:if="{{order.inquiry_status==2 || order.inquiry_status==3}}"> <view class="row" style="justify-content: flex-end;" wx:if="{{order.inquiry_status==2 || order.inquiry_status==3 }}" hidden="{{order.inquiry_status==3 && order.amount_total==0 && (order.inquiry_mode==8 || order.inquiry_mode==9)}}">
<view class="del" bindtap="confirmCancelInquiry">取消问诊</view> <view class="del" bindtap="confirmCancelInquiry">取消问诊</view>
</view> </view>
<!-- wx:elif="{{order.inquiry_status==4}}" --> <!-- wx:elif="{{order.inquiry_status==4}}" -->
@ -217,7 +219,7 @@
</view> </view>
<view class="linebox"> <view class="linebox">
<view class="line"></view> <view class="line"></view>
<view class="pingjia">非常满意</view> <view class="pingjia">评价</view>
<view class="line"></view> <view class="line"></view>
</view> </view>
<view class="ratebox"> <view class="ratebox">

View File

@ -203,9 +203,10 @@ color: #333333;
border-radius: 10rpx; border-radius: 10rpx;
} }
.namebox .head { .namebox .head {
width: 120rpx; width: 80rpx;
height: 120rpx; height: 80rpx;
flex-shrink: 0; flex-shrink: 0;
margin-bottom: 28rpx;
border-radius: 50%; border-radius: 50%;
} }
@ -218,11 +219,11 @@ color: #333333;
.namewraper { .namewraper {
flex: 1; flex: 1;
max-width:420rpx; max-width:490rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
flex-direction: column; flex-direction: column;
margin-left: 20rpx; margin-left: 0rpx;
} }
.namebox .row { .namebox .row {
@ -317,7 +318,7 @@ color: #333333;
} }
.wenzhenbtn { .wenzhenbtn {
/* position: fixed; */ /* position: fixed; */
margin-bottom: 20rpx; margin-bottom: 25rpx;
width:100%; width:100%;
height: 94rpx; height: 94rpx;
z-index:22; z-index:22;
@ -550,7 +551,7 @@ color: #333333;
} }
.doctorAvatar { .doctorAvatar {
width: 120rpx; width:120rpx;
height: 120rpx; height: 120rpx;
border-radius: 50%; border-radius: 50%;
} }

View File

@ -52,7 +52,7 @@
<view class="row"> <view class="row">
<view class="name"><text>邮</text><text>费</text></view> <view class="name"><text>邮</text><text>费</text></view>
<view class="dot"></view> <view class="dot"></view>
<view class="desc price" wx:if="{{order.logistics_fee>0}}">¥{{order.logistics_fee}}(包邮)</view> <view class="desc price" wx:if="{{order.logistics_fee>0}}">¥{{order.logistics_fee}}</view>
<view class="desc price" wx:else>¥0.00(包邮)</view> <view class="desc price" wx:else>¥0.00(包邮)</view>
</view> </view>
<view class="row"> <view class="row">
@ -63,6 +63,11 @@
<text wx:else>无</text> <text wx:else>无</text>
</view> </view>
</view> </view>
<view class="row">
<view class="name">优惠金额</view>
<view class="dot" ></view>
<view class="desc price">-¥{{order.discount_amount}}</view>
</view>
<view class="row"> <view class="row">
<view class="name"> 支付金额</view> <view class="name"> 支付金额</view>
<view class="dot"></view> <view class="dot"></view>

View File

@ -28,6 +28,7 @@ Page({
time: '', time: '',
inquiry_no: '', inquiry_no: '',
amount_total: "", amount_total: "",
discount_amount:'',
cannot_use_coupon_reason:'', cannot_use_coupon_reason:'',
coupon_amount_total: 0, coupon_amount_total: 0,
logistics_fee: 0, logistics_fee: 0,
@ -43,6 +44,7 @@ Page({
address_id: '', address_id: '',
product_ids: [], product_ids: [],
order_detection_id:'', order_detection_id:'',
order_service_id:'',
order_product_id: '', order_product_id: '',
fromType: '', fromType: '',
showDing:false, showDing:false,
@ -78,8 +80,10 @@ Page({
order_inquiry_id, order_inquiry_id,
order_type, order_type,
order_detection_id, order_detection_id,
order_service_id,
fromType fromType
} = this.data; } = this.data;
console.log( order_type, order_service_id)
if (order_type == 1) { if (order_type == 1) {
if (fromType) { if (fromType) {
if (fromType == "detail") { if (fromType == "detail") {
@ -103,7 +107,7 @@ Page({
}) })
} }
}else if(order_type==3){ }else if(order_type==3){
console.log("2222");
if (fromType) { if (fromType) {
wx.redirectTo({ wx.redirectTo({
url: '/sugarCheck/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id + "&fromType=" + fromType, url: '/sugarCheck/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id + "&fromType=" + fromType,
@ -113,6 +117,16 @@ Page({
delta: 1, delta: 1,
}) })
} }
}else if(order_type==4 || order_type==5){
if (fromType) {
wx.redirectTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id=' + order_service_id + "&fromType=" + fromType,
})
} else {
wx.navigateBack({
delta: 1,
})
}
}else { }else {
if (fromType) { if (fromType) {
wx.redirectTo({ wx.redirectTo({
@ -193,11 +207,15 @@ Page({
}, },
handleThrottle:throttle(function() { handleThrottle:throttle(function() {
console.log(this.data.isLock)
if(!this.data.isLock){ if(!this.data.isLock){
console.log(11111)
this.goPayPlatform();
console.log(222222)
this.setData({ this.setData({
isLock:true isLock:true
}); });
this.goPayPlatform();
} }
}), }),
@ -230,11 +248,15 @@ Page({
url = '/patient/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=2" + "&order_prescription_id=" + order_prescription_id + "&order_product_id=" + order_product_id + "&fromType=" + fromType; url = '/patient/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=2" + "&order_prescription_id=" + order_prescription_id + "&order_product_id=" + order_product_id + "&fromType=" + fromType;
}else if(order_type == 3){//糖组检测 }else if(order_type == 3){//糖组检测
url = '/patient/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=3" + "&order_detection_id=" + order_detection_id+ "&fromType=" + fromType; url = '/patient/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=3" + "&order_detection_id=" + order_detection_id+ "&fromType=" + fromType;
}else if(order_type == 4){//随访包
url = '/patient/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=4&chat_id=" + chat_id + "&doctor_id" + doctor_id + "&inquiry_type=" + inquiry_type + "&inquiry_mode=" + inquiry_mode + "&fromType=" + fromType;
}else if(order_type == 5){//健康包
url = '/patient/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=5&chat_id=" + chat_id + "&doctor_id" + doctor_id + "&inquiry_type=" + inquiry_type + "&inquiry_mode=" + inquiry_mode + "&fromType=" + fromType;
}else { }else {
if (chat_id) { if (chat_id) {
url = '/patient/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=1&chat_id=" + chat_id + "&doctor_id" + doctor_id + "&inquiry_type=" + inquiry_type + "&inquiry_mode" + inquiry_mode + "&order_inquiry_id=" + order_inquiry_id + "&fromType=" + fromType; url = '/patient/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=1&chat_id=" + chat_id + "&doctor_id" + doctor_id + "&inquiry_type=" + inquiry_type + "&inquiry_mode" + inquiry_mode + "&order_inquiry_id=" + order_inquiry_id + "&fromType=" + fromType;
} else { } else {
url = '/patient/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=1&inquiry_type=" + inquiry_type + "&inquiry_mode" + inquiry_mode + "&order_inquiry_id=" + order_inquiry_id + "&fromType=" + fromType; url = '/patient/pages/payPlatform/payPlatform?order_no=' + order_no + "&order_type=1&inquiry_type=" + inquiry_type + "&inquiry_mode=" + inquiry_mode + "&order_inquiry_id=" + order_inquiry_id + "&fromType=" + fromType;
} }
} }
app.method.navigateTo({ app.method.navigateTo({
@ -264,6 +286,11 @@ Page({
this.setData({ this.setData({
order_detection_id:data.order_no order_detection_id:data.order_no
}) })
}else if(order_type==4 || order_type==5){
this.setData({
order_service_id:data.order_no
})
} }
let { let {
@ -282,7 +309,8 @@ Page({
order_inquiry_id, order_inquiry_id,
order_detection_id, order_detection_id,
order_type, order_type,
fromType fromType,
order_service_id
} = this.data; } = this.data;
if (order_type == 1) { if (order_type == 1) {
if (fromType) { if (fromType) {
@ -312,6 +340,17 @@ Page({
}) })
} }
}else if(order_type == 4 || order_type == 5){
if (fromType) {
wx.redirectTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id=' + order_service_id + "&fromType=" + fromType,
})
} else {
wx.navigateBack({
delta: 1,
})
}
}else { }else {
if (fromType) { if (fromType) {
wx.redirectTo({ wx.redirectTo({
@ -325,7 +364,7 @@ Page({
} }
} }
} }
}else{ }else if(result.status==2){
//inquiry_status '问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)', //inquiry_status '问诊订单状态1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消)',
//inquiry_pay_status//1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款); //inquiry_pay_status//1:未支付 2:已支付 3:支付中 4:支付失败 5:支付超时 6:支付关闭 7:已撤销 8:转入退款);
let order_status='order_status'; let order_status='order_status';
@ -380,14 +419,32 @@ Page({
wx.redirectTo({ wx.redirectTo({
url: '/patient/pages/medinceOrderDetail/medinceOrderDetail?order_product_id='+data.order_id+ "&fromType=" +encodeURIComponent("patient/pages/medinceOrder/medinceOrder"), url: '/patient/pages/medinceOrderDetail/medinceOrderDetail?order_product_id='+data.order_id+ "&fromType=" +encodeURIComponent("patient/pages/medinceOrder/medinceOrder"),
}) })
}else{ }else if(order_type==3){
wx.redirectTo({ wx.redirectTo({
url: '/sugarCheck/pages/checkOrderDetail/checkOrderDetail?order_detection_id='+data.order_no+ "&fromType=" +encodeURIComponent("sugarCheck/checkOrder/checkOrder"), url: '/sugarCheck/pages/checkOrderDetail/checkOrderDetail?order_detection_id='+data.order_no+ "&fromType=" +encodeURIComponent("sugarCheck/checkOrder/checkOrder"),
}) })
}else if(order_type==4 || order_type==5){
wx.redirectTo({
url:'/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id='+data.order_no+ "&fromType=" +encodeURIComponent("healthyService/pages/healthyOrder/healthyOrder"),
})
} }
}) })
}else if(result.status==3){
this.setData({
message_error:'当前有问诊中的订单,结束后才可购买'
})
Dialog.confirm({
title: '温馨提示',
showCancelButton:false,
selector:"#hasPayDialog"
}).then(() => {
wx.redirectTo({
url: '/patient/pages/orderDetail/orderDetail?order_inquiry_id='+data.order_id+ "&fromType=list",
})
})
} }
}) })
@ -407,7 +464,7 @@ Page({
success(res) { success(res) {
let item = res.subscriptionsSetting.itemSettings; let item = res.subscriptionsSetting.itemSettings;
//console.log(res.subscriptionsSetting) //console.log(res.subscriptionsSetting)
if (order_type == 1) { //问诊异常提醒 长期订阅 if (order_type == 1 || order_type == 4 || order_type == 5) { //问诊异常提醒 长期订阅
let tmplIds_longtime = ['UOMww1S30Oq7rErJrqO8wN6lNEVKRo2fgcXnb0tBwHI', '9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE']; //问诊提醒长期订阅 let tmplIds_longtime = ['UOMww1S30Oq7rErJrqO8wN6lNEVKRo2fgcXnb0tBwHI', '9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE']; //问诊提醒长期订阅
if (!item || !item['UOMww1S30Oq7rErJrqO8wN6lNEVKRo2fgcXnb0tBwHI'] ||(item['UOMww1S30Oq7rErJrqO8wN6lNEVKRo2fgcXnb0tBwHI'] != "accept") && (item['9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE'] != "accept") || !item['9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE']) { if (!item || !item['UOMww1S30Oq7rErJrqO8wN6lNEVKRo2fgcXnb0tBwHI'] ||(item['UOMww1S30Oq7rErJrqO8wN6lNEVKRo2fgcXnb0tBwHI'] != "accept") && (item['9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE'] != "accept") || !item['9v6dZhjg09CttLd3W9nEUV_-eshNc4BYYNy59jglvZE']) {
THIS.subscription(tmplIds_longtime,callback) THIS.subscription(tmplIds_longtime,callback)
@ -428,7 +485,7 @@ Page({
let tmplIds = ['5aJSrO8SU5rxqdB99zzl4rMVgcOTjt5mQh56cpZI1Hg','dNj3azLupP_w3j649v6lqz7je_ScqwgwFsnug6pKvyI']; let tmplIds = ['5aJSrO8SU5rxqdB99zzl4rMVgcOTjt5mQh56cpZI1Hg','dNj3azLupP_w3j649v6lqz7je_ScqwgwFsnug6pKvyI'];
THIS.subscription(tmplIds,callback); THIS.subscription(tmplIds,callback);
}else { //药品发货通知 一次性订阅 //购药提醒 一次性订阅 }else if(order_type==2) { //药品发货通知 一次性订阅 //购药提醒 一次性订阅
let tmplIds = ['YFdVxDclV1ZjhS7E4Cs0zFdshTRizERpwYdZizj_UWo', 'KjX4m_HOPT5zYuDJqE2rRopAC_QCCMqUTCGc8ElDeWQ','gQO5vhPQfdnvXtK0XnGns1XqNhQpOrXTjdl-5HWWMUw']; let tmplIds = ['YFdVxDclV1ZjhS7E4Cs0zFdshTRizERpwYdZizj_UWo', 'KjX4m_HOPT5zYuDJqE2rRopAC_QCCMqUTCGc8ElDeWQ','gQO5vhPQfdnvXtK0XnGns1XqNhQpOrXTjdl-5HWWMUw'];
//药品订单取消通知 一次性订阅 //药品订单取消通知 一次性订阅
THIS.subscription(tmplIds,callback) THIS.subscription(tmplIds,callback)
@ -508,6 +565,7 @@ Page({
order_inquiry_id, order_inquiry_id,
order_type, order_type,
order_id, order_id,
order_no,
order_product_id, order_product_id,
fromType fromType
} = this.data; } = this.data;
@ -519,7 +577,11 @@ Page({
app.method.navigateTo({ app.method.navigateTo({
url: '/sugarCheck/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id +"&fromType=" + fromType url: '/sugarCheck/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id +"&fromType=" + fromType
}) })
}else { }else if(order_type == 4 || order_type == 5){
app.method.navigateTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id=' + order_no + "&fromType=" + fromType,
})
}else {
// 订单类型1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) // 订单类型1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
if (inquiry_type == 1) { if (inquiry_type == 1) {
app.method.navigateTo({ app.method.navigateTo({
@ -588,12 +650,14 @@ Page({
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad(options) { onLoad(options) {
console.log(options)
//fromType list跳问诊订单列表页处方过来的是链接跳链接页 ,chat是问诊过来 //fromType list跳问诊订单列表页处方过来的是链接跳链接页 ,chat是问诊过来
if (options.fromType) { if (options.fromType) {
this.setData({ this.setData({
fromType: options.fromType fromType: options.fromType
}) })
}; };
//处方订单 //处方订单
if (options.order_type == 2) { if (options.order_type == 2) {
let order_prescription_id = options.order_prescription_id; let order_prescription_id = options.order_prescription_id;
@ -614,6 +678,28 @@ Page({
order_detection_id order_detection_id
}) })
}else if(options.order_type==4){//随访包订单
let order_service_id=options.order_service_id;
this.setData({
order_type: 4,
doctor_id: options.doctor_id,
inquiry_type:options.inquiry_type,
order_no: options.inquiry_no,
chat_id: options.chat_id,
order_service_id:order_service_id?order_service_id:'',
inquiry_mode: options.inquiry_mode
})
}else if(options.order_type==5){//健康包订单
let order_service_id=options.order_service_id;
this.setData({
order_type:5,
doctor_id: options.doctor_id,
inquiry_type:options.inquiry_type,
order_no: options.inquiry_no,
chat_id: options.chat_id,
order_service_id:order_service_id?order_service_id:'',
inquiry_mode: options.inquiry_mode
})
}else { }else {
//问诊相关 //问诊相关
this.setData({ this.setData({
@ -626,7 +712,7 @@ Page({
}) })
} }
//console.log(options.inquiry_mode,options.order_type)
}, },
/** /**
* 生命周期函数--监听页面初次渲染完成 * 生命周期函数--监听页面初次渲染完成
@ -649,7 +735,9 @@ Page({
* 生命周期函数--监听页面隐藏 * 生命周期函数--监听页面隐藏
*/ */
onHide() { onHide() {
this.setData({
isLock:false
});
}, },
/** /**

View File

@ -24,8 +24,10 @@
<view class="name" wx:elif="{{inquiry_type==4}}">问诊购药</view> <view class="name" wx:elif="{{inquiry_type==4}}">问诊购药</view>
<view class="name" wx:elif="{{order_type==2 && !inquiry_type }}">药品金额</view> <view class="name" wx:elif="{{order_type==2 && !inquiry_type }}">药品金额</view>
<view class="name" wx:elif="{{order_type==3 && !inquiry_type }}">糖组检测</view> <view class="name" wx:elif="{{order_type==3 && !inquiry_type }}">糖组检测</view>
<view class="name" wx:elif="{{order_type==4 && inquiry_mode==9 }}">随访包服务</view>
<view class="name" wx:elif="{{order_type==5 && inquiry_mode==8 }}">健康包服务</view>
<view class="desc">¥{{amount_total}}</view> <view class="desc">¥{{amount_total}}</view>
</view> </view>
<view class="row" wx:if="{{logistics_fee>0}}"> <view class="row" wx:if="{{logistics_fee>0}}">
<view class="name">邮费</view> <view class="name">邮费</view>
@ -40,6 +42,10 @@
<view class="desc nodiscount" wx:elif="{{order_type==3 && !inquiry_type}}">暂不可用</view> <view class="desc nodiscount" wx:elif="{{order_type==3 && !inquiry_type}}">暂不可用</view>
</view> </view>
<view class="row" wx:if="{{order_type==2 && !inquiry_type && discount_amount}}">
<view class="name">优惠金额</view>
<view class="desc nodiscount">-¥{{discount_amount}}</view>
</view>
</view> </view>
<view class="bottom"> <view class="bottom">
<view class="realprice">支付金额:<text class="price">¥{{payment_amount_total}}</text></view> <view class="realprice">支付金额:<text class="price">¥{{payment_amount_total}}</text></view>

View File

@ -101,7 +101,11 @@ Page({
wx.redirectTo({ wx.redirectTo({
url: '/patient/pages/medinceOrderDetail/medinceOrderDetail?order_product_id='+data.order_id+ "&fromType=" +encodeURIComponent("patient/pages/medinceOrder/medinceOrder"), url: '/patient/pages/medinceOrderDetail/medinceOrderDetail?order_product_id='+data.order_id+ "&fromType=" +encodeURIComponent("patient/pages/medinceOrder/medinceOrder"),
}) })
}else{ }else if(order_type == 4 || order_type == 5){
wx.redirectTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id=' + data.order_no + "&fromType=" + +encodeURIComponent("healthyService/pages/healthyOrder/healthyOrder"),
})
}else{
wx.redirectTo({ wx.redirectTo({
url: '/sugarCheck/pages/checkOrderDetail/checkOrderDetail?order_detection_id='+data.order_no+ "&fromType=" +encodeURIComponent("sugarCheck/pages/checkOrder/checkOrder"), url: '/sugarCheck/pages/checkOrderDetail/checkOrderDetail?order_detection_id='+data.order_no+ "&fromType=" +encodeURIComponent("sugarCheck/pages/checkOrder/checkOrder"),
}) })
@ -147,6 +151,7 @@ Page({
order_inquiry_id, order_inquiry_id,
order_type, order_type,
order_id, order_id,
order_no,
order_product_id, order_product_id,
order_detection_id, order_detection_id,
fromType fromType
@ -160,7 +165,11 @@ Page({
wx.redirectTo({ wx.redirectTo({
url: '/sugarCheck/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id + "&fromType=" + fromType, url: '/sugarCheck/pages/checkOrderDetail/checkOrderDetail?order_detection_id=' + order_detection_id + "&fromType=" + fromType,
}) })
}else { }else if(order_type == 4 || order_type == 5){
wx.redirectTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id=' + order_no + "&fromType=" + fromType,
})
}else {
// 订单类型1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) // 订单类型1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
if (inquiry_type == 1) { if (inquiry_type == 1) {
app.method.navigateTo({ app.method.navigateTo({
@ -269,6 +278,24 @@ Page({
order_detection_id order_detection_id
}) })
}else if(options.order_type==4){//随访包订单
this.setData({
order_type: 4,
doctor_id: options.doctor_id,
inquiry_type:options.inquiry_type,
order_no: options.order_no,
chat_id: options.chat_id,
inquiry_mode: options.inquiry_mode
})
}else if(options.order_type==5){//健康包订单
this.setData({
order_type:5,
doctor_id: options.doctor_id,
inquiry_type:options.inquiry_type,
order_no: options.order_no,
chat_id: options.chat_id,
inquiry_mode: options.inquiry_mode
})
}else { }else {
//问诊相关 //问诊相关
this.setData({ this.setData({

View File

@ -93,7 +93,9 @@ Page({
}else if(link_type==13){ }else if(link_type==13){
url='/patient/pages/prescriptDetail/prescriptDetail?order_prescription_id='+link_params.order_prescription_id url='/patient/pages/prescriptDetail/prescriptDetail?order_prescription_id='+link_params.order_prescription_id
}; }else if(link_type==15){
url='/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id='+link_params.order_no
};
app.method.navigateTo({ app.method.navigateTo({
url: url, url: url,
}) })

View File

@ -92,7 +92,9 @@ Page({
}else if(link_type==13){ }else if(link_type==13){
url='/patient/pages/prescriptDetail/prescriptDetail?order_prescription_id='+link_params.order_prescription_id url='/patient/pages/prescriptDetail/prescriptDetail?order_prescription_id='+link_params.order_prescription_id
}; }else if(link_type==15){
url='/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id='+link_params.order_no
};
app.method.navigateTo({ app.method.navigateTo({
url: url, url: url,
}) })

View File

@ -25,6 +25,7 @@ Page({
*/ */
data: { data: {
prevData: null, prevData: null,
order_no:'',
pathography_id:'', pathography_id:'',
showdialog: false, showdialog: false,
showAgreeDialog: false, showAgreeDialog: false,
@ -533,7 +534,8 @@ Page({
}).then((data) => { }).then((data) => {
let { let {
inquiry_no, inquiry_no,
order_inquiry_id order_inquiry_id,
order_no,
} = data.data; } = data.data;
let { let {
chat_id, chat_id,
@ -554,6 +556,13 @@ Page({
order_inquiry_id: order_inquiry_id, order_inquiry_id: order_inquiry_id,
cancelBtn:true cancelBtn:true
}) })
}else if(data.status==3){
this.setData({
showdialog:true,
messageTitle:"当前患者存在服务包订单",
order_no:order_no,
cancelBtn:true
})
} }
@ -699,6 +708,11 @@ Page({
app.method.navigateTo({ app.method.navigateTo({
url: '/patient/pages/orderDetail/orderDetail?order_inquiry_id='+ order_inquiry_id, url: '/patient/pages/orderDetail/orderDetail?order_inquiry_id='+ order_inquiry_id,
}) })
}else if(this.data.messageTitle=="当前患者存在服务包订单"){
let {order_no}=this.data;
app.method.navigateTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id='+order_no,
})
} }
}, },
cancelAlert(){ cancelAlert(){

View File

@ -9,7 +9,7 @@
} }
.sickHisbox{ .sickHisbox{
display: flex; display: flex;
height:94rpx; height:100rpx;
align-items: center; align-items: center;
margin-bottom: 20rpx; margin-bottom: 20rpx;
background-color: #fff; background-color: #fff;

BIN
patient/static/images.zip Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -13,6 +13,7 @@ Page({
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
order_no:'',
time: 30 * 60 * 60 * 1000, time: 30 * 60 * 60 * 1000,
showCover:true, showCover:true,
isWait:true, isWait:true,
@ -153,7 +154,7 @@ Page({
if(url.indexOf('?')!=-1){ if(url.indexOf('?')!=-1){
goUrl='/'+url+"&fromType="+url; goUrl='/'+url+"&fromType="+url;
}else{ }else{
goUrl='/'+url+"?fromType="+url; goUrl='/sugarCheck/pages/checkOrder/checkOrder'
} }
//处理聊天收到消息不及时; //处理聊天收到消息不及时;
if(url.indexOf("TUIService/pages/index")!=-1){ if(url.indexOf("TUIService/pages/index")!=-1){
@ -227,16 +228,17 @@ Page({
handleCheckInquiry:throttle(function(){ handleCheckInquiry:throttle(function(){
let id=this.data.order.order_detection_id; let id=this.data.order.order_detection_id;
checkInquiry(id).then(data=>{ checkInquiry(id).then(data=>{
let {order_inquiry_id,order_no}=data.data;
console.log(data); console.log(data);
if(data.status==1){ if(data.status==1){
this.setData({ this.setData({
order_inquiry_id:data.data, order_inquiry_id:order_inquiry_id,
}) })
this.goChat(); this.goChat();
}else if(data.status==2){ }else if(data.status==2){
this.setData({ this.setData({
showCheckDialog:true, showCheckDialog:true,
order_inquiry_id:data.data, order_inquiry_id:order_inquiry_id,
checkSatus:2, checkSatus:2,
checkmessage:'当前医生有您待支付的订单,点击“继续”将为您取消订单直接进入报告解读服务。' checkmessage:'当前医生有您待支付的订单,点击“继续”将为您取消订单直接进入报告解读服务。'
}) })
@ -244,16 +246,23 @@ Page({
this.setData({ this.setData({
checkSatus:3, checkSatus:3,
showCheckDialog:true, showCheckDialog:true,
order_inquiry_id:data.data, order_inquiry_id:order_inquiry_id,
checkmessage:'当前医生有您待接诊的订单,点击“继续”将为您取消订单直接进入报告解读服务。' checkmessage:'当前医生有您待接诊的订单,点击“继续”将为您取消订单直接进入报告解读服务。'
}) })
}else if(data.status==4){ }else if(data.status==4){
this.setData({ this.setData({
showCheckDialog:true, showCheckDialog:true,
checkSatus:4, checkSatus:4,
order_inquiry_id:data.data, order_inquiry_id:order_inquiry_id,
checkmessage:'当前医生有您接诊中的订单,点击“继续”将为您直接进入报告解读服务。' checkmessage:'当前医生有您接诊中的订单,点击“继续”将为您直接进入报告解读服务。'
}) })
}else if(data.status==5){
this.setData({
showCheckDialog:true,
checkSatus:5,
order_no:order_no,
checkmessage:'存在未支付的服务包订单,点击“继续”将为您直接进入服务包订单详情。'
})
} }
}) })
},1000), },1000),
@ -471,6 +480,11 @@ confirmCheck:throttle(function(){
this.handelCancelInquiryOrder(); this.handelCancelInquiryOrder();
}else if(this.data.checkSatus==4){ }else if(this.data.checkSatus==4){
this.goChat(); this.goChat();
}else if(this.data.checkSatus==5){
let {order_no}=this.data;
app.method.navigateTo({
url: '/healthyService/pages/healthyOrderDetail/healthyOrderDetail?order_service_id='+order_no,
})
} }
}), }),
handelCancelCheckOrder(flag=true){ handelCancelCheckOrder(flag=true){
@ -508,7 +522,7 @@ copy(event){
goPay:throttle(function(){ goPay:throttle(function(){
let {order_detection_id,detection_no}=this.data.order; let {order_detection_id,detection_no}=this.data.order;
app.method.navigateTo({ app.method.navigateTo({
url: '/patient/pages/payOrder/payOrder?inquiry_no='+ detection_no +"&order_detection_id="+order_detection_id+"&order_type=3&fromType="+encodeURIComponent('/sugarCheck/pages/checkOrder/checkOrder') url: '/patient/pages/payOrder/payOrder?inquiry_no='+ detection_no +"&order_detection_id="+order_detection_id+"&order_type=3&fromType="+encodeURIComponent('sugarCheck/pages/checkOrder/checkOrder')
}) })
}), }),
handelDelProduct(){ handelDelProduct(){

View File

@ -20,7 +20,15 @@ function request(url, method, data, loding = false) {
mask: true mask: true
}) })
} }
let token = wx.getStorageSync('AUTH_TOKEN'); let token='';
const { envVersion } = wx.getAccountInfoSync().miniProgram;
if(envVersion=='release'){
token = wx.getStorageSync('AUTH_TOKEN');
}else{
token = wx.getStorageSync('DEV_AUTH_TOKEN');
}
if (!token) { if (!token) {
let freelist = ["/login/wechat_mobile_login", '/login/mobile_login','/code/phone','/patient/index',"/popup","/sign/im"];//接口白名单 let freelist = ["/login/wechat_mobile_login", '/login/mobile_login','/code/phone','/patient/index',"/popup","/sign/im"];//接口白名单
let currentUrl=getCurrentPageUrl(); let currentUrl=getCurrentPageUrl();
@ -53,7 +61,14 @@ function request(url, method, data, loding = false) {
var Authorization_token = res.header.Authorization; var Authorization_token = res.header.Authorization;
if (Authorization_token) { if (Authorization_token) {
wx.setStorageSync('AUTH_TOKEN', Authorization_token); //当token快过期时服务器会返回新token本地刷新 const { envVersion } = wx.getAccountInfoSync().miniProgram;
if(envVersion=='release'){
wx.setStorageSync('AUTH_TOKEN', Authorization_token);
}else{
wx.setStorageSync('DEV_AUTH_TOKEN', Authorization_token);
}
//当token快过期时服务器会返回新token本地刷新
} }
if (loding) { if (loding) {
wx.hideLoading() wx.hideLoading()
@ -90,7 +105,14 @@ function request(url, method, data, loding = false) {
}else if (Number(res.data.code) == 401 || Number(res.data.code) == 403 || Number(res.data.code) == 405 || Number(res.data.code) == 406) { }else if (Number(res.data.code) == 401 || Number(res.data.code) == 403 || Number(res.data.code) == 405 || Number(res.data.code) == 406) {
let redirectUrl=formatUrl(); let redirectUrl=formatUrl();
if(!isLock){ if(!isLock){
wx.setStorageSync('AUTH_TOKEN',''); const { envVersion } = wx.getAccountInfoSync().miniProgram;
if(envVersion=='release'){
wx.setStorageSync('AUTH_TOKEN','');
}else{
wx.setStorageSync('DEV_AUTH_TOKEN','');
}
// wx.setStorageSync('AUTH_TOKEN','');
isLock=true; isLock=true;
wx.reLaunch({ wx.reLaunch({
url: '/patient/pages/login/login?redirectUrl='+redirectUrl url: '/patient/pages/login/login?redirectUrl='+redirectUrl