vue3+ts+vant4 列表下拉刷新+分页加载

news2025/1/11 11:10:25

效果图

主要代码:

<van-pull-refresh
  v-model="refreshing"
  @refresh="handleRefresh"
  pulling-text="下拉释放刷新"
  loosing-text="下拉释放刷新"
  loading-text="加载中"
  >
  <van-list
     v-model:loading="loading"
     :finished="finished"
     finished-text="没有更多了"
     loading-text="加载中"
     @load="onLoad"
     >
     <div class="pt-8 px-2">
        <div
           v-for="item in historyList"
           :key="item.external_id"
           class="border border-solid border-[#E2E8F0] rounded-xl shadow-[0_5px_16px_2px_#F1F5F9] px-5 py-4 mb-5 cursor-pointer">
          <div class="flex justify-between items-center border-b border-dashed border-[#D2D2D2] pb-3">
             <div class="flex items-center">
                <img src="@/assets/images/date.png" alt="" class="w-7" />
                <span class="text-[#888] ml-2">{{ item.create_time }}</span>
             </div>
             <div class="px-2 py-1 rounded-md":class="getStatusStyle(item.status).style">
                {{ getStatusStyle(item.status).desc }}
             </div>
             </div>
             <div class="flex items-center justify-between text-[#333] mt-3">
                <span>{{ item.account_phone }}</span>
                <span class="font-semibold">{{ item.amount }}</span>
              </div>
            </div>
         </div>
      </van-list>
   <van-back-top right="15vw" bottom="10vh" />
</van-pull-refresh>
const loading = ref(false) //加载状态
const finished = ref(false) //是否加载完成
const refreshing = ref(false)
const page = ref(1)
const pageSize = ref(5)
interface HistoryList {
  external_id: string
  create_time: string
  status: number
  account_phone: string
  amount: string
}
const historyList = ref<HistoryList[]>([])
const onLoad = async () => {
//此处为分页加载方法,页面一进来就会请求
  try {
    const params = {
      page: page.value,
      page_size: pageSize.value
    }
    const result = await xxxxx(params)
    if (result?.data?.data?.length == 0) {
      finished.value = true //数据为空,查询完成
    } else {
      historyList.value = historyList.value.concat(result.data.data) //数据拼接
      page.value++ //页码+1
    }
  } catch (error) {
    finished.value = true //接口发生错误的时候,让查询完成,不然会死循环
  } finally {
    loading.value = false //loading结束
  }
}
const handleRefresh = async () => {
  //此处为下拉刷新方法,一进方法refreashing就为true
  page.value = 1 //下拉刷新页数置为1
  historyList.value = [] //清空数据
  finished.value = false //标记加载状态为未完成
  loading.value = true //加载中
  await onLoad()
  refreshing.value = false //所以加载完接口就置为false
}
const getStatusStyle = (status: number) => {
//此处为设置状态的样式,css使用的是tailwindcss
  switch (status) {
    case 0:
      return {
        desc: '处理中',
        style: 'text-[#FF9249] bg-[#FCEEE3]'
      }
    case 1:
      return {
        desc: '成功',
        style: 'text-[#6FC682] bg-[#E7F6F1]'
      }
    default:
      return {
        desc: '失败',
        style: 'text-[#FF5A5A] bg-[#FCE3E3]'
      }
  }
}

在写这块需求过程中,写了个死循环导致报错,找了大半天才找到问题,已解决,与以上内容无关

有兴趣可以看看本人另一篇博客
记一次找不到的死循环-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2065070.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DDD精粹速读(一)

1 你需要知道的 - 战略设计 DDD是一种软件设计和构建方法&#xff0c;其重点在于独立于数据持久化等技术问题&#xff0c;准确表达业务规则。 不幸&#xff0c;DDD 对新手来说极具挑战性&#xff0c;部分原因是它有许多独特的概念需要学习。本文我简要介绍这些重要的思想&…

数学建模比赛(国赛)水奖攻略

之前很多同学私聊问我&#xff0c;学校要求参加数模比赛&#xff0c;但是不擅长建模编程&#xff0c;但又不想浪费这个时间该怎么办呢&#xff0c;今天就来给大家讲一下大家都非常感兴趣的内容——数学建模水奖攻略。分享一下博主直接参加比赛时候的经验。 一、选题技巧 有一句…

【QT】学习笔记:关于“初始化列表中的成员变量”

一、问题1 以下代码是什么意思&#xff1f; MainWindow::MainWindow(QWidget *parent): QMainWindow(parent) , ui(new Ui::MainWindow) {ui->setupUi(this); }MainWindow::~MainWindow() {delete ui; } 好的&#xff0c;我来为你解释这段 Qt 代码&#xff1a; 整体概述…

Linux(面试篇)

目录 什么是Linux 什么是Linux内核&#xff1f; Linux的基本组件是什么&#xff1f; Bash和Dos之间基本区别是什么&#xff1f; 什么是Root账户 什么是Bash? 什么时CLI? Linux的目录结构时怎样的&#xff1f; 什么是硬链接和软链接&#xff1f; 什么叫CC攻击&#…

景联文科技:专业人像采集服务,助力人像采集在多领域应用

随着社会的数字化和智能化进程不断推进&#xff0c;人像采集在多个领域中扮演着至关重要的角色&#xff0c;不仅可以提升安全性&#xff0c;还为人们的日常生活带来了更多的便捷。 应用场景&#xff1a; 1. 身份验证与生物识别&#xff1a; 机场、火车站等交通枢纽的身份核验…

docker具体操作

安装docker : 前提 centos 7 64位 centos内核版本3.10以上 1 uname -r 查看内核 2 yum install -y yum-utils device-mapper-persistent-data lvm2 下载依赖包 3 um-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.re…

