diff --git a/littleApp_child/app.js b/littleApp_child/app.js
index 84a65b9..5da8d0b 100644
--- a/littleApp_child/app.js
+++ b/littleApp_child/app.js
@@ -116,7 +116,7 @@ App({
from: message.from,
to: message.to
},
- username: '',
+ username: message.from,
yourname: message.from,
msg: {
type: 'txt',
@@ -134,6 +134,7 @@ App({
data: that.globalData.unrederMsg[messageFrom + myName],
success: function () {
console.log('setStorage success')
+ disp.fire("em.xmpp.unreadspot", message);
}
})
console.log('消息打印',messageFrom + myName,that.globalData.unrederMsg[messageFrom + myName])
@@ -167,7 +168,7 @@ App({
from: message.from,
to: message.to
},
- username: '',
+ username: message.from,
yourname: message.from,
msg: {
type: 'img',
@@ -186,6 +187,7 @@ App({
data: that.globalData.unrederMsg[messageFrom + myName],
success: function () {
console.log('setStorage success')
+ disp.fire("em.xmpp.unreadspot", message);
}
})
}
@@ -210,7 +212,7 @@ App({
from: message.from,
to: message.to
},
- username: '',
+ username: message.from,
yourname: message.from,
msg: {
type: 'audio',
@@ -231,6 +233,7 @@ App({
data: that.globalData.unrederMsg[messageFrom+ myName],
success: function () {
console.log('setStorage success')
+ disp.fire("em.xmpp.unreadspot", message);
}
})
}
diff --git a/littleApp_child/pages/chatroom/chatroom.js b/littleApp_child/pages/chatroom/chatroom.js
index 52f151a..ce5a403 100644
--- a/littleApp_child/pages/chatroom/chatroom.js
+++ b/littleApp_child/pages/chatroom/chatroom.js
@@ -45,6 +45,7 @@ Page({
kfName:'',
memberHxName:'',
memberName:'',
+ unTotleReadCount:0,
chatMsg: [],
username:'',
bubbles:false,
@@ -62,7 +63,7 @@ Page({
*/
onLoad: function (options) {
let self=this;
- console.log(options)
+ var options=JSON.parse(options.username)
networkUtil._post(api.addBabyChatroom,{doctorId:options.doctorId},function(res){
console.log(res)
self.setData({
@@ -74,14 +75,14 @@ Page({
kfName:res.data.data.kfName,
memberHxName:res.data.data.memberHxName,
memberName:res.data.data.memberName,
- username:'150346790928385'
+ username:res.data.data.chatroomId
})
self.initChat()
},function(res){
},'application/json')
-
+ self.initChat()
disp.on('em.xmpp.error.sendMsgErr', function(err) {
curMsgMid = err.data.mid
isFail = true
@@ -431,7 +432,7 @@ Page({
from: msg.from,
to: msg.to
},
- username: '',
+ username: msg.from,
yourname: msg.from,
msg: {
type: type,
@@ -551,7 +552,7 @@ Page({
},
onRender(){
wx.pageScrollTo({
- scrollTop: 5000,
+ scrollTop: 50000,
duration: 300,
success: function(){console.log('滚动成功')},
fail: function(){console.log('滚动失败')}
@@ -879,6 +880,8 @@ Page({
var id = WebIM.conn.getUniqueId();
var msg = new WebIM.message(msgType.AUDIO, id);
var dataObj = JSON.parse(res.data);
+ msg.from = myName;
+
// 接收消息对象
msg.set({
apiUrl: WebIM.config.apiURL,
@@ -913,7 +916,7 @@ Page({
from: msg.from,
to: msg.to
},
- username: '',
+ username: msg.from,
yourname: msg.from,
msg: {
type: 'audio',
diff --git a/littleApp_child/pages/chatroom/chatroom.wxml b/littleApp_child/pages/chatroom/chatroom.wxml
index b931957..67240eb 100644
--- a/littleApp_child/pages/chatroom/chatroom.wxml
+++ b/littleApp_child/pages/chatroom/chatroom.wxml
@@ -14,8 +14,9 @@
{{ item.username===doctorHxName?doctorName:item.username===kfHxName?kfName:item.username===memberHxName?memberName:'' }}
-
-
+
+
+
= 1){
+ wx.vibrateLong({
+ success:function() {
+ console.log('震动调取成功')
+ },
+ })
+ }
+ });
},
/**
@@ -106,37 +135,39 @@ Page({
},
chat(e){
var self=this;
- var doctorId = e.target.dataset.doctorid;
+ var doctorId = e.currentTarget.dataset.doctorid;
console.log(doctorId)
networkUtil._post(api.addBabyChatroom,{doctorId:doctorId},function(res){
- console.log(res)
- self.setData({
- doctorHxName:res.data.data.doctorHxName,
- doctorName:res.data.data.doctorName,
- kfHxName:res.data.data.kfHxName,
- kfName:res.data.data.kfName,
- memberHxName:res.data.data.memberHxName,
- memberName:res.data.data.memberName,
- username:'150346790928385'
- })
+ if(res.data.errorcode==0){
+ self.data.unTotleReadCount = 0;
+ console.log(res)
+ var nameList={
+ doctorHxName:res.data.data.doctorHxName,
+ doctorName:res.data.data.doctorName,
+ kfHxName:res.data.data.kfHxName,
+ kfName:res.data.data.kfName,
+ memberHxName:res.data.data.memberHxName,
+ memberName:res.data.data.memberName,
+ username:res.data.data.chatroomId,
+ doctorId:doctorId
+ }
+ console.log(nameList)
+
+ console.log(self.data.unTotleReadCount)
+ if(self.data.unTotleReadCount >= 1){
+ wx.vibrateLong({
+ success:function() {
+ console.log('震动调取成功')
+ },
+ })
+ }
+ wx.redirectTo({
+ url: '../chatroom/chatroom?username='+ JSON.stringify(nameList),
+ })
+ }
},function(res){
},'application/json')
- var nameList={
- memberId:self.memberId,
- serviceId:self.serviceId,
- doctorHxName:self.doctorHxName,
- doctorName:self.doctorName,
- kfHxName:self.kfHxName,
- kfName:self.kfName,
- memberHxName:self.memberHxName,
- memberName:self.memberName,
- doctorId:self.doctorId
- }
- console.log(nameList)
- wx.navigateTo({
- url: '../chatroom/chatroom?username='+ JSON.stringify(nameList),
- })
},
godoctor: function(e) {
var doctorId = e.currentTarget.dataset.doctorid;
@@ -186,7 +217,7 @@ Page({
self.setData({
hospitalName: hospitalName,
index: e.detail.value,
- list:doctors
+ list:self.getChatList(doctors)
})
//self.getDoctorsFromServer()
},
@@ -268,4 +299,27 @@ Page({
})
},
+
+ getChatList(data){
+ console.log(111)
+ var member = data || this.data.list;
+ var myName = wx.getStorageSync("hxName");
+ for(let i = 0; i < member.length; i++){
+ console.log(member[i].chartroomId,myName)
+ //let newChatMsgs = wx.getStorageSync('150455922524161' + myName) || [];
+ //let historyChatMsgs = wx.getStorageSync("rendered_" + '150455922524161' + myName) || [];
+ let newChatMsgs = wx.getStorageSync(member[i].chartroomId + myName) || [];
+ let historyChatMsgs = wx.getStorageSync("rendered_" + member[i].chartroomId + myName) || [];
+ let curChatMsgs = historyChatMsgs.concat(newChatMsgs);
+ let item = member[i];
+ if(curChatMsgs.length){
+ item.unReadCount = newChatMsgs.length;
+ if(item.unReadCount > 99) {
+ item.unReadCount = "99+";
+ }
+ this.data.unTotleReadCount += item.unReadCount
+ }
+ }
+ return member;
+ }
})
\ No newline at end of file
diff --git a/littleApp_child/pages/doctorLists/doctorLists.wxml b/littleApp_child/pages/doctorLists/doctorLists.wxml
index d3ac436..12bf7a8 100644
--- a/littleApp_child/pages/doctorLists/doctorLists.wxml
+++ b/littleApp_child/pages/doctorLists/doctorLists.wxml
@@ -29,14 +29,14 @@
专家咨询
-
+
{{item.name}}{{item.positional}}
专家介绍
-
+ {{item.unReadCount}}
diff --git a/littleApp_child/pages/doctorLists/doctorLists.wxss b/littleApp_child/pages/doctorLists/doctorLists.wxss
index e33b6a0..eba7ae9 100644
--- a/littleApp_child/pages/doctorLists/doctorLists.wxss
+++ b/littleApp_child/pages/doctorLists/doctorLists.wxss
@@ -15,7 +15,19 @@ page {
padding-right: 15px;
padding-top: 15px;
}
-
+.massage_box_txt{
+ float:right;
+ width: 50rpx;
+ height: 50rpx;
+ text-align: center;
+ border-radius: 50%;
+ background-color: indianred;
+ font-size: 15px;
+ color: #fff;
+ position: absolute;
+ right:20px;
+ top:10px;
+}
.top_content_view {
background: #fff;
border: 1px solid #d8dbd2;
@@ -95,6 +107,7 @@ line-height: 40px;
.icon_name_view {
display: flex;
padding-left: 15px;
+ position: relative;
}
.icon {
diff --git a/littleApp_child/pages/home/home.js b/littleApp_child/pages/home/home.js
index ec338e2..e53412f 100644
--- a/littleApp_child/pages/home/home.js
+++ b/littleApp_child/pages/home/home.js
@@ -13,6 +13,7 @@ var app = getApp()
//聊天控件
let WebIM = wx.WebIM = require("../../utils/WebIM.js").default;
+let disp = require("../../utils/broadcast");
var timeCount = 60;
var timer;
@@ -32,6 +33,7 @@ Page({
item_small: 0,
// 首页类型 1登录 2用户首页 3欢迎页
pageType: 0,
+ unTotleReadCount:0,
time: '0s',
list: [],
userInfo: '',
@@ -83,10 +85,15 @@ Page({
riskDise:false
},
/*---------生命周期--------*/
- onLoad: function() {
+ onLoad: function(options) {
this.calculatePageSize()
+
// 网络监听
this.networkStatusChange()
+ var that = this
+ disp.on("em.xmpp.unreadspot", function(){
+ that.getUnreaderMsgNum()
+ })
if (app.globalData.token == null || app.globalData.token == ''||wx.getStorageSync("access_token") == null||!wx.getStorageSync("access_token")) {
this.welcomePage()
} else {
@@ -115,6 +122,7 @@ Page({
if (wx.getStorageSync("access_token") != null&&wx.getStorageSync("access_token")) {
console.log(wx.getStorageSync("access_token"))
this.connectWebIM()
+
}
if (app.globalData.token.length > 0 && this.data.pageType != 2) {
this.getUserInfo()
@@ -126,6 +134,7 @@ Page({
if (!app.globalData.token && this.data.pageType != 1) {
this.welcomePage()
}
+ this.getUnreaderMsgNum()
},
onUnload: function() {
// 移除监听
@@ -805,8 +814,7 @@ Page({
},
//专家咨询
consultation(){
- console.log(this.data.userData)
- if(this.data.userData.disStatus == 0){
+ if(this.data.riskGuide){
var my = wx.getStorageSync('hxName')
var nameList = {
myName: my,
@@ -818,21 +826,46 @@ Page({
wx.navigateTo({
url: '../doctorLists/doctorLists?username='+ JSON.stringify(nameList),
})
- }else if(this.data.userData.disStatus == 1){
- var my = wx.getStorageSync('hxName')
- var serviceId = this.data.userData.disData.serviceId;
- var nameList = {
- myName: my,
- your: this.data.userData.disData.doctorHxName,
- serviceId:serviceId,
- memberId:this.data.userData.disData.memberId,
- doctorId:this.data.userData.disData.doctorId
- }
- wx.setStorageSync('serviceId',serviceId)
- console.log(nameList)
- wx.navigateTo({
- url: '../doctorLists/doctorLists?username='+ JSON.stringify(nameList),
+ }else{
+ wx.showModal({
+ title: '温馨提示',
+ content: '您还没有开通该项服务哦',
+ confirmText: '立即开通',
+ success: function(res) {
+ if (res.confirm) {
+ wx.navigateTo({
+ url: '../vipService/vipService',
+ })
+ }
+ }
+ })
+ }
+ },
+ // 获取未读总数
+ getUnreaderMsgNum(){
+ var that = this
+ var num = 0
+ var myName = wx.getStorageSync("hxName");
+ WebIM.conn.listRooms({
+ success: function(rooms){
+ console.log(rooms)
+ rooms.map((item) => {
+ wx.getStorage({
+ key: item.roomId + myName,
+ success (res) {
+ var unreadMas =res.data
+ if(unreadMas){
+ num += unreadMas.length;
+ }
+ console.log(num)
+ that.setData({unTotleReadCount:num})
+ }
+ })
+ })
+ },
+ error: function(){
+
+ }
})
}
-},
})
\ No newline at end of file
diff --git a/littleApp_child/pages/home/home.wxml b/littleApp_child/pages/home/home.wxml
index 2d9e296..226ca0d 100644
--- a/littleApp_child/pages/home/home.wxml
+++ b/littleApp_child/pages/home/home.wxml
@@ -101,6 +101,7 @@
眼保健记录
+ {{unTotleReadCount}}
专家咨询
diff --git a/littleApp_child/pages/home/home.wxss b/littleApp_child/pages/home/home.wxss
index 8f4b205..c229d0f 100644
--- a/littleApp_child/pages/home/home.wxss
+++ b/littleApp_child/pages/home/home.wxss
@@ -11,7 +11,19 @@ page{
background: #48C17B;
position: relative;
}
-
+.unreadCount{
+ width: 46rpx;
+ height: 46rpx;
+ text-align: center;
+ border-radius: 50%;
+ background-color: indianred;
+ z-index: 10;
+ font-size: 15px;
+ color: #fff;
+ position: absolute;
+ right:10px;
+ top:0px;
+}
.promptText {
background: #f4879b;
font: bold;
@@ -203,6 +215,7 @@ page{
flex-direction: column;
align-items: center;
justify-content: center;
+ position: relative;
}
.foundation_item_small_image {
diff --git a/littleApp_child/source/kefu.png b/littleApp_child/source/kefu.png
new file mode 100644
index 0000000000000000000000000000000000000000..89189aec4b1e72900e7e597e36f08aa479a73829
GIT binary patch
literal 11576
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
qX4283o7y2D5=1-P#9C&8!2ba