Compare commits

...

17 Commits
master ... dev

Author SHA1 Message Date
zoujiandong
c8a4f2e74e 12.30上午提交 2025-12-30 11:51:16 +08:00
zoujiandong
8689fad91a 12.25 2025-12-25 15:49:02 +08:00
zoujiandong
a52add7452 恐艾咨询 2024-12-09 14:29:42 +08:00
zoujiandong
cbf2087261 更多hiv 2024-11-06 13:55:30 +08:00
zoujiandong
d5271c3fa0 图片展示 2024-11-05 16:42:04 +08:00
zoujiandong
97d9e2fb5f hiv页面下拉 2024-11-05 13:28:50 +08:00
zoujiandong
e3b8724b61 bug 11.4 2024-11-04 15:37:49 +08:00
zoujiandong
1aedefd3dc 11.4修改 2024-11-04 10:50:12 +08:00
zoujiandong
37bf84b891 11 2024-11-01 18:21:50 +08:00
zoujiandong
3515505ffb 11.1 文章 2024-11-01 18:02:19 +08:00
zoujiandong
60c5b527ed 滑动禁止 2024-07-12 09:04:41 +08:00
zoujiandong
7a727a15ba 7.9 hiv 2024-07-09 14:57:51 +08:00
zoujiandong
c238955d11 订单中心页 2024-06-26 15:28:01 +08:00
zoujiandong
df496f5ed3 上传头行名字 2024-05-31 15:40:08 +08:00
zoujiandong
881cfc6101 图片上传命名 2024-05-31 15:28:23 +08:00
zoujiandong
2c5db5c9c3 咨询列表 2024-05-23 09:04:56 +08:00
zoujiandong
f2ebbb5791 5.17改动 2024-05-17 14:59:17 +08:00
46 changed files with 1721 additions and 110 deletions

View File

