noticeCenter.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <!-- 消息中心 -->
  2. <template>
  3. <view >
  4. <view class="notice_center_wrap">
  5. <view class="notice_item" @click="toNotice(index)" v-for="(item,index) in noticeList" :key="index">
  6. <view class="notice_item_left">
  7. <image :src="system_news" mode="" v-if="item.tplTypeCode == 'system_news'"></image>
  8. <image :src="order_news" mode="" v-if="item.tplTypeCode == 'order_news'"></image>
  9. <image :src="assets_news" mode="" v-if="item.tplTypeCode == 'assets_news'"></image>
  10. <image :src="appointment_news" mode="" v-if="item.tplTypeCode == 'appointment_news'"></image>
  11. <image :src="after_sale_news" mode="" v-if="item.tplTypeCode == 'after_sale_news'"></image>
  12. <text class="notice_text">{{item.msgName}}</text>
  13. </view>
  14. <view class="notice_item_right">
  15. <view class="notice_num" v-if="item.msgNum>0">{{item.msgNum}}</view>
  16. <image :src="rightUrl" mode=""></image>
  17. </view>
  18. </view>
  19. <view class="notice_item" @click="goNoticeSet()">
  20. <view class="notice_item_left">
  21. <image :src="icon5" mode=""></image>
  22. <text class="notice_text">{{$L('接收设置')}}</text>
  23. </view>
  24. </view>
  25. </view>
  26. </view>
  27. </template>
  28. <script>
  29. import {
  30. mapState
  31. } from 'vuex';
  32. export default {
  33. data() {
  34. return {
  35. assets_news:getApp().globalData.imgUrl+'member/icon10.png',
  36. order_news:getApp().globalData.imgUrl+'member/icon20.png',
  37. after_sale_news:getApp().globalData.imgUrl+'member/icon30.png',
  38. system_news:getApp().globalData.imgUrl+'member/icon60.png',
  39. appointment_news:getApp().globalData.imgUrl+'member/icon70.png',
  40. icon5:getApp().globalData.imgUrl+'member/receive_settings.png',
  41. rightUrl:getApp().globalData.imgUrl+'member/right.png',
  42. noticeList:[]
  43. }
  44. },
  45. computed: {
  46. ...mapState(['userInfo'])
  47. },
  48. onLoad(){
  49. // this.loadData()
  50. },
  51. onShow(){
  52. this.loadData()
  53. },
  54. methods: {
  55. loadData(){
  56. let param = {}
  57. param.url = 'v3/msg/front/msg/msgListNum'
  58. param.method = 'GET'
  59. this.$request(param).then(res=>{
  60. if(res.state == 200){
  61. this.noticeList = res.data;
  62. }else{
  63. this.$api.msg(res.msg)
  64. }
  65. })
  66. },
  67. // 前往消息通知页
  68. toNotice(index){
  69. this.noticeList.map((item,index1)=>{
  70. if(index == index1){
  71. uni.navigateTo({
  72. url:'/pages/notice/notice?tplType='+item.tplTypeCode
  73. })
  74. }
  75. })
  76. },
  77. //去消息设置页面
  78. goNoticeSet(){
  79. uni.navigateTo({
  80. url:'/pages/notice/receivingSet'
  81. })
  82. }
  83. }
  84. }
  85. </script>
  86. <style lang='scss'>
  87. page {
  88. background-color: #f7f7f7;
  89. padding-bottom: 30rpx;
  90. width: 750rpx;
  91. margin: 0 auto;
  92. }
  93. .notice_center_wrap{
  94. margin-top:20rpx;
  95. width:100%;
  96. padding:0 30rpx;
  97. background-color: #fff;
  98. .notice_item{
  99. width:100%;
  100. height:140rpx;
  101. display: flex;
  102. justify-content: space-between;
  103. align-items: center;
  104. border-bottom:1rpx solid rgba(0,0,0,0.05);
  105. .notice_item_left{
  106. display: flex;
  107. align-items: center;
  108. image{
  109. width:80rpx;
  110. height:80rpx;
  111. margin-right:20rpx;
  112. }
  113. .notice_text{
  114. font-size:32rpx;
  115. color:#343434;
  116. font-weight: 600;
  117. }
  118. }
  119. .notice_item_right{
  120. display:flex;
  121. align-items: center;
  122. padding: 10rpx;
  123. .notice_num{
  124. padding: 0 10rpx;
  125. height:28rpx;
  126. text-align: center;
  127. line-height: 28rpx;
  128. font-size:22rpx;
  129. color:#fff;
  130. background:#FC1E1C;
  131. margin-right:20rpx;
  132. border-radius: 28rpx;
  133. }
  134. image{
  135. width:14rpx;
  136. height:24rpx;
  137. }
  138. }
  139. }
  140. }
  141. .notice_center_wrap>view:nth-last-child(1){
  142. border-bottom:none;
  143. }
  144. </style>