// pages/doctorsList/doctorsList.js // 网络请求工具类 var networkUtil = require('../../utils/network_util.js') var api = require('../../utils/apiFile.js') //即时通讯工具类 let disp = require("../../utils/broadcast"); var WebIM = require("../../utils/WebIM")["default"]; Page({ /** * 页面的初始数据 */ data: { list: [], chatList:[], hospitalName: "", hospitalId: "", hostitalprice: 0, totalPrize: 0, //总价 ids: '', //服务id doctorIds: '', //选中的医生id memberId:'', serviceId:'', doctorHxName:'', doctorName:'', kfHxName:'', kfName:'', memberHxName:'', memberName:'', username:'', hospitalList: [], count: 1500, isShowToast: false, chooseDoctServiceName: '', // 高危时的服务开通时间类型 serviceType:'', index: 0 //选中医院的下标 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var option=JSON.parse(options.username) console.log(option) var that = this; that.setData({ memberId:option.memberId, serviceId:option.serviceId, }) networkUtil.showLoading(); networkUtil._get(api.getWxDoctors,{},function(res){ var data = res.data.doctors; var hospitals=[]; for (var k in data){ data[k].forEach(item => { item.isCheck = false; }) hospitals.push({name:k,data:data[k]}) } console.log('医院列表',hospitals) that.setData({ hospitalList:hospitals, hospitalName:hospitals[0].name, list:that.getChatList(hospitals[0].data) }) },function(){ }) //监听未读消息数 disp.on("em.xmpp.unreadspot", function(message){ that.setData({ list: that.getChatList(that.data.list), }); console.log(that.data.unTotleReadCount) if(that.data.unTotleReadCount >= 1){ wx.vibrateLong({ success:function() { console.log('震动调取成功') }, }) } }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, chat(e){ var self=this; var doctorId = e.currentTarget.dataset.doctorid; console.log(doctorId) networkUtil._post(api.addBabyChatroom,{doctorId:doctorId},function(res){ 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') }, godoctor: function(e) { var doctorId = e.currentTarget.dataset.doctorid; var doctor = e.currentTarget.dataset.doctor; wx.setStorage({ key: 'doctor_'+doctorId, data: doctor, }) wx.navigateTo({ url: '../expert/expert?doctorId='+doctorId, }) }, itemClick: function(e) { var doctorId = e.currentTarget.dataset.doctorid var self = this var totalPrize = 0 var ids = '' var hospitalId = '' for (var i = 0; i < self.data.list.length; i++) { if (self.data.list[i].id == doctorId) { self.data.list[i].isCheck = !self.data.list[i].isCheck } else { self.data.list[i].isCheck = false } } for (var i = 0; i < self.data.list.length; i++) { if (self.data.list[i].isCheck) { totalPrize += self.data.list[i].price; hospitalId = self.data.list[i].hospitalId; ids = self.data.list[i].id; } } self.setData({ list:self.data.list, hospitalId: hospitalId, totalPrize: totalPrize, doctorIds: ids }) }, hospitailClick: function(e) { console.log(e) var self = this var hospitalName = this.data.hospitalList[e.detail.value].name var doctors = this.data.hospitalList[e.detail.value].data self.setData({ hospitalName: hospitalName, index: e.detail.value, list:self.getChatList(doctors) }) //self.getDoctorsFromServer() }, toPay: function(e) { if (this.data.totalPrize == 0) { wx.showToast({ title: '价格不能为0', }) return } var content = [] var self = this if (self.data.list.length > 0) { for (var i = 0; i < self.data.list.length; i++) { var checked = { "goodId":13, "hId": self.data.list[i].hospitalId, "doctorId": "" } if (self.data.list[i].isCheck) { checked.doctorId = self.data.list[i].id content.push(checked) } } } networkUtil.showLoading() this.refreshOpenid(content) }, refreshOpenid(content) { var self = this var jscode = '' wx.login({ success: function(res) { // success jscode = res.code networkUtil._get(api.refreshOpenId + "?jscode=" + jscode + "&type=1", {}, function(res) { console.log(res) self.getPayMessage(content) }, function(res) { }) }, fail: function(res) { // fail }, complete: function(res) { // complete } }) }, getPayMessage(content) { var self = this var param = JSON.stringify(content) networkUtil._post(api.goodsbuy, { param: param }, function(res) { console.log(res) wx.requestPayment({ timeStamp: res.data.payParams.timeStamp + "", nonceStr: res.data.payParams.nonceStr, package: res.data.payParams.package, signType: res.data.payParams.signType, paySign: res.data.payParams.paySign, 'success': function(res1) { console.log(res1) wx.navigateTo({ url: '../paySuccess/paySuccess?goodsOrderId=' + res.data.goodsOrderId + '&ids=' + self.data.ids + '&goodId=12', }) }, 'fail': function(res1) { console.log('fali', res1) wx.navigateTo({ url: '../payFail/payFail', }) } }) }, function(res) { }) }, 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; } })