index.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <template>
  2. <view class="tets-wrap">
  3. <roll-load
  4. :total="total"
  5. @lower="lower"
  6. @upper="upper">
  7. <template v-slot:cont>
  8. <block></block>
  9. <!-- 不加占位区块,循环区块不加载,ljuni -->
  10. <view class="item" v-for="(item,index) in items" :key="index">
  11. <p>{{item.id}}</p>
  12. <text>{{item.name}}---{{index+1}}</text>
  13. </view>
  14. </template>
  15. <template v-slot:toTop>
  16. <text>顶部</text>
  17. </template>
  18. </roll-load>
  19. </view>
  20. </template>
  21. <script>
  22. import RollLoad from '@/components/RollLoad/index.vue'
  23. import {deepClone} from '@/libs/index.js';
  24. export default {
  25. components:{
  26. RollLoad
  27. },
  28. data() {
  29. return {
  30. items:[],
  31. total:40
  32. }
  33. },
  34. created() {
  35. this.init();
  36. },
  37. methods: {
  38. init(){
  39. let items=this.getlist();
  40. this.items=items;
  41. },
  42. getlist(){
  43. let items=[];
  44. for(let i=0;i<10;i++)
  45. {
  46. items.push({
  47. id:((new Date()).getTime())*i,
  48. name:'测试'
  49. })
  50. }
  51. return items;
  52. },
  53. lower(e){
  54. let items=deepClone(this.items);
  55. if(e.status){
  56. let data=this.getlist();
  57. this.items=items.concat(data);
  58. }
  59. console.log('滚动到底部------:'+JSON.stringify(e));
  60. },
  61. upper(e){
  62. console.log('滚动到底部顶部:-----'+JSON.stringify(e));
  63. }
  64. }
  65. }
  66. </script>
  67. <style lang="scss" scoped>
  68. .tets-wrap{
  69. padding: 20upx;
  70. .item{
  71. border: 1px solid #ccc;
  72. height: 300upx;
  73. margin-top: 20upx;
  74. }
  75. }
  76. </style>