4.12更新
This commit is contained in:
parent
17c32e24bf
commit
aa2231f256
19
api/health.js
Normal file
19
api/health.js
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
import {request} from '../utils/request.js'
|
||||||
|
function getItems(id){ //获取地址
|
||||||
|
return request('/doctor/inquiry/service/follow/item/'+id,'GET',{},true)
|
||||||
|
};
|
||||||
|
function getServiceDetail(data){
|
||||||
|
return request('/patient/service/detail','GET',data,true)
|
||||||
|
}
|
||||||
|
function createServiceOrder(data){
|
||||||
|
return request('/patient/service','POST',data,true)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
module.exports={
|
||||||
|
getItems,
|
||||||
|
getServiceDetail,
|
||||||
|
createServiceOrder
|
||||||
|
}
|
||||||
4
app.json
4
app.json
@ -95,7 +95,9 @@
|
|||||||
"pages/healthyDetail/healthyDetail",
|
"pages/healthyDetail/healthyDetail",
|
||||||
"pages/visitDetail/visitDetail",
|
"pages/visitDetail/visitDetail",
|
||||||
"pages/healthyOrder/healthyOrder",
|
"pages/healthyOrder/healthyOrder",
|
||||||
"pages/healthyOrderDetail/healthyOrderDetail"
|
"pages/healthyOrderDetail/healthyOrderDetail",
|
||||||
|
"pages/writeSick/writeSick",
|
||||||
|
"pages/visitList/visitList"
|
||||||
],
|
],
|
||||||
"independent": true
|
"independent": true
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,7 +26,7 @@ Component({
|
|||||||
},
|
},
|
||||||
goInquirtForm(){
|
goInquirtForm(){
|
||||||
wx.navigateTo({
|
wx.navigateTo({
|
||||||
url: '/healthyService/pages/healthyIntro/healthyIntro',
|
url: '/healthyService/pages/visitList/visitList',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -202,7 +202,21 @@ function hasTuWen(arr){
|
|||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function formatHealthPrcice(arr){
|
||||||
|
var price=null;
|
||||||
|
if(arr){
|
||||||
|
for (var i = 0; i < arr.length; i++) {
|
||||||
|
if(arr[i].inquiry_type==1 && arr[i].inquiry_mode==8){
|
||||||
|
return arr[i].inquiry_price;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return price
|
||||||
|
};
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
formatHealthPrcice:formatHealthPrcice,
|
||||||
formatwenzhenList:formatwenzhenList,
|
formatwenzhenList:formatwenzhenList,
|
||||||
formatChufang:formatChufang,
|
formatChufang:formatChufang,
|
||||||
formatPrice:formatPrice,
|
formatPrice:formatPrice,
|
||||||
|
|||||||
@ -1,4 +1,7 @@
|
|||||||
// healthyService/pages/healthyDetail/healthyDetail.js
|
// healthyService/pages/healthyDetail/healthyDetail.js
|
||||||
|
import {doctorDetail} from "../../../api/consultExpert"
|
||||||
|
import {family,addfamily} from "../../../api/familyDoc";
|
||||||
|
import {getServiceDetail,getItems} from "../../../api/health"
|
||||||
import {throttle} from "../../../utils/util"
|
import {throttle} from "../../../utils/util"
|
||||||
const app = getApp()
|
const app = getApp()
|
||||||
Page({
|
Page({
|
||||||
@ -7,13 +10,276 @@ Page({
|
|||||||
* 页面的初始数据
|
* 页面的初始数据
|
||||||
*/
|
*/
|
||||||
data: {
|
data: {
|
||||||
img_host:app.hostConfig().imghost
|
active:0,
|
||||||
|
img_host:app.hostConfig().imghost,
|
||||||
|
doctor_id:'',
|
||||||
|
currentData:0,
|
||||||
|
inquiry_mode:8,
|
||||||
|
inquiry_type:1,
|
||||||
|
current_price:'',
|
||||||
|
avatar: '',
|
||||||
|
user_name: '',
|
||||||
|
doctor_title: '',
|
||||||
|
doctor_id: '',
|
||||||
|
doctor_title_name:'',
|
||||||
|
user_id:'',
|
||||||
|
is_online:'0',
|
||||||
|
hospital: null,
|
||||||
|
priceList:[],
|
||||||
|
show:false,
|
||||||
|
currentFamilyId:'',
|
||||||
|
realName:'',
|
||||||
|
idCard:'',
|
||||||
|
phoneNumber:'',
|
||||||
|
relationId:'',
|
||||||
|
sex:'',
|
||||||
|
service_type:1,
|
||||||
|
chat_id:'',
|
||||||
|
},
|
||||||
|
|
||||||
|
inputChange(e) {
|
||||||
|
this.setData({
|
||||||
|
[e.target.dataset.id]: e.detail.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goNext:throttle(function() {
|
||||||
|
this.handleGetServiceDetail();
|
||||||
|
|
||||||
|
}),
|
||||||
|
addFamily() {
|
||||||
|
let {
|
||||||
|
realName,
|
||||||
|
idCard,
|
||||||
|
phoneNumber,
|
||||||
|
relationId,
|
||||||
|
sex
|
||||||
|
} = this.data;
|
||||||
|
addfamily({
|
||||||
|
card_name: realName,
|
||||||
|
type: 1,
|
||||||
|
id_number: idCard,
|
||||||
|
mobile: phoneNumber,
|
||||||
|
is_default: 0,
|
||||||
|
relation: relationId
|
||||||
|
}).then((data) => {
|
||||||
|
this.getFamily();
|
||||||
|
this.setData({
|
||||||
|
currentFamilyId:data.family_id,
|
||||||
|
realName:'',
|
||||||
|
idCard:'',
|
||||||
|
phoneNumber:'',
|
||||||
|
relationId:'',
|
||||||
|
relation:'',
|
||||||
|
showAdd:false
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showPatient(){
|
||||||
|
this.setData({
|
||||||
|
show:true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
addPatient() {
|
||||||
|
this.setData({
|
||||||
|
showAdd: true,
|
||||||
|
currentFamilyId: '',
|
||||||
|
sex: ''
|
||||||
|
})
|
||||||
|
},
|
||||||
|
selectPatient(e) {
|
||||||
|
let currentFamilyId=e.currentTarget.dataset.familyid;
|
||||||
|
let sex=e.currentTarget.dataset.sex;
|
||||||
|
let name=e.currentTarget.dataset.name;
|
||||||
|
let age=e.currentTarget.dataset.age;
|
||||||
|
this.setData({
|
||||||
|
currentFamilyId:currentFamilyId,
|
||||||
|
sex:sex
|
||||||
|
})
|
||||||
|
},
|
||||||
|
transforpage(arr) {
|
||||||
|
const pages = []
|
||||||
|
let newArr = arr.concat([{
|
||||||
|
type: "add"
|
||||||
|
}])
|
||||||
|
newArr.forEach((item, index) => {
|
||||||
|
const page = Math.floor(index / 2)
|
||||||
|
if (!pages[page]) {
|
||||||
|
pages[page] = []
|
||||||
|
}
|
||||||
|
pages[page].push(item)
|
||||||
|
});
|
||||||
|
return pages
|
||||||
|
},
|
||||||
|
confirmNext() {
|
||||||
|
if (!/^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$/.test(this.data.realName)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `姓名要求在2-10个字符`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请输入有效的身份证号`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请输入有效的手机号码!`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getFamily() {
|
||||||
|
family().then((data) => {
|
||||||
|
this.setData({
|
||||||
|
family: this.transforpage(data)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goSick:throttle(function() {
|
||||||
|
if (!/^([\u4e00-\u9fa5\·]{2,10})$/.test(this.data.realName)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `姓名要求在2-10个汉字`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请输入有效的身份证号`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if (this.data.phoneNumber) {
|
||||||
|
if (!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请输入有效的手机号码!`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let idInfo = this.getIdInfo(this.data.idCard);
|
||||||
|
if (idInfo.age < 6) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `六岁以下儿童不支持线上问诊`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.setData({
|
||||||
|
sex:idInfo.sex
|
||||||
|
})
|
||||||
|
this.addFamily()
|
||||||
|
|
||||||
|
}),
|
||||||
|
//获取身份证号信息
|
||||||
|
getIdInfo(IdCard) {
|
||||||
|
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
|
||||||
|
if (reg.test(IdCard)) {
|
||||||
|
let sex
|
||||||
|
if (parseInt(IdCard.substr(16, 1)) % 2 === 1) {
|
||||||
|
sex = '1'
|
||||||
|
} else {
|
||||||
|
sex = '2'
|
||||||
|
}
|
||||||
|
var ageDate = new Date()
|
||||||
|
var month = ageDate.getMonth() + 1
|
||||||
|
var day = ageDate.getDate()
|
||||||
|
var age = ageDate.getFullYear() - IdCard.substring(6, 10) - 1
|
||||||
|
if (IdCard.substring(10, 12) < month || (IdCard.substring(10, 12) === month && IdCard.substring(12, 14) <= day)) {
|
||||||
|
age++
|
||||||
|
}
|
||||||
|
if (age <= 0) {
|
||||||
|
age = 1
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
sex,
|
||||||
|
age
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onClose() {
|
||||||
|
this.setData({
|
||||||
|
show: false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onCloseAdd() {
|
||||||
|
this.setData({
|
||||||
|
showAdd: false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
getDeatil(id) {
|
||||||
|
doctorDetail(id).then((res) => {
|
||||||
|
for (const key in this.data) {
|
||||||
|
if (res[key]) {
|
||||||
|
this.setData({
|
||||||
|
[key]: res[key]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.setData({
|
||||||
|
chat_id:res.user_id
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleGetServiceDetail(){
|
||||||
|
let {doctor_id,currentFamilyId,service_type,follow_package_item_id,chat_id,sex,inquiry_mode,inquiry_type}=this.data;
|
||||||
|
getServiceDetail({
|
||||||
|
doctor_id,
|
||||||
|
family_id:currentFamilyId,
|
||||||
|
service_type,
|
||||||
|
follow_package_item_id
|
||||||
|
|
||||||
|
}).then((res)=>{
|
||||||
|
if(res.status==1){
|
||||||
|
app.method.navigateTo({
|
||||||
|
url:'/healthyService/pages/writeSick/writeSick?doctor_id='+doctor_id+"&family_id="+currentFamilyId+"&chat_id="+chat_id+"&inquiry_type="+inquiry_type+"&sex="+sex+"&inquiry_mode="+inquiry_mode+"&package_id="+follow_package_item_id
|
||||||
|
})
|
||||||
|
}else if(res.status==2){
|
||||||
|
|
||||||
|
}else if(res.status==3){
|
||||||
|
app.method.navigateTo({
|
||||||
|
url:'/patient/pages/expertDetail/expertDetail?doctor_id='+doctor_id
|
||||||
|
})
|
||||||
|
|
||||||
|
}else if(res.status==4){
|
||||||
|
|
||||||
|
}else if(res.status==5){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showPatient(){
|
||||||
|
this.setData({
|
||||||
|
show:true
|
||||||
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生命周期函数--监听页面加载
|
* 生命周期函数--监听页面加载
|
||||||
*/
|
*/
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
|
this.setData({
|
||||||
|
doctor_id:options.doctor_id,
|
||||||
|
current_price:options.price
|
||||||
|
})
|
||||||
|
|
||||||
|
this.getDeatil(options.doctor_id);
|
||||||
|
|
||||||
|
this.getFamily();
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"usingComponents": {
|
"usingComponents": {
|
||||||
"nav":"../../../components/nav/nav"
|
"nav":"../../../components/nav/nav",
|
||||||
|
"van-popup": "@vant/weapp/popup/index",
|
||||||
|
"van-picker": "@vant/weapp/picker/index"
|
||||||
},
|
},
|
||||||
"navigationStyle":"custom"
|
"navigationStyle":"custom"
|
||||||
}
|
}
|
||||||
@ -2,6 +2,24 @@
|
|||||||
<nav navName="健康包服务详情"></nav>
|
<nav navName="健康包服务详情"></nav>
|
||||||
<view class="page">
|
<view class="page">
|
||||||
<image src="{{img_host+'/mybg.png'}}" mode="widthFix" class="dcimg" lazy-load/>
|
<image src="{{img_host+'/mybg.png'}}" mode="widthFix" class="dcimg" lazy-load/>
|
||||||
|
<view class="viewcell" >
|
||||||
|
<view class="left">
|
||||||
|
<image src="{{avatar}}" wx:if="{{avatar}}" mode="aspectFill" class="headimg"></image>
|
||||||
|
<image src="{{img_host+'/doctor_avatar.png'}}" class="headimg" wx:else></image>
|
||||||
|
<view class="onlinebox" wx:if="{{user.is_online==1}}">
|
||||||
|
<image src="{{img_host+'/online.gif'}}" mode="" class="icon"/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right">
|
||||||
|
<view class="namebox">
|
||||||
|
<view class="name">{{user_name}}</view>
|
||||||
|
<view class="type" wx:if="{{hospital.hospital_level_name != '未知'&& hospital.hospital_level_name}}">{{hospital.hospital_level_name}}</view>
|
||||||
|
<view class="type" wx:if="{{multi_point_status == 1 && multi_point_enable==1}}">可处方</view>
|
||||||
|
</view>
|
||||||
|
<view class="hospital"><text class="hospital_name" wx:if="{{doctor_title_name}}">{{doctor_title_name}}</text> <text wx:if="{{item.department_custom_name}}">{{item.department_custom_name}}</text></view>
|
||||||
|
<view class="hospital"><text class="hospital_name" >{{hospital.hospital_name}}</text></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
<view class="detailbox">
|
<view class="detailbox">
|
||||||
<view class="quanyi">
|
<view class="quanyi">
|
||||||
<image src="../../static/images/quanyi.png" class="quanyiImg"/>
|
<image src="../../static/images/quanyi.png" class="quanyiImg"/>
|
||||||
@ -62,6 +80,76 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="buttonbox">
|
<view class="buttonbox">
|
||||||
<view class="btn">立即购买:¥XX.XX</view>
|
<view class="btn" bind:tap="showPatient">立即购买:¥{{current_price}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<van-popup show="{{ show }}" bind:close="onClose" closeable
|
||||||
|
position="bottom" round
|
||||||
|
custom-style="min-height: 60%">
|
||||||
|
<view class="titlepop">选择患者</view>
|
||||||
|
<view class="personbox">
|
||||||
|
<view class="row" wx:for-item="itemName" wx:for="{{family}}" wx:key="*this">
|
||||||
|
<view class="cell" wx:for-item="item" wx:for="{{itemName}}" wx:key="family_id">
|
||||||
|
<view class="cellinner" wx:if="{{!item.type}}" bindtap="selectPatient" data-familyId="{{item.family_id}}" data-sex="{{item.sex}}">
|
||||||
|
<view class="person">
|
||||||
|
<view class="name">{{item.card_name}}</view>
|
||||||
|
<view class="tag" wx:if="{{item.relation==1}}">本人</view>
|
||||||
|
<view class="tag" wx:elif="{{item.relation==2}}">父母</view>
|
||||||
|
<view class="tag" wx:elif="{{item.relation==3}}">爱人</view>
|
||||||
|
<view class="tag" wx:elif="{{item.relation==4}}">子女</view>
|
||||||
|
<view class="tag" wx:elif="{{item.relation==5}}">亲戚</view>
|
||||||
|
<view class="tag" wx:elif="{{item.relation==6}}">其他</view>
|
||||||
|
</view>
|
||||||
|
<view class="desc">
|
||||||
|
<view class="sex" wx:if="{{item.sex===0}}">性别未知</view>
|
||||||
|
<view class="sex" wx:elif="{{item.sex==1}}">男</view>
|
||||||
|
<view class="sex" wx:else>女</view>
|
||||||
|
<view class="age">{{item.age}}岁</view>
|
||||||
|
</view>
|
||||||
|
<image src="{{img_host+'/gou.png'}}" class="gou" wx:if="{{item.family_id==currentFamilyId}}"></image>
|
||||||
|
</view>
|
||||||
|
<view class="celladd" bindtap="addPatient" wx:elif="{{item.type}}">
|
||||||
|
+新建患者
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="btnbox">
|
||||||
|
<button class="btn" plain="true" disabled="{{currentFamilyId?false:true}}" bindtap="goNext">下一步</button>
|
||||||
|
</view>
|
||||||
|
</van-popup>
|
||||||
|
<van-popup show="{{showAdd}}" round closeable z-index="999" position="bottom" custom-style="height:{{height}}rpx" bind:close="onCloseAdd">
|
||||||
|
<view class="infobox">
|
||||||
|
<view class="title">新建患者</view>
|
||||||
|
<view class="info">
|
||||||
|
<view class="name">真实姓名<text>*</text></view>
|
||||||
|
<input value="{{realName}}" type="text" bindinput="inputChange" placeholder="请输入真实姓名" data-id="realName"/>
|
||||||
|
</view>
|
||||||
|
<view class="info">
|
||||||
|
<view class="name">身份证号<text>*</text></view>
|
||||||
|
<input value="{{idCard}}" type="idcard" bindinput="inputChange" placeholder="请输入真实身份证号" data-id="idCard"/>
|
||||||
|
</view>
|
||||||
|
<view class="info">
|
||||||
|
<view class="name">联系电话</view>
|
||||||
|
<input value="{{phoneNumber}}" type="number" bindblur="onblur" bindfocus="onfocus" cursor-spacing="100" bindinput="inputChange" bindinput="inputChange" placeholder="请输入联系电话" data-id="phoneNumber"/>
|
||||||
|
</view>
|
||||||
|
<view class="info" bindtap="openPicker">
|
||||||
|
<view class="name">患者关系</view>
|
||||||
|
<input type="text" value="{{relation}}" placeholder="请选择与患者的关系" disabled="true" />
|
||||||
|
</view>
|
||||||
|
<view class="tip">
|
||||||
|
<view class="warntitle">温馨提示:</view>
|
||||||
|
<view class="warn">
|
||||||
|
<view>1、根据国家卫健委要求,就医实行实名制,请如实填写患者信息。</view>
|
||||||
|
<view>2、信息受隐私保护,仅接诊医生可见。
|
||||||
|
</view>
|
||||||
|
<view>3、6岁以下儿童不支持线上问诊,请到线下就诊。
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="next" bindtap="goSick">
|
||||||
|
确定
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-popup>
|
||||||
@ -23,7 +23,7 @@ page{
|
|||||||
flex:1;
|
flex:1;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
margin-top: 200rpx;
|
margin:0rpx;
|
||||||
background: #FFFFFF;
|
background: #FFFFFF;
|
||||||
border-radius: 32rpx 32rpx 0rpx 0rpx;
|
border-radius: 32rpx 32rpx 0rpx 0rpx;
|
||||||
}
|
}
|
||||||
@ -86,3 +86,272 @@ justify-content: center;
|
|||||||
line-height: 50rpx;
|
line-height: 50rpx;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
.viewcell{
|
||||||
|
display: flex;
|
||||||
|
background-color: #fff;
|
||||||
|
margin:30rpx;
|
||||||
|
padding:20rpx;
|
||||||
|
box-shadow: 0rpx 8rpx 20rpx 2rpx rgba(0,0,0,0.04);
|
||||||
|
border-radius: 10rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
.headimg{
|
||||||
|
width:120rpx;
|
||||||
|
height:120rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.viewcell .type{
|
||||||
|
height: 32rpx;
|
||||||
|
margin-bottom: 6rpx;
|
||||||
|
line-height: 32rpx;
|
||||||
|
display: flex;
|
||||||
|
white-space: nowrap;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 18rpx;
|
||||||
|
padding:0rpx 6rpx;
|
||||||
|
background: #ED9C00;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
.viewcellbox .hospital{
|
||||||
|
margin-top: 12rpx;
|
||||||
|
color: #333333;
|
||||||
|
display: flex;
|
||||||
|
font-size: 30rpx;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
.hospital_name{
|
||||||
|
font-size: 28rpx;
|
||||||
|
word-wrap: break-word;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
color:#333;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.viewcell .right{
|
||||||
|
flex:1;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
.namebox{
|
||||||
|
display: flex;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
color:#333;
|
||||||
|
align-items: flex-end;
|
||||||
|
}
|
||||||
|
.personbox {
|
||||||
|
border-radius: 10rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 40rpx 20rpx 144rpx;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .row {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .row:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .row .cell {
|
||||||
|
position: relative;
|
||||||
|
width: 47%;
|
||||||
|
height: 120rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
border: 1px solid #CCCCCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .row .cell:first-child {
|
||||||
|
margin-left: 0rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .person {
|
||||||
|
display: flex;
|
||||||
|
margin: 0 25rpx;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .tag {
|
||||||
|
margin-left: 32rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
line-height: 24rpx;
|
||||||
|
justify-content: center;
|
||||||
|
color: #666666;
|
||||||
|
width: 80rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
transform: rotateZ(360deg);
|
||||||
|
border: 1rpx solid #979797;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .desc {
|
||||||
|
display: flex;
|
||||||
|
margin: 0 25rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666;
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .name {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
max-width: 200rpx;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
font-size: 34rpx;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .age {
|
||||||
|
|
||||||
|
margin-left: 12rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .cell .gou {
|
||||||
|
position: absolute;
|
||||||
|
bottom: -1rpx;
|
||||||
|
right: 0rpx;
|
||||||
|
width: 66rpx;
|
||||||
|
height: 53.7rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .add {
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 34rpx;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
.own .add.disabled{
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.titlepop{
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #333333;
|
||||||
|
padding:40rpx 0;
|
||||||
|
text-align: center;
|
||||||
|
width:100%;
|
||||||
|
border-bottom:1rpx solid #E7E7E7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-icon-cross {
|
||||||
|
color: #333;
|
||||||
|
font-size: 40rpx !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.infobox {
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
border-bottom: 1rpx solid #E7E7E7;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
height: 112rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.infobox .title {
|
||||||
|
border-bottom: 1rpx solid #E7E7E7;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 34rpx;
|
||||||
|
padding-bottom: 35rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info .name {
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 180rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 52rpx;
|
||||||
|
color: #333333;
|
||||||
|
font-size: 34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info text {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
color:#E34D59;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.info input {
|
||||||
|
margin-left: 15rpx;
|
||||||
|
margin-right: 52rpx;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
.input-placeholder {
|
||||||
|
color: #999999;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
.tip{
|
||||||
|
padding:30rpx 52rpx 20rpx;
|
||||||
|
}
|
||||||
|
.warntitle{
|
||||||
|
color: #E34D59;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
.warn{
|
||||||
|
margin-top: 20rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
line-height: 36rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
.next{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 94rpx;
|
||||||
|
font-size: 36rpx;
|
||||||
|
left: 30rpx;
|
||||||
|
right: 30rpx;
|
||||||
|
margin:0 52rpx;
|
||||||
|
border-radius: 47rpx;
|
||||||
|
color: #fff;
|
||||||
|
margin-bottom: 40rpx;
|
||||||
|
background: #3CC7C0;
|
||||||
|
}
|
||||||
|
.celladd{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 120rpx;
|
||||||
|
}
|
||||||
|
.btnbox{
|
||||||
|
position: fixed;
|
||||||
|
width:100%;
|
||||||
|
bottom:0rpx;
|
||||||
|
height: 134rpx;
|
||||||
|
background:#fff;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
.btnbox .btn{
|
||||||
|
border-radius: 47rpx;
|
||||||
|
border:none;
|
||||||
|
background: #3CC7C0!important;
|
||||||
|
margin:0 32rpx;
|
||||||
|
height: 94rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FFFFFF!important;
|
||||||
|
}
|
||||||
|
.btnbox .btn[disabled]{
|
||||||
|
color: #000000!important;
|
||||||
|
background:rgba(0,0,0,0.1)!important;
|
||||||
|
}
|
||||||
|
|
||||||
@ -1,5 +1,6 @@
|
|||||||
// healthyService/pages/healthyIntro/healthyIntro.js
|
// healthyService/pages/healthyIntro/healthyIntro.js
|
||||||
import {throttle} from "../../../utils/util"
|
import {throttle} from "../../../utils/util"
|
||||||
|
import {doctorList} from "../../../api/consultExpert"
|
||||||
const app = getApp()
|
const app = getApp()
|
||||||
Page({
|
Page({
|
||||||
|
|
||||||
@ -7,12 +8,107 @@ Page({
|
|||||||
* 页面的初始数据
|
* 页面的初始数据
|
||||||
*/
|
*/
|
||||||
data: {
|
data: {
|
||||||
blockHeight:"150rpx"
|
blockHeight:"150rpx",
|
||||||
|
type:'',
|
||||||
|
doctorList:[],
|
||||||
|
page:1,
|
||||||
|
pageNumber:10,
|
||||||
|
isTriggered:false,
|
||||||
|
show:false,
|
||||||
|
expertise_id:'',
|
||||||
|
province_id:'',
|
||||||
|
city_id:'',
|
||||||
|
keyword:'',
|
||||||
|
lock:false,
|
||||||
|
is_online:0,
|
||||||
|
sort_order:1,
|
||||||
|
inquiry_type:'1',
|
||||||
|
inquiry_mode:'8',
|
||||||
},
|
},
|
||||||
goDetail:throttle(function(){
|
handleRefresher(){
|
||||||
|
|
||||||
|
this.setData({
|
||||||
|
lock:false,
|
||||||
|
page:1,
|
||||||
|
doctorList:[]
|
||||||
|
});
|
||||||
|
this.getDoctorList()
|
||||||
|
},
|
||||||
|
goExpertDetail:throttle(function(e){
|
||||||
|
let {doctorid,price}=e.currentTarget.dataset;
|
||||||
|
if(price){
|
||||||
app.method.navigateTo({
|
app.method.navigateTo({
|
||||||
url: '/healthyService/pages/visitDetail/visitDetail',
|
url:'/healthyService/pages/healthyDetail/healthyDetail?doctor_id='+doctorid+"&price="+price
|
||||||
//url: '/healthyService/pages/healthyDetail/healthyDetail',
|
})
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
app.method.navigateTo({
|
||||||
|
url:'/healthyService/pages/healthyDetail/healthyDetail?doctor_id='+doctorid+"&price="+price
|
||||||
|
})
|
||||||
|
wx.showToast({
|
||||||
|
title: '未设置健康包价格',
|
||||||
|
icon:'none'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}),
|
||||||
|
getDoctorList(){
|
||||||
|
let {expertise_id,province_id, city_id,sort_order,keyword,page,pageNumber,is_online,inquiry_type,inquiry_mode}=this.data;
|
||||||
|
doctorList({
|
||||||
|
expertise_id:expertise_id,
|
||||||
|
province_id:province_id,
|
||||||
|
city_id:city_id,
|
||||||
|
sort_order: sort_order,
|
||||||
|
is_first_online:is_online,
|
||||||
|
keyword:keyword,
|
||||||
|
inquiry_type,
|
||||||
|
inquiry_mode,
|
||||||
|
page:page,
|
||||||
|
per_page:pageNumber
|
||||||
|
}).then((res)=>{
|
||||||
|
let {doctorList}=this.data;
|
||||||
|
if(res.data.length==0){
|
||||||
|
this.setData({
|
||||||
|
lock:true,
|
||||||
|
isTriggered:false
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}else{
|
||||||
|
this.setData({
|
||||||
|
isTriggered:false,
|
||||||
|
doctorList:doctorList.concat(res.data)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onfresh(){
|
||||||
|
this.setData({
|
||||||
|
page:1,
|
||||||
|
doctorList:[],
|
||||||
|
lock:false
|
||||||
|
})
|
||||||
|
this.getDoctorList();
|
||||||
|
},
|
||||||
|
lower(e) {
|
||||||
|
let {lock}=this.data;
|
||||||
|
let addPage=this.data.page+1;
|
||||||
|
if(!lock){
|
||||||
|
this.setData({
|
||||||
|
page:addPage
|
||||||
|
});
|
||||||
|
this.getDoctorList();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
goAgree(){
|
||||||
|
this.setData({
|
||||||
|
showRight:flase
|
||||||
|
})
|
||||||
|
},
|
||||||
|
lookGood:throttle(function(){
|
||||||
|
this.setData({
|
||||||
|
showRight:true
|
||||||
})
|
})
|
||||||
}),
|
}),
|
||||||
// 显示遮罩层
|
// 显示遮罩层
|
||||||
@ -27,7 +123,7 @@ showModal() {
|
|||||||
|
|
||||||
this.setData({
|
this.setData({
|
||||||
hideModal: false,
|
hideModal: false,
|
||||||
blockHeight:"300rpx"
|
blockHeight:"150rpx"
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
touchstart(e) {
|
touchstart(e) {
|
||||||
@ -69,7 +165,12 @@ showModal() {
|
|||||||
* 生命周期函数--监听页面加载
|
* 生命周期函数--监听页面加载
|
||||||
*/
|
*/
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
|
if(options.type){
|
||||||
|
this.setData({
|
||||||
|
type:'visit'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.getDoctorList();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
{
|
{
|
||||||
"usingComponents": {
|
"usingComponents": {
|
||||||
"nav":"../../../components/nav/nav",
|
"nav":"../../../components/nav/nav",
|
||||||
"van-popup": "@vant/weapp/popup/index"
|
"van-popup": "@vant/weapp/popup/index",
|
||||||
|
"van-dialog": "@vant/weapp/dialog/index"
|
||||||
},
|
},
|
||||||
"navigationStyle":"custom"
|
"navigationStyle":"custom"
|
||||||
}
|
}
|
||||||
@ -1,15 +1,87 @@
|
|||||||
<nav navName="肝胆相照"></nav>
|
<nav navName="健康包服务医生"></nav>
|
||||||
|
<wxs src="../../../filters/filter.wxs" module="moduleFilter"></wxs>
|
||||||
|
|
||||||
<view class="page">
|
<view class="page">
|
||||||
|
<view class="imgbox">
|
||||||
<image src="../../static/images/healthy_bg.jpg" class="bg" mode="widthFix"/>
|
<image src="../../static/images/healthy_bg.jpg" class="bg" mode="widthFix"/>
|
||||||
<image src="../../static/images/healthy_button.png" class="btn" bind:tap="goDetail"/>
|
<image src="../../static/images/healthy_button.png" class="btn" bind:tap="lookGood"/>
|
||||||
</view>
|
</view>
|
||||||
<van-popup class="mypop" id="mypop" show="{{true}}" position="bottom" overlay="{{blockHeight=='1130rpx'?true:false}}" duration="500" z-index="9999" custom-style=" border-radius:8rpx;transition: height 0.5s;height:{{blockHeight}}" bind:close="onClose">
|
|
||||||
|
</view>
|
||||||
|
<van-popup class="mypop" id="mypop" show="{{true}}" lock-scroll="{{true}}" position="bottom" overlay="{{blockHeight=='1130rpx'?true:false}}" duration="500" z-index="9999" custom-style=" border-radius:8rpx;transition: height 0.5s;height:{{blockHeight}}" bind:close="onClose">
|
||||||
<view class="popwrper" id="popwrper" bindtouchstart="touchstart" bindtouchend="touchend" style="height:{{blockHeight}}" >
|
<view class="popwrper" id="popwrper" bindtouchstart="touchstart" bindtouchend="touchend" style="height:{{blockHeight}}" >
|
||||||
<view class="top">
|
<view class="top">
|
||||||
<image src="../../static/images/up.png" class="up {{blockHeight=='1130rpx'?'active':''}}"></image>
|
<image src="../../static/images/up.png" class="up {{blockHeight=='1130rpx'?'active':''}}"></image>
|
||||||
</view>
|
</view>
|
||||||
<view class="popname">
|
<view class="popname">
|
||||||
健康包服务医生
|
健康包服务医生
|
||||||
|
</view>
|
||||||
|
<view class="scrollwraper">
|
||||||
|
<scroll-view scroll-y style="width: 100%;height:100%" bindrefresherrefresh="handleRefresher" refresher-triggered="{{isTriggered}}" refresher-threshold="100" refresher-enabled="true" bindscrolltolower="lower" id="scroller" bounces="false">
|
||||||
|
<view wx:if="{{doctorList.length>0}}">
|
||||||
|
<view class="viewcell" bindtap="goExpertDetail" wx:for="{{doctorList}}" wx:key="doctor_id" data-doctorid="{{item.doctor_id}}" data-price="{{moduleFilter.formatHealthPrcice(item.doctor_inquiry_config)}}">
|
||||||
|
<view class="left">
|
||||||
|
|
||||||
|
<image src="{{item.avatar}}" wx:if="{{item.avatar}}" mode="aspectFill"></image>
|
||||||
|
<image src="{{img_host+'/doctor_avatar.png'}}" wx:else></image>
|
||||||
|
<view class="onlinebox" wx:if="{{item.user.is_online==1}}">
|
||||||
|
<image src="{{img_host+'/online.gif'}}" mode="" class="icon"/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right">
|
||||||
|
<view class="namebox">
|
||||||
|
<view class="name">{{item.user_name}}</view>
|
||||||
|
<!-- <view class="position" >{{item.doctor_title_name}}</view> -->
|
||||||
|
<view class="type" wx:if="{{item.hospital.hospital_level_name != '未知'&& item.hospital.hospital_level_name}}">{{item.hospital.hospital_level_name}}</view>
|
||||||
|
<view class="type" wx:if="{{item.multi_point_status == 1 && item.multi_point_enable==1}}">可处方</view>
|
||||||
|
</view>
|
||||||
|
<view class="hospital"><text class="hospital_name" wx:if="{{item.doctor_title_name}}">{{item.doctor_title_name}}</text> <text wx:if="{{item.department_custom_name}}">{{item.department_custom_name}}</text></view>
|
||||||
|
<view class="hospital"><text class="hospital_name" >{{item.hospital.hospital_name}}</text></view>
|
||||||
|
<view class="goodjob" wx:if="{{item.be_good_at}}">擅长:{{item.be_good_at}}</view>
|
||||||
|
<view class="diseaseType" wx:for="{{item.doctor_expertise}}" wx:for-item="cell" wx:key="index">{{cell.expertise_name}}</view>
|
||||||
|
<view class="detail" wx:if="{{item.is_display_score}}">
|
||||||
|
<view>评分: <text wx:if="{{item.praise_rate>0}}">{{item.praise_rate}} </text><text wx:else>暂无</text></view>
|
||||||
|
<view>问诊量: <text wx:if="{{item.served_patients_num>0}}">{{item.served_patients_num}}</text><text wx:else>暂无</text></view>
|
||||||
|
<view>平均回复: <text wx:if="{{item.avg_response_time>0}}"> {{moduleFilter.formatReply(item.avg_response_time)}}h</text><text wx:else>暂无</text></view>
|
||||||
|
</view>
|
||||||
|
<view class="consultbox">
|
||||||
|
<view class="price" wx:for="{{item.doctor_inquiry_config}}" wx:for-item="itemName" wx:if="{{itemName.inquiry_type==1 && itemName.inquiry_mode==8 && itemName.inquiry_price}}">
|
||||||
|
<view class="pricecell">健康包:<text>¥{{itemName.inquiry_price}}</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<view class="nonedata" wx:else>暂无数据!</view>
|
||||||
|
<!-- <view class="viewcell">
|
||||||
|
<view class="left">
|
||||||
|
<image src="https://img.applets.igandanyiyuan.com/applet/patient/static/home.png"></image>
|
||||||
|
</view>
|
||||||
|
<view class="right">
|
||||||
|
<view class="namebox">
|
||||||
|
<view class="name">魏胜昭</view>
|
||||||
|
<view class="position"> 教授</view>
|
||||||
|
<view class="type">三甲</view>
|
||||||
|
<view class="type">可处方</view>
|
||||||
|
</view>
|
||||||
|
<view class="hospital">首都医科大学佑安医院 <text decode="true"> 耳鼻科</text></view>
|
||||||
|
<view class="goodjob">擅长:治疗耳鼻喉疑难病。比如: 人工关节置换、传导性耳聋、人工晶体植入、肾移···</view>
|
||||||
|
<view class="diseaseType">中西医结合</view>
|
||||||
|
<view class="detail">
|
||||||
|
<view>好评率: <text>5 </text> </view>
|
||||||
|
<view>服务患者数: <text>100</text></view>
|
||||||
|
<view>平均回复: <text> 0.5h </text></view>
|
||||||
|
</view>
|
||||||
|
<view class="consultbox">
|
||||||
|
<view class="price">公益问诊:<text>¥100</text></view>
|
||||||
|
<view class="consult">立即咨询</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
</scroll-view>
|
||||||
</view>
|
</view>
|
||||||
<!-- <view class="infobox" style="margin-top: 32rpx;margin-bottom: 0rpx;padding-bottom: 0;">
|
<!-- <view class="infobox" style="margin-top: 32rpx;margin-bottom: 0rpx;padding-bottom: 0;">
|
||||||
<view class="namebox" style="justify-content: flex-start;">
|
<view class="namebox" style="justify-content: flex-start;">
|
||||||
@ -37,3 +109,78 @@
|
|||||||
|
|
||||||
</view>
|
</view>
|
||||||
</van-popup>
|
</van-popup>
|
||||||
|
<van-dialog
|
||||||
|
use-slot
|
||||||
|
class="mydailog"
|
||||||
|
bind:confirm="goAgree"
|
||||||
|
title="温馨提示"
|
||||||
|
z-index="9999"
|
||||||
|
theme='green'
|
||||||
|
show="{{showRight}}"
|
||||||
|
confirm-button-color="#3CC7C0"
|
||||||
|
cancel-button-text="确定"
|
||||||
|
>
|
||||||
|
<view class="slotmsg">
|
||||||
|
<view class="rowbox">
|
||||||
|
<view class="rowtitle">服务内容:</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="rowleft">1、</view>
|
||||||
|
<view class="rowright">每个月2次问诊</view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="rowleft">2、</view>
|
||||||
|
<view class="rowright">30盒肝爽颗粒(3g*9袋) (每次最多开具10盒)
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="rowbox">
|
||||||
|
<view class="rowtitle">服务价格:</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="rowleft">1、</view>
|
||||||
|
<view class="rowright">健康包价格低至1080元起,内所含每月两次问诊,费用低至5折;超出次数需按照原价支付问诊费;</view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="rowleft">2、</view>
|
||||||
|
<view class="rowright">健康包内包含30盒肝爽颗粒(3g*9袋),原价42.8元/盒,健康包内售价为35元/盒,超出30盒的可按38.5元/盒优惠价购买;
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="rowleft">3、</view>
|
||||||
|
<view class="rowright">赠送全品类药品劵10元
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="rowleft">4、</view>
|
||||||
|
<view class="rowright">
|
||||||
|
<view class="desc">赠送肝胆相照商城优惠劵100元</view>
|
||||||
|
<view class="tips">(药品总价满100元方可使用,不可与其他优惠劵叠加使用);</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="rowbox">
|
||||||
|
<view class="rowtitle">退款说明:</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="rowleft">1、</view>
|
||||||
|
<view class="rowright">未使用随时退; </view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="rowleft">2、</view>
|
||||||
|
<view class="rowright">
|
||||||
|
健康包开始使用后如需退款请联系客服,退款不收取任何服务费等额外费用,但不支持部分退款:
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="rowleft">3、</view>
|
||||||
|
<view class="rowright">药品一经发出,问诊一经接诊,均概不退换;
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="row">
|
||||||
|
<view class="rowleft">4、</view>
|
||||||
|
<view class="rowright">未消费健康包内容可退款,已消费服务的部分按原价计费,即:已发生的问诊按照问诊时互联网医院显示的价格结算,肝爽颗粒按照原价每盒42.8元结算。
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-dialog>
|
||||||
|
|||||||
@ -1,23 +1,33 @@
|
|||||||
/* healthyService/pages/healthyIntro/healthyIntro.wxss */
|
/* healthyService/pages/healthyIntro/healthyIntro.wxss */
|
||||||
.page{
|
.page{
|
||||||
|
|
||||||
margin-top: 172rpx;
|
margin-top: 172rpx;
|
||||||
padding-bottom:100rpx;
|
overflow-y: scroll;
|
||||||
|
height: calc(100vh - 172rpx - 60rpx);
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
.imgbox{
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
page{
|
||||||
|
height: 100vh;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
.btn{
|
.btn{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|
||||||
left: 50%;
|
left: 50%;
|
||||||
margin-left: -232rpx;
|
margin-left: -232rpx;
|
||||||
width:464rpx;
|
width:464rpx;
|
||||||
height: 86rpx;
|
height: 86rpx;
|
||||||
bottom:200rpx;
|
bottom:130rpx;
|
||||||
}
|
}
|
||||||
.bg{
|
.bg{
|
||||||
width:100%;
|
width:100%;
|
||||||
}
|
}
|
||||||
.top{
|
.top{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top:20rpx;
|
top:10rpx;
|
||||||
width:100%;
|
width:100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
@ -41,7 +51,7 @@
|
|||||||
.popwrper{
|
.popwrper{
|
||||||
top:0rpx;
|
top:0rpx;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
position: absolute;
|
position: relative;
|
||||||
transition: height 0.5s;
|
transition: height 0.5s;
|
||||||
width:100%;
|
width:100%;
|
||||||
border-radius: 20rpx;
|
border-radius: 20rpx;
|
||||||
@ -49,3 +59,341 @@
|
|||||||
height:100%;
|
height:100%;
|
||||||
bottom:0px;
|
bottom:0px;
|
||||||
}
|
}
|
||||||
|
.wraper{
|
||||||
|
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.containexpert{
|
||||||
|
margin-top: 172rpx;
|
||||||
|
padding: 0 30rpx 0rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
transform: all 0.3s ease;
|
||||||
|
}
|
||||||
|
.droptitle,.van-ellipsis{
|
||||||
|
font-size: 30rpx!important;
|
||||||
|
}
|
||||||
|
.namebox .name{
|
||||||
|
max-width:400rpx;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.droptitle.active{
|
||||||
|
color:#3CC7C0;
|
||||||
|
}
|
||||||
|
.searchbox {
|
||||||
|
width: 100%;
|
||||||
|
height: 72rpx;
|
||||||
|
display: flex;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
background: #FBFBFB;
|
||||||
|
border-radius: 36px;
|
||||||
|
border: 1rpx solid #CCCCCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchbox input {
|
||||||
|
margin-left: 30rpx;
|
||||||
|
flex: 1;
|
||||||
|
font-size: 32rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchbox image {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-right: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-view_H {
|
||||||
|
height:195rpx;
|
||||||
|
white-space: nowrap;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
.scroll-view-item_H{
|
||||||
|
/* width: 154rpx; */
|
||||||
|
padding:0 15rpx;
|
||||||
|
background: #F4F4F4;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
margin-left: 36rpx;
|
||||||
|
border: 1rpx solid #F4F4F4;
|
||||||
|
height: 58rpx;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 58rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-section-spacing .row{
|
||||||
|
margin-top: 40rpx;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
}
|
||||||
|
.page-section-spacing .row:last-child{
|
||||||
|
margin-top: 30rpx;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
.scroll-view_H .scroll-view-item_H:first-child{
|
||||||
|
margin-left: 0rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
.scroll-view-item_H.active {
|
||||||
|
background: #E2FFFE;
|
||||||
|
color: #3CC7C0;
|
||||||
|
border: 1rpx solid #3CC7C0;
|
||||||
|
}
|
||||||
|
.van-dropdown-menu{
|
||||||
|
box-shadow: none!important;
|
||||||
|
|
||||||
|
}
|
||||||
|
.viewcell{
|
||||||
|
display: flex;
|
||||||
|
overflow: hidden;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding:40rpx 30rpx 30rpx;
|
||||||
|
width:100%;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
border-bottom: 1rpx solid #E7E7E7;
|
||||||
|
}
|
||||||
|
.viewcell:last-child{
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
.viewcell .type{
|
||||||
|
height: 32rpx;
|
||||||
|
margin-bottom: 6rpx;
|
||||||
|
line-height: 32rpx;
|
||||||
|
display: flex;
|
||||||
|
white-space: nowrap;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 18rpx;
|
||||||
|
padding:0rpx 6rpx;
|
||||||
|
background: #ED9C00;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
.viewcell .hospital{
|
||||||
|
margin-top: 12rpx;
|
||||||
|
color: #333333;
|
||||||
|
display: flex;
|
||||||
|
font-size: 30rpx;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
.hospital_name{
|
||||||
|
word-wrap: break-word;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.goodjob{
|
||||||
|
color: #666666;
|
||||||
|
margin-top: 28rpx;
|
||||||
|
line-height: 42rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
word-break: break-all;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2; /* 这里是超出几行省略 */
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.price{
|
||||||
|
font-size: 28rpx;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price text{
|
||||||
|
margin-left: 5rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color:#EF4F20;
|
||||||
|
}
|
||||||
|
.viewcell .right{
|
||||||
|
flex:1;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
.viewcell image{
|
||||||
|
width:80rpx;
|
||||||
|
height:80rpx;
|
||||||
|
border-radius:50%;
|
||||||
|
}
|
||||||
|
.namebox{
|
||||||
|
display: flex;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
color:#333;
|
||||||
|
align-items: flex-end;
|
||||||
|
}
|
||||||
|
.namebox .position{
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: 15rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
.dropOnline.active{
|
||||||
|
color: #3CC7C0;
|
||||||
|
}
|
||||||
|
.diseaseType{
|
||||||
|
height: 40rpx;
|
||||||
|
background: #E2FFFE;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
border: 1rpx solid #3CC7C0;
|
||||||
|
color: #3CC7C0;
|
||||||
|
font-size: 24rpx;
|
||||||
|
display: inline-flex;
|
||||||
|
text-align: center;
|
||||||
|
padding:0 15rpx;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.detail{
|
||||||
|
margin-top: 20rpx;
|
||||||
|
display: flex;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
.detail view{
|
||||||
|
margin-right:40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail view text{
|
||||||
|
font-size: 28rpx;
|
||||||
|
color:#3CC7C0;
|
||||||
|
}
|
||||||
|
.consultbox{
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
margin-top: 28rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.consult{
|
||||||
|
height: 60rpx;
|
||||||
|
background: #3CC7C0;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding:0 20rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
.wraper{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.scrollwraper{
|
||||||
|
flex: 1;
|
||||||
|
overflow-y: scroll;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
.dropdown{
|
||||||
|
width:100%;
|
||||||
|
position: relative;
|
||||||
|
justify-content:center;
|
||||||
|
align-items: center;
|
||||||
|
border-bottom: 1rpx solid #E7E7E7;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.dropdown .bar{
|
||||||
|
|
||||||
|
height:40rpx;
|
||||||
|
width:1rpx;
|
||||||
|
left: 50%;
|
||||||
|
top:50%;
|
||||||
|
transform: translate(-50%,-50%);
|
||||||
|
position: absolute;
|
||||||
|
background:#ccc;
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
.dropbar{
|
||||||
|
background:#ccc;
|
||||||
|
opacity: 0.9;
|
||||||
|
height:40rpx;
|
||||||
|
width:1rpx;
|
||||||
|
position: static;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
.dropOnline{
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width:33.33%;
|
||||||
|
}
|
||||||
|
.viewcell .left{
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.price .expert_prcie{
|
||||||
|
text-decoration: line-through;
|
||||||
|
color:#999;
|
||||||
|
}
|
||||||
|
.price .expert_prcie .priceactive{
|
||||||
|
color:#999;
|
||||||
|
}
|
||||||
|
.pricecell{
|
||||||
|
display: flex;
|
||||||
|
font-size: 30rpx;
|
||||||
|
align-items: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.videocell{
|
||||||
|
position: absolute;
|
||||||
|
right:0rpx;
|
||||||
|
}
|
||||||
|
.price.qs{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.price.gy,.price.hasfree{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.nonekaitong{
|
||||||
|
position: absolute;
|
||||||
|
top:0rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
right:320rpx;
|
||||||
|
}
|
||||||
|
.nonekaitong text{
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
.popwrper{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.slotmsg{
|
||||||
|
height:400rpx;
|
||||||
|
overflow-y: scroll;
|
||||||
|
padding:30rpx;
|
||||||
|
}
|
||||||
|
.row{
|
||||||
|
display: flex;
|
||||||
|
margin-bottom: 6rpx;
|
||||||
|
line-height: 45rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
.rowtitle{
|
||||||
|
margin-bottom:15rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color: #000000;
|
||||||
|
|
||||||
|
}
|
||||||
|
.rowbox{
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.row .tips{
|
||||||
|
margin-top: 10rpx;
|
||||||
|
display: flex;
|
||||||
|
height: 113rpx;
|
||||||
|
padding:0 18rpx;
|
||||||
|
align-items: center;
|
||||||
|
background: #F1F1F1;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
}
|
||||||
|
|||||||
@ -1,4 +1,8 @@
|
|||||||
// healthyService/pages/healthyDetail/healthyDetail.js
|
// healthyService/pages/healthyDetail/healthyDetail.js
|
||||||
|
import {doctorDetail} from "../../../api/consultExpert"
|
||||||
|
import {getItems} from "../../../api/health"
|
||||||
|
import {family,addfamily} from "../../../api/familyDoc";
|
||||||
|
import {getServiceDetail} from "../../../api/health"
|
||||||
import {throttle} from "../../../utils/util"
|
import {throttle} from "../../../utils/util"
|
||||||
const app = getApp()
|
const app = getApp()
|
||||||
Page({
|
Page({
|
||||||
@ -7,34 +11,294 @@ Page({
|
|||||||
* 页面的初始数据
|
* 页面的初始数据
|
||||||
*/
|
*/
|
||||||
data: {
|
data: {
|
||||||
active:0,
|
follow_package_item_id:'',
|
||||||
priceList:[{
|
img_host:app.hostConfig().imghost,
|
||||||
price:'180元/1月',
|
doctor_id:'',
|
||||||
id:1
|
currentData:0,
|
||||||
},{
|
inquiry_mode:9,
|
||||||
price:'500元/3月',
|
inquiry_type:1,
|
||||||
id:2
|
current_price:'',
|
||||||
},{
|
avatar: '',
|
||||||
price:'1000元/6月',
|
user_name: '',
|
||||||
id:3
|
doctor_title: '',
|
||||||
},{
|
doctor_id: '',
|
||||||
price:'2000元/12月',
|
doctor_title_name:'',
|
||||||
id:4
|
user_id:'',
|
||||||
}],
|
is_online:'0',
|
||||||
|
hospital: null,
|
||||||
|
priceList:[],
|
||||||
|
show:false,
|
||||||
|
currentFamilyId:'',
|
||||||
|
realName:'',
|
||||||
|
idCard:'',
|
||||||
|
phoneNumber:'',
|
||||||
|
relationId:'',
|
||||||
|
sex:'',
|
||||||
|
service_type:2,
|
||||||
|
chat_id:'',
|
||||||
img_host:app.hostConfig().imghost
|
img_host:app.hostConfig().imghost
|
||||||
},
|
},
|
||||||
|
inputChange(e) {
|
||||||
|
this.setData({
|
||||||
|
[e.target.dataset.id]: e.detail.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goNext:throttle(function() {
|
||||||
|
this.handleGetServiceDetail();
|
||||||
|
|
||||||
|
}),
|
||||||
|
addFamily() {
|
||||||
|
let {
|
||||||
|
realName,
|
||||||
|
idCard,
|
||||||
|
phoneNumber,
|
||||||
|
relationId,
|
||||||
|
sex
|
||||||
|
} = this.data;
|
||||||
|
addfamily({
|
||||||
|
card_name: realName,
|
||||||
|
type: 1,
|
||||||
|
id_number: idCard,
|
||||||
|
mobile: phoneNumber,
|
||||||
|
is_default: 0,
|
||||||
|
relation: relationId
|
||||||
|
}).then((data) => {
|
||||||
|
this.getFamily();
|
||||||
|
this.setData({
|
||||||
|
currentFamilyId:data.family_id,
|
||||||
|
realName:'',
|
||||||
|
idCard:'',
|
||||||
|
phoneNumber:'',
|
||||||
|
relationId:'',
|
||||||
|
relation:'',
|
||||||
|
showAdd:false
|
||||||
|
})
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
addPatient() {
|
||||||
|
this.setData({
|
||||||
|
showAdd: true,
|
||||||
|
currentFamilyId: '',
|
||||||
|
sex: ''
|
||||||
|
})
|
||||||
|
},
|
||||||
|
selectPatient(e) {
|
||||||
|
let currentFamilyId=e.currentTarget.dataset.familyid;
|
||||||
|
let sex=e.currentTarget.dataset.sex;
|
||||||
|
let name=e.currentTarget.dataset.name;
|
||||||
|
let age=e.currentTarget.dataset.age;
|
||||||
|
this.setData({
|
||||||
|
currentFamilyId:currentFamilyId,
|
||||||
|
sex:sex
|
||||||
|
})
|
||||||
|
},
|
||||||
|
transforpage(arr) {
|
||||||
|
const pages = []
|
||||||
|
let newArr = arr.concat([{
|
||||||
|
type: "add"
|
||||||
|
}])
|
||||||
|
newArr.forEach((item, index) => {
|
||||||
|
const page = Math.floor(index / 2)
|
||||||
|
if (!pages[page]) {
|
||||||
|
pages[page] = []
|
||||||
|
}
|
||||||
|
pages[page].push(item)
|
||||||
|
});
|
||||||
|
return pages
|
||||||
|
},
|
||||||
|
confirmNext() {
|
||||||
|
if (!/^[\u4e00-\u9fa5]+(·[\u4e00-\u9fa5]+)*$/.test(this.data.realName)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `姓名要求在2-10个字符`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请输入有效的身份证号`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请输入有效的手机号码!`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getFamily() {
|
||||||
|
family().then((data) => {
|
||||||
|
this.setData({
|
||||||
|
family: this.transforpage(data)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goSick:throttle(function() {
|
||||||
|
if (!/^([\u4e00-\u9fa5\·]{2,10})$/.test(this.data.realName)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `姓名要求在2-10个汉字`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if (!/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(this.data.idCard)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请输入有效的身份证号`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if (this.data.phoneNumber) {
|
||||||
|
if (!/^1[3456789]\d{9}$/.test(this.data.phoneNumber)) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `请输入有效的手机号码!`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let idInfo = this.getIdInfo(this.data.idCard);
|
||||||
|
if (idInfo.age < 6) {
|
||||||
|
wx.showToast({
|
||||||
|
title: `六岁以下儿童不支持线上问诊`,
|
||||||
|
icon: 'none',
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
this.setData({
|
||||||
|
sex:idInfo.sex
|
||||||
|
})
|
||||||
|
this.addFamily()
|
||||||
|
|
||||||
|
}),
|
||||||
|
//获取身份证号信息
|
||||||
|
getIdInfo(IdCard) {
|
||||||
|
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
|
||||||
|
if (reg.test(IdCard)) {
|
||||||
|
let sex
|
||||||
|
if (parseInt(IdCard.substr(16, 1)) % 2 === 1) {
|
||||||
|
sex = '1'
|
||||||
|
} else {
|
||||||
|
sex = '2'
|
||||||
|
}
|
||||||
|
var ageDate = new Date()
|
||||||
|
var month = ageDate.getMonth() + 1
|
||||||
|
var day = ageDate.getDate()
|
||||||
|
var age = ageDate.getFullYear() - IdCard.substring(6, 10) - 1
|
||||||
|
if (IdCard.substring(10, 12) < month || (IdCard.substring(10, 12) === month && IdCard.substring(12, 14) <= day)) {
|
||||||
|
age++
|
||||||
|
}
|
||||||
|
if (age <= 0) {
|
||||||
|
age = 1
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
sex,
|
||||||
|
age
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onClose() {
|
||||||
|
this.setData({
|
||||||
|
show: false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
onCloseAdd() {
|
||||||
|
this.setData({
|
||||||
|
showAdd: false
|
||||||
|
});
|
||||||
|
},
|
||||||
|
hanldeGetItems(id){
|
||||||
|
getItems(id).then(res=>{
|
||||||
|
|
||||||
|
let arr=res.map((item,index)=>{
|
||||||
|
return {
|
||||||
|
price:item.service_price+'元/'+ Number(item.service_period)/30+'月',
|
||||||
|
follow_package_item_id:item.follow_package_item_id,
|
||||||
|
service_price:item.service_price
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.setData({
|
||||||
|
priceList:arr,
|
||||||
|
current_price:res[0].service_price,
|
||||||
|
follow_package_item_id:res[0].follow_package_item_id
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
getDeatil(id) {
|
||||||
|
doctorDetail(id).then((res) => {
|
||||||
|
for (const key in this.data) {
|
||||||
|
if (res[key]) {
|
||||||
|
this.setData({
|
||||||
|
[key]: res[key]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.setData({
|
||||||
|
chat_id:res.user_id
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleGetServiceDetail(){
|
||||||
|
let {doctor_id,currentFamilyId,service_type,follow_package_item_id,chat_id,sex,inquiry_mode,inquiry_type}=this.data;
|
||||||
|
getServiceDetail({
|
||||||
|
doctor_id,
|
||||||
|
family_id:currentFamilyId,
|
||||||
|
service_type,
|
||||||
|
follow_package_item_id
|
||||||
|
|
||||||
|
}).then((res)=>{
|
||||||
|
if(res.status==1){
|
||||||
|
app.method.navigateTo({
|
||||||
|
url:'/healthyService/pages/writeSick/writeSick?doctor_id='+doctor_id+"&family_id="+currentFamilyId+"&chat_id="+chat_id+"&inquiry_type="+inquiry_type+"&sex="+sex+"&inquiry_mode="+inquiry_mode+"&package_id="+follow_package_item_id
|
||||||
|
})
|
||||||
|
}else if(res.status==2){
|
||||||
|
|
||||||
|
}else if(res.status==3){
|
||||||
|
app.method.navigateTo({
|
||||||
|
url:'/patient/pages/expertDetail/expertDetail?doctor_id='+doctor_id
|
||||||
|
})
|
||||||
|
|
||||||
|
}else if(res.status==4){
|
||||||
|
|
||||||
|
}else if(res.status==5){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showPatient(){
|
||||||
|
this.setData({
|
||||||
|
show:true
|
||||||
|
})
|
||||||
|
},
|
||||||
choosePrice(e){
|
choosePrice(e){
|
||||||
|
|
||||||
let {id}=e.currentTarget.dataset;
|
let {id,price}=e.currentTarget.dataset;
|
||||||
|
console.log(price);
|
||||||
this.setData({
|
this.setData({
|
||||||
active:id
|
follow_package_item_id:id,
|
||||||
|
current_price:price
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* 生命周期函数--监听页面加载
|
* 生命周期函数--监听页面加载
|
||||||
*/
|
*/
|
||||||
onLoad(options) {
|
onLoad(options) {
|
||||||
|
this.setData({
|
||||||
|
doctor_id:options.doctor_id
|
||||||
|
})
|
||||||
|
this.getDeatil(options.doctor_id);
|
||||||
|
this.hanldeGetItems(options.doctor_id);
|
||||||
|
this.getFamily();
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
{
|
{
|
||||||
"usingComponents": {
|
"usingComponents": {
|
||||||
"nav":"../../../components/nav/nav"
|
"nav":"../../../components/nav/nav",
|
||||||
|
"van-popup": "@vant/weapp/popup/index",
|
||||||
|
"van-picker": "@vant/weapp/picker/index"
|
||||||
},
|
},
|
||||||
"navigationStyle":"custom"
|
"navigationStyle":"custom"
|
||||||
}
|
}
|
||||||
@ -1,11 +1,30 @@
|
|||||||
<!--healthyService/pages/healthyDetail/healthyDetail.wxml-->
|
<!--healthyService/pages/healthyDetail/healthyDetail.wxml-->
|
||||||
|
<wxs src="../../../filters/filter.wxs" module="moduleFilter"></wxs>
|
||||||
<nav navName="随访包服务详情"></nav>
|
<nav navName="随访包服务详情"></nav>
|
||||||
<view class="page">
|
<view class="page">
|
||||||
<image src="{{img_host+'/mybg.png'}}" mode="widthFix" class="dcimg" lazy-load/>
|
<image src="{{img_host+'/mybg.png'}}" mode="widthFix" class="dcimg" lazy-load/>
|
||||||
|
<view class="viewcell" >
|
||||||
|
<view class="left">
|
||||||
|
<image src="{{avatar}}" wx:if="{{avatar}}" mode="aspectFill" class="headimg"></image>
|
||||||
|
<image src="{{img_host+'/doctor_avatar.png'}}" class="headimg" wx:else></image>
|
||||||
|
<view class="onlinebox" wx:if="{{user.is_online==1}}">
|
||||||
|
<image src="{{img_host+'/online.gif'}}" mode="" class="icon"/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right">
|
||||||
|
<view class="namebox">
|
||||||
|
<view class="name">{{user_name}}</view>
|
||||||
|
<view class="type" wx:if="{{hospital.hospital_level_name != '未知'&& hospital.hospital_level_name}}">{{hospital.hospital_level_name}}</view>
|
||||||
|
<view class="type" wx:if="{{multi_point_status == 1 && multi_point_enable==1}}">可处方</view>
|
||||||
|
</view>
|
||||||
|
<view class="hospital"><text class="hospital_name" wx:if="{{doctor_title_name}}">{{doctor_title_name}}</text> <text wx:if="{{item.department_custom_name}}">{{item.department_custom_name}}</text></view>
|
||||||
|
<view class="hospital"><text class="hospital_name" >{{hospital.hospital_name}}</text></view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
<view class="servicebox">
|
<view class="servicebox">
|
||||||
<view class="ser_title">请选择服务</view>
|
<view class="ser_title">请选择服务</view>
|
||||||
<view class="row">
|
<view class="row">
|
||||||
<view class="moneyType {{active==item.id?'on':''}}" wx:for="{{ priceList}}" wx:key="id" bind:tap="choosePrice" data-id="{{item.id}}">{{item.price}}</view>
|
<view class="moneyType {{follow_package_item_id==item.follow_package_item_id?'on':''}}" wx:for="{{ priceList}}" wx:key="follow_package_item_id" bind:tap="choosePrice" data-id="{{item.follow_package_item_id}}" data-price="{{item.service_price}}">{{item.price}}</view>
|
||||||
<!-- <view class="moneyType">500元/3月</view>
|
<!-- <view class="moneyType">500元/3月</view>
|
||||||
<view class="moneyType">1000元/6月</view>
|
<view class="moneyType">1000元/6月</view>
|
||||||
<view class="moneyType">2000元/12月</view> -->
|
<view class="moneyType">2000元/12月</view> -->
|
||||||
@ -65,6 +84,76 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="buttonbox">
|
<view class="buttonbox">
|
||||||
<view class="btn">立即购买:¥XX.XX</view>
|
<view class="btn" bind:tap="showPatient">立即购买:¥{{current_price}}</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<van-popup show="{{ show }}" bind:close="onClose" closeable
|
||||||
|
position="bottom" round
|
||||||
|
custom-style="min-height: 60%">
|
||||||
|
<view class="titlepop">选择患者</view>
|
||||||
|
<view class="personbox">
|
||||||
|
<view class="row" wx:for-item="itemName" wx:for="{{family}}" wx:key="*this">
|
||||||
|
<view class="cell" wx:for-item="item" wx:for="{{itemName}}" wx:key="family_id">
|
||||||
|
<view class="cellinner" wx:if="{{!item.type}}" bindtap="selectPatient" data-familyId="{{item.family_id}}" data-sex="{{item.sex}}">
|
||||||
|
<view class="person">
|
||||||
|
<view class="name">{{item.card_name}}</view>
|
||||||
|
<view class="tag" wx:if="{{item.relation==1}}">本人</view>
|
||||||
|
<view class="tag" wx:elif="{{item.relation==2}}">父母</view>
|
||||||
|
<view class="tag" wx:elif="{{item.relation==3}}">爱人</view>
|
||||||
|
<view class="tag" wx:elif="{{item.relation==4}}">子女</view>
|
||||||
|
<view class="tag" wx:elif="{{item.relation==5}}">亲戚</view>
|
||||||
|
<view class="tag" wx:elif="{{item.relation==6}}">其他</view>
|
||||||
|
</view>
|
||||||
|
<view class="desc">
|
||||||
|
<view class="sex" wx:if="{{item.sex===0}}">性别未知</view>
|
||||||
|
<view class="sex" wx:elif="{{item.sex==1}}">男</view>
|
||||||
|
<view class="sex" wx:else>女</view>
|
||||||
|
<view class="age">{{item.age}}岁</view>
|
||||||
|
</view>
|
||||||
|
<image src="{{img_host+'/gou.png'}}" class="gou" wx:if="{{item.family_id==currentFamilyId}}"></image>
|
||||||
|
</view>
|
||||||
|
<view class="celladd" bindtap="addPatient" wx:elif="{{item.type}}">
|
||||||
|
+新建患者
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="btnbox">
|
||||||
|
<button class="btn" plain="true" disabled="{{currentFamilyId?false:true}}" bindtap="goNext">下一步</button>
|
||||||
|
</view>
|
||||||
|
</van-popup>
|
||||||
|
<van-popup show="{{showAdd}}" round closeable z-index="999" position="bottom" custom-style="height:{{height}}rpx" bind:close="onCloseAdd">
|
||||||
|
<view class="infobox">
|
||||||
|
<view class="title">新建患者</view>
|
||||||
|
<view class="info">
|
||||||
|
<view class="name">真实姓名<text>*</text></view>
|
||||||
|
<input value="{{realName}}" type="text" bindinput="inputChange" placeholder="请输入真实姓名" data-id="realName"/>
|
||||||
|
</view>
|
||||||
|
<view class="info">
|
||||||
|
<view class="name">身份证号<text>*</text></view>
|
||||||
|
<input value="{{idCard}}" type="idcard" bindinput="inputChange" placeholder="请输入真实身份证号" data-id="idCard"/>
|
||||||
|
</view>
|
||||||
|
<view class="info">
|
||||||
|
<view class="name">联系电话</view>
|
||||||
|
<input value="{{phoneNumber}}" type="number" bindblur="onblur" bindfocus="onfocus" cursor-spacing="100" bindinput="inputChange" bindinput="inputChange" placeholder="请输入联系电话" data-id="phoneNumber"/>
|
||||||
|
</view>
|
||||||
|
<view class="info" bindtap="openPicker">
|
||||||
|
<view class="name">患者关系</view>
|
||||||
|
<input type="text" value="{{relation}}" placeholder="请选择与患者的关系" disabled="true" />
|
||||||
|
</view>
|
||||||
|
<view class="tip">
|
||||||
|
<view class="warntitle">温馨提示:</view>
|
||||||
|
<view class="warn">
|
||||||
|
<view>1、根据国家卫健委要求,就医实行实名制,请如实填写患者信息。</view>
|
||||||
|
<view>2、信息受隐私保护,仅接诊医生可见。
|
||||||
|
</view>
|
||||||
|
<view>3、6岁以下儿童不支持线上问诊,请到线下就诊。
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="next" bindtap="goSick">
|
||||||
|
确定
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</van-popup>
|
||||||
@ -2,14 +2,25 @@ page{
|
|||||||
height:100vh;
|
height:100vh;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* healthyService/pages/healthyDetail/healthyDetail.wxss */
|
/* healthyService/pages/healthyDetail/healthyDetail.wxss */
|
||||||
.page{
|
.page{
|
||||||
width:100%;
|
width:100%;
|
||||||
|
background: #F2F2F2;
|
||||||
height:calc(100% - 172rpx);
|
height:calc(100% - 172rpx);
|
||||||
margin-top: 172rpx;
|
margin-top: 172rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.viewcell{
|
||||||
|
display: flex;
|
||||||
|
background-color: #fff;
|
||||||
|
margin:30rpx;
|
||||||
|
padding:20rpx;
|
||||||
|
box-shadow: 0rpx 8rpx 20rpx 2rpx rgba(0,0,0,0.04);
|
||||||
|
border-radius: 10rpx;
|
||||||
|
|
||||||
}
|
}
|
||||||
.dcimg{
|
.dcimg{
|
||||||
width:100%;
|
width:100%;
|
||||||
@ -123,3 +134,297 @@ border-radius: 10rpx;
|
|||||||
color:#fff;
|
color:#fff;
|
||||||
border: 1rpx solid #3CC7C0;
|
border: 1rpx solid #3CC7C0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.viewcell .type{
|
||||||
|
height: 32rpx;
|
||||||
|
margin-bottom: 6rpx;
|
||||||
|
line-height: 32rpx;
|
||||||
|
display: flex;
|
||||||
|
white-space: nowrap;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 18rpx;
|
||||||
|
padding:0rpx 6rpx;
|
||||||
|
background: #ED9C00;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
.viewcellbox .hospital{
|
||||||
|
margin-top: 12rpx;
|
||||||
|
color: #333333;
|
||||||
|
display: flex;
|
||||||
|
font-size: 30rpx;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
.hospital_name{
|
||||||
|
font-size: 28rpx;
|
||||||
|
word-wrap: break-word;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
color:#333;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.goodjob{
|
||||||
|
color: #666666;
|
||||||
|
margin-top: 28rpx;
|
||||||
|
line-height: 42rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
word-break: break-all;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2; /* 这里是超出几行省略 */
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.price{
|
||||||
|
font-size: 28rpx;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price text{
|
||||||
|
margin-left: 5rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color:#EF4F20;
|
||||||
|
}
|
||||||
|
.viewcell .right{
|
||||||
|
flex:1;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
.viewcell image{
|
||||||
|
width:120rpx;
|
||||||
|
height:120rpx;
|
||||||
|
border-radius:50%;
|
||||||
|
}
|
||||||
|
.namebox{
|
||||||
|
display: flex;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
color:#333;
|
||||||
|
align-items: flex-end;
|
||||||
|
}
|
||||||
|
.namebox .position{
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: 15rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
.headimg{
|
||||||
|
width:120rpx;
|
||||||
|
height:120rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.personbox {
|
||||||
|
border-radius: 10rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
padding: 40rpx 20rpx 144rpx;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .row {
|
||||||
|
margin-top: 30rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .row:first-child {
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .row .cell {
|
||||||
|
position: relative;
|
||||||
|
width: 47%;
|
||||||
|
height: 120rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
margin-left: 30rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
border: 1px solid #CCCCCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .row .cell:first-child {
|
||||||
|
margin-left: 0rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .person {
|
||||||
|
display: flex;
|
||||||
|
margin: 0 25rpx;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .tag {
|
||||||
|
margin-left: 32rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
line-height: 24rpx;
|
||||||
|
justify-content: center;
|
||||||
|
color: #666666;
|
||||||
|
width: 80rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
transform: rotateZ(360deg);
|
||||||
|
border: 1rpx solid #979797;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .desc {
|
||||||
|
display: flex;
|
||||||
|
margin: 0 25rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666;
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .name {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
max-width: 200rpx;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
font-size: 34rpx;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .age {
|
||||||
|
|
||||||
|
margin-left: 12rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .cell .gou {
|
||||||
|
position: absolute;
|
||||||
|
bottom: -1rpx;
|
||||||
|
right: 0rpx;
|
||||||
|
width: 66rpx;
|
||||||
|
height: 53.7rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.personbox .add {
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 34rpx;
|
||||||
|
color: #333;
|
||||||
|
}
|
||||||
|
.own .add.disabled{
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.titlepop{
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #333333;
|
||||||
|
padding:40rpx 0;
|
||||||
|
text-align: center;
|
||||||
|
width:100%;
|
||||||
|
border-bottom:1rpx solid #E7E7E7;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-icon-cross {
|
||||||
|
color: #333;
|
||||||
|
font-size: 40rpx !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.infobox {
|
||||||
|
margin-top: 40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
border-bottom: 1rpx solid #E7E7E7;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
height: 112rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
.infobox .title {
|
||||||
|
border-bottom: 1rpx solid #E7E7E7;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 34rpx;
|
||||||
|
padding-bottom: 35rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info .name {
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 180rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 52rpx;
|
||||||
|
color: #333333;
|
||||||
|
font-size: 34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info text {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
color:#E34D59;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.info input {
|
||||||
|
margin-left: 15rpx;
|
||||||
|
margin-right: 52rpx;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
.input-placeholder {
|
||||||
|
color: #999999;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
.tip{
|
||||||
|
padding:30rpx 52rpx 20rpx;
|
||||||
|
}
|
||||||
|
.warntitle{
|
||||||
|
color: #E34D59;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
.warn{
|
||||||
|
margin-top: 20rpx;
|
||||||
|
font-size: 24rpx;
|
||||||
|
line-height: 36rpx;
|
||||||
|
color: #666666;
|
||||||
|
}
|
||||||
|
.next{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 94rpx;
|
||||||
|
font-size: 36rpx;
|
||||||
|
left: 30rpx;
|
||||||
|
right: 30rpx;
|
||||||
|
margin:0 52rpx;
|
||||||
|
border-radius: 47rpx;
|
||||||
|
color: #fff;
|
||||||
|
margin-bottom: 40rpx;
|
||||||
|
background: #3CC7C0;
|
||||||
|
}
|
||||||
|
.celladd{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
height: 120rpx;
|
||||||
|
}
|
||||||
|
.btnbox{
|
||||||
|
position: fixed;
|
||||||
|
width:100%;
|
||||||
|
bottom:0rpx;
|
||||||
|
height: 134rpx;
|
||||||
|
background:#fff;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
.btnbox .btn{
|
||||||
|
border-radius: 47rpx;
|
||||||
|
border:none;
|
||||||
|
background: #3CC7C0!important;
|
||||||
|
margin:0 32rpx;
|
||||||
|
height: 94rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #FFFFFF!important;
|
||||||
|
}
|
||||||
|
.btnbox .btn[disabled]{
|
||||||
|
color: #000000!important;
|
||||||
|
background:rgba(0,0,0,0.1)!important;
|
||||||
|
}
|
||||||
|
|
||||||
159
healthyService/pages/visitList/visitList.js
Normal file
159
healthyService/pages/visitList/visitList.js
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
// healthyService/pages/healthyIntro/healthyIntro.js
|
||||||
|
import {throttle} from "../../../utils/util"
|
||||||
|
import {doctorList} from "../../../api/consultExpert"
|
||||||
|
const app = getApp()
|
||||||
|
Page({
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面的初始数据
|
||||||
|
*/
|
||||||
|
data: {
|
||||||
|
blockHeight:"150rpx",
|
||||||
|
type:'',
|
||||||
|
doctorList:[],
|
||||||
|
page:1,
|
||||||
|
pageNumber:10,
|
||||||
|
isTriggered:false,
|
||||||
|
show:false,
|
||||||
|
expertise_id:'',
|
||||||
|
province_id:'',
|
||||||
|
city_id:'',
|
||||||
|
keyword:'',
|
||||||
|
lock:false,
|
||||||
|
is_online:0,
|
||||||
|
sort_order:1,
|
||||||
|
inquiry_type:'1',
|
||||||
|
inquiry_mode:'9',
|
||||||
|
},
|
||||||
|
handleRefresher(){
|
||||||
|
|
||||||
|
this.setData({
|
||||||
|
lock:false,
|
||||||
|
page:1,
|
||||||
|
doctorList:[]
|
||||||
|
});
|
||||||
|
this.getDoctorList()
|
||||||
|
},
|
||||||
|
goExpertDetail:throttle(function(e){
|
||||||
|
let {doctorid}=e.currentTarget.dataset;
|
||||||
|
app.method.navigateTo({
|
||||||
|
url:'/healthyService/pages/visitDetail/visitDetail?doctor_id='+doctorid
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
getDoctorList(){
|
||||||
|
let {expertise_id,province_id, city_id,sort_order,keyword,page,pageNumber,is_online,inquiry_type,inquiry_mode}=this.data;
|
||||||
|
doctorList({
|
||||||
|
expertise_id:expertise_id,
|
||||||
|
province_id:province_id,
|
||||||
|
city_id:city_id,
|
||||||
|
sort_order: sort_order,
|
||||||
|
is_first_online:is_online,
|
||||||
|
keyword:keyword,
|
||||||
|
inquiry_type,
|
||||||
|
inquiry_mode,
|
||||||
|
page:page,
|
||||||
|
per_page:pageNumber
|
||||||
|
}).then((res)=>{
|
||||||
|
let {doctorList}=this.data;
|
||||||
|
if(res.data.length==0){
|
||||||
|
this.setData({
|
||||||
|
lock:true,
|
||||||
|
isTriggered:false
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}else{
|
||||||
|
this.setData({
|
||||||
|
isTriggered:false,
|
||||||
|
doctorList:doctorList.concat(res.data)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onfresh(){
|
||||||
|
this.setData({
|
||||||
|
page:1,
|
||||||
|
doctorList:[],
|
||||||
|
lock:false
|
||||||
|
})
|
||||||
|
this.getDoctorList();
|
||||||
|
},
|
||||||
|
lower(e) {
|
||||||
|
let {lock}=this.data;
|
||||||
|
let addPage=this.data.page+1;
|
||||||
|
if(!lock){
|
||||||
|
this.setData({
|
||||||
|
page:addPage
|
||||||
|
});
|
||||||
|
this.getDoctorList();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
goDetail:throttle(function(){
|
||||||
|
let url=this.data.type?'/healthyService/pages/visitDetail/visitDetail':'/healthyService/pages/healthyDetail/healthyDetail'
|
||||||
|
app.method.navigateTo({
|
||||||
|
url: url
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面加载
|
||||||
|
*/
|
||||||
|
onLoad(options) {
|
||||||
|
if(options.type){
|
||||||
|
this.setData({
|
||||||
|
type:'visit'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.getDoctorList();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面初次渲染完成
|
||||||
|
*/
|
||||||
|
onReady() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面显示
|
||||||
|
*/
|
||||||
|
onShow() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面隐藏
|
||||||
|
*/
|
||||||
|
onHide() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面卸载
|
||||||
|
*/
|
||||||
|
onUnload() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面相关事件处理函数--监听用户下拉动作
|
||||||
|
*/
|
||||||
|
onPullDownRefresh() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面上拉触底事件的处理函数
|
||||||
|
*/
|
||||||
|
onReachBottom() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户点击右上角分享
|
||||||
|
*/
|
||||||
|
onShareAppMessage() {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
7
healthyService/pages/visitList/visitList.json
Normal file
7
healthyService/pages/visitList/visitList.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"usingComponents": {
|
||||||
|
"nav":"../../../components/nav/nav",
|
||||||
|
"van-popup": "@vant/weapp/popup/index"
|
||||||
|
},
|
||||||
|
"navigationStyle":"custom"
|
||||||
|
}
|
||||||
47
healthyService/pages/visitList/visitList.wxml
Normal file
47
healthyService/pages/visitList/visitList.wxml
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<nav navName="随访包服务医生"></nav>
|
||||||
|
<wxs src="../../../filters/filter.wxs" module="moduleFilter"></wxs>
|
||||||
|
|
||||||
|
<view class="page">
|
||||||
|
<view class="scrollwraper">
|
||||||
|
<scroll-view scroll-y style="width: 100%;height:100%" bindrefresherrefresh="handleRefresher" refresher-triggered="{{isTriggered}}" refresher-threshold="100" refresher-enabled="true" bindscrolltolower="lower" id="scroller" bounces="false">
|
||||||
|
<view wx:if="{{doctorList.length>0}}">
|
||||||
|
<view class="viewcell" bindtap="goExpertDetail" wx:for="{{doctorList}}" wx:key="doctor_id" data-doctorid="{{item.doctor_id}}" >
|
||||||
|
<view class="left">
|
||||||
|
|
||||||
|
<image src="{{item.avatar}}" wx:if="{{item.avatar}}" mode="aspectFill"></image>
|
||||||
|
<image src="{{img_host+'/doctor_avatar.png'}}" wx:else></image>
|
||||||
|
<view class="onlinebox" wx:if="{{item.user.is_online==1}}">
|
||||||
|
<image src="{{img_host+'/online.gif'}}" mode="" class="icon"/>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="right">
|
||||||
|
<view class="namebox">
|
||||||
|
<view class="name">{{item.user_name}}</view>
|
||||||
|
<!-- <view class="position" >{{item.doctor_title_name}}</view> -->
|
||||||
|
<view class="type" wx:if="{{item.hospital.hospital_level_name != '未知'&& item.hospital.hospital_level_name}}">{{item.hospital.hospital_level_name}}</view>
|
||||||
|
<view class="type" wx:if="{{item.multi_point_status == 1 && item.multi_point_enable==1}}">可处方</view>
|
||||||
|
</view>
|
||||||
|
<view class="hospital"><text class="hospital_name" wx:if="{{item.doctor_title_name}}">{{item.doctor_title_name}}</text> <text wx:if="{{item.department_custom_name}}">{{item.department_custom_name}}</text></view>
|
||||||
|
<view class="hospital"><text class="hospital_name" >{{item.hospital.hospital_name}}</text></view>
|
||||||
|
<view class="goodjob" wx:if="{{item.be_good_at}}">擅长:{{item.be_good_at}}</view>
|
||||||
|
<view class="diseaseType" wx:for="{{item.doctor_expertise}}" wx:for-item="cell" wx:key="index">{{cell.expertise_name}}</view>
|
||||||
|
<view class="detail" wx:if="{{item.is_display_score}}">
|
||||||
|
<view>评分: <text wx:if="{{item.praise_rate>0}}">{{item.praise_rate}} </text><text wx:else>暂无</text></view>
|
||||||
|
<view>问诊量: <text wx:if="{{item.served_patients_num>0}}">{{item.served_patients_num}}</text><text wx:else>暂无</text></view>
|
||||||
|
<view>平均回复: <text wx:if="{{item.avg_response_time>0}}"> {{moduleFilter.formatReply(item.avg_response_time)}}h</text><text wx:else>暂无</text></view>
|
||||||
|
</view>
|
||||||
|
<view class="consultbox">
|
||||||
|
<view class="price" wx:for="{{item.doctor_inquiry_config}}" wx:for-item="itemName" wx:if="{{itemName.inquiry_type==1 && itemName.inquiry_mode==9 && itemName.inquiry_price}}">
|
||||||
|
<view class="pricecell">随访包:<text>¥{{itemName.inquiry_price}}/月起</text>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="nonedata" wx:else>暂无数据!</view>
|
||||||
|
</scroll-view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
367
healthyService/pages/visitList/visitList.wxss
Normal file
367
healthyService/pages/visitList/visitList.wxss
Normal file
@ -0,0 +1,367 @@
|
|||||||
|
/* healthyService/pages/healthyIntro/healthyIntro.wxss */
|
||||||
|
.page{
|
||||||
|
|
||||||
|
margin-top: 172rpx;
|
||||||
|
|
||||||
|
height: calc(100vh - 172rpx);
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.imgbox{
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
page{
|
||||||
|
height: 100vh;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.btn{
|
||||||
|
position: absolute;
|
||||||
|
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -232rpx;
|
||||||
|
width:464rpx;
|
||||||
|
height: 86rpx;
|
||||||
|
bottom:130rpx;
|
||||||
|
}
|
||||||
|
.bg{
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
.top{
|
||||||
|
position: absolute;
|
||||||
|
top:10rpx;
|
||||||
|
width:100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
padding:20rpx 0;
|
||||||
|
}
|
||||||
|
.top .up{
|
||||||
|
width:40rpx;
|
||||||
|
height:22rpx;
|
||||||
|
transition: all 0.5s;
|
||||||
|
}
|
||||||
|
.top .up.active{
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
|
.popname{
|
||||||
|
margin-top: 60rpx;
|
||||||
|
padding:20rpx 52rpx 30rpx;
|
||||||
|
font-size: 34rpx;
|
||||||
|
color:#333;
|
||||||
|
border-bottom: 1px solid #E7E7E7;
|
||||||
|
}
|
||||||
|
.popwrper{
|
||||||
|
top:0rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
position: relative;
|
||||||
|
transition: height 0.5s;
|
||||||
|
width:100%;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
height:100%;
|
||||||
|
bottom:0px;
|
||||||
|
}
|
||||||
|
.wraper{
|
||||||
|
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.containexpert{
|
||||||
|
margin-top: 172rpx;
|
||||||
|
padding: 0 30rpx 0rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
transform: all 0.3s ease;
|
||||||
|
}
|
||||||
|
.droptitle,.van-ellipsis{
|
||||||
|
font-size: 30rpx!important;
|
||||||
|
}
|
||||||
|
.namebox .name{
|
||||||
|
max-width:400rpx;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
.droptitle.active{
|
||||||
|
color:#3CC7C0;
|
||||||
|
}
|
||||||
|
.searchbox {
|
||||||
|
width: 100%;
|
||||||
|
height: 72rpx;
|
||||||
|
display: flex;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
align-items: center;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
background: #FBFBFB;
|
||||||
|
border-radius: 36px;
|
||||||
|
border: 1rpx solid #CCCCCC;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchbox input {
|
||||||
|
margin-left: 30rpx;
|
||||||
|
flex: 1;
|
||||||
|
font-size: 32rpx;
|
||||||
|
height: 80rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.searchbox image {
|
||||||
|
width: 30rpx;
|
||||||
|
height: 30rpx;
|
||||||
|
margin-right: 28rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-view_H {
|
||||||
|
height:195rpx;
|
||||||
|
white-space: nowrap;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
.scroll-view-item_H{
|
||||||
|
/* width: 154rpx; */
|
||||||
|
padding:0 15rpx;
|
||||||
|
background: #F4F4F4;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #666666;
|
||||||
|
margin-left: 36rpx;
|
||||||
|
border: 1rpx solid #F4F4F4;
|
||||||
|
height: 58rpx;
|
||||||
|
display: inline-block;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 58rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-section-spacing .row{
|
||||||
|
margin-top: 40rpx;
|
||||||
|
margin-bottom: 30rpx;
|
||||||
|
}
|
||||||
|
.page-section-spacing .row:last-child{
|
||||||
|
margin-top: 30rpx;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
}
|
||||||
|
.scroll-view_H .scroll-view-item_H:first-child{
|
||||||
|
margin-left: 0rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
.scroll-view-item_H.active {
|
||||||
|
background: #E2FFFE;
|
||||||
|
color: #3CC7C0;
|
||||||
|
border: 1rpx solid #3CC7C0;
|
||||||
|
}
|
||||||
|
.van-dropdown-menu{
|
||||||
|
box-shadow: none!important;
|
||||||
|
|
||||||
|
}
|
||||||
|
.viewcell{
|
||||||
|
display: flex;
|
||||||
|
overflow: hidden;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding:40rpx 30rpx 30rpx;
|
||||||
|
width:100%;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
border-bottom: 1rpx solid #E7E7E7;
|
||||||
|
}
|
||||||
|
.viewcell:last-child{
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
.viewcell .type{
|
||||||
|
height: 32rpx;
|
||||||
|
margin-bottom: 6rpx;
|
||||||
|
line-height: 32rpx;
|
||||||
|
display: flex;
|
||||||
|
white-space: nowrap;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 18rpx;
|
||||||
|
padding:0rpx 6rpx;
|
||||||
|
background: #ED9C00;
|
||||||
|
border-radius: 4rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
.viewcell .hospital{
|
||||||
|
margin-top: 12rpx;
|
||||||
|
color: #333333;
|
||||||
|
display: flex;
|
||||||
|
font-size: 30rpx;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
.hospital_name{
|
||||||
|
word-wrap: break-word;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
.goodjob{
|
||||||
|
color: #666666;
|
||||||
|
margin-top: 28rpx;
|
||||||
|
line-height: 42rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
word-break: break-all;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 2; /* 这里是超出几行省略 */
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
.price{
|
||||||
|
font-size: 28rpx;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.price text{
|
||||||
|
margin-left: 5rpx;
|
||||||
|
font-size: 32rpx;
|
||||||
|
color:#EF4F20;
|
||||||
|
}
|
||||||
|
.viewcell .right{
|
||||||
|
flex:1;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
}
|
||||||
|
.viewcell image{
|
||||||
|
width:80rpx;
|
||||||
|
height:80rpx;
|
||||||
|
border-radius:50%;
|
||||||
|
}
|
||||||
|
.namebox{
|
||||||
|
display: flex;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 600;
|
||||||
|
color:#333;
|
||||||
|
align-items: flex-end;
|
||||||
|
}
|
||||||
|
.namebox .position{
|
||||||
|
font-weight: normal;
|
||||||
|
margin-left: 15rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
.dropOnline.active{
|
||||||
|
color: #3CC7C0;
|
||||||
|
}
|
||||||
|
.diseaseType{
|
||||||
|
height: 40rpx;
|
||||||
|
background: #E2FFFE;
|
||||||
|
border-radius: 20rpx;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
border: 1rpx solid #3CC7C0;
|
||||||
|
color: #3CC7C0;
|
||||||
|
font-size: 24rpx;
|
||||||
|
display: inline-flex;
|
||||||
|
text-align: center;
|
||||||
|
padding:0 15rpx;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.detail{
|
||||||
|
margin-top: 20rpx;
|
||||||
|
display: flex;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
.detail view{
|
||||||
|
margin-right:40rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail view text{
|
||||||
|
font-size: 28rpx;
|
||||||
|
color:#3CC7C0;
|
||||||
|
}
|
||||||
|
.consultbox{
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
margin-top: 28rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.consult{
|
||||||
|
height: 60rpx;
|
||||||
|
background: #3CC7C0;
|
||||||
|
border-radius: 30rpx;
|
||||||
|
color: #FFFFFF;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding:0 20rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
.wraper{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
.scrollwraper{
|
||||||
|
flex: 1;
|
||||||
|
overflow-y: scroll;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
.dropdown{
|
||||||
|
width:100%;
|
||||||
|
position: relative;
|
||||||
|
justify-content:center;
|
||||||
|
align-items: center;
|
||||||
|
border-bottom: 1rpx solid #E7E7E7;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.dropdown .bar{
|
||||||
|
|
||||||
|
height:40rpx;
|
||||||
|
width:1rpx;
|
||||||
|
left: 50%;
|
||||||
|
top:50%;
|
||||||
|
transform: translate(-50%,-50%);
|
||||||
|
position: absolute;
|
||||||
|
background:#ccc;
|
||||||
|
opacity: 0.9;
|
||||||
|
}
|
||||||
|
.dropbar{
|
||||||
|
background:#ccc;
|
||||||
|
opacity: 0.9;
|
||||||
|
height:40rpx;
|
||||||
|
width:1rpx;
|
||||||
|
position: static;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
}
|
||||||
|
.dropOnline{
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
width:33.33%;
|
||||||
|
}
|
||||||
|
.viewcell .left{
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.price .expert_prcie{
|
||||||
|
text-decoration: line-through;
|
||||||
|
color:#999;
|
||||||
|
}
|
||||||
|
.price .expert_prcie .priceactive{
|
||||||
|
color:#999;
|
||||||
|
}
|
||||||
|
.pricecell{
|
||||||
|
display: flex;
|
||||||
|
font-size: 30rpx;
|
||||||
|
align-items: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
.videocell{
|
||||||
|
position: absolute;
|
||||||
|
right:0rpx;
|
||||||
|
}
|
||||||
|
.price.qs{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.price.gy,.price.hasfree{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.nonekaitong{
|
||||||
|
position: absolute;
|
||||||
|
top:0rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
right:320rpx;
|
||||||
|
}
|
||||||
|
.nonekaitong text{
|
||||||
|
font-size: 30rpx;
|
||||||
|
}
|
||||||
|
.popwrper{
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
901
healthyService/pages/writeSick/writeSick.js
Normal file
901
healthyService/pages/writeSick/writeSick.js
Normal file
@ -0,0 +1,901 @@
|
|||||||
|
// pages/writeSick/writeSick.js
|
||||||
|
const app = getApp()
|
||||||
|
import Dialog from '@vant/weapp/dialog/dialog';
|
||||||
|
import dayjs from '../../../utils/dayjs.min.js'
|
||||||
|
import {
|
||||||
|
createServiceOrder
|
||||||
|
} from "../../../api/health"
|
||||||
|
import {
|
||||||
|
getSign
|
||||||
|
} from "../../../api/common"
|
||||||
|
import {
|
||||||
|
lastSick
|
||||||
|
} from "../../../api/consultExpert"
|
||||||
|
import {
|
||||||
|
throttle
|
||||||
|
} from "../../../utils/util"
|
||||||
|
import {client_type} from "../../../utils/isPc"
|
||||||
|
import {isExist,pathographyDetail} from "../../../api/sickRecord"
|
||||||
|
let urlHost=app.hostConfig().agreehost;
|
||||||
|
console.log(client_type);
|
||||||
|
Page({
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面的初始数据
|
||||||
|
*/
|
||||||
|
data: {
|
||||||
|
prevData: null,
|
||||||
|
pathography_id:'',
|
||||||
|
showdialog: false,
|
||||||
|
showAgreeDialog: false,
|
||||||
|
message: '',
|
||||||
|
order_inquiry_id:'',
|
||||||
|
doctor_id: '',
|
||||||
|
family_id: '',
|
||||||
|
chat_id: '',
|
||||||
|
inquiry_type: 1,
|
||||||
|
inquiry_mode: 1,
|
||||||
|
messageTitle: '',
|
||||||
|
disease_class_name: '',
|
||||||
|
disease_class_id:null,
|
||||||
|
show: false,
|
||||||
|
startIndex: 0,
|
||||||
|
cancelBtn: false,
|
||||||
|
showSick: false,
|
||||||
|
hideSick: false,
|
||||||
|
hideGuomin: false,
|
||||||
|
hidePregnant:false,
|
||||||
|
disease_desc: '',
|
||||||
|
hideFamilysick: false,
|
||||||
|
showBack: false,
|
||||||
|
is_exist:false,
|
||||||
|
columns: [],
|
||||||
|
fileList: [],
|
||||||
|
lockBtn: false,
|
||||||
|
checkSign: false,
|
||||||
|
is_allergy_history:null,
|
||||||
|
is_family_history:null,
|
||||||
|
is_pregnant:null,
|
||||||
|
pregnant: '',
|
||||||
|
checkAgree: false,
|
||||||
|
is_taboo:null,
|
||||||
|
diagnosis_date:null,
|
||||||
|
service_type:2,
|
||||||
|
product: [],
|
||||||
|
follow_package_item_id:'',
|
||||||
|
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static',
|
||||||
|
allergy_history: '',
|
||||||
|
family_history: '',
|
||||||
|
currentDate: new Date().getTime(),
|
||||||
|
minDate: new Date('1900/01/01 00:00:00').getTime(),
|
||||||
|
maxDate: new Date().getTime(),
|
||||||
|
formatter(type, value) {
|
||||||
|
if (type === 'year') {
|
||||||
|
return `${value}年`;
|
||||||
|
}
|
||||||
|
if (type === 'month') {
|
||||||
|
return `${value}月`;
|
||||||
|
}
|
||||||
|
if (type === 'day') {
|
||||||
|
return `${value}日`;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
setInfo(obj){
|
||||||
|
let Info =obj;
|
||||||
|
for (const key in Info) {
|
||||||
|
if (key != "product") {
|
||||||
|
if (Info[key]) {
|
||||||
|
this.setData({
|
||||||
|
[key]: Info[key]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
if (Info.disease_desc) {
|
||||||
|
this.setData({
|
||||||
|
hideSick: true
|
||||||
|
})
|
||||||
|
};
|
||||||
|
if (Info.pregnant) {
|
||||||
|
this.setData({
|
||||||
|
hidePregnant: true
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
if (Info.allergy_history) {
|
||||||
|
this.setData({
|
||||||
|
hideGuomin: true
|
||||||
|
})
|
||||||
|
};
|
||||||
|
if (Info.family_history) {
|
||||||
|
this.setData({
|
||||||
|
hideFamilysick: true
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
if (Info.fileList) {
|
||||||
|
|
||||||
|
this.setData({
|
||||||
|
fileList:Info.fileList,
|
||||||
|
checkSign: false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.setData({
|
||||||
|
checkSign: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getlocalInfo(id){
|
||||||
|
let sickInfo = wx.getStorageSync('sickInfo');
|
||||||
|
if (sickInfo) {
|
||||||
|
var InfoObj = JSON.parse(sickInfo);
|
||||||
|
if (InfoObj instanceof Array) {
|
||||||
|
let obj=null;
|
||||||
|
let isHas= InfoObj.some((item)=>{
|
||||||
|
if(item.family_id==id){
|
||||||
|
obj=item;
|
||||||
|
}
|
||||||
|
return item.family_id==id;
|
||||||
|
})
|
||||||
|
if(isHas){
|
||||||
|
this.setInfo(obj)
|
||||||
|
}else{
|
||||||
|
this.handleOnlineSick(this.data.family_id);
|
||||||
|
}
|
||||||
|
// for (let i = 0; i < InfoObj.length; i++) {
|
||||||
|
// if (InfoObj[i].family_id == id) {
|
||||||
|
// Dialog.confirm({
|
||||||
|
// title: '温馨提示',
|
||||||
|
// message: '是否加载之前保存的病情信息?',
|
||||||
|
// }).then(() => {
|
||||||
|
// this.setInfo(InfoObj[i])
|
||||||
|
// }).catch(() => {
|
||||||
|
|
||||||
|
// });
|
||||||
|
|
||||||
|
// break;
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
this.handleOnlineSick(this.data.family_id);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleSetValue(data){
|
||||||
|
if(data){
|
||||||
|
let obj = {
|
||||||
|
disease_class_name: '',
|
||||||
|
disease_class_id: '',
|
||||||
|
diagnosis_date: '',
|
||||||
|
disease_desc: '',
|
||||||
|
is_allergy_history:null,
|
||||||
|
product: [],
|
||||||
|
is_taboo:null,
|
||||||
|
is_pregnant:null,
|
||||||
|
pregnant: '',
|
||||||
|
is_family_history:null,
|
||||||
|
allergy_history: '',
|
||||||
|
family_history: '',
|
||||||
|
}
|
||||||
|
for (const key in obj) {
|
||||||
|
if (key != "product") {
|
||||||
|
if(key=="is_taboo" && !data[key]){
|
||||||
|
this.setData({
|
||||||
|
[key]: null
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
this.setData({
|
||||||
|
[key]: data[key]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
if (data.disease_desc) {
|
||||||
|
this.setData({
|
||||||
|
hideSick: true
|
||||||
|
})
|
||||||
|
};
|
||||||
|
if (data.pregnant) {
|
||||||
|
this.setData({
|
||||||
|
hidePregnant: true
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
if (data.allergy_history) {
|
||||||
|
this.setData({
|
||||||
|
hideGuomin: true
|
||||||
|
})
|
||||||
|
};
|
||||||
|
if (data.family_history) {
|
||||||
|
this.setData({
|
||||||
|
hideFamilysick: true
|
||||||
|
})
|
||||||
|
};
|
||||||
|
if (data.diagnose_images) {
|
||||||
|
this.setData({
|
||||||
|
fileList: data.diagnose_images,
|
||||||
|
checkSign: false
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.setData({
|
||||||
|
checkSign: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleOnlineSick(id){
|
||||||
|
lastSick(id).then(data => {
|
||||||
|
this.handleSetValue(data);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// handleLastSick(id) {
|
||||||
|
// lastSick(id).then(data => {
|
||||||
|
// if (!data){
|
||||||
|
// this.getlocalInfo(id);
|
||||||
|
// } else {
|
||||||
|
|
||||||
|
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// },
|
||||||
|
|
||||||
|
onConfirm(event) {
|
||||||
|
const {
|
||||||
|
value
|
||||||
|
} = event.detail;
|
||||||
|
this.setData({
|
||||||
|
disease_class_name: `${value.disease_class_name}`,
|
||||||
|
disease_class_id: `${value.disease_class_id}`,
|
||||||
|
showSick: false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
showSick() {
|
||||||
|
app.method.navigateTo({
|
||||||
|
url: '/patient/pages/commonSick/commonSick'
|
||||||
|
})
|
||||||
|
},
|
||||||
|
delImg(event) {
|
||||||
|
let id = event.currentTarget.dataset.id;
|
||||||
|
this.data.fileList.splice(id, 1);
|
||||||
|
this.setData({
|
||||||
|
fileList: this.data.fileList
|
||||||
|
})
|
||||||
|
},
|
||||||
|
previewImage(event) {
|
||||||
|
let id = event.currentTarget.dataset.id;
|
||||||
|
let urls = this.data.fileList;
|
||||||
|
wx.previewImage({
|
||||||
|
current: urls[id], // 当前显示图片的http链接
|
||||||
|
urls: urls // 需要预览的图片http链接列表
|
||||||
|
})
|
||||||
|
},
|
||||||
|
uploadFile(File) {
|
||||||
|
wx.showLoading({
|
||||||
|
title: '图片上传中...',
|
||||||
|
mask: true
|
||||||
|
})
|
||||||
|
let THIS = this;
|
||||||
|
getSign({
|
||||||
|
user_type: 1,
|
||||||
|
scene: 2
|
||||||
|
}).then((resdata) => {
|
||||||
|
let {
|
||||||
|
accessid,
|
||||||
|
dir,
|
||||||
|
policy,
|
||||||
|
signature,
|
||||||
|
host
|
||||||
|
} = resdata;
|
||||||
|
let index = File.lastIndexOf("/");
|
||||||
|
let filename = File.substring(index + 1, File.length);
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
wx.uploadFile({
|
||||||
|
url: host, // 仅为示例,非真实的接口地址
|
||||||
|
filePath: File,
|
||||||
|
name: 'file',
|
||||||
|
formData: {
|
||||||
|
OSSAccessKeyId: accessid,
|
||||||
|
policy,
|
||||||
|
key: dir + filename,
|
||||||
|
signature
|
||||||
|
},
|
||||||
|
success(res) {
|
||||||
|
if (res.statusCode === 204) {
|
||||||
|
let url = host + '/' + dir + filename;
|
||||||
|
THIS.setData({
|
||||||
|
fileList: THIS.data.fileList.concat([url])
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: err => {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
upload() {
|
||||||
|
if(this.data.fileList.length>=9){
|
||||||
|
wx.showToast({
|
||||||
|
title: '复诊凭证最多上传9张',
|
||||||
|
icon:"none"
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
};
|
||||||
|
let THIS = this;
|
||||||
|
wx.chooseMedia({
|
||||||
|
count: 9-this.data.fileList.length,
|
||||||
|
mediaType: ['image'],
|
||||||
|
sourceType: ['album', 'camera'],
|
||||||
|
success(res) {
|
||||||
|
var imgList = res.tempFiles;
|
||||||
|
var promiseFun = [];
|
||||||
|
for (let i = 0; i < imgList.length; i++) {
|
||||||
|
var file = imgList[i].tempFilePath;
|
||||||
|
promiseFun.push(
|
||||||
|
THIS.uploadFile(file)
|
||||||
|
)
|
||||||
|
};
|
||||||
|
Promise.all(promiseFun).then((res) => {
|
||||||
|
wx.showToast({
|
||||||
|
title: '图片上传成功',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
THIS.setData({
|
||||||
|
checkSign: false
|
||||||
|
})
|
||||||
|
wx.hideLoading();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onCancel() {
|
||||||
|
this.setData({
|
||||||
|
showSick: false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
goRecord:throttle(function(){
|
||||||
|
app.method.navigateTo({
|
||||||
|
url:'/patient/pages/sickRecord/sickRecord?family_id='+this.data.family_id
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
handleThrottle: throttle(function () {
|
||||||
|
this.create_Order()
|
||||||
|
}),
|
||||||
|
create_Order() {
|
||||||
|
let {
|
||||||
|
inquiry_type,
|
||||||
|
inquiry_mode,
|
||||||
|
doctor_id,
|
||||||
|
family_id,
|
||||||
|
disease_class_id,
|
||||||
|
diagnosis_date,
|
||||||
|
disease_desc,
|
||||||
|
fileList,
|
||||||
|
is_allergy_history,
|
||||||
|
checkSign,
|
||||||
|
is_pregnant,
|
||||||
|
pregnant,
|
||||||
|
is_family_history,
|
||||||
|
allergy_history,
|
||||||
|
family_history,
|
||||||
|
checkAgree,
|
||||||
|
sex,
|
||||||
|
service_type,
|
||||||
|
follow_package_item_id
|
||||||
|
} = this.data;
|
||||||
|
|
||||||
|
if (!disease_class_id) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '请选择所患疾病',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if (!diagnosis_date) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '请选择确诊日期',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if (!disease_desc) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '请填写病情主诉',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if(disease_desc.length<10){
|
||||||
|
wx.showToast({
|
||||||
|
title: '病情主诉不少于10个字',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (fileList.length == 0 && !checkSign) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '请上传复诊凭证或者勾选凭证遗失或不在身边',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (inquiry_type == 4 && allergy_history) {
|
||||||
|
for (let i = 0; i < product.length; i++) {
|
||||||
|
if (allergy_history.indexOf(product[i].product_name) != -1) {
|
||||||
|
this.setData({
|
||||||
|
showdialog: true,
|
||||||
|
messageTitle: "您的情况不适合线上问诊开方,建议线下就诊"
|
||||||
|
})
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if(is_allergy_history==null){
|
||||||
|
wx.showToast({
|
||||||
|
title: '请选择您是否有过敏史',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if(is_allergy_history==1){
|
||||||
|
if(!allergy_history){
|
||||||
|
wx.showToast({
|
||||||
|
title: '过敏史内容不能为空',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if(is_family_history==null){
|
||||||
|
wx.showToast({
|
||||||
|
title: '请选择您是否有家族病史',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if(is_family_history==1){
|
||||||
|
if(!family_history){
|
||||||
|
wx.showToast({
|
||||||
|
title: '家族病史内容不能为空',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
if(is_pregnant==null && sex==2){
|
||||||
|
wx.showToast({
|
||||||
|
title: '请选择您是否处于备孕、妊娠、哺乳期',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
if (is_pregnant == 1) {
|
||||||
|
wx.showToast({
|
||||||
|
title: '您的情况不适合线上问诊开方,建议线下就诊',
|
||||||
|
icon: "none"
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (!checkAgree) {
|
||||||
|
this.setData({
|
||||||
|
showAgreeDialog: true
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
this.setData({
|
||||||
|
lockBtn: true
|
||||||
|
});
|
||||||
|
createServiceOrder({
|
||||||
|
patient_id: wx.getStorageSync('CLIENT_USER_ID'),
|
||||||
|
doctor_id: doctor_id,
|
||||||
|
family_id: family_id,
|
||||||
|
disease_class_id: disease_class_id,
|
||||||
|
diagnosis_date: diagnosis_date,
|
||||||
|
disease_desc: disease_desc,
|
||||||
|
is_allergy_history:is_allergy_history,
|
||||||
|
allergy_history: allergy_history,
|
||||||
|
family_history: family_history,
|
||||||
|
is_family_history: is_family_history,
|
||||||
|
is_pregnant: is_pregnant,
|
||||||
|
pregnant: pregnant,
|
||||||
|
inquiry_type: inquiry_type,
|
||||||
|
inquiry_mode: inquiry_mode,
|
||||||
|
diagnose_images: fileList,
|
||||||
|
client_type:client_type ,
|
||||||
|
service_type:service_type,
|
||||||
|
follow_package_item_id:follow_package_item_id
|
||||||
|
}).then((data) => {
|
||||||
|
let {
|
||||||
|
inquiry_no,
|
||||||
|
order_inquiry_id
|
||||||
|
} = data.data;
|
||||||
|
let {
|
||||||
|
chat_id,
|
||||||
|
inquiry_type,
|
||||||
|
inquiry_mode
|
||||||
|
} = this.data;
|
||||||
|
this.setData({
|
||||||
|
lockBtn: false
|
||||||
|
});
|
||||||
|
if(data.status==1){
|
||||||
|
app.method.navigateTo({
|
||||||
|
url: '/patient/pages/payOrder/payOrder?doctor_id=' + doctor_id + '&inquiry_no=' + inquiry_no + "&chat_id=" + chat_id + "&inquiry_type=" + inquiry_type + "&inquiry_mode=" + inquiry_mode + "&order_inquiry_id=" + order_inquiry_id + "&fromType=chat"
|
||||||
|
})
|
||||||
|
}else if(data.status==2){
|
||||||
|
this.setData({
|
||||||
|
showdialog:true,
|
||||||
|
messageTitle:"当前患者存在进行中问诊订单",
|
||||||
|
order_inquiry_id: order_inquiry_id,
|
||||||
|
cancelBtn:true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}).catch((error)=>{
|
||||||
|
this.setData({
|
||||||
|
showdialog:true,
|
||||||
|
messageTitle:error.message,
|
||||||
|
cancelBtn:true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
inputChange(e) {
|
||||||
|
this.setData({
|
||||||
|
[e.target.dataset.id]: e.detail.value
|
||||||
|
})
|
||||||
|
},
|
||||||
|
openPop() {
|
||||||
|
this.setData({
|
||||||
|
show: true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleClose() {
|
||||||
|
this.setData({
|
||||||
|
show: false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleConfirm(event) {
|
||||||
|
this.setData({
|
||||||
|
show: false
|
||||||
|
});
|
||||||
|
this.setData({
|
||||||
|
diagnosis_date: dayjs(event.detail).format('YYYY-MM-DD')
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handlepathographyDetail(id){
|
||||||
|
pathographyDetail(id).then(data=>{
|
||||||
|
this.handleSetValue(data);
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleIsExist(){
|
||||||
|
let {family_id}=this.data;
|
||||||
|
isExist({
|
||||||
|
family_id
|
||||||
|
}).then(data=>{
|
||||||
|
this.setData({
|
||||||
|
is_exist:data.is_exist==0?false:true
|
||||||
|
})
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handelFocus(e) {
|
||||||
|
let key = e.target.dataset.id;
|
||||||
|
let value = e.target.dataset.value;
|
||||||
|
if (!e.detail.value) {
|
||||||
|
this.setData({
|
||||||
|
[key]: false,
|
||||||
|
[value]: e.detail.value
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.setData({
|
||||||
|
[key]: true,
|
||||||
|
[value]: e.detail.value
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handelTextFocus(e) {
|
||||||
|
let key = e.target.dataset.id;
|
||||||
|
let value = e.target.dataset.value;
|
||||||
|
if (!e.detail) {
|
||||||
|
this.setData({
|
||||||
|
[key]: false,
|
||||||
|
[value]: e.detail
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
this.setData({
|
||||||
|
[key]: true,
|
||||||
|
[value]: e.detail
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
goBack() {
|
||||||
|
|
||||||
|
if (app.globalData.origion == 1) {
|
||||||
|
wx.reLaunch({
|
||||||
|
url: '/pages/index/index',
|
||||||
|
})
|
||||||
|
} else if (app.globalData.origion == 2) {
|
||||||
|
wx.reLaunch({
|
||||||
|
url: '/pages/index/index',
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
let {
|
||||||
|
disease_class_name,
|
||||||
|
diagnosis_date,
|
||||||
|
fileList,
|
||||||
|
is_allergy_history,
|
||||||
|
is_pregnant,
|
||||||
|
checkSign,
|
||||||
|
checkAgree,
|
||||||
|
is_family_history,
|
||||||
|
disease_desc
|
||||||
|
} = this.data;
|
||||||
|
//封装组件后退有bug,通过引用,回退正常
|
||||||
|
if (disease_class_name || is_allergy_history || is_pregnant || is_family_history || fileList.length > 0 || diagnosis_date || disease_desc || checkSign || checkAgree) {
|
||||||
|
Dialog.confirm({
|
||||||
|
title: '温馨提示',
|
||||||
|
message: '是否保存填写的病情信息?',
|
||||||
|
}).then(() => {
|
||||||
|
this.onSave()
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
//wx.setStorageSync('sickInfo','');
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1,
|
||||||
|
fail: function () {
|
||||||
|
wx.reLaunch({
|
||||||
|
url: '/pages/index/index',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
agreeConfirm(){
|
||||||
|
this.setData({
|
||||||
|
checkAgree:true
|
||||||
|
})
|
||||||
|
},
|
||||||
|
confirm(event) {
|
||||||
|
|
||||||
|
if (event.detail) {
|
||||||
|
this.setData({
|
||||||
|
showdialog: false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if(this.data.messageTitle=="当前患者存在进行中问诊订单"){
|
||||||
|
let {order_inquiry_id}=this.data;
|
||||||
|
app.method.navigateTo({
|
||||||
|
url: '/patient/pages/orderDetail/orderDetail?order_inquiry_id='+ order_inquiry_id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
cancelAlert(){
|
||||||
|
this.setData({
|
||||||
|
showdialog: false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onChangeSign() {
|
||||||
|
this.setData({
|
||||||
|
checkSign: !this.data.checkSign
|
||||||
|
})
|
||||||
|
if (this.data.checkSign) {
|
||||||
|
this.setData({
|
||||||
|
fileList: []
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onChange(event) {
|
||||||
|
|
||||||
|
let key = event.target.dataset.id;
|
||||||
|
this.setData({
|
||||||
|
[key]: event.detail
|
||||||
|
});
|
||||||
|
if (event.detail == 0) {
|
||||||
|
if (key == "is_allergy_history") {
|
||||||
|
this.setData({
|
||||||
|
allergy_history: ''
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
if (key == "is_family_history") {
|
||||||
|
this.setData({
|
||||||
|
family_history: ''
|
||||||
|
})
|
||||||
|
};
|
||||||
|
|
||||||
|
if (key == "is_pregnant") {
|
||||||
|
this.setData({
|
||||||
|
pregnant: ''
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onSave() {
|
||||||
|
let {
|
||||||
|
family_id,
|
||||||
|
allergy_history,
|
||||||
|
family_history,
|
||||||
|
disease_desc,
|
||||||
|
disease_class_name,
|
||||||
|
disease_class_id,
|
||||||
|
diagnosis_date,
|
||||||
|
fileList,
|
||||||
|
checkSign,
|
||||||
|
checkAgree,
|
||||||
|
is_allergy_history,
|
||||||
|
is_pregnant,
|
||||||
|
pregnant,
|
||||||
|
is_family_history,
|
||||||
|
|
||||||
|
} = this.data;
|
||||||
|
let sickInfo = {
|
||||||
|
family_id,
|
||||||
|
disease_class_name,
|
||||||
|
diagnosis_date,
|
||||||
|
fileList,
|
||||||
|
disease_class_id,
|
||||||
|
disease_desc,
|
||||||
|
allergy_history,
|
||||||
|
family_history,
|
||||||
|
is_allergy_history,
|
||||||
|
is_pregnant,
|
||||||
|
pregnant,
|
||||||
|
checkSign,
|
||||||
|
checkAgree,
|
||||||
|
is_family_history
|
||||||
|
};
|
||||||
|
let sickInfo_stroage = wx.getStorageSync("sickInfo");
|
||||||
|
if (sickInfo_stroage) {
|
||||||
|
let sickInfoObj = JSON.parse(sickInfo_stroage);
|
||||||
|
if (sickInfoObj instanceof Array) {
|
||||||
|
for (let i = 0; i < sickInfoObj.length; i++) {
|
||||||
|
if (sickInfoObj[i].family_id == family_id) {
|
||||||
|
sickInfoObj.splice(i, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sickInfoObj.push(sickInfo);
|
||||||
|
wx.setStorageSync('sickInfo', JSON.stringify(sickInfoObj));
|
||||||
|
} else {
|
||||||
|
sickInfoObj.family_id = family_id;
|
||||||
|
wx.setStorageSync('sickInfo', JSON.stringify([sickInfoObj]));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
wx.setStorageSync('sickInfo', JSON.stringify([sickInfo]));
|
||||||
|
}
|
||||||
|
|
||||||
|
wx.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面加载
|
||||||
|
*/
|
||||||
|
onLoad(options) {
|
||||||
|
// 订单类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药)
|
||||||
|
console.log(options.package_id)
|
||||||
|
console.log(options.inquiry_mode)
|
||||||
|
if (options.inquiry_type == 1 || options.inquiry_type == 3) {
|
||||||
|
this.setData({
|
||||||
|
follow_package_item_id:options.package_id?options.package_id:'',
|
||||||
|
doctor_id: options.doctor_id,
|
||||||
|
family_id: options.family_id,
|
||||||
|
chat_id: options.chat_id,
|
||||||
|
inquiry_type: options.inquiry_type,
|
||||||
|
inquiry_mode: options.inquiry_mode,
|
||||||
|
sex: options.sex
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
if (options.inquiry_type == 4) {
|
||||||
|
this.setData({
|
||||||
|
startIndex: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setData({
|
||||||
|
// product: options.product ? JSON.parse(options.product) : [],
|
||||||
|
family_id: options.family_id,
|
||||||
|
inquiry_type: options.inquiry_type,
|
||||||
|
sex: options.sex,
|
||||||
|
inquiry_mode: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//this.getSick();
|
||||||
|
|
||||||
|
this.handleIsExist();
|
||||||
|
this.getlocalInfo(options.family_id);
|
||||||
|
},
|
||||||
|
goAgreement:throttle(function(){
|
||||||
|
app.method.navigateTo({
|
||||||
|
url:"/patient/pages/linkPage/linkPage?url="+encodeURIComponent(urlHost+'/basic/file/agreement.htm?id=1')
|
||||||
|
})
|
||||||
|
}),
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面初次渲染完成
|
||||||
|
*/
|
||||||
|
onReady() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面显示
|
||||||
|
*/
|
||||||
|
onShow() {
|
||||||
|
this.setData({
|
||||||
|
img_host:app.hostConfig().imghost
|
||||||
|
});
|
||||||
|
let {
|
||||||
|
prevData,
|
||||||
|
pathography_id,
|
||||||
|
family_id
|
||||||
|
} = this.data;
|
||||||
|
if (prevData) {
|
||||||
|
this.setData({
|
||||||
|
disease_class_name: prevData.disease_class_name,
|
||||||
|
disease_class_id: prevData.disease_class_id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
console.log(pathography_id)
|
||||||
|
if(pathography_id){
|
||||||
|
this.handlepathographyDetail(pathography_id)
|
||||||
|
}
|
||||||
|
// else{
|
||||||
|
|
||||||
|
// //this.handleLastSick(options.family_id);
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面隐藏
|
||||||
|
*/
|
||||||
|
onHide() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面卸载
|
||||||
|
*/
|
||||||
|
onUnload() {},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面相关事件处理函数--监听用户下拉动作
|
||||||
|
*/
|
||||||
|
onPullDownRefresh() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 页面上拉触底事件的处理函数
|
||||||
|
*/
|
||||||
|
onReachBottom() {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户点击右上角分享
|
||||||
|
*/
|
||||||
|
|
||||||
|
})
|
||||||
17
healthyService/pages/writeSick/writeSick.json
Normal file
17
healthyService/pages/writeSick/writeSick.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"usingComponents": {
|
||||||
|
"van-field": "@vant/weapp/field/index",
|
||||||
|
"van-checkbox": "@vant/weapp/checkbox/index",
|
||||||
|
"van-radio": "@vant/weapp/radio/index",
|
||||||
|
"van-radio-group": "@vant/weapp/radio-group/index",
|
||||||
|
"van-datetime-picker": "@vant/weapp/datetime-picker/index",
|
||||||
|
"van-popup": "@vant/weapp/popup/index",
|
||||||
|
"van-picker": "@vant/weapp/picker/index",
|
||||||
|
"van-icon": "@vant/weapp/icon/index",
|
||||||
|
"dialog":"../../../components/dialog/dialog",
|
||||||
|
"van-dialog": "@vant/weapp/dialog/index",
|
||||||
|
"nav":"../../../components/nav/nav"
|
||||||
|
},
|
||||||
|
"navigationStyle":"custom",
|
||||||
|
"navigationBarTitleText": "肝胆相照互联网医院"
|
||||||
|
}
|
||||||
168
healthyService/pages/writeSick/writeSick.wxml
Normal file
168
healthyService/pages/writeSick/writeSick.wxml
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
<!--pages/writeSick/writeSick.wxml-->
|
||||||
|
<wxs src="../../../filters/filter.wxs" module="filter"></wxs>
|
||||||
|
<view class="content">
|
||||||
|
<view class="ui-navigatorbar">
|
||||||
|
<image class="ui-navigatorbar-back" bindtap="goBack" src="{{img_host+'/back.png'}}" />
|
||||||
|
<view class="ui-title">填写病情</view>
|
||||||
|
</view>
|
||||||
|
<view class="infobox">
|
||||||
|
<view class="sickHisbox" wx:if="{{is_exist}}">
|
||||||
|
<view class="name">病情历史</view>
|
||||||
|
<view class="hisBtn" bindtap="goRecord">查看记录</view>
|
||||||
|
</view>
|
||||||
|
<view class="info" bindtap="showSick">
|
||||||
|
<view class="name">所患疾病</view>
|
||||||
|
<input type="text" value="{{disease_class_name}}" placeholder="请填写所患疾病名称" class="ipt" disabled="true">
|
||||||
|
</input>
|
||||||
|
</view>
|
||||||
|
<view class="info" bindtap="openPop">
|
||||||
|
<view class="name">确诊日期</view>
|
||||||
|
<input type="text" auto-focus value="{{filter.formatDay(diagnosis_date) }}" placeholder="请选择日期(年月日)" class="ipt" disabled="true" />
|
||||||
|
</view>
|
||||||
|
<view class="info">
|
||||||
|
<view class="name">病情主诉</view>
|
||||||
|
</view>
|
||||||
|
<view class="textareaview">
|
||||||
|
<view class="textwrap" style="background: #f2f2f2!important;">
|
||||||
|
<view class="textbox" hidden="{{hideSick}}">
|
||||||
|
<view class="desc"><text>临床症状:</text>如没有力气、食欲不好、眼睛发黄、面色晦暗、尿液发黄、肝区疼痛等等</view>
|
||||||
|
<view class="desc"><text>诊疗情况:</text>描述做过哪些检查以及重要结果,是否开始治疗?治疗方案是什么(写出具体药物)、治疗效果如何?</view>
|
||||||
|
<view class="desc"><text>希望解答的问题:</text>1、是否需要更换抗病毒药物? 2、如果需要更换,请问哪种药物更合适?</view>
|
||||||
|
</view>
|
||||||
|
<van-field show-confirm-bar="{{false}}" maxlength="500" bind:change="handelTextFocus" data-id="hideSick" data-value="disease_desc" custom-style="height: 458rpx!important; border-radius: 10px;position:relative;" input-class="iptclass" class="sickArea" show-word-limit value="{{ disease_desc }}" label="" type="textarea" placeholder="" border="{{ false }}"></van-field>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="infobox" style="margin-top: 20rpx;background-color: #fff;padding-bottom: 30rpx;" wx:if="{{inquiry_type==4}}">
|
||||||
|
<view class="info">
|
||||||
|
<view class="name">用药意向</view>
|
||||||
|
</view>
|
||||||
|
<view class="radiotip" style="margin:30rpx 32rpx 0;padding-bottom: 20rpx;overflow:hidden">
|
||||||
|
<view class="textbox" style="position: static;height:auto;">
|
||||||
|
<view class="desc" ><text class="goods" wx:for="{{product}}" wx:key="product_id">{{item.product_name}}{{item.product_spec}}(数量{{item.product_num}})</text></view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="info" style="flex-direction: column;height:auto;align-items:flex-start;padding: 40rpx 0;margin-top: 20rpx;">
|
||||||
|
<view class="name">上传复诊凭证(最多9张)</view>
|
||||||
|
<view class="tip">请上传问诊本人清晰的复诊凭证(病例/处方单/检查报告/住院单),仅接诊医生可见。</view>
|
||||||
|
<view class="uploadbox">
|
||||||
|
<image wx:for="{{fileList}}" src="{{item}}" mode="aspectFill" class="upload" bindtap="previewImage" data-id="{{idx}}" wx:for-index="idx" wx:key="idx">
|
||||||
|
<image src="{{img_host+'/xiaoclose.png'}}" class="close" catchtap="delImg" data-id="{{idx}}"></image>
|
||||||
|
</image>
|
||||||
|
<view class="upload" bindtap="upload">
|
||||||
|
<van-icon name="plus" />
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="agreebox">
|
||||||
|
<van-checkbox value="{{checkSign}}" data-id="checkSign" bind:change="onChangeSign" checked-color="#3cc7c0" label-class="desc">复诊凭证遗失或不在身边,请勾选本项,未上传凭证可能会影响医生对您的诊断</van-checkbox>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="sickHis">
|
||||||
|
<view class="list">
|
||||||
|
<view class="qa" wx:if="{{inquiry_type==4}}">
|
||||||
|
<view class="num">{{startIndex}}、</view>
|
||||||
|
<view class="titlebox">
|
||||||
|
<view class="title">是否服用过您想购买的药品且无相关禁忌?</view>
|
||||||
|
<view class="radio">
|
||||||
|
<van-radio-group value="{{filter.numberTOstring(is_taboo)}}" data-id="is_taboo" bind:change="onChange" direction="horizontal">
|
||||||
|
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
|
||||||
|
<van-radio name="0" checked-color="#3cc7c0" style="margin-left: 140rpx;">否</van-radio>
|
||||||
|
</van-radio-group>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="qa">
|
||||||
|
<view class="num">{{startIndex+1}}、</view>
|
||||||
|
<view class="titlebox">
|
||||||
|
<view class="title">您是否有过敏史?</view>
|
||||||
|
<view class="radio">
|
||||||
|
<van-radio-group value="{{filter.numberTOstring(is_allergy_history)}}" data-id="is_allergy_history" bind:change="onChange" direction="horizontal">
|
||||||
|
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
|
||||||
|
<van-radio name="0" checked-color="#3cc7c0" style="margin-left: 140rpx;">否</van-radio>
|
||||||
|
</van-radio-group>
|
||||||
|
<view class="radiotip" hidden="{{is_allergy_history!=1}}">
|
||||||
|
<textarea placeholder=" " class="textarea" show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" value="{{allergy_history}}" bindinput="handelFocus" data-id="hideGuomin" data-value="allergy_history"></textarea>
|
||||||
|
<view class="textbox" hidden="{{hideGuomin}}">
|
||||||
|
<view class="desc"><text>过敏史:</text>请填写过敏源,如药物,请写出药名;如食物,请写具体如鸡蛋、牛奶等(限制50个字)</view>
|
||||||
|
</view>
|
||||||
|
<!-- <text> 过敏史:</text>
|
||||||
|
请填写过敏源,如药物,请写出药名;如食物,请写具体如鸡蛋、牛奶等 -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="qa">
|
||||||
|
<view class="num">{{startIndex+2}}、</view>
|
||||||
|
<view class="titlebox">
|
||||||
|
<view class="title">您是否有家族病史?</view>
|
||||||
|
<view class="radio">
|
||||||
|
<van-radio-group value="{{ filter.numberTOstring(is_family_history) }}" data-id="is_family_history" bind:change="onChange" direction="horizontal">
|
||||||
|
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
|
||||||
|
<van-radio name="0" checked-color="#3cc7c0" style="margin-left: 140rpx;">否</van-radio>
|
||||||
|
</van-radio-group>
|
||||||
|
</view>
|
||||||
|
<view class="radiotip" hidden="{{is_family_history!=1}}">
|
||||||
|
<textarea class="textarea" placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" value="{{family_history}}" bindinput="handelFocus" data-id="hideFamilysick" data-value="family_history"></textarea>
|
||||||
|
<view class="textbox" hidden="{{hideFamilysick}}">
|
||||||
|
<view class="desc"><text>家族病史:</text>如果是肝病,请写明患肝炎、肝硬化、肝衰竭还是肝癌。(限制50个字)</view>
|
||||||
|
</view>
|
||||||
|
<!-- <text> 过敏史:</text>
|
||||||
|
请填写过敏源,如药物,请写出药名;如食物,请写具体如鸡蛋、牛奶等 -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="qa" wx:if="{{sex==2}}">
|
||||||
|
<view class="num">{{startIndex+3}}、</view>
|
||||||
|
<view class="titlebox">
|
||||||
|
<view class="title">您是否处于备孕、妊娠、哺乳期?</view>
|
||||||
|
<view class="radio">
|
||||||
|
<van-radio-group value="{{ filter.numberTOstring(is_pregnant)}}" data-id="is_pregnant" bind:change="onChange" direction="horizontal">
|
||||||
|
<van-radio name="1" checked-color="#3cc7c0">是</van-radio>
|
||||||
|
<van-radio name="0" checked-color="#3cc7c0" style="margin-left: 140rpx;">否</van-radio>
|
||||||
|
</van-radio-group>
|
||||||
|
</view>
|
||||||
|
<!-- <view class="radiotip" hidden="{{is_pregnant!=1}}">
|
||||||
|
<textarea class="textarea" placeholder=" " show-confirm-bar="{{false}}" cursor-spacing="70" confirm-type="done" value="{{pregnant}}" bindinput="handelFocus" data-id="hidePregnant" data-value="pregnant"></textarea>
|
||||||
|
<view class="textbox" hiden="{{hidePregnant}}">
|
||||||
|
<view class="desc">请描述您目前所处阶段,如备孕中、哺乳期中、妊娠月份。(限制50个字)</view>
|
||||||
|
</view>
|
||||||
|
</view> -->
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="agreebox" style="margin: 20rpx 0 0 0;">
|
||||||
|
<view class="xieyi">
|
||||||
|
<van-checkbox value="{{ checkAgree }}" data-id="checkAgree" bind:change="onChange" checked-color="#3cc7c0" label-class="desc" label-disabled>胆相照互联网医院平台医生为您提供健康咨询服务,医生建议仅供参考。根据国家互联网诊疗相关政策要求,请您在提交服务前仔细阅读<text bindtap="goAgreement">《风险告知与知情同意书》</text>。继续操作表示您知悉并同意上述全部内容。</van-checkbox>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="nextbox">
|
||||||
|
<button class="next" type="primary" bindtap="handleThrottle" disabled="{{btnLock}}">下一步</button>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<van-popup show="{{ show }}" position="bottom" custom-style="height: auto">
|
||||||
|
<van-datetime-picker title="选择确诊日期" min-date="{{ minDate }}" toolbar-class="dateTitle" type="date" value="{{ currentDate }}" bind:cancel="handleClose" bind:confirm="handleConfirm" max-date="{{ maxDate }}" formatter="{{ formatter }}" />
|
||||||
|
</van-popup>
|
||||||
|
<van-popup show="{{ showSick }}" position="bottom" custom-style="height: auto">
|
||||||
|
<van-picker show-toolbar title="选择所患疾病" columns="{{ columns }}" value-key="disease_class_name" bind:cancel="onCancel" bind:confirm="onConfirm" />
|
||||||
|
</van-popup>
|
||||||
|
</view>
|
||||||
|
<dialog bind:confirm="confirm" bind:cancel="cancelAlert" showDialog="{{showdialog}}" message="{{messageTitle}}" cancelBtn="{{cancelBtn}}"></dialog>
|
||||||
|
<van-dialog
|
||||||
|
use-slot
|
||||||
|
class="mydailog"
|
||||||
|
bind:confirm="agreeConfirm"
|
||||||
|
title="温馨提示"
|
||||||
|
theme='green'
|
||||||
|
show="{{showAgreeDialog}}"
|
||||||
|
confirm-button-color="#3CC7C0"
|
||||||
|
cancel-button-text="确定"
|
||||||
|
>
|
||||||
|
<view class="slotmsg">
|
||||||
|
请您先仔细阅读并同意<text class="green" bindtap="goAgreement">《风险告知与知情同意书》</text>
|
||||||
|
</view>
|
||||||
|
</van-dialog>
|
||||||
|
<van-dialog id="van-dialog" confirm-button-color="#3CC7C0" />
|
||||||
356
healthyService/pages/writeSick/writeSick.wxss
Normal file
356
healthyService/pages/writeSick/writeSick.wxss
Normal file
@ -0,0 +1,356 @@
|
|||||||
|
/* pages/writeSick/writeSick.wxss */
|
||||||
|
.content{
|
||||||
|
min-height: 100%;
|
||||||
|
background: #f2f2f2;
|
||||||
|
}
|
||||||
|
.ui-navigatorbar {
|
||||||
|
position: fixed;
|
||||||
|
z-index:99;
|
||||||
|
top: 0;
|
||||||
|
width: 750rpx;
|
||||||
|
height: 172rpx;
|
||||||
|
background: #F2F2F2;
|
||||||
|
backdrop-filter: blur(20px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-navigatorbar-back {
|
||||||
|
position: absolute;
|
||||||
|
padding-left:40rpx;
|
||||||
|
padding-right:40rpx;
|
||||||
|
width:30rpx;
|
||||||
|
height:60rpx;
|
||||||
|
left: 0rpx;
|
||||||
|
bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-title {
|
||||||
|
position: absolute;
|
||||||
|
width: 350rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
line-height: 56rpx;
|
||||||
|
font-size: 36rpx;
|
||||||
|
white-space: nowrap;
|
||||||
|
color: #000000;
|
||||||
|
bottom: 0;
|
||||||
|
left: 200rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.ui-navigatorbar-back {
|
||||||
|
position: absolute;
|
||||||
|
padding-left:40rpx;
|
||||||
|
padding-right:40rpx;
|
||||||
|
width:30rpx;
|
||||||
|
height:60rpx;
|
||||||
|
left: 0rpx;
|
||||||
|
bottom: 20rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ui-title {
|
||||||
|
position: absolute;
|
||||||
|
width: 350rpx;
|
||||||
|
height: 88rpx;
|
||||||
|
line-height: 56rpx;
|
||||||
|
font-size: 36rpx;
|
||||||
|
color: #000000;
|
||||||
|
bottom: 0;
|
||||||
|
left: 200rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.infobox {
|
||||||
|
margin-top:172rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
.sickHisbox{
|
||||||
|
display: flex;
|
||||||
|
height:94rpx;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
padding:0 55rpx;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.hisBtn{
|
||||||
|
width: 166rpx;
|
||||||
|
height: 60rpx;
|
||||||
|
color:#3CC7C0;
|
||||||
|
display: flex;
|
||||||
|
font-size: 26rpx;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background: #E2FFFE;
|
||||||
|
border-radius: 6rpx;
|
||||||
|
border: 1rpx solid #3CC7C0;
|
||||||
|
}
|
||||||
|
.info {
|
||||||
|
border-bottom: 1rpx solid #E7E7E7;
|
||||||
|
display: flex;
|
||||||
|
background-color: #fff;
|
||||||
|
align-items: center;
|
||||||
|
height: 112rpx;
|
||||||
|
color: #333333;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.info .name {
|
||||||
|
white-space: nowrap;
|
||||||
|
width: 180rpx;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-left: 52rpx;
|
||||||
|
color: #333333;
|
||||||
|
font-size: 34rpx;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info text {
|
||||||
|
margin-top: 20rpx;
|
||||||
|
color:#E34D59;
|
||||||
|
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.info .ipt {
|
||||||
|
margin-left: 15rpx;
|
||||||
|
margin-right: 52rpx;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
.input-placeholder {
|
||||||
|
color: #999999;
|
||||||
|
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
.textareaview{
|
||||||
|
position: relative;
|
||||||
|
padding:40rpx 52rpx;
|
||||||
|
background: #fff!important;
|
||||||
|
}
|
||||||
|
.textwrap{
|
||||||
|
background: #F2F2F2!important;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
}
|
||||||
|
.van-cell{
|
||||||
|
position: relative;
|
||||||
|
z-index:2;
|
||||||
|
background-color:transparent!important;
|
||||||
|
}
|
||||||
|
.van-field__body--textarea{
|
||||||
|
height:360rpx;
|
||||||
|
width:580rpx;
|
||||||
|
}
|
||||||
|
.iptclass{
|
||||||
|
top:0;
|
||||||
|
overflow-y: scroll;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
height:360rpx!important;
|
||||||
|
bottom:0;
|
||||||
|
left:0rpx;
|
||||||
|
right:0rpx;
|
||||||
|
width:100%!important;
|
||||||
|
background-color: transparent;
|
||||||
|
|
||||||
|
}
|
||||||
|
.mydailog .dialog-index--van-dialog__confirm{
|
||||||
|
background:#ebf9f9!important;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
.van-field__control {
|
||||||
|
display: flex;
|
||||||
|
align-self: start;
|
||||||
|
} */
|
||||||
|
|
||||||
|
.van-field__word-limit {
|
||||||
|
color: #999999!important;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
.green{
|
||||||
|
color:rgba(60, 199, 192, 1)
|
||||||
|
}
|
||||||
|
.van-field__word-num--full{
|
||||||
|
color: #ee0a24!important;
|
||||||
|
}
|
||||||
|
.textbox{
|
||||||
|
left:86rpx;
|
||||||
|
right:86rpx;
|
||||||
|
top:60rpx;
|
||||||
|
height:380rpx;
|
||||||
|
z-index:0;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.textbox .desc{
|
||||||
|
word-break: break-all;
|
||||||
|
line-height: 42rpx;
|
||||||
|
color: #999;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
.textbox .goods{
|
||||||
|
display: inline;
|
||||||
|
white-space:normal;
|
||||||
|
}
|
||||||
|
.textbox .goods:after{
|
||||||
|
content:";"
|
||||||
|
}
|
||||||
|
.textbox .goods:last-child:after{
|
||||||
|
content:""
|
||||||
|
}
|
||||||
|
.textbox view:last-child{
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
.textbox text{
|
||||||
|
color: #333333;
|
||||||
|
font-size: 28rpx;
|
||||||
|
}
|
||||||
|
.info .tip{
|
||||||
|
line-height: 36rpx;
|
||||||
|
color: #666666;
|
||||||
|
margin:20rpx 52rpx 0;
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
.uploadbox{
|
||||||
|
|
||||||
|
margin:30rpx 52rpx 0;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap ;
|
||||||
|
}
|
||||||
|
.uploadbox .close{
|
||||||
|
z-index:99;
|
||||||
|
top:5rpx;
|
||||||
|
right:5rpx;
|
||||||
|
position: absolute;
|
||||||
|
width:30rpx;
|
||||||
|
height:30rpx;
|
||||||
|
}
|
||||||
|
.uploadbox .upload{
|
||||||
|
position: relative;
|
||||||
|
object-fit: cover;
|
||||||
|
margin: 5px 19rpx 5px 0;
|
||||||
|
}
|
||||||
|
.uploadbox .upload:nth-child(4n){
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
.van-icon-plus{
|
||||||
|
color:#333;
|
||||||
|
font-size: 80rpx!important;
|
||||||
|
}
|
||||||
|
.agreebox{
|
||||||
|
margin:30rpx 52rpx 0;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.agreebox .desc{
|
||||||
|
color: #666666;
|
||||||
|
line-height: 36rpx;
|
||||||
|
|
||||||
|
font-size: 24rpx;
|
||||||
|
}
|
||||||
|
.van-checkbox{
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start!important;
|
||||||
|
}
|
||||||
|
.sickHis{
|
||||||
|
background-color: #fff;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
padding:40rpx 52rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
textarea{
|
||||||
|
width:100%;
|
||||||
|
color:#333;
|
||||||
|
height:132rpx;
|
||||||
|
}
|
||||||
|
.list .qa{
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.titlebox{
|
||||||
|
flex:1;
|
||||||
|
|
||||||
|
}
|
||||||
|
.radio{
|
||||||
|
margin: 40rpx 0rpx 30rpx 0;
|
||||||
|
}
|
||||||
|
.sickArea{
|
||||||
|
position: relative;
|
||||||
|
z-index:1;
|
||||||
|
}
|
||||||
|
.upload{
|
||||||
|
width: 148rpx;
|
||||||
|
height:148rpx;
|
||||||
|
display: flex;
|
||||||
|
justify-content:center ;
|
||||||
|
align-items: center;
|
||||||
|
background: #F2F2F2;
|
||||||
|
border-radius: 4rpx
|
||||||
|
}
|
||||||
|
.radiotip{
|
||||||
|
position: relative;
|
||||||
|
padding:24rpx 20rpx;
|
||||||
|
justify-content: center;
|
||||||
|
margin-top: 30rpx;
|
||||||
|
line-height: 42rpx;
|
||||||
|
background: #F2F2F2;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color:#999;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
}
|
||||||
|
.radiotip .textbox{
|
||||||
|
top:20rpx;
|
||||||
|
left:20rpx;
|
||||||
|
height: 100rpx;
|
||||||
|
right:20rpx;
|
||||||
|
}
|
||||||
|
.radiotip .textarea{
|
||||||
|
position: relative;
|
||||||
|
z-index:2;
|
||||||
|
}
|
||||||
|
.radiotip text{
|
||||||
|
white-space: nowrap;
|
||||||
|
color:#333;
|
||||||
|
}
|
||||||
|
.xieyi{
|
||||||
|
width:100%;
|
||||||
|
padding:30rpx 52rpx 40rpx;
|
||||||
|
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
.agreebox text{
|
||||||
|
color:#3CC7C0;
|
||||||
|
|
||||||
|
}
|
||||||
|
.nextbox{
|
||||||
|
padding-bottom: 20rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
.next{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 94rpx;
|
||||||
|
font-size: 36rpx;
|
||||||
|
border:none;
|
||||||
|
outline: none;
|
||||||
|
margin:0 52rpx;
|
||||||
|
border-radius: 47rpx;
|
||||||
|
color: #fff;
|
||||||
|
margin-bottom: 40rpx;
|
||||||
|
background: #3CC7C0!important;
|
||||||
|
}
|
||||||
|
.datePicker{
|
||||||
|
width:100%;
|
||||||
|
position: fixed;
|
||||||
|
bottom:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.dateTitle{
|
||||||
|
border:1rpx solid #E7E7E7;
|
||||||
|
}
|
||||||
|
.van-uploader__preview-image,.van-uploader__upload{
|
||||||
|
width: 148rpx!important;
|
||||||
|
height: 148rpx!important;
|
||||||
|
}
|
||||||
|
.van-uploader__preview{
|
||||||
|
margin: 0 6px 8px 0;
|
||||||
|
}
|
||||||
@ -41,7 +41,7 @@ Page({
|
|||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
goH5:throttle(function(event){
|
goH5:throttle(function(event){
|
||||||
let {url,name}=event.currentTarget.dataset;
|
let {url,name,type}=event.currentTarget.dataset;
|
||||||
if(url.indexOf("http")!=-1){
|
if(url.indexOf("http")!=-1){
|
||||||
let urlName=(decodeURIComponent(url))
|
let urlName=(decodeURIComponent(url))
|
||||||
if(this.verifySuffix(urlName)){
|
if(this.verifySuffix(urlName)){
|
||||||
@ -54,6 +54,11 @@ Page({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
if(type==4){
|
||||||
|
app.method.navigateTo({
|
||||||
|
url:'/'+url
|
||||||
|
})
|
||||||
}else{
|
}else{
|
||||||
wx.navigateToMiniProgram({
|
wx.navigateToMiniProgram({
|
||||||
appId: 'wxdee7006582529713',
|
appId: 'wxdee7006582529713',
|
||||||
@ -65,6 +70,8 @@ Page({
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}),
|
}),
|
||||||
verifySuffix(fileName) {
|
verifySuffix(fileName) {
|
||||||
let suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`
|
let suffix = `(bmp|jpg|png|tif|gif|pcx|tga|exif|fpx|svg|psd|cdr|pcd|dxf|ufo|eps|ai|raw|WMF|webp|jpeg)`
|
||||||
|
|||||||
@ -107,7 +107,7 @@
|
|||||||
<block wx:for="{{banner}}" wx:key="banner_id">
|
<block wx:for="{{banner}}" wx:key="banner_id">
|
||||||
<swiper-item>
|
<swiper-item>
|
||||||
<view class="swiper-item">
|
<view class="swiper-item">
|
||||||
<image class="swiperimg" src="{{item.banner_path}}" data-url="{{item.banner_link}}" data-name="{{item.banner_name}}" bindtap="goH5"></image>
|
<image class="swiperimg" src="{{item.banner_path}}" data-url="{{item.banner_link}}" data-name="{{item.banner_name}}" data-type="{{item.open_with}}" bindtap="goH5"></image>
|
||||||
</view>
|
</view>
|
||||||
</swiper-item>
|
</swiper-item>
|
||||||
</block>
|
</block>
|
||||||
|
|||||||
@ -18,8 +18,8 @@ Page({
|
|||||||
tab3Height:500,
|
tab3Height:500,
|
||||||
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static',
|
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static',
|
||||||
showDialog:false,
|
showDialog:false,
|
||||||
avatar: '',
|
|
||||||
currentData:0,
|
currentData:0,
|
||||||
|
avatar: '',
|
||||||
user_name: '',
|
user_name: '',
|
||||||
doctor_title: '',
|
doctor_title: '',
|
||||||
doctor_id: '',
|
doctor_id: '',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user