坑:

  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. .netcore部署linux、国产化环境

    前言: 本文基于centos7.9操作系统,服务器x86/x64,所有操作在虚拟机中操作,记录部署过程中出现的问题,在此记录解决方案. 查看系统版本命令: cat/etc/redhat-release ...

  2. Notepad++来比较文件

    使用Notepad++来比较文件_sanqima的专栏-CSDN博客_notepad比较文件https://blog.csdn.net/sanqima/article/details/50467154

  3. leetcode刷题(三)

    1.图论 找到小镇的法官 在一个小镇里,按从 1 到 N 标记了 N 个人.传言称,这些人中有一个是小镇上的秘密法官. 如果小镇的法官真的存在,那么: 小镇的法官不相信任何人.每个人(除了小镇法官外) ...

  4. UE4启动顺序

    GameMode PlayerController Actor Level gameMode , playerController控制pawn , 激活默认相机active camera , getP ...

  5. js开发环境如何解决跨域问题

    问题 npm start之后,自己会启动一个端口,比如3000,调用后端服务(比如localhsot:3006/service/list)就会出现跨域,那怎么弄呢? 方式一: webpack设置pro ...

  6. vue3新特性的使用

    1.Suspense组件:等待异步组件时渲染一些额外内容,让应用有更好的用户体验 例: <template> <div class="app"> <h ...

  7. vue vite 打包开启 gzip 部署 nginx 支持 gzip

    vite 打包开启 gzip 安装插件 npm i vite-plugin-compression --save-dev vite.config.js 配置 import { defineConfig ...

  8. 发誓要学会wepack

    9.9 学习资料: http://webpack.wuhaolin.cn/   <深入浅出Webpack> https://github.com/zshno1/wepack-study w ...

  9. GPS北斗卫星时钟同步系统提升电信支撑网性能

    GPS北斗卫星时钟同步系统提升电信支撑网性能 京准科技提供参考--更多资料VX(ahjzsz) 各项新的数据业务,如电子商务.多媒体通信.IP电话等都是电信业务发展的新增长点,而传统业务也存在多家企业 ...

  10. Java-封装结果集示例

    1 @Data 2 public class ResultData implements Serializable { 3 4 /** 5 * 状态码 6 */ 7 private String co ...