DataListLayout.vue 1.66 KB
<template>
  <section class="data-list-layout">
    <NafmPullRefresh v-model="isRefresh" @refresh="isRefresh = true">
      <NafmPageList v-model="isRefresh" :onLoad="handleLoad">
        <template v-slot="{datas}">
          <DataListItem v-for="(item, idx) in datas" :key="idx" :data="item" :dateText="$t('home.updateDate')" />
        </template>
      </NafmPageList>
    </NafmPullRefresh>
  </section>
</template>

<script>
import NafmPullRefresh from '@/components/NafmPullRefresh'
import NafmPageList from '@/components/NafmPageList'
import DataListItem from '@/components/DataListItem'
export default {
  name: 'DataListLayout',
  components: { NafmPullRefresh, NafmPageList, DataListItem },
  props: {
    tab: {
      type: Object,
      default: () => { return {} }
    },
    keyword: String
  },
  data () {
    return {
      isRefresh: false,
    }
  },
  watch: {
    keyword (val) {
      this.isRefresh = true
    }
  },
  methods: {
    handleLoad (param) {
      return new Promise(resolve => {
        setTimeout(() => {
          resolve({
            data: [
              {
                title: '创新推出碳中和债,助理实现30·60目标',
                date: '2020-02-02',
                dataType: '公告',
              },
              {
                title: '创新推出碳中和债,助理实现30·60目标',
                date: '2020-02-02',
                dataType: '公告',
              }
            ]
          })
        }, 1000);
      })
    }
  }
}
</script>

<style lang="less" scoped>
@PaddingSize: 15px;
.data-list-layout {
  height: 100%;
  padding: 0 @PaddingSize;

  /deep/.van-pull-refresh {
    height: 100%;
  }
}
</style>