坑:

  1. 下拉刷新,上拉加载一直处于加载中  ---  原因:未结束此次下拉或上拉  ---解决:forceUpdate()结束上拉或下拉
  2. 无法正常滚动  --- 原因:数据更新了,但页面高度未变化 ---解决:refresh()重新计算高度
  3. 上拉加载除了第一次,其他时候失效  --- 原因:上次上拉加载未结束,无法进行下一次下拉 ---解决:forceUpdate()结束上拉或下拉
<!--
* @Author: lingxie
* @Date: 2020-06-04 16:17:25
* @Descripttion:
-->
<template>
<div class="model-box">
<div class="page page-order page-order-list">
<!-- ### 列表 -->
<div class="order-list-wrapper" v-if="dataPage && dataPage.length > 0">
<cube-scroll
ref="scroll"
:options="options"
@pulling-down="onPullingDown"
@pulling-up="onPullingUp"
>
<ul class="order-list">
<li class="order-item" v-for="(i,idx) in dataPage" :key="idx">
{{i.orderNo}}
</li>
</ul> </cube-scroll>
</div> <!--缺省-->
<div class="noresult" v-else>
<img src="@order/empty.png" alt="">
<div>暂无订单</div>
</div>
</div>
</div>
</template> <script>
export default {
data() {
return {
options: {
pullDownRefresh: {
txt: "刷新成功"
},
pullUpLoad: {
// threshold: 100,
txt: {
more: "",
noMore: ""
}
}
},
page:true,
pageNo:1,
pageSize:10,
totalPage:'',//总页数量
dataPage: [],
};
},
beforeRouteEnter(to, from, next) {
next(vm=>{
vm.pageNo = 1;
vm.fetch_orderList(1);
})
},
methods: {
// 触发下拉刷新
onPullingDown() {
console.log('下拉刷新--------------');
this.pageNo = 1;
this.fetch_orderList(1);
if(this.$refs && this.$refs.scroll){
this.$refs.scroll.forceUpdate();
this.$refs.scroll.refresh();
}
},
// 触发上拉加载更多
onPullingUp() {
console.log("上拉加载------------");
if(this.pageNo >= this.totalPage){
window.$utils.msg.warn("没有更多数据啦");
this.$refs.scroll.forceUpdate();
this.$refs.scroll.refresh();
return;
}
this.pageNo ++ ;
this.fetch_orderList(0);
},
/**
* @method: fetch_orderList
* @des: 获取订单
* @param {isFirst} 是否第一次进入 1:是第一次进入 0:不是
* @return:
*/
async fetch_orderList(isFirst) {
let params ={
pageNo:this.pageNo,
isPage:this.page,
pageSize:this.pageSize,
queryParams:{
menuType:""
}
};
let res = await this.$api.uni.listCarOrders(params); if (+res.code === 0) {
var {dataList, total ,totalPage} = res.data;
// 第一次请求
if(isFirst){
this.dataPage = dataList;
this.total = total;
this.totalPage = totalPage;
}else{
this.$nextTick(()=>{
console.log('--------------调用加载更多订单数据');
if(dataList.length > 0){
console.log(dataList)
this.dataPage = this.dataPage.concat(dataList);
this.$refs.scroll.forceUpdate();
}else{
this.$refs.scroll.forceUpdate();
window.$utils.msg.warn('没有更多数据啦!');
}
this.$refs.scroll.refresh();
});
}
}
}, }
};
</script>
<style lang="less" scoped>
@import url("../../styles/common.less");
.model-box{
height: 100%;
background: #ffffff;
.page-order {
height: 100%;
}
}
.page-order-list {
.order-list-wrapper {
background: #f6f6f6;
height: 100%;
li{
&:last-child{
margin-bottom: 0;
}
}
}
.noresult {
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
padding-top: 50%;
.gray-color;
img{
width: 210px;
height: 115px;
margin-bottom:30px;
}
div{
font-size: 24px;
text-align: center;
}
}
}
</style>

 

