-
VH: {{ debugInfo.vh }}
-
InnerHeight: {{ debugInfo.innerHeight }}
-
ClientHeight: {{ debugInfo.clientHeight }}
-
BodyHeight: {{ debugInfo.bodyHeight }}
-
SafeAreaBottom: {{ debugInfo.safeAreaBottom }}
-
\ No newline at end of file
+ if (!item.isRead) {
+ try {
+ await markAsRead(item.id);
+ item.isRead = true;
+ messageStore.updateUnreadCount();
+ } catch (error) {
+ console.error('标记已读失败', error);
+ }
+ }
+};
+
+const handleDelete = (item) => {
+ showDialog({
+ title: '提示',
+ message: '确定要删除这条消息吗?',
+ showCancelButton: true,
+ }).then(async (action) => {
+ if (action === 'confirm') {
+ try {
+ const res = await deleteMessage(item.id);
+ if (res.success) {
+ showToast('删除成功');
+ const wasUnread = !item.isRead;
+ list.value = list.value.filter(i => i.id !== item.id);
+ if (wasUnread) {
+ messageStore.updateUnreadCount();
+ }
+ } else {
+ showToast(res.message || '删除失败');
+ }
+ } catch (error) {
+ showToast('删除失败');
+ }
+ }
+ });
+};
+
+const handleMarkAllRead = () => {
+ showDialog({
+ title: '提示',
+ message: '确定要将所有消息标记为已读吗?',
+ showCancelButton: true,
+ }).then(async (action) => {
+ if (action === 'confirm') {
+ try {
+ const res = await markAllAsRead();
+ if (res.success) {
+ showToast('操作成功');
+ // 刷新列表
+ onRefresh();
+ // 更新未读计数
+ messageStore.updateUnreadCount();
+ } else {
+ showToast(res.message || '操作失败');
+ }
+ } catch (error) {
+ showToast('操作失败');
+ }
+ }
+ });
+};
+
+onMounted(() => {
+ // onLoad 会由 van-list 自动触发
+});
+
+
+
\ No newline at end of file
diff --git a/Web/src/views/TransactionsRecord.vue b/Web/src/views/TransactionsRecord.vue
index f47ba8a..4e0bf24 100644
--- a/Web/src/views/TransactionsRecord.vue
+++ b/Web/src/views/TransactionsRecord.vue
@@ -297,7 +297,6 @@ const loadData = async (isRefresh = false) => {
// 下拉刷新
const onRefresh = () => {
finished.value = false
- lastId.value = null
transactionList.value = []
loadData(false)
}
@@ -315,8 +314,6 @@ const onSearchChange = () => {
const onSearch = () => {
// 重置分页状态并刷新数据
- lastId.value = null
- lastTime.value = null
transactionList.value = []
finished.value = false
loadData(true)
diff --git a/WebApi/Controllers/Dto/BaseResponse.cs b/WebApi/Controllers/Dto/BaseResponse.cs
index c1acf60..ab47912 100644
--- a/WebApi/Controllers/Dto/BaseResponse.cs
+++ b/WebApi/Controllers/Dto/BaseResponse.cs
@@ -20,6 +20,14 @@ public class BaseResponse
Message = message
};
}
+
+ public static BaseResponse Done()
+ {
+ return new BaseResponse
+ {
+ Success = true
+ };
+ }
}
public class BaseResponse