This commit is contained in:
haomingming
2023-03-14 14:09:21 +08:00
parent 14bcbf1673
commit 959bfc61b1
79 changed files with 1601 additions and 438 deletions
+160 -3
View File
@@ -1,3 +1,7 @@
import { API } from './../../../utils/network/api'
import { getTimeAgo } from './../../../utils/util'
import TIM from '../../../TUIKit/lib/tim-wx-sdk';
const api = new API()
const app = getApp()
Page({
data: {
@@ -6,17 +10,46 @@ Page({
title: '问诊消息', //导航栏 中间的标题
},
height: app.globalData.height,
has_data: true
has_data: true,
data_list_1: [],
data_list_2: [],
data_list_3: [],
data_list_4: [],
data_list_5: [],
message_inquiry_type: 2,
},
onLoad() {
console.log("wenzhen onload");
},
onShow: function () {
if (typeof this.getTabBar === 'function' && this.getTabBar()) {
this.getTabBar().setData({
active: 1 //数字是当前页面在tabbar的索引,如我的查询页索引是2,因此这边为2,同理首页就为0,审批页面为1
})
}
},
let session_data_list_1 = wx.getStorageSync('session_data_list_1');
let session_data_list_2 = wx.getStorageSync('session_data_list_2');
let session_data_list_3 = wx.getStorageSync('session_data_list_3');
let session_data_list_4 = wx.getStorageSync('session_data_list_4');
if(!session_data_list_1) wx.setStorageSync('session_data_list_1', []);
if(!session_data_list_2) wx.setStorageSync('session_data_list_2', []);
if(!session_data_list_3) wx.setStorageSync('session_data_list_3', []);
if(!session_data_list_4) wx.setStorageSync('session_data_list_4', []);
this.setData({"data_list_1": session_data_list_1});
this.setData({"data_list_2": session_data_list_2});
this.setData({"data_list_3": session_data_list_3});
this.setData({"data_list_4": session_data_list_4});
if(session_data_list_1.length == 0) this.getDoctorInquiryMessage(1);
if(session_data_list_2.length == 0) this.getDoctorInquiryMessage(2);
if(session_data_list_3.length == 0) this.getDoctorInquiryMessage(3);
if(session_data_list_4.length == 0) this.getDoctorInquiryMessage(4);
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onMessageReceived, this);
},
go(e){
wx.navigateTo({
url: e.currentTarget.dataset.url,
@@ -34,5 +67,129 @@ Page({
res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
}
})
},
$onMessageReceived(value) {
const message = value.data[0];
console.log("message from wenzhen: ",message)
let cloudCustomData = JSON.parse(message.cloudCustomData);
let inquiry_type = cloudCustomData.inquiry_type;
let order_inquiry_id = cloudCustomData.order_inquiry_id;
let type = message.type;
let message_txt = "新消息";
console.log(type)
switch (type) {
case TIM.TYPES.MSG_TEXT:
console.log("文本消息");
message_txt = message.payload.text;
break;
case TIM.TYPES.MSG_IMAGE:
console.log("图片消息");
message_txt = "[图片]";
break;
case TIM.TYPES.MSG_AUDIO:
console.log("音频消息")
message_txt = "[语言]";
break;
case TIM.TYPES.MSG_VIDEO:
console.log("视频消息");
message_txt = "[视频]";
break;
case TIM.TYPES.MSG_FILE:
console.log("文件消息")
message_txt = "[文件]";
break;
case TIM.TYPES.MSG_CUSTOM:
console.log("自定义消息")
break;
case TIM.TYPES.MSG_MERGER:
console.log("合并消息")
break;
case TIM.TYPES.MSG_LOCATION:
console.log("位置消息")
message_txt = "[位置]";
break;
case TIM.TYPES.MSG_FACE:
console.log("表情消息")
message_txt = "[表情]";
break;
default:
break;
}
let list_name = "data_list_" + inquiry_type;
let _index = this.data[list_name].findIndex(item => {
return item.order_inquiry_id == order_inquiry_id;
})
let new_list = [];
//没有当前会话
if(_index > -1){
let target = list_name + "[" + _index + "].last_message_content.Text";
let target_dot = list_name + "[" + _index + "].message_dot";
console.log("target: ",target);
this.setData({
[target]: message_txt,
[target_dot]: true
})
new_list.push(this.data[list_name][_index]);//先放入目标
}else{
let item = {};
item.inquiry_status = message.inquiry_status;
let txt = {};
txt.Text= message_txt;
item.last_message_content = txt;
item.message_send_time = message.message_send_time;
item.message_seq = message.message_seq;
item.message_type = message.message_type;
item.order_inquiry_id = message.order_inquiry_id;
item.patient_age = message.patient_age;
item.patient_name = message.patient_name;
item.patient_sex = message.patient_sex;
item.to_user_id = message.to_user_id;
item.message_dot = true;
new_list.push(item);
}
//置顶
this.data[list_name].forEach((item, index) => {
if(index != _index){
new_list.push(item)
}
})
this.setData({
[list_name]: new_list
})
wx.setStorageSync('session_'+list_name, new_list);
},
getDoctorInquiryMessage(message_inquiry_type){
let list_name = "data_list_" + message_inquiry_type;
this.setData({
[list_name]: []
})
//获取医生问诊消息列表
api.getDoctorInquiryMessage({message_inquiry_type: message_inquiry_type}).then(response => {
console.log(response);
if(response.data){
console.log(list_name);
let data_list = this.data[list_name];
response.data.forEach((item) => {
item.message_send_time = getTimeAgo(item.message_send_time);
data_list.push(item);
})
this.setData({
[list_name]: data_list,
})
wx.setStorageSync('session_'+list_name, data_list);
}
}).catch(errors => {console.error(errors);})
},
onTabsChange(e){
console.log(e);
this.setData({
message_inquiry_type: e.detail.value,
})
this.getDoctorInquiryMessage(e.detail.value)
}
})
+3 -1
View File
@@ -6,6 +6,8 @@
"t-image": "tdesign-miniprogram/image/image",
"t-tabs": "tdesign-miniprogram/tabs/tabs",
"t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel",
"van-button": "@vant/weapp/button/index"
"t-badge": "tdesign-miniprogram/badge/badge",
"van-button": "@vant/weapp/button/index",
"van-empty": "@vant/weapp/empty/index"
}
}
+91 -19
View File
@@ -3,11 +3,16 @@
<view class="container" style="height: calc(100vh - 96rpx - {{height}}px);">
<view class="top">
<view class="top_left" bindtap="go" data-url="/Pages/yishi/service_notice/index">
<t-image src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice.png" mode="heightFix" height="108rpx" aria-label="notice" />
<t-badge dot offset="{{ [1, 1] }}" class="wrapper">
<t-image src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/service_notice.png" mode="heightFix" height="108rpx" aria-label="notice" />
</t-badge>
服务通知
</view>
<view class="top_right" bindtap="go" data-url="/Pages/yishi/system_notice/index">
<t-image src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/system_notice.png" mode="heightFix" height="108rpx" aria-label="notice" />
<t-badge count="8" offset="{{ [1, 1] }}" class="wrapper">
<t-image src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/system_notice.png" mode="heightFix" height="108rpx" aria-label="notice" />
</t-badge>
系统公告
</view>
</view>
@@ -20,21 +25,20 @@
<view class="tabs" wx:if="{{ has_data }}" >
<t-tabs
defaultValue="{{0}}"
defaultValue="{{ message_inquiry_type }}"
sticky
bind:change="onTabsChange"
bind:click="onTabsClick"
bind:scroll="onStickyScroll"
t-class="custom-tabs"
theme="line"
custom-style="font-size: 32rpx"
>
<t-tab-panel label="快速问诊" value="0">
<t-tab-panel label="快速问诊" value="1">
<wenzhen-data
name="李四"
sex="女"
age="19"
age="199"
desc="VVVVVVVV"
status="0"
status_text="待接诊"
@@ -44,26 +48,48 @@
<wenzhen-data
name="李放四"
sex="女"
age="199"
age="19"
desc="VVVVVVVV"
status="1"
status_text="接诊中"
/>
<wenzhen-data
name="{{ item.patient_name }}"
sex="{{ item.patient_sex==1?'男':'女' }}"
age="{{ item.patient_age }}"
date="{{ item.message_send_time }}"
desc="{{ item.last_message_content.Text }}"
status="{{ item.inquiry_status }}"
status_text="{{ 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?'已取消':'其他' }}"
note="{{ item.inquiry_status==3?'不接诊24小时后自动取消':'' }}"
message_dot="{{item.message_dot}}"
wx:for="{{ data_list_1 }}"
/>
<van-empty description="暂无数据" wx:if="{{data_list_1.length == 0}}" />
</t-tab-panel>
<t-tab-panel label="问诊购药" value="1">
<t-tab-panel label="问诊购药" value="2">
<!-- 1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消 -->
<wenzhen-data
name="张三"
sex="男"
age="19"
desc="VVVVVVVV"
status="0"
status_text="待接诊"
note="xxx"
name="{{ item.patient_name }}"
sex="{{ item.patient_sex==1?'男':'女' }}"
age="{{ item.patient_age }}"
date="{{ item.message_send_time }}"
desc="{{ item.last_message_content.Text }}"
status="{{ item.inquiry_status }}"
status_text="{{ 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?'已取消':'其他' }}"
note="{{ item.inquiry_status==3?'不接诊24小时后自动取消':'' }}"
message_dot="{{item.message_dot}}"
wx:for="{{ data_list_2 }}"
/>
<van-empty description="暂无数据" wx:if="{{data_list_2.length == 0}}" />
</t-tab-panel>
<t-tab-panel label="在线问诊" value="2">
<wenzhen-data
<t-tab-panel label="在线问诊" value="3">
<!-- <wenzhen-data
name="王五"
sex="女"
age="19"
@@ -71,9 +97,25 @@
status="0"
status_text="待接诊"
note="xxx"
/> -->
<wenzhen-data
name="{{ item.patient_name }}"
sex="{{ item.patient_sex==1?'男':'女' }}"
age="{{ item.patient_age }}"
date="{{ item.message_send_time }}"
desc="{{ item.last_message_content.Text }}"
status="{{ item.inquiry_status }}"
status_text="{{ 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?'已取消':'其他' }}"
note="{{ item.inquiry_status==3?'不接诊24小时后自动取消':'' }}"
message_dot="{{item.message_dot}}"
wx:for="{{ data_list_3 }}"
/>
<van-empty description="暂无数据" wx:if="{{data_list_3.length == 0}}" />
</t-tab-panel>
<t-tab-panel label="公益问诊" value="3">
<t-tab-panel label="公益问诊" value="4">
<wenzhen-data
name="赵柳"
sex="女"
@@ -83,8 +125,23 @@
status_text="待接诊"
note="xxx"
/>
<wenzhen-data
name="{{ item.patient_name }}"
sex="{{ item.patient_sex==1?'男':'女' }}"
age="{{ item.patient_age }}"
date="{{ item.message_send_time }}"
desc="{{ item.last_message_content.Text }}"
status="{{ item.inquiry_status }}"
status_text="{{ 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?'已取消':'其他' }}"
note="{{ item.inquiry_status==3?'不接诊24小时后自动取消':'' }}"
message_dot="{{item.message_dot}}"
wx:for="{{ data_list_4 }}"
/>
<van-empty description="暂无数据" wx:if="{{data_list_4.length == 0}}" />
</t-tab-panel>
<t-tab-panel label="问诊结束" value="4">
<t-tab-panel label="问诊结束" value="5">
<wenzhen-data
name="谢广坤"
sex="女"
@@ -94,6 +151,21 @@
status_class="status_end"
status_text="快速问诊"
/>
<wenzhen-data
name="{{ item.patient_name }}"
sex="{{ item.patient_sex==1?'男':'女' }}"
age="{{ item.patient_age }}"
date="{{ item.message_send_time }}"
desc="{{ item.last_message_content.Text }}"
status="{{ item.inquiry_status }}"
status_text="{{ 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?'已取消':'其他' }}"
note="{{ item.inquiry_status==3?'不接诊24小时后自动取消':'' }}"
message_dot="{{item.message_dot}}"
wx:for="{{ data_list_5 }}"
/>
<van-empty description="暂无数据" wx:if="{{data_list_5.length == 0}}" />
</t-tab-panel>
</t-tabs>
</view>
+5 -3
View File
@@ -1,10 +1,12 @@
.container{
page{
background-color: #F4F4F4;
}
.container{
width: 100vw;
height: 100vh;
padding-top: 20rpx;
}
.top{
margin: 30rpx auto;
margin: 0 auto 30rpx auto;
display: flex;
padding: 20rpx 20rpx;
background-color: rgb(255, 255, 255);