list.vue 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <template>
  2. <view class="feedback-list">
  3. <block v-for="(item,index) in list" :key="index">
  4. <view class="item" @click="goDetail(item)">
  5. <view class="info">
  6. <text class="tips">{{item.type.cate_name}}</text>
  7. <view class="title line1">{{item.content}}</view>
  8. </view>
  9. <view class="time">{{item.create_time}}</view>
  10. <view class="iconfont icon-xiangyou"></view>
  11. </view>
  12. </block>
  13. <block v-if="list.length == 0">
  14. <emptyPage title="暂无数据"></emptyPage>
  15. </block>
  16. </view>
  17. </template>
  18. <script>
  19. import emptyPage from '@/components/emptyPage.vue'
  20. import { feedbackList } from '@/api/user.js'
  21. export default {
  22. components:{
  23. emptyPage
  24. },
  25. data(){
  26. return {
  27. list:[],
  28. page:1,
  29. limit:10,
  30. isScroll:true
  31. }
  32. },
  33. onLoad() {
  34. this.getList()
  35. },
  36. methods:{
  37. getList(){
  38. if(!this.isScroll) return
  39. feedbackList({
  40. page:this.page,
  41. limit:this.limit
  42. }).then(({data})=>{
  43. this.isScroll = data.list.length>=this.limit
  44. this.list = this.list.concat(data.list)
  45. this.page+=1
  46. })
  47. },
  48. // 详情
  49. goDetail(item){
  50. uni.navigateTo({
  51. url:'/pages/users/feedback/detail?id='+item.feedback_id
  52. })
  53. }
  54. },
  55. onReachBottom() {
  56. this.getList()
  57. }
  58. }
  59. </script>
  60. <style lang="scss">
  61. .feedback-list{
  62. .item{
  63. position: relative;
  64. padding: 20rpx 30rpx;
  65. background-color: #fff;
  66. border-bottom: 1px solid #f5f5f5;
  67. .info{
  68. display: flex;
  69. align-items: center;
  70. font-size: 28rpx;
  71. color: #666;
  72. .title{
  73. flex: 1;
  74. padding-right: 30rpx;
  75. }
  76. .tips{
  77. margin-right: 10rpx;
  78. color: $theme-color;
  79. }
  80. }
  81. .time{
  82. margin-top: 5rpx;
  83. color: #BBBBBB;
  84. font-size: 26rpx;
  85. }
  86. .iconfont{
  87. position: absolute;
  88. right: 20rpx;
  89. top: 50%;
  90. transform: translateY(-50%);
  91. font-size: 26rpx;
  92. color: #707070;
  93. }
  94. }
  95. }
  96. </style>