@ -244,7 +244,7 @@ Component({
showModal() {
this.setData({
hideModal: true,
blockHeight:"1130rpx"
blockHeight:"830rpx"
})
},
// 隐藏遮罩层

View File

@ -40,6 +40,14 @@ function popup(data){
function agreement(id){
return request('/basic/agreement/'+id,'GET',{},true)
}
function kepuList(data){
return request('/patient/article/science','GET',data,true)
}
function AllKepuList(data){
return request('/patient/article/science/list','GET',data,true)
}
module.exports={
serviceChatMsg,
@ -51,8 +59,11 @@ module.exports={
nation,
job,
chatMsg,
hotSickList,
hotSearch,
popup,
kepuList,
AllKepuList,
agreement
}

17
app.js
View File

@ -63,7 +63,10 @@ App({
} else {
this.globalData.origion = 0;
};
if(this.isHasToken()){
this.imLogin(options);
}
},
method: router,
@ -160,6 +163,20 @@ App({
onKickOut(event) {
this.handleLogout();
},
isHasToken(){
let token='';
const { envVersion } = wx.getAccountInfoSync().miniProgram;
if(envVersion=='release'){
token = wx.getStorageSync('AUTH_TOKEN');
}else{
token = wx.getStorageSync('DEV_AUTH_TOKEN');
}
if(token){
return true
}else {
return false;
}
},
async handleLogout() {
if (wx.$TUIKit) {
wx.$TUIKit.destroy();

View File

@ -13,6 +13,7 @@
"pages/login/login",
"pages/mobileLogin/mobileLogin",
"pages/expertConsult/expertConsult",
"pages/hivConsult/hivConsult",
"pages/expertDetail/expertDetail",
"pages/selectPatient/selectPatient",
"pages/writeSick/writeSick",
@ -57,7 +58,9 @@
"pages/sickManage/sickManage",
"pages/sickRecord/sickRecord",
"pages/sickDetail/sickDetail",
"pages/videoList/videoList"
"pages/videoList/videoList",
"pages/kepuList",
"pages/kepuList/kepuList"
],
"independent": false
},

BIN
assets/images/cert.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -4,7 +4,7 @@
<view class="leftimg">
<image src="{{img_host+'/freezx.png'}}" class="zxicon"></image>
<view class="right">
<view class="name">公益咨询</view>
<view class="name">特惠咨询</view>
<view class="price">¥{{price.welfare_inquiry_price}}<text class="unit">起</text></view>
</view>
</view>
@ -12,7 +12,7 @@
<view class="btn" bindtap="goFree">去咨询</view>
</view>
</view>
<view class="viewwrap">
<!-- <view class="viewwrap">
<view class="leftimg">
<image src="https://img.applets.igandanyiyuan.com/applet/patient/static/quickzx.png" class="zxicon"></image>
<view class="right">
@ -23,12 +23,12 @@
<view class="consultbtn">
<view class="btn" bindtap="goQuick">去咨询</view>
</view>
</view>
</view> -->
<view class="viewwrap">
<view class="leftimg">
<image src="https://img.applets.igandanyiyuan.com/applet/patient/static/expertzx.png" class="zxicon"></image>
<view class="right">
<view class="name">专家问诊</view>
<view class="name">专家</view>
<view class="price">¥{{price.expert_inquiry_price}}<text class="unit">起</text></view>
</view>
</view>
@ -36,7 +36,7 @@
<view class="btn" bindtap="goExpert">去咨询</view>
</view>
</view>
<view class="viewwrap">
<!-- <view class="viewwrap">
<view class="leftimg">
<image src="https://img.applets.igandanyiyuan.com/applet/patient/static/buyyao.png" class="zxicon"></image>
<view class="right">
@ -47,5 +47,5 @@
<view class="consultbtn">
<view class="btn" bindtap="goBuyMedince">去咨询</view>
</view>
</view>
</view> -->
</view>

View File

@ -25,9 +25,9 @@ Component({
this.triggerEvent('handleFocus',true)
},
goInquirtForm(){
// wx.navigateTo({
// url: '/healthyService/pages/visitList/visitList',
// })
wx.navigateTo({
url: '/patient/pages/agreeList/agreeList',
})
}
},

View File

@ -1,5 +1,5 @@
{
"usingComponents": {
"van-icon": "@vant/weapp/icon/index"
}
}

View File

@ -1,7 +1,12 @@
<!--components/navbar/navbar.wxml-->
<view class="barcontain">
<view class="barcon">
<text class="text" bindtap="goInquirtForm">肝胆相照互联网医院</text>
<text class="text" >肝胆相照互联网医院</text>
<view class="titlebox" bindtap="goInquirtForm">
<image src="{{img_host+'/safe_index.png'}}" mode="" style="width:18rpx;height:22rpx" class="bg"/>
<view class="text"> 国家卫健委认证医疗机构・深耕肝病领域10余年</view>
<van-icon name="arrow" color="#fff" size="20rpx"/>
</view>
<view class="scon">
<input type="text" placeholder="输入姓名或医院查找医生" value="{{keyWord}}" disabled="{{true}}" bindtap="handleFocus" confirm-type="search" class="ipt"/>
<image src="{{img_host+'/ss.png'}}" class="ss"></image>

View File

@ -20,12 +20,13 @@
border-radius: 40rpx;
box-shadow: 0px 4px 10px 0px rgba(153, 153, 153, 0.5);
align-items: center;
margin-top: 55rpx;
margin-top:20rpx;
}
.barcontain .text {
font-size: 40rpx;
color: #fff;
margin-left: 8rpx;
}
.barcon .ss {
@ -41,3 +42,13 @@
height: 80rpx;
}
.titlebox{
font-weight: 400;
margin-top: 15rpx;
display: flex;
align-items: center;
}
.titlebox .text{
font-size: 20rpx;
color: #fff;
}

View File

@ -293,8 +293,11 @@ Page({
signature,
host
} = resdata;
let index = File.lastIndexOf("/");
let filename = File.substring(index + 1, File.length);
// let index = File.lastIndexOf("/");
// let filename = File.substring(index + 1, File.length);
let index = File.lastIndexOf(".");
let houzhui=File.substring(index, File.length);
let filename = this.data.family_id+new Date().getTime().toString()+(this.data.fileList.length).toString()+houzhui;
return new Promise((resolve, reject) => {
wx.uploadFile({
url: host, // 仅为示例,非真实的接口地址

View File

@ -12,6 +12,7 @@ Page({
showCode:false,
isOld:false,
codeMsg:'',
active:0,
showEntryTip:false,
showEntryTip_second:false,
beforeClose(action){
@ -35,13 +36,25 @@ Page({
popupData:null
},
onChange(event){
console.log(event.detail.name)
this.setData({
active:event.detail.name
})
},
confirm:throttle(function(event){
if(event.detail){
this.handelDelDoctor();
}
}),
goH5:throttle(function(event){
let {url,name,type}=event.currentTarget.dataset;
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
return
}
let {url,name,type,title}=event.currentTarget.dataset;
if(url.indexOf("http")!=-1){
let urlName=(decodeURIComponent(url))
if(this.verifySuffix(urlName)){
@ -57,7 +70,7 @@ Page({
}else{
if(type==4){
app.method.navigateTo({
url:'/'+url
url:'/'+url+'?title='+title
})
}else{
wx.navigateToMiniProgram({
@ -143,9 +156,18 @@ Page({
})
},
goMydoctor:throttle(function(){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
app.method.navigateTo({
url: '/patient/pages/myDoctor/myDoctor',
})
}),
onConfirmEntry(){
@ -185,12 +207,24 @@ Page({
wx.exitMiniProgram({success: (res) => {}})
},
goAgreement:throttle(function(event){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
let id=event.currentTarget.dataset.id;
app.method.navigateTo({
url:"/patient/pages/linkPage/linkPage?url="+encodeURIComponent(urlHost+'/basic/file/agreement.htm?id='+id)
})
}),
goCheck:throttle(function(){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
// let that=this;
// wx.scanCode({
// onlyFromCamera: true,
@ -211,6 +245,12 @@ Page({
})
}),
goMall:throttle(function(){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
wx.navigateToMiniProgram({
appId: 'wxdee7006582529713',
path:"/pages/home/dashboard/index",
@ -221,12 +261,24 @@ Page({
})
}),
freeConsult:throttle(function(){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
app.method.navigateTo({
url: '/patient/pages/expertConsult/expertConsult?type=free'
})
}),
handleFocus:throttle(function(event){
wx.hideKeyboard();
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
if(event.detail){
app.method.navigateTo({
url: '/patient/pages/search/search',
@ -235,23 +287,47 @@ Page({
}),
goExpertDetail:throttle(function(event){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
let id=event.currentTarget.dataset.id;
app.method.navigateTo({
url: '/patient/pages/expertDetail/expertDetail?doctor_id='+id
})
}),
goquickExpert:throttle(function(){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
app.method.navigateTo({
url: '/patient/pages/quickConsult/quickConsult'
url:'/patient/pages/expertConsult/expertConsult' //'/patient/pages/quickConsult/quickConsult'
})
}),
goExpertAndCloseOld:throttle(function(){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
app.method.navigateTo({
url:'/patient/pages/expertConsult/expertConsult'
})
this.onClickHide();
}),
goExpertAndClose:throttle(function(event){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
let id=event.currentTarget.dataset.id;
let url='';
if(id==1){
@ -273,16 +349,57 @@ Page({
this.onClickHide();
}),
goExpert:throttle(function(){
// wx.showToast({
// title: '敬请期待',
// icon:'none'
// })
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
app.method.navigateTo({
url: '/patient/pages/expertConsult/expertConsult'
url: '/patient/pages/hivConsult/hivConsult'
})
}),
goconsultandbuy:throttle(function(){
app.method.navigateTo({
url: '/patient/pages/quickConsult/quickConsult?inquiry_type=4'
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
app.method.navigateTo({
url: '/patient/pages/expertConsult/expertConsult?type=buyYao'
})
// app.method.navigateTo({
// url: '/patient/pages/quickConsult/quickConsult?inquiry_type=4'
// })
}),
goHealth:throttle(function(){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
app.method.navigateTo({
url: '/healthyService/pages/healthyIntro/healthyIntro'
})
}),
goVisit:throttle(function(){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
app.method.navigateTo({
url: '/healthyService/pages/visitList/visitList'
})
}),
watchBack(){
let total=app.globalData.totalUnread;
setBarData(total)
@ -315,6 +432,12 @@ Page({
onLoad(options) {
console.log("index onload");
if(options.doctor_id){
if(!this.isHasToken()){
wx.reLaunch({
url: '/patient/pages/login/login',
})
}
wx.redirectTo({
url: '/patient/pages/expertDetail/expertDetail?doctor_id='+options.query.doctor_id,
})
@ -328,6 +451,20 @@ Page({
});
//this.handleMyDoctor();
},
isHasToken(){
let token='';
const { envVersion } = wx.getAccountInfoSync().miniProgram;
if(envVersion=='release'){
token = wx.getStorageSync('AUTH_TOKEN');
}else{
token = wx.getStorageSync('DEV_AUTH_TOKEN');
}
if(token){
return true
}else {
return false;
}
},
onShow(){
let isIntro=wx.getStorageSync('hasIntro');
//let isEntry=wx.getStorageSync('hasEntry');
@ -364,7 +501,10 @@ Page({
app.globalData.origion=0;
if(!app.globalData.totalUnread && app.globalData.totalUnread!=0){
if(this.isHasToken()){
app.imLogin();
}
}else{
let total=app.globalData.totalUnread;
setBarData(total)

View File

@ -3,6 +3,9 @@
"nav-bar": "/components/navbar/navbar",
"van-overlay": "@vant/weapp/overlay/index",
"van-dialog": "@vant/weapp/dialog/index",
"van-tab": "@vant/weapp/tab/index",
"van-tabs": "@vant/weapp/tabs/index",
"van-icon": "@vant/weapp/icon/index",
"dialog":"/components/dialog/dialog"
},

View File

@ -56,64 +56,86 @@
<nav-bar bind:handleFocus="handleFocus"></nav-bar>
<view class="container">
<view class="containIndex">
<view class="wenzhen">
<view class="wenzhen" >
<view class="wenzhenbox">
<view class="wenzhencell" bindtap="goquickExpert">
<view class="row">
<view>快速问诊</view>
<image src="{{img_host+'/kswz.png'}}"></image>
<view class="name_title">找专家</view>
<image src="{{img_host+'/findexpert.png'}}" mode="" style="width:312rpx;height:182rpx" class="bg"/>
</view>
<view class="desc">
5分钟接诊不耽误
200多位主任医师
</view>
<view class="desc">专业医生,服务保障</view>
</view>
<view class="wenzhencell" bindtap="goExpert">
<!-- goExpert -->
<view class="wenzhencell" bindtap="goconsultandbuy">
<view class="row">
<view>专家问诊</view>
<image src="{{img_host+'/zjwz.png'}}"></image>
<view class="name_title">问诊购药</view>
<image src="{{img_host+'/buyandask.png'}}" mode="" style="width:312rpx;height:182rpx;right:0;left:auto" class="bg"/>
</view>
<view class="desc">
专业医生,服务保障
50多种常用处方药品
</view>
<view class="desc">
正品无忧,品质护航
</view>
</view>
</view>
<view class="buybox" bindtap="goconsultandbuy">
<!-- <view class="buybox" bindtap="goconsultandbuy">
<view class="left">
<view>问诊购药</view>
<view class="desc">在线复诊,正品无忧,送药到家</view>
<view class="desc">
正品无忧,品质护航,送药到家
</view>
</view>
<view class="right">
<image src="{{img_host+'/yao.png'}}"></image>
</view>
</view>
</view> -->
</view>
<view class="cellbox">
<view class="page-section-spacing">
<scroll-view class="scroll-view_H cellbox" scroll-x="true" style="display: flex;">
<view class="cell" bindtap="freeConsult">
<image src="{{img_host+'/gywz.png'}}"></image>
<view class="name">公益问诊</view>
<image src="{{img_host+'/gywz.png'}}" class="cellimg"></image>
<view class="name">特惠问诊</view>
</view>
<view class="cell" bindtap="goMall">
<image src="{{img_host+'/gdmall.png'}}"></image>
<view class="name">肝胆商城</view>
<view class="cell" bindtap="goExpert">
<!-- <image src="{{img_host+'/gdmall.png'}}" class="cellimg"></image> -->
<image src="{{img_host+'/hiv_index.png'}}" class="cellimg"></image>
<image src="{{img_host+'/tese_red.png'}}" class="tese" mode="widthFix"></image>
<view class="name">合并HIV</view>
</view>
<!-- <view class="cell" bindtap="goHealth">
<image src="{{img_host+'/health_package.png'}}" class="cellimg"></image>
<view class="name">健康包</view>
</view> -->
<view class="cell" bindtap="goVisit">
<!-- <image src="{{img_host+'/gdmall.png'}}" class="cellimg"></image> -->
<image src="{{img_host+'/visit_package.png'}}" class="cellimg"></image>
<view class="name">随访包</view>
</view>
<view class="cell" bindtap="goCheck">
<image src="{{img_host+'/tangzu.png'}}"></image>
<image src="{{img_host+'/tangzu.png'}}" class="cellimg"></image>
<view class="name">糖组检测</view>
</view>
</scroll-view>
</view>
<view class="ad">
<swiper class="swiper" indicator-dots="{{true}}" circular="{{true}}" indicator-active-color="#3CC7C0" autoplay="{{true}}" interval="3000">
<swiper class="swiper" indicator-dots="{{banner.length>1}}" circular="{{true}}" indicator-active-color="#3CC7C0" autoplay="{{true}}" interval="5000">
<block wx:for="{{banner}}" wx:key="banner_id">
<swiper-item>
<view class="swiper-item">
<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>
<image class="swiperimg" src="{{item.banner_path}}" data-url="{{item.banner_link}}" data-name="{{item.banner_name}}" data-type="{{item.open_with}}" bindtap="goH5" data-title="{{item.title}}"></image>
</view>
</swiper-item>
</block>
</swiper>
</view>
<view class="mydoctor" wx:if="{{my_doctor.length>0}}">
<!-- <view class="mydoctor" wx:if="{{my_doctor.length>0}}">
<view class="titlebox">
<view class="title">我的医生</view>
<view class="more" wx:if="{{my_doctor.length>5}}" bindtap="goMydoctor">更多<image src="{{img_host+'/right.png'}}"></image>
@ -142,11 +164,19 @@
</view>
</view>
<view class="recommend" wx:if="{{recommend_doctor.length>0}}">
-->
<view class="recommend">
<view class="titlebox">
<view class="title">推荐医生</view>
<!-- <view class="title"></view> -->
<van-tabs v-model:active="active" line-width="25rpx" shrink ellipsis="{{false}}" color="#3CC7C0" bind:change="onChange">
<van-tab title="在线推荐" name="0"></van-tab>
<van-tab title="我的医生" name="1"></van-tab>
</van-tabs>
<!-- <view class="more" bindtap="goquickExpert">更多<van-icon name="arrow" style="margin-top: 4rpx;"/></view> -->
</view>
<view class="viewbox">
<!-- 在线医生 -->
<view class="viewbox" wx:if="{{active==0}}">
<view class="viewcell" wx:for="{{recommend_doctor}}" wx:key="doctor_id" bindtap="goExpertDetail" data-id="{{item.doctor_id}}">
<view class="left">
<image src="{{item.avatar}}" wx:if="{{item.avatar}}" mode="aspectFill"></image>
@ -175,6 +205,35 @@
</view>
</view>
</view>
<!-- 我的医生 -->
<view class="viewbox" wx:else>
<view class="viewcell" wx:for="{{my_doctor}}" wx:key="doctor_id" bindtap="goExpertDetail" data-id="{{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.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="type" wx:if="{{item.hospital_level_name != '未知'&& item.hospital_level_name}}">{{item.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="doctor_title" wx:if="{{item.doctor_title}}">{{item.doctor_title}}</text><text>{{item.department_custom_name}}</text></view>
<view class="hospital">{{item.hospital_name}}</view>
<view class="goodjob" wx:if="{{item.be_good_at}}">擅长:{{item.be_good_at}}</view>
<view class="consultbox" style="align-items: center;margin-top: 10rpx;">
<view class="service">{{item.days}}天内服务过您</view>
<view class="zixun">复诊咨询</view>
</view>
<!-- <view class="p
rice" wx:if="{{moduleFilter.formatInquiryType(item.doctor_inquiry_config)==1}}">公益问诊:<text>¥{{item.free_clinic_price}}</text></view>
<view class="price" wx:elif="{{moduleFilter.formatInquiryType(item.doctor_inquiry_config)==2}}">专家问诊:<text>¥{{item.price}}</text></view>
<view class="price" wx:else></view> -->
</view>
</view>
<view class="nonedata" wx:if="{{my_doctor.length==0}}" style="background:#fff">暂无医生!</view>
</view>
</view>
</view>

View File

@ -19,11 +19,22 @@
}
.wenzhencell {
flex: 1;
padding: 20rpx 20rpx 40rpx;
background: #E0FFFE;
position: relative;
width:312rpx;
height:182rpx;
/* flex: 1;
padding: 20rpx 20rpx 40rpx; */
border-radius: 10rpx;
}
.wenzhencell .bg{
top:0;
left:0;
width:100%;
margin-left: 0;
bottom:0;
position: absolute;
}
.wenzhencell image {
width: 80rpx;
@ -54,11 +65,21 @@
color: #333333;
font-size: 40rpx;
}
.wenzhencell .row .name_title{
width:160rpx;
margin-top: 20rpx;
position: relative;
margin-left: 16rpx;
z-index:1;
}
.wenzhencell .desc {
position: relative;
z-index:1;
margin-left: 16rpx;
margin-top: 16rpx;
color: #666;
font-size: 30rpx;
font-size: 22rpx;
color: #878787;
}
.buybox {
@ -96,32 +117,60 @@
}
.cellbox .cell {
padding: 28rpx 0;
display: flex;
width: 216rpx;
position: relative;
display: inline-flex;
width:150rpx;
height:144rpx;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #fff;
margin-left: 20rpx;
margin-left: 28rpx;
border-radius: 10rpx;
}
.cellbox .tese{
position: absolute;
right:0;
top:0;
width: 90rpx;
}
.cellbox .cell:first-child {
margin-left: 0rpx;
}
.cellbox .cellimg{
margin-top: 14rpx;
width:72rpx;
height:72rpx;
}
.cellbox image {
width: 98rpx;
height: 98rpx;
}
.cellbox .name {
font-size: 28rpx;
font-weight: 600;
margin-top: 18rpx;
color: #333;
font-size: 24rpx;
margin-top: 5rpx;
color: #000;
}
.consultbox .service{
border:none;
font-size: 24rpx;
color: #3CC7C0;
padding: 0;
margin-top: 0;
}
.consultbox .zixun{
width: 160rpx;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
background: #3CC7C0;
border-radius: 30rpx;
font-weight: 400;
font-size: 28rpx;
color: #FFFFFF;
}
.ad {
width: 100%;
@ -133,21 +182,38 @@
border-radius: 10rpx;
}
.swiper{
height:168rpx;
height:140rpx;
overflow: hidden;
border-radius: 10rpx;
}
.swiper-item .swiperimg{
width:100%;
border-radius: 10rpx;
height:110rpx;
height:140rpx;
}
.mydoctor {
width: 100%;
}
.titlebox .van-tab--active{
font-size: 30rpx;
font-weight: bold;
}
.titlebox .van-tabs__line{
bottom:16rpx;
}
.titlebox .more{
margin-right: 20rpx;
display: flex;
font-size: 28rpx;
color: #666666;
align-items: center;
}
.titlebox {
margin-top: 10rpx;
display: flex;
padding: 20rpx 0;
background-color: #fff;
/* padding: 20rpx 0; */
width: 100%;
align-items: center;
justify-content: space-between;
@ -302,6 +368,10 @@
justify-content: center;
align-items: center;
}
.recommend{
overflow: hidden;
border-radius: 30rpx;
}
.service {
height: 40rpx;
border-radius: 20rpx;
@ -317,7 +387,7 @@
.viewbox {
width: 100%;
overflow: hidden;
border-radius: 10rpx;
margin-top: -20rpx;
margin-bottom: 10rpx;
}

View File

@ -102,7 +102,7 @@
</view>
<view class="dcell" bindtap="goAgreement">
<view class="decllbox">
<view class="name">资质协议和患者知情同意书</view>
<view class="name">资质协议</view>
<image src="{{img_host+'/righticon.png'}}" class="righticon"></image>
</view>
</view>

View File

@ -316,13 +316,22 @@ Page({
onLoad(options) {
if(options.type=="free"){
wx.setNavigationBarTitle({
title: "公益问诊"
title: "特惠问诊"
});
this.setData({
navName:"公益问诊",
navName:"特惠问诊",
inquiry_type:3,
inquiry_mode:1
})
}else if(options.type=="buyYao"){
wx.setNavigationBarTitle({
title: "问诊购药"
});
this.setData({
navName:"问诊购药",
inquiry_type:4,
inquiry_mode:1
})
}
this.getSickType();
this.getDoctorList();

View File

@ -3,6 +3,7 @@
"van-dropdown-menu": "@vant/weapp/dropdown-menu/index",
"van-dropdown-item": "@vant/weapp/dropdown-item/index",
"van-picker": "@vant/weapp/picker/index",
"van-popup": "@vant/weapp/popup/index",
"van-sticky": "@vant/weapp/sticky/index",
"nav":"../../../components/nav/nav"

View File

@ -69,7 +69,7 @@
}
.page-section-spacing .row{
margin-top: 40rpx;
margin-top: 30rpx;
margin-bottom: 30rpx;
}
.page-section-spacing .row:last-child{
@ -265,6 +265,7 @@ font-size: 30rpx;
justify-content: center;
align-items: center;
width:33.33%;
font-size: 30rpx;
}
.viewcell .left{
position: relative;

View File

@ -21,6 +21,7 @@ Page({
showDialog:false,
currentData:0,
avatar: '',
register_cert:'',
user_name: '',
doctor_title: '',
doctor_id: '',
@ -96,6 +97,13 @@ Page({
url:'/patient/pages/videoList/videoList'
})
}),
previewImg(){
let {register_cert}=this.data;
wx.previewImage({
current: 'register_cert', // 当前显示图片的http链接
urls: [register_cert] // 需要预览的图片http链接列表
})
},
goSelectPatient() {
//判断是否能接诊
@ -498,7 +506,7 @@ bindchange(e){
},
// 禁止用户滑动
catchTouchMove() {
return false;
//return false;
},
getDeatil(id) {

View File

@ -1,6 +1,7 @@
{
"usingComponents": {
"van-rate": "@vant/weapp/rate/index",
"van-image": "@vant/weapp/image/index",
"van-popup": "@vant/weapp/popup/index",
"dialog":"../../../components/dialog/dialog",
"nav":"../../../components/nav/nav"

View File

@ -161,7 +161,8 @@
</view>
</scroll-view>
<swiper current="{{currentData}}" class="swiperbox" bindchange="bindchange" style="height:{{tab3Height+'px'}};margin-top:{{tab3Height==0?'0rpx':'20rpx'}}" disable-touch="{{true}}">
<swiper-item catchtouchmove="catchTouchMove">
<swiper-item catchtouchmove="catchTouchMove" class="swipercell">
<view class="swiper-item" id="swiperitem1">
<image src="{{img_host+'/tuwen_bg.png'}}" class="itembg" style="height:auto;" mode="widthFix" wx:if="{{canTuwen}}"></image>
@ -272,6 +273,7 @@
</view>
</swiper-item>
</swiper>
</view>
<!-- <view class="drbox" wx:if="{{current_inquiry_config}}">
@ -402,6 +404,25 @@
<view class="line"></view>
</view>
<view class="borderbox" wx:if="{{register_cert}}">
<view class="rowintro">
<image src="../../../assets/images/cert.png" style="width:36rpx"></image>
<text>医师注册证</text>
</view>
<view class="goodjob" style="margin-top:20rpx">
<van-image
width="100"
height="100"
fit="contain"
bindtap="previewImg"
src="{{register_cert}}"
/>
</view>
<view class="line"></view>
</view>
</view>
</view>
</van-popup>

View File

@ -580,7 +580,19 @@ text-decoration: line-through;
}
.swiperbox{
margin-top: 35rpx;
position: relative;
}
.swiperbox::after{
content:'';
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 2;
position: absolute;
}
.swiper-item{
border-radius: 20rpx;

View File

@ -0,0 +1,385 @@
// pages/expertConsult/expertConsult.js
const app = getApp()
import {doctorList} from "../../../api/consultExpert"
import {AllKepuList} from "../../../api/common"
import {throttle} from "../../../utils/util"
Page({
/**
* 页面的初始数据
*/
data: {
page:1,
pageNumber:10,
isTriggered:false,
show:false,
expertise_id:21,
province_id:'',
city_id:'',
keyword:'',
articeList:[],
lock:false,
is_online:0,
sort_order:1,
inquiry_type:'1,3',
inquiry_mode:'1,2',
navName:"专家问诊",
scrollHeight:53,
sickList:[],
img_host:'https://oss.prod.applets.igandanyiyuan.com/applet/patient/static',
option: [
{ text: '综合', value: 1 },
{ text: '响应时间快', value: 2 },
{ text: '价格从低到高', value: 3 },
{ text: '价格从高到低', value: 4 },
{ text: '服务数从多到少', value: 5},
],
overlay:true,
showBg:false,
selectkind:false,
selectkarea:false,
position:"全国",
doctorList: [],
triggered: false,
scrollTop: 0,
offsetTop: 0,
columns: [
{
values:[],
className: 'column1',
},
{
values: [],
className: 'column2',
defaultIndex: 1,
}
],
isLoding:false,
tabId:-1
},
goBack(){
wx.navigateBack({
delta: 1,
})
},
getArticleList(){
AllKepuList({
basic_class_id:1
}).then((res)=>{
console.log(res);
this.setData({
articeList:res
});
})
},
goArticle:throttle(function(event){
app.method.navigateTo({
url:"/patient/pages/linkPage/linkPage?url="+encodeURIComponent(event.currentTarget.dataset.url)
})
}),
goHivList:throttle(function(){
app.method.navigateTo({
url:"/patient/pages/kepuList/kepuList?title="+encodeURIComponent('关于HIV你知道多少')+"&id=1"
})
}),
toggleOnline(){
this.setData({
is_online:this.data.is_online==0?1:0
})
this.onfresh();
},
transforpage(arr) {
const pages = [];
let L= Math.ceil(arr.length / 2);
arr.forEach((item, index) => {
const page = Math.floor(index / L)
if (!pages[page]) {
pages[page] = []
}
pages[page].push(item)
});
return pages
},
goSearch:throttle(function(){
wx.hideKeyboard();
app.method.navigateTo({
url: '/patient/pages/search/search',
})
}),
switchTab(event){
this.setData({
tabId:event.target.dataset.id,
expertise_id:event.target.dataset.id
})
this.onfresh();
},
changeSorder({ detail }){
this.setData({
sort_order: detail,
selectkind:true
});
this.onfresh();
},
getIptvalue(event){
this.setData({
keyword:event.detail.value
})
this.onfresh();
},
goExpertDetail:throttle(function(event){
app.method.navigateTo({
url: '/patient/pages/expertDetail/expertDetail?doctor_id='+event.currentTarget.dataset.doctorid
})
}),
openCity(){
this.setData({
show:true,
overlay:false
})
},
closeCity(){
this.setData({
show:false,
overlay:true
})
},
onChange(event) {
const { picker, value, index } = event.detail;
if(index===0){
let currentIndex=picker.getIndexes()[0];
if(provinceArr[currentIndex].area_id){
this.cityList(provinceArr[currentIndex].area_id);
}else{
this.setData({
'columns[1].values':[]
})
}
}
},
onConfirm(event) {
const { picker, value, index } = event.detail;
let currentPosition=''
for (let index = 0; index < value.length; index++) {
if(!value[0].area_id){
currentPosition="全国";
this.setData({
province_id:'',
city_id:''
})
}else{
currentPosition+=value[index].area_name;
if(index===0){
this.setData({
province_id:value[index].area_id
})
}else if(index==1){
this.setData({
city_id:value[index].area_id
})
}
}
}
this.setData({
show:false,
selectarea:true,
position:currentPosition
})
this.selectComponent('#item').toggle();
this.onfresh();
},
onCancel() {
this.setData({
show:false
})
this.selectComponent('#item').toggle(false);
},
/**
* 生命周期函数--监听页面加载
*/
handleRefresher(){
this.setData({
lock:false,
page:1,
scrollHeight:53,
doctorList:[]
});
this.getDoctorList()
},
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,
showBg:true,
isTriggered:false
});
this.getArticleList();
return false;
}else{
this.setData({
showBg:true,
isTriggered:false,
doctorList:doctorList.concat(res.data)
})
}
})
},
onScroll(event) {
wx.createSelectorQuery().select('#scroller')
.boundingClientRect((res) => {
console.log(event.detail.scrollTop)
if(event.detail.scrollTop>1600){
this.lower();
}
}).exec();
},
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();
}
},
onLoad(options) {
if(options.type=="free"){
wx.setNavigationBarTitle({
title: "特惠问诊"
});
this.setData({
navName:"特惠问诊",
inquiry_type:3,
inquiry_mode:1
})
}else if(options.type=="buyYao"){
wx.setNavigationBarTitle({
title: "问诊购药"
});
this.setData({
navName:"问诊购药",
inquiry_type:4,
inquiry_mode:1
})
}
this.getDoctorList();
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
onRefresh() {
if (this._freshing) return
this._freshing = true
setTimeout(() => {
this.setData({
triggered: false,
})
this._freshing = false
}, 3000)
},
onRestore(e) {
console.log('onRestore:', e)
},
onAbort(e) {
console.log('onAbort', e)
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
this.setData({
img_host:app.hostConfig().imghost
});
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
onShareTimeline(){
return {
title:'恐艾咨询', // 分享出去的标题
path:'patient/pages/hivConsult/hivConsult' // 分享出去的页面路径
}
},
// 分享到微信好友
onShareAppMessage(res) {
return {
title:'恐艾咨询', // 分享出去的标题
path:'patient/pages/hivConsult/hivConsult' // 分享出去的页面路径
}
},
/**
* 用户点击右上角分享
*/
})

View File

@ -0,0 +1,11 @@
{
"usingComponents": {
"van-image": "@vant/weapp/image/index",
"van-popup": "@vant/weapp/popup/index",
"van-sticky": "@vant/weapp/sticky/index",
"nav":"../../../components/nav/nav"
},
"navigationStyle":"custom",
"disableScroll":true,
"navigationBarTitleText": "肝胆相照互联网医院"
}

View File

@ -0,0 +1,89 @@
<!--pages/expertConsult/expertConsult.wxml-->
<nav navName="HIV"></nav>
<wxs src="../../../filters/filter.wxs" module="moduleFilter"></wxs>
<view class="wraper" style="height:calc(100vh - 180rpx);">
<scroll-view scroll-y style="overflow-y: scroll;width: 100%;flex:1;" bindrefresherrefresh="handleRefresher" refresher-triggered="{{isTriggered}}"
bindscroll="onScroll"
refresher-threshold="800" refresher-enabled="true" bindscrolltolower="lower" id="scroller" bounces="false">
<image src="{{img_host+'/hiv_bg.png'}}" mode="widthFix" class="bananerimg"/>
<view wx:if="{{doctorList.length>0}}" style="margin:-120rpx 20rpx 0;background: #fff;border-radius: 20rpx;position:realtive; z-index:1;padding-bottom: 20rpx;">
<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 && moduleFilter.formatChufang(item.doctor_inquiry_config)}}">可处方</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 {{(itemName.inquiry_mode==2 && moduleFilter.hasTuWen(item.doctor_inquiry_config))?'videocell':''}}" wx:for="{{item.doctor_inquiry_config}}" wx:for-item="itemName" wx:if="{{((itemName.inquiry_type==1 && !(moduleFilter.hasFree(item.doctor_inquiry_config) && itemName.inquiry_mode==1 && itemName.is_enable==1) && ((itemName.inquiry_mode==1 && itemName.is_enable==1) || itemName.inquiry_mode==2) ) || itemName.inquiry_type==3 && itemName.is_enable==1)}}">
<view class="pricecell" wx:if="{{itemName.inquiry_type==3 }}">图文问诊:<text>¥{{itemName.inquiry_price}}</text>
</view>
<view class="pricecell" wx:elif="{{itemName.inquiry_type==1 && !(moduleFilter.hasFree(item.doctor_inquiry_config) && itemName.inquiry_mode==1) && ((itemName.inquiry_mode==1 && itemName.is_enable==1) || itemName.inquiry_mode==2) }}" > {{itemName.inquiry_mode==1?'图文问诊':itemName.inquiry_mode==2?'视频问诊':'其他问诊'}}<text class="{{(itemName.is_enable==0 && itemName.inquiry_mode==2)?'priceactive':'' }}">¥{{itemName.inquiry_price}}</text></view>
</view>
</view>
</view>
</view>
</view>
<!-- <view class="nonedata" wx:else>暂无数据!</view> -->
<view class="bar_classify" ></view>
<view class="classify" wx:if="{{articeList.length>0}}">
<view class="titlename">
<view>关于HIV你知道多少</view>
<view class="more" bind:tap="goHivList">更多<image src="{{img_host+'/right.png'}}" mode="widthFix" class="moreimg"></image></view>
</view>
<view class="classifybox">
<view class="cell" wx:for="{{articeList}}" wx:key="article_id" bind:tap="goArticle" data-url="{{item.article_url}}">
<view class="left">
<view class="title">{{item.article_title}}</view>
<view class="origin">
<image src="{{item.article_science_source.source_image}}" mode="heightFix" class="logo" wx:if="{{item.article_science_source.source_image}}"/>
<view class="originname">{{item.article_science_source.source_name}}</view>
</view>
</view>
<van-image class="article_img" width="254rpx" height="154rpx" radius="10rpx" fit="cover" src="{{item.article_image}}" />
</view>
</view>
</view>
</scroll-view>
</view>
<van-popup
show="{{ show }}"
round
position="bottom"
custom-style="height: 50%"
bind:close="onClose"
>
<van-picker columns="{{ columns }}" loading="{{isLoding}}" show-toolbar
title="选择城市"
columns="{{ columns }}"
value-key="area_name"
bind:cancel="onCancel"
bind:change="onChange"
bind:confirm="onConfirm"/>
</van-popup>

View File

@ -0,0 +1,401 @@
/* pages/expertConsult/expertConsult.wxss */
.wraper{
background: #F2F2F2;
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: 30rpx;
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;
height: 60rpx;
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{
overflow: hidden;
margin-top: 172rpx;
display: flex;
flex-direction: column;
}
.bananerimg{
position: relative;
width:750rpx;
z-index:-2;
}
.scrollwraper{
overflow: hidden;
flex:1;
overflow-y: scroll;
-webkit-overflow-scrolling: touch;
}
.dropdown{
width:100%;
position: relative;
justify-content:center;
background-color: #fff;
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%;
font-size: 30rpx;
}
.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;
}
.classify{
overflow: hidden;
margin:0 20rpx;
padding-bottom: 40rpx;
border-radius: 20rpx;
}
.bar_classify{
background: #F2F2F2;
width:100%;
height:30rpx;
}
.classify .cell{
overflow: hidden;
border-bottom: 1rpx solid #E7E7E7;
display: flex;
align-items: center;
justify-content: space-between;
padding:30rpx 30rpx;
background-color: #fff;
}
.classify .article_img{
border-radius: 10rpx;
width: 254rpx;
object-fit: cover;
height: 154rpx;
}
.classify .title{
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
font-weight: 400;
line-height: 43rpx;
font-size: 30rpx;
color: #333333;
}
.classify .origin{
display: flex;
align-items:center ;
}
.classify .titlename{
justify-content: space-between;
border-bottom: 1rpx solid #E7E7E7;
height: 106rpx;
background: #FFFFFF;
display: flex;
padding:0 32rpx;
font-weight: 500;
font-size: 34rpx;
color: #333333;
align-items: center;
}
.classify .more{
font-size: 30rpx;
display: flex;
align-items: center;
}
.moreimg{
width:14rpx;
margin-left: 10rpx;
}
.classify .left{
flex:1;
margin-right: 28rpx;
display: flex;
height: 154rpx;
flex-direction: column;
justify-content: space-between;
}
.classify .originname{
font-size: 24rpx;
color: #666666;
}
.classify .logo{
margin-right: 10rpx;
height:38rpx;
}

66
patient/pages/kepuList.js Normal file
View File

@ -0,0 +1,66 @@
// patient/pages/kepuList.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

View File

@ -0,0 +1,2 @@
<!--patient/pages/kepuList.wxml-->
<text>patient/pages/kepuList.wxml</text>

View File

@ -0,0 +1 @@
/* patient/pages/kepuList.wxss */

View File

@ -0,0 +1,147 @@
// patient/pages/kepuList/kepuList.js
import {kepuList} from "../../../api/common"
import {throttle} from "../../../utils/util"
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
isTriggered:false,
page:1,
title:'科普文章',
keyword:'',
basic_class_id:'',
lock:false,
list:[]
},
handleRefresher(){
this.setData({
lock:false,
page:1,
list:[]
});
this.getList()
},
getList(){
let {page,keyword,basic_class_id}=this.data;
kepuList({
keyword:keyword,
page:page,
basic_class_id,
per_page:10
}).then((res)=>{
console.log(res)
let {list}=this.data;
if(res.data.length==0){
this.setData({
lock:true,
isTriggered:false
});
return false;
}else{
this.setData({
isTriggered:false,
list:list.concat(res.data)
})
}
console.log(this.data.list)
})
},
goArticle:throttle(function(event){
app.method.navigateTo({
url:"/patient/pages/linkPage/linkPage?url="+encodeURIComponent(event.currentTarget.dataset.url)
})
}),
onScroll(event) {
wx.createSelectorQuery().select('#scroller')
.boundingClientRect((res) => {
// console.log(event.detail.scrollTop)
if(event.detail.scrollTop>1400){
this.lower();
}
}).exec();
},
lower(e) {
let {lock}=this.data;
let addPage=this.data.page+1;
if(!lock){
this.setData({
page:addPage
});
this.getList();
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
if(options.title){
this.setData({
title: decodeURIComponent(options.title)
});
}
if(options.id){
this.setData({
basic_class_id:options.id
})
}
this.getList()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

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

View File

@ -0,0 +1,18 @@
<!--patient/pages/kepuList/kepuList.wxml-->
<nav navName="{{title}}"></nav>
<view class="scrollwraper">
<scroll-view scroll-y style="width: 100%;height:100%" bindrefresherrefresh="handleRefresher" refresher-triggered="{{isTriggered}}" refresher-threshold="200" refresher-enabled="true" bindscrolltolower="lower" id="scroller" bounces="false" bindscroll="onScroll">
<view class="cell" wx:for="{{list}}" wx:key="article_id" bind:tap="goArticle" data-url="{{item.article_url}}">
<view class="left">
<view class="title">{{item.article_title}}</view>
<view class="origin">
<image src="{{item.article_science_source.source_image}}" mode="heightFix" class="logo" wx:if="{{item.article_science_source.source_image}}"/>
<view class="originname">{{item.article_science_source.source_name}}</view>
</view>
</view>
<van-image class="article_img" width="254rpx" height="154rpx" radius="10rpx" fit="cover" src="{{item.article_image}}" />
<!-- <image src="{{item.article_image}}" mode="" class="article_img"/> -->
</view>
</scroll-view>
</view>

View File

@ -0,0 +1,53 @@
/* patient/pages/kepuList/kepuList.wxss */
.scrollwraper{
margin-top: 172rpx;
height:calc(100vh - 172rpx);
}
.cell{
overflow: hidden;
border-bottom: 1rpx solid #E7E7E7;
display: flex;
margin:0 30rpx;
align-items: center;
justify-content: space-between;
padding:30rpx 0;
background-color: #fff;
}
.article_img{
border-radius: 10rpx;
width: 254rpx;
object-fit: cover;
height: 154rpx;
}
.title{
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
font-weight: 400;
line-height: 43rpx;
font-size: 30rpx;
color: #333333;
}
.origin{
display: flex;
align-items:center ;
}
.left{
flex:1;
margin-right: 28rpx;
display: flex;
height: 154rpx;
flex-direction: column;
justify-content: space-between;
}
.originname{
font-size: 24rpx;
color: #666666;
}
.logo{
margin-right: 10rpx;
height:38rpx;
}

View File

@ -97,7 +97,7 @@ Page({
this.setData({
order_product:data.order_product,
order_product_item:data.order_product_item,
user_doctor:data.user_doctor
user_doctor:data.original_doctor
});
})
},

View File

@ -15,7 +15,7 @@
<view class="row">
<view class="name"><text>医</text><text>生</text></view>
<view class="dot"></view>
<view class="desc">{{item.doctor_name}} {{item.user_doctor.doctor_title}} </view>
<view class="desc">{{item.original_doctor.user_name}} {{item.original_doctor.doctor_title}} </view>
</view>
<view class="row">
<view class="name"><text>患</text><text>者</text></view>

View File

@ -26,6 +26,7 @@ Page({
showOrderMsg:false,
showMsgOrder:false,
time: '',
canPay:true,
inquiry_no: '',
amount_total: "",
discount_amount:'',
@ -207,11 +208,15 @@ Page({
},
handleThrottle:throttle(function() {
console.log(this.data.isLock)
if(!this.data.canPay){
wx.showToast({
title: '订单异常',
icon:'none'
})
return false;
}
if(!this.data.isLock){
console.log(11111)
this.goPayPlatform();
console.log(222222)
this.setData({
isLock:true
});
@ -447,6 +452,13 @@ Page({
})
}
}).catch(error=>{
if(error.code==500){
this.setData({
canPay:false
})
};
})
},
orderMsg(callback){

View File

@ -56,7 +56,7 @@ Page({
} = resdata;
let imgUrl = file.url;
let index = imgUrl.lastIndexOf("/");
let filename = imgUrl.substring(index + 1, imgUrl.length);
let filename = new Date().getTime()+this.data.user_info.patient_id+imgUrl.substring(index + 1, imgUrl.length);
wx.uploadFile({
url: host, // 仅为示例,非真实的接口地址
filePath: file.url,
@ -99,6 +99,7 @@ Page({
const {
file
} = event.detail;
console.log(file)
this.setData({
showCrop:true,
src:file.url
@ -204,6 +205,7 @@ Page({
showCrop:false
})
this.cropper.getImg((obj) => {
console.log(obj)
this.upload(obj)
});
},

View File

@ -8,9 +8,9 @@
<view class="form">
<view class="imgbox">
<image src="{{prescript.prescription_img_oss_path}}" class="prescription" ></image>
<image src="{{prescript.doctor_sign_image}}" mode="aspectFill" class="doctorSign" ></image>
<image src="{{prescript.pharmacist_sign_image}}" class="pharmacistSign" mode="aspectFill"></image>
<image src="{{prescript.hospital_sign_image}}" class="hospitalSign"></image>
<image src="{{prescript.doctor_sign_image}}" mode="aspectFill" class="doctorSign" wx:if="{{prescript.is_converted_pdf==0}}"></image>
<image src="{{prescript.pharmacist_sign_image}}" class="pharmacistSign" wx:if="{{prescript.is_converted_pdf==0}}" mode="aspectFill"></image>
<image src="{{prescript.hospital_sign_image}}" class="hospitalSign" wx:if="{{prescript.is_converted_pdf==0}}" ></image>
</view>

View File

@ -292,8 +292,9 @@ Page({
signature,
host
} = resdata;
let index = File.lastIndexOf("/");
let filename = File.substring(index + 1, File.length);
let index = File.lastIndexOf(".");
let houzhui=File.substring(index, File.length);
let filename = this.data.family_id+new Date().getTime().toString()+(this.data.fileList.length).toString()+houzhui;//File.substring(index + 1, File.length);
return new Promise((resolve, reject) => {
wx.uploadFile({
url: host, // 仅为示例,非真实的接口地址

View File

@ -51,7 +51,6 @@
"tabIndent": "insertSpaces",
"tabSize": 2
},
"libVersion": "2.30.2",
"packOptions": {
"ignore": [],
"include": []

View File

@ -6,5 +6,18 @@
"bigPackageSizeSupport": false
},
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"libVersion": "3.3.0"
"libVersion": "3.9.3",
"condition": {
"miniprogram": {
"list": [
{
"name": "pages_app/myWelfare/myWelfare",
"pathName": "pages_app/myWelfare/myWelfare",
"query": "",
"scene": null,
"launchMode": "default"
}
]
}
}
}

View File

@ -26,9 +26,6 @@
SDKAPPID='1600027911';
break;
case 'trial': //体验版环境
// host =`${Hosts.host_prod}`;
// imghost=`${Hosts.img_prod}`;
// agreehost=`${Hosts.agree_prod}`
host = `${Hosts.host_dev}`;
imghost=`${Hosts.img_dev}`;
agreehost=`${Hosts.agree_dev}`;

View File

@ -120,6 +120,8 @@ function request(url, method, data, loding = false) {
}
reject(res.data);
}else if(Number(res.data.code) == 500){
reject(res.data);
} else {
wx.showToast({
title: res.data.message,
@ -131,6 +133,10 @@ function request(url, method, data, loding = false) {
reject(res.data);
},
fail: function (res) {
if (loding) {
wx.hideLoading()
wx.stopPullDownRefresh();
}
console.log(res)
console.log(2222222222222222);
// wx.showToast({

View File

@ -1,4 +1,7 @@
// router.js
//import {getCurrentPageUrl} from "./getUrl"
module.exports = {
navigateTo(object) {
@ -6,6 +9,25 @@ module.exports = {
let len = pages.length;
let dlt = 0;
let cur_url=object.url;
// let token='';
// const { envVersion } = wx.getAccountInfoSync().miniProgram;
// if(envVersion=='release'){
// token = wx.getStorageSync('AUTH_TOKEN');
// }else{
// token = wx.getStorageSync('DEV_AUTH_TOKEN');
// };
// if(!token){
// if(cur_url.indexOf('/mobileLogin/mobileLogin')!=-1 || cur_url.indexOf('/linkPage/linkPage')!=-1 || cur_url.indexOf('patient/pages/login/login')!=-1 || cur_url.indexOf('index/index') !=-1){
// AnimatorControllerStateModel.log(111)
// wx.reLaunch({
// url: '/patient/pages/login/login'
// });
// }
// };
object.fail=function(error){
console.log(error)