/*首页*/ 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 }) } })