realTime.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <template>
  2. <view class="main">
  3. <view class="head_bgs">
  4. <view class="text-xl text-bold text-white u-margin-right-10">
  5. 实时列表
  6. </view>
  7. <u-icon name="list-dot" color="#fff" size="45"></u-icon>
  8. </view>
  9. <transition-group name="list-complete" tag="p">
  10. <view class="list_item margin-lr-sm u-margin-top-30 list-complete-item" v-for="(item,index) in arr"
  11. :key="item.id">
  12. <view class="text-right text-red">
  13. <text>{{item.time}}分钟前{{item.name}}抢到此单</text>
  14. </view>
  15. <view class="order-num u-font-28 u-padding-bottom-10 u-border-bottom" style="color:#909399;">
  16. <text>订单号:{{item.order_sn}}</text>
  17. </view>
  18. <view class="order-num u-margin-top-15 flex align-center u-padding-bottom-10 u-border-bottom">
  19. <u-avatar src="" size="100"></u-avatar>
  20. <view class="u-margin-left-20 flex-sub" style="color: #505559;">
  21. <view class="u-font-28" v-if="index%2==0">
  22. 评估类型:企业信用问题咨询
  23. </view>
  24. <view class="u-font-28" v-else>
  25. 评估类型:个人信用问题咨询
  26. </view>
  27. <view class="u-font-28">
  28. 评估用户:{{item.orderName}}
  29. </view>
  30. <view class="u-font-28">
  31. 咨询项目个数:{{item.orderNum}}
  32. </view>
  33. <view class="u-font-28 flex justify-between">
  34. <text>咨询总金额:{{item.orderMoney}}</text>
  35. <text class="u-font-30" style="color: #F1C453;">佣金:{{item.orderyong}}元</text>
  36. </view>
  37. </view>
  38. </view>
  39. </view>
  40. </transition-group>
  41. <view class="cu-tabbar-height"></view>
  42. </view>
  43. </template>
  44. <script>
  45. import util from '@/common/util.js'
  46. export default {
  47. data() {
  48. return {
  49. arr: [{
  50. id: 1,
  51. order_sn: '1567996498547206650',
  52. orderNum: '10',
  53. orderName: '阿某某',
  54. orderMoney: '85472',
  55. orderyong: '34188',
  56. time: '3',
  57. name: '吴某'
  58. }, {
  59. id: 2,
  60. order_sn: '1567996498547206650',
  61. orderNum: '5',
  62. orderName: '小某某',
  63. orderMoney: '48512',
  64. orderyong: '19404',
  65. time: '3',
  66. name: '琦某'
  67. },
  68. {
  69. id: 3,
  70. order_sn: '1567996498547206650',
  71. orderNum: '3',
  72. orderName: '刚某某',
  73. orderMoney: '58712',
  74. orderyong: '23484',
  75. time: '1',
  76. name: '吴某'
  77. },
  78. {
  79. id: 4,
  80. order_sn: '1567996498547206650',
  81. orderNum: '9',
  82. orderName: '雨某某',
  83. orderMoney: '98755',
  84. orderyong: '39502',
  85. time: '4',
  86. name: '美某某'
  87. }
  88. ],
  89. timeOut: null
  90. }
  91. },
  92. onShow() {
  93. this.timeOut = setInterval(() => {
  94. let count = this.$u.random(10000, 100000)
  95. this.arr.unshift({
  96. id: this.$u.random(1000, 100000),
  97. order_sn: this.orderCode(),
  98. orderNum: this.$u.random(1, 7),
  99. orderName: this.getNames(),
  100. orderMoney: count,
  101. orderyong: parseInt(count * 0.4),
  102. time: this.$u.random(1, 10),
  103. name: this.getNames()
  104. })
  105. if (this.arr.length > 15) {
  106. this.arr.pop()
  107. }
  108. }, this.$u.random(2000, 3000))
  109. },
  110. onHide() {
  111. clearInterval(this.timeOut)
  112. },
  113. methods: {
  114. //随机订单
  115. orderCode() {
  116. let orderCode = '';
  117. for (let i = 0; i < 6; i++) //6位随机数,用以加在时间戳后面。
  118. {
  119. orderCode += Math.floor(Math.random() * 10);
  120. }
  121. orderCode = new Date().getTime() + orderCode; //时间戳,用来生成订单号。
  122. return orderCode;
  123. },
  124. //随机姓名
  125. getNames() {
  126. let name1 = util.getName().familyNames[this.$u.random(0, (util.getName().familyNames.length - 1))]
  127. let name2 = util.getName().givenNames[this.$u.random(0, (util.getName().givenNames.length - 1))]
  128. return name1 + '某某'
  129. }
  130. }
  131. }
  132. </script>
  133. <style>
  134. .main {
  135. min-height: 100vh;
  136. }
  137. .head_bgs {
  138. background: #F1C453;
  139. height: 100rpx;
  140. width: 100%;
  141. display: flex;
  142. align-items: center;
  143. justify-content: center;
  144. }
  145. .list_item {
  146. padding: 20rpx;
  147. border-radius: 16rpx;
  148. box-shadow: 6rpx 6rpx 10rpx rgba(122, 122, 122, 0.2);
  149. background: #fff;
  150. }
  151. .order-num::after {
  152. border-color: #bbb;
  153. }
  154. button::after {
  155. display: none;
  156. }
  157. .list-complete-item {
  158. transition: all 1s;
  159. /* display: inline-block; */
  160. /* margin-right: 20rpx; */
  161. }
  162. .list-complete-enter,
  163. .list-complete-leave-to
  164. /* .list-complete-leave-active for below version 2.1.8 */
  165. {
  166. opacity: 0;
  167. transform: translateX(60rpx);
  168. }
  169. .list-complete-leave-active {
  170. position: absolute;
  171. }
  172. </style>