| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | <!-- 页面  --><template>  <s-layout title="积分商城">    <view class="ss-p-20">      <view v-for="item in state.pagination.data" :key="item.id" class="ss-m-b-20">        <s-score-card          size="sl"          :data="item"          priceColor="#FF3000"          @tap="sheep.$router.go('/pages/goods/score', { id: item.id })"        ></s-score-card>      </view>    </view>    <s-empty      v-if="state.pagination.total === 0"      icon="/static/goods-empty.png"      text="暂无积分商品"    ></s-empty>    <uni-load-more      v-if="state.pagination.total > 0"      :status="state.loadStatus"      :content-text="{        contentdown: '上拉加载更多',      }"      @tap="loadmore"    />  </s-layout></template><script setup>  import sheep from '@/sheep';  import { onLoad, onReachBottom } from '@dcloudio/uni-app';  import { reactive } from 'vue';  import _ from 'lodash';  const state = reactive({    pagination: {      data: [],      current_page: 1,      total: 1,      last_page: 1,    },    loadStatus: '',  });  async function getData(page = 1, list_rows = 5) {    state.loadStatus = 'loading';    let res = await sheep.$api.app.scoreShop.list({      list_rows,      page,    });    if (res.error === 0) {        let couponlist = _.concat(state.pagination.data, res.data.data);        state.pagination = {          ...res.data,          data: couponlist,        };      if (state.pagination.current_page < state.pagination.last_page) {        state.loadStatus = 'more';      } else {        state.loadStatus = 'noMore';      }    }  }  // 加载更多  function loadmore() {    if (state.loadStatus !== 'noMore') {      getData(state.pagination.current_page + 1);    }  }  // 上拉加载更多  onReachBottom(() => {    loadmore();  });  onLoad(() => {    getData();  });</script>
 |