// 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
|
}
|
}
|
})
|