坑:

  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. 从零开始升级基于RuleBased的聊天机器人

    这里记录从最基础的基于规则的聊天机器人,升级到基于逻辑的机器人,再升级到调用Google提供的API来让机器人能说.会听普通话. 最基本的完全基于规则式的问答:问什么就答什么,幼儿园水平. impor ...

  2. 四大组件之活动Activity

    什么是Activity? Activity是什么呢?翻译为"活动"!之所以叫它Activity是因为它用于跟用户交互的,所以就有了"活动"的翻译,官方的解释如下 ...

  3. class和struct区别

    类(class) 引用类型:将一个对象赋值给另一个对象时,系统不会对此对象进行拷贝,而会将指向这个对象的指针赋值给另一个对象,当修改其中一个对象的值时,另一个对象的值会随之改变. 结构体(struct ...

  4. 虚拟机中 Linux 提示“设备上没有空间”,扩容磁盘

    查看一下磁盘空间使用情况 #df -hl 已使用100% ls /dev/sd*  先查看一下现有sd系统硬盘 关机,存个快照(存不存无所谓),然后在虚拟机设置里添加扩展磁盘容量,选择SCSI类型 重 ...

  5. 设置view的圆角和阴影

    1.设置view圆角 self.backView.clipsToBounds = YES; self.backView.layer.cornerRadius = 6.f; 2.设置view阴影 sel ...

  6. 常用Linxu指令

    1.查看端口占用情况 1.查看所有的服务端口: netstat -a 2.查看所有端口并显示进程号(PID): netstat -ap 若需停止某一进程,可通过kill PID来杀死进程或者用kill ...

  7. 音乐下载器,音乐解析软件,全网音乐免费下载,mp3格式音乐下载,flac格式音乐下载,无损音质音乐下载器,你想听的都搜的到~

    在这个音乐版权被三分天下的时代,想必大家也都会有这种的困扰,喜欢的音乐很多,刚好这些音乐的版权还分散在三大主流音乐厂商的手里. 这样的话,想要听或者下载自己喜欢的音乐可能要开多个会员,而且下载的音乐单 ...

  8. k8s 1.20.5(补充)

    1.根据前面1.15.0补充 2.初始化操作 selinux swap firewall关闭防火墙 swapoff -a 禁用交换空间 vim /etc/sysctl.d/k8s.conf net.b ...

  9. element ui form 表单 校验upload是否有上传

    查到资料 可以绑定在一个多选上,校验此绑定的值 1 <el-form-item label="上传图片" prop="双向绑定值"> 2 <e ...

  10. vue input输入框关键字筛选检索列表数据展示

    想必大家在项目开发中难免会用到关键字筛选的功能,正好这次项目有需求要做这一块,就整理一下vue的input输入框输入关键字检索数据列表的代码.下面直接上代码: html: <!-- 筛选demo ...