notice.vue 1.92 KB
<template>  
    <LayoutApp :show-back="true">
        <Scroll 
        ref="scroll"
        :scroll-events="['scroll-end','scroll']"
        @scroll-end="fetchList"
        >
            <NoticeItem v-for="(item, index) in noticeList" :key="index" :data="item"></NoticeItem>
        </Scroll>
    </LayoutApp>
</template>

<script>
import { createNamespacedHelpers } from 'vuex';

const { mapState, mapActions} = createNamespacedHelpers('notice');
import NoticeItem from './components/noticeItem';

import {
    Style,
    Scroll,
    RecycleList
} from 'cube-ui';
export default {
  components: {
    NoticeItem,
    Style,
    Scroll,
    RecycleList
  },
  data(){
    return {
      data: {},
      scrolling: false,
      scrollOption: {
        pullUpLoad:true,
      },
    };
  },
  created(){
    this.fetchList();
    // this.fetchNoticeList();
  },

  computed: {
    ...mapState(['noticeList','fetchNoticePage','isMore']),
  },
  methods:{
    ...mapActions(['fetchNoticeList']),
    onScroll(){
      console.log('onScroll')
      this.scrolling = true;
      this._scTimer && clearTimeout(this._scTimer);
      this._scTimer = setTimeout(() => {
        this.scrolling = false;
      }, 400);
    },
     scroll({ y }) {
      const height = this.$refs.banner.$el.offsetHeight + this.$refs.header.offsetHeight;

      if (-y >= height) {
        this.fixed = true;
      } else {
        this.fixed = false;
      }
    },
    fetchList(){
        console.log('fetchList:'+this.isMore)
        if (!this.isMore) {
            return;
        }
        console.log('fetchList:'+this.noMore)
        this.fetchNoticeList().then(res => {
            this.$nextTick(() => {
            this.$refs.scroll.forceUpdate(true);
            });
        });
    },
    async onPullingUp(){
      console.log('onPullingUp:'+this.isMore)
      await this.fetchList();
    },

  },

};

</script>

<style scoped>

.scroll-content {
    height: 500px;
}
</style>