limitRecord.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. <template>
  2. <div class="page">
  3. <van-nav-bar
  4. :title="title"
  5. left-text="返回"
  6. left-arrow
  7. @click-left="onClickLeft"
  8. ></van-nav-bar>
  9. <div class="recordContent">
  10. <scroller
  11. ref="recordScroller"
  12. :list="recordList"
  13. noDataText="没有更多..."
  14. :on-infinite='getMoreList'
  15. >
  16. <div class="recordList">
  17. <div
  18. class="recordLi"
  19. v-for="(item, index) in recordList"
  20. :key="index"
  21. >
  22. <div class="flex-name-num">
  23. <p>{{ item.subjectName }}</p>
  24. <span :style="{color:Number(item.amount)>0?'#26A2FF':'red'}">{{Number(item.amount)>0?`+${item.amount}`:item.amount}}</span
  25. >
  26. </div>
  27. <p>{{ item.content }}</p>
  28. <span>{{ item.createTime }}</span>
  29. </div>
  30. </div>
  31. <noData :list="recordList" />
  32. </scroller>
  33. </div>
  34. </div>
  35. </template>
  36. <script>
  37. import {getCourseRecordList} from '../api'
  38. export default {
  39. name: "limitRecord",
  40. components: {},
  41. props: [],
  42. data() {
  43. return {
  44. noDate:false,
  45. title: "名额变动明细",
  46. page:{
  47. cur:1,
  48. size:10,
  49. total:0
  50. },
  51. recordList: []
  52. };
  53. },
  54. created() {
  55. this.getList();
  56. },
  57. methods: {
  58. // 返回
  59. onClickLeft() {
  60. this.$router.go(-1);
  61. },
  62. //获取记录列表
  63. getList(done){
  64. let data = {
  65. page:this.page.cur,
  66. pageSize:this.page.size
  67. }
  68. getCourseRecordList(data).then(res=>{
  69. this.recordList = this.recordList.concat(res.list)
  70. this.page.cur = res.current
  71. this.page.total = res.total
  72. if (res.pages == this.page.cur) {
  73. if (done) done(true);
  74. this.noDate = true;
  75. } else {
  76. if (done) done();
  77. this.page.cur++; //下拉一次页数+1
  78. this.noDate = false;
  79. }
  80. })
  81. },
  82. // 触底加载
  83. getMoreList(done){
  84. console.log("到底了")
  85. if (!this.noDate) {
  86. setTimeout(() => {
  87. this.getList(done);
  88. }, 300);
  89. } else {
  90. this.$refs.recordScroller.finishInfinite(true);
  91. }
  92. },
  93. },
  94. computed: {}
  95. };
  96. </script>
  97. <style scoped lang="scss">
  98. *{
  99. margin: 0;
  100. padding: 0;
  101. }
  102. img{
  103. display: block;
  104. }
  105. .page {
  106. background: #F3F2EE;
  107. background: linear-gradient(90deg, #F3F2EE, #E7EFF9);
  108. .recordContent {
  109. height: calc(100vh - 0.92rem);
  110. position: relative;
  111. .recordList {
  112. // border-top: 0.02rem solid #999;
  113. // border-bottom: 1px solid #999;
  114. .recordLi {
  115. background: #fff;
  116. padding: 0 0.2rem;
  117. overflow: hidden;
  118. &:not(:nth-last-child(1)) {
  119. border-bottom: 1px solid #efefef;
  120. }
  121. .flex-name-num {
  122. display: flex;
  123. justify-content: space-between;
  124. align-items: center;
  125. padding-top: 0.1rem;
  126. & > p {
  127. font-size: 0.32rem;
  128. color: #000;
  129. line-height: 1.5;
  130. }
  131. & > span {
  132. font-size: 0.32rem;
  133. color: #000;
  134. line-height: 2;
  135. margin-left: .1rem;
  136. }
  137. }
  138. & > p {
  139. font-size: 0.28rem;
  140. color: #666;
  141. line-height: 1;
  142. }
  143. & > span {
  144. font-size: 0.28rem;
  145. color: #666;
  146. line-height: 1;
  147. display: block;
  148. margin-top: 0.2rem;
  149. margin-bottom: 0.1rem;
  150. }
  151. }
  152. }
  153. }
  154. }
  155. </style>