vue- cube-scroll踩坑记的更多相关文章

  1. vue项目打包踩坑记

    基于webpack+vue-cli下的vue项目打包命令是 npm run build ,等待打包完成后在根目录生成dist文件夹,里面包含了所有项目相关的内容. 注意:需要完整版的vue-cli项目 ...

  2. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记

    前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...

  3. vue踩坑记

    vue踩坑记 易错点 语法好难啊qwq 不要把'data'写成'date' 在v-html/v-bind中使用vue变量时不需要加变量名 在非vue事件中使用vue中变量时需要加变量名 正确 < ...

  4. djangorestframework+vue-cli+axios,为axios添加token作为headers踩坑记

    情况是这样的,项目用的restful规范,后端用的django+djangorestframework,前端用的vue-cli框架+webpack,前端与后端交互用的axios,然后再用户登录之后,a ...

  5. [技术博客] 敏捷软工——JavaScript踩坑记

    [技术博客] 敏捷软工--JavaScript踩坑记 一.一个令人影响深刻的坑 1.脚本语言的面向对象 面向对象特性是现代编程语言的基本特性,JavaScript中当然集成了面向对象特性.但是Java ...

  6. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  7. Spark踩坑记——数据库(Hbase+Mysql)

    [TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...

  8. 【踩坑记】从HybridApp到ReactNative

    前言 随着移动互联网的兴起,Webapp开始大行其道.大概在15年下半年的时候我接触到了HybridApp.因为当时还没毕业嘛,所以并不清楚自己未来的方向,所以就投入了HybridApp的怀抱. Hy ...

  9. Spark踩坑记——共享变量

    [TOC] 前言 Spark踩坑记--初试 Spark踩坑记--数据库(Hbase+Mysql) Spark踩坑记--Spark Streaming+kafka应用及调优 在前面总结的几篇spark踩 ...

  10. Spark踩坑记——从RDD看集群调度

    [TOC] 前言 在Spark的使用中,性能的调优配置过程中,查阅了很多资料,之前自己总结过两篇小博文Spark踩坑记--初试和Spark踩坑记--数据库(Hbase+Mysql),第一篇概况的归纳了 ...

随机推荐

  1. C - Functions again CodeForces - 789C (dp、思维)

    C - Functions again CodeForces - 789C #include<iostream> #include<cstdio> #include<cm ...

  2. 新的学习历程-python3 基本运算

    1 print(5 / 2) # 2.5 2 print(5 // 3) #1 取整除 3 print(5 % 3) #2 取余数(取模) 4 print(5 ** 2) #25 5的2次方 5 pr ...

  3. 【面试题】面试突击71:GET 和 POST 有什么区别?

    携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情 GET 和 POST 是 HTTP 请求中最常用的两种请求方法,在日常开发的 RESTful 接口中,都能 ...

  4. vue 学习 css第四天

    一.css背景属性 可以给页面元素添加背景样式. 背景属性(background)可以设置. 1.背景颜色. 2.背景图片. 3.背景平铺. 4.背景图片位置 5.背景图像固定 1.背景颜色(back ...

  5. 苹果App 上架 app store 提示 “构建版本错误”使用Application Loader发布App

    步骤1 打开Application Loader(有2种方法) 或 步骤2 使用开发者帐号登录 步骤3 选择需要上传发布的ipa包 选择成功后,会显示ipa包的相关信息 步骤4 上传验证 上传成功 转 ...

  6. K8S详细教程

    Kubernetes详细教程 1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单, ...

  7. Windows下安装和使用Masscan

    http://zone.secevery.com/article/1098 0x00 前言Masscan号称最快的互联网端口扫描器,本文来探测一下Masscan在Windows下的安装和使用.mass ...

  8. docker之rabbitmq delayed message exchange

    创建dockerfile FROM rabbitmq:3.9.11-management-alpine COPY rabbitmq_delayed_message_exchange-3.9.0.ez ...

  9. GridView.RowCellClick Event

    Fires when a user clicks a data cell. If data is editable and the ColumnViewOptionsBehavior.EditorSh ...

  10. mybatis中xml新增一条数据获取自增id

    在insert的标签里加两个属性:useGeneratedKeys="true"         keyProperty="patentId"   ,这个key ...