This commit is contained in:
haomingming
2023-03-06 17:57:39 +08:00
parent 3794faceae
commit 1066e37c96
4230 changed files with 193453 additions and 0 deletions
+377
View File
@@ -0,0 +1,377 @@
// Pages/yishi/index/index.js
import { API } from './../../../utils/network/api'
const api = new API()
const app = getApp()
Page({
data: {
title: "肝胆相照互联网医院",
navHeight: 0,
stateHeight: 0,
info:{
user_name: "手机号后四位",
not_accepted_inquiry_num: 6,
accepting_inquiry_num: 12,
info_shiming_status_txt: "未认证",
info_shiming_status: "info_shiming_status_no",
show_info_note: false,
praise_rate: "99%",
avg_response_time: 125,
number_of_fans: 9254,
avatar: "https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/default_photo.png",
reject_prescription_number: false,//处方管理小红点
},
iden_auth_status_txt: "未认证",
multi_point_status_txt: "未认证",
iden_auth_status_url: "/Pages/yishi/identity/index",
multi_point_status_url: "/Pages/yishi/zhiye_identity/index",
current: 0,
autoplay: true,
duration: 500,
interval: 5000,
swiperList: [
`https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/ad1.jpg`,
`https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/ad2.jpg`,
`https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/ad3.jpg`,
],
dialog_visible: false,
dialog_content: "请您先实名认证",
/*
case_module取值
新问诊 0
接诊中 1
多点执业认证 2
简介管理 3
在线问诊管理 4
快速问诊管理 5
义诊管理 6
处方管理 7
联系客服 8
*/
/*
case_status 取值
未实名认证和医师身份认证 0
已实名认证,未医师身份认证 1
已实名认证和医师身份认证,未绑定结算银行卡 2
已实名认证和医生身份认证,已绑定结算银行卡 3
已实名认证和医师身份认证且绑定结算银行卡,开通了在线问诊,未开通多点执业认证 4
*/
mycase: [
{
case_status: 0,
case_module: [0,1,2,3,4,5,6,7,8],
case_text: "未实名认证"
},
{
case_status: 1,
case_module: [0,1,2,3,4,5,6,7,8],
case_text: "未医师身份认证"
},
{
case_status: 2,
case_module: [0,1,4,5,6],
case_text: "未绑定结算银行卡"
},
{
case_status: 3,
case_module: [0,1,5,6,7],
case_text: "请您先设置在线问诊价格"
},
{
case_status: 4,
case_module: [7],
case_text: "请您先进行多点执业认证证"
},
{
case_status: 5,
case_module: [],
case_text: "已全部通过"
},
],
skeleton_loading: true
},
// 获取状态栏信息
getMenuButtonBound() {
let stateHeight = 0; // 接收状态栏高度
const navHeight = wx.getMenuButtonBoundingClientRect().height; // 获取胶囊高度
let top = 0;
wx.getSystemInfo({
success(res) {
stateHeight = res.statusBarHeight;
},
});
top = wx.getMenuButtonBoundingClientRect().top - stateHeight; // 获取top值
console.log('navHeight', navHeight);
console.log('top', top);
this.setData({
// navHeight: navHeight + top * 2, // 导航栏高度
navHeight, // 导航栏高度
stateHeight: stateHeight + top, // 状态栏高度
});
},
onLoad(){
api.yiShiIndex().then(response => {
console.log(response);
let avatar = response.data.info.avatar;
this.setData({
"info.user_name": response.data.info.user_name,
"info.not_accepted_inquiry_num": response.data.info.not_accepted_inquiry_num,
"info.accepting_inquiry_num": response.data.info.accepting_inquiry_num,
"info.praise_rate": response.data.info.praise_rate,
"info.avg_response_time": response.data.info.avg_response_time,
"info.number_of_fans": response.data.info.number_of_fans,
})
if(avatar && (avatar.indexOf("http") == -1)){
avatar = api.getStaticHost() + avatar;
}
this.setData({
"info.avatar": avatar
})
//实名认证
let idcard_status = response.data.info.idcard_status;
//医师身份认证
let iden_auth_status = response.data.info.iden_auth_status;
//多点执业认证
let multi_point_status = response.data.info.multi_point_status;
//绑定结算银行卡
let is_bind_bank = response.data.info.is_bind_bank;
//是否参加专家图文接诊(0:否 1:是)
let is_img_expert_reception = response.data.info.is_img_expert_reception;
this.setData({
"info.idcard_status": idcard_status,
"info.iden_auth_status": iden_auth_status,
"info.multi_point_status": multi_point_status,
"info.is_bind_bank": is_bind_bank,
"info.is_img_expert_reception": is_img_expert_reception,
});
//iden_auth_status 0:未认证 1:认证通过 2:审核中 3:认证失败
if(iden_auth_status == 0) this.setData({iden_auth_status_txt: "未认证"});
if(iden_auth_status == 1) this.setData({iden_auth_status_txt: "认证通过", iden_auth_status_url: "/Pages/yishi/attestation/index"});
if(iden_auth_status == 2) this.setData({iden_auth_status_txt: "审核中"});
if(iden_auth_status == 3) this.setData({iden_auth_status_txt: "认证失败"});
//multi_point_status 0:未认证 1:认证通过 2:审核中 3:认证失败
if(multi_point_status == 0) this.setData({multi_point_status_txt: "未认证"});
if(multi_point_status == 1) this.setData({multi_point_status_txt: "认证通过", multi_point_status_url: "/Pages/yishi/practicing/index"});
if(multi_point_status == 2) this.setData({multi_point_status_txt: "审核中"});
if(multi_point_status == 3) this.setData({multi_point_status_txt: "认证失败"});
//平均响应时间
var avg_response_time = response.data.info.avg_response_time;
if(avg_response_time != "0"){
this.setData({"info.show_info_note": true});
}
//处方管理小红点
var reject_prescription_number = response.data.info.reject_prescription_number;
if(reject_prescription_number){
this.setData({"info.reject_prescription_number": reject_prescription_number});
}
this.checkStatus();
this.setData({
skeleton_loading: false
})
}).catch(errors => {
console.error(errors);
})
},
onShow: function () {
if (typeof this.getTabBar === 'function' && this.getTabBar()) {
this.getTabBar().setData({
currentTab: 0 //数字是当前页面在tabbar的索引,如我的查询页索引是2,因此这边为2,同理首页就为0,审批页面为1
})
}
this.getMenuButtonBound();
},
onADChange(){
// console.log("onADChange");
},
go(e){
//实名认证
let idcard_status = this.data.info.idcard_status;
//医师身份认证
let iden_auth_status = this.data.info.iden_auth_status;
//多点执业认证
let multi_point_status = this.data.info.multi_point_status;
//绑定结算银行卡
let is_bind_bank = this.data.info.is_bind_bank;
//是否参加专家图文接诊(0:否 1:是)
let is_img_expert_reception = this.data.info.is_img_expert_reception;
let status = 0;
// 未实名认证和医师身份认证 0
// 已实名认证,未医师身份认证 1
// 已实名认证和医师身份认证,未绑定结算银行卡 2
// 已实名认证和医生身份认证,已绑定结算银行卡 没开通了在线问诊3
// 已实名认证和医师身份认证且绑定结算银行卡,开通了在线问诊,未开通多点执业认证 4
// 已实名认证和医师身份认证且绑定结算银行卡,开通了在线问诊,已开通多点执业认证 5
if(idcard_status == 0 && iden_auth_status == 0){
status = 0;
}else if(idcard_status == 1 && iden_auth_status == 0){
status = 1;
}else if(idcard_status == 1 && iden_auth_status == 1 && is_bind_bank == 0){
status = 2;
}else if(idcard_status == 1 && iden_auth_status == 1 && is_bind_bank == 1 && is_img_expert_reception == 0){
status = 3;
}else if(idcard_status == 1 && iden_auth_status == 1 && is_bind_bank == 1 && is_img_expert_reception == 1 && multi_point_status == 0){
status = 4;
}else{
status = 5;
}
let now_case = this.data.mycase.find(item => {
return item.case_status == status;
});
console.log("now_case: ", now_case);
//所属模块
let moudle = e.currentTarget.dataset.moudle;
console.log("moudle: ", moudle);
if(now_case){
let now_moudle = now_case.case_module.find(item => {
return item == moudle;
})
console.log("now_moudle: ", now_moudle);
if(now_moudle != undefined){
this.setData({
dialog_content: now_case.case_text,
dialog_visible: true
});
return;
}
}
app.go(e.currentTarget.dataset.url)
},
confirmDialog(){
this.setData({
dialog_visible: false
})
},
cancelDialog(){
this.setData({
dialog_visible: false
})
},
checkStatus(){
//实名认证
let idcard_status = this.data.info.idcard_status;
//医师身份认证
let iden_auth_status = this.data.info.iden_auth_status;
//多点执业认证
let multi_point_status = this.data.info.multi_point_status;
if(idcard_status == 0){
this.setData({
dialog_content: "请您先实名认证",
dialog_visible: true
});
return false;
}
if(idcard_status == 2){
this.setData({
"info.info_shiming_status_txt": "认证失败",
"info.info_shiming_status": "info_shiming_status_yes",
dialog_content: "实名认证失败",
dialog_visible: true
});
this.setData({
});
return false;;
}
if(iden_auth_status == 0){
this.setData({
"info.info_shiming_status_txt": "前往医师身份认证",
"info.info_shiming_status": "info_shiming_status_yes",
dialog_content: "请您前往医师身份认证",
dialog_visible: true
});
return false;
}
if(iden_auth_status == 2){
this.setData({
"info.info_shiming_status_txt": "审核中",
"info.info_shiming_status": "info_shiming_status_yes",
dialog_content: "您的医师身份认证正在审核中",
dialog_visible: true
});
return false;
}
if(iden_auth_status == 3){
this.setData({
"info.info_shiming_status_txt": "认证失败",
"info.info_shiming_status": "info_shiming_status_yes",
dialog_content: "您的医师身份认证失败",
dialog_visible: true
});
return false;
}
//多点执业认证
if(multi_point_status == 0){
this.setData({
"info.info_shiming_status_txt": "前往多点执业认证",
"info.info_shiming_status": "info_shiming_status_yes",
dialog_content: "请您先进行多点执业认证",
dialog_visible: true
});
return false;
}
if(multi_point_status == 2){
this.setData({
"info.info_shiming_status_txt": "审核中",
"info.info_shiming_status": "info_shiming_status_yes",
dialog_content: "您的多点执业认证正在审核中",
dialog_visible: true
});
return false;
}
if(multi_point_status == 3){
this.setData({
"info.info_shiming_status_txt": "认证失败",
"info.info_shiming_status": "info_shiming_status_yes",
dialog_content: "您的多点执业认证失败",
dialog_visible: true
});
return false;
}
//绑定结算银行卡
var is_bind_bank = this.data.info.is_bind_bank;
if(is_bind_bank == 0){
this.setData({
"info.info_shiming_status_txt": "绑定结算银行卡",
"info.info_shiming_status": "info_shiming_status_yes",
dialog_content: "请您先绑定结算银行卡",
dialog_visible: true
});
return false;
}
//开启在线问诊
var is_img_expert_reception = this.data.info.is_img_expert_reception;
if(is_img_expert_reception == 0){
this.setData({
"info.info_shiming_status_txt": "开启在线问诊",
"info.info_shiming_status": "info_shiming_status_yes",
multi_point_status_url: "/Pages/yishi/onlinesetup/index",
dialog_content: "请您先前往在线问诊管理中开通在线问诊",
dialog_visible: true
});
return false;
}
this.setData({"info.info_shiming_status_txt": "去接诊"});
this.setData({"info.info_shiming_status": "info_shiming_status_yes"});
return true;
}
})
+12
View File
@@ -0,0 +1,12 @@
{
"component": true,
"usingComponents": {
"t-avatar": "tdesign-miniprogram/avatar/avatar",
"van-image": "@vant/weapp/image/index",
"van-button": "@vant/weapp/button/index",
"t-swiper": "tdesign-miniprogram/swiper/swiper",
"t-swiper-nav": "tdesign-miniprogram/swiper-nav/swiper-nav",
"t-badge": "tdesign-miniprogram/badge/badge",
"t-dialog": "tdesign-miniprogram/dialog/dialog"
}
}
+155
View File
@@ -0,0 +1,155 @@
<view class="container">
<!-- 顶部背景 -->
<view class="top_bk"></view>
<!-- 顶部标题 -->
<view class="title"
style="top:0;padding-top: {{stateHeight}}px;height: {{navHeight + 10}}px;line-height: {{navHeight}}px;">{{ title }}</view>
<!-- 用户信息 -->
<view class="info_box" style="margin-top: {{stateHeight+navHeight+10}}px;">
<view class="info">
<view class="info_photo">
<!-- 跳转我的信息 -->
<navigator url="/Pages/yishi/myinfo/index" open-type="navigate" hover-class="other-navigator-hover">
<t-avatar alt="头像" class="avatar" size="large" image="{{info.avatar}}" />
</navigator>
</view>
<view class="info_content">
<view class="info_mobile">{{info.user_name}}</view>
<view class="info_wenzhen">
<view bindtap="go" data-moudle="0">新问诊:{{info.not_accepted_inquiry_num}}</view>
<view bindtap="go" data-moudle="1">接诊中:{{info.accepting_inquiry_num}}</view>
</view>
</view>
<view class="info_shiming">
<view class="info_shiming_status {{info.info_shiming_status}}">{{info.info_shiming_status_txt}}</view>
</view>
</view>
<view class="info_note" wx:if="{{info.show_info_note}}">
<view class="haoping info_note_item">
<text class="info_note_txt">好评率</text><text class="info_note_num"> {{info.praise_rate}}%</text>
</view>
<view class="time info_note_item">
<text class="info_note_txt">响应时间</text><text class="info_note_num"> {{info.avg_response_time}} </text><text class="info_note_txt">分钟</text>
</view>
<view class="follow info_note_item">
<text class="info_note_txt">关注数</text><text class="info_note_num"> {{info.number_of_fans}}</text>
</view>
</view>
</view>
<!-- 认证信息 -->
<view class="renzhen">
<view class="renzheng_left">
<view class="renzheng_content_left">
<view class="renzheng_content_name">医师身份认证</view>
<view class="renzheng_content_status">
<van-button round plain bind:click="go" data-url="/Pages/yishi/identity/index"
custom-style="background-color: #E0FFFE; height: 45rpx; letter-spacing: 3rpx; font-size: 26rpx;"
color="#3CC7C0" type="info" size="small">{{ iden_auth_status_txt }}></van-button>
</view>
</view>
<view class="renzheng_content_right">
<image class="renzheng_content_right_img"
mode="widthFix"
src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/yishirenzheng.png"
/>
</view>
</view>
<view class="renzheng_right">
<view class="renzheng_content_left">
<view class="renzheng_content_name">多点执业认证</view>
<view class="renzheng_content_status">
<van-button round plain bind:click="go" data-moudle="2" data-url="/Pages/yishi/zhiye_identity/index"
custom-style="background-color: #FFF5E0; height: 45rpx; letter-spacing: 3rpx; font-size: 26rpx;"
color="#FC7E00" type="info" size="small">{{ multi_point_status_txt }}></van-button>
</view>
</view>
<view class="renzheng_content_right">
<image class="renzheng_content_right_img"
mode="widthFix"
src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/zhiyerenzheng.png"
/>
</view>
</view>
</view>
<!-- 广告版块 -->
<view class="ad">
<t-swiper
height="110rpx"
current="{{current}}"
autoplay="{{autoplay}}"
duration="{{duration}}"
interval="{{interval}}"
navigation="{{ { type: 'dots' } }}"
list="{{swiperList}}"
bind:click="onTap"
bind:change="onADChange"
>
</t-swiper>
</view>
<!-- 功能模块 -->
<view class="fun_box">
<view bindtap="go" data-moudle="3" data-url="/Pages/yishi/myprofile/index" class="fun_box_item">
<image class="fun_box_item_img"
mode="widthFix"
width="70rpx"
custom-style="width: 70rpx;"
src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/jianjie.png"
/>
<text class="fun_box_item_txt">我的简介</text>
</view>
<view bindtap="go" data-moudle="4" data-url="/Pages/yishi/onlinesetup/index" class="fun_box_item">
<image class="fun_box_item_img"
mode="widthFix"
src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/zaixian.png"
/>
<text class="fun_box_item_txt">在线问诊</text>
</view>
<view bindtap="go" data-moudle="5" data-url="/Pages/yishi/kuaisusetup/index" class="fun_box_item">
<image class="fun_box_item_img"
mode="widthFix"
src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/kuaisu.png"
/>
<text class="fun_box_item_txt">快速问诊</text>
</view>
<view bindtap="go" data-moudle="6" data-url="/Pages/yishi/yizhensetup/index" class="fun_box_item">
<image class="fun_box_item_img"
mode="widthFix"
src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/yizhen.png"
/>
<text class="fun_box_item_txt">公益问诊</text>
</view>
<view bindtap="go" data-moudle="7" data-url="/Pages/yishi/chufangsetup/index" class="fun_box_item">
<image class="fun_box_item_img"
mode="widthFix"
src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/chufang.png"
/>
<view class="fun_box_item_txt">
<t-badge dot="{{info.reject_prescription_number ? true : false}}" offset="{{ ['-14rpx', '10rpx'] }}" class="wrapper" content="处方管理" />
</view>
</view>
<view class="fun_box_item" bindtap="go" data-moudle="8">
<image class="fun_box_item_img"
mode="widthFix"
src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/kefu.png"
/>
<text class="fun_box_item_txt">联系客服</text>
</view>
</view>
<t-dialog
visible="{{ dialog_visible }}"
title="温馨提示"
content="{{dialog_content}}"
>
<view slot="cancel-btn" class="dialog dialog_cancel_btn" bindtap="cancelDialog">
取消
</view>
<view slot="confirm-btn" class="dialog dialog_confirm_btn" bindtap="confirmDialog">
确定
</view>
</t-dialog>
</view>
+204
View File
@@ -0,0 +1,204 @@
.container{
width: 100vw;
}
.top_bk{
position: fixed;
top: -2230rpx;
left: 50%;
transform: translateX(-50%);
width: 2500rpx;
height: 2500rpx;
background-color: #3CC7C0;
border-radius: 50%;
z-index: -99;
}
.title{
position: fixed;
letter-spacing: 3rpx;
margin-left: 5vw;
font-size: 35rpx;
color: #fff;
background-color: #3CC7C0;
width: 100%;
z-index: 999;
}
.info_box{
width: 90vw;
margin: 30rpx auto;
display: flex;
padding: 20rpx 0;
flex-direction: column;
background-color: rgb(255, 255, 255);
border-radius: 10rpx;
box-shadow: 0px 2px 4px 0px rgba(0,0,0,0.06);
}
.info{
display: flex;
align-items: center;
justify-content: space-around;
}
.info_photo{
margin-left: 20rpx;
flex: 1;
}
.info_content{
color: #000;
flex: 4;
display: flex;
flex-direction: column;
justify-content: space-between;
padding-left: 20rpx;
}
.info_mobile{
font-size: 36rpx;
letter-spacing: 3rpx;
}
.info_wenzhen{
margin-top: 10rpx;
font-size: 28rpx;
color: #666666;
display: flex;
}
.info_shiming{
flex: 2;
display: flex;
justify-content: center;
}
.info_shiming_status{
padding: 15rpx 20rpx 15rpx 20rpx;
border-radius: 10rpx;
margin-right: 10rpx;
font-size: 30rpx;
}
.info_shiming_status_no{
background-color: rgb(207, 207, 214);
}
.info_shiming_status_yes{
background-color: #3CC7C0;
color: #fff;
}
.info_note{
color: rgb(122, 121, 121);
display: flex;
justify-content: space-around;
align-items: center;
text-align: center;
margin-top: 20rpx;
}
.info_note_txt{
font-size: 28rpx;
color: #666666;
}
.info_note_item{
flex: 3;
}
.time{
flex: 4;
}
.info_note_num{
color: #E34D59;
font-weight: 600;
font-size: 36rpx;
}
.renzhen{
width: 90vw;
margin: 30rpx auto;
display: flex;
}
.renzheng_left{
flex: 1;
background-color: #E0FFFE;
display: flex;
align-items: center;
padding: 20rpx 0;
box-shadow: 0px 2px 4px 0px rgba(0,0,0,0.06);
}
.renzheng_right{
flex: 1;
background-color: #FFF5E0;
margin-left: 20rpx;
display: flex;
align-items: center;
box-shadow: 0px 2px 4px 0px rgba(0,0,0,0.06);
}
.renzheng_content_left{
flex: 2;
display: flex;
flex-direction: column;
padding: 0 0rpx 0 20rpx;
}
.renzheng_content_name{
font-size: 34rpx;
}
.renzheng_content_status{
margin-top: 20rpx;
}
.renzheng_content_right{
flex: 1;
}
.renzheng_content_right_img{
width: 100%;
}
.ad{
padding: 20rpx 20rpx 0 20rpx;
width: calc(90vw - 40rpx);
height: 150rpx;
margin: 0 auto;
box-shadow: 0px 2px 10px 0px rgba(0,0,0,0.1);
border-radius: 10rpx;
background-color: rgb(255, 255, 255);
}
.t-swiper-nav--bottom {
bottom: -24rpx !important;
}
.t-swiper-nav__dots-item {
background: var(--td-swiper-nav-dot-color, var(--td-font-white-2, rgb(107, 106, 106))) !important;
}
.t-swiper-nav__dots-item--active {
background-color: var(--td-swiper-nav-dot-active-color, var(--td-font-white-1, #3CC7C0)) !important;
}
.fun_box{
width: 90vw;
margin: 30rpx auto 0 auto;
padding: 20rpx 0;
box-shadow: 0px 2px 10px 0px rgba(0,0,0,0.1);
display: flex;
flex-wrap: wrap;
justify-content: space-around;
}
.fun_box_item{
width: 40vw;
height: 150rpx;
background-color: #FAFAFA;
border-radius: 10rpx;
margin: 10rpx 0;
display: flex;
align-items: center;
padding-left: 20rpx;
}
.fun_box_item_img{
flex: 1;
}
.fun_box_item_txt{
flex: 2;
font-size: 30rpx;
color: #333333;
}
.t-class-cancel{
color: #3CC7C0 !important;
}
.dialog{
width: 50%;
text-align: center;
height: 100rpx;
line-height: 100rpx;
}
.dialog_cancel_btn{
border-top: 1px solid #E9E9E9;
border-right: 1px solid #E9E9E9;
}
.dialog_confirm_btn{
border-top: 1px solid #E9E9E9;
color: #3CC7C0;
}