vue3实现在移动端时用卡片展示数据而在PC端时切换为表格展示数据

news/2024/10/23 23:31:09/文章来源:https://www.cnblogs.com/3cock/p/18246515

实现源码:

<template><div><div v-if="isMobile" class="infinite-list" style="overflow: auto" v-infinite-scroll="loadMore"><el-row :gutter="20"><el-col :xs="24" :sm="12" :md="8" :lg="6" :xl="4" v-for="item in items" :key="item.id"><el-card class="box-card"><div>{{ item.id }}</div><div>{{ item.content }}</div></el-card></el-col></el-row></div><div v-else><el-table :data="items" style="width: 100%"><el-table-column prop="id" label="id"></el-table-column><el-table-column prop="content" label="产品规格"></el-table-column><el-table-column prop="order" label="订单号"></el-table-column></el-table></div><el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="currentPage" :page-size="pageSize":total="total" @size-change="handlePageChange" @current-change="handlePageChange" v-show="!isMobile"/></div></template><script setup lang="ts">import { ref, computed ,watch,onMounted,onUnmounted} from 'vue'const items = ref([])const screenWidth = ref(window.innerWidth);const updateScreenWidth = () => {screenWidth.value = window.innerWidth;
};onMounted(() => {window.addEventListener('resize', updateScreenWidth);
});onUnmounted(() => {window.removeEventListener('resize', updateScreenWidth);
});let isMobile = ref(false)watch(screenWidth, (newVal, oldVal) => {if(newVal>768){isMobile.value =false}else{isMobile.value =true}
});const currentPage = ref(1);
const pageSize = ref(5);
const total = ref(20); // 假设总共有100条数据
// 加载更多数据的函数
const loadMore = async () => {if (currentPage.value * pageSize.value < total.value) {handlePageChange(currentPage.value + 1);}
};// 分页改变时的处理函数
const handlePageChange = (newPage) => {currentPage.value = newPage;fetchData(newPage);
};const setItem =(arr)=>{if (!isMobile.value) {items.value = arr} else {arr.map(obj => {items.value.push(obj)})}
}
// 模拟获取数据的函数
const fetchData = async (page) => {if (page === 1) {const arr =[{ id: 1, title: '饼干', content: '12克,8片装', order: 'No00001' },{ id: 2, title: '糖果', content: '草莓味', order: 'No00002' },{ id: 3, title: '饼干', content: '12克,8片装', order: 'No00001' },{ id: 4, title: '糖果', content: '草莓味', order: 'No00002' },{ id: 5, title: '饼干', content: '12克,8片装', order: 'No00001' }]setItem(arr)}else if (page === 2) {const arr = [{ id: 6, title: '糖果', content: '草莓味', order: 'No00002' },{ id: 7, title: '饼干', content: '12克,8片装', order: 'No00001' },{ id: 8, title: '糖果', content: '草莓味', order: 'No00002' },{ id: 9, title: '饼干', content: '12克,8片装', order: 'No00001' },{ id: 10, title: '糖果', content: '草莓味', order: 'No00002' },]setItem(arr)}else if (page === 3) {const arr = [{ id: 11, title: '饼干', content: '12克,8片装', order: 'No00001' },{ id: 12, title: '糖果', content: '草莓味', order: 'No00002' },{ id: 13, title: '饼干', content: '12克,8片装', order: 'No00001' },{ id: 14, title: '糖果', content: '草莓味', order: 'No00002' },{ id: 15, title: '饼干', content: '12克,8片装', order: 'No00001' },]setItem(arr)}else if (page === 4) {const arr = [{ id: 16, title: '糖果', content: '草莓味', order: 'No00002' },{ id: 17, title: '饼干', content: '12克,8片装', order: 'No00001' },{ id: 18, title: '糖果', content: '草莓味', order: 'No00002' },{ id: 19, title: '饼干', content: '12克,8片装', order: 'No00001' },{ id: 20, title: '糖果', content: '草莓味', order: 'No00002' },]setItem(arr)}
};fetchData(currentPage.value)
</script><style>
.box-card {margin-bottom: 20px;
}.infinite-list {height: 100vh;padding: 0;margin: 0;list-style: none;
}
</style>

效果图如下:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI “黏土画风”轻松拿捏,手把手带你云端部署 ComfyUI

