From 3539d67072a5fd179bd44385ebefce0d1a6e8cb4 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期二, 21 四月 2026 16:03:06 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
small-program/pages/message/message.vue | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 174 insertions(+), 6 deletions(-)
diff --git a/small-program/pages/message/message.vue b/small-program/pages/message/message.vue
index 94d9b9c..e935e2f 100644
--- a/small-program/pages/message/message.vue
+++ b/small-program/pages/message/message.vue
@@ -1,19 +1,187 @@
<template>
- <view>
-
+ <view class="itinerary-page">
+ <view class="top-fixed">
+ <view class="top-gradient"></view>
+ <view class="top-inner">
+ <view :style="{ height: statusbarHeight + 'px' }"></view>
+ <view class="header-bar" :style="{ height: navHeight + 'px' }">
+ <text class="header-title">鎴戠殑娑堟伅</text>
+ </view>
+ </view>
+ </view>
+ <view class="content">
+ <view class="message-item" v-for="item in noticeList" :key="item.id">
+ <view class="message-item-image">
+ <view class="message-item-image-dian" v-if="item.status === 0"></view>
+ <image src="/static/icon/xiaoxi_ic_tongzhi3@2x.png" mode="widthFix"></image>
+ </view>
+ <view class="message-item-info">
+ <text>{{ item.title }}</text>
+ <text>{{ item.content }}</text>
+ <text>{{ item.createDate }}</text>
+ </view>
+ </view>
+ </view>
+ <custom-tabbar></custom-tabbar>
</view>
</template>
<script>
+ import { mapState } from 'vuex'
+ import CustomTabbar from '@/components/custom-tabbar/custom-tabbar.vue'
+
export default {
+ components: {
+ CustomTabbar
+ },
data() {
return {
-
- };
+ noticeList: [],
+ pageNum: 1,
+ pageSize: 10,
+ total: 0
+ }
+ },
+ computed: {
+ ...mapState(['navHeight', 'statusbarHeight', 'token'])
+ },
+ async onShow() {
+ await this.$onLaunched
+ if (!this.token) {
+ return
+ }
+ this.pageNum = 1
+ this.total = 0
+ this.noticeList = []
+ this.getNoticeList()
+ },
+ onReachBottom() {
+ if (this.noticeList.length < this.total) {
+ this.pageNum++
+ this.getNoticeList()
+ }
+ },
+ methods: {
+ async getNoticeList() {
+ const res = await this.$u.api.getMemberNoticePage({
+ page: this.pageNum,
+ capacity: this.pageSize,
+ model: {
+ userType: 0
+ }
+ })
+ if (res.code === 200) {
+ if (this.pageNum === 1) {
+ this.noticeList = res.data.records || []
+ } else {
+ this.noticeList = [...this.noticeList, ...(res.data.records || [])]
+ }
+ this.total = res.data.total || 0
+ }
+ }
}
}
</script>
+<style>
+ page {
+ background-color: #F8F9FB;
+ }
+</style>
+<style lang="scss" scoped>
+ .top-fixed {
+ position: sticky;
+ left: 0;
+ top: 0;
+ width: 100%;
+ z-index: 20;
+ }
-<style lang="scss">
+ .top-gradient {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ height: 100%;
+ background: linear-gradient(90deg, #1ba8fa 0%, #73e5cf 100%);
+ }
-</style>
\ No newline at end of file
+ .top-inner {
+ position: relative;
+ z-index: 1;
+ padding-bottom: 18rpx;
+ }
+
+ .header-bar {
+ padding: 0 30rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ box-sizing: border-box;
+ }
+
+ .header-title {
+ font-weight: 600;
+ font-size: 40rpx;
+ color: #FFFFFF;
+ }
+
+ .content {
+ width: 100%;
+ padding: 20rpx 30rpx;
+ box-sizing: border-box;
+ .message-item {
+ width: 100%;
+ padding: 30rpx;
+ box-sizing: border-box;
+ background: #FFFFFF;
+ border-radius: 16rpx;
+ display: flex;
+ align-items: flex-start;
+ margin-bottom: 20rpx;
+ .message-item-image {
+ flex-shrink: 0;
+ width: 64rpx;
+ height: 64rpx;
+ margin-right: 20rpx;
+ position: relative;
+ image {
+ width: 100%;
+ height: 100%;
+ }
+ .message-item-image-dian {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 18rpx;
+ height: 18rpx;
+ background: #FF0000;
+ border-radius: 50%;
+ }
+ }
+ .message-item-info {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ text {
+ &:nth-child(1) {
+ font-weight: 500;
+ font-size: 30rpx;
+ color: #222222;
+ }
+ &:nth-child(2) {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #666666;
+ margin-top: 16rpx;
+ }
+ &:nth-child(3) {
+ font-weight: 400;
+ font-size: 24rpx;
+ color: #999999;
+ margin-top: 16rpx;
+ }
+ }
+ }
+ }
+ }
+</style>
--
Gitblit v1.9.3