当前位置: 首页 > news >正文

Vue3+TS+element plus实现一个简单列表页面

期望完成效果

在这里插入图片描述

1.创建一个api

在这里插入图片描述

api内容:
根据接口:
修改 url 和 函数的参数 以及 params里的内容

import { request } from "@/utils/service"
/** 查 */
export function getDyLogDataApi(page: any, limit: any, campaign_id: any, adgroup_id: any, content_id: any) {return request({url: `/hw/list`,method: "get",params: {key1: "",page,limit,campaign_id,adgroup_id,content_id}})
}

2.创建页面显示代码的文件

在这里插入图片描述

3.在vue文件中引入api里的函数

在这里插入图片描述

4.列表数据显示

创建列表并且显示数据
< el-table :data=“tableData” > 这行表示与数据匹配进行渲染
此时要与页面的数据进行匹配,修改 prop 与 label
在这里插入图片描述

<div class="table-wrapper"><el-table :data="tableData"><el-table-column type="index" width="50" /><el-table-column prop="secretAccount" label="账号" align="center" /><el-table-column prop="actionType" label="actionType" align="center" /><el-table-column prop="campaignId" label="广告计划Id" align="center" /><el-table-column prop="adgroupId" label="任务id" align="center" /><el-table-column prop="contentId" label="素材id" align="center" /><el-table-column prop="callback" label="callback" align="center" /><!-- <el-table-column prop="channel" label="channel" align="center" /> --><el-table-column prop="conversionType" label="conversionType" align="center" /><!-- <el-table-column prop="deeplink" label="deeplink" align="center" /> --><!-- <el-table-column prop="dyParams" label="dyParams" align="center" /> --><el-table-column prop="eventType" label="eventType" align="center" /><el-table-column prop="oaid" label="oaid" align="center" /><!-- <el-table-column prop="referrer" label="referrer" align="center" /> --><el-table-column prop="response" label="response" align="center" /><el-table-column prop="createTime" label="createTime" align="center" /></el-table></div>

其中 < el-table-column type=“index” width=“50” /> 这一行表示的是数据最前面的序号

5.查询功能

  1. 查询的输入表单:
    修改(1)表单输入前面的文字(2)prop,使与数据匹配(3)v-model 双向绑定的内容
<template><div class="app-container"><el-card shadow="never" class="search-wrapper"><el-form ref="searchFormRef" :inline="true" :model="searchData"><el-form-item prop="campaign_id" label="广告计划"><el-input v-model="searchData.campaign_id" placeholder="请输入campaign_id" /></el-form-item><el-form-item prop="dgroup_id" label="任务id"><el-input v-model="searchData.dgroup_id" placeholder="请输入dgroup_id" /></el-form-item><el-form-item prop="content_id" label="素材id"><el-input v-model="searchData.content_id" placeholder="请输入content_id" /></el-form-item><el-form-item><el-button type="primary" :icon="Search" @click="handleSearch">查询</el-button><el-button :icon="Refresh" @click="resetSearch">重置</el-button></el-form-item></el-form></el-card>
  1. 查询功能实现
    先声明查询的参数,根据情况修改参数
// 查询条件
const searchData = reactive({campaign_id: undefined,dgroup_id: undefined,content_id: undefined
})

后使用

/*** 查询列表数据*/
const getTableData = () => {loading.value = truegetDyLogDataApi(paginationData.currentPage,paginationData.pageSize,searchData.campaign_id,searchData.dgroup_id,searchData.content_id).then((res: any) => {const { data } = respaginationData.total = data.totaltableData.value = data.rows}).catch(() => {tableData.value = []}).finally(() => {loading.value = false})
}

出现的问题

1.数据不能显示

  1. 原因:数据没有进行匹配
    解决措施:重复上述查询功能里的第二步进行核对,只有完全匹配了才能显示数据
  2. 原因:url不匹配
    解决措施:将网页的 url 和给出的进行比较,然后修改页面代码

在这里插入图片描述

  1. 原因:路由出错
    解决措施:核对红框里的内容与创建vue文件的位置、名称是否一致在这里插入图片描述

