// pages/message/message.js const app = getApp() Page({ data: { messages: [], loading: false }, onLoad() { this.loadMessages() }, onShow() { this.loadMessages() }, onPullDownRefresh() { this.loadMessages() }, // 加载消息列表 loadMessages() { // 检查用户是否已登录 const userInfo = app.globalData.userInfo if (!userInfo || !userInfo.userId) { console.error('用户未登录或userId不存在') wx.showToast({ title: '请先登录', icon: 'error' }) return } this.setData({ loading: true }) const query = ` query GetMessagesByUserId($userId: Long!) { getMessagesByUserId(userId: $userId) { id userId content wxMsgSuccess wxMsgErrCount state createTime updateTime } } ` const variables = { userId: userInfo.userId } app.graphqlRequest(query, variables) .then(data => { console.log('消息数据:', data) this.setData({ messages: data.getMessagesByUserId || [], loading: false }) wx.stopPullDownRefresh() }) .catch(error => { console.error('加载消息失败:', error) wx.showToast({ title: '加载失败', icon: 'error' }) this.setData({ loading: false }) wx.stopPullDownRefresh() }) }, // 格式化消息时间 formatMessageTime(timeStr) { if (!timeStr) return '' try { const date = new Date(timeStr) const now = new Date() const diff = now.getTime() - date.getTime() // 如果是今天 if (diff < 24 * 60 * 60 * 1000) { const hours = date.getHours().toString().padStart(2, '0') const minutes = date.getMinutes().toString().padStart(2, '0') return `${hours}:${minutes}` } // 如果是昨天 if (diff < 48 * 60 * 60 * 1000) { const hours = date.getHours().toString().padStart(2, '0') const minutes = date.getMinutes().toString().padStart(2, '0') return `昨天 ${hours}:${minutes}` } // 其他日期 const month = (date.getMonth() + 1).toString().padStart(2, '0') const day = date.getDate().toString().padStart(2, '0') const hours = date.getHours().toString().padStart(2, '0') const minutes = date.getMinutes().toString().padStart(2, '0') return `${month}-${day} ${hours}:${minutes}` } catch (error) { console.error('时间格式化失败:', error) return timeStr } } })