transferRecord.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <template>
  2. <div class="record">
  3. <van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad" v-if="list.length">
  4. <van-row v-for="(item, index) in list" :key="index" class="record-item">
  5. <van-col span="24">
  6. <div class="flex-jub record-border">
  7. <div>
  8. <span>单号:</span><span style="font-weight: bold;color: #CFD1D4;">{{ item.synthesisId }}</span>
  9. </div>
  10. <div>
  11. <span>转移天数:</span><span style="font-weight: bold;color: #CFD1D4;">{{ item.transferDurationStr
  12. }}</span>
  13. </div>
  14. </div>
  15. </van-col>
  16. <van-col span="24">
  17. <div class="record-details-item">
  18. <span>扣除天数:</span><span style="font-weight: bold;color: #CFD1D4;">{{ item.commissionStr }}</span>
  19. </div>
  20. </van-col>
  21. <van-col span="24">
  22. <div class="flex-jub record-details-item">
  23. <div>
  24. <span>主设备名称:</span><span style="font-weight: bold;color: #CFD1D4;">{{ item.transferDiskName
  25. }}</span>
  26. </div>
  27. <div>
  28. <span>设备天数:</span><span style="font-weight: bold;color: #CFD1D4;">{{ item.transferDurationStr
  29. }}</span>
  30. </div>
  31. </div>
  32. </van-col>
  33. <van-col span="24">
  34. <div class="flex-jub record-details-item">
  35. <div>
  36. <span>副设备名称:</span><span style="font-weight: bold;color: #CFD1D4;">{{ item.acceptDiskName
  37. }}</span>
  38. </div>
  39. <div>
  40. <span>设备天数:</span><span style="font-weight: bold;color: #CFD1D4;">{{ item.obtainTime }}</span>
  41. </div>
  42. </div>
  43. </van-col>
  44. <van-col span="24">
  45. <div class="record-details-item">
  46. <span>转移时间:</span><span style="font-weight: bold;color: #CFD1D4;">{{ item.transferDurationStr
  47. }}</span>
  48. </div>
  49. </van-col>
  50. </van-row>
  51. </van-list>
  52. <div v-else-if="pageLoading" style="height: 100%;position: relative;">
  53. <div style="position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);">
  54. <van-loading type="spinner" />
  55. </div>
  56. </div>
  57. <div style="height: 100%;display: flex;align-self: center;justify-content: center;" v-else>
  58. <van-empty description="暂时没有数据哦~"></van-empty>
  59. </div>
  60. </div>
  61. </template>
  62. <script>
  63. export default {
  64. name: 'transferRecord',
  65. props: {
  66. token: {
  67. type: String,
  68. default: ''
  69. }
  70. },
  71. data() {
  72. return {
  73. loading: false,
  74. finished: false,
  75. params: {
  76. pageNum: 1,
  77. pageSize: 10
  78. },
  79. list: [],
  80. total: 0,
  81. pageLoading: false
  82. };
  83. },
  84. mounted() {
  85. this.getTransferDurationRecode()
  86. },
  87. methods: {
  88. // 获取转移记录
  89. getTransferDurationRecode() {
  90. this.pageLoading = true
  91. this.$axios.$post('/resources/v5/time/transfer/getUserTransferRecode', { ...this.params }, { headers: { Authorization: this.token } }).then(res => {
  92. if (res.success) {
  93. this.list.push(...res.data.list)
  94. this.total = res.data.total
  95. this.loading = false;
  96. this.pageLoading = false
  97. }
  98. })
  99. },
  100. // 加载分页
  101. onLoad() {
  102. if (this.list.length >= this.total) {
  103. this.finished = true
  104. return
  105. }
  106. this.params.pageNum++
  107. this.getTransferDurationRecode()
  108. }
  109. },
  110. };
  111. </script>
  112. <style lang="scss" scoped>
  113. .record {
  114. padding: 0 16px;
  115. font-weight: 100;
  116. height: 100%;
  117. .record-item {
  118. margin-bottom: 16px;
  119. padding: 24px 24px 24px 16px;
  120. background: #2C2C2D;
  121. box-shadow: 0px 3px 7px 0px #1E2022;
  122. border-radius: 8px;
  123. }
  124. .record-details-item {
  125. margin-top: 12px;
  126. }
  127. .record-border {
  128. padding-bottom: 12px;
  129. border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  130. }
  131. .flex-jub {
  132. display: flex;
  133. justify-content: space-between;
  134. }
  135. }
  136. </style>