完整代码

<template><div class="app-container"><el-card shadow="never" class="search-wrapper"><el-form ref="searchFormRef" :inline="true" :model="searchData"><el-form-item prop="campaign_id" label="广告计划"><el-input v-model="searchData.campaign_id" placeholder="请输入campaign_id" /></el-form-item><el-form-item prop="dgroup_id" label="任务id"><el-input v-model="searchData.dgroup_id" placeholder="请输入dgroup_id" /></el-form-item><el-form-item prop="content_id" label="素材id"><el-input v-model="searchData.content_id" placeholder="请输入content_id" /></el-form-item><el-form-item><el-button type="primary" :icon="Search" @click="handleSearch">查询</el-button><el-button :icon="Refresh" @click="resetSearch">重置</el-button></el-form-item></el-form></el-card><el-card v-loading="loading" shadow="never"><div class="toolbar-wrapper"><div><el-tooltip content="刷新当前页"><el-button type="primary" :icon="RefreshRight" circle @click="getTableData" /></el-tooltip></div></div><div class="table-wrapper"><el-table :data="tableData"><el-table-column type="index" width="50" /><el-table-column prop="secretAccount" label="账号" align="center" /><el-table-column prop="actionType" label="actionType" align="center" /><el-table-column prop="campaignId" label="广告计划Id" align="center" /><el-table-column prop="adgroupId" label="任务id" align="center" /><el-table-column prop="contentId" label="素材id" align="center" /><el-table-column prop="callback" label="callback" align="center" /><!-- <el-table-column prop="channel" label="channel" align="center" /> --><el-table-column prop="conversionType" label="conversionType" align="center" /><!-- <el-table-column prop="deeplink" label="deeplink" align="center" /> --><!-- <el-table-column prop="dyParams" label="dyParams" align="center" /> --><el-table-column prop="eventType" label="eventType" align="center" /><el-table-column prop="oaid" label="oaid" align="center" /><!-- <el-table-column prop="referrer" label="referrer" align="center" /> --><el-table-column prop="response" label="response" align="center" /><el-table-column prop="createTime" label="createTime" align="center" /></el-table></div><div class="pager-wrapper"><el-paginationbackground:layout="paginationData.layout":page-sizes="paginationData.pageSizes":total="paginationData.total":page-size="paginationData.pageSize":currentPage="paginationData.currentPage"@size-change="handleSizeChange"@current-change="handleCurrentChange"/></div></el-card></div>
</template><script lang="ts" setup>
import { reactive, ref, watch } from "vue"
import { getDyLogDataApi } from "@/api/hw"
import { type FormInstance } from "element-plus"
import { Search, Refresh, RefreshRight } from "@element-plus/icons-vue"
import { usePagination } from "@/hooks/usePagination"
/*** 华为list*/
defineOptions({name: "HwList"
})const loading = ref<boolean>(false)
const { paginationData, handleCurrentChange, handleSizeChange } = usePagination()const tableData = ref<any[]>([])const searchFormRef = ref<FormInstance | null>(null)
// 查询条件
const searchData = reactive({inParam: undefined,outParam: undefined,campaign_id: undefined,dgroup_id: undefined,content_id: undefined
})/*** 查询列表数据*/
const getTableData = () => {loading.value = truegetDyLogDataApi(paginationData.currentPage,paginationData.pageSize,searchData.campaign_id,searchData.dgroup_id,searchData.content_id).then((res: any) => {const { data } = respaginationData.total = data.totaltableData.value = data.rows}).catch(() => {tableData.value = []}).finally(() => {loading.value = false})
}
/*** 查询*/
const handleSearch = () => {paginationData.currentPage === 1 ? getTableData() : (paginationData.currentPage = 1)
}
/*** 重置查询*/
const resetSearch = () => {searchFormRef.value?.resetFields()handleSearch()
}
/*** 翻页处罚查询*/
watch([() => paginationData.currentPage, () => paginationData.pageSize], getTableData, { immediate: true })
</script><style lang="scss" scoped>
.search-wrapper {margin-bottom: 20px;:deep(.el-card__body) {padding-bottom: 2px;}
}.toolbar-wrapper {display: flex;justify-content: space-between;margin-bottom: 20px;
}.table-wrapper {margin-bottom: 20px;
}.pager-wrapper {display: flex;justify-content: flex-end;
}
</style>

