vue- cube-scroll踩坑记
坑:
- 下拉刷新,上拉加载一直处于加载中 --- 原因:未结束此次下拉或上拉 ---解决:forceUpdate()结束上拉或下拉
- 无法正常滚动 --- 原因:数据更新了,但页面高度未变化 ---解决:refresh()重新计算高度
- 上拉加载除了第一次,其他时候失效 --- 原因:上次上拉加载未结束,无法进行下一次下拉 ---解决: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踩坑记的更多相关文章
- vue项目打包踩坑记
基于webpack+vue-cli下的vue项目打包命令是 npm run build ,等待打包完成后在根目录生成dist文件夹,里面包含了所有项目相关的内容. 注意:需要完整版的vue-cli项目 ...
- Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记
前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...
- vue踩坑记
vue踩坑记 易错点 语法好难啊qwq 不要把'data'写成'date' 在v-html/v-bind中使用vue变量时不需要加变量名 在非vue事件中使用vue中变量时需要加变量名 正确 < ...
- djangorestframework+vue-cli+axios,为axios添加token作为headers踩坑记
情况是这样的,项目用的restful规范,后端用的django+djangorestframework,前端用的vue-cli框架+webpack,前端与后端交互用的axios,然后再用户登录之后,a ...
- [技术博客] 敏捷软工——JavaScript踩坑记
[技术博客] 敏捷软工--JavaScript踩坑记 一.一个令人影响深刻的坑 1.脚本语言的面向对象 面向对象特性是现代编程语言的基本特性,JavaScript中当然集成了面向对象特性.但是Java ...
- Spark踩坑记——Spark Streaming+Kafka
[TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...
- Spark踩坑记——数据库(Hbase+Mysql)
[TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...
- 【踩坑记】从HybridApp到ReactNative
前言 随着移动互联网的兴起,Webapp开始大行其道.大概在15年下半年的时候我接触到了HybridApp.因为当时还没毕业嘛,所以并不清楚自己未来的方向,所以就投入了HybridApp的怀抱. Hy ...
- Spark踩坑记——共享变量
[TOC] 前言 Spark踩坑记--初试 Spark踩坑记--数据库(Hbase+Mysql) Spark踩坑记--Spark Streaming+kafka应用及调优 在前面总结的几篇spark踩 ...
- Spark踩坑记——从RDD看集群调度
[TOC] 前言 在Spark的使用中,性能的调优配置过程中,查阅了很多资料,之前自己总结过两篇小博文Spark踩坑记--初试和Spark踩坑记--数据库(Hbase+Mysql),第一篇概况的归纳了 ...
随机推荐
- 从零开始升级基于RuleBased的聊天机器人
这里记录从最基础的基于规则的聊天机器人,升级到基于逻辑的机器人,再升级到调用Google提供的API来让机器人能说.会听普通话. 最基本的完全基于规则式的问答:问什么就答什么,幼儿园水平. impor ...
- 四大组件之活动Activity
什么是Activity? Activity是什么呢?翻译为"活动"!之所以叫它Activity是因为它用于跟用户交互的,所以就有了"活动"的翻译,官方的解释如下 ...
- class和struct区别
类(class) 引用类型:将一个对象赋值给另一个对象时,系统不会对此对象进行拷贝,而会将指向这个对象的指针赋值给另一个对象,当修改其中一个对象的值时,另一个对象的值会随之改变. 结构体(struct ...
- 虚拟机中 Linux 提示“设备上没有空间”,扩容磁盘
查看一下磁盘空间使用情况 #df -hl 已使用100% ls /dev/sd* 先查看一下现有sd系统硬盘 关机,存个快照(存不存无所谓),然后在虚拟机设置里添加扩展磁盘容量,选择SCSI类型 重 ...
- 设置view的圆角和阴影
1.设置view圆角 self.backView.clipsToBounds = YES; self.backView.layer.cornerRadius = 6.f; 2.设置view阴影 sel ...
- 常用Linxu指令
1.查看端口占用情况 1.查看所有的服务端口: netstat -a 2.查看所有端口并显示进程号(PID): netstat -ap 若需停止某一进程,可通过kill PID来杀死进程或者用kill ...
- 音乐下载器,音乐解析软件,全网音乐免费下载,mp3格式音乐下载,flac格式音乐下载,无损音质音乐下载器,你想听的都搜的到~
在这个音乐版权被三分天下的时代,想必大家也都会有这种的困扰,喜欢的音乐很多,刚好这些音乐的版权还分散在三大主流音乐厂商的手里. 这样的话,想要听或者下载自己喜欢的音乐可能要开多个会员,而且下载的音乐单 ...
- k8s 1.20.5(补充)
1.根据前面1.15.0补充 2.初始化操作 selinux swap firewall关闭防火墙 swapoff -a 禁用交换空间 vim /etc/sysctl.d/k8s.conf net.b ...
- element ui form 表单 校验upload是否有上传
查到资料 可以绑定在一个多选上,校验此绑定的值 1 <el-form-item label="上传图片" prop="双向绑定值"> 2 <e ...
- vue input输入框关键字筛选检索列表数据展示
想必大家在项目开发中难免会用到关键字筛选的功能,正好这次项目有需求要做这一块,就整理一下vue的input输入框输入关键字检索数据列表的代码.下面直接上代码: html: <!-- 筛选demo ...