微信

index.vue 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <template>
  2. <div class="mainPage flex-v">
  3. <!-- <div class="top">
  4. <topCaseInfo :data="topCaseInfoData" :userName="userInfo.customer != undefined ? userInfo.customer.CustomerName : ''"></topCaseInfo>
  5. </div> -->
  6. <div class="flex-item">
  7. <div class="flex-h">
  8. <div class="flex-item">
  9. <!-- <ul>
  10. <li v-for="(item,index) in orders.list" :key="index">
  11. <orderListItem :data="item"></orderListItem>
  12. </li>
  13. </ul> -->
  14. <scroll ref='scroll' :isloading='isloading' class='wrapper' :data='orders.list' :pullUpLoad='pullUpLoadObj' :startY='parseInt(startY)' @pullingUp='getList'>
  15. <ul>
  16. <li v-for="(item,index) in orders.list" :key="index">
  17. <orderListItem :data="item"></orderListItem>
  18. </li>
  19. </ul>
  20. </scroll>
  21. </div>
  22. </div>
  23. </div>
  24. </div>
  25. </template>
  26. <script>
  27. import scroll from '../../../components/scroll/scroll'
  28. import noMore from '../../../components/noMore/noMore'
  29. import topCaseInfo from '../../../components/topCaseInfo/index'
  30. import orderListItem from '../../../components/orderListItem/index'
  31. import { mapState, createNamespacedHelpers } from 'vuex'
  32. // const { mapActions: actions } = createNamespacedHelpers('app')
  33. const { mapState: mapOrdersState, mapActions: mapOrdersActions } = createNamespacedHelpers('goodsOrder')
  34. export default {
  35. name: '',
  36. data () {
  37. return {
  38. pullUpLoad: true,
  39. pullUpLoadThreshold: 40,
  40. startY: 0,
  41. page: 1,
  42. pagesize: 10,
  43. isloading: true,
  44. hasMore: true,
  45. }
  46. },
  47. computed: {
  48. ...mapState({
  49. userInfo: x => x.userCenter.userInfo,
  50. }),
  51. ...mapOrdersState({
  52. orders: x => x.orders,
  53. }),
  54. pullUpLoadObj: function () {
  55. return this.pullUpLoad
  56. ? {
  57. threshold: parseInt(this.pullUpLoadThreshold),
  58. txt: {
  59. more: this.pullUpLoadMoreTxt,
  60. noMore: this.pullUpLoadNoMoreTxt
  61. }
  62. }
  63. : false
  64. }
  65. },
  66. components: {
  67. topCaseInfo,
  68. orderListItem,
  69. scroll,
  70. noMore,
  71. },
  72. created () {
  73. this.getCustomerGoodsOrder({
  74. page: this.page,
  75. pagesize: this.pagesize,
  76. })
  77. },
  78. methods: {
  79. ...mapOrdersActions([
  80. 'getCustomerGoodsOrder',
  81. ]),
  82. getList () {
  83. var _that = this
  84. Math.ceil(this.orders.pagenum / this.orders.pagesize) > this.page ? this.hasMore = true : this.hasMore = false
  85. // this.list.length <= 8 ? this.hasMore = true : this.hasMore = false
  86. if (this.hasMore) {
  87. this.page = this.page+1
  88. setTimeout(() => {
  89. _that.getCustomerGoodsOrder({
  90. page: _that.page,
  91. pagesize: _that.pagesize,
  92. })
  93. }, 1000)
  94. } else {
  95. this.$refs.scroll.forceUpdate()
  96. return false
  97. }
  98. },
  99. }
  100. }
  101. </script>
  102. <!-- Add "scoped" attribute to limit CSS to this component only -->
  103. <style lang="scss" scoped>
  104. @import "page.scss";
  105. </style>