This commit is contained in:
haomingming 2023-04-08 09:51:45 +08:00
parent 6fa2a5eaa9
commit 3f40c4c237
69 changed files with 1274 additions and 338 deletions

View File

@ -18,14 +18,14 @@ Page({
goCheck(e){
console.log(e);
let usertype = e.currentTarget.dataset.usertype;
let url = e.currentTarget.dataset.url;
wx.setStorageSync('usertype', usertype);
wx.setStorageSync('next_url', url);
if(usertype == 2){
app.imInit();
}else{
app.imLogout();
}
let url = e.currentTarget.dataset.url;
wx.setStorageSync('usertype', usertype);
wx.setStorageSync('next_url', url);
let token = wx.getStorageSync('AUTH_TOKEN_'+usertype);
console.log(token);
if(token){

View File

@ -15,33 +15,36 @@
<view class="main content">
<van-tabs active="{{ active }}" color="{{ active_color }}" bind:change="onChange">
<van-tab title="待审核处方">
<view class="item" wx:for="{{data_list_0}}">
<view class="item_txt">
<view class="pre_content">处方订单号:{{item.prescription_code}}</view>
<view class="end_content">
<!-- <navigator url="/Pages/yaoshi/medicalrecord/medicalrecord" open-type="navigate" hover-class="other-navigator-hover">
<van-button type="primary" size="small">查看病例</van-button>
</navigator> -->
<view class="item_list" wx:if="{{data_list_0.length>0}}">
<view class="item" wx:for="{{data_list_0}}">
<view class="item_txt">
<view class="pre_content">处方订单号:{{item.prescription_code}}</view>
<view class="end_content">
<!-- <navigator url="/Pages/yaoshi/medicalrecord/medicalrecord" open-type="navigate" hover-class="other-navigator-hover">
<van-button type="primary" size="small">查看病例</van-button>
</navigator> -->
</view>
</view>
</view>
<view class="item_txt">
<view class="pre_content">开方时间:{{item.created_at}}</view>
<view class="end_content" bindtap="go" data-url="/Pages/yaoshi/medicalrecord/medicalrecord?order_inquiry_id={{item.order_inquiry_id }}&order_prescription_id={{item.order_prescription_id}}">
<van-button type="primary" color="#ec871e" size="small">查看病例</van-button>
<view class="item_txt">
<view class="pre_content">开方时间:{{item.created_at}}</view>
<view class="end_content" bindtap="go" data-url="/Pages/yaoshi/medicalrecord/medicalrecord?order_inquiry_id={{item.order_inquiry_id }}&order_prescription_id={{item.order_prescription_id}}">
<van-button type="primary" color="#ec871e" size="small">查看病例</van-button>
</view>
</view>
</view>
<view class="item_txt">
<view class="pre_content">{{item.patient_name}}/{{item.patient_sex==1?'男':'女'}}/{{item.patient_age}}岁</view>
<view class="end_content" bindtap="go" data-url="/Pages/yaoshi/prescription/prescription?order_prescription_id={{item.order_prescription_id}}">
<van-button type="primary" color="linear-gradient(to bottom, #5EA8D5, #63CFEA)" size="small">去审方</van-button>
<view class="item_txt">
<view class="pre_content">{{item.patient_name}}/{{item.patient_sex==1?'男':'女'}}/{{item.patient_age}}岁</view>
<view class="end_content" bindtap="go" data-url="/Pages/yaoshi/prescription/prescription?order_prescription_id={{item.order_prescription_id}}">
<van-button type="primary" color="linear-gradient(to bottom, #5EA8D5, #63CFEA)" size="small">去审方</van-button>
</view>
</view>
</view>
</view>
<van-empty description="暂无数据" wx:if="{{data_list_0.length == 0}}" />
</van-tab>
<van-tab title="已审核处方">
<view class="item_list" wx:if="{{data_list_1.length>0}}">
<view class="item" wx:for="{{data_list_1}}">
<view class="item_txt">
<view class="pre_content">处方订单号:{{item.prescription_code}}</view>
@ -62,9 +65,11 @@
</view>
</view>
</view>
</view>
<van-empty description="暂无数据" wx:if="{{data_list_1.length == 0}}" />
</van-tab>
<van-tab title="驳回处方">
<view class="item_list" wx:if="{{data_list_2.length>0}}">
<view class="item" wx:for="{{data_list_2}}">
<view class="item_txt">
<view class="pre_content">处方订单号:{{item.prescription_code}}</view>
@ -85,10 +90,11 @@
</view>
</view>
</view>
</view>
<van-empty description="暂无数据" wx:if="{{data_list_2.length == 0}}" />
</van-tab>
<van-tab title="不通过">
<view class="item_list" wx:if="{{data_list_3.length>0}}">
<view class="item" wx:for="{{data_list_3}}">
<view class="item_txt">
<view class="pre_content">处方订单号:{{item.prescription_code}}</view>
@ -109,6 +115,7 @@
</view>
</view>
</view>
</view>
<van-empty description="暂无数据" wx:if="{{data_list_3.length == 0}}" />
</van-tab>
</van-tabs>

View File

@ -69,10 +69,24 @@ page{
.avatar-example--medium:not(:last-child) {
margin-right: 96rpx;
}
.van-tabs__nav{
border-radius: 20rpx !important;
}
.item_list{
padding-bottom: 100rpx;
background-color: #F4F5F7;
border-radius: 20rpx;
}
.item:last-child{
border-bottom-left-radius: 20rpx;
border-bottom-right-radius: 20rpx;
}
.item{
border-top: solid rgb(187, 185, 185) 1rpx;
width: 95%;
margin: 10rpx auto;
width: 100%;
margin: 0 auto;
background-color: #fff;
padding: 20rpx 0;
}
.item_txt{
display: flex;

View File

@ -24,7 +24,7 @@ page{
display:inline-block;
}
.pop{
width: 80vw;
width: 90vw;
margin-bottom: 30rpx;
}
.pop_button{
@ -55,3 +55,6 @@ page{
left:125rpx;
bottom:126rpx;
}
.van-cell__value{
flex: 1.2 !important;
}

View File

@ -44,6 +44,7 @@ Page({
this.setData({
doctor_id: option.doctor_id
})
},
onShow(){
console.log("onShow");
@ -51,21 +52,15 @@ Page({
},
onTabsChange(e){
console.log(e);
let list_name = "appraise_list_" + e.detail.value;
let list_name = "appraise_list_" + e.detail.name;
this.setData({
evaluation_type: e.detail.value,
evaluation_type: e.detail.name,
current_page: 0,
last_page: 0,
[list_name]: []
})
this.getDoctorEvaluationList()
},
onTabsClick(e){
console.log(e);
},
onStickyScroll(e){
return 1;
},
getDoctorEvaluationList(){
//获取评价列表
let params = {};

View File

@ -3,9 +3,11 @@
"usingComponents": {
"te-nav-bar": "/commpents/te_navbar",
"appraise-data": "/commpents/appraise_data/index",
"t-tabs": "tdesign-miniprogram/tabs/tabs",
"t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel",
"van-empty": "@vant/weapp/empty/index"
"van-empty": "@vant/weapp/empty/index",
"van-tab": "@vant/weapp/tab/index",
"van-tabs": "@vant/weapp/tabs/index",
"t-rate": "tdesign-miniprogram/rate/rate",
"van-divider": "@vant/weapp/divider/index"
},
"enablePullDownRefresh": true,
"onReachBottomDistance": 100

View File

@ -1,6 +1,63 @@
<te-nav-bar navbar-data='{{navbarData}}' ></te-nav-bar>
<view class="container" style="height: calc(100vh - 96rpx - {{height}}px);">
<t-tabs
<view class="container">
<van-tabs active="1"
color="#3CC7C0"
title-active-color="#3CC7C0"
bind:change="onTabsChange"
border="{{true}}"
>
<van-tab title="全部({{total_quantity}}" name="1">
<view class="item_list">
<view class="item" wx:for="{{appraise_list_1}}">
<view class="top">
<view class="name">{{item.name_mask}}</view>
<view class="start">
<t-rate value="{{item.avg_score}}" count="{{item.avg_score}}" color="#ED9C00"/>
</view>
</view>
<view class="content">{{item.content}}</view>
<view class="date">{{item.created_at}}</view>
</view>
</view>
<van-empty description="暂无数据" wx:if="{{appraise_list_1.length == 0}}" />
<van-divider contentPosition="center" wx:if="{{appraise_list_1.length > 0 && current_page == last_page}}">到底了~</van-divider>
</van-tab>
<van-tab title="好评({{good_quantity}}" name="2">
<view class="item_list">
<view class="item" wx:for="{{appraise_list_2}}">
<view class="top">
<view class="name">{{item.name_mask}}</view>
<view class="start">
<t-rate value="{{item.avg_score}}" count="{{item.avg_score}}" color="#ED9C00"/>
</view>
</view>
<view class="content">{{item.content}}</view>
<view class="date">{{item.created_at}}</view>
</view>
</view>
<van-empty description="暂无数据" wx:if="{{appraise_list_2.length == 0}}" />
<van-divider contentPosition="center" wx:if="{{appraise_list_2.length > 0 && current_page == last_page}}">到底了~</van-divider>
</van-tab>
<van-tab title="中/差评({{bad_quantity}}" name="3">
<view class="item_list">
<view class="item" wx:for="{{appraise_list_3}}">
<view class="top">
<view class="name">{{item.name_mask}}</view>
<view class="start">
<t-rate value="{{item.avg_score}}" count="{{item.avg_score}}" color="#ED9C00"/>
</view>
</view>
<view class="content">{{item.content}}</view>
<view class="date">{{item.created_at}}</view>
</view>
</view>
<van-empty description="暂无数据" wx:if="{{appraise_list_3.length == 0}}" />
<van-divider contentPosition="center" wx:if="{{appraise_list_3.length > 0 && current_page == last_page}}">到底了~</van-divider>
</van-tab>
</van-tabs>
<!-- <t-tabs
defaultValue="{{1}}"
sticky
stickyProps="{{stickyProps}}"
@ -49,5 +106,5 @@
</view>
<van-empty description="暂无数据" wx:if="{{appraise_list_3.length == 0}}" />
</t-tab-panel>
</t-tabs>
</t-tabs> -->
</view>

View File

@ -4,22 +4,47 @@ page{
.container{
width: 100vw;
}
.t-tab-panel,.t-tabs__content {
background-color: #F6F6F6;
}
.t-tabs__item--active{
color: #49B9AD !important;
font-size: 32rpx !important;
}
.t-tabs__item-inner--line{
font-size: 28rpx !important;
}
.t-tabs__track{
background-color: var(--td-tab-track-color, var(--td-primary-color, #49B9AD)) !important;
}
.item_list{
width: 92vw;
margin: 20rpx auto;
background-color: #fff;
border-radius: 20rpx;
}
.item{
display: flex;
padding: 20rpx;
flex-direction: column;
}
.item:not(:last-child){
border-bottom: 1px solid #E7E7E7;
}
.top{
display: flex;
justify-content: space-between;
align-items: center;
flex: 1;
}
.name{
flex: 1;
font-size: 30rpx;
color: #666666;
}
.start{
flex: 1;
display: flex;
justify-content: flex-end;
}
.content{
flex: 2;
font-size: 34rpx;
color: #333333;
margin: 20rpx 0;
}
.date{
flex: 1;
font-size: 28rpx;
color: #666666;
}

View File

@ -17,26 +17,23 @@ Page({
withdrawal_amount: "xxxx",
income_tax: "xx",
contactKeFu: false,
skeleton_loading: true
skeleton_loading: true,
order_inquiry_ids: ""
},
onLoad(options){
//获取提现数据
api.getDoctorWithdrawal().then(response => {
console.log(response);
if(response.data.bank_card_id){
this.setData({
bank_card_id: response.data.bank_card_id,
bank_icon_path: response.data.bank_icon_path,
bank_name : response.data.bank_name,
bank_card_code_mask: response.data.bank_card_code_mask,
withdrawal_amount: response.data.withdrawal_amount,
income_tax: response.data.income_tax,
skeleton_loading: false
})
}
}).catch(errors => {
console.error(errors);
})
onLoad(option){
let order_inquiry_ids = option.order_inquiry_ids;
let params = {};
if(order_inquiry_ids){
params.order_inquiry_ids = order_inquiry_ids;
this.setData({
"navbarData.back_url": "/Pages/yishi/my/index",
"navbarData.back_url_type": 1,
})
}
this.postDoctorWithdrawalInfo(params);
},
onShow(){
},
contactKeFu(e){
let _this = this;
@ -54,4 +51,23 @@ Page({
})
},
postDoctorWithdrawalInfo(params){
//获取提现数据
api.postDoctorWithdrawalInfo(params).then(response => {
console.log(response);
if(response.data.bank.bank_card_id){
this.setData({
bank_card_id: response.data.bank.bank_card_id,
bank_icon_path: response.data.bank.bank_icon_path,
bank_name : response.data.bank.bank_name,
bank_card_code_mask: response.data.bank.bank_card_code_mask,
withdrawal_amount: response.data.withdrawal_amount,
income_tax: response.data.income_tax,
skeleton_loading: false
})
}
}).catch(errors => {
console.error(errors);
})
}
})

View File

@ -32,7 +32,7 @@
</view>
</view>
<view class="cash_right">
<navigator url="/Pages/yishi/wenzhenorder/index" open-type="navigate" hover-class="other-navigator-hover">
<navigator url="/Pages/yishi/wenzhenorderV2/index" open-type="navigate" hover-class="other-navigator-hover">
<van-button custom-style="text-align: center;border-radius: 10rpx;padding: 20rpx 50rpx;" color="linear-gradient(310deg, #FF931A 0%, #FF931A 0%, #FCB75D 100%);">
查看订单
</van-button>

View File

@ -3,8 +3,6 @@
<view class="tabs">
<t-tabs
defaultValue="{{0}}"
sticky
stickyProps="{{ stickyProps }}"
bind:change="onTabsChange"
bind:click="onTabsClick"
bind:scroll="onStickyScroll"
@ -57,8 +55,8 @@
</t-tab-panel>
<!-- 驳回面板 -->
<t-tab-panel label="驳回" value="2" >
<view class="item_list">
<t-tab-panel label="驳回" value="2" style="overflow: scroll;">
<view class="item_list" style="overflow: scroll;">
<view class="item" wx:for="{{chufang_list_2}}">
<!-- 头部 -->

View File

@ -15,7 +15,7 @@ page{
}
.item_list{
width: 90vw;
margin: 20rpx auto;
margin: 0 auto;
}
.item{
width: 100%;

View File

@ -53,7 +53,7 @@
<!-- <t-cell title="身份证号" hover required arrow note="请填写身份证号"/> -->
<view class="bottom_note">
说明:因互联网医院实行实名制要求,需要您的身份信息,包括姓名,身份证号码。如您不能提供上述信息,将无法完成医师身份认证。
说明:因互联网医院诊疗实名制法规要求,为顺利完成医师身份认证,请您如实提供姓名及身份证等身份信息
</view>
<view class="bottom_next">
<van-button disabled="{{next_btn_disabled}}"

View File

@ -32,7 +32,7 @@ Page({
banner: [],
default_dialog_show: false,//只弹框一次
dialog_visible: false,
dialog_content: "请您先实名认证",
dialog_content: "请您先完成实名认证",
/*
case_module取值
新问诊 0
@ -57,7 +57,7 @@ Page({
{
case_status: 0,
case_module: [0,1,2,3,4,5,6,7,8],
case_text: "请您先实名认证"
case_text: "请您先完成实名认证"
},
{
case_status: 1,
@ -94,7 +94,11 @@ Page({
jiesuan_dialog_show: false,
jiesuan_dialog_visible: false,
funbox_height: 100,
skeleton_loading: true
skeleton_loading: true,
confirmBtn: {
"openType": "contact",
"content": "确认",
}
},
// 获取状态栏信息
getMenuButtonBound() {
@ -141,6 +145,21 @@ Page({
jiesuan_dialog_visible: false
})
},
confirmContactDialog(){
this.setData({
contactKeFu: false
})
},
cancelContactDialog(){
console.log("cancelContactDialogcancelContactDialogcancelContactDialog");
this.setData({
contactKeFu: false
})
},
onPullDownRefresh(){
console.log("用户下拉动作")
this.onShow();
},
onLoad(){
},
@ -153,7 +172,8 @@ Page({
onHide(){
console.log("index onHide() onHide() ");
this.setData({
swiperList: []
swiperList: [],
contactKeFu: false
})
wx.offCopyUrl(this.Copylistener) // 需传入与监听时同一个的函数对象
},
@ -245,6 +265,8 @@ Page({
this.setData({
skeleton_loading: false
})
}).then(res => {
wx.stopPullDownRefresh()
}).catch(errors => {
console.error(errors);
})
@ -295,7 +317,7 @@ Page({
let iden_auth_status = this.data.info.iden_auth_status;
if(idcard_status != 1){
this.setData({
dialog_content: "请您先实名认证",
dialog_content: "请您先完成实名认证",
shiming_status_url: "/Pages/yishi/identity/index",
dialog_visible: true,
});
@ -345,7 +367,7 @@ Page({
});
}
this.setData({
dialog_content: "请您先实名认证",
dialog_content: "请您先完成实名认证",
shiming_status_url: "/Pages/yishi/identity/index",
default_dialog_show: true
});
@ -490,7 +512,7 @@ Page({
"info.info_shiming_status_txt": "开启在线问诊",
"info.info_shiming_status": "info_shiming_status_yes",
shiming_status_url: "/Pages/yishi/onlinesetup/index",
dialog_content: "请您先前往在线问诊管理中开通在线问诊",
dialog_content: "请您点击[在线问诊管理]开通在线问诊",
default_dialog_show: true
})
return false;

View File

@ -3,11 +3,12 @@
"usingComponents": {
"t-avatar": "tdesign-miniprogram/avatar/avatar",
"van-button": "@vant/weapp/button/index",
"van-dialog": "@vant/weapp/dialog/index",
"t-swiper": "tdesign-miniprogram/swiper/swiper",
"t-badge": "tdesign-miniprogram/badge/badge",
"t-dialog": "tdesign-miniprogram/dialog/dialog",
"van-image": "@vant/weapp/image/index",
"t-skeleton": "tdesign-miniprogram/skeleton/skeleton"
}
},
"enablePullDownRefresh": true,
"backgroundTextStyle":"dark"
}

View File

@ -3,11 +3,10 @@
<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>
style="top:0;padding-top: {{stateHeight}}px;height: {{navHeight + 10}}px;line-height: {{navHeight}}px;position: relative;">{{ title }}</view>
<!-- 用户信息 -->
<view class="info_box" style="margin-top: {{stateHeight+navHeight+10}}px;">
<!-- <view class="info_box" style="margin-top: {{stateHeight+navHeight+10}}px;"> -->
<view class="info_box">
<view class="info">
<view class="info_top">
<view class="info_photo" bindtap="go" data-url="/Pages/yishi/myinfo/index">
@ -30,7 +29,7 @@
<t-skeleton theme="text" row-col="{{[{ width: '70%' }]}}" animation="gradient" loading="{{skeleton_loading}}" />
</view>
<view class="info_wenzhen_new" bindtap="go" data-url="/Pages/yishi/wenzhen_v2/wenzhen" data-moudle="0" wx:if="{{!skeleton_loading}}">
新问诊:{{info.not_accepted_inquiry_num}}
待接诊:{{info.not_accepted_inquiry_num}}
<t-skeleton theme="text" row-col="{{[1]}}" animation="gradient" loading="{{skeleton_loading}}" />
</view>
<view class="info_wenzhen_ing" bindtap="go" data-url="/Pages/yishi/wenzhen_v2/wenzhen" data-moudle="1" wx:if="{{!skeleton_loading}}">接诊中:{{info.accepting_inquiry_num}}</view>
@ -115,7 +114,7 @@
height="70rpx"
src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/jianjie.png"
/>
<text class="fun_box_item_txt">简介管理</text>
<text class="fun_box_item_txt">个人简介管理</text>
</view>
<view bindtap="go" data-moudle="4" data-url="/Pages/yishi/onlinesetup/index" class="fun_box_item" style="height: {{funbox_height}}rpx;">
<van-image class="fun_box_item_img"
@ -191,13 +190,28 @@
</t-dialog>
<van-dialog
<t-dialog
visible="{{ contactKeFu }}"
title="立即联系客服"
confirm-btn="{{confirmBtn}}"
close-on-overlay-click="{{true}}"
close="cancelContactDialog"
>
<view slot="cancel-btn" class="dialog dialog_cancel_btn" bindtap="cancelContactDialog">
取消
</view>
<!-- <view slot="confirm-btn" class="dialog dialog_confirm_btn" open-type="contact">
<t-button theme="primary" size="large" open-type="contact">确认</t-button>
</view> -->
</t-dialog>
<!-- <van-dialog
title="立即联系客服"
show="{{ contactKeFu }}"
show-cancel-button
confirm-button-color="#3CC7C0"
confirm-button-open-type="contact"
/>
/> -->
</view>

View File

@ -18,7 +18,7 @@ page{
.title{
position: fixed;
letter-spacing: 3rpx;
margin-left: 5vw;
padding-left: 5vw;
font-size: 35rpx;
color: #fff;
background-color: #3CC7C0;
@ -27,7 +27,7 @@ page{
}
.info_box{
width: 90vw;
margin: 30rpx auto;
margin: 0 auto;
display: flex;
padding: 20rpx 0;
flex-direction: column;
@ -229,3 +229,6 @@ page{
border-top: 1px solid #E9E9E9;
color: #3CC7C0;
}
.t-button__content{
color: #3CC7C0 !important;
}

View File

@ -10,8 +10,8 @@ Page({
},
height: app.globalData.height,
checked: true,
open_note: "已开启,可在问诊消息中选择订单接诊",
close_note: "已关闭,暂不接收快速图文订单",
open_note: "已开启,可在问诊消息中进行接诊",
close_note: "已关闭,暂不接收快速问诊",
note: "",
inquiry_type: 2,
inquiry_mode: 1,

View File

@ -35,9 +35,9 @@
<view class="bottom">
<text class="bottom_txt">
提示:服务开通后,患者可以通过快速问诊找到您,增加您的曝光度。
1、快速问诊价格为平台统一定价;
2、接诊后{{config.duration}}分钟内和患者{{config.times_number==0?'无限':config.times_number}}次沟通。
提示:服务开启后,您将有机会接收到平台自动分配的在线患者快速问诊订单
1、快速问诊价格为平台统一
2、快速问诊服务时间为{{config.duration}}分钟,期间不限制交流次数
</text>
</view>

View File

@ -15,7 +15,10 @@ Page({
estimate_income: "0",
doctor_id: ""
},
onPullDownRefresh(){
console.log("用户下拉动作")
this.onShow();
},
// 获取状态栏信息
getMenuButtonBound() {
let stateHeight = 0; // 接收状态栏高度
@ -67,6 +70,8 @@ Page({
this.setData({
"avatar": avatar
})
}).then(res => {
wx.stopPullDownRefresh()
}).catch(errors => {
console.error(errors);
})

View File

@ -6,5 +6,7 @@
"van-icon": "@vant/weapp/icon/index",
"van-cell": "@vant/weapp/cell/index",
"van-cell-group": "@vant/weapp/cell-group/index"
}
},
"enablePullDownRefresh":true,
"backgroundTextStyle":"dark"
}

View File

@ -50,7 +50,7 @@
<view class="content" style="top: calc(20rpx + {{stateHeight}}px);">
<van-cell size="large" url="/Pages/yishi/myaccount/index" link-type="navigateTo" title-style="font-size: 30rpx;" title="我的账户" is-link />
<van-cell size="large" url="/Pages/yishi/bankcard/index" link-type="navigateTo" title-style="font-size: 30rpx;" title="我的银行卡" is-link />
<van-cell size="large" url="/Pages/yishi/mycard/index" link-type="navigateTo" title-style="font-size: 30rpx;" title="我的名片" is-link />
<van-cell size="large" url="/Pages/yishi/mycard/index" link-type="navigateTo" title-style="font-size: 30rpx;" title="我的名片" is-link />
<van-cell size="large" url="/Pages/yishi/appraise/index?doctor_id={{doctor_id}}" link-type="navigateTo" title-style="font-size: 30rpx;" title="患者评价" is-link />
<van-cell size="large" url="/Pages/yishi/quickreply/index" link-type="navigateTo" title-style="font-size: 30rpx;" title="常用语" is-link border="{{ false }}"/>
</view>

View File

@ -1,7 +1,8 @@
.container{
height: 100vh;
width: 100vw;
page{
background-color: #F5F5F5;
}
.container{
width: 100vw;
color: #fff;
position: relative;
}

View File

@ -56,12 +56,14 @@ Page({
wx.setStorageSync('client_user_id_'+usertype, "");
if(wx.$TUIKit){
let promise = wx.$TUIKit.logout();
wx.$TUIKit = undefined;
promise.then(function(imResponse) {
console.log(imResponse.data); // 登出成功
}).catch(function(imError) {
console.warn('logout error:', imError);
});
}
app.clearAllInterval()
app.go("/Pages/index/index");
} else if (res.cancel) {
console.log('用户点击取消')

View File

@ -14,7 +14,7 @@
<view class="item_content_li_title">病情主诉:</view>
<view class="item_content_li_txt">{{case_detail.disease_desc}}</view>
</view>
<view class="item_content_li">
<view class="item_content_li" wx:if="{{case_detail.product.length > 0}}">
<view class="item_content_li_title">用药意向:</view>
<view class="item_content_li_txt"><text wx:for="{{case_detail.product}}">{{item}};</text></view>
</view>

View File

@ -12,10 +12,9 @@ page{
}
.item_top{
position: relative;
height: 100rpx;
display: flex;
align-items: center;
padding: 0 32rpx;
padding: 20rpx 32rpx;
}
.item_top::after {
position: absolute;
@ -30,12 +29,12 @@ page{
}
.item_top_name{
flex: 1;
color: #3CC7C0;
font-size: 34rpx;
margin-right: 20rpx;
}
.item_top_sex{
flex: 3;
flex: 1;
font-size: 34rpx;
color: #666;
}

View File

@ -38,11 +38,11 @@
<view class="bottom">
<text class="bottom_txt">
提示:服务开通后,患者可以向您购买图文问诊进行问诊,接诊后需要与患者进行图文沟通
1、问诊价格每日仅限调整1次每自然月仅限调整5次
2、单价修改后立即生效不影响当日已生成的问诊订单
3、接诊后患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}个回合沟通
4、如有参加公益问诊活动患者问诊订单价格以参加的公益问诊单价为准
提示:服务开启后,患者按照所设置的价格向您购买图文问诊服务
1、接诊后患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}回合沟通
2、若开启公益问诊图文问诊价格以公益问诊价格为准
3、问诊价格每日仅限调整1次每月仅限调整5次
4、价格修改后立即生效不影响修改之前已生成的问诊订单
</text>
</view>

View File

@ -19,11 +19,11 @@
<view class="bottom">
<text class="bottom_txt">
提示:服务开通后,患者可以向您购买图文问诊进行问诊,接诊后需要与患者进行图文沟通
1、问诊价格每日仅限调整1次每自然月仅限调整5次
2、单价修改后立即生效,不影响当日已生成的问诊订单
3、接诊后,患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}个回合沟通
4、如有参加公益问诊活动,患者问诊订单价格以参加的公益问诊单价为准
提示:服务开启后,患者按照所设置的价格向您购买图文问诊服务
1、接诊后,患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}回合沟通
2、若开启公益问诊,图文问诊价格以公益问诊价格为准
3、问诊价格每日仅限调整1次每月仅限调整5次
4、价格修改后立即生效,不影响修改之前已生成的问诊订单
</text>
</view>

View File

@ -13,8 +13,8 @@
<view class="order_id">就诊患者:<text style="font-size: 30rpx;color: #666666;">张三三25岁</text></view>
<view class="order_id">接诊时间:<text style="font-size: 30rpx;color: #666666;">2022-12-30 112323</text></view>
<view class="order_id">结束时间:<text style="font-size: 30rpx;color: #666666;">2022-12-12 112323</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: #666666;">¥1212.00</text></view>
<view class="order_id">预计收入:<text style="font-size: 30rpx;color: #666666;">¥112.00</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: #666666;">¥1212.00</text></view>
<view class="order_id">预计收入:<text style="font-size: 30rpx;color: #666666;">¥112.00</text></view>
</view>
</view>
</view>
@ -28,7 +28,7 @@
<view class="order_item_content_data">
<view class="order_id">就诊患者:<text style="font-size: 30rpx;color: #666666;">张三三/18/男</text></view>
<view class="order_id">订单编号:<text style="font-size: 30rpx;color: #666666;">2131231xxxx</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: #666666;">¥1212.00</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: #666666;">¥1212.00</text></view>
<view class="order_id">完成时间:<text style="font-size: 30rpx;color: #666666;">2022.12.30</text></view>
</view>
</view>

View File

@ -14,6 +14,11 @@ Page({
total: 0,
per_page: 0,
last_page: 0,
contactKeFu: false,
confirmBtn: {
"openType": "contact",
"content": "确认",
}
},
onShow(){
this.getList();
@ -46,6 +51,111 @@ Page({
putMessageReadNoticeAll(){
api.putMessageReadNoticeAll({notice_type: 1}).then(response => {
console.log(response);
let new_list = [];
this.data.list.forEach(item => {
item.read_status = 1;
new_list.push(item)
})
this.setData({
list: new_list
})
let usertype = wx.getStorageSync('usertype');
let userID = wx.getStorageSync('user_id_'+usertype);
wx.setStorageSync( userID+"_service_notice_unreadnnum", "");
wx.showToast({
title: '操作成功',
icon: "success"
})
}).catch(errors => {console.error(errors);})
}
},
putMessageReadNotice(notice_id){
api.putMessageReadNotice({notice_id: notice_id}).then(response => {
console.log(response);
}).catch(errors => {console.error(errors);})
},
go(e){
let item = e.currentTarget.dataset.item;
this.putMessageReadNotice(item.notice_id);
console.log(item);
let link_type = item.link_type;
link_type = Number(link_type);
// 跳转页面类型1:聊天详情页 2:问诊结束列表页 3:问诊消息列表页 4:我的名片 5:我的简介 6:我的账户 7:我的福利 8:药品订单详情页 9:物流详情 10:问诊订单详情 11:联系客服 12:协议详情 13:处方详情)
switch (link_type) {
case 1:
let from_account = item.link_params.from_account;
let order_inquiry_id = item.link_params.order_inquiry_id;
let inquiry_type = item.link_params.inquiry_type;
let url = "/Pages/yishi/chat/index?from_account="+from_account+"&order_inquiry_id="+order_inquiry_id+"&inquiry_type="+inquiry_type;
app.go(url);
break;
case 2:
wx.showToast({
title: '暂无页面',
icon: 'error'
})
break;
case 3:
wx.switchTab({
url: "/Pages/yishi/wenzhen_v2/wenzhen",
})
break;
case 4:
app.go("/Pages/yishi/mycard/index")
break;
case 5:
app.go("/Pages/yishi/myprofile/index")
break;
case 6:
app.go("/Pages/yishi/myaccount/index")
break;
case 7:
wx.showToast({
title: '暂无页面',
icon: 'error'
})
break;
case 8:
wx.showToast({
title: '暂无页面',
icon: 'error'
})
break;
case 9:
wx.showToast({
title: '暂无页面',
icon: 'error'
})
break;
case 10:
wx.showToast({
title: '暂无页面',
icon: 'error'
})
break;
case 11:
this.setData({
contactKeFu: true
})
break;
case 12:
wx.showToast({
title: '暂无页面',
icon: 'error'
})
break;
case 13:
let url1 = "/Pages/yishi/onlinechufang/index?order_inquiry_id="+item.link_params.order_inquiry_id+"&order_prescription_id="+item.link_params.order_prescription_id+"&from=chat";
app.go(url1);
break;
default:
break;
}
},
cancelContactDialog(){
console.log("cancelContactDialogcancelContactDialogcancelContactDialog");
this.setData({
contactKeFu: false
})
},
})

View File

@ -4,7 +4,8 @@
"te-nav-bar": "/commpents/te_navbar",
"van-image": "@vant/weapp/image/index",
"van-divider": "@vant/weapp/divider/index",
"van-empty": "@vant/weapp/empty/index"
"van-empty": "@vant/weapp/empty/index",
"t-dialog": "tdesign-miniprogram/dialog/dialog"
},
"enablePullDownRefresh": false,
"onReachBottomDistance": 50

View File

@ -1,80 +1,52 @@
<te-nav-bar navbar-data='{{navbarData}}' ></te-nav-bar>
<view class="container">
<view class="list">
<view class="item" wx:for="{{list}}">
<view class="item" wx:for="{{list}}" bindtap="go" data-item="{{item}}">
<view class="item_top">
<view class="item_img" wx:if="{{item.inquiry_type == 1}}">
<view class="item_img" wx:if="{{item.link_params.inquiry_type == 1}}">
<text style="margin-left: 10rpx;">快速问诊</text>
<van-image class="van_img" src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice/kuaisu.png" fit="heightFix" height="54rpx" aria-label="qrcode" />
</view>
<view class="item_img" wx:if="{{item.inquiry_type == 2}}">
<view class="item_img" wx:if="{{item.link_params.inquiry_type == 2}}">
<text style="margin-left: 10rpx;">快速问诊</text>
<van-image class="van_img" src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice/kuaisu.png" fit="heightFix" height="54rpx" aria-label="qrcode" />
</view>
<view class="item_img" wx:if="{{item.inquiry_type == 3}}">
<view class="item_img" wx:if="{{item.link_params.inquiry_type == 3}}">
<text style="margin-left: 10rpx;">公益问诊</text>
<van-image class="van_img" src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice/yizhen.png" fit="heightFix" height="54rpx" aria-label="qrcode" />
</view>
<view class="item_img" wx:if="{{item.inquiry_type == 4}}">
<view class="item_img" wx:if="{{item.link_params.inquiry_type == 4}}">
<text style="margin-left: 10rpx;">问诊购药</text>
<van-image class="van_img" src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice/drug.png" fit="heightFix" height="54rpx" aria-label="qrcode" />
</view>
<view class="item_date">{{item.notice_send_time}}</view>
</view>
<view class="item_content">{{item.notice_title}}</view>
<view class="item_content">
{{item.notice_brief_title}}
<view class="hongdian" wx:if="{{item.read_status == 0}}">
<van-image src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/honhdian.png" fit="heightFix" height="20rpx" aria-label="qrcode" />
</view>
</view>
</view>
<!-- <view class="item">
<view class="item_top">
<view class="item_img">
<text style="margin-left: 10rpx;">快速问诊</text>
<van-image class="van_img" src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice/kuaisu.png" fit="heightFix" height="54rpx" aria-label="qrcode" />
</view>
<view class="item_date">2023-1-02 12:22</view>
</view>
<view class="item_content">您有新的图文问诊咨询,请注意查看。</view>
</view> -->
<!-- <view class="item">
<view class="item_top">
<view class="item_img">
<text style="margin-left: 10rpx;">在线问诊</text>
<van-image class="van_img" src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice/online.png" fit="heightFix" height="54rpx" aria-label="qrcode" />
</view>
<view class="item_date">2023-1-02 12:22</view>
</view>
<view class="item_content">您有新的图文问诊咨询,请注意查看。</view>
</view> -->
<!-- <view class="item">
<view class="item_top">
<view class="item_img">
<text style="margin-left: 10rpx;">公益问诊</text>
<van-image class="van_img" src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice/yizhen.png" fit="heightFix" height="54rpx" aria-label="qrcode" />
</view>
<view class="item_date">2023-1-02 12:22</view>
</view>
<view class="item_content">您有新的图文问诊咨询,请注意查看。</view>
</view> -->
<!-- <view class="item">
<view class="item_top">
<view class="item_img">
<text style="margin-left: 10rpx;">问诊购药</text>
<van-image class="van_img" src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice/drug.png" fit="heightFix" height="54rpx" aria-label="qrcode" />
</view>
<view class="item_date">2023-1-02 12:22</view>
</view>
<view class="item_content">您有新的图文问诊咨询,请注意查看。</view>
</view> -->
</view>
<van-empty description="暂无数据" wx:if="{{list.length == 0}}" />
<van-divider contentPosition="center" wx:if="{{list.length > 0 && current_page == last_page}}">到底了~</van-divider>
<van-image bind:click="putMessageReadNoticeAll" style="position: fixed; right: 0;bottom: 262rpx;" src="https://img.applets.igandanyiyuan.com/applet/doctor/static/images/yishi/service_notice/readall.png" fit="heightFix" height="84rpx" aria-label="role" />
<view style="height: 50rpx;">
<view style="height: 50rpx;"></view>
<t-dialog
visible="{{ contactKeFu }}"
title="立即联系客服"
confirm-btn="{{confirmBtn}}"
close-on-overlay-click="{{true}}"
close="cancelContactDialog"
overlay-click="cancelContactDialog"
>
<view slot="cancel-btn" class="dialog dialog_cancel_btn" bindtap="cancelContactDialog">
取消
</view>
<!-- <view slot="confirm-btn" class="dialog dialog_confirm_btn" open-type="contact">
<t-button theme="primary" size="large" open-type="contact">确认</t-button>
</view> -->
</t-dialog>
</view>

View File

@ -37,8 +37,35 @@ page{
margin-top: 20rpx;
font-size: 30rpx;
color: #666666;
display: flex;
align-items: center;
}
.van_img{
display: flex;
justify-content: center;
}
.hongdian{
height: 50rpx;
display: flex;
align-items: center;
flex: 1;
display: flex;
justify-content: flex-end;
}
.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;
}
.t-button__content{
color: #3CC7C0 !important;
}

View File

@ -80,6 +80,21 @@ Page({
putMessageReadNoticeAll(){
api.putMessageReadNoticeAll({notice_type: 2}).then(response => {
console.log(response);
let new_list = [];
this.data.list.forEach(item => {
item.read_status = 1;
new_list.push(item)
})
this.setData({
list: new_list
})
let usertype = wx.getStorageSync('usertype');
let userID = wx.getStorageSync('user_id_'+usertype);
wx.setStorageSync( userID+"_system_notice_unreadnnum", "");
wx.showToast({
title: '操作成功',
icon: "success"
})
}).catch(errors => {console.error(errors);})
}
})

View File

@ -6,7 +6,7 @@
<view class="item_img">
<van-image class="van_img" src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice/kuaisu.png" fit="heightFix" height="54rpx" aria-label="qrcode" />
</view>
<view class="item_content">{{item.notice_title}}</view>
<view class="item_content">{{item.notice_brief_title}}</view>
</view>
<view class="hongdian" wx:if="{{item.read_status == 0}}">
<van-image src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/honhdian.png" fit="heightFix" height="20rpx" aria-label="qrcode" />

View File

@ -20,28 +20,40 @@ Page({
message_inquiry_type: 99999,
system_notice_unreadnnum: "",
service_notice_unreadnnum: "",
hasOnShow: false
hasOnShow: false,
show: false,
show_dialog_from_account: "",
show_dialog_order_inquiry_id: "",
show_dialog_inquiry_type: "",
unreadnnum_inter: 0
},
onLoad() {
console.log("wenzhen onload");
console.log("wenzhen onloadddd");
// if(wx.$TUIKit){
// wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onMessageReceived, this);
// }else{
// app.imInit().then(res => {
// console.log("wenzhen onload imInit");
// wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onMessageReceived, this);
// });
// }
},
initInterval(){
let usertype = wx.getStorageSync('usertype');
let userID = wx.getStorageSync('user_id_'+usertype);
if(wx.$TUIKit){
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onMessageReceived, this);
}else{
app.imInit().then(res => {
console.log("wenzhen onload imInit");
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onMessageReceived, this);
});
}
setInterval(() => {
let unreadnnum_inter = setInterval(() => {
let system_notice_unreadnnum = wx.getStorageSync(userID+"_system_notice_unreadnnum");
let service_notice_unreadnnum = wx.getStorageSync(userID+"_service_notice_unreadnnum");
this.setData({
system_notice_unreadnnum: system_notice_unreadnnum,
service_notice_unreadnnum: service_notice_unreadnnum,
})
}, 500);
}, 1000);
this.setData({
unreadnnum_inter: unreadnnum_inter
})
console.log("app.globalData.unreadnnum_inter: ", app.globalData.unreadnnum_inter);
},
onShow: function () {
console.log("onShow from wenzhen V2")
@ -54,37 +66,60 @@ Page({
})
}
this.getConversationList();
if(this.data.unreadnnum_inter == 0){
this.initInterval();
}
//避免onshow加载多次
this.setData({
hasOnShow: true
})
if(wx.$TUIKit){
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onMessageReceived, this);
}else{
app.imInit().then(res => {
console.log("wenzhen onload imInit");
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onMessageReceived, this);
});
}
},
onHide(){
console.log("onHideonHide from wenzhen")
this.setData({hasOnShow: false})
clearInterval(this.data.unreadnnum_inter)
this.setData({
hasOnShow: false,
data_list_1: [],
data_list_2: [],
data_list_3: [],
data_list_4: [],
data_list_5: [],
message_inquiry_type: 9999,
unreadnnum_inter: 0
})
wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onMessageReceived);
},
onUnload(){
console.log("onUnload from wenzhen")
this.setData({hasOnShow: false})
// wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onMessageReceived);
this.setData({
hasOnShow: false,
message_inquiry_type: 9999
})
},
getConversationList(){
wx.$TUIKit.getConversationList().then((imResponse) => {
console.log("imResponse.data.conversationList from wenzhen_v2: ", imResponse.data.conversationList);
this.setData({
conversationList: imResponse.data.conversationList,
});
}).then(() => {
console.log("开始查询订单状态")
this.formatStatus();
}).catch(error => {
console.log(error)
// 补偿登录操作
app.imInit().then(res => {
this.getConversationList();
console.log("getConversationListgetConversationListgetConversationList");
app.imInit().then(res => {
console.log("wenzhen onload imInit: ", res);
wx.$TUIKit.getConversationList().then((imResponse) => {
console.log("imResponse.data.conversationList from wenzhen_v2: ", imResponse.data.conversationList);
this.setData({
conversationList: imResponse.data.conversationList,
});
}).then(() => {
console.log("开始查询订单状态")
this.formatStatus();
}).catch(error => {
console.log(error)
this.getConversationList();
});
});
},
@ -190,7 +225,7 @@ Page({
},
formatStatus(){
let order_inquiry_id_list = [];
order_inquiry_id_list.push("a");//初始化一个,防止失败
order_inquiry_id_list.push("");//初始化一个,防止失败
this.data.conversationList.forEach(item => {
let conversationID = item.conversationID;
if(conversationID == "C2Cadministrator") return;//如果是管理员消息直接跳过
@ -241,14 +276,12 @@ Page({
item.patient_age = order.patient_age;
item.patient_name = order.patient_name;
item.patient_sex = order.patient_sex;
new_conversationList.push(item);
})
this.setData({
conversationList: new_conversationList
})
}
}).then(() => {
console.log("开始格式化formatConversationList")
@ -300,6 +333,16 @@ Page({
let session_item = {};
session_item.inquiry_status = item.inquiry_status;//订单状态暂无
let txt = {};
if(lastMessage.messageForShow == "[自定义消息]"){
let text = "自定义消息";
let payload = lastMessage.payload;
if(payload) {
console.log("payload: ",payload.data);
let payloadJson = JSON.parse(payload.data);
text = payloadJson.title.replace(/-/g, "");
}
lastMessage.messageForShow = text;
}
txt.Text= lastMessage.messageForShow;
session_item.last_message_content = txt;
session_item.message_send_time = getTimeAgo(lastMessage.lastTime);
@ -315,7 +358,12 @@ Page({
totalUnreadCount = totalUnreadCount + unreadCount;
session_item.message_dot = true;
}else{
session_item.message_dot = false;
if(item.inquiry_status == 3){
totalUnreadCount = totalUnreadCount + 1;
session_item.message_dot = true;
}else{
session_item.message_dot = false;
}
}
session_list[inquiry_type - 1].push(session_item);
})
@ -336,7 +384,9 @@ Page({
this.setData({has_data: false})
}else{
this.setData({has_data: true})
this.selectComponent('#tabs').resize();
}
},
checkOrderInquiryId(list, order_inquiry_id){
let index = list.findIndex(item => {
@ -346,5 +396,59 @@ Page({
},
onTabsChange(e){
console.log(e);
},
goChat(e){
this.setData({
show: false
})
console.log("开始订阅消息");
wx.requestSubscribeMessage({
tmplIds: ['jhYUf91ULCTX_f69hazqAYwImdFf8ELasRAwB6X-MTM'],
success (res) {
console.log(res);
let from_account = e.currentTarget.dataset.from_account;
let order_inquiry_id = e.currentTarget.dataset.order_inquiry_id;
let inquiry_type = e.currentTarget.dataset.inquiry_type;
let url = e.currentTarget.dataset.url+"?from_account="+from_account+"&order_inquiry_id="+order_inquiry_id+"&inquiry_type="+inquiry_type;
app.go(url);
}
})
},
postDoctorInquiry(e){
this.setData({
show: false
})
console.log("order_inquiry_id: ", e.currentTarget.dataset.order_inquiry_id);
let params = {};
params.order_inquiry_id = e.currentTarget.dataset.order_inquiry_id;
console.log("params: ",params)
api.postDoctorInquiry(params).then(response => {
console.log("开始接诊");
console.log(response);
}).then(() => {
this.goChat(e);
}).catch(errors => {
console.error(errors);
})
},
tabShow(e){
let show_dialog_from_account = e.currentTarget.dataset.show_dialog_from_account;
let show_dialog_order_inquiry_id = e.currentTarget.dataset.show_dialog_order_inquiry_id;
let show_dialog_inquiry_type = e.currentTarget.dataset.show_dialog_inquiry_type;
console.log("tabShowtabShowtabShowtabShow");
this.setData({
show_dialog_from_account: show_dialog_from_account,
show_dialog_order_inquiry_id: show_dialog_order_inquiry_id,
show_dialog_inquiry_type: show_dialog_inquiry_type,
show: true
})
},
onClose(){
console.log("onCloseonCloseonCloseonClose")
this.setData({
show: false
})
}
})

View File

@ -10,6 +10,7 @@
"van-empty": "@vant/weapp/empty/index",
"van-image": "@vant/weapp/image/index",
"van-tab": "@vant/weapp/tab/index",
"van-tabs": "@vant/weapp/tabs/index"
"van-tabs": "@vant/weapp/tabs/index",
"t-dialog": "tdesign-miniprogram/dialog/dialog"
}
}

View File

@ -146,9 +146,10 @@
color="#3CC7C0"
title-active-color="#3CC7C0"
border="{{true}}"
id="tabs"
>
<van-tab title="在线问诊" name="1" wx:if="{{data_list_1.length > 0}}">
<wenzhen-data
<!-- <wenzhen-data
name="{{ item.patient_name }}"
sex="{{ item.patient_sex==1?'男':'女' }}"
age="{{ item.patient_age }}"
@ -162,10 +163,40 @@
note="{{ item.inquiry_status==3?'不接诊24小时后自动取消':'' }}"
message_dot="{{item.message_dot}}"
wx:for="{{ data_list_1 }}"
/>
/> -->
<!-- aa -->
<view class="content" wx:for="{{ data_list_1 }}">
<view class="content_1">
<view class="name">
<text style="font-size: 34rpx;color: #333;">就诊人:</text>
{{item.patient_name}} {{item.patient_sex==1?'男':'女'}}{{item.patient_age}}<t-badge dot="{{item.message_dot || item.inquiry_status==3}}" offset="{{ [-4, 4] }}" content="岁" />
</view>
<view class="date"> {{item.message_send_time}}</view>
</view>
<view class="content_2">{{item.last_message_content.Text}}</view>
<view class="content_3">
<view class="status">{{ item.inquiry_status==1?'待支付':item.inquiry_status==2?'待分配':item.inquiry_status==3?'待接诊':item.inquiry_status==4?'接诊中':item.inquiry_status==5?'已完成':item.inquiry_status==6?'已结束':item.inquiry_status==7?'已取消':'其他' }}</view>
<view class="btn" wx:if="{{ item.inquiry_status == 3 }}">
<van-button bind:click="go" data-url="/Pages/yishi/case/index?order_inquiry_id={{item.order_inquiry_id}}" plain custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;" color="#3CC7C0">查看病历</van-button>
<van-button type="default"
bindtap="tabShow"
data-show_dialog_from_account="{{item.from_account}}"
data-show_dialog_order_inquiry_id="{{item.order_inquiry_id}}"
data-show_dialog_inquiry_type="{{item.inquiry_type}}"
custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;margin-left:20rpx;" color="#3CC7C0">去接诊</van-button>
</view>
<view class="btn" wx:if="{{ item.inquiry_status >= 4 }}">
<van-button bind:click="goChat" data-from_account="{{item.from_account}}" data-inquiry_type="{{item.inquiry_type}}" data-order_inquiry_id="{{item.order_inquiry_id}}" data-url="/Pages/yishi/chat/index" plain custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;" color="#3CC7C0">问诊详情</van-button>
<!-- <van-button bind:click="go" data-url="/Pages/yishi/chat_session/index" plain custom-style="width:200rpx; border-radius: 10rpx;" color="#3CC7C0">会话列表</van-button> -->
</view>
</view>
<view class="content_4" wx:if="{{ item.inquiry_status == 3 }}">不接诊24小时后自动取消</view>
</view>
<!-- aa -->
</van-tab>
<van-tab title="快速问诊" name="2" wx:if="{{data_list_2.length > 0}}">
<wenzhen-data
<!-- <wenzhen-data
name="{{ item.patient_name }}"
sex="{{ item.patient_sex==1?'男':'女' }}"
age="{{ item.patient_age }}"
@ -179,10 +210,37 @@
note="{{ item.inquiry_status==3?'不接诊24小时后自动取消':'' }}"
message_dot="{{item.message_dot}}"
wx:for="{{ data_list_2 }}"
/>
/> -->
<view class="content" wx:for="{{ data_list_2 }}">
<view class="content_1">
<view class="name">
<text style="font-size: 34rpx;color: #333;">就诊人:</text>
{{item.patient_name}} {{item.patient_sex==1?'男':'女'}}{{item.patient_age}}<t-badge dot="{{item.message_dot || item.inquiry_status==3}}" offset="{{ [-4, 4] }}" content="岁" />
</view>
<view class="date"> {{item.message_send_time}}</view>
</view>
<view class="content_2">{{item.last_message_content.Text}}</view>
<view class="content_3">
<view class="status">{{ item.inquiry_status==1?'待支付':item.inquiry_status==2?'待分配':item.inquiry_status==3?'待接诊':item.inquiry_status==4?'接诊中':item.inquiry_status==5?'已完成':item.inquiry_status==6?'已结束':item.inquiry_status==7?'已取消':'其他' }}</view>
<view class="btn" wx:if="{{ item.inquiry_status == 3 }}">
<van-button bind:click="go" data-url="/Pages/yishi/case/index?order_inquiry_id={{item.order_inquiry_id}}" plain custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;" color="#3CC7C0">查看病历</van-button>
<van-button type="default" bindtap="tabShow"
data-show_dialog_from_account="{{item.from_account}}"
data-show_dialog_order_inquiry_id="{{item.order_inquiry_id}}"
data-show_dialog_inquiry_type="{{item.inquiry_type}}"
custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;margin-left:20rpx;" color="#3CC7C0">去接诊</van-button>
</view>
<view class="btn" wx:if="{{ item.inquiry_status >= 4 }}">
<van-button bind:click="goChat" data-from_account="{{item.from_account}}" data-inquiry_type="{{item.inquiry_type}}" data-order_inquiry_id="{{item.order_inquiry_id}}" data-url="/Pages/yishi/chat/index" plain custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;" color="#3CC7C0">问诊详情</van-button>
<!-- <van-button bind:click="go" data-url="/Pages/yishi/chat_session/index" plain custom-style="width:200rpx; border-radius: 10rpx;" color="#3CC7C0">会话列表</van-button> -->
</view>
</view>
<view class="content_4" wx:if="{{ item.inquiry_status == 3 }}">不接诊24小时后自动取消</view>
</view>
</van-tab>
<van-tab title="公益问诊" name="3" wx:if="{{data_list_3.length > 0}}">
<wenzhen-data
<!-- <wenzhen-data
name="{{ item.patient_name }}"
sex="{{ item.patient_sex==1?'男':'女' }}"
age="{{ item.patient_age }}"
@ -196,10 +254,37 @@
note="{{ item.inquiry_status==3?'不接诊24小时后自动取消':'' }}"
message_dot="{{item.message_dot}}"
wx:for="{{ data_list_3 }}"
/>
/> -->
<view class="content" wx:for="{{ data_list_3 }}">
<view class="content_1">
<view class="name">
<text style="font-size: 34rpx;color: #333;">就诊人:</text>
{{item.patient_name}} {{item.patient_sex==1?'男':'女'}}{{item.patient_age}}<t-badge dot="{{item.message_dot || item.inquiry_status==3}}" offset="{{ [-4, 4] }}" content="岁" />
</view>
<view class="date"> {{item.message_send_time}}</view>
</view>
<view class="content_2">{{item.last_message_content.Text}}</view>
<view class="content_3">
<view class="status">{{ item.inquiry_status==1?'待支付':item.inquiry_status==2?'待分配':item.inquiry_status==3?'待接诊':item.inquiry_status==4?'接诊中':item.inquiry_status==5?'已完成':item.inquiry_status==6?'已结束':item.inquiry_status==7?'已取消':'其他' }}</view>
<view class="btn" wx:if="{{ item.inquiry_status == 3 }}">
<van-button bind:click="go" data-url="/Pages/yishi/case/index?order_inquiry_id={{item.order_inquiry_id}}" plain custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;" color="#3CC7C0">查看病历</van-button>
<van-button type="default" bindtap="tabShow"
data-show_dialog_from_account="{{item.from_account}}"
data-show_dialog_order_inquiry_id="{{item.order_inquiry_id}}"
data-show_dialog_inquiry_type="{{item.inquiry_type}}"
custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;margin-left:20rpx;" color="#3CC7C0">去接诊</van-button>
</view>
<view class="btn" wx:if="{{ item.inquiry_status >= 4 }}">
<van-button bind:click="goChat" data-from_account="{{item.from_account}}" data-inquiry_type="{{item.inquiry_type}}" data-order_inquiry_id="{{item.order_inquiry_id}}" data-url="/Pages/yishi/chat/index" plain custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;" color="#3CC7C0">问诊详情</van-button>
<!-- <van-button bind:click="go" data-url="/Pages/yishi/chat_session/index" plain custom-style="width:200rpx; border-radius: 10rpx;" color="#3CC7C0">会话列表</van-button> -->
</view>
</view>
<view class="content_4" wx:if="{{ item.inquiry_status == 3 }}">不接诊24小时后自动取消</view>
</view>
</van-tab>
<van-tab title="问诊购药" name="4" wx:if="{{data_list_4.length > 0}}">
<wenzhen-data
<!-- <wenzhen-data
name="{{ item.patient_name }}"
sex="{{ item.patient_sex==1?'男':'女' }}"
age="{{ item.patient_age }}"
@ -213,12 +298,48 @@
note="{{ item.inquiry_status==3?'不接诊24小时后自动取消':'' }}"
message_dot="{{item.message_dot}}"
wx:for="{{ data_list_4 }}"
/>
/> -->
<view class="content" wx:for="{{ data_list_4 }}">
<view class="content_1">
<view class="name">
<text style="font-size: 34rpx;color: #333;">就诊人:</text>
{{item.patient_name}} {{item.patient_sex==1?'男':'女'}}{{item.patient_age}}<t-badge dot="{{item.message_dot || item.inquiry_status==3}}" offset="{{ [-4, 4] }}" content="岁" />
</view>
<view class="date"> {{item.message_send_time}}</view>
</view>
<view class="content_2">{{item.last_message_content.Text}}</view>
<view class="content_3">
<view class="status">{{ item.inquiry_status==1?'待支付':item.inquiry_status==2?'待分配':item.inquiry_status==3?'待接诊':item.inquiry_status==4?'接诊中':item.inquiry_status==5?'已完成':item.inquiry_status==6?'已结束':item.inquiry_status==7?'已取消':'其他' }}</view>
<view class="btn" wx:if="{{ item.inquiry_status == 3 }}">
<van-button bind:click="go" data-url="/Pages/yishi/case/index?order_inquiry_id={{item.order_inquiry_id}}" plain custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;" color="#3CC7C0">查看病历</van-button>
<van-button type="default" bindtap="tabShow"
data-show_dialog_from_account="{{item.from_account}}"
data-show_dialog_order_inquiry_id="{{item.order_inquiry_id}}"
data-show_dialog_inquiry_type="{{item.inquiry_type}}"
custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;margin-left:20rpx;" color="#3CC7C0">去接诊</van-button>
</view>
<view class="btn" wx:if="{{ item.inquiry_status >= 4 }}">
<van-button bind:click="goChat" data-from_account="{{item.from_account}}" data-inquiry_type="{{item.inquiry_type}}" data-order_inquiry_id="{{item.order_inquiry_id}}" data-url="/Pages/yishi/chat/index" plain custom-style="padding:0 35rpx; height:67rpx; border-radius: 10rpx;" color="#3CC7C0">问诊详情</van-button>
<!-- <van-button bind:click="go" data-url="/Pages/yishi/chat_session/index" plain custom-style="width:200rpx; border-radius: 10rpx;" color="#3CC7C0">会话列表</van-button> -->
</view>
</view>
<view class="content_4" wx:if="{{ item.inquiry_status == 3 }}">不接诊24小时后自动取消</view>
</view>
</van-tab>
</van-tabs>
</view>
<view style="height: 200rpx;"></view>
<t-dialog
visible="{{ show }}"
title="温馨提示"
close-on-overlay-click
bind:close="onClose"
content="为保障服务质量,请您查看患者病历后再去接诊"
>
<view slot="cancel-btn" class="dialog dialog_cancel_btn" bindtap="go" data-from_account="{{show_dialog_from_account}}" data-url="/Pages/yishi/case/index?order_inquiry_id={{show_dialog_order_inquiry_id}}" >去查看</view>
<view slot="confirm-btn" class="dialog dialog_confirm_btn" bindtap="postDoctorInquiry" data-from_account="{{show_dialog_from_account}}" data-inquiry_type="{{show_dialog_inquiry_type}}" data-order_inquiry_id="{{show_dialog_order_inquiry_id}}" data-url="/Pages/yishi/chat/index" >去接诊</view>
</t-dialog>
</view>

View File

@ -53,3 +53,88 @@ page{
vertical-align: baseline !important;
}
.content{
background-color: #fff;
display: flex;
flex-direction: column;
margin-bottom: 20rpx;
}
.content_1,.content_3,.content_2{
display: flex;
justify-content: space-between;
margin: 20rpx 30rpx;
align-items: center;
}
.content_1,.content_3{
flex: 5;
}
.name{
font-size: 30rpx;
color: #666666;
height: 50rpx;
line-height: 50rpx;
}
.date{
font-size: 30rpx;
color: #999;
}
.content_2{
background-color: #FAFAFA;
font-size: 26rpx;
color: #999999;
min-height: 70rpx;
padding: 10rpx 20rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
line-height: 70rpx;
}
.status{
font-size: 26rpx;
color: #FA541C;
flex: 1;
}
.status_end{
color: #666666;
}
.btn{
flex: 2;
display: flex;
justify-content: flex-end;
}
.content_4{
flex: 5;
font-size: 24rpx;
color: #E34D59;
justify-self:flex-end;
text-align:right;
display: flex;
justify-content: flex-end;
border-top: 1px solid #E3E4E5;
align-items: center;
margin: 0 30rpx;
min-height: 70rpx;
}
.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;
}
.t-badge__content-text {
line-height: 70rpx !important;
}

View File

@ -55,7 +55,7 @@ Page({
let select_order_amount = 0;
let select_order_inquiry_id = [];
result.forEach(item => {
select_order_amount = Number(select_order_amount) + Number(this.data.order_list[item].payment_amount_total);
select_order_amount = Number(select_order_amount) + Number(this.data.order_list[item].expected_amount_total);
select_order_inquiry_id.push(this.data.order_list[item].order_inquiry_id);
})
this.setData({
@ -99,13 +99,7 @@ Page({
confirmOrder(){
const select_order_inquiry_id = this.data.select_order_inquiry_id;
console.log(select_order_inquiry_id);
wx.showToast({
title: '缺少接口',
icon: "error",
duration: 1500
})
setTimeout(() => {
wx.navigateBack();
}, 2000);
let order_inquiry_ids = select_order_inquiry_id.join(",");
app.go("/Pages/yishi/cash/index?order_inquiry_ids="+order_inquiry_ids);
}
})

View File

@ -15,8 +15,8 @@
<view class="order_id">就诊患者:<text style="font-size: 30rpx;color: #666666;">{{item.patient_name}}{{item.patient_sex==1?'男':'女'}}{{item.patient_age}}岁)</text></view>
<view class="order_id">接诊时间:<text style="font-size: 30rpx;color: #666666;">{{item.reception_time}}</text></view>
<view class="order_id">结束时间:<text style="font-size: 30rpx;color: #666666;">{{item.finish_time}}</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: #666666;">¥{{item.amount_total}}</text></view>
<view class="order_id">预计收入:<text style="font-size: 30rpx;color: #666666;">¥{{item.payment_amount_total}}元</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: #666666;">¥{{item.amount_total}}</text></view>
<view class="order_id">预计收入:<text style="font-size: 30rpx;color: #666666;">¥{{item.expected_amount_total}}</text></view>
</view>
</view>
</view>
@ -28,7 +28,7 @@
<view class="bottom_checkbox">
<van-checkbox value="{{ allchecked }}" checked-color="#3CC7C0" bind:change="onAllChange">全{{allchecked?'不':''}}选</van-checkbox>
</view>
<view class="bottom_content">共{{select_order_length}}个订单,金额: <text style="color: red;font-size: 30rpx;">¥{{select_order_amount}} </text> </view>
<view class="bottom_content">共{{select_order_length}}个订单,金额: <text style="color: red;font-size: 30rpx;">¥{{select_order_amount}} </text> </view>
<view class="bottom_btn">
<van-button
bind:click="confirmOrder"

View File

@ -0,0 +1,105 @@
import { API } from './../../../utils/network/api'
const api = new API()
const app = getApp()
Page({
data: {
navbarData: {
showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
title: '问诊订单', //导航栏 中间的标题
},
height: app.globalData.height,
result: [],
order_list:[],
current_page: 0,
total: 0,
per_page: 10,
last_page: 0,
allchecked: false,
select_order_length: 0,
select_order_amount: 0,
select_order_inquiry_id: []
},
onChange(event) {
console.log("onChange: ",event)
this.setData({
result: event.detail,
});
this.resetSelectOrder();
this.setData({
allchecked: this.data.result.length == this.data.order_list.length
})
},
onAllChange(event) {
console.log("onAllChange: ",event)
this.setData({
allchecked: event.detail
})
if(event.detail == true){
this.data.order_list.forEach((item,index) => {
this.data.result.push(""+index);
})
this.setData({
result: this.data.result
})
}
if(event.detail == false){
this.setData({
result: []
})
}
this.resetSelectOrder();
},
resetSelectOrder(e){
let result = this.data.result;
let select_order_amount = 0;
let select_order_inquiry_id = [];
result.forEach(item => {
select_order_amount = Number(select_order_amount) + Number(this.data.order_list[item].expected_amount_total);
select_order_inquiry_id.push(this.data.order_list[item].order_inquiry_id);
})
this.setData({
select_order_length: result.length,
select_order_amount: select_order_amount,
select_order_inquiry_id: select_order_inquiry_id
})
},
selectOrder(e){
const { index } = e.currentTarget.dataset;
const checkbox = this.selectComponent(`.checkboxes-${index}`);
checkbox.toggle();
},
getDoctorWithdrawalOrder(){
//可提现问诊订单列表
let params = {};
params.page = this.data.current_page + 1;
params.per_page = this.data.per_page;
api.getDoctorWithdrawalOrder(params).then(response => {
console.log(response);
if(response.data.total > 0){
this.setData({
order_list: response.data.data,
current_page: response.data.current_page,
per_page: response.data.per_page,
last_page: response.data.last_page
})
}
}).catch(errors => {console.error(errors);})
},
onShow(){
this.getDoctorWithdrawalOrder();
this.resetSelectOrder();
},
onReachBottom() {
console.log('===触底了!!===');
if(this.data.current_page < this.data.last_page){//最后一页时停止分页
this.getDoctorWithdrawalOrder()
}
},
confirmOrder(){
const select_order_inquiry_id = this.data.select_order_inquiry_id;
console.log(select_order_inquiry_id);
let order_inquiry_ids = select_order_inquiry_id.join(",");
app.go("/Pages/yishi/cash/index?order_inquiry_ids="+order_inquiry_ids);
}
})

View File

@ -0,0 +1,11 @@
{
"component": true,
"usingComponents": {
"te-nav-bar": "/commpents/te_navbar",
"van-checkbox": "@vant/weapp/checkbox/index",
"van-checkbox-group": "@vant/weapp/checkbox-group/index",
"van-button": "@vant/weapp/button/index",
"van-empty": "@vant/weapp/empty/index"
},
"onReachBottomDistance": 100
}

View File

@ -0,0 +1,23 @@
<!-- 问诊订单 -->
<te-nav-bar navbar-data='{{navbarData}}' ></te-nav-bar>
<view class="container">
<view class="order_list">
<view class="order_item" wx:for="{{order_list}}">
<view class="order_item_content" data-index="{{index}}" bindtap="selectOrder">
<!-- 1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) -->
<view class="order_item_content_top">{{item.inquiry_type==1?'专家问诊':item.inquiry_type==2?'快速问诊':item.inquiry_type==3?'公益问诊':item.inquiry_type==4?'问诊购药':'未知'}}</view>
<view class="order_item_content_data">
<view class="order_id">订单编号:<text style="font-size: 30rpx;color: #666666;">{{item.order_inquiry_id }}</text></view>
<view class="order_id">就诊患者:<text style="font-size: 30rpx;color: #666666;">{{item.patient_name}}{{item.patient_sex==1?'男':'女'}}{{item.patient_age}}岁)</text></view>
<view class="order_id">接诊时间:<text style="font-size: 30rpx;color: #666666;">{{item.reception_time}}</text></view>
<view class="order_id">结束时间:<text style="font-size: 30rpx;color: #666666;">{{item.finish_time}}</text></view>
<view class="order_id">订单金额:<text style="font-size: 30rpx;color: #666666;">¥{{item.amount_total}}</text></view>
<view class="order_id">预计收入:<text style="font-size: 30rpx;color: #666666;">¥{{item.expected_amount_total}}</text></view>
</view>
</view>
</view>
</view>
<van-empty description="暂无数据" wx:if="{{order_list.length == 0}}" />
</view>

View File

@ -0,0 +1,80 @@
page{
background-color: #F4F4F4;
}
.container{
width: 100vw;
}
.order_list{
display: flex;
width: 92vw;
margin: 0 auto;
flex-direction: column;
padding-bottom: 180rpx;
}
.order_item{
display: flex;
width: 100%;
margin-top: 30rpx;
}
.order_item_checkbox{
flex: 1;
align-self: center;
}
.order_item_content{
flex: 10;
background-color: #fff;
border-radius: 20rpx;
display: flex;
flex-direction: column;
padding: 20rpx;
height: 400rpx;
}
.order_item_content_top{
flex: 1;
border-bottom: 1px solid #E5E5E5;
display: flex;
align-items: center;
font-size: 36rpx;
}
.order_item_content_data{
flex: 3;
display: flex;
flex-direction: column;
}
.order_id{
flex: 1;
display: flex;
align-items: center;
font-size: 30rpx;
}
.bottom{
position: fixed;
bottom: 0;
width: 100vw;
display: flex;
background-color: rgb(255, 255, 255);
align-items: center;
z-index: 99;
padding-bottom: 50rpx;
height: 100rpx;
}
.bottom_checkbox{
flex: 2.2;
font-size: 30rpx;
display: flex;
justify-content: left;
padding-left: 4vw;
}
.bottom_content{
flex: 6;
text-align: center;
font-size: 28rpx;
color: #666666;
}
.bottom_btn{
flex: 2;
justify-content: flex-end;
font-size: 34rpx;
}

View File

@ -10,8 +10,8 @@ Page({
},
height: app.globalData.height,
checked: true,
open_note: "已开启,患者可以向您发起图文问诊",
close_note: "已关闭,暂不接收义诊订单",
open_note: "已开启,可在问诊消息中进行接诊",
close_note: "已关闭,暂不接收公益问诊",
note: "",
amountText: "选择金额(元)",
amountValue: "",

View File

@ -48,9 +48,9 @@
<view class="bottom">
<text class="bottom_txt">
提示:服务开通后,患者可以通过公益问诊找到您,增加您的接诊量。
1、公益问诊价格为平台统一设定的几个,需要您自己选择单价;
2、接诊后{{config.duration/60}}小时内和患者{{config.times_number}}个回合沟通。
提示:服务开启后,您将参与到平台爱心公益问诊活动中
1、从平台统一设定的多种公益问诊价格中选择您的公益问诊价格
2、接诊后,患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}回合沟通
</text>
</view>

View File

@ -10,8 +10,8 @@ Page({
},
height: app.globalData.height,
checked: true,
open_note: "已开启,患者可以向您发起图文问诊",
close_note: "已关闭,暂不接收义诊订单",
open_note: "已开启,可在问诊消息中进行接诊",
close_note: "已关闭,暂不接收公益问诊",
note: "",
amountText: "选择金额(元)",
amountValue: "",

View File

@ -21,9 +21,9 @@
<view class="bottom">
<text class="bottom_txt">
提示:服务开通后,患者可以通过公益问诊找到您,增加您的接诊量。
1、公益问诊价格为平台统一设定的几个,需要您自己选择单价;
2、接诊后{{config.duration/60}}小时内和患者{{config.times_number}}个回合沟通。
提示:服务开启后,您将参与到平台爱心公益问诊活动中
1、从平台统一设定的多种公益问诊价格中选择您的公益问诊价格
2、接诊后,患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}回合沟通
</text>
</view>

View File

@ -38,7 +38,7 @@
value='查看操作手册'
is-link />
<view class="notice">注:请先了解多点执业认证流程,提交审核</view>
<view class="notice">注:请先了解多点执业认证流程,提交审核</view>
<van-divider customStyle="color: #999; width:95vw; margin: 20rpx auto;" />
@ -47,7 +47,7 @@
<view class="sign" wx:if="{{sign_image.length == 0}}" data-url="/Pages/yishi/signcanvas/index" bindtap="go">
<van-button custom-style="height:130rpx;margin-top:20rpx;border-radius: 20rpx;border: 1px dashed #999;width:100%;font-size:30rpx;background-color: #fff;color: #3CC7C0;" icon="edit">点击签名</van-button>
</view>
<view style="margin-top:20rpx;border-radius: 20rpx;border: 1px dashed #999;" class="sign_img" wx:if="{{sign_image.length > 0}}" data-url="/Pages/yishi/signcanvas/index" bindtap="go">
<view style="margin-top:20rpx;border-radius: 20rpx;border: 1px dashed #999;" class="sign_img" wx:if="{{sign_image.length > 0}}">
<image mode="heightFix" style="transform: rotate(-0deg);width: 100%;" src="{{sign_image[0].url}}"></image>
</view>
</view>
@ -68,7 +68,7 @@
bindDeleteFile="doDeleteFile"
/>
<view class="sign_box">
<view class="sign_note">提示平台会在1~3内审核您提交的资料,审核结果会第一时间通知您。</view>
<view class="sign_note">提示平台会在1~3个工作日内审核您提交的资料,审核结果会第一时间通知您。</view>
<van-button bind:click="add"
custom-style="font-size:30rpx; color:#fff; border-radius: 20rpx; background-color: #3CC7C0" disabled="{{btn_disabled}}" block>{{btn_txt}}</van-button>
</view>

View File

@ -78,6 +78,7 @@ Component({
}
},
parseCustom(message) {
const { BUSINESS_ID_TEXT } = constant;
const { GDXZ_CUSTOM_MSEEAGE } = constant;
// 群消息解析
@ -149,7 +150,6 @@ Component({
}
// 6:处方开具成功
if (customMessage.message_type === GDXZ_CUSTOM_MSEEAGE.PRESCRIBE) {
console.log("处方");
let data = customMessage.data;
const renderDom = [{
type: 'prescribe',

View File

@ -50,7 +50,7 @@
<view class="gdxz_custom_message_desc">{{renderDom[0].desc}}</view>
</view> -->
<!-- 自定义评价样式 -->
<view wx:if="{{renderDom[0].type==='order_evaluation'}}" class="gdxz_custom_order_evaluation_message" bindtap="showPop">
<view wx:if="{{renderDom[0].type==='order_evaluation' && false}}" class="gdxz_custom_order_evaluation_message" bindtap="showPop">
<view class="evaluation_title">请您对本次问诊服务进行评价</view>
<view class="evaluation_ratebox">
<van-rate disabled value="{{0}}" size="40rpx" gutter="46rpx" color="#ffd21e" void-icon="star" void-color="#e7e7e7" readonlygutter="20"/>

View File

@ -66,6 +66,8 @@
letter-spacing: 0;
line-height: 40rpx;
font-size: 28rpx;
word-wrap: break-word;
word-break: break-all;
}
.message-body-span-image {
display: inline-block;

View File

@ -305,12 +305,8 @@ Component({
// 发送图片消息
handleSendImageMessage(file) {
//获取最后一条消息
let message_length = this.data.messageList.length;
let last_message = {};
if(message_length > 0){
last_message = this.data.messageList[message_length - 1];
}
// 获取最后一条消息
let last_message = this.data.conversation.lastMessage;
console.log("last_message: ", last_message);
let cloudCustomData = "";
let cloudCustomDataJson = "";
@ -568,11 +564,7 @@ Component({
});
//获取最后一条消息
let message_length = this.data.messageList.length;
let last_message = {};
if(message_length > 0){
last_message = this.data.messageList[message_length - 1];
}
let last_message = this.data.conversation.lastMessage;
console.log("last_message: ", last_message);
let cloudCustomData = "";
let cloudCustomDataJson = "";

View File

@ -104,7 +104,7 @@
<t-dialog
visible="{{ dialog_visible }}"
title="温馨提示"
content="请您先多点执业认证"
content="在线开处方需先进行多点执业认证"
>
<view slot="cancel-btn" class="dialog dialog_cancel_btn" bindtap="cancelDialog">
取消

View File

@ -495,6 +495,7 @@ Component({
},
// 消息跳转到最新
handleJumpNewMessage() {
console.log("handleJumpNewMessage")
this.setData({
jumpAim: `ID-${this.filterSystemMessageID(this.data.messageList[this.data.messageList.length - 1].ID)}`,
showDownJump: false,
@ -503,6 +504,7 @@ Component({
},
// 消息跳转到最近未读
handleJumpUnreadMessage() {
console.log("handleJumpUnreadMessage")
if (this.data.unreadCount > 15) {
this.getMessageList(this.data.conversation);
this.setData({

View File

@ -43,7 +43,7 @@
<t-dialog
visible="{{ dialog_visible }}"
title="温馨提示"
content="确定要结束问诊么"
content="您确定要结束本次问诊吗"
>
<view slot="cancel-btn" class="dialog dialog_cancel_btn" bindtap="cancelDialog">
取消

View File

@ -142,7 +142,7 @@
display: flex;
justify-content: space-around;
align-items: center;
flex: 2;
flex: 3;
}
.right{
flex: 1;
@ -159,13 +159,11 @@
.name{
font-size: 34rpx;
color: #3CC7C0;
flex: 1;
text-align: center;
}
.age{
font-size: 34rpx;
color: #666666;
flex: 1;
}
.status{
background: #FFF2E8;

194
app.js
View File

@ -78,56 +78,70 @@ App({
console.log("sign: ", sign);
// const userSig = sign.userSig;
//获取im签名数据
return api.getSignIM().then(response => {
return response.data;
}).then((userSig) => {
console.log("userSig: ", userSig);
wx.$TUIKit = TIM.create({
SDKAppID: this.globalData.config.SDKAPPID
if(!wx.$TUIKit){
//获取im签名数据
return api.getSignIM().then(response => {
return response.data;
}).then((userSig) => {
console.log("userSig: ", userSig);
wx.$TUIKit = TIM.create({
SDKAppID: this.globalData.config.SDKAPPID
});
wx.$chat_userID = this.globalData.config.userID;
wx.$chat_SDKAppID = this.globalData.config.SDKAPPID;
wx.$chat_userSig = userSig;
wx.$TUIKitTIM = TIM;
wx.$TUIKit.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin });
let login_promise = wx.$TUIKit.login({
userID: this.globalData.config.userID,
userSig
});
login_promise.then(function(imResponse) {
console.log(imResponse.data); // 登录成功
}).catch(function(imError) {
console.warn('login error:', imError); // 登录失败的相关信息
});
wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady);
wx.$TUIKit.setLogLevel(3);//设置日志级别
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady, this);
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED, this.onTotalUnreadMessageCountUpdated);
}).catch(errors => {console.error(errors);})
}else{
let promise = new Promise((resolve, reject) => {
resolve("success");
}).then(res => {
console.log("from app js:", res);
return "from app js";
});
wx.$chat_userID = this.globalData.config.userID;
wx.$chat_SDKAppID = this.globalData.config.SDKAPPID;
wx.$chat_userSig = userSig;
wx.$TUIKitTIM = TIM;
wx.$TUIKit.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin });
let login_promise = wx.$TUIKit.login({
userID: this.globalData.config.userID,
userSig
});
login_promise.then(function(imResponse) {
console.log(imResponse.data); // 登录成功
}).catch(function(imError) {
console.warn('login error:', imError); // 登录失败的相关信息
});
wx.$TUIKit.off(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady);
wx.$TUIKit.setLogLevel(3);//设置日志级别
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.SDK_READY, this.onSDKReady, this);
}).then(()=>{
//初始化tab-bar角标
let index_info = wx.getStorageSync(userID+'_index_info');
let wenzhen_info = wx.getStorageSync(userID+'_wenzhen_info');
let my_info = wx.getStorageSync(userID+'_my_info');
if(!index_info) wx.setStorageSync(userID+'_index_info',"");
if(!wenzhen_info) wx.setStorageSync(userID+'_wenzhen_info', "");
if(!my_info) wx.setStorageSync(userID+'_my_info', "");
}).catch(errors => {console.error(errors);})
return promise;
}
},
imLogout(){
if(wx.$TUIKit){
wx.$TUIKit.logout();
wx.$TUIKit = undefined;
}
this.clearAllInterval()
},
clearAllInterval(){
this.globalData.app_inter.forEach(item => {
clearInterval(item)
})
},
onTotalUnreadMessageCountUpdated(){
console.log("onTotalUnreadMessageCountUpdated");
let totalUnreadCount = wx.$TUIKit.getTotalUnreadMessageCount();
console.log("未读消息数量:", totalUnreadCount)
},
onSDKReady(){
console.log("onSDKReady from app.js");
this.globalData.chat_sdk_ready = true;
// let promise = wx.$TUIKit.deleteConversation('C2C500318318078251008');
// promise.then(function(imResponse) {
// // 删除会话成功
@ -136,8 +150,17 @@ App({
// console.warn('deleteConversation error:', imError); // 删除会话失败的相关信息
// });
let usertype = wx.getStorageSync('usertype');
let userID = wx.getStorageSync('user_id_'+usertype);
//初始化tab-bar角标
let index_info = wx.getStorageSync(userID+'_index_info');
let my_info = wx.getStorageSync(userID+'_my_info');
if(!index_info) wx.setStorageSync(userID+'_index_info',"");
if(!my_info) wx.setStorageSync(userID+'_my_info', "");
this.formatWenZhenInfo();
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onSystemPushReceived, this);
//互踢
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.KICKED_OUT, this.onKickedOut);
},
onKickedOut(){
@ -224,11 +247,104 @@ App({
SECRETKEY: "a5bcd8c583181cf004e9d91a47687d719d4b5d2a10ce33fbee95d587889447d8", // Your secretKey
EXPIRETIME: 604800,
},
app_inter: []
},
go(url, ...params){
wx.navigateTo({
url: url
})
},
formatWenZhenInfo(){
this.getConversationList();
},
getConversationList(){
wx.$TUIKit.getConversationList().then((imResponse) => {
console.log("getConversationList from app js: ", imResponse.data.conversationList);
return imResponse.data.conversationList;
}).then(conversationList => {
console.log("开始查询订单状态")
this.formatStatus(conversationList);
}).catch(error => {
console.log(error)
});
},
formatStatus(conversationList){
let order_inquiry_id_list = [];
order_inquiry_id_list.push("");//初始化一个,防止失败
conversationList.forEach(item => {
let conversationID = item.conversationID;
if(conversationID == "C2Cadministrator") return;//如果是管理员消息直接跳过
let lastMessage = item.lastMessage;
if(!lastMessage) return;
let cloudCustomData = lastMessage.cloudCustomData;
if(!cloudCustomData) return;
let cloudCustomDataJson;
try {
cloudCustomDataJson = JSON.parse(cloudCustomData);
} catch (error) {
console.log(error);
return;
}
let order_inquiry_id = cloudCustomDataJson.order_inquiry_id;
order_inquiry_id_list.push(order_inquiry_id);//准备去请求后端那订单状态
})
//获取医生问诊消息用户属性
api.getDoctorInquiryMessageAttr({order_inquiry_ids: order_inquiry_id_list.join(",")}).then(response => {
if(response.data.length > 0){
let new_conversationList = [];
conversationList.forEach(item => {
let conversationID = item.conversationID;
if(conversationID == "C2Cadministrator") return;//如果是管理员消息直接跳过
let lastMessage = item.lastMessage;
if(!lastMessage) return;
let cloudCustomData = lastMessage.cloudCustomData;
if(!cloudCustomData) return;
let cloudCustomDataJson;
try {
cloudCustomDataJson = JSON.parse(item.lastMessage.cloudCustomData);
} catch (error) {
return;
}
let order_inquiry_id = cloudCustomDataJson.order_inquiry_id;
let order = response.data.find(attr_item => {
return attr_item.order_inquiry_id == order_inquiry_id;
})
if(!order) return;
let inquiry_status = order.inquiry_status;
//inquiry_status 状态
if(inquiry_status !=3 && inquiry_status != 4){
return;
}
item.order_inquiry_id = order_inquiry_id;
item.inquiry_status = inquiry_status;
item.patient_age = order.patient_age;
item.patient_name = order.patient_name;
item.patient_sex = order.patient_sex;
new_conversationList.push(item);
})
conversationList = [];
return new_conversationList;
}
}).then(new_conversationList => {
console.log("开始计算问诊角标");
let wenzhen_info = 0;
new_conversationList.forEach(item => {
let unreadCount = item.unreadCount;
if(unreadCount > 0){
wenzhen_info = wenzhen_info + unreadCount;
}else{//若为0则继续判断订单状态
let inquiry_status = item.inquiry_status;
if(inquiry_status == 3){//若为待接诊,则+1
wenzhen_info = wenzhen_info + 1;
}
}
})
console.log("角标的数量:", wenzhen_info);
let usertype = wx.getStorageSync('usertype');
let userID = wx.getStorageSync('user_id_'+usertype);
this.formatUnReadNum(userID+'_wenzhen_info', wenzhen_info)
}).catch(errors => {console.error(errors);})
}
})

View File

@ -53,7 +53,8 @@
"Pages/webpage/index",
"Pages/kickedout/index",
"Pages/yishi/onlinesetupprice/index",
"Pages/yishi/yizhensetupprice/index"
"Pages/yishi/yizhensetupprice/index",
"Pages/yishi/wenzhenorderV2/index"
],
"window": {
"navigationBarBackgroundColor": "#ffffff",

View File

@ -2,7 +2,7 @@
<view class="top">
<view class="name">{{name}}</view>
<view class="start">
<t-rate value="{{start}}" count="{{start}}" />
<t-rate value="{{start}}" count="{{start}}" color="#ED9C00"/>
</view>
</view>
<view class="content">{{content}}</view>

View File

@ -2,7 +2,11 @@
display: flex;
padding: 20rpx;
flex-direction: column;
background-color: aqua;
}
.item:not(:last-child){
border-bottom: 1px solid #E7E7E7;
background-color: brown;
}
.top{
display: flex;

View File

@ -331,11 +331,18 @@ Component({
console.log("keshi_huixian: ", keshi_huixian)
console.log("zhicheng_huixian: ", zhicheng_huixian)
console.log("area_huixian: ", area_huixian)
if((keshi_huixian && zhicheng_huixian && area_huixian) || huixian_try_count > 50){
if((keshi_huixian && zhicheng_huixian && area_huixian)){
console.log("clearInterval1111", data_replay);
clearInterval(data_replay);
}
if(huixian_try_count > 50){
console.log("clearInterva22222", data_replay);
clearInterval(data_replay);
}
console.log("计时器");
}, 500);
console.log("clearInterva3333", data_replay);
},
},

View File

@ -70,7 +70,7 @@
<van-field bind:change="onCustomKeshiChange"
disabled="{{(indentity && iden_auth_disabled)}}"
type="text" model:value="{{custom_keshi}}" label=""
placeholder="请输入科室" border="{{department_custom_name_reason == ''}}" />
placeholder="请输入您所在科室实际名称" border="{{department_custom_name_reason == ''}}" />
</view>
<view class="has_error" wx:if="{{ department_custom_name_reason != '' }}" >
@ -272,7 +272,7 @@
textarea_cell_name="个人简介"
t_icon_name="view-module"
bind:showNote="onshowJianJieNote"
textarea_cell_content_placeholder="您的从业经历,职称,所获荣誉等信息10~1000字"
textarea_cell_content_placeholder="您目前就职医院与科室、社会兼职、所获荣誉、参与科研课题及发表论文等信息10~1000字"
textarea_val="{{textarea_jianjie}}"
disabled="{{(indentity && iden_auth_disabled)}}"
has_error_content="{{ brief_introduction_reason }}"
@ -285,7 +285,7 @@
disabled="{{(indentity && iden_auth_disabled)}}"
textarea_val="{{textarea_shanchang}}"
has_error_content="{{ be_good_at_reason }}"
textarea_cell_content_placeholder="您的专业领域、擅长疾病、研究方法等信息10~1000字"
textarea_cell_content_placeholder="描述您所擅长治疗的疾病或者研究方向10~1000字"
data-textarea_name="textarea_shanchang" bindTextAreaBlur="getTextAreaVal" />
<m-upload-cell
@ -299,7 +299,7 @@
bind:showNote="onshowZhiYeNote"
bindUploadFile="doUploadFile"
bindDeleteFile="doDeleteFile"
upload_cell_desc="请提供清晰的职业证书原件照片,需包含证书编码、加盖钢印的证书照片、姓名、执业范围、最新执业医院最少上传2张。"
upload_cell_desc="请提供清晰的执业证书原件照片,照片需包含证书编号、加盖钢印的证书照片及姓名、执业范围、执业医院等信息最少上传2张。"
upload_cell_note="查看示例"
has_error_content="{{ license_cert_reason }}"
wx:if="{{indentity}}"
@ -318,7 +318,7 @@
bindUploadFile="doUploadFile"
bindDeleteFile="doDeleteFile"
bind:showNote="onshowZiGeNote"
upload_cell_desc="请提供清晰的资格证书原件照片,需包含证书编码、加盖钢印的证书照片、姓名、职称等最少上传1张。"
upload_cell_desc="请提供清晰的资格证书原件照片,照片需包含证书编号、加盖钢印的证书照片、姓名等信息最少上传1张。"
upload_cell_note="查看示例"
has_error_content="{{ qualification_cert_reason }}"
wx:if="{{indentity}}"
@ -337,7 +337,7 @@
bind:showNote="onshowZhiChengImgNote"
bindUploadFile="doUploadFile"
bindDeleteFile="doDeleteFile"
upload_cell_desc="请提供清晰的职称证书原件照片,需包含证书编码、加盖钢印的证书照片、姓名等最少上传1张。"
upload_cell_desc="请提供清晰的职称证书原件照片,照片需包含编号、加盖钢印的证书照片、姓名及职称等信息最少上传1张。"
upload_cell_note="查看示例"
has_error_content="{{ work_cert_reason }}"
wx:if="{{indentity}}"

View File

@ -25,7 +25,19 @@ Component({
*/
methods: {
onBack() {
wx.navigateBack();
let back_url = this.data.navbarData.back_url;
let back_url_type = this.data.navbarData.back_url_type;
if(back_url){
if(back_url_type == 0){
app.go(back_url);
}else{
wx.reLaunch({
url: back_url,
});
}
}else{
wx.navigateBack();
}
},
onGoHome() {
wx.reLaunch({

View File

@ -37,7 +37,7 @@
title="温馨提示"
close-on-overlay-click
bind:close="onClose"
content="为保障服务质量,请您查看患者病历信息再选择是否接诊。"
content="为保障服务质量,请您查看患者病历后再去接诊"
>
<view slot="cancel-btn" class="dialog dialog_cancel_btn" bindtap="go" data-from_account="{{from_account}}" data-url="/Pages/yishi/case/index?order_inquiry_id={{order_inquiry_id}}" >去查看</view>
<view slot="confirm-btn" class="dialog dialog_confirm_btn" bindtap="postDoctorInquiry" data-from_account="{{from_account}}" data-inquiry_type="{{inquiry_type}}" data-order_inquiry_id="{{order_inquiry_id}}" data-url="/Pages/yishi/chat/index" >去接诊</view>

View File

@ -60,7 +60,6 @@ Component({
},
attached() {
const usertype = wx.getStorageSync('usertype')
console.log("usertype: " ,usertype);
if (usertype == 2) {
this.setData({
usertype: usertype,
@ -74,7 +73,7 @@ Component({
}
let _this = this;
let userID = wx.getStorageSync('user_id_'+usertype);
setInterval(() => {
let info_inter = setInterval(() => {
let index_info = wx.getStorageSync(userID+'_index_info');
let wenzhen_info = wx.getStorageSync(userID+'_wenzhen_info');
let my_info = wx.getStorageSync(userID+'_my_info');
@ -84,6 +83,8 @@ Component({
my_info: my_info,
})
}, 500);
app.globalData.app_inter.push(info_inter);
},
methods: {
// swichNav: function (e) {
@ -102,7 +103,6 @@ Component({
// }
// },
onChange(e) {
console.log("custom tab bar onChange");
const usertype = wx.getStorageSync('usertype');
let userID = wx.getStorageSync('user_id_'+usertype);
let idcard_status = wx.getStorageSync(userID+'_idcard_status');
@ -110,15 +110,10 @@ Component({
let multi_point_status = wx.getStorageSync(userID+'_multi_point_status');
let is_bind_bank = wx.getStorageSync(userID+'_is_bind_bank');
console.log("idcard_status: ", idcard_status);
console.log("iden_auth_status: ", iden_auth_status);
console.log("multi_point_status: ", iden_auth_status);
console.log("is_bind_bank: ", is_bind_bank);
if(idcard_status != 1 && usertype != 3){
this.setData({
dialog_visible: true,
dialog_content: "请您先实名认证",
dialog_content: "请您先完成实名认证",
next_url: "/Pages/yishi/identity/index",
})
return;
@ -140,7 +135,6 @@ Component({
return;
}
let url = this.data.items[e.detail].pagePath;
console.log(url);
wx.switchTab({
url: url,
})
@ -149,7 +143,6 @@ Component({
this.setData({
dialog_visible: false
})
console.log("next_url: ", this.data.next_url);
let next_url = this.data.next_url;
app.go(next_url);
},

View File

@ -96,17 +96,11 @@ let Navbar = class Navbar extends SuperComponent {
success: (res) => {
const boxStyleList = [];
const { statusBarHeight } = wx.getSystemInfoSync();
console.log("statusBarHeight: ", statusBarHeight);
console.log("${rect.height}px: ", `${rect.height}`);
boxStyleList.push(`--td-navbar-padding-top:${statusBarHeight}px`);
if (rect && (res === null || res === void 0 ? void 0 : res.windowWidth)) {
boxStyleList.push(`--td-navbar-right:${res.windowWidth - rect.left}px`);
}
boxStyleList.push(`--td-navbar-capsule-height: ${rect.height}px`);
console.log("statusBarHeight: ", statusBarHeight);
console.log("${rect.height}: ", `${rect.height}`);
boxStyleList.push(`--td-navbar-capsule-width:${rect.width}px`);
this.setData({
boxStyle: `${boxStyleList.join('; ')}`,

View File

@ -234,10 +234,10 @@ class API extends HTTP {
})
}
//获取提现数据
getDoctorWithdrawal(params) {
postDoctorWithdrawalInfo(params) {
return this.request({
url: `${this.baseUrl}/doctor/withdrawal`,
method: 'GET',
url: `${this.baseUrl}/doctor/withdrawal/info`,
method: 'POST',
data: {
...params
}