Files
wxapp_escort/app.js
2026-06-04 10:34:25 +08:00

123 lines
3.4 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([])
})
})
},
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
},
globalData: {
appId: '',
user: null,
chatSocket: null,
services: [],
agreement: null,
hospitalInfo: [],
hospitalRanking: [],
departmentRankings: [],
}
})