// 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;
}
})