index.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <template>
  2. <view class="content">
  3. <Nav title="消息" :isBack="false" />
  4. <view class="section">
  5. <u-list finished-text="没有更多了" @scrolltolower="scrolltolower">
  6. <view v-for="item in msgList" :key="item.id" @click="handelDetail(item)">
  7. <u-list-item>
  8. <u-cell-group class="cell">
  9. <u-cell :label="item.createTime" isLink>
  10. <view slot="title" class="title">
  11. <u-badge v-if="item.readState===0" isDot type="error" class="strick"></u-badge>
  12. <view class="title-content" :style="item.readState===0?'padding-left:20rpx':''">{{item.noticeTitle}}</view>
  13. </view>
  14. </u-cell>
  15. </u-cell-group>
  16. </u-list-item>
  17. </view>
  18. </u-list>
  19. <view class="empty" v-if="!this.msgList.length">
  20. <u-empty mode="data" icon="../../static/data.png">
  21. </u-empty>
  22. </view>
  23. </view>
  24. </view>
  25. </template>
  26. <script>
  27. export default {
  28. data() {
  29. return {
  30. // 查询参数
  31. queryParams: {
  32. page: 1,
  33. limit: 13
  34. },
  35. // 列表数据
  36. msgList: []
  37. };
  38. },
  39. onShow() {
  40. this.getMsgList()
  41. },
  42. methods: {
  43. // 获取消息数据
  44. getMsgList() {
  45. uni.$http.get('/messageNotice/getAllMessageNotice', this.queryParams).then(res => {
  46. const data = res.data
  47. if (data.code === 200) {
  48. this.msgList = data.data.messageNoticeList
  49. }
  50. })
  51. },
  52. // 跳转详情页
  53. handelDetail({
  54. id,
  55. readState
  56. }) {
  57. uni.navigateTo({
  58. url: "/pages/message/msg-detail/index?id=" + id + "&state=" + readState
  59. })
  60. },
  61. // 列表滚动到底部触发
  62. scrolltolower() {
  63. this.queryParams.limit += 10
  64. this.getMsgList()
  65. }
  66. }
  67. }
  68. </script>
  69. <style lang="scss" scoped>
  70. .content {
  71. padding: 25rpx;
  72. }
  73. .section {
  74. position: relative
  75. }
  76. .empty {
  77. position: absolute;
  78. top: 0;
  79. right: 0;
  80. left: 0;
  81. bottom: 0;
  82. }
  83. .cell {
  84. .title {
  85. position: relative;
  86. .title-content {
  87. width: 550rpx;
  88. overflow: hidden;
  89. white-space: nowrap;
  90. text-overflow: ellipsis;
  91. }
  92. .strick {
  93. height: 15rpx;
  94. width: 15rpx;
  95. position: absolute;
  96. top: 0;
  97. left: 0;
  98. margin-top: 12rpx
  99. }
  100. }
  101. }
  102. </style>