相关文章:

Vue3+TS+element plus实现一个简单列表页面

期望完成效果 1.创建一个api api内容&#xff1a; 根据接口&#xff1a; 修改 url 和 函数的参数 以及 params里的内容 import { request } from "/utils/service" /** 查 */ export function getDyLogDataApi(page: any, limit: any, campaign_id: any, adgroup_id…...

Go语言中gin+gorm开发前端端分离博客时遇到的问题,gorm执行查询时如何选中特定字段?

代码获取 本篇文章的代码放在了Github上&#xff0c;可以免费获取。 https://github.com/zhangdapeng520/zdpgo_gin_examples 概述 在查询用户信息的时候&#xff0c;由于密码这个字段比较敏感&#xff0c;需要进行处理&#xff0c;不要返回给前端。 我一开始的解决方案是直…...

计算机网络11——数据库语法2

1、变量 (1)局部变量 函数里面定义的,变量名 类型 (2)会话变量 本次连接会话有效,不需要定义声明,直接使用,@变量名 类型 set @x=10; select @x;(3)系统变量 又叫全局变量,只有root变量才能使用,一直有效。因为全局变量影响服务器运行,所以Mysql不允许自定…...

华为USG6000E-S12防火墙Key exchange failed.无法SSH解决方案

由于目前防火墙算法太新&#xff0c;导致crt和xshell的版本无法登陆&#xff0c;按以下方法解决 一、下载华为本地加载除弱安全算法组件包之外的组件包 二、先改后缀名为.cfg,上传文件到防火墙 三、在用户视图下改后缀名为.mod 四、move 文件到$_install_mod文件夹 五、执行…...

matlab基础操作(五)