AI 绘画领域,Stable Diffusion WebUI、Midjourney 、DALL-E 都聚拢了一大批的应用开发者和艺术创作者。ComfyUI 出现时间略晚,但是它让创作者通过工作流的方式,实现自动化水平更高的 AI 生图流程,一面世就以强劲势头脱颖而出,在 WebUI 领域开创了全新的篇章。作者:鸥弋、…

pwn学习-栈迁移

栈迁移:简单理解就是在栈溢出的时候可溢出的字符过少,只能溢出ebp和ret的地址,可以使用leave_ret这个gadget来实现栈的迁移。 在栈中,默认情况下汇编语言在栈结束的时候都默认会执行一次leave和ret指令,我们利用这个特性将返回地址修改为leave_ret的gadget,将会执行两次le…

工业通讯协议(四)- OPCUA

在现代工业自动化领域,OPC UA(开放性生产控制和统一架构)是一种广泛应用的通信协议。参考:https://www.opc-router.com/what-is-opc-ua/#:~:text=In this context%2C the meaning of UA in,COM%2FDCOM to purely binary TCP%2FIP or alternatively SOAP. https://github.co…

视频生成模型 Dream Machine 开放试用;微软将停止 Copilot GPTs丨 RTE 开发者日报 Vol.224

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

活动回顾丨飞天技术沙龙 Serverless + AI 专场(上海站)回顾 PPT 下载

5 月 31 日“飞天技术沙龙 Serverless + AI 专场”上海站圆满落幕。活动受众以关注 Serverless 技术的开发者、企业决策人、云原生领域创业者为主,活动形式为演讲、动手实操,让开发者通过一个下午的时间增进对 Serverless 技术的理解,快速上手 Serverless,拥抱云计算新范式…

虚拟环境配置以及xshll配置

虚拟机和xshll相关演示环境:win11 + VMware16pro+xshell7+centos7.9 虚拟机和xshell配置 1.vmware的安装【16pro】,镜像导入注意【不要将软件下载到带中文和其他特殊字符的目录内】硬件配置【2核2线程2G内存就够。IP地址就动态获取就行】启动centos虚拟机,输入用户名和密码获…

阿里云可观测 2024 年 5 月产品动态

阿里云可观测 2024 年 5 月产品动态

模拟集成电路设计系列博客——6.4.1 电阻电容混合转换器

6.4.1 电阻电容混合转换器 在混合设计中,需要以不同的比例组合前三章中讨论的三种技术。混合设计是设计DA转换器中的一种流行方式,因为它能够组合不同方式的优点。例如,在设计中经常使用温度计码处理高几位MSB,而使用二进制码方式处理低几位LSB。使用这种方式,对于最需要处…

基于云效 AppStack,5 分钟搞定一个 AI 应用的开发和部署

区别于传统的流水线工具,本实验将带你体验云效应用交付平台 AppStack,从应用视角,完成一个 AI 聊天应用的高效交付。实验介绍 区别于传统的流水线工具,本实验将带你体验云效应用交付平台 AppStack,从应用视角,完成一个 AI 聊天应用的高效交付。 你将体验到:基于应用模板…

nssctf

crypto 1.UUencode不知道是什么解码,用随波逐流看看 还是不知道 仔细看看,突然想起他是哪个编码了,UUencode 2栅栏猜了很多 最后猜了网站的名字,嘿嘿出来了3.社会主义 很简单的社会主义核心价值解码4.bubble密码 是ook吧uunbase64 这就没见过了。。不知道什么编码 看了wp才…

跟着杨中科学习(六)EFCore(四)

自引用的组织结构树class OrgUnit {public long Id { get; set; }public long? ParentId { get; set; }public string Name { get; set; }public OrgUnit? Parent { get; set; }public List<OrgUnit> Children { get; set; } = new List<OrgUnit>(); }class Org…

AI智能创作工具:ChatMoney,一键创作,让你的公众号文章爆款!

本文由 ChatMoney团队出品引言 想不想你的公众号文章一炮而红?是不是羡慕那些动不动就10W+的爆款文章?别眼红了,用ChatMoney,你也可以做到!这货可不是普通的写作工具,它是你的文章变成金钥匙的魔法师。一按键,爆款文章就来啦!粉丝、点赞、转发,全都哗啦啦地来。好奇怎…