noticeList.vue 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <view>
  3. <view class="align-items" style="margin-top: 80rpx;">
  4. <back></back>
  5. <view class="title-text" style="margin-left: 20rpx;">
  6. 公告列表
  7. </view>
  8. </view>
  9. <view class="notice" v-for="(item,index) in list" :key="index" >
  10. <view @click="toDetail(`/pages/notice/noticeDetail?title=${item.title}&time=${item.time}&text=${item.text}`)">
  11. <view class="justify-content">
  12. <view class="font-forty">
  13. {{item.title}}
  14. </view>
  15. <view class="font-twenty-eight gray">
  16. {{item.time}}
  17. </view>
  18. </view>
  19. <view class="font-thirty-two black" style="margin: 30rpx 0;">
  20. <rich-text :nodes="item.text"></rich-text>
  21. </view>
  22. </view>
  23. </view>
  24. </view>
  25. </template>
  26. <script>
  27. import service from '@/api/index.js'
  28. export default {
  29. data() {
  30. return {
  31. list: []
  32. }
  33. },
  34. onLoad() {
  35. this.lists()
  36. },
  37. methods: {
  38. toDetail(url){
  39. uni.navigateTo({
  40. url
  41. })
  42. },
  43. lists(){
  44. service.getNoticeList().then(res=>{
  45. // console.log('getNoticeList',res)
  46. this.list = res
  47. })
  48. }
  49. }
  50. }
  51. </script>
  52. <style lang="scss" scoped>
  53. .notice {
  54. margin: 20rpx;
  55. padding: 20rpx;
  56. background: #FFFFFF;
  57. box-shadow: 0rpx 8rpx 17rpx 0rpx rgba(0, 0, 0, 0.04);
  58. border-radius: 10rpx;
  59. }
  60. .text {
  61. border-left: 15rpx solid #3857F3;
  62. padding-left: 20rpx;
  63. }
  64. </style>