当前位置: 首页 > 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…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...