From fefb649f462ae6b19dd8f0f6bc6096619db9a82e Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期六, 25 十月 2025 18:38:54 +0800
Subject: [PATCH] feat:消息体推送
---
app/pages/message/index.vue | 85 ++++++++++++++++++++++++++++++++----------
1 files changed, 65 insertions(+), 20 deletions(-)
diff --git a/app/pages/message/index.vue b/app/pages/message/index.vue
index 113b7f9..e3dd348 100644
--- a/app/pages/message/index.vue
+++ b/app/pages/message/index.vue
@@ -15,11 +15,11 @@
>
<view class="message-main">
<view class="message-title">
- <text class="title-text">{{ getMessageTypeText(message.type) }}</text>
- <view class="unread-dot" v-if="!message.read"></view>
+ <text class="title-text">{{ getMessageTypeText(message.messageType) }}</text>
+ <view class="unread-dot" v-if="message.isRead === '0'"></view>
</view>
- <view class="message-content">{{ message.content }}</view>
- <view class="message-time">{{ message.time }}</view>
+ <view class="message-content">{{ message.messageContent }}</view>
+ <view class="message-time">{{ message.createTime }}</view>
</view>
</view>
@@ -33,47 +33,92 @@
</template>
<script>
+ import { getMyMessages, markAsRead } from '@/api/message'
+
export default {
data() {
return {
// 娑堟伅鍒楄〃
- messages: []
+ messages: [],
+ loading: false
}
},
computed: {
// 鎸夋湭璇�/宸茶鎺掑簭锛屾湭璇荤殑鍦ㄥ墠闈�
sortedMessages() {
return [...this.messages].sort((a, b) => {
- if (a.read === b.read) {
+ if (a.isRead === b.isRead) {
// 鐩稿悓鐘舵�佹寜鏃堕棿鍊掑簭
- return new Date(b.time) - new Date(a.time);
+ return new Date(b.createTime) - new Date(a.createTime);
}
// 鏈鐨勬帓鍦ㄥ墠闈�
- return a.read ? 1 : -1;
+ return a.isRead === '0' ? -1 : 1;
});
}
},
+ onLoad() {
+ this.loadMessages()
+ },
+ onShow() {
+ // 姣忔鏄剧ず椤甸潰鏃跺埛鏂版秷鎭�
+ this.loadMessages()
+ },
+ onPullDownRefresh() {
+ this.loadMessages().then(() => {
+ uni.stopPullDownRefresh()
+ })
+ },
methods: {
+ // 鍔犺浇娑堟伅鍒楄〃
+ async loadMessages() {
+ try {
+ this.loading = true
+ const response = await getMyMessages()
+ if (response.code === 200) {
+ this.messages = response.data || []
+ } else {
+ this.$modal.showToast(response.msg || '鍔犺浇娑堟伅澶辫触')
+ }
+ } catch (error) {
+ console.error('鍔犺浇娑堟伅澶辫触锛�', error)
+ this.$modal.showToast('鍔犺浇娑堟伅澶辫触')
+ } finally {
+ this.loading = false
+ }
+ },
+
// 鑾峰彇娑堟伅绫诲瀷鏂囨湰
getMessageTypeText(type) {
const typeMap = {
- 'create': '鍒涘缓鎴愬姛',
- 'push': '浠诲姟鎺ㄩ��',
- 'status': '浠诲姟鐘舵��'
+ 'CREATE': '鍒涘缓鎴愬姛',
+ 'PUSH': '浠诲姟鎺ㄩ��',
+ 'STATUS': '鐘舵�佸彉鏇�',
+ 'ASSIGN': '浠诲姟鍒嗛厤'
}
return typeMap[type] || '绯荤粺娑堟伅';
},
// 鏌ョ湅娑堟伅璇︽儏锛堣烦杞埌浠诲姟璇︽儏锛�
- viewMessageDetail(message) {
- // 鏍囪涓哄凡璇�
- message.read = true;
-
- // 璺宠浆鍒颁换鍔¤鎯呴〉闈�
- if (message.taskId) {
- this.$tab.navigateTo(`/pages/task/detail?id=${message.taskId}`);
- } else {
- this.$modal.showToast('鏃犳硶鎵惧埌鍏宠仈浠诲姟');
+ async viewMessageDetail(message) {
+ try {
+ // 鏍囪涓哄凡璇�
+ if (message.isRead === '0') {
+ await markAsRead(message.messageId)
+ message.isRead = '1'
+ }
+
+ // 璺宠浆鍒颁换鍔¤鎯呴〉闈�
+ if (message.taskId) {
+ this.$tab.navigateTo(`/pages/task/detail?id=${message.taskId}`)
+ } else {
+ this.$modal.showToast('鏃犳硶鎵惧埌鍏宠仈浠诲姟')
+ }
+ } catch (error) {
+ console.error('鏍囪娑堟伅宸茶澶辫触锛�', error)
+ // 鍗充娇鏍囪澶辫触锛屼篃鍏佽璺宠浆
+ if (message.taskId) {
+ this.$tab.navigateTo(`/pages/task/detail?id=${message.taskId}`)
+ }
}
}
}
--
Gitblit v1.9.1