31.数组维数的减小 >> amagic(4),a(:,2)[] >> a(1,2)[] 带有下标的赋值维度不匹配。 >> a(2:4)[]%数组a将变为向量 32.元胞数组的创建 Cell indexing方式创建元胞数组 >> c(1,1){[1 4 3;0 5 8;7 2 9]} >> c(1,2){Anne Smith} >> c(2,1){…...

力扣 两数之和

致每一个初学算法的你。 题目 时间复杂度&#xff1a;O(N^2)&#xff0c; 空间复杂度&#xff1a;O(1) 。 class Solution {public int[] twoSum(int[] nums, int target) {int n nums.length;for (int i 0; i < n; i) {for (int j i 1; j < n; j) {if (nums[i] …...

Django 实现连续请求

创作灵感&#xff1a;工作中&#xff0c;前端因为某些原因&#xff08;极其特殊&#xff09;无法发送两个请求&#xff0c;需要后端实现 言归正传&#xff1a; 背景&#xff1a;使用djangoapscheduler实现定时任务&#xff0c;现在创建任务以及启动任务为两个接口&#xff0c…...

前端(react)框架nextjs

文章目录 一、什么是next.js1. 路由2. 打包 next build3. 部署 二、 next.js 和react区别三、webstorm使用nextjs四、开发常用总结如何修nextjs 启动监听的端口号&#xff1f;NGINX 反向代理 Next.js 项目配置 参考 一、什么是next.js 官网&#xff1a; https://www.nextjs.cn…...

深耕编程语言18年,对话 Rust、TypeScript、Nushell 核心贡献者 Sophia Turner | Open AGI Forum

作者 | Annie Xu 采访 | 卢威 责编 | Echo Tang 出品丨GOSIM 开源创新汇 编程语言的种类令人眼花缭乱&#xff0c;但成功的、常用的编程语言却是凤毛麟角。在深耕编程语言研发 18 年的 Sophia June Turner 看来&#xff0c;编程语言成功的关键在于其研发团队的透明度和机制建…...

深度学习--图像分割UNet介绍及代码分析

UNet介绍 参考UNet网络介绍整体架构UNet过程输入编码器&#xff08;下采样&#xff09;中间特征表示解码器&#xff08;上采样&#xff09;输出 代码详解unetUP和Unet关系上采样模块——unetUp用于图像分割的卷积神经网络&#xff08;CNN&#xff09;架构模块——Unet类的定义初…...

接了一个2000块的小活,大家进来看看值不值,附源码

如题&#xff0c;上周的一天&#xff0c;朋友圈的一个旧友找到了我&#xff0c;说让我帮他开发一个小工具&#xff0c;虽然活不大&#xff0c;但没个几年的全栈经验还不一定能接下来&#xff0c;因为麻雀虽小&#xff0c;涉及的内容可不少&#xff1a; 需求分析 原型设计 详细…...

基于MindFormers实现GPT2模型的推理

前言 针对MindFormers的安装&#xff0c;可参考本专栏里的另一篇博客 安装MindFormers&#xff08;昇腾910&#xff09;-CSDN博客 pipeline方式 from mindformers import pipeline from mindformers import GPT2LMHeadModel, GPT2Config, GPT2Tokenizer tok GPT2Tokenizer…...

探索腾讯云AI代码助手:智能编程的新时代

智能编程的新时代 前言开发环境介绍腾讯云 AI 代码助手使用实例生成文档解释代码生成测试修复代码人工智能技术对话 智能编程获得的帮助与提升对腾讯云AI代码助手的建议结语 前言 hello&#xff0c;大家好我是恒川&#xff0c;今天我来给大家安利一款非常好用的AI 代码助手&…...

MySQL 之 MHA 高可用架构详解

这个是在内部分享做的一个 Keynote 动画&#xff0c;用来演示 MHA 高可用架构及发生故障时的 Failover。动画如下&#xff1a; 数据库相关分享之 MySQL 的 MHA 架构详解 引言 MySQL 数据库在企业和应用中扮演着举足轻重的角色&#xff0c;其稳定性和可靠性对于业务的连续运行至…...

WangEditor自定义新元素,并解决自定义元素中换行无法消除样式的问题

一、背景概述 项目有自定义样式模板的需求&#xff0c;WangEditor没有。若直接把样式的html插入WangEditor中&#xff0c;无法解析&#xff0c;且会被自动过滤。因此&#xff0c;需要基于WangEditor提供的API进行二次开发。 例如&#xff0c;需要新增以下样式&#xff1a; 该…...

VBA Excel口算题

口算题函数 利用随机数写个20以内加减法口算题函数 Function Kousuan()Dim intOne As IntegerDim intTwo As IntegerDim strFlg As StringDim intFlg As IntegerDim strRtn As StringintFlg Application.WorksheetFunction.RandBetween(0, 1)strFlg "-"If intFlg…...

C++理解临时对象的来源

当程序员之间进行交谈时&#xff0c;他们经常把仅仅需要一小段时间的变量称为临时变量。例如在下面这段swap(交换)例程里&#xff1a; template<class T> void swap(T& object1, T& object2) { T temp object1; object1 object2; object2 temp; } 通常把t…...

C++协助完成返回值优化

一个返回对象的函数很难有较高的效率&#xff0c;因为传值返回会导致调用对象内的构造和析构函数(参见条款M19)&#xff0c;这种调用是不能避免的。问题很简单&#xff1a;一个函数要么为了保证正确的行为而返回对象要么就不这么做。如果它返回了对象&#xff0c;就没有办法摆脱…...

2024年睿抗机器人开发者大赛(RAICOM)国赛题解

目录 RC-u1 大家一起查作弊 分数 15 RC-u2 谁进线下了&#xff1f;II 分数 20 RC-u3 势均力敌 分数 25 RC-u4 City 不 City 分数 30 RC-u5 贪心消消乐 分数 30 RC-u1 大家一起查作弊 分数 15 简单模拟题&#xff0c;对于多行读入使用while(getline(cin…...

声明式UI语法

一、ArkTS的基本组成 Entry // 装饰器 Component // 装饰器 struct Hello { // 自定义组件State myText: string World;build() { // UI描述Column() { // 系统组件Text(Hello ${this.myText}).fontSize(50)Divider()Button(Click me).onClick(() > { // 事件方法t…...

GeoAI赋能智慧城市:从交通优化到环境监测的实战解析

1. GeoAI如何让城市交通更聪明 每天早上7点半&#xff0c;北京西二旗地铁站的人流就像开了闸的洪水。但你可能不知道&#xff0c;现在这些拥挤的站台正在被一种叫GeoAI的技术悄悄改变。简单来说&#xff0c;GeoAI就是让地图会思考的魔法——它把人工智能装进了地理信息系统&…...

数据科学家的测试观:数据质量与代码质量

在传统的软件开发范式中&#xff0c;测试工作主要聚焦于验证代码逻辑的正确性、功能的完整性以及系统的稳定性。然而&#xff0c;随着数据驱动决策成为现代企业的核心&#xff0c;数据科学项目的兴起为软件测试领域带来了全新的挑战与视角。对于数据科学家而言&#xff0c;一个…...

Windows HEIC缩略图终极指南:3分钟免费解决iPhone照片预览问题

Windows HEIC缩略图终极指南&#xff1a;3分钟免费解决iPhone照片预览问题 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC/HEIF files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 还在为…...

RePKG技术指南:Wallpaper Engine资源文件解析与转换工具深度解析

RePKG技术指南&#xff1a;Wallpaper Engine资源文件解析与转换工具深度解析 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg RePKG是一款专门为Wallpaper Engine设计的C#开源工具&a…...

HTTP 与 HTTPS 详解:区别、工作原理、应用场景(超清晰易懂版)

HTTP 与 HTTPS 详解&#xff1a;区别、工作原理、应用场景&#xff08;超清晰易懂版&#xff09;一、HTTP 是什么&#xff1f;二、HTTPS 是什么&#xff1f;三、HTTP 与 HTTPS 最核心区别&#xff08;一张表看懂&#xff09;四、HTTP 工作原理&#xff08;极简&#xff09;五、…...

保姆级教程:彻底解决VMware vCenter证书过期问题(含certificate-manager全流程)

深度解析&#xff1a;VMware vCenter证书体系与certificate-manager全流程操作指南 当你突然无法登录vCenter管理界面&#xff0c;看到浏览器弹出"此网站的安全证书已过期"的红色警告时&#xff0c;作为运维人员的肾上腺素立刻飙升。这不是普通的登录问题&#xff0c…...

Android设备认证实战:Google XTS问题排查与修复指南

1. Google XTS认证基础&#xff1a;理解三大测试套件 第一次接触Google XTS认证时&#xff0c;我也被CTS、GTS、VTS这三个缩写搞晕过。简单来说&#xff0c;这是Google为Android设备设立的三道质量关卡&#xff0c;就像汽车出厂前的安全碰撞测试。**CTS&#xff08;兼容性测试…...

余姚加工中心编程培训好的培训机构推荐

在浙江余姚这座"中国模具之城"&#xff0c;寻找一家优质的加工中心编程培训机构至关重要。舜龙模具数控培训作为当地一家有着28年历史的技术培训机构&#xff0c;值得考虑。舜龙模具数控培训概况舜龙模具数控培训成立于1998年&#xff0c;位于金型路33-5号&#xff0…...

终极指南:如何使用FakeLocation实现应用级虚拟定位保护隐私

终极指南&#xff1a;如何使用FakeLocation实现应用级虚拟定位保护隐私 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 你是否厌倦了应用随意获取你的真实位置&#xff1f;想不想…...

2026简历模板服务商推荐排行 最新口碑榜 AI智能/高性价比

一、摘要据易观分析2026年行业报告显示&#xff0c;国内简历模板服务市场规模同比增长38%&#xff0c;但市场集中度较低&#xff0c;近40%的服务商存在模板更新滞后、服务响应不及时等问题&#xff1b;80%的求职者表示&#xff0c;优质简历模板能提升50%以上的面试邀约率&#…...