| | |
| | | <template> |
| | | <view class="message-body"> |
| | | <u-empty mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" v-if="messageList.length == 0" width="400" height="400" textSize="18"></u-empty> |
| | | <u-list @scrolltolower="scrolltolower" :height="1400"> |
| | | <u-list @scroll="scrolltolower" :height="1400"> |
| | | <u-list-item> |
| | | <u-swipe-action> |
| | | <u-swipe-action-item :options="options1" v-for="(item, index) in messageList" :key="item.id" @click="deleteMsg(item, index)"> |
| | | <u-badge :isDot="true" type="error" v-if="item.status === 0"></u-badge> |
| | | <u-cell size="large" :title="item.title" :label="item.content" @click="messageDetails(item, index)"> |
| | | <view class="prepose" slot="icon"><u-icon name="file-text" color="#a299a0" size="80"></u-icon></view> |
| | | <u-badge :isDot="true" type="error" v-if="item.status !== 1"></u-badge> |
| | | <u-cell size="large" :title="item.title" @click="messageDetails(item, index)"> |
| | | <u-parse :content="item.content" slot="label"></u-parse> |
| | | |
| | | <view class="prepose" slot="icon"><u-icon name="volume" color="#035CFB" size="40"></u-icon></view> |
| | | </u-cell> |
| | | </u-swipe-action-item> |
| | | </u-swipe-action> |
| | |
| | | onShow() { |
| | | this.messageReq(); |
| | | }, |
| | | onHide() { |
| | | this.messageList = []; |
| | | this.pageNum = 1; |
| | | }, |
| | | methods: { |
| | | // 触底加载 |
| | | scrolltolower() { |
| | |
| | | if (res.code == 0) { |
| | | uni.hideLoading(); |
| | | this.total = res.data.total; |
| | | const regex = /<[^>]*>([^<]*)<\/[^>]*>/g; |
| | | |
| | | const solveHandle = v => { |
| | | const regex = /<[^>]*>([^<]*)<\/[^>]*>/g; |
| | | let result = v.replace(regex, (match, p1) => { |
| | | return p1.length > 8 ? p1.slice(0, 8) + '...' : p1; |
| | | }); |
| | | return result; |
| | | }; |
| | | if (this.pageNum > 1) { |
| | | this.messageList = this.messageList.concat(res.data.records); |
| | | this.messageList = this.messageList.map(v => { |
| | | return { |
| | | ...v, |
| | | content: solveHandle(v.content) |
| | | }; |
| | | }); |
| | | } else if (this.pageNum == 1) { |
| | | this.messageList = res.data.records; |
| | | this.messageList = this.messageList.map(v => { |
| | | return { |
| | | ...v, |
| | | content: solveHandle(v.content) |
| | | }; |
| | | }); |
| | | } |
| | | } else { |
| | | this.$u.toast('加载失败'); |
| | |
| | | this.$reqAllJson('readMessage', { id: value.id, status: value.status }, { method: 'PUT', 'Content-Type': 'application/json' }).then(res => { |
| | | if (res.code == 0) { |
| | | uni.navigateTo({ |
| | | url: `/pages/public-page/messageDetails/messageDetails?index=${index}` |
| | | url: `/pages/public-page/messageDetails/messageDetails?messageId=${value.messageId}&id=${value.id}` |
| | | }); |
| | | // uni.showLoading({ |
| | | // title: '加载中' |
| | | // }); |
| | | // this.$reqGet('getMessageByUser', { current: 1, size: this.pageSize }).then(res => { |
| | | // uni.hideLoading(); |
| | | // this.total = res.data.total; |
| | | // this.messageList = res.data.records; |
| | | // }); |
| | | } |
| | | }); |
| | | } else { |
| | | uni.navigateTo({ |
| | | url: `/pages/public-page/messageDetails/messageDetails?index=${index}` |
| | | url: `/pages/public-page/messageDetails/messageDetails?messageId=${value.messageId}&id=${value.id}` |
| | | }); |
| | | } |
| | | }, |
| | |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | <style lang="scss" scoped> |
| | | @mixin flex { |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | ::v-deep .u-list-item- { |
| | | position: relative; |
| | | .u-badge { |
| | | position: absolute; |
| | | right: vww(10); |
| | | top: vww(10); |
| | | left: vww(45); |
| | | top: vww(13); |
| | | } |
| | | } |
| | | ::v-deep .u-cell__title-text { |
| | | height: 32rpx; |
| | | font-size: 34rpx !important; |
| | | font-weight: bold; |
| | | color: #2f2f2f !important; |
| | | margin-bottom: vww(18); |
| | | } |
| | | .message-body { |
| | | width: 100%; |
| | | height: 100%; |
| | | |
| | | .prepose { |
| | | width: 89rpx; |
| | | height: 89rpx; |
| | | background: rgba(237, 240, 245, 0.75); |
| | | border-radius: 50%; |
| | | @include flex; |
| | | margin-right: vww(32); |
| | | } |
| | | .more-text { |
| | | color: #999; |
| | | font-size: 24rpx; |