2.23 更新

This commit is contained in:
zoujiandong 2024-02-23 14:06:03 +08:00
parent c007fc4fb7
commit 1e13c0a234
33 changed files with 2028 additions and 193 deletions

View File

@ -58,7 +58,11 @@ Page({
_this.setData({
has_data: true
})
try {
_this.selectComponent('#tabs').resize();
} catch (y) {
}
let getCurrentName = _this.selectComponent('#tabs').getCurrentName();
let now_message_inquiry_type = _this.data.now_message_inquiry_type;
if(getCurrentName != now_message_inquiry_type){
@ -194,6 +198,7 @@ Page({
let lastMessage = item.lastMessage;
if(!lastMessage) return;
let cloudCustomData = lastMessage.cloudCustomData;
if(!cloudCustomData) return;
let cloudCustomDataJson;
try {
@ -206,11 +211,20 @@ Page({
return;
}
let order_inquiry_id = cloudCustomDataJson.order_inquiry_id;
order_inquiry_id_list.push(order_inquiry_id);//准备去请求后端那订单状态
})
let conversationList = arr; //this.data.conversationList;
//获取医生问诊消息用户属性
api.getDoctorInquiryMessageAttr({order_inquiry_ids: order_inquiry_id_list.join(",")}).then(response => {
let order_inquiry_ids='';
order_inquiry_id_list.forEach(item=>{
if(order_inquiry_ids){
order_inquiry_ids+=','+item;
}else{
order_inquiry_ids+=item
}
})
api.getDoctorInquiryMessageAttr({order_inquiry_ids: order_inquiry_ids}).then(response => {
let new_conversationList = [];
if(response.data.length > 0){
conversationList.forEach(item => {
@ -362,7 +376,7 @@ Page({
wx.setStorageSync(userID+'_wenzhen_info', totalUnreadCount);
console.log(session_data_list_3)
console.log(session_data_list_1)
this.setData({
data_list_1: session_data_list_1,
data_list_2: session_data_list_2,
@ -388,7 +402,7 @@ Page({
this.setData({
show: false
})
console.log(111);
// console.log("开始订阅消息");
// wx.requestSubscribeMessage({
// tmplIds: ['jhYUf91ULCTX_f69hazqAYwImdFf8ELasRAwB6X-MTM'],
@ -406,8 +420,10 @@ Page({
//from=end代表从问诊接触过来from=prescription 代表从处方管理进来
//主要处理有新的问诊还停留在老的聊天问诊里的bug。
if(from){
url = e.currentTarget.dataset.url+"?from_account="+from_account+"&order_inquiry_id="+order_inquiry_id+"&inquiry_type="+inquiry_type+"&from="+from;
}else{
url = e.currentTarget.dataset.url+"?from_account="+from_account+"&order_inquiry_id="+order_inquiry_id+"&inquiry_type="+inquiry_type;
}

View File

@ -43,7 +43,7 @@
<view class="content" wx:for="{{ data_list_1 }}" wx:key="order_inquiry_id">
<view class="content_1">
<view class="name">
<view class="parallelogram {{item.inquiry_mode==1?'':item.inquiry_mode==2?'video':item.inquiry_mode==6?'yinan':'other'}}">{{item.inquiry_mode==1?'图文':item.inquiry_mode==2?'视频':item.inquiry_mode==6?'疑难问诊':'其他'}}</view>
<view class="parallelogram {{item.inquiry_mode==1?'':item.inquiry_mode==2?'video':item.inquiry_mode==6?'yinan':'other'}}">{{item.inquiry_mode==1?'图文':item.inquiry_mode==2?'视频':item.inquiry_mode==6?'疑难问诊':item.inquiry_mode==7?'附赠回复':'其他'}}</view>
<text style="font-size: 34rpx;color: #333;">就诊人:</text>
{{item.patient_name}} {{item.patient_sex==1?'男':'女'}}{{item.patient_age}}<t-badge dot="{{item.message_dot || item.inquiry_status==3}}" offset="{{ [-4, 4] }}" content="岁" />
</view>
@ -194,7 +194,9 @@
<van-tab title="问诊结束" name="6" wx:if="{{data_list_6.length > 0}}">
<view class="content" wx:for="{{ data_list_6 }}" wx:key="order_inquiry_id" bindtap="goChat" data-from_account="{{item.from_account}}" data-inquiry_type="{{item.inquiry_type}}" data-order_inquiry_id="{{item.order_inquiry_id}}"
data-from="end"
data-url="/TUIChatKit/pages/index">
data-url="/TUIChatService/pages/index">
<!-- data-url="/TUIChatKit/pages/index" -->
<view class="content_1" >
<view class="name">
<text style="font-size: 34rpx;color: #333;">就诊人:</text>

View File

@ -1,6 +1,7 @@
import { TUICallKitServer } from "../../../TUICallService/index";
const PATH = '../../../static';
Component({
properties: {
callRole: {
type: String,
@ -36,6 +37,18 @@ Component({
type: Boolean
}
},
pageLifetimes: {
show: function() {
// 页面被展示
},
hide: function() {
// 页面被隐藏
this.hangup()
},
resize: function(size) {
// 页面尺寸变化
}
},
data:{
IMG_DEFAULT_AVATAR:`${PATH}/default_avatar.png`,
IMG_HANGUP:`${PATH}/hangup.png`,

View File

@ -224,6 +224,29 @@ Component({
}];
return renderDom;
}
//13 SEND_TALK
if (customMessage.message_type === GDXZ_CUSTOM_MSEEAGE.SEND_TALK){
const renderDom = [{
type: 'send_talk',
title: customMessage.title,
desc: customMessage.desc,
}];
return renderDom;
}
//16 预约时间
if (customMessage.message_type === GDXZ_CUSTOM_MSEEAGE.VIDEO_TIME){
let data = customMessage.data;
const renderDom = [{
type: 'video_time',
title: customMessage.title,
desc: customMessage.desc,
}];
return renderDom;
}
} catch (error) {
}
// 客服咨询

View File

@ -54,7 +54,7 @@
<!-- 自定义开处方样式 -->
<view wx:if="{{renderDom[0].type==='prescribe'}}"
class="gdxz_custom_order_prescribe_message"
data-url="/Pages/yishi/onlinechufang/index?order_inquiry_id={{renderDom[0].order_inquiry_id}}&order_prescription_id={{renderDom[0].order_prescription_id}}&from=chat"
data-url="/user/pages/yishi/onlinechufang/index?order_inquiry_id={{renderDom[0].order_inquiry_id}}&order_prescription_id={{renderDom[0].order_prescription_id}}&from=chat"
bindtap="go">
<view class="prescribe_title">
{{renderDom[0].title}}
@ -71,7 +71,7 @@
</view>
<view wx:if="{{renderDom[0].type==='prescribe_verify'}}"
class="gdxz_custom_order_prescribe_message"
data-url="/Pages/yishi/onlinechufang/index?order_inquiry_id={{renderDom[0].order_inquiry_id}}&order_prescription_id={{renderDom[0].order_prescription_id}}&from=chat"
data-url="/user/pages/yishi/onlinechufang/index?order_inquiry_id={{renderDom[0].order_inquiry_id}}&order_prescription_id={{renderDom[0].order_prescription_id}}&from=chat"
bindtap="go">
<view class="prescribe_title">
{{renderDom[0].title}}
@ -143,5 +143,11 @@
点击查看
</view>
</view>
<view class="videotime" wx:if="{{renderDom[0].type==='video_time'}}" >
{{renderDom[0].desc}}
</view>
<view class="videotime" wx:if="{{renderDom[0].type==='send_talk'}}" >
{{renderDom[0].desc}}
</view>
</view>

View File

@ -464,3 +464,9 @@ color: #666666;
border: 1rpx solid #D8D8D8;
border-style: none none solid solid
}
.videotime{
font-size: 28rpx;
text-align: center;
line-height: 44rpx;
color: rgba(0,0,0,0.65);
}

View File

@ -104,6 +104,7 @@ Component({
conversation: {},
message: '',
showRound:false,
video_dialog_visible:false,
showTalk:false,
videoInfo:{},
baseInfo:{},
@ -334,16 +335,36 @@ Component({
methods: {
sendTalk(){
let {order_inquiry_id,duration,times_number}=this.data;
if(times_number==''){
wx.showToast({
title: '回合数不能为空',
icon:'none'
})
return false
}
if(!(times_number>=0 && times_number<=300)){
wx.showToast({
title: '回合数在0~300之间',
icon:'none'
})
return false
}
if(!duration){
wx.showToast({
title: '请选择回合周期',
icon:'none'
})
return false
}
this.setData({
showTalk:false
})
api.giveRounds({
order_inquiry_id,
duration,
duration:duration*24*60,
times_number
}).then(response => {
if(response.code==200){
wx.showToast({
title: '赠送成功',
icon:"none"
@ -389,12 +410,18 @@ Component({
title: '预约成功',
icon:"none"
})
this.triggerEvent("freshVideoInfo")
}
}).catch(errors => {
console.error(errors);
})
},
openVidaoDialog(){
this.setData({
video_dialog_visible:true
})
},
call() {
let {baseInfo}=this.data;
console.log(baseInfo)
@ -419,7 +446,7 @@ Component({
await TUICallKitServer.call({
userID: this.data.patient_user_id,
type: 2,
roomID:result
roomID:Number(result)
});
})
@ -812,7 +839,7 @@ Component({
break;
case '10'://查看完整病历
// app.go("/Pages/yishi/case/index?order_inquiry_id="+this.data.order_inquiry_id)
app.go("/Pages/yishi/patient_sick/index?order_inquiry_id="+this.data.order_inquiry_id+"&family_id="+this.data.family_id)
app.go("/user/pages/yishi/patient_sick/index?order_inquiry_id="+this.data.order_inquiry_id+"&family_id="+this.data.family_id)
break;
case '11'://在线开方
let _this = this;
@ -836,7 +863,7 @@ Component({
this.openTimePicker();
break;
case '13':
this.call();
this.openVidaoDialog();
break;
default:
break;
@ -867,7 +894,7 @@ Component({
api.getDoctorPrescriptionCheck({order_inquiry_id: order_inquiry_id}).then(response => {
let status = response.data.status
if(status == 1){
app.go("/Pages/yishi/onlinechufang/index?order_inquiry_id="+order_inquiry_id)
app.go("/user/pages/yishi/onlinechufang/index?order_inquiry_id="+order_inquiry_id)
}else{
this.setData({
dialog_visible: true,
@ -883,6 +910,17 @@ Component({
dialog_visible: false
})
},
cancelDialogVideo(){
this.setData({
video_dialog_visible: false
})
},
confirmDialogVideo(){
this.setData({
video_dialog_visible: false
})
this.call();
},
//获取问诊订单状态
async getInquiryMessageBasic(order_inquiry_id) {
// console.log("order_inquiry_id: ", this.data.order_inquiry_id);
@ -1426,11 +1464,16 @@ Component({
},
//常用语
showChangYongYu(){
app.go("/Pages/yishi/quickreply/index?from=chat")
app.go("/user/pages/yishi/quickreply/index?from=chat")
},
showWenZhenBiao(){
app.go("/Pages/yishi/write_sickform/index?order_inquiry_id="+this.data.order_inquiry_id)
app.go("/user/pages/yishi/write_sickform/index?order_inquiry_id="+this.data.order_inquiry_id)
},
showSendTalk(){
this.setData({
showTalk:true
})
}
},
});

View File

@ -2,8 +2,8 @@
<view class="TUI-commom-function">
<view class="TUI-commom-function-item" data-key="10" bindtap="handleCommonFunctions">查看完整病历</view>
<view class="TUI-commom-function-item" data-key="11" bindtap="handleCommonFunctions" wx:if="{{baseInfo.multi_point_status == 1 && baseInfo.inquiry_status==4 && baseInfo.multi_point_enable==1}}">在线开处方</view>
<view class="TUI-commom-function-item" data-key="12" bindtap="handleCommonFunctions" wx:if="{{baseInfo.multi_point_status == 1 && baseInfo.inquiry_status==4 && baseInfo.multi_point_enable==1 && !videoInfo.is_reservation_time}}">预约视频时间</view>
<view class="TUI-commom-function-item" data-key="13" bindtap="handleCommonFunctions" >发起视频</view>
<view class="TUI-commom-function-item" data-key="12" bindtap="handleCommonFunctions" wx:if="{{baseInfo.multi_point_status == 1 && baseInfo.inquiry_status==4 && baseInfo.multi_point_enable==1 && !videoInfo.is_reservation_time && baseInfo.inquiry_mode==7 }}">预约视频时间</view>
<view class="TUI-commom-function-item" data-key="13" bindtap="handleCommonFunctions" wx:if="{{baseInfo.multi_point_status == 1 && baseInfo.inquiry_status==4 && baseInfo.multi_point_enable==1 && videoInfo.is_reservation_time && videoInfo.is_video==0 && baseInfo.inquiry_mode==7 }}">发起视频</view>
<!-- wx:if="{{baseInfo.multi_point_status == 1 && baseInfo.inquiry_status==4 && baseInfo.multi_point_enable==1 && videoInfo.is_reservation_time && videoInfo.is_video==0 }}" -->
</view>
<view class="TUI-message-input">
@ -63,7 +63,7 @@
<image mode="widthFix" class="TUI-Extension-icon MY-TUI-Extension-icon" src="{{static_host}}/applet/doctor/static/images/yishi/wenzhenicon.png" />
<view class="TUI-Extension-slot-name MY-TUI-Extension-slot-name">问诊表</view>
</view>
<view class="TUI-Extension-slot MY-TUI-Extension-slot" bindtap="showWenZhenBiao" wx:if="{{baseInfo.inquiry_status==4}}">
<view class="TUI-Extension-slot MY-TUI-Extension-slot" bindtap="showSendTalk" wx:if="{{baseInfo.inquiry_status==5}}">
<image mode="widthFix" class="TUI-Extension-icon MY-TUI-Extension-icon" src="../../../../static/images/talk.png" style="width:70rpx;height:70rpx;padding:18rpx"/>
<view class="TUI-Extension-slot-name MY-TUI-Extension-slot-name">赠送沟通</view>
</view>
@ -149,6 +149,20 @@
确定
</view>
</t-dialog>
<t-dialog
visible="{{ video_dialog_visible }}"
title="温馨提示"
content="确实现在发起视频问诊?"
>
<view slot="cancel-btn" class="dialog dialog_cancel_btn" bindtap="cancelDialogVideo">
取消
</view>
<view slot="confirm-btn" class="dialog dialog_confirm_btn" bindtap="confirmDialogVideo">
立即发起
</view>
</t-dialog>
<van-overlay show="{{ showTalk }}" z-index="9900">
<view class="wrapper">
<view class="custombox">
@ -158,7 +172,7 @@
<input type="number" placeholder="" class="ipt" value="{{times_number}}" bindinput="changeCustomIpt" placeholder-style="color: rgba(0,0,0,0.25);font-size:32rpx"/>
<view class="name">个沟通回合数</view>
</view>
<view class="roundBox" bindtap="openRound">
<view class="roundBox" bindtap="openRound" style="border-bottom: none;margin-top: 28rpx;">
<view class="lname">回合周期</view>
<input type="number" placeholder="" class="ipt" value="{{duration}}"
disabled="{{true}}"

View File

@ -89,9 +89,10 @@
}
.TUI-Extension-slot {
width:20%;
/* width: 128rpx;
height: 170rpx; */
flex:1;
/* flex:1; */
/* margin-left: 26rpx;
margin-right: 26rpx; */
@ -237,10 +238,13 @@
background-color: #fff;
}
.roundBox{
margin: 56rpx 0;
margin: 56rpx 0 0rpx;
padding-bottom: 35rpx;
display: flex;
justify-content: center;
border-bottom:1rpx solid #E7E7E7;
}
.custombox .title{
text-align: center;
font-size: 36rpx;

View File

@ -215,7 +215,6 @@ Component({
})
},
getAudioMsg(){
console.log(this.data.order_inquiry_id)
api.getVideoMsg(this.data.order_inquiry_id).then(response => {
let result=response.data
console.log(result);

View File

@ -32,7 +32,7 @@
<view class="status {{baseInfo.inquiry_status==5?'status_complete':''}}" wx:else="{{baseInfo.inquiry_status!=4}}">{{baseInfo.inquiry_status==1?'待支付':baseInfo.inquiry_status==2?'待分配':baseInfo.inquiry_status==3?'待接诊':baseInfo.inquiry_status==4?'接诊中':baseInfo.inquiry_status==5?'问诊完成':baseInfo.inquiry_status==6?'已结束':baseInfo.inquiry_status==7?'已取消':'未知'}}</view>
</view>
</view>
<view class="yuyuetip" bind:tap="openTime" wx:if="{{isEditTime && videoInfo.is_reservation_time}}">
<view class="yuyuetip" bind:tap="openTime" wx:if="{{isEditTime && videoInfo.is_reservation_time && (baseInfo.inquiry_status==4)}}">
<view >如需要修改视频时间,请点击这里</view>
<van-icon name="arrow" size="14px" style="margin-top: 3rpx;" color="#FF9C00" />
</view>
@ -43,7 +43,7 @@
<image class="tui-navigatorbar-back" bindtap="goBack" src="../../static/assets/ic_back_black.svg" />
<view class="conversation-title">{{conversationName}}</view>
</view> -->
<view class="list-box {{ showTips && 'list-box-notips'}} || {{ showGroupTips && 'list-box-group'}} || {{ showAll && 'list-box-group-notips'}}" style="height: calc(100vh {{baseInfo.inquiry_status==4?'- 197rpx':'- 196rpx'}} - 100rpx - {{navbar_height}}px {{(isEditTime && videoInfo.is_reservation_time) ?'- 72rpx':'- 0rpx'}});"><!-- 100vh -input-area高度 - info高度 -navbar高度 -->
<view class="list-box {{ showTips && 'list-box-notips'}} || {{ showGroupTips && 'list-box-group'}} || {{ showAll && 'list-box-group-notips'}}" style="height: calc(100vh {{baseInfo.inquiry_status==4?'- 197rpx':'- 196rpx'}} - 100rpx - {{navbar_height}}px {{(isEditTime && videoInfo.is_reservation_time && (baseInfo.inquiry_status==4)) ?'- 72rpx':'- 0rpx'}});"><!-- 100vh -input-area高度 - info高度 -navbar高度 -->
<!-- <view wx:if="{{showTips}}" class="safetytips-box"> -->
<!-- <view class="safetytips">
<text>【安全提示】本 APP 仅用于体验腾讯云即时通信 IM 产品功能,不可用于业务洽谈与拓展。请勿轻信汇款、中奖等涉及钱款等信息,勿轻易拨打陌生电话,谨防上当受骗。</text>
@ -68,7 +68,9 @@
<view class="message-input" style="{{viewData.style}}" >
<MessageInput bind:myhandleExtensions="myhandleExtensions" id="MessageInput" inquiry_type="{{inquiry_type}}" baseInfo="{{baseInfo}}" order_inquiry_id="{{order_inquiry_id}}" conversation="{{conversation}}" from="{{from}}" hasCallKit="{{hasCallKit}}" isEditTime="{{isEditTime}}"
videoInfo="{{videoInfo}}"
bind:sendMessage="sendMessage" bind:downKeysBoards="downKeysBoards" bind:pullKeysBoards="pullKeysBoards" bind:showMessageErrorImage="showMessageErrorImage"
bind:sendMessage="sendMessage"
bind:freshVideoInfo="getAudioMsg"
bind:downKeysBoards="downKeysBoards" bind:pullKeysBoards="pullKeysBoards" bind:showMessageErrorImage="showMessageErrorImage"
bind:refreshMessageStatus="refreshMessageStatus"
bind:inputBindLinechange="inputBindLinechange"
bind:handleCall="handleCall" message_rounds="{{message_rounds}}"></MessageInput>

View File

@ -52,6 +52,8 @@ const constant = {
SUGAR_CHECK:10,//糖组检测
PATIENT_INFO:11,//患者信息
WENZHEN_FORM:12,//问诊表;
SEND_TALK:13,//赠送回合;
VIDEO_TIME:16,//新增/修改视频预约时间
},
OPERATING_ENVIRONMENT: 'imWxTuikit'

2
app.js
View File

@ -199,7 +199,7 @@ App({
}
this.globalData.chat_sdk_ready = false
this.globalData.isLogin=false;
this.go("/Pages/kickedout/index");
this.go("/user/pages/kickedout/index");
},
$onSystemPushReceived(e){
// console.log("onSystemPushReceived from app.js");

View File

@ -66,7 +66,8 @@
"pages/yishi/patient_sick/index",
"pages/yishi/write_sickform/index",
"pages/yishi/sickform/index",
"pages/yishi/service_setting/index"
"pages/yishi/service_setting/index",
"pages/yishi/expertDetail/expertDetail"
]
},
{

View File

@ -62,9 +62,22 @@ function formatwenzhenList(arr,type){
n = n.toString()
return n[1] ? n : '0' + n
};
function formatReply(value){
if(!value){
return 0;
}else{
if(value/60<=1){
return 1
}else{
return Math.ceil(value/60)
}
}
};
module.exports = {
formatwenzhenList:formatwenzhenList,
numberTOstring:numberTOstring,
transforDay:transforDay
transforDay:transforDay,
formatReply:formatReply
};

View File

@ -99,8 +99,98 @@ Component({
console.log("myprofile attached")
let _this = this;
if(!this.data.indentity){
api.getIntroduction().then(response => {
console.log("getDoctorAuthIden: ",response);
this.setData({
doctorauthiden_data_ready: true,
textarea_jianjie: response.data.brief_introduction,
textarea_shanchang: response.data.be_good_at,
custom_keshi: response.data.department_custom_name,
office_phone: response.data.department_custom_mobile,
select_keshi_id: response.data.department_custom_id,
select_zhicheng_id: response.data.doctor_title,
select_province_id: response.data.hospital.province_id,
select_city_id: response.data.hospital.city_id,
select_county_id: response.data.hospital.county_id,
select_yiyuan_id: response.data.hospital.hospital_id,
hospital: response.data.hospital,
iden_auth_status: response.data.iden_auth_status,
introduction_status: response.data.introduction_status,
avatar_reason: response.data.avatar_reason,
department_custom_mobile_reason: response.data.department_custom_mobile_reason,
brief_introduction_reason: response.data.brief_introduction_reason,
be_good_at_reason: response.data.be_good_at_reason,
license_cert_reason: response.data.license_cert_reason,
qualification_cert_reason: response.data.qualification_cert_reason,
work_cert_reason: response.data.work_cert_reason,
department_custom_name_reason: response.data.department_custom_name_reason,
});
let iden_auth_status = response.data.introduction_status;
console.log("iden_auth_status: ",iden_auth_status)
let iden_auth_status_txt = iden_auth_status == 0?'请完善资料后提交':iden_auth_status == 1?'认证通过': iden_auth_status==2?'资料已提交,审核中':iden_auth_status==3?'认证失败,修改后重新提交':'未认证';
//获得医师身份认证
let iden_auth_disabled = iden_auth_status == 0?false:iden_auth_status == 1?true: iden_auth_status==2?true:iden_auth_status==3?false:true;
console.log("iden_auth_disabled: ",iden_auth_disabled)
this.setData({
iden_auth_status_txt: iden_auth_status_txt,
iden_auth_disabled: iden_auth_disabled
})
if(response.data.license_cert){
let img_list = response.data.license_cert.map(item => {
let img = {};
img.url = item;
img.isImg = true;
return img;
})
this.setData({
zhiye_file_list: img_list
})
}
if(response.data.qualification_cert){
let img_list = response.data.qualification_cert.map(item => {
let img = {};
img.url = item;
img.isImg = true;
return img;
})
this.setData({
zige_file_list: img_list
})
}
if(response.data.work_cert){
let img_list = response.data.work_cert.map(item => {
let img = {};
img.url = item;
img.isImg = true;
return img;
})
this.setData({
zhicheng_file_list: img_list
})
}
let avatar = response.data.avatar;
if(avatar){
this.setData({
"avatar": avatar,
is_avatar: true,
})
}
}).catch(errors => {console.error(errors);})
api.getIntroReason().then(response=>{
//console.log(response.data);
if(response.data){
this.setData({
avatar_reason: response.data.avatar,
brief_introduction_reason: response.data.brief_introduction,
be_good_at_reason: response.data.be_good_at,
})
}
})
}else{
api.getDoctorAuthIden({source: this.data.indentity?1:2}).then(response => {
console.log("getDoctorAuthIden: ",response);
this.setData({
@ -177,6 +267,26 @@ Component({
})
}
}).catch(errors => {console.error(errors);})
api.getIdenReason().then(response=>{
//console.log(response.data);
if(response.data){
this.setData({
avatar_reason: response.data.avatar,
department_custom_mobile_reason: response.data.department_custom_mobile,
brief_introduction_reason: response.data.brief_introduction,
be_good_at_reason: response.data.be_good_at,
license_cert_reason: response.data.license_cert,
qualification_cert_reason: response.data.qualification_cert,
work_cert_reason: response.data.work_cert,
department_custom_name_reason: response.data.department_custom_name,
})
}
})
}
//获得医师身份认证getDoctorAuthIden({source: this.data.indentity?1:2})
//加载省份列表
api.getAreaProvince().then(response => {
@ -770,6 +880,30 @@ Component({
this.setData({ zhuanchang_show: false });
this.triggerEvent('hidePageMeta');
},
handleUpdateIntroduction(){
let {avatar,textarea_jianjie,textarea_shanchang}=this.data;
let doctor_expertise= this.data.zhuanchang_columns.filter(e => e.is_selected == 1 ).map(e => e.expertise_id);
if(!avatar){wx.showToast({title: '请上传头像',icon: "error"});return}
if(doctor_expertise.length == 0){wx.showToast({title: '请选择专长',icon: "error"});return}
if(!textarea_jianjie){wx.showToast({title: '请输入简介',icon: "error"});return}
if(!textarea_shanchang){wx.showToast({title: '请输入擅长',icon: "error"});return}
api.updateIntroduction({
avatar,
brief_introduction:textarea_jianjie,
be_good_at:textarea_shanchang,
doctor_expertise
}).then(response=>{
wx.showToast({
title: '提交成功',
icon: "success"
})
this.setData({
introduction_status:2,
iden_auth_status_txt: "资料已提交,审核中"
})
})
},
addDoctorAuthIden(e){
console.log("addDoctorAuthIden addDoctorAuthIden")

View File

@ -20,7 +20,8 @@
</view>
<!-- <t-cell title="头像" hover required arrow note="真人正脸" /> -->
<t-cell title="城市" hover required arrow="{{ !(indentity && iden_auth_disabled) }}" note="{{ city_note }}" bindtap="{{(indentity && iden_auth_disabled)?'':'onCityShow'}}"/>
<!-- {{!indentity && introduction_status==3}} -->
<t-cell title="城市" hover required arrow="{{ !((indentity && iden_auth_disabled) || (!indentity && introduction_status==3)) }}" note="{{ city_note }}" bindtap="{{((indentity && iden_auth_disabled) || (!indentity && introduction_status==3))?'':'onCityShow'}}"/>
<t-cascader
visible="{{ city_show }}"
@ -33,7 +34,7 @@
bind:close="onCloseCity"
></t-cascader>
<t-cell title="医院" hover required arrow="{{ !(indentity && iden_auth_disabled) }}" note="{{ yiyuan_note }}" bindtap="{{(indentity && iden_auth_disabled)?'':'onYiYuanShow'}}"/>
<t-cell title="医院" hover required arrow="{{ !((indentity && iden_auth_disabled) || (!indentity && introduction_status==3)) }}" note="{{ yiyuan_note }}" bindtap="{{((indentity && iden_auth_disabled) || (!indentity && introduction_status==3))?'':'onYiYuanShow'}}"/>
<van-popup
show="{{ yiyuan_show }}"
position="bottom"
@ -63,8 +64,8 @@
<van-empty description="暂无医院" wx:if="{{yiyuan_columns.length == 0}}"/>
</van-popup>
<t-cell title="科室" hover required arrow="{{ !(indentity && iden_auth_disabled) }}" note="{{keshi_note}}"
bindtap="{{(indentity && iden_auth_disabled)?'':'onKeshiShow'}}" bordered="{{ select_keshi_id == '' }}"/>
<t-cell title="科室" hover required arrow="{{ !((indentity && iden_auth_disabled) || (!indentity && introduction_status==3)) }}" note="{{keshi_note}}"
bindtap="{{((indentity && iden_auth_disabled) || (!indentity && introduction_status==3))?'':'onKeshiShow'}}" bordered="{{ select_keshi_id == '' }}"/>
<view class="custom_keshi" wx:if="{{ select_keshi_id != ''}}">
<van-field bind:change="onCustomKeshiChange"
@ -219,8 +220,8 @@
</view>
</t-popup>
<t-cell title="职称" hover required arrow="{{ !(indentity && iden_auth_disabled) }}" note="{{zhicheng_note}}"
bindtap="{{(indentity && iden_auth_disabled)?'':'onZhiChengShow'}}" />
<t-cell title="职称" hover required arrow="{{ !((indentity && iden_auth_disabled) || (!indentity && introduction_status==3)) }}" note="{{zhicheng_note}}"
bindtap="{{((indentity && iden_auth_disabled) || (!indentity && introduction_status==3))?'':'onZhiChengShow'}}" />
<!-- <t-input
label="科室电话"
placeholder="请输入科室电话"
@ -238,7 +239,7 @@
input-align="right"
type="number"
clearable
disabled="{{(indentity && iden_auth_disabled)}}"
disabled="{{(indentity && iden_auth_disabled) || (!indentity && introduction_status==3) }}"
border="{{ department_custom_mobile_reason == '' }}"
custom-style="font-size:30rpx;"
>
@ -361,7 +362,7 @@
<van-button data-from="doctorauthiden" disabled="{{iden_auth_disabled}}" color="#3CC7C0" custom-style="border-radius: 20rpx;" type="primary" block bind:click="addDoctorAuthIden">{{iden_auth_status_txt}}</van-button>
</view>
<view class="sub_button" wx:else>
<van-button color="#3CC7C0" data-from="myinfo" disabled custom-style="border-radius: 20rpx;" type="primary" block bind:click="addDoctorAuthIden">{{iden_auth_status_txt}}</van-button>
<van-button color="#3CC7C0" data-from="myinfo" disabled="{{!(introduction_status==0 || introduction_status==3)}}" custom-style="border-radius: 20rpx;" type="primary" block bind:click="{{introduction_status==0?'addDoctorAuthIden':'handleUpdateIntroduction'}}">{{iden_auth_status_txt}}</van-button>
</view>

View File

@ -45,7 +45,7 @@
</view>
<view class="moneybox">
<view class="money"><text class="mark">¥</text><text class="moneyNum">{{withdrawal_amount}}</text></view>
<navigator url="/user/pages/yishi/wenzhenorderV2/index" open-type="navigate" hover-class="other-navigator-hover">
<navigator url="/user/pages/yishi/wenzhenorderV2/index?amount_total={{amount_total}}" open-type="navigate" hover-class="other-navigator-hover">
<van-button custom-style="text-align: center;border-radius: 10rpx;height:70rpx;width:200rpx;" color="linear-gradient(310deg, #FF931A 0%, #FF931A 0%, #FCB75D 100%);">
查看订单
</van-button>

View File

@ -0,0 +1,426 @@
// pages/expertDetail/expertDetail.js
const app = getApp()
import { API } from '../../../../utils/network/api'
const api = new API()
Page({
/**
* 页面的初始数据
*/
data: {
navbarData: {
showCapsule: 2, //是否显示左上角图标 1表示显示 0表示不显示
title: '预览效果', //导航栏 中间的标题
},
tab3Height:500,
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static',
static_host:api.getStaticHost(),
showDialog:false,
avatar: '',
currentData:0,
user_name: '',
doctor_title: '',
doctor_id: '',
doctor_title_name:'',
user_id:'',
is_online:'0',
avg_response_time: 0,
be_good_at: '',
department_custom_name: '',
served_patients_num: 0,
number_of_fans: 0,
hospital: null,
canTuwen:false,
canVideo:false,
canDiffcult:false,
brief_introduction:'',
multi_point_status: 0,
multi_point_enable:0,
iden_auth_status:0,
is_img_expert_reception: 0,
is_img_welfare_reception: 0,
days: 0,
praise_rate: 0,
doctor_inquiry_config: [],
doctor_expertise: [],
value: 3,
show: false,
isHide: false,
current_inquiry_config: null,
inquiry_type:'',
inquiry_mode:'',
follow: false,
id:'',
expertInquiry_price:'',
recieveStatus:0,
commentList: [],
totalComment:0,
isFinished:false,
isReceivePatient:false, //是否可接诊
service_content:'【医生填写的服务内容】',
service_process:'【医生填写的服务流程】'
},
getHeight(){
wx.createSelectorQuery().select('#swiperitem3').boundingClientRect( (rect)=>{
this.setData({
tab3Height:rect.height*2
})
console.log('元素高度为:', rect.height)
}).exec()
},
goSelectPatient() {
//判断是否能接诊
this.handleIsReceivepatient();
},
showPop() {
this.setData({
show: true
})
},
goBack(){
wx.navigateBack({
delta: 1,
})
},
toggleFllow(){
if(this.data.follow){
this.handenotfllowDoctor()
}else{
this.handelfllowDoctor()
}
},
notAsk(e){
let {type}=e.currentTarget.dataset
wx.showToast({
title:type==0?'该医生暂不就诊':'该问诊暂未开通',
icon:"none"
})
},
bindchange(e){
const that = this;
console.log(e);
that.setData({
currentData: e.detail.current
})
},
switchTab(e){
let {id}=e. currentTarget.dataset;
this.setData({
currentData:Number(id)
})
if(id==0){
this.setData({
inquiry_type:this.data.current_inquiry_config.inquiry_type,
inquiry_mode:this.data.current_inquiry_config.inquiry_mode
})
}else if(id==1){
this.setData({
inquiry_type:1,
inquiry_mode:2
})
}else {
this.setData({
inquiry_type:1,
inquiry_mode:6
})
}
},
confirm(event) {
let {id}=this.data;
if (event.detail) {
app.method.navigateTo({
url: '/patient/pages/orderDetail/orderDetail?order_inquiry_id=' + id,
})
}
},
handleIsReceivepatient() {
let {doctor_id,inquiry_mode,inquiry_type}=this.data;
isReceivepatient({
inquiry_type: inquiry_type,
inquiry_mode: inquiry_mode,
doctor_id: doctor_id
}).then(data => {
let recieveStatus=data.status;
if (recieveStatus == 1) {
app.method.navigateTo({
url: '/patient/pages/selectPatient/selectPatient?chat_id='+ this.data.user_id+"&doctor_id="+this.data.doctor_id+"&inquiry_type="+ inquiry_type+"&inquiry_mode="+inquiry_mode
})
} else if (recieveStatus == 2) {
this.setData({
showDialog: true,
id: data.data.order_inquiry_id
})
} else if (recieveStatus == 3) {
wx.showToast({
title: '当前不可问诊',
icon: "none"
})
}
})
},
handelfllowDoctor(){
let id=this.data.doctor_id
fllowDoctor(id).then(data=>{
this.setData({
follow:true
})
wx.showToast({
title: '关注成功',
icon:"none"
})
})
},
handenotfllowDoctor(){
let id=this.data.doctor_id;
notfllowDoctor(id).then(data=>{
this.setData({
follow:false
})
wx.showToast({
title: '已取消关注',
icon:"none"
})
})
},
goComment() {
app.method.navigateTo({
url: '/patient/pages/comment/comment?doctor_id=' + this.data.doctor_id,
})
},
onClose() {
this.setData({
show: false
})
},
getEvaluationList() {
let {doctor_id}=this.data;
commentList({
doctor_id,
evaluation_type:1,
page: 1,
per_page: 3
}).then((res) => {
this.setData({
commentList: res.data,
totalComment:res.total_quantity
})
})
},
loopArr(arr,type){
let inquiry_mode='';
let inquiry_price='';
let recieveStatus='';
let duration='';
let work_num_day=0;
let times_number=0;
let order_inquiry_count=0;
let order_type=type;
for (let i = 0; i < arr.length; i++) {
if(arr[i].inquiry_type==type && arr[i].inquiry_mode==1){
recieveStatus=arr[i].work_num_day-arr[i].order_inquiry_count;
inquiry_mode=arr[i].inquiry_mode;
inquiry_price=arr[i].inquiry_price;
duration=arr[i].duration;
work_num_day=arr[i].work_num_day;
times_number=arr[i].times_number;
order_inquiry_count=arr[i].order_inquiry_count;
}
}
//如果公益问诊 次数为0 则去看是否有专家问诊
if(type==3 && recieveStatus==0){
for (let i = 0; i < arr.length; i++) {
if(arr[i].inquiry_type==1){
order_type=1;
recieveStatus=arr[i].work_num_day-arr[i].order_inquiry_count;
inquiry_mode=arr[i].inquiry_mode;
inquiry_price=arr[i].inquiry_price;
duration=arr[i].duration;
work_num_day=arr[i].work_num_day;
times_number=arr[i].times_number;
order_inquiry_count=arr[i].order_inquiry_count;
}
}
}
console.log('2222222222')
console.log(recieveStatus)
this.setData({
inquiry_type:order_type,
inquiry_mode:inquiry_mode,
current_inquiry_config: {
inquiry_type:order_type,
inquiry_mode:inquiry_mode,
inquiry_price:inquiry_price,
recieveStatus:recieveStatus,
duration,
work_num_day,
times_number,
order_inquiry_count
}
})
},
formatInquiryStatus(arr){
var a='3';
if(arr){
for (var i = 0; i < arr.length; ++i) {
if(arr[i].is_enable==1 && arr[i].inquiry_type==1 && arr[i].inquiry_mode==1){
this.setData({
expertInquiry_price: arr[i].inquiry_price
})
a='2';
};
if(arr[i].is_enable==1 && arr[i].inquiry_type==1 && arr[i].inquiry_mode==2){
this.setData({
canVideo:true,
videoPrice:arr[i].inquiry_price
})
};
if(arr[i].is_enable==1 && arr[i].inquiry_type==1 && arr[i].inquiry_mode==6){
this.setData({
canDiffcult:true,
yinanPrice:arr[i].inquiry_price
})
}
if(arr[i].is_enable==1 && arr[i].inquiry_type==3){
return '1'
};
}
}
return a
},
getDeatil(id) {
api.getDoctorDetail(id).then((response) => {
let res=response.data;
for (const key in this.data) {
if (res[key]) {
this.setData({
[key]: res[key]
})
}
};
})
},
getService(id){
api.getDoctorService(id).then(response=>{
let res=response.data;
let doctor_inquiry_config = res;
let inquiryType=this.formatInquiryStatus(res);
console.log("inquiryType:"+inquiryType)
if(inquiryType==1){
this.loopArr(doctor_inquiry_config,3);
this.setData({
canTuwen:true
})
}else if(inquiryType==2){
this.loopArr(doctor_inquiry_config,1);
this.setData({
canTuwen:true
})
}else{
this.setData({
current_inquiry_config:null
})
}
this.setData({
isFinished:true
})
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
const scene = options.scene?decodeURIComponent(options.scene):'';
let doctor_id='';
if(scene){
doctor_id=scene.split('=')[1]
}else{
doctor_id=options.doctor_id
};
console.log(options)
this.setData({
doctor_id:doctor_id
})
this.getDeatil(doctor_id);
this.getService(doctor_id);
let config_message= wx.getStorageSync('config_message');
if(config_message){
this.setData({
service_content:config_message.content_message,
service_process:config_message.process_message
})
}
wx.nextTick(()=>{
this.getHeight()
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
// this.setData({
// img_host:app.hostConfig().imghost
// });
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
// onShareTimeline(){
// const {user_name,doctor_title_name,hospital,avatar,img_host,doctor_id}=this.data;
// return {
// title: '【'+ user_name +'】 '+ doctor_title_name+' '+hospital.hospital_name,
// imageUrl:avatar?avatar:img_host+'/doctor_avatar.png',
// query:'doctor_id='+doctor_id
// }
// },
// onShareAppMessage() {
// const {user_name,doctor_title_name,hospital}=this.data;
// return {
// title: '【'+ user_name +'】 '+ doctor_title_name+' '+hospital.hospital_name
// }
// }
/**
* 用户点击右上角分享
*/
})

View File

@ -0,0 +1,9 @@
{
"usingComponents": {
"van-popup": "@vant/weapp/popup/index",
"te-nav-bar": "../../../../commpents/te_navbar/index"
},
"navigationStyle":"custom",
"disableScroll":true,
"navigationBarTitleText": "肝胆相照互联网医院"
}

View File

@ -0,0 +1,282 @@
<wxs src="../../../../filters/filter.wxs" module="filter" />
<te-nav-bar navbar-data='{{navbarData}}' ></te-nav-bar>
<view class="contain">
<view class="boxwraper">
<view class="infobox">
<view class="namebox">
<view class="left">
<image src="{{avatar}}" class="head" wx:if="{{avatar}}" mode="aspectFill"></image>
<image class="head" src="{{static_host}}/applet/doctor/static/images/yishi/doctor_avatar.png" wx:else></image>
<view class="onlinebox" wx:if="{{is_online==1}}">
<image src="{{static_host}}/applet/doctor/static/images/yishi/online.gif" mode="" class="icon" style="top:100rpx" />
</view>
</view>
<view class="namewraper">
<view class="row">
<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 wx:if="{{doctor_title_name}}" class="doctor_title">{{doctor_title_name}}</text><text>{{department_custom_name}}</text></view>
<view class="hospital">{{hospital.hospital_name}}</view>
</view>
</view>
<view class="descbox">
<view class="cell">
<view class="number" wx:if="{{praise_rate>0}}">{{praise_rate}}</view>
<view class="nodata" wx:else>暂无</view>
<view class="name">评分</view>
</view>
<view class="cell">
<view class="number" wx:if="{{served_patients_num>0}}">{{served_patients_num}}</view>
<view class="nodata" wx:else>暂无</view>
<view class="name">问诊量</view>
</view>
<view class="cell">
<view class="number" wx:if="{{avg_response_time>0}}">{{filter.formatReply(avg_response_time)}}h</view>
<view class="nodata" wx:else>暂无</view>
<view class="name">平均回复</view>
</view>
<view class="cell">
<view class="number" wx:if="{{number_of_fans>0}}">{{number_of_fans}}</view>
<view class="nodata" wx:else>暂无</view>
<view class="name">关注数</view>
</view>
</view>
<view class="goodjob ellipsis">
{{brief_introduction}}
</view>
<view class="renzhenbox">
<view class="renzhen {{iden_auth_status==1?'active':''}}">
<image src="{{img_host+'/renzheng.png'}}" ></image>
<text>医生信息已认证</text>
</view>
<view class="intro" bindtap="showPop">
<text> 医生简介</text>
<image src="{{img_host+'/jjarrow.png'}}"></image>
</view>
</view>
</view>
<view class="wz_tabbox">
<view class="titlebox">
<view class="title">医生服务</view>
</view>
<view class="tabs">
<view class="tab " bindtap="switchTab" data-id="0">
<image wx:if="{{currentData==0 && canTuwen}}" src="{{static_host}}/applet/doctor/static/images/yishi/tuwen_on.png" alt="" class="tabbg" ></image>
<image wx:elif="{{currentData==0 && !canTuwen}}" src="{{static_host}}/applet/doctor/static/images/yishi/tuwen_disable_on.png" alt="" class="tabbg" ></image>
<image wx:elif="{{currentData!=0 && canTuwen}}" src="{{static_host}}/applet/doctor/static/images/yishi/tuwen.png" alt="" class="tabbg" ></image>
<image wx:elsesrc="{{img_host+'/tuwen_disable.png'}}" alt="" class="tabbg" ></image>
<view class="typebox" wx:if="{{canTuwen}}">
<view class="name">图文问诊</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>
<view class="typebox disable" wx:else>
<view class="name">图文问诊</view>
<view class="price">暂未开通</view>
</view>
</view>
<view class="tab " bindtap="switchTab" data-id="1">
<image src="{{static_host}}/applet/doctor/static/images/yishi/video_on.png" wx:if="{{currentData==1 && canVideo}}" alt="" class="tabbg" ></image>
<image wx:elif="{{currentData==1 && !canVideo}}" src="{{static_host}}/applet/doctor/static/images/yishi/video_disable_on.png" alt="" class="tabbg" ></image>
<image wx:elif="{{currentData!=1 && canVideo}}" src="{{static_host}}/applet/doctor/static/images/yishi/video.png" alt="" class="tabbg" ></image>
<image wx:else src="{{static_host}}/applet/doctor/static/images/yishi/video_disable.png" alt="" class="tabbg" ></image>
<view class="typebox" wx:if="{{canVideo}}">
<view class="name">视频问诊</view>
<view class="price">¥{{videoPrice}}/次</view>
</view>
<view class="typebox disable" wx:else>
<view class="name">视频问诊</view>
<view class="price">暂未开通</view>
</view>
</view>
<view class="tab " bindtap="switchTab" data-id="2">
<image wx:if="{{currentData==2 && canDiffcult}}" src="{{static_host}}/applet/doctor/static/images/yishi/yinan_on.png" alt="" class="tabbg" ></image>
<image wx:elif="{{currentData==2 && !canDiffcult}}" src="{{static_host}}/applet/doctor/static/images/yishi/yinan_disable_on.png" alt="" class="tabbg" ></image>
<image wx:elif="{{currentData!=2 && canDiffcult}}" src="{{static_host}}/applet/doctor/static/images/yishi/yinan.png" alt="" class="tabbg" ></image>
<image wx:else src="{{static_host}}/applet/doctor/static/images/yishi/yinan_disable.png" alt="" class="tabbg" ></image>
<view class="typebox" wx:if="{{canDiffcult}}">
<view class="name">疑难问诊</view>
<view class="price">¥{{yinanPrice}}/次</view>
</view>
<view class="typebox disable" wx:else>
<view class="name">疑难问诊</view>
<view class="price">暂未开通</view>
</view>
</view>
</view>
<swiper current="{{currentData}}" class="swiperbox" bindchange="bindchange" style="height:{{currentData==0?'350rpx':currentData==1?'700rpx':tab3Height+'rpx'}}">
<swiper-item class="">
<view class="swiper-item">
<image src="{{static_host}}/applet/doctor/static/images/yishi/tuwen_bg.png" class="itembg"style="height:auto;" mode="widthFix" wx:if="{{canTuwen}}"></image>
<image src="{{static_host}}/applet/doctor/static/images/yishi/tuwen_bg_disable.png" class="itembg" style="height:auto;" mode="widthFix" wx:else></image>
<view class="itembox">
<view class="title">通过文字、图片、语音进行咨询</view>
<view class="tipbox {{!canTuwen?'active':''}}">
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">可通过文字、图片、语音等形式和医生进行沟通;</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">医生接诊后24小时内10个沟通回合</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">医生未接诊平台24小时内自动退款</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">医生未回复,可联系平台客服协商进行退款。</view>
</view>
</view>
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item">
<image src="{{static_host}}/applet/doctor/static/images/yishi/video_bg.png" class="itembg" style="height:auto;" mode="widthFix" wx:if="{{canVideo}}"></image>
<image src="{{static_host}}/applet/doctor/static/images/yishi/video_bg_disable.png" class="itembg" style="height:auto;" mode="widthFix" wx:else></image>
<view class="itembox">
<view class="title">通过视频面对面进行咨询</view>
<view class="tipbox {{!canVideo?'active':''}}">
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">医生接诊后,主动和就诊人预约视频时间;</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">若预约时间因故需要改变,可与医生图文协商时间;</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">视频交流服务时长一般为5-10分钟</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">医生接诊后48小时内可以通过文字、图片、语音等形式和医生不限制沟通回合数</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">医生未接诊平台24小时内自动退款</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">医生未回复或未进行视频,可联系平台客服协商进行退款;</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">如因您个人原因(忘记时间、迟到、中途断开未在进入视频等情况),咨询费用可能将无法退回,请准时接收医生视频请求;</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">视频不支持回放。</view>
</view>
</view>
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item" id="swiperitem3">
<image src="{{static_host}}/applet/doctor/static/images/yishi/yinan_bg.png" class="itembg" style="height:auto;" mode="widthFix" wx:if="{{canDiffcult}}"></image>
<image src="{{static_host}}/applet/doctor/static/images/yishi/video_bg_disable.png" class="itembg" style="height:auto;" mode="widthFix" wx:else></image>
<view class="itembox">
<view class="title">通过文字、图片、语音进行咨询</view>
<view class="tipbox {{!canDiffcult?'active':''}}">
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">{{service_content}}</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">{{service_process}}</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">可通过文字、图片、语音等形式和医生进行沟通;</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">医生接诊后【医生选择的服务周期】内【医生选择的服务次数】沟通回合;</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">医生未接诊平台24小时内自动退款</view>
</view>
<view class="tipmsg">
<view class="circle"></view>
<view class="msg">医生未回复或医生服务不满意,可联系平台客服协商进行退款。</view>
</view>
</view>
</view>
</view>
</swiper-item>
</swiper>
</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:elif="{{canVideo && currentData==1}}" bindtap="handleThrottle" hidden="{{!isFinished}}" data-type="{{currentData}}">立即咨询</view>
<view class="ask" wx:elif="{{canDiffcult && currentData==2}}" bindtap="handleThrottle" hidden="{{!isFinished}}" data-type="{{currentData}}">立即咨询</view>
<view class="noask" bindtap="notAsk" data-type="{{currentData}}" wx:else hidden="{{!isFinished}}">{{currentData==0?'暂不接诊':'暂未开通'}}</view> -->
</view>
<van-popup show="{{ show }}" round position="bottom" custom-style="height:65%" bind:close="onClose" lock-scroll="true">
<image src="{{img_host+'/closepop.png'}}" class="close" bindtap="onClose"></image>
<view class="popwrper">
<view class="infobox" style="padding: 0rpx 52rpx 0rpx;margin-top: 32rpx;margin-bottom: 0rpx;padding-bottom: 0;">
<view class="namebox" style="justify-content: flex-start;">
<image src="{{avatar}}" class="head" wx:if="{{avatar}}" mode="aspectFill"></image>
<image class="head" src="{{img_host+'/doctor_avatar.png'}}" wx:else></image>
<view class="namewraper">
<view class="row">
<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}}">可处方</view>
</view>
<view class="hospital" ><text wx:if="{{doctor_title_name}}" class="doctor_title">{{doctor_title_name}}</text><text>{{department_custom_name}}</text></view>
<view class="hospital">{{hospital.hospital_name}}</view>
</view>
</view>
<view class="borderbox">
<view class="rowintro">
<image src="{{img_host+'/jianjie.png'}}"></image>
<text>医生简介</text>
</view>
<view class="goodjob" style="margin-top: 0rpx;">
{{brief_introduction}}
</view>
<view class="line"></view>
</view>
<view class="borderbox" hidden="{{doctor_expertise.length<=0}}">
<view class="rowintro">
<image src="{{img_host+'/zhuanchang.png'}}"></image>
<text>医生专长</text>
</view>
<view class="goodat" style="margin-top: 30rpx;">
<scroll-view class="scroll-view_H" scroll-x="true" style="width: 100%">
<view class="cell" wx:for="{{doctor_expertise}}" wx:key="expertise_name">{{item.expertise_name}}</view>
</scroll-view>
</view>
<view class="line"></view>
</view>
<view class="borderbox" wx:if="{{doctor_expertise.length>0}}">
<view class="rowintro">
<image src="{{img_host+'/shanchang.png'}}" ></image>
<text>医生擅长</text>
</view>
<view class="goodjob" style="margin-top:20rpx">{{be_good_at}}</view>
<view class="line"></view>
</view>
</view>
</view>
</van-popup>

View File

@ -0,0 +1,665 @@
/* pages/expertDetail/expertDetail.wxss */
page{
height:100vh;
display: flex;
flex-direction: column;
}
.namebox {
display: flex;
}
.namebox .left{
position: relative;
}
.contain {
position: relative;
background: #F2F2F2;
display: flex;
background: linear-gradient(180deg, #3CC7C0, #F2F2F2 20%);
flex-direction: column;
padding: 0 30rpx 0rpx;
flex:1;
overflow: hidden;
}
.boxwraper{
flex:1;
margin-bottom: 20rpx;
overflow-y:scroll;
-webkit-overflow-scrolling: touch;
}
.tipcon{
display: flex;
justify-content: center;
flex-direction: column;
align-items: flex-start;
}
.tipcon text{
width:100%;
}
.tips .count{
display: inline;
}
.content {
z-index: 0;
left: 0;
position: absolute;
width: 100%;
overflow: hidden;
height: 490rpx;
background: linear-gradient(180deg, #3CC7C0 0%, rgba(255, 255, 255, 0) 100%)
}
.infobox {
position: relative;
z-index: 1;
margin-top: 40rpx;
padding: 22rpx 20rpx 40rpx;
background: #FFFFFF;
border-radius: 10rpx;
}
.namebox .head {
width: 120rpx;
height: 120rpx;
flex-shrink: 0;
border-radius: 50%;
}
.namebox {
display: flex;
}
.namewraper {
flex:1;
min-height: 120rpx;
display: flex;
justify-content: space-between;
flex-direction: column;
margin-left: 20rpx;
}
.namebox .row {
max-width:380rpx;
display: flex;
align-items: flex-end;
width:100%;
}
.namebox {
display: flex;
align-items: center;
justify-content: space-between;
}
.namebox .name {
white-space: nowrap;
font-weight: 600;
color: #333333;
overflow: hidden;
text-overflow: ellipsis;
font-size: 34rpx;
}
.position {
font-size: 30rpx;
white-space: normal;
word-break: break-all;
}
.hospital {
color: #333333;
font-size: 28rpx;
white-space: normal;
word-break: break-all;
}
.type {
height: 32rpx;
display: flex;
margin-bottom: 6rpx;
line-height: 32rpx;
white-space: nowrap;
align-items: center;
margin-left: 18rpx;
padding: 0rpx 6rpx;
background: #ED9C00;
border-radius: 4rpx;
color: #FFFFFF;
font-size: 24rpx;
}
.namebox .position {
font-weight: normal;
white-space: nowrap;
margin-left: 15rpx;
font-size: 30rpx;
}
.guanzhu {
flex-shrink: 0;
display: flex;
height: 60rpx;
white-space: nowrap;
color: #3CC7C0;
font-size: 30rpx;
font-weight: 600;
justify-content: center;
align-items: center;
font-size: 24rpx;
}
.namebox .guanzhu image {
width: 35rpx;
height: 32rpx;
}
.cell .nodata{
color: #999999;
font-size: 32rpx;
font-weight: normal;
}
.descbox {
padding: 0 15rpx;
margin-top: 20rpx;
display: flex;
text-align: center;
justify-content: space-between;
}
.descbox .cell{
display: flex;
flex-direction: column;
justify-content: space-between;
}
.descbox .number {
color: #333333;
font-size: 40rpx;
font-weight: bold;
}
.descbox .name {
margin-top: 15rpx;
color: #999999;
font-size: 24rpx;
}
.goodjob {
color: #666666;
margin-top: 38rpx;
line-height: 42rpx;
font-size: 28rpx;
white-space: pre-line;
word-break: break-all;
}
.renzhenbox {
margin-top: 18rpx;
width: 100%;
display: flex;
justify-content: space-between;
}
.goodat .cell{
height: 60rpx;
display: inline-flex;
border-radius: 30rpx;
align-items: center;
justify-content: center;
font-size: 28rpx;
white-space: nowrap;
color:#333;
margin-left: 20rpx;
padding:0 38rpx;
border: 1rpx solid #CCCCCC;
}
.goodat .cell:first-child{
margin-left: 0;
}
.renzhenbox view {
display: flex;
align-items: center;
}
.renzhenbox .renzhen{
visibility: hidden;
}
.renzhenbox .renzhen.active{
visibility: visible;
}
.renzhen image {
width: 20rpx;
height: 20rpx;
}
.renzhen text {
font-weight: 600;
color: #3CC7C0;
font-size: 24rpx;
margin-left: 10rpx;
}
.intro image {
width: 10rpx;
height: 18rpx;
}
.intro text {
color: #333333;
margin-right: 10rpx;
font-size: 24rpx;
}
.titlebox {
display: flex;
padding: 0 20rpx 0rpx;
align-items: center;
justify-content: space-between;
}
.titlebox .title {
font-weight: 600;
color: #333333;
font-size: 36rpx;
}
.commentbox .titlebox {
border-bottom: 1rpx solid#E7E7E7;
padding: 0 20rpx 30rpx;
}
.titlebox .tag {
transform: rotateZ(360deg);
height: 40rpx;
border: 1rpx solid #3CC7C0;
padding: 0 25rpx;
display: flex;
align-items: center;
border-radius: 20rpx;
color: #3CC7C0;
font-size: 24rpx;
}
.drbox {
border-radius: 10rpx;
margin-top: 20rpx;
padding: 40rpx 0 30rpx;
background-color: #fff;
}
.wentype {
position: relative;
align-items: center;
box-sizing: border-box;
margin: 0 20rpx;
margin-top: 38rpx;
display: flex;
height: 176rpx;
border-radius: 10rpx;
border: 1rpx solid #3CC7C0;
}
.freewenzhen{
border: 1rpx solid #ED9C00
}
.freewenzhen .pricebox{
display: flex;
align-items: center;
}
.pricebox .rest{
margin-left: 30rpx;
font-size: 28rpx;
color:#333;
}
.wentype image{
width:88rpx;
height:94rpx;
margin-left: 52rpx;
}
.freewenzhen image{
margin-left: 20rpx;
width:160rpx;
height:160rpx;
}
.wentype .rightbox{
height:94rpx;
margin-left: 52rpx;
display: flex;
justify-content: space-between;
flex-direction: column;
}
.freewenzhen .rightbox{
margin-left: 22rpx;
}
.rightbox .name{
color: #333333;
font-size: 34rpx;
}
.rightbox .price{
color: #EF4F20;
font-size: 34rpx;
font-weight: 600;
}
.wentype .gou{
position: absolute;
width:97rpx;
height:80rpx;
right:0rpx;
bottom:-1rpx;
}
.tips{
position: relative;
margin:17rpx 20rpx 0;
height:129rpx;
border-radius: 10rpx;
}
.tips view{
z-index:1;
display: flex;
align-items: center;
position: absolute;
left:20rpx;
margin-top: 12rpx;
right:20rpx;
height:129rpx;
line-height: 40rpx;
color: #333333;
font-size: 24rpx;
}
.tips image{
z-index:0;
position: absolute;
width:100%;
height:129rpx;
}
.more{
display: flex;
align-items: center;
}
.commentbox{
margin-top: 20rpx;
padding: 40rpx 0 0;
background-color: #fff;
border-radius: 10rpx;
}
.more text{
color: #333333;
font-size: 28rpx;
margin-right: 10rpx;
}
.more image{
width: 14rpx;
height: 26rpx;
}
.commentbox .titlebox{
padding-bottom: 30rpx;
}
.title text{
font-size: 28rpx;
font-weight: normal;
color:#666;
}
.list{
padding-top: 30rpx;
padding-bottom: 30rpx;
border-bottom: 1px solid #E7E7E7;
}
.list:last-child{
border: none;
}
.list .namebox{
margin:0rpx 20rpx 0rpx;
display: flex;
}
.list .namebox .name{
font-weight: normal;
font-size: 28rpx;
color:#666;
}
.commment{
margin:30rpx 20rpx 20rpx;
color: #333333;
font-size: 30rpx;
word-break: break-all;
line-height: 48rpx;
}
.date{
margin:0rpx 20rpx 0rpx;
display: flex;
color: #666666;
font-size: 24rpx;
}
.ask{
margin-bottom: 20rpx;
height: 94rpx;
background: #3CC7C0;
border-radius: 47rpx;
display: flex;
align-items: center;
color: #FFFFFF;
font-size: 36rpx;
justify-content:center;
}
.noask{
margin-bottom: 20rpx;
height: 94rpx;
background: #dedede;
border-radius: 47rpx;
display: flex;
align-items: center;
color: #fff;
font-size: 36rpx;
justify-content:center;
}
.van-icon-cross{
color:#333;
}
.van-popup__close-icon{
position: absolute!important;
}
.van-popup--bottom
.rowintro{
margin-top: 30rpx;
display: flex;
color: #333333;
font-size: 34rpx;
align-items: center;
}
.rowintro image{
width: 32rpx;
height:35rpx;
}
.rowintro text{
margin-left: 16rpx;
}
.borderbox{
position: relative;
padding-bottom: 30rpx;
}
.borderbox .line{
position: absolute;
left:-52rpx;
right:-52rpx;
height: 1rpx;
bottom:0rpx;
background:#E7E7E7;
}
.borderbox:last-child .line{
display: none;
}
.ellipsis{
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden
}
.goodat{
display: flex;
white-space: nowrap;
}
.scroll-view_H{
display: flex;
}
.popwrper{
position: absolute;
width:100%;
top:0px;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
bottom:0px;
}
.doctor_title{
margin-right: 10rpx;
}
.close{
z-index:9;
width: 32rpx;
height:32rpx;
position: absolute;
right:20rpx;
top:30rpx;
}
.wz_tabbox{
margin-top: 20rpx;
}
.tabs{
margin-top: 16rpx;
display: flex;
justify-content: space-between;
}
.tabs .tab{
width: 214rpx;
height: 300rpx;
position: relative;
box-shadow: 0rpx 8rpx 20rpx 2rpx rgba(0,0,0,0.04);
}
.tabbg{
top:0rpx;
width: 100%;
z-index:0;
height: 314rpx;
position: absolute;
}
.typebox{
margin-top: 158rpx;
position: relative;
z-index:1;
display: flex;
flex-direction: column;
align-items: center;
}
.typebox .name{
color: #333333;
font-size: 32rpx;
font-weight: 500;
color: #333333;
}
.typebox .price{
margin-top: 12rpx;
font-size: 28rpx;
font-weight: 400;
color: #EF4F20;
}
.jiaprice{
margin-top: 10rpx;
font-size: 20rpx;
font-weight: 400;
color: #999999;
text-decoration: line-through;
}
.swiperbox{
margin-top: 30rpx;
}
.swiper-item{
border-radius: 20rpx;
overflow: hidden;
position: relative;
background-color: #fff;
}
.swiper-item .title{
margin-top: 10rpx;
font-size: 32rpx;
font-weight: 500;
color: rgba(0,0,0,0.85);
}
.tipbox{
margin-top: 20rpx;
}
.tipbox .tipmsg{
display: flex;
line-height: 44rpx;
}
.tipbox .tipmsg .circle{
flex-shrink: 0;
margin-top: 17rpx;
margin-right: 10rpx;
width: 10rpx;
height: 10rpx;
background: #3BB5FE;
border-radius: 50%;
}
.tipbox .tipmsg .msg{
white-space: pre-wrap;
font-size: 28rpx;
color: rgba(0,0,0,0.65);
}
.swiperbox .swiper-item:nth-child(1) .circle{
background: #52C41A;
}
.swiperbox .swiper-item:last-child .circle{
background: #FF9C00;
}
.tipbox.active .tipmsg .msg{
color: rgba(0,0,0,0.35);
}
.swiperbox .tipbox.active .circle{
background-color: rgba(0,0,0,0.35);
}
.itembg{
height:100%;
width:100%;
position: absolute;
z-index:0;
}
.itembox{
position: relative;
z-index:1;
}
.itembox{
overflow: hidden;
padding: 30rpx;
}
/* .swiperbox .swiper-item:last-child{
background-image: linear-gradient(270deg,#fff5e4,#fff);
} */
.typebox.disable .name,.typebox.disable .price{
color: #999999;
}
.itembox.diable .title,.itembox.diable .msg{
color: #999999;
}
.datebox{
display: flex;
justify-content: space-between;
align-items: flex-end;
}
.sick_name{
margin-left: 20rpx;
font-size: 20rpx;
font-weight: 400;
display: flex;
border-radius: 20rpx;
height: 38rpx;
padding:0 15rpx;
border: 1rpx solid #3CC7C0;
align-items: center;
color: #3CC7C0;
}

View File

@ -44,7 +44,11 @@ Page({
},
onShow(){
let {active}=this.data;
this.getDoctorconfig();
if(active==2){
this.getConfig()
}
},
getDoctorconfig(){
let {inquiry_type,inquiry_mode}=this.data;

View File

@ -12,7 +12,7 @@
<van-switch active-color="#3CC7C0" inactive-color="#E7E7E7" size="40rpx" checked="{{ info.is_open==1 }}" />
</view>
</view>
<view class="switch_box_note">{{ note==1?'已开启,患者可以向您发起图文问诊':'已关闭,暂不接诊' }}</view>
<view class="switch_box_note">{{ (info.is_open==1 && active==0)?'已开启,患者可以向您发起图文问诊':'已关闭,暂不接诊' }}</view>
</view>
<view class="help">
<van-cell size="large" url="/user/pages/yishi/manual_detail/index?manual_id=6" custom-style="font-size:32rpx;" title="图文问诊操作手册" is-link border="{{false}}" />
@ -61,7 +61,7 @@
<van-switch active-color="#3CC7C0" inactive-color="#E7E7E7" size="40rpx" checked="{{ info.is_open==1 }}" />
</view>
</view>
<view class="switch_box_note">{{ note==1?'已开启,患者可以向您发起视频问诊':'已关闭,暂不接诊'}}</view>
<view class="switch_box_note">{{ (info.is_open==1&& active==1)?'已开启,患者可以向您发起视频问诊':'已关闭,暂不接诊'}}</view>
</view>
<view class="help">
<van-cell size="large" url="/user/pages/yishi/manual_detail/index?manual_id=6" custom-style="font-size:32rpx;" title="视频问诊操作手册" is-link border="{{false}}" />
@ -116,7 +116,7 @@
<van-switch active-color="#3CC7C0" inactive-color="#E7E7E7" size="40rpx" checked="{{ info.is_open==1 }}" />
</view>
</view>
<view class="switch_box_note">{{ note==1?'已开启,患者可以向您发起疑难会诊':'已关闭,暂不接诊'}}</view>
<view class="switch_box_note">{{ (info.is_open==1 && active==2)?'已开启,患者可以向您发起疑难会诊':'已关闭,暂不接诊'}}</view>
</view>
<view class="help">
<van-cell size="large" url="/user/pages/yishi/manual_detail/index?manual_id=6" custom-style="font-size:32rpx;" title="疑难会诊操作手册" is-link border="{{false}}" />

View File

@ -5,17 +5,17 @@
<view class="order_item" wx:for="{{list}}">
<view class="order_item_content">
<view class="order_item_content_top ">
{{ item.inquiry_type==1?'专家问诊':item.inquiry_type==2?'快速问诊':item.inquiry_type==3?'公益问诊':item.inquiry_type==4?'问诊购药':'其他' }}
{{ item.inquiry_type==1 && item.inquiry_mode==1?'在线问诊-图文':item.inquiry_type==1 && item.inquiry_mode==2?'在线问诊-视频':item.inquiry_type==1 && item.inquiry_mode==6?'疑难会诊':item.inquiry_type==2?'快速问诊':item.inquiry_type==3?'公益问诊':item.inquiry_type==4?'问诊购药':'其他' }}
<!-- <view class="order_status order_status_cancle">{{ item.inquiry_status==1?'待支付':item.inquiry_status==2?'待分配':item.inquiry_status==3?'待接诊':item.inquiry_status==4?'接诊中':item.inquiry_status==5?'已完成':item.inquiry_status==6?'问诊结束':item.inquiry_status==7?'已取消':'其他' }}</view> -->
<view class="order_status order_status_cancle {{item.entry_status==1?'entrying':item.entry_status==2?'entrysuccess':item.entry_status==3?'entryfail':'' }}">{{ item.entry_status==1?'入账中':item.entry_status==2?'入账成功':item.entry_status==3?'入账失败':'未知' }}</view>
</view>
<view class="order_item_content_data">
<view class="order_id">订单编号:<text style="font-size: 30rpx;color: #666666;">{{item.inquiry_no}}</text></view>
<view class="order_id">就诊患者:<text style="font-size: 30rpx;color: #666666;">{{item.patient_name}}{{item.patient_sex==1?'男':'女'}}{{item.patient_age}}岁)</text></view>
<view class="order_id">接诊时间:<text style="font-size: 30rpx;color: #666666;">{{item.reception_time}}</text></view>
<view class="order_id" wx:if="{{item.finish_time}}">结束时间:<text style="font-size: 30rpx;color: #666666;">{{item.finish_time}}</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: #666666;">¥{{item.amount_total}}</text></view>
<view class="order_id">预计收入:<text style="font-size: 30rpx;color: #666666;">¥{{item.estimate_income}}</text></view>
<view class="order_id">订单编号:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">{{item.inquiry_no}}</text></view>
<view class="order_id">就诊患者:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">{{item.patient_name}}{{item.patient_sex==1?'男':'女'}}{{item.patient_age}}岁)</text></view>
<view class="order_id">接诊时间:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">{{item.reception_time}}</text></view>
<view class="order_id" wx:if="{{item.finish_time}}">结束时间:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">{{item.finish_time}}</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">¥{{item.amount_total}}</text></view>
<view class="order_id">预计收入:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">¥{{item.estimate_income}}</text></view>
</view>
</view>
</view>

View File

@ -12,10 +12,11 @@ page{
padding-bottom: 50rpx;
}
.order_item{
display: flex;
width: 100%;
margin-top: 30rpx;
height: 500rpx;
}
.order_item_content{
flex: 5;
@ -23,15 +24,16 @@ page{
border-radius: 20rpx;
display: flex;
flex-direction: column;
padding: 20rpx;
}
.order_item_content_top{
flex: 1;
border-bottom: 1px solid #E5E5E5;
display: flex;
align-items: center;
font-size: 36rpx;
font-size: 32rpx;
justify-content:space-between;
padding:20rpx;
}
.order_status{
padding: 10rpx 20rpx;
@ -39,33 +41,41 @@ page{
border-radius: 10rpx;
}
.order_status_ing{
background-color: #FFF2E8;
color: #FA541C;
/* background-color: #FFF2E8; */
color: #FF9C00;
}
.order_status_cancle{
background-color: #C5C5C5;
color: #fff;
/* background-color: #C5C5C5; */
color: #FF5D2E;
}
.order_status.entrying{
background: #FFF2E8;
/* background: #FFF2E8; */
color: #FA541C;
}
.order_status.entrysuccess{
background: #E2FFFE;
/* background: #E2FFFE; */
color: #3CC7C0;
}
.order_status.entryfail{
background-color: #C5C5C5;
color: #fff;
color: #FF5D2E;
}
.order_item_content_data{
flex: 5;
display: flex;
padding: 20rpx;
flex-direction: column;
}
.order_id{
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 30rpx;
margin-top: 10rpx;
flex: 1;
color: rgba(0,0,0,0.45);
display: flex;
line-height: 48rpx;
align-items: center;
font-size: 30rpx;
}

View File

@ -12,6 +12,8 @@ Page({
showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
title: '服务设置', //导航栏 中间的标题
},
inquiry_type:1,
inquiry_mode:6,
show:false,
content_message:'',
process_message:'',
@ -55,6 +57,17 @@ Page({
})
}
},
goBack(){
let {cycle,rounds,content_message,process_message,config_service_id}=this.data;
if((cycle || rounds || content_message || process_message || rounds==0) && !config_service_id){
this.setData({
showSave:true
})
}else{
wx.navigateBack()
}
},
onClickHide(){
this.setData({
show:false
@ -93,6 +106,30 @@ Page({
rounds:this.data.customRounds
})
},
openPreview(){
let {process_message,content_message,}=this.data;
if(content_message.length<10){
wx.showToast({
title: '服务内容不少于10个字符',
icon:'none'
})
return false
};
if(process_message.length<10){
wx.showToast({
title: '服务流程不少于10个字符',
icon:'none'
})
return false
};
wx.setStorageSync('config_message', {
content_message,
process_message,
})
this.setData({
showPreview:true
})
},
changeCustomIpt(event){
let {value}= event.detail;
console.log(value);
@ -166,32 +203,44 @@ Page({
})
},
// getConfig(){
// let {inquiry_type,inquiry_mode}=this.data;
// api.getServiceConfig({
// inquiry_type,
// inquiry_mode
// }).then(response => {
// let result=response.data;
// if(result){
// this.setData({
// 'config_setting.service_content':result.service_content,
// 'config_setting.service_process':result.service_process,
// 'config_setting.service_period':result.service_period,
// 'config_setting.service_rounds':result.service_rounds,
// 'config_setting.config_service_id':result.config_service_id
// })
// }
// }).catch(errors => {console.error(errors);})
// },
saveconfirmDialog(){
let {cycle,rounds,content_message,process_message,config_service_id}=this.data;
let {cycle,rounds,content_message,process_message}=this.data;
wx.setStorageSync('service_setting',{
cycle,
rounds,
content_message,
process_message,
process_message
})
this.setData({
showSave:false
})
if(config_service_id){
this.putConfig();
}else{
this.postConfig();
}
});
wx.navigateBack();
},
draftcancelDialog(){
this.setData({
showDraft:false
})
this.getConfig();
//this.getConfig();
},
draftconfirmDialog(){
const service_setting=wx.getStorageSync('service_setting');
@ -212,14 +261,22 @@ Page({
this.setData({
showPreview:false
})
let doctor_id=wx.getStorageSync('client_user_id_2')
app.go("/user/pages/yishi/expertDetail/expertDetail?doctor_id="+doctor_id)
},
onChangeText(event){
let {id}=event.currentTarget.dataset;
console.log(id);
this.setData({
[id]:event.detail
})
},
save(){
let {cycle,rounds,content_message,process_message}=this.data;
if(cycle || rounds || content_message || process_message){
this.setData({
showSave:true
})
let {config_service_id}=this.data;
if(config_service_id){
this.putConfig();
}else{
this.postConfig();
}
},
validate(){
@ -245,7 +302,7 @@ Page({
})
return false
}
if(!rounds){
if(!rounds && rounds!=0){
wx.showToast({
title: '请设置服务回合数',
icon:'none'
@ -263,12 +320,13 @@ Page({
service_period:cycle,
service_rounds:rounds=='不限次'?0:rounds
}).then(response => {
if(response.data==200){
if(response.code==200){
wx.showToast({
title: 'title',
icon:'新增成功'
title: '新增成功',
icon:'none'
})
wx.navigateBack()
wx.navigateBack();
wx.setStorageSync('service_setting','')
}
}).catch(errors => {console.error(errors);})
}
@ -283,19 +341,20 @@ Page({
service_period:cycle,
service_rounds:rounds=='不限次'?0:rounds
},config_service_id).then(response => {
if(response.data==200){
console.log(response)
if(response.code==200){
wx.showToast({
title: 'title',
icon:'修改成功'
title: '修改成功',
icon:'none'
})
wx.navigateBack()
wx.navigateBack();
}
}).catch(errors => {console.error(errors);})
}
},
getConfig(){
let {inquiry_type,inquiry_mode}=this.data;
api.getServiceConfig({
inquiry_type:1,
inquiry_mode:6
@ -316,6 +375,7 @@ Page({
*/
onLoad(options) {
const service_setting=wx.getStorageSync('service_setting');
console.log(service_setting)
let arr=[];
for (let i =2; i < 31; i++) {
arr.push(i)
@ -327,12 +387,13 @@ Page({
this.setData({
config_service_id:options.config_service_id
})
}
this.getConfig();
}else{
if(service_setting){
this.setData({
showDraft:true
})
}
}
},

View File

@ -1,6 +1,7 @@
{
"usingComponents": {
"te-nav-bar": "../../../../commpents/te_navbar/index",
"t-navbar": "tdesign-miniprogram/navbar/navbar",
"t-icon": "tdesign-miniprogram/icon/icon",
"van-icon": "@vant/weapp/icon/index",
"van-radio": "@vant/weapp/radio/index",
"van-picker": "@vant/weapp/picker/index",

View File

@ -1,6 +1,8 @@
<!--Pages/service_setting/index.wxml-->
<view class="page">
<te-nav-bar navbar-data='{{navbarData}}'></te-nav-bar>
<view class="block" >
<t-navbar class="block" title="服务设置" left-arrow bind:go-back="goBack" delta="0"/>
</view>
<view class="container">
<view class="brandbox">
<view class="brand">
@ -8,14 +10,19 @@
<view class="name">服务内容</view>
<view class="moban" bindtap="openDialog" data-id="1">使用模板 ></view>
</view>
<van-field value="{{ content_message }}" label="" type="textarea" placeholder="请填写自定义的服务内容内容简洁明了。10-500" autosize="{{autosize}}" maxlength="500" show-word-limit border="{{ false }}" />
<van-field value="{{ content_message }}" label="" type="textarea" placeholder="请填写自定义的服务内容内容简洁明了。10-500" autosize="{{autosize}}" maxlength="500" bind:change="onChangeText"
data-id="content_message"
show-word-limit border="{{ false }}" />
</view>
<view class="brand">
<view class="titlebox">
<view class="name">服务流程</view>
<view class="moban" bindtap="openDialog" data-id="2">使用模板 ></view>
</view>
<van-field value="{{ process_message }}" label="" type="textarea" placeholder="请填写自定义的服务流程内容简洁明了。10-500" autosize="{{autosize}}" maxlength="500" show-word-limit border="{{ false }}" />
<van-field value="{{ process_message }}" label="" type="textarea" placeholder="请填写自定义的服务流程内容简洁明了。10-500" autosize="{{autosize}}"
bind:change="onChangeText"
data-id="process_message"
maxlength="500" show-word-limit border="{{ false }}" />
</view>
<view class="cell" bindtap="openCycle">
<view class="name">服务周期</view>
@ -28,13 +35,13 @@
<view class="cell" bindtap="openRound">
<view class="name">服务回合数</view>
<view class="right">
<view class="msg" wx:if="{{rounds}}">{{rounds}}</view>
<view class="msg" wx:if="{{rounds || rounds===0}}">{{rounds}}</view>
<view class="msg" wx:else>去设置</view>
<van-icon name="arrow" class="icon" />
</view>
</view>
<view class="eyebox">
<image src="{{static_host}}/applet/doctor/static/images/yishi/eye.png" mode="" class="eye" />
<view class="eyebox" bind:tap="openPreview">
<image src="{{static_host}}/applet/doctor/static/images/yishi/eye_set.png" mode="" class="eye" />
<view class="text" >预览效果</view>
</view>
</view>

View File

@ -12,6 +12,7 @@ Page({
result: [],
order_list:[],
current_page: 0,
amount_total:0,
total: 0,
per_page: 10,
last_page: 0,
@ -82,6 +83,7 @@ Page({
order_list: list.concat(response.data.data),
current_page: response.data.current_page,
per_page: response.data.per_page,
total: response.data.total,
last_page: response.data.last_page
})
}
@ -102,5 +104,15 @@ Page({
console.log(select_order_inquiry_id);
let order_inquiry_ids = select_order_inquiry_id.join(",");
app.go("/user/pages/yishi/cash/index?order_inquiry_ids="+order_inquiry_ids);
}
},
goback(){
wx.navigateBack()
},
onLoad(options){
this.setData({
amount_total:options.amount_total
})
}
})

View File

@ -5,14 +5,14 @@
<view class="order_item" wx:for="{{order_list}}">
<view class="order_item_content" data-index="{{index}}" bindtap="selectOrder">
<!-- 1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) -->
<view class="order_item_content_top">{{item.inquiry_type==1?'专家问诊':item.inquiry_type==2?'快速问诊':item.inquiry_type==3?'公益问诊':item.inquiry_type==4?'问诊购药':item.inquiry_type==5?'糖组检测':'未知'}}</view>
<view class="order_item_content_top">{{item.inquiry_type==1 && item.inquiry_mode==1?'在线问诊-图文':item.inquiry_type==1 && item.inquiry_mode==2?'在线问诊-视频':item.inquiry_type==1 && item.inquiry_mode==6?'疑难会诊':item.inquiry_type==2?'快速问诊':item.inquiry_type==3?'公益问诊':item.inquiry_type==4?'问诊购药':item.inquiry_type==5?'糖组检测':'未知'}}</view>
<view class="order_item_content_data">
<view class="order_id">订单编号:<text style="font-size: 30rpx;color: #666666;">{{item.inquiry_no }}</text></view>
<view class="order_id">就诊患者:<text style="font-size: 30rpx;color: #666666;">{{item.patient_name}}{{item.patient_sex==1?'男':'女'}}{{item.patient_age}}岁)</text></view>
<view class="order_id">接诊时间:<text style="font-size: 30rpx;color: #666666;">{{item.reception_time}}</text></view>
<view class="order_id">结束时间:<text style="font-size: 30rpx;color: #666666;">{{item.finish_time}}</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: #666666;">¥{{item.amount_total}}</text></view>
<view class="order_id">预计收入:<text style="font-size: 30rpx;color: #666666;">¥{{item.expected_amount_total}}</text></view>
<view class="order_id">订单编号:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">{{item.inquiry_no }}</text></view>
<view class="order_id">就诊患者:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">{{item.patient_name}}{{item.patient_sex==1?'男':'女'}}{{item.patient_age}}岁)</text></view>
<view class="order_id">接诊时间:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">{{item.reception_time}}</text></view>
<view class="order_id">结束时间:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">{{item.finish_time}}</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: rgba(0,0,0,0.85);">¥{{item.amount_total}}</text></view>
<view class="order_id"><text decode>入账<text style="opacity: 0;">入账</text></text><text style="font-size: 30rpx;color: #FF5D2E;">{{item.amount_total}}*0.75元</text></view>
</view>
</view>
</view>
@ -21,3 +21,7 @@
<van-divider contentPosition="center" wx:if="{{order_list.length > 0 && current_page == last_page}}">到底了~</van-divider>
</view>
<view class="bottom">
<view class="left">共{{total}}个订单,金额:<text class="money">¥{{amount_total}}元</text></view>
<view class="right" bind:tap="goback">确定</view>
</view>

View File

@ -3,7 +3,8 @@ page{
}
.container{
width: 100vw;
padding-bottom: 50rpx;
padding-bottom: 100rpx;
}
.order_list{
display: flex;
@ -27,24 +28,34 @@ page{
border-radius: 20rpx;
display: flex;
flex-direction: column;
padding: 20rpx;
height: 400rpx;
}
.order_item_content_top{
flex: 1;
font-size: 32rpx;
padding:20rpx;
font-weight: 500;
color: rgba(0,0,0,0.85);
border-bottom: 1px solid #E5E5E5;
display: flex;
align-items: center;
font-size: 36rpx;
}
.order_item_content_data{
padding:20rpx;
margin-top: 10rpx;
flex: 3;
display: flex;
flex-direction: column;
}
.order_id{
margin-top: 10rpx;
flex: 1;
color: rgba(0,0,0,0.45);
display: flex;
line-height: 48rpx;
align-items: center;
font-size: 30rpx;
}
@ -79,3 +90,34 @@ page{
}
.bottom{
width:100%;
height: 102rpx;
background: #FFFFFF;
box-shadow: inset 0rpx 1rpx 0rpx 0rpx rgba(0,0,0,0.08);
position: fixed;
bottom:-50rpx;
display: flex;
}
.bottom .left{
padding:0 32rpx;
flex:1;
font-size: 28rpx;
font-weight: 400;
color: #666666;
}
.bottom .money{
color: #FF0000;
font-size: 30rpx;
}
.bottom .right{
width: 208rpx;
height: 102rpx;
font-size: 34rpx;
display: flex;
align-items: center;
justify-content: center;
font-weight: 500;
color: #FFFFFF;
background: linear-gradient(310deg, #FF931A 0%, #FF931A 0%, #FCB75D 100%);
}

View File

@ -968,6 +968,28 @@ postServiceConfig(params) {//新增医生问诊配置-服务设置
method: 'GET'
})
}
getIntroReason() {//获取医生身份认证失败原因
return this.request({
url: `${this.baseUrl}/doctor/auth/introduction/reason`,
method: 'GET'
})
}
getIntroduction() {//获取个人简介
return this.request({
url: `${this.baseUrl}/doctor/auth/introduction`,
method: 'GET'
})
}
updateIntroduction(params) {//获取个人简介
return this.request({
url: `${this.baseUrl}/doctor/auth/introduction`,
method: 'PUT',
data: {
...params
}
})
}
geRoomId(params) {//创建音视频房间
return this.request({
url: `${this.baseUrl}/doctor/inquiry/video/room`,
@ -977,7 +999,18 @@ postServiceConfig(params) {//新增医生问诊配置-服务设置
}
})
}
getDoctorDetail(params){
return this.request({
url: `${this.baseUrl}/doctor/info/inquiry/${params}`,
method: 'GET'
})
}
getDoctorService(params){
return this.request({
url: `${this.baseUrl}/doctor/inquiry/service/${params}`,
method: 'GET'
})
}
}