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)表单输入前面的文字(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>
- 查询功能实现
先声明查询的参数,根据情况修改参数
// 查询条件
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.数据不能显示
- 原因:数据没有进行匹配
解决措施:重复上述查询功能里的第二步进行核对,只有完全匹配了才能显示数据 - 原因:url不匹配
解决措施:将网页的 url 和给出的进行比较,然后修改页面代码

- 原因:路由出错
解决措施:核对红框里的内容与创建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内容: 根据接口: 修改 url 和 函数的参数 以及 params里的内容 import { request } from "/utils/service" /** 查 */ export function getDyLogDataApi(page: any, limit: any, campaign_id: any, adgroup_id…...
Go语言中gin+gorm开发前端端分离博客时遇到的问题,gorm执行查询时如何选中特定字段?
代码获取 本篇文章的代码放在了Github上,可以免费获取。 https://github.com/zhangdapeng520/zdpgo_gin_examples 概述 在查询用户信息的时候,由于密码这个字段比较敏感,需要进行处理,不要返回给前端。 我一开始的解决方案是直…...
计算机网络11——数据库语法2
1、变量 (1)局部变量 函数里面定义的,变量名 类型 (2)会话变量 本次连接会话有效,不需要定义声明,直接使用,@变量名 类型 set @x=10; select @x;(3)系统变量 又叫全局变量,只有root变量才能使用,一直有效。因为全局变量影响服务器运行,所以Mysql不允许自定…...
华为USG6000E-S12防火墙Key exchange failed.无法SSH解决方案
由于目前防火墙算法太新,导致crt和xshell的版本无法登陆,按以下方法解决 一、下载华为本地加载除弱安全算法组件包之外的组件包 二、先改后缀名为.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){…...
力扣 两数之和
致每一个初学算法的你。 题目 时间复杂度:O(N^2), 空间复杂度: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 实现连续请求
创作灵感:工作中,前端因为某些原因(极其特殊)无法发送两个请求,需要后端实现 言归正传: 背景:使用djangoapscheduler实现定时任务,现在创建任务以及启动任务为两个接口,…...
前端(react)框架nextjs
文章目录 一、什么是next.js1. 路由2. 打包 next build3. 部署 二、 next.js 和react区别三、webstorm使用nextjs四、开发常用总结如何修nextjs 启动监听的端口号?NGINX 反向代理 Next.js 项目配置 参考 一、什么是next.js 官网: https://www.nextjs.cn…...
深耕编程语言18年,对话 Rust、TypeScript、Nushell 核心贡献者 Sophia Turner | Open AGI Forum
作者 | Annie Xu 采访 | 卢威 责编 | Echo Tang 出品丨GOSIM 开源创新汇 编程语言的种类令人眼花缭乱,但成功的、常用的编程语言却是凤毛麟角。在深耕编程语言研发 18 年的 Sophia June Turner 看来,编程语言成功的关键在于其研发团队的透明度和机制建…...
深度学习--图像分割UNet介绍及代码分析
UNet介绍 参考UNet网络介绍整体架构UNet过程输入编码器(下采样)中间特征表示解码器(上采样)输出 代码详解unetUP和Unet关系上采样模块——unetUp用于图像分割的卷积神经网络(CNN)架构模块——Unet类的定义初…...
接了一个2000块的小活,大家进来看看值不值,附源码
如题,上周的一天,朋友圈的一个旧友找到了我,说让我帮他开发一个小工具,虽然活不大,但没个几年的全栈经验还不一定能接下来,因为麻雀虽小,涉及的内容可不少: 需求分析 原型设计 详细…...
基于MindFormers实现GPT2模型的推理
前言 针对MindFormers的安装,可参考本专栏里的另一篇博客 安装MindFormers(昇腾910)-CSDN博客 pipeline方式 from mindformers import pipeline from mindformers import GPT2LMHeadModel, GPT2Config, GPT2Tokenizer tok GPT2Tokenizer…...
探索腾讯云AI代码助手:智能编程的新时代
智能编程的新时代 前言开发环境介绍腾讯云 AI 代码助手使用实例生成文档解释代码生成测试修复代码人工智能技术对话 智能编程获得的帮助与提升对腾讯云AI代码助手的建议结语 前言 hello,大家好我是恒川,今天我来给大家安利一款非常好用的AI 代码助手&…...
MySQL 之 MHA 高可用架构详解
这个是在内部分享做的一个 Keynote 动画,用来演示 MHA 高可用架构及发生故障时的 Failover。动画如下: 数据库相关分享之 MySQL 的 MHA 架构详解 引言 MySQL 数据库在企业和应用中扮演着举足轻重的角色,其稳定性和可靠性对于业务的连续运行至…...
WangEditor自定义新元素,并解决自定义元素中换行无法消除样式的问题
一、背景概述 项目有自定义样式模板的需求,WangEditor没有。若直接把样式的html插入WangEditor中,无法解析,且会被自动过滤。因此,需要基于WangEditor提供的API进行二次开发。 例如,需要新增以下样式: 该…...
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++理解临时对象的来源
当程序员之间进行交谈时,他们经常把仅仅需要一小段时间的变量称为临时变量。例如在下面这段swap(交换)例程里: template<class T> void swap(T& object1, T& object2) { T temp object1; object1 object2; object2 temp; } 通常把t…...
C++协助完成返回值优化
一个返回对象的函数很难有较高的效率,因为传值返回会导致调用对象内的构造和析构函数(参见条款M19),这种调用是不能避免的。问题很简单:一个函数要么为了保证正确的行为而返回对象要么就不这么做。如果它返回了对象,就没有办法摆脱…...
2024年睿抗机器人开发者大赛(RAICOM)国赛题解
目录 RC-u1 大家一起查作弊 分数 15 RC-u2 谁进线下了?II 分数 20 RC-u3 势均力敌 分数 25 RC-u4 City 不 City 分数 30 RC-u5 贪心消消乐 分数 30 RC-u1 大家一起查作弊 分数 15 简单模拟题,对于多行读入使用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…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
