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
@@ -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
// }
// }
/**
* 用户点击右上角分享
*/
})
@@ -0,0 +1,9 @@
{
"usingComponents": {
"van-popup": "@vant/weapp/popup/index",
"te-nav-bar": "../../../../commpents/te_navbar/index"
},
"navigationStyle":"custom",
"disableScroll":true,
"navigationBarTitleText": "肝胆相照互联网医院"
}
@@ -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>
@@ -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;
}