/*首页*/
var strophe = require('../../utils/strophe.js')
var WebIM = require('../../utils/WebIM.js').default
// 网络请求工具类
var networkUtil = require('../../utils/network_util.js')
var api = require('../../utils/apiFile.js')
// 数字类数据处理
var numberUtil = require('../../utils/numberUtil.js')
var util = require('../../utils/util.js')
// 事件监听
var event = require('../../utils/event.js')
// 获取应用实例
var app = getApp()
Page({
/*---------属性变量--------*/
data: {
isDocument: '',
// 孕周
week: '-',
// 下次产检
nextCheckTime: '-',
// 距离预产期
intervalDays: '-',
avatar: '',
username: '-',
hospitalName: '-',
// 文章列表
articleList: [],
// 主机类型
HOSTTypeText: ['测试环境', '', '演示环境',''][networkUtil.Builing_Release_AppStore],
HOSTType: networkUtil.Builing_Release_AppStore,
// 医院ID
hospitalId: 0,
// 孕期报告高危等级的图片
crisisInfo: { image: '../../source/imageSource/page1_yunqi_green_Image@3x.png', color: '#43bf67' },
// 高危栏目
crisisCategorie: '',
hw: false,
member: []
},
/*---------生命周期--------*/
onLoad: function () {
// var that = this
// wx.showShareMenu(
this.networkStatusChange()
// this.networkstatus()
if (app.globalData.token == null || app.globalData.token == '') {
this.documentPage()
// wx.login({
// success: function(res){
// that.getOpenIdCode(res.code)
// }
// })
} else {
networkUtil.showLoading()
this.getUserInfo()
this.homePage()
// 监听事件
event.on('likeChanged', this, function (data) {
if (data.categoryIndex == -1) {
var artList = this.data.crisisCategorie
artList[data.articleIdIndex].likeCount++
this.setData({
crisisCategorie: artList
});
} else {
var artList = this.data.articleList
artList[data.categoryIndex].article[data.articleIdIndex].likeCount++
this.setData({
articleList: artList
});
}
})
}
},
onShow: function () {
// 生命周期函数--监听页面显示
if (app.globalData.token.length > 0 && this.data.isDocument == true) {
this.getUserInfo()
this.homePage()
}
if (wx.getStorageSync("access_token") != null && !wx.getStorageSync("isHxOpend")){
this.connectWebIM()
}
},
onUnload: function () {
// 移除监听
event.remove('likeChanged', this);
},
/*---------交互--------*/
// 下拉刷新回调接口
onPullDownRefresh: function () {
if (app.globalData.token == null || app.globalData.token == '') {
wx.stopPullDownRefresh()
return
}
// 网络请求,重新请求一遍数据
this.getUserInfo()
this.homePage()
},
// 孕期报告页面
reportDuringPregnancyTap: function () {
wx.navigateTo({
url: '../reportDuringPregnancy/reportDuringPregnancy?leftCheckDay=' + this.data.leftCheckDay
})
},
// 点击头像
tapAvatar: function () {
// var that = this
// //console.log(event)
// var my = wx.getStorageSync('hxName')
// var nameList = {
// myName: my,
// your: "mommybabydoct4676"
// }
// wx.navigateTo({
// url: '../chatroom/chatroom?username=' + JSON.stringify(nameList)
// })
var that = this
wx.showActionSheet({
itemList: ['退出当前用户'],
success: function (res) {
if (res.tapIndex == 0) {
wx.setStorageSync('userToken', '')
getApp().globalData.token = ''
that.documentPage()
WebIM.conn.close();
}
},
fail: function (res) {
console.log(res.errMsg)
}
})
},
// 点击产检须知事件处理
aboutThePrenatalTap: function () {
wx.navigateTo({
url: '../aboutThePrenatal/aboutThePrenatal?hospitalId=' + this.data.hospitalId + '&week=' + this.data.currentWeek
})
},
/*---------自定义函数--------*/
homePage() {
this.getAccessToken()
var that = this
that.setData({
isDocument: false
})
wx.setStorage({
key: "myUsername",
data: wx.getStorageSync('hxName')
})
},
getRoster(){
var that = this
setTimeout(function () {
WebIM.conn.getRoster({
success: function (roster) {
//获取好友列表,并进行好友列表渲染,roster格式为:
/** [
{
jid:'asemoemo#chatdemoui_test1@easemob.com',
name:'test1',
subscription: 'both'
}
]
*/
var member = []
for (var i = 0; i < roster.length; i++) {
// if (roster[i].subscription == "both") {
// member.push(roster[i])
// }
member.push(roster[i])
}
console.log("getRoster member home:", member)
that.setData({
member: member
})
wx.setStorage({
key: 'member',
data: that.data.member
})
// console.log("getRoster member home success:", roster)
},
error: function (err) {
console.log("getRoster erro:", err)
}
});
}, 3000)
},
moveFriend: function (message) {
// var that = this
// var rosters = {
// success: function (roster) {
// var member = []
// for (var i = 0; i < roster.length; i++) {
// if (roster[i].subscription == "both") {
// member.push(roster[i])
// }
// }
// that.setData({
// member: member
// })
// }
// }
// if (message.type == 'unsubscribe' || message.type == 'unsubscribed') {
// WebIM.conn.removeRoster({
// to: message.from,
// success: function () {
// WebIM.conn.unsubscribed({
// to: message.from
// });
// WebIM.conn.getRoster(rosters)
// }
// })
// }
},
handleFriendMsg: function (message) {
// var that = this
// console.log(message)
// wx.showModal({
// title: '添加好友请求',
// content: message.from + '请求加为好友',
// success: function (res) {
// if (res.confirm == true) {
// console.log('vvvvvvvvvvvvv')
// WebIM.conn.subscribed({
// to: message.from,
// message: "[resp:true]"
// })
// WebIM.conn.subscribe({
// to: message.from,
// message: "[resp:true]"
// })
// } else {
// WebIM.conn.unsubscribed({
// to: message.from,
// message: "rejectAddFriend"
// })
// //console.log('delete_friend')
// }
// },
// fail: function (error) {
// //console.log(error)
// }
// })
},
documentPage() {
var that = this
that.setData({
isDocument: true
})
},
getOpenIdCode(code) {
var self = this
// 获取openid
networkUtil._get(api.getOpenId, { code: code }, function (res) {
app.globalData.openInfo.openId = res.openId
}, function (res) {
})
},
getAccessToken() {
var that = this
var token='';
var options = {
apiUrl: WebIM.config.apiURL,
user: wx.getStorageSync('hxName'),
pwd: wx.getStorageSync('hxPassWord'),
// accessToken: token,
// grant_type: "password",
success: function (res) {
console.log("conn success:", res);
wx.setStorageSync("access_token", res.data.access_token)
token = res.data.access_token
that.getRoster()
},
fail: function (e) {
console.log("fail:" + e);
},
autoReconnectNumMax: 30,
autoReconnectInterval: 1,
appKey: WebIM.config.appkey
}
WebIM.conn.open(options)
},
// 监听网络状态
networkStatusChange() {
var that = this
wx.onNetworkStatusChange(function (res) {
console.log('网络状态改变', res)
if (res.isConnected == true) {
that.connectWebIM()
}
})
},
connectWebIM() {
console.log('开始连接')
WebIM.conn.close()
var that = this
var options = {
apiUrl: WebIM.config.apiURL,
user: wx.getStorageSync('hxName'),
pwd: wx.getStorageSync('hxPassWord'),
accessToken: wx.getStorageSync('access_token'),
// grant_type: "password",
success: function (res) {
console.log("conn success:", res);
that.getRoster()
},
fail: function (e) {
console.log("fail:" + e);
},
autoReconnectNumMax: 30,
autoReconnectInterval: 1,
appKey: WebIM.config.appkey
}
WebIM.conn.open(options)
},
// 获取用户信息
getUserInfo() {
var self = this
var param = { 'token': app.globalData.token }
networkUtil._get(api.getUserInfo, param, function (res) {
console.log("getUserInfo:"+res)
if (res.data.id != 1930) {
self.setData({
hw: true
})
} else {
self.setData({
hw: false
})
}
var days = numberUtil.calculateTimeInterval(res.data.lastMenses * 1000, new Date().getTime())
self.getArticleInfo(days)
self.setUserInfo(res.data)
}, function (res) {
networkUtil.showErrorToast(res.errormsg)
if (res.errorcode == 4002 || res.errorcode == 4003) {
wx.setStorageSync('userToken', '')
getApp().globalData.token = ''
self.documentPage()
}
})
},
getArticleInfo(days) {
var self = this
// 文章列表
networkUtil._get(api.homeArtList, { page: 0, limit: 100, days: days }, function (res) {
console.log(res)
wx.stopPullDownRefresh()
self.data.hospitalId = res.data.hospitalId
self.setData({
articleList: res.data.list,
crisisCategorie: res.data.highRiskArticles,
hospitalId: self.data.hospitalId
})
}, function (res) {
wx.stopPullDownRefresh()
})
},
// 设置UI数据
setUserInfo(data) {
var self = this
var today = new Date()
var interval = numberUtil.calculateTimeInterval(today.getTime(), data.dueDate * 1000)
var date = new Date(data.nextCheckTime)
self.data.currentWeek = numberUtil.calculateGestationalWeeks(data.lastMenses * 1000)
var checkTimeText = ''
if (data.nextCheckTime == 0 || data.nextCheckTime == null) {
checkTimeText = '-'
self.data.leftCheckDay = ''
} else {
checkTimeText = data.nextCheckTime
// 剩余几天产检
self.data.leftCheckDay = numberUtil.calculateTimeInterval(today.getTime(), date.getTime())
}
getApp().globalData.userInfo = data
// 孕周余数天
var day = numberUtil.calculateGestationalWeekDay(data.lastMenses * 1000) > 0 ? numberUtil.calculateGestationalWeekDay(data.lastMenses * 1000) + '天' : ''
var intervalText = interval + '天'
var week = '孕' + self.data.currentWeek + '周' + '+' + day
if(day == 0){
week = '孕' + self.data.currentWeek + '周'
}
if (interval < 0) {
intervalText = '已逾期'
}
if (data.status == 2) {
intervalText = '-'
networkUtil.showErrorToast('您已经分娩或终止妊娠,当前孕程服务已终止')
week = '-'
}
self.setData({
week: week,
intervalDays: intervalText,
username: data.username,
avatar: data.avatar.medium,
hospitalName: data.hospitalName,
// 关联危急值
crisisInfo: numberUtil.home_getRiskInfo(data.crisis),
nextCheckTime: checkTimeText
})
}
})