/*首页*/ // 网络请求工具类 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() //聊天控件 let WebIM = wx.WebIM = require("../../utils/WebIM.js").default; let disp = require("../../utils/broadcast"); var timeCount = 60; var timer; var phone; var name; var days; // 用户信息的缓存 var babyCache = [''] // 文章的缓存 var artCache = [''] var hospitalId; Page({ /*---------属性变量--------*/ data: { MsgCount:null, isLogin: '', item_big_height: 0, item_small: 0, // 首页类型 1登录 2用户首页 3欢迎页 pageType: 0, unTotleReadCount:0, time: '0s', list: [], userInfo: '', inputFocus: { nameInput: false, phoneInput: false, codeInput: false }, babyIndex: 0, babys: [], tourist: true, isShowLeft: false, isShowRight: false, vipList: [{ title: '高危指导', icon: 'gaoweizhidao', content: '医生依据新生儿娩出情况、新生儿患病情况及新生儿先天性疾病筛查结果辨识、诊断高危儿。针对医生的高危诊断,结合高危儿的月龄、生理因素、高危状态、检查结果、需监测指标等提供精准医疗服务。向早产儿、低出生体重儿、发育迟缓等特殊婴幼儿家长提供育儿帮助。' }, { title: '精准医疗服务', icon: 'jingzunyiliao', content: '依据新生儿特有的生理情况,结合其每天都会快速生长发育的特点,对可能遇到的生理病理问题,提供精确到天的健康教育。新生儿期过后,结合婴幼儿体格生长发育特点,针对不同月龄,进行喂养方式、营养补充、辅食添加、动作发育、习惯培养等宣教指导。' }, { title: '检查预约提醒', icon: 'chakanyuyuetixing', content: '每次检查后,医生会结合当前检查实际情况为儿童预约下次检查时间,届时提前通知家长带孩子进行相关检查。' }, { title: '随访提醒', icon: 'suifangtixing', content: '依据新生儿特有的生理情况,结合其每天都会快速生长发育的特点,对可能遇到的生理病理问题,提供精确到天的健康教育。新生儿期过后,结合婴幼儿体格生长发育特点,针对不同月龄,进行喂养方式、营养补充、辅食添加、动作发育、习惯培养等宣教指导。' }, { title: '查看检查记录', icon: 'chakanjilv', content: '医生依据新生儿娩出情况、新生儿患病情况及新生儿先天性疾病筛查结果辨识、诊断高危儿。针对医生的高危诊断,结合高危儿的月龄、生理因素、高危状态、检查结果、需监测指标等提供精准医疗服务。向早产儿、低出生体重儿、发育迟缓等特殊婴幼儿家长提供育儿帮助。' }, { title: '高危指导', icon: 'gaoweizhidao', content: '随时随地可查看因幼儿问诊检查、儿科检查、一般检查、辅助检查的各项指标,以及相关指标存在的异常情况。' } ], // 是否开通高危精准指导 riskGuide: false, riskBase: false, //是否开通疾病指导 riskDise:false, hospitalId1:null, userInfoDate:{}, erid:null }, /*---------生命周期--------*/ onLoad: function(options) { // console.log(app.globalData,'options1121'); this.getUserInfo(app.globalData.token) hospitalId = options.hospitalId; this.calculatePageSize() this.setData({ hospitalId1:options.hospitalId }) // 网络监听 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 { 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 }); } }) } }, setNotification:function(){ const _that = this networkUtil._get(api.getMsgList,{ page: 1, limit: 20, babyId:_that.data.erid, },function (res) { if (res.data.data.length > 0 ) { wx.navigateTo({ url: '/packageA/pages/messageNotification/messageNotification', }) } else { wx.showModal({ title: '提示', content: '当前没有医院活动通知', showCancel: false, }) } }, function (res) { networkUtil.showErrorToast(res.errormsg) }) }, onShow: function() { // 生命周期函数--监听页面显示 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() this.homePage() } if (app.globalData.token.length > 0 && this.data.pageType == 2) { this.getUserInfo() } if (!app.globalData.token && this.data.pageType != 1) { this.welcomePage() } this.getUnreaderMsgNum() }, onUnload: function() { // 移除监听 event.remove('likeChanged', this); }, getBabyMsgCountByIdNum:function(id){ const _that = this networkUtil._get(api.getBabyMsgCountById,{ babyId:id },function (res) { // console.log(res.data.object,'res1111'); _that.setData({ MsgCount:res.data.object }) wx.hideToast(); }, function (res) { networkUtil.showErrorToast(res.errormsg) }) }, /*---------交互--------*/ // 下拉刷新回调接口 onPullDownRefresh: function() { if (app.globalData.token == null || app.globalData.token == '') { wx.stopPullDownRefresh() return } // 网络请求,重新请求一遍数据 this.homePage() }, // 点击头像 tapAvatar: function() { // var that = this // wx.showActionSheet({ // itemList: ['退出当前用户'], // success: function (res) { // if (res.tapIndex == 0) { // wx.setStorageSync('userToken', '') // wx.setStorageSync('userId', '') // getApp().globalData.token = '' // getApp().globalData.userId = '' // that.toLogin() // } // }, // fail: function (res) { // console.log(res.errMsg) // } // }) wx.navigateTo({ url: '../Setting/Setting', }) }, toHospital() { if (this.data.userData.hospitalId && this.data.userData.hospitalId > 0) { wx.navigateTo({ url: '../hospital_detail/hospital_detail?id=' + this.data.userData.hospitalId, }) } else { wx.navigateTo({ url: '../hospitalList/hospitalList', }) } }, toPreDoc () { if (hospitalId!==null&&hospitalId!==undefined&&hospitalId!==""&&hospitalId===2100001605) { wx.navigateTo({ url: '/packageA/pages/preDocumented/preDocumented?hospitalId=' + hospitalId }) } else { wx.navigateTo({ url: '/packageA/pages/preDocumented/preDocumented' }) } }, getNameFocus: function() { var self = this var inputFocus = { nameInput: true, phoneInput: false, codeInput: false } self.setData({ inputFocus: inputFocus }) }, getPhoneFocus: function() { var self = this var inputFocus = { nameInput: false, phoneInput: true, codeInput: false } self.setData({ inputFocus: inputFocus }) }, getCodeFocus: function() { var self = this var inputFocus = { nameInput: false, phoneInput: false, codeInput: true } self.setData({ inputFocus: inputFocus }) }, loseNameFocus: function() { var self = this var inputFocus = { nameInput: false } self.setData({ inputFocus: inputFocus }) }, losePhoneFocus: function() { var self = this var inputFocus = { phoneInput: false, } self.setData({ inputFocus: inputFocus }) }, loseCodeFocus: function() { var self = this var inputFocus = { codeInput: false } self.setData({ inputFocus: inputFocus }) }, // 跳转上一条 toBefore() { var index = this.data.babyIndex index-- // console.log('index', index) var left = true var right = true if (index == 0) { left = false } this.setData({ isShowLeft: left, isShowRight: right, babyIndex: index }) this.changeBaby(index) }, // 跳转下一条 toAfter() { var index = this.data.babyIndex index++ // console.log('index', index) var left = true var right = true if (index == app.globalData.userId.length - 1) { right = false } this.setData({ isShowLeft: left, isShowRight: right, babyIndex: index }) this.changeBaby(index) }, // 改变baby changeBaby(index) { this.setData({ babyIndex: index }) getApp().globalData.currentId = getApp().globalData.userId[index] if (babyCache.length > index) { this.setUserInfo(babyCache[index]) this.setArtInfo(artCache[index]) this.getUserArchives(); } else { this.getUserInfo() } }, /*---------自定义函数--------*/ homePage() { var that = this this.requestHomeInfo() var that = this var right = true this.requestVipData() if (app.globalData.userId.length == 1) { right = false } that.setData({ pageType: 2, babys: app.globalData.userId, isShowRight: right }) }, toLogin() { var that = this babyCache = [''] artCache = [''] that.setData({ pageType: 1 }) }, backHome () { this.setData({ pageType: 3 }) }, welcomePage() { var that = this that.setData({ pageType: 3 }) }, toVipPage() { wx.navigateTo({ url: '../vipService/vipService', }) }, toRiskGuidePage() { if (this.data.riskGuide) { wx.navigateTo({ url: "../Guide/guide?category=精准指导", // url: "../articleLists/articleLists?category=精准指导", }) } else { wx.showModal({ title: '温馨提示', content: '您还没有开通该项服务哦', confirmText: '立即开通', success: function(res) { if (res.confirm) { wx.navigateTo({ url: '../vipService/vipService', }) } } }) } }, toInspection() { if (this.data.riskBase) { wx.navigateTo({ // url: '../Guide/guide', url: "../inspect/inspectList?types=1", }) } else { wx.showModal({ title: '温馨提示', content: '尚未开通儿保助理服务,无法享受会员服务', confirmText: '立即开通', success: function (res) { if (res.confirm) { wx.navigateTo({ url: '../vipService/vipService', }) } } }) } }, toDiseaseGuide(){ if (this.data.riskDise) { wx.navigateTo({ // url: '../Guide/guide', url: "../DiseaseGuide/DiseaseGuide", }) } else { wx.showModal({ title: '温馨提示', content: '尚未开通儿保助理服务,无法享受会员服务', confirmText: '立即开通', success: function (res) { // if (res.confirm) { // wx.navigateTo({ // url: '../vipService/vipService', // }) // } } }) } }, requestVipData() { var self = this var param = {} networkUtil._get(api.goods, param, function(res) { // console.log(res) res.data.data.map(function(item) { if (item.id == 7) { if (item.status == 1) { self.setData({ // riskGuide: true, }) } } }) }, function(res) { }) }, calculatePageSize() { var windowWidth = wx.getSystemInfoSync().windowWidth // var smallWidth = ((windowWidth - 10) / 2 - 10) this.setData({ // item_big_height: 'height:' + windowWidth / 4 + 'px', item_small: 'width:' + windowWidth / 4 * 0.45 + 'px;height:' + windowWidth / 4 * 0.45 + 'px', }) }, getAccessToken() { // console.log('getAccessToken') var that = this var token = ''; var options = { apiUrl: WebIM.config.apiURL, user: wx.getStorageSync('hxName'), pwd: wx.getStorageSync('hxPassWord'), success: function (res) { // console.log("conn success:", res); wx.setStorageSync("access_token", res.data.access_token) token = res.data.access_token }, 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) { 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); }, fail: function (e) { console.log("fail:" + e); }, autoReconnectNumMax: 30, autoReconnectInterval: 1, appKey: WebIM.config.appkey } WebIM.conn.open(options) }, requestHomeInfo() { // 需要先请求用户信息 this.getUserInfo() }, // 获取用户信息 getUserInfo(userId) { networkUtil.showLoading() var self = this var param = { 'token': app.globalData.token } if (getApp().globalData.tourist == true) { param.type = 2 } networkUtil._get(api.userInfo + app.globalData.currentId, param, function(res) { // console.log('获取用户信息1212', res) if (res.data.data.bzstatus==1){ self.data.riskBase=true; }else{ self.data.riskBase=false; } if (res.data.data.status == 1){ self.data.riskGuide=true; }else{ self.data.riskGuide = false; } self.getArticleInfo(res.data.data.days) self.setUserInfo(res.data.data) babyCache[self.data.babyIndex] = res.data.data self.getUserArchives(); }, function(res) { if (res.errorcode == 4002) { wx.showModal({ title: '提示', content: res.errormsg, showCancel: false, success: function(res) { wx.setStorageSync('userToken', '') wx.setStorageSync('userId', '') getApp().globalData.token = '' getApp().globalData.userId = '' self.toLogin() } }) } else { networkUtil.showErrorToast(res.errormsg) } }) }, //获取档案信息 getUserArchives(){ networkUtil.showLoading() var self = this var param = { 'pid': app.globalData.userInfo.pid, 'hospitalId':app.globalData.userInfo.hospitalId } networkUtil._post(api.getBabyBuildPidInfo,param,function(res){ wx.setStorageSync('erid',res.data.data.id) self.getBabyMsgCountByIdNum(res.data.data.id) // self.setNotification(res.data.data.id) self.setData({ erid:res.data.data.id }) app.globalData.encoded = res.data.data.encoded; app.globalData.openDisease = res.data.data.openDisease; if(res.data.data.openDisease == '2'){ self.setData({ riskDise:true }) }else{ self.setData({ riskDise:false }) } self.setData({ "userData.encoded" : res.data.data.encoded, "userData.openDisease" : res.data.data.openDisease }) },function(res){ networkUtil.showErrorToast(res.errormsg) },'application/json') }, getArticleInfo(days) { var self = this // 文章列表 networkUtil._get(api.homeArtList, { page: 0, limit: 100, days: days }, function(res) { // console.log('获取文章信息', res.data.list) artCache[self.data.babyIndex] = res.data.list self.setArtInfo(res.data.list) }, function(res) { wx.stopPullDownRefresh() }) }, // 设置UI 用户信息 setUserInfo(data) { var self = this app.globalData.days = data.days app.globalData.userInfo = data self.setData({ userData: data, userInfoDate:data, tourist: getApp().globalData.tourist }) }, // 设置UI 文章信息 setArtInfo(list) { var self = this app.globalData.artList = list self.setData({ list: list }) }, // 文章点赞 articleLike(e) { // console.log(e) var self = this // 已经点赞 if (e.currentTarget.dataset.islike == 1) { networkUtil.showErrorToast('您已经点过赞啦') return; } networkUtil._post(api.articleLike, { id: e.currentTarget.dataset.artid }, function(res) { var artList = self.data.list artList[e.currentTarget.dataset.categaryindex].article[e.currentTarget.dataset.artindex].likeCount++ artList[e.currentTarget.dataset.categaryindex].article[e.currentTarget.dataset.artindex].isLike = 1 self.setData({ list: artList }); }, function(res) { console.log(res) }) }, // 标签页面 clickLabel(e) { // console.log(e) wx.navigateTo({ url: '../articleLists/articleLists?category=' + e.currentTarget.dataset.categary, }) }, /*---------------欢迎介绍页面---------------*/ toRegister() { wx.navigateTo({ url: '../Register/Register', }) }, toCheckInput() { wx.navigateTo({ url: '../checkupAskInput/checkupAskInput', }) }, toQuickArchives(){ wx.navigateTo({ url: '../quickArchives/quickArchives', }) }, toIllnessArchives(){ wx.navigateTo({ url: '../illnessArchives/illnessArchives', }) }, toQuickMeasurement(){ wx.navigateTo({ url: '../quickMeasurement/quickMeasurement', }) }, // 获取验证码 getVerifyCode: function(e) { // console.log("name:" + name) // console.log("phone:" + phone) // name = '小向阳' // phone = '18202810912' if (timeCount < 60) { return } if (numberUtil.IsTelPhoneNumber(phone) && name.length > 0) { var that = this networkUtil._post(api.bindDoc, { username: name, phone: phone }, function(res) { console.log("getVerifyCode:", res) }, function(res) { timeCount = 60 clearTimeout(timer); that.setData({ time: '0s' }) // if (res.errorcode == 4003) { // wx.showModal({ // title: '提示', // content: '暂未查询到您宝宝的建档信息,是否立即使用游客身份注册?', // success: function(res) { // if (res.confirm) { // wx.navigateTo({ // url: '../Register/Register?name=' + name + '&phone=' + phone, // }) // } else if (res.cancel) { // console.log('用户点击取消') // } // } // }) // } else { // networkUtil.showErrorToast(res.errormsg) // } networkUtil.showErrorToast(res.errormsg) }) if (timeCount == 60) { this.keepTime() } } else { networkUtil.showErrorToast('请输入正确手机号码和姓名') return } }, // 计时器 keepTime: function() { var that = this timeCount-- that.setData({ time: timeCount + 's' }) if (timeCount == 0) { timeCount = 60 clearTimeout(timer); return } timer = setTimeout(function() { that.keepTime() }, 1000) }, blurInput: function(e) { phone = e.detail.value // console.log(e) }, blurNameInput: function(e) { name = e.detail.value // console.log(e) }, // 提交表单 formSubmit: function(e) { var self = this if (e.detail.value.code == "") { wx.showModal({ title: '提示', content: '请输入验证码', showCancel: false, success: function(res) {} }) return } networkUtil.showLoading() var param = { code: e.detail.value.code, phone: phone } if (getApp().globalData.openInfo.mpid) { param.gzopenid = getApp().globalData.openInfo.mpid // console.log('绑定mpid', param) } if (getApp().globalData.openInfo.childCode) { param.jscode = getApp().globalData.openInfo.childCode // console.log('绑定code', param) } networkUtil._get(api.verifyCode, param, function(res) { // console.log(res) self.loginSuccess(res.data) }, function(res) { networkUtil.showErrorToast(res.errormsg) }) }, loginSuccess(data) { // 为3的时候就是没填写资料 wx.setStorageSync('hxName', data.hxName) wx.setStorageSync('hxPassWord', data.hxPassWord) this.getAccessToken(); if (data.status == 4) { wx.navigateTo({ url: '../CompleteTouristInfo/CompleteTouristInfo?userId=' + data.id + '&token=' + data.token }) return } // 游客用户 if (data.patientIds && data.patientIds.length == 0) { data.patientIds = [data.id] getApp().globalData.tourist = true wx.setStorageSync('tourist', true) } else { getApp().globalData.tourist = false wx.setStorageSync('tourist', false) } wx.setStorageSync('userToken', data.token) wx.setStorageSync('userId', data.patientIds) getApp().globalData.token = data.token getApp().globalData.userId = data.patientIds getApp().globalData.currentId = data.patientIds[0] this.homePage() wx.navigateBackMiniProgram({ extraData: { res: '成功' }, success(res) { // 返回成功 } }) }, goQRCode(){ wx.navigateTo({ url: '../../pages/QRCodePage/QRCodePage?encoded=' + this.data.userData.encoded, }) }, //疾病护理咨询 expertConsultation(){ if(this.data.userData.disStatus == 0){ wx.navigateTo({ url: '../doctorLists/doctorLists', }) }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: '../consulting/consulting?username='+ JSON.stringify(nameList) }) } }, // 身长体重曲线 goGraph() { networkUtil.showLoading() var param = { 'pid': app.globalData.userInfo.pid, 'hospitalId':app.globalData.userInfo.hospitalId } networkUtil._post(api.getBabyBuildPidInfo,param,function(res){ // console.log(res,'res1212112'); if (res.data.data) { wx.navigateTo({url: '/packageA/pages/graph/graph?id=' + res.data.data.id }) } },function(res){ networkUtil.showErrorToast(res.errormsg) },'application/json') }, goEditAddress() { networkUtil.showLoading() var param = { 'pid': app.globalData.userInfo.pid, 'hospitalId':app.globalData.userInfo.hospitalId } networkUtil._post(api.getBabyBuildPidInfo,param,function(res){ if (res.data.data) { wx.navigateTo({url: '/packageA/pages/editAddress/editAddress?id=' + res.data.data.id }) } },function(res){ networkUtil.showErrorToast(res.errormsg) },'application/json') }, goArticle() { wx.navigateTo({url: '/packageA/pages/articleList/articleList'}) }, //跳转服务名目通知 goServiceNotice(){ wx.navigateTo({url: '/packageA/pages/serviceNotice/serviceNotice'}) }, //专家咨询 consultation(){ if(this.data.riskGuide){ var my = wx.getStorageSync('hxName') var nameList = { myName: my, your: this.data.userData.disData.doctorHxName, memberId:this.data.userData.disData.memberId, doctorId:this.data.userData.disData.doctorId } 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(){ } }) } })