157 lines
4.5 KiB
JavaScript
157 lines
4.5 KiB
JavaScript
const AIChatSocket = require('./utils/chatmsg.js')
|
|
const API = require('./utils/api.js')
|
|
|
|
App({
|
|
onLaunch() {
|
|
let appId = wx.getStorageSync('attendant-appid')
|
|
if (!appId) {
|
|
appId = 'app_' + Date.now().toString(36) + Math.random().toString(36).substr(2, 9)
|
|
wx.setStorageSync('attendant-appid', appId)
|
|
}
|
|
this.globalData.appId = appId
|
|
|
|
this.globalData.servicesReady = new Promise((resolve) => {
|
|
API.resource.getServices().then((data) => {
|
|
this.globalData.services = data.data.services
|
|
resolve(data.data.services)
|
|
}).catch((err) => {
|
|
console.error('获取服务列表失败', err)
|
|
resolve([])
|
|
})
|
|
})
|
|
|
|
this.globalData.agreementReady = new Promise((resolve) => {
|
|
API.resource.getAgreement().then((data) => {
|
|
this.globalData.agreement = data.data.agreement
|
|
resolve(data.data.agreement)
|
|
}).catch((err) => {
|
|
console.error('获取服务协议失败', err)
|
|
resolve(null)
|
|
})
|
|
})
|
|
|
|
this.globalData.hospitalInfoReady = new Promise((resolve) => {
|
|
API.resource.getHospitalInfo().then((data) => {
|
|
this.globalData.hospitalInfo = data.data.hospitalInfo
|
|
resolve(data.data.hospitalInfo)
|
|
}).catch((err) => {
|
|
console.error('获取医院信息失败', err)
|
|
resolve([])
|
|
})
|
|
})
|
|
|
|
this.globalData.hospitalRankingReady = new Promise((resolve) => {
|
|
API.resource.getHospitalRanking().then((data) => {
|
|
this.globalData.hospitalRanking = data.data.hospitalRanking
|
|
resolve(data.data.hospitalRanking)
|
|
}).catch((err) => {
|
|
console.error('获取医院排名失败', err)
|
|
resolve([])
|
|
})
|
|
})
|
|
|
|
this.globalData.departmentRankingsReady = new Promise((resolve) => {
|
|
API.resource.getDepartmentRankings().then((data) => {
|
|
this.globalData.departmentRankings = data.data.departmentRankings
|
|
resolve(data.data.departmentRankings)
|
|
}).catch((err) => {
|
|
console.error('获取科室排名失败', err)
|
|
resolve([])
|
|
})
|
|
})
|
|
|
|
this.checkUpdate();
|
|
},
|
|
|
|
onShow(options) {
|
|
const request = require('./utils/request.js')
|
|
wx.login({
|
|
success: res => {
|
|
if (res.code) {
|
|
request.post('https://api.huashengtec.com/user/wxsignin', {
|
|
code: res.code
|
|
})
|
|
.then((data) => {
|
|
if (data.code == 0) {
|
|
this.globalData.user = data.data.user
|
|
} else {
|
|
console.log('error:', data)
|
|
}
|
|
})
|
|
.catch((err) => {
|
|
console.log('请求失败', err)
|
|
})
|
|
} else {
|
|
console.log('登录失败!' + res.errMsg)
|
|
}
|
|
}
|
|
})
|
|
|
|
this.initChatSocket()
|
|
},
|
|
|
|
initChatSocket() {
|
|
if (this.globalData.chatSocket) return
|
|
|
|
const socket = new AIChatSocket()
|
|
|
|
socket.onOpen(() => {
|
|
console.log('[App] Chat WebSocket connected')
|
|
})
|
|
|
|
socket.onClose((res) => {
|
|
console.log('[App] Chat WebSocket closed', res)
|
|
})
|
|
|
|
socket.onError((err) => {
|
|
console.error('[App] Chat WebSocket error', err)
|
|
})
|
|
|
|
socket.connect().catch((err) => {
|
|
console.error('[App] Chat WebSocket connect failed', err)
|
|
})
|
|
|
|
this.globalData.chatSocket = socket
|
|
},
|
|
|
|
checkUpdate() {
|
|
// 获取小程序更新管理器实例
|
|
const updateManager = wx.getUpdateManager();
|
|
|
|
// 监听检查更新事件,当小程序有新版本时会触发此回调
|
|
updateManager.onCheckForUpdate(function (res) {
|
|
// 请求完新版本信息的回调
|
|
console.log(res.hasUpdate); // 打印是否有新版本
|
|
});
|
|
|
|
// 监听更新准备就绪事件,当新版本下载完成时会触发此回调
|
|
updateManager.onUpdateReady(function () {
|
|
wx.showModal({
|
|
title: '更新提示',
|
|
content: '新版本已经准备好,可以重启应用小程序了!',
|
|
success(res) {
|
|
if (res.confirm) {
|
|
// 用户确认更新,调用 applyUpdate 应用新版本并重启小程序
|
|
updateManager.applyUpdate();
|
|
}
|
|
}
|
|
});
|
|
});
|
|
|
|
// 监听更新失败事件,当新版本下载失败时会触发此回调
|
|
updateManager.onUpdateFailed(function () {
|
|
// 新版本下载失败,可以在这里处理失败逻辑,例如提示用户稍后再试
|
|
});
|
|
},
|
|
|
|
globalData: {
|
|
appId: '',
|
|
user: null,
|
|
chatSocket: null,
|
|
services: [],
|
|
agreement: null,
|
|
hospitalInfo: [],
|
|
hospitalRanking: [],
|
|
departmentRankings: [],
|
|
}
|
|
}) |