优化
This commit is contained in:
@@ -0,0 +1,270 @@
|
||||
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: {
|
||||
navbarData: {
|
||||
showCapsule: 0, //是否显示左上角图标 1表示显示 0表示不显示
|
||||
title: '问诊消息', //导航栏 中间的标题
|
||||
},
|
||||
height: app.globalData.height,
|
||||
has_data: true,
|
||||
data_list_1: [],
|
||||
data_list_2: [],
|
||||
data_list_3: [],
|
||||
data_list_4: [],
|
||||
data_list_5: [],
|
||||
conversationList: [],
|
||||
message_inquiry_type: 2,
|
||||
},
|
||||
onLoad() {
|
||||
console.log("wenzhen onload");
|
||||
|
||||
},
|
||||
onShow: function () {
|
||||
console.log("onShow from wenzhen V2")
|
||||
if (typeof this.getTabBar === 'function' && this.getTabBar()) {
|
||||
this.getTabBar().setData({
|
||||
active: 1 //数字是当前页面在tabbar的索引,如我的查询页索引是2,因此这边为2,同理首页就为0,审批页面为1
|
||||
})
|
||||
}
|
||||
this.getConversationList();
|
||||
wx.$TUIKit.on(wx.$TUIKitTIM.EVENT.MESSAGE_RECEIVED, this.$onMessageReceived, this);
|
||||
},
|
||||
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();
|
||||
});
|
||||
},
|
||||
go(e){
|
||||
wx.navigateTo({
|
||||
url: e.currentTarget.dataset.url,
|
||||
events: {
|
||||
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
|
||||
acceptDataFromOpenedPage: function(data) {
|
||||
console.log(data)
|
||||
},
|
||||
someEvent: function(data) {
|
||||
console.log(data)
|
||||
}
|
||||
},
|
||||
success: function(res) {
|
||||
// 通过 eventChannel 向被打开页面传送数据
|
||||
res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
|
||||
}
|
||||
})
|
||||
},
|
||||
$onMessageReceived(value) {
|
||||
const message = value.data[0];
|
||||
console.log("message from wenzhen: ",message)
|
||||
this.getConversationList();
|
||||
// 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
|
||||
// })
|
||||
|
||||
},
|
||||
formatStatus(){
|
||||
|
||||
|
||||
let order_inquiry_id_list = [];
|
||||
|
||||
this.data.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 = JSON.parse(cloudCustomData);
|
||||
let order_inquiry_id = cloudCustomDataJson.order_inquiry_id;
|
||||
order_inquiry_id_list.push(order_inquiry_id);//准备去请求后端那订单状态
|
||||
})
|
||||
|
||||
let conversationList = this.data.conversationList;
|
||||
//获取医生问诊消息用户属性
|
||||
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 = JSON.parse(item.lastMessage.cloudCustomData);
|
||||
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;
|
||||
|
||||
item.inquiry_status = order.inquiry_status;
|
||||
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")
|
||||
this.formatConversationList();
|
||||
}).catch(errors => {console.error(errors);})
|
||||
},
|
||||
formatConversationList(){
|
||||
let session_list = [];
|
||||
let session_data_list_1 = [];
|
||||
let session_data_list_2 = [];
|
||||
let session_data_list_3 = [];
|
||||
let session_data_list_4 = [];
|
||||
session_list.push(session_data_list_1);
|
||||
session_list.push(session_data_list_2);
|
||||
session_list.push(session_data_list_3);
|
||||
session_list.push(session_data_list_4);
|
||||
|
||||
this.data.conversationList.forEach(item => {
|
||||
let conversationID = item.conversationID;
|
||||
if(conversationID == "C2Cadministrator") return;//如果是管理员消息直接跳过
|
||||
let type = item.type;
|
||||
let lastMessage = item.lastMessage;
|
||||
let userProfile = item.userProfile;
|
||||
if(!lastMessage) return;
|
||||
let cloudCustomData = lastMessage.cloudCustomData;
|
||||
if(!cloudCustomData) return;
|
||||
let cloudCustomDataJson = JSON.parse(cloudCustomData);
|
||||
let order_inquiry_id = cloudCustomDataJson.order_inquiry_id;
|
||||
if(!order_inquiry_id) return;
|
||||
let inquiry_type = cloudCustomDataJson.inquiry_type;
|
||||
let session_item = {};
|
||||
session_item.inquiry_status = item.inquiry_status;//订单状态暂无
|
||||
let txt = {};
|
||||
txt.Text= lastMessage.messageForShow;
|
||||
session_item.last_message_content = txt;
|
||||
session_item.message_send_time = getTimeAgo(lastMessage.lastTime);
|
||||
session_item.message_type = type;
|
||||
session_item.order_inquiry_id = order_inquiry_id;
|
||||
session_item.patient_age = item.patient_age;//暂无
|
||||
session_item.patient_name = userProfile.nick;
|
||||
session_item.from_account = userProfile.userID;
|
||||
session_item.patient_sex = item.patient_sex;//暂无
|
||||
let unreadCount = item.unreadCount;
|
||||
if(unreadCount > 0){
|
||||
session_item.message_dot = true;
|
||||
}else{
|
||||
session_item.message_dot = false;
|
||||
}
|
||||
session_list[inquiry_type - 1].push(session_item);
|
||||
})
|
||||
|
||||
|
||||
|
||||
this.setData({
|
||||
data_list_1: session_data_list_1,
|
||||
data_list_2: session_data_list_2,
|
||||
data_list_3: session_data_list_3,
|
||||
data_list_4: session_data_list_4,
|
||||
})
|
||||
},
|
||||
onTabsChange(e){
|
||||
console.log(e);
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"te-nav-bar": "/commpents/te_navbar",
|
||||
"wenzhen-data": "/commpents/wenzhen_data/index",
|
||||
"t-image": "tdesign-miniprogram/image/image",
|
||||
"t-tabs": "tdesign-miniprogram/tabs/tabs",
|
||||
"t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel",
|
||||
"t-badge": "tdesign-miniprogram/badge/badge",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"van-empty": "@vant/weapp/empty/index"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
<!-- 问诊页面 -->
|
||||
<te-nav-bar navbar-data='{{navbarData}}' ></te-nav-bar>
|
||||
<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-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-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>
|
||||
|
||||
<view class="empty" wx:if="{{ !has_data }}" >
|
||||
<t-image src="https://gdxz-hospital.oss-cn-chengdu.aliyuncs.com/applet/doctor/static/images/yishi/wnzhen_empty.png" mode="heightFix" height="108rpx" aria-label="empty" />
|
||||
<view class="empty_note">您还未设置在线问诊价格</view>
|
||||
</view>
|
||||
<van-button color="#3CC7C0" custom-style="width: 92vw;margin: 0 auto;border-radius: 10rpx;" block wx:if="{{ !has_data }}">开通图文问诊</van-button>
|
||||
|
||||
<view class="tabs" wx:if="{{ has_data }}" >
|
||||
<t-tabs
|
||||
defaultValue="{{ message_inquiry_type }}"
|
||||
sticky
|
||||
bind:change="onTabsChange"
|
||||
bind:scroll="onStickyScroll"
|
||||
t-class="custom-tabs"
|
||||
theme="line"
|
||||
custom-style="font-size: 32rpx"
|
||||
|
||||
>
|
||||
<t-tab-panel label="快速问诊" value="1">
|
||||
<wenzhen-data
|
||||
name="李四"
|
||||
sex="女"
|
||||
age="19"
|
||||
desc="VVVVVVVV"
|
||||
status="0"
|
||||
status_text="待接诊"
|
||||
note="xxx"
|
||||
/>
|
||||
|
||||
<wenzhen-data
|
||||
name="李放四"
|
||||
sex="女"
|
||||
age="199"
|
||||
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="2">
|
||||
<!-- 1:待支付 2:待分配 3:待接诊 4:已接诊 5:已完成 6:已结束 7:已取消 -->
|
||||
<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 }}"
|
||||
order_inquiry_id="{{ item.order_inquiry_id }}"
|
||||
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}}"
|
||||
from_account="{{item.from_account}}"
|
||||
wx:for="{{ data_list_2 }}"
|
||||
/>
|
||||
|
||||
<van-empty description="暂无数据" wx:if="{{data_list_2.length == 0}}" />
|
||||
|
||||
</t-tab-panel>
|
||||
<t-tab-panel label="在线问诊" value="3">
|
||||
<!-- <wenzhen-data
|
||||
name="王五"
|
||||
sex="女"
|
||||
age="19"
|
||||
desc="VVVVVVVV"
|
||||
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="4">
|
||||
<wenzhen-data
|
||||
name="赵柳"
|
||||
sex="女"
|
||||
age="19"
|
||||
desc="VVVVVVVV"
|
||||
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_4 }}"
|
||||
/>
|
||||
|
||||
<van-empty description="暂无数据" wx:if="{{data_list_4.length == 0}}" />
|
||||
</t-tab-panel>
|
||||
<t-tab-panel label="问诊结束" value="5">
|
||||
<wenzhen-data
|
||||
name="谢广坤"
|
||||
sex="女"
|
||||
age="199"
|
||||
desc="VVVVVVVV"
|
||||
status="2"
|
||||
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>
|
||||
|
||||
<view style="height: 200rpx;"></view>
|
||||
</view>
|
||||
@@ -0,0 +1,51 @@
|
||||
page{
|
||||
background-color: #F4F4F4;
|
||||
}
|
||||
.container{
|
||||
width: 100vw;
|
||||
padding-top: 20rpx;
|
||||
}
|
||||
.top{
|
||||
margin: 0 auto 30rpx auto;
|
||||
display: flex;
|
||||
padding: 20rpx 20rpx;
|
||||
background-color: rgb(255, 255, 255);
|
||||
}
|
||||
.top_left, .top_right{
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
color: #666666;
|
||||
font-size: 20rpx;
|
||||
}
|
||||
.top_left{
|
||||
border-right: 1px solid #F4F4F4;
|
||||
}
|
||||
.t-tab-panel,.t-tabs__content {
|
||||
background-color: #F4F4F4 !important;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
.empty{
|
||||
width: 92vw;
|
||||
margin: 0 auto;
|
||||
height: 500rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
.empty_note{
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
margin-top: 30rpx;
|
||||
}
|
||||
Reference in New Issue
Block a user