logs.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <template>
  2. <view class="integral-logs">
  3. <!-- 筛选器 -->
  4. <view class="filter-box">
  5. <view class="box">
  6. <view class="filter-item" :class="[active == 1?'active':'']" @click="handleType(1)">
  7. 全部
  8. </view>
  9. <view class="filter-item" :class="[active == 2?'active':'']" @click="handleType(2)">
  10. 获得
  11. </view>
  12. <view class="filter-item" :class="[active == 3?'active':'']" @click="handleType(3)">
  13. 消耗
  14. </view>
  15. </view>
  16. <view class="filter-time" @click="handleTime">
  17. 筛选时间
  18. <u-icon name="arrow-down" size="30" color="#fff"></u-icon>
  19. </view>
  20. </view>
  21. <u-datetime-picker
  22. :show="show"
  23. v-model="time"
  24. mode="date"
  25. :closeOnClickOverlay="true"
  26. @cancel="cancel"
  27. @confirm="confirm"
  28. @close="close"
  29. ></u-datetime-picker>
  30. <zs-list mt="90rpx" @load="loadMore" :status="status">
  31. <view class="time-title">
  32. 2022年10月
  33. </view>
  34. <view class="item" v-for="(item,index) in list" :key="index">
  35. <view class="info">
  36. <view class="title">
  37. {{item.title}}
  38. </view>
  39. <view class="time">
  40. {{item.time}}
  41. </view>
  42. </view>
  43. <view class="score">
  44. {{item.score}}
  45. </view>
  46. </view>
  47. </zs-list>
  48. </view>
  49. </template>
  50. <script>
  51. export default {
  52. data() {
  53. return {
  54. show:false,
  55. time:Number(new Date()),
  56. status:'more',
  57. active:1,
  58. list:[
  59. {
  60. title:'天天签到积分',
  61. time:'2022-10-01',
  62. score:'+5'
  63. },
  64. {
  65. title:'天天签到积分',
  66. time:'2022-10-01',
  67. score:'+5'
  68. },
  69. {
  70. title:'天天签到积分',
  71. time:'2022-10-01',
  72. score:'+5'
  73. },
  74. {
  75. title:'天天签到积分',
  76. time:'2022-10-01',
  77. score:'+5'
  78. },
  79. // {
  80. // title:'天天签到积分',
  81. // time:'2022-10-01',
  82. // score:'+5'
  83. // },
  84. // {
  85. // title:'天天签到积分',
  86. // time:'2022-10-01',
  87. // score:'+5'
  88. // },
  89. // {
  90. // title:'天天签到积分',
  91. // time:'2022-10-01',
  92. // score:'+5'
  93. // },
  94. // {
  95. // title:'天天签到积分',
  96. // time:'2022-10-01',
  97. // score:'+5'
  98. // },
  99. // {
  100. // title:'天天签到积分',
  101. // time:'2022-10-01',
  102. // score:'+5'
  103. // },
  104. // {
  105. // title:'天天签到积分',
  106. // time:'2022-10-01',
  107. // score:'+5'
  108. // },
  109. // {
  110. // title:'天天签到积分',
  111. // time:'2022-10-01',
  112. // score:'+5'
  113. // }
  114. ]
  115. }
  116. },
  117. methods: {
  118. handleType(val){
  119. this.active = val
  120. },
  121. handleTime() {
  122. this.show = true
  123. },
  124. // 关闭选择器时触发
  125. close(){
  126. this.show = false
  127. },
  128. // 点击确定按钮时触发
  129. confirm(){
  130. this.show = false
  131. },
  132. // 点击取消按钮
  133. cancel(){
  134. this.show = false
  135. },
  136. loadMore(){
  137. this.status = 'loading'
  138. setTimeout(()=>{
  139. this.status = 'more'
  140. this.list.push({
  141. title:'天天签到积分',
  142. time:'2022-10-01',
  143. score:'+15'
  144. })
  145. },1000)
  146. }
  147. },
  148. }
  149. </script>
  150. <style lang="scss">
  151. .integral-logs{
  152. .filter-box{
  153. display: flex;
  154. padding: 25rpx 0;
  155. background: rgb(57, 81, 251);
  156. color: #fff;
  157. position: fixed;
  158. top: 0%;
  159. left: 0%;
  160. width: 100%;
  161. .box{
  162. flex: 1;
  163. display: flex;
  164. border-right: 1px solid #fff;
  165. .filter-item{
  166. flex: 1;
  167. text-align: center;
  168. }
  169. .active{
  170. font-weight: bold;
  171. }
  172. }
  173. .filter-time{
  174. width: 240rpx;
  175. display: flex;
  176. align-items: center;
  177. justify-content: center;
  178. .u-icon{
  179. margin-left: 8rpx;
  180. }
  181. }
  182. }
  183. .time-title{
  184. font-size: 32rpx;
  185. font-weight: bold;
  186. padding-left: 20rpx;
  187. line-height: 70rpx;
  188. }
  189. .item{
  190. display: flex;
  191. align-items: center;
  192. justify-content: space-between;
  193. padding: 25rpx;
  194. box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 3px 0px;
  195. margin-bottom: 15rpx;
  196. border-radius: 12rpx;
  197. .info{
  198. .title{
  199. font-size: 32rpx;
  200. }
  201. .time{
  202. font-size: 24rpx;
  203. color: #cacaca;
  204. margin-top: 10rpx;
  205. }
  206. }
  207. .score{
  208. font-size: 38rpx;
  209. color: rgb(57, 81, 251);
  210. }
  211. }
  212. }
  213. </style>