AI模拟器

一、介绍 基于鸿蒙Next模拟一个ai对话过程二、场景需求 客户服务、数据分析、个性化推荐、图像和视频处理、智能家居、交通管理、教育行业、制造等等。 三、业务步骤 第一步&#xff1a;输入框提出问题&#xff0c;发送问题&#xff0c; 第二部&#xff1a;下次发送&#xff0…

实现BeanPostProcessor

文章目录 1.实现初始化方法1.目录2.InitializingBean.java3.MonsterService.java 实现初始化接口4.SunSpringApplicationContext.java 调用初始化方法5.测试 2.实现后置处理器1.目录2.BeanPostProcessor.java 后置处理器接口3.SunBeanProcessor.java 自定义后置处理器4.SunSpri…

萌啦数据怎么选品,萌啦数据ozon选品怎么选

在当今电商领域&#xff0c;数据已成为商家决策的重要基石。尤其是在跨境电商的广阔舞台上&#xff0c;如何借助数据分析工具精准选品&#xff0c;直接关系到商家在激烈竞争中的生存与发展。萌啦数据&#xff0c;作为业界知名的电商数据分析平台&#xff0c;凭借其强大的数据整…

DHCP协议-CSP认证

文章目录 DHCP协议 DHCP协议 stringstream的用法 应用实践 #include<bits/stdc.h>using namespace std;signed main() {string s"wo shi wwl, also wlw";stringstream ss;ss<<s;while(ss>>s){if(s[s.size()-1],) s[s.size()-1] ;cout<<s<…

128-域横向移动IPCATSC命令Impacket套件CS插件全自动

因为只有一台云服务器而且开不起台多的虚拟机只能只用几台进行演示&#x1f62d;&#x1f62d;&#x1f62d; 小迪的环境 上线之后先做的事情&#xff1a; IPC方式进行横向移动 at schtasks 他这里第三条命令有问题换成这个可以执行 schtasks /create /s 172.16.3.128 /U a…

证书学习(二)搞懂 keystore、jks、p12、pfx、crt、csr、pem文件的区别

目录 一、背景二、文件格式的区分2.1 .keystore / .jks 文件2.2 .p12 / .pfx 文件2.3 .crt 文件2.4 csr 文件2.5 .pem 文件 三、总结 一、背景 我们在日常的开发过程中&#xff0c;经常会见到各种各样的证书相关类型的文件&#xff0c;错综复杂。 其实 keystore、jks、p12、p…

濮阳示范区党工委书记杨行玉一行莅临超维机器人参观考察

8月20日&#xff0c;濮阳示范区党工委书记杨行玉带队赴郑州开展招商活动&#xff0c;并莅临超维机器人参观考察。此次考察旨在加快濮阳示范区产业升级步伐&#xff0c;推动高科技项目引进和落地&#xff0c;为区域经济高质量发展注入新动能。区三级调研员张立春、区招商局负责人…

外挂系统 -减少SAP用户许可数, 多点操作及时同步SAP

用过SAP 的人都知道SAP 是按照用户数来计算项目费用和年维护费的,所以很多公司设置了共同账号,外挂程序,WDA程序等,各种各样的规避方式。 当然SAP 标准的功能也相对简单化,要实现一些自定义的功能来满足各企业实际业务,那需要进行二次开发,有些顾问公司则通过在SAP 中开…

云计算实训33——高并发负载均衡项目(eleme)

一、配置一主两从mysql服务器&#xff08;mysql5.7&#xff09; 1.主服务器master 下载mysql5.7的包 [rootMysql ~]# rz -E rz waiting to receive. [rootMysql ~]# ls anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz #解压 [rootMysql ~]# tar -zxf mysql-5…

用TensorFlow实现线性回归

说明 本文采用TensorFlow框架进行讲解&#xff0c;虽然之前的文章都采用mxnet&#xff0c;但是我发现tensorflow提供了免费的gpu可供使用&#xff0c;所以果断开始改为tensorflow&#xff0c;若要实现文章代码&#xff0c;可以使用colaboratory进行运行&#xff0c;当然&#…

ZooKeeper入门及核心知识点整理

什么是Zookeeper Zookeeper简称zk&#xff0c;先从字面意思上去理解&#xff0c;那就是动物园管理员。其实zk是大数据领域中的一员&#xff0c;为整个分布式环境提供了协调服务&#xff0c;主要可以用于存储一些配置信息&#xff0c;同时也可以基于zk实现集群。它是一个apache…

RabbitMQ的基础概念介绍

MQ的三大特点&#xff1a;削峰、异步、解耦 1.RabblitMQ概念介绍 1.1概念 RabbitMQ是由erlang语言开发&#xff0c;基于AMQP&#xff08;Advanced Message Queue 高级消息队列协议&#xff09;协议实现的消息队列&#xff0c;它是一种应用程序之间的通信方法&#xff0c;消息…

【docker】使用docker-compose的时候如何更新镜像版本

使用docker-compose的时候如何更新镜像版本。之前总是会忘记怎么操作&#xff0c;每次都得百度搜&#xff0c;干脆记录一下。 说明 我有一个memos是用docker-compose部署的&#xff0c;memos更新的挺频繁的&#xff0c;新版本的功能也不错&#xff0c;更新一下没啥问题。 注…

吴恩达机器学习课后作业-03多分类、神经网络前向传播

这里写目录标题 逻辑回归解决多分类问题&#xff08;逻辑回归的“一对多”&#xff08;One-vs-All&#xff09;策略。&#xff09;绘制图像结果 神经网络前向传播数字识别 、 逻辑回归解决多分类问题&#xff08;逻辑回归的“一对多”&#xff08;One-vs-All&#xff09;策略。…