vxe-table表格组件的使用已经query函数扩展

        最近新项目使用vue3+typescript开发后台管理系统,基本上展示内容一致表格的方式展示,所以使用vxe-table组件来开发,主要是为了方便使用工具栏,以及其他表格操作。

vxe-table

 开发文档:https://vxetable.cn/#/table/start/install

全局安装

推荐使用 npm 的方式安装,它能更好地和 webpack、vite 等打包工具配合使用。
依赖库: xe-utils  vue 3.2+(我用的是4.5.21版本,支持vue3,因此依赖库需要vue3.2+)

 npm install vxe-table
import { App, createApp } from 'vue'
import VXETable from 'vxe-table'
import 'vxe-table/lib/style.css'function useTable (app: App) {app.use(VXETable)
}createApp(App).use(useTable).mount('#app')

CDN

可以通过 unpkg 或 cdnjs 获取到最新版本的资源,并在页面上引入即可
(注:不建议将不受信任的CDN地址用于生产,因为该连接随时都可能会失效,导致项目挂掉,使用CDN方式记得锁定版本号,锁定版本的方法请查看 unpkg.com)

<!-- 引入样式 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vxe-table/lib/style.css">
<!-- 引入vue -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<!-- 引入组件 -->
<script src="https://cdn.jsdelivr.net/npm/xe-utils"></script><script src="https://cdn.jsdelivr.net/npm/vxe-table"></script>

注意:按需安装、快速入门、全局参数等,详见开发文档

query函数的使用

官方只展示了通过fetch来请求,所以想要扩展使用其他方法请求数据

vxe-table 是一个 Vue 的表格组件库,它提供了丰富的功能和自定义选项。query 函数是你为 vxe-table 组件定义的一个方法,用于构建和发送数据请求。这个函数的具体写法取决于你的应用需求和数据API的结构。

关于 query 函数的写法,并没有固定的模式或数量限制。你可以根据你的应用逻辑和数据API的要求来编写这个函数。以下是一些可能的 query 函数示例,它们展示了不同的处理逻辑和API调用方式:

示例 1: 基本的查询函数

query: ({ page, sorts, filters, form }) => {  const queryParams = {  ...form,  page: page.currentPage,  size: page.pageSize,  ...sorts.reduce((obj, sort, index) => ({  ...obj,  [`sortField${index + 1}`]: sort.field,  [`sortOrder${index + 1}`]: sort.order  }),  ...filters.reduce((obj, filter) => ({  ...obj,  [filter.field]: filter.values.join(',')  }),  };  return fetch(`${serveApiUrl}/api/pub/page/list`, {  method: 'POST',  headers: { 'Content-Type': 'application/json' },  body: JSON.stringify(queryParams)  }).then(response => response.json());  
}

示例 2: 使用 axios 的查询函数

import axios from 'axios';  query: ({ page, sorts, filters, form }) => {  const queryParams = {  ...form,  pageNum: page.currentPage,  pageSize: page.pageSize,  orderBy: sorts.map(sort => `${sort.field} ${sort.order}`).join(','),  ...filters.reduce((obj, filter) => ({  ...obj,  [filter.field]: filter.values.join(',')  }),  };  return axios.post(`${serveApiUrl}/api/pub/page/list`, queryParams)  .then(response => response.data);  
}

示例 3: 复杂的查询逻辑

query: ({ page, sorts, filters, form }) => {  const queryParams = {  ...form,  pageIndex: page.currentPage - 1, // 假设API从0开始计数  pageSize: page.pageSize,  };  // 处理排序条件,假设API接受排序字段和排序方向的数组  if (sorts.length > 0) {  queryParams.orderBy = sorts.map(sort => ({  field: sort.field,  order: sort.order  }));  }  // 处理筛选条件,假设API接受筛选字段和值的对象数组  if (filters.length > 0) {  queryParams.filter = filters.map(filter => ({  field: filter.field,  operator: 'IN', // 假设所有筛选条件使用IN运算符  value: filter.values  }));  }  return fetch(`${serveApiUrl}/api/pub/page/list`, {  method: 'POST',  headers: { 'Content-Type': 'application/json' },  body: JSON.stringify(queryParams)  }).then(response => response.json());  
}

        每个示例都展示了不同的查询参数构建方式和API调用方法。你可以根据你的API要求和业务逻辑来编写自己的 query 函数。记住,最重要的是确保你的查询参数与API期望的格式相匹配,并且能够正确地获取和返回你所需的数据。

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

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

相关文章

Vue使用pandoc-wasm进行各格式转换

前端使用pandoc-wasm的问题和建议 docx转md npm install --save pandoc-wasmimport { Pandoc } from "pandoc-wasm";const pandoc new Pandoc()pandoc.init().then(async (pandoc) > {const result await pandoc.run({text: "Some input text",opti…

掌握C#: 从基础到精通 - 中级实战练习集

文章目录 异常处理尝试-捕获结构 文件 I/O 练习追加而不覆盖处理目录 LINQ 查询练习筛选集合中的对象排序复杂对象 类与对象练习继承与多态性 你是否已经掌握了C#的基础知识&#xff0c;正在寻找更多挑战来提升你的能力&#xff1f;那么&#xff0c;这篇文章就是为你准备的。我…

代码随想录 -- 回溯算法

文章目录 回溯算法理论什么是回溯法回溯法的效率回溯法解决的问题理解回溯法回溯法模板 组合问题I描述题解优化 组合总和III描述题解 电话号码的字母组合描述题解 组合总和描述题解 组合总和II描述题解 分割回文串描述题解 复原IP地址描述题解 子集描述题解 子集II描述题解 递增…

暄桐林曦老师的三个“知行”心得,帮你少走弯路

暄桐是一间传统美学教育教室&#xff0c;创办于2011年&#xff0c;林曦是创办人和授课老师&#xff0c;教授以书法为主的传统文化和技艺&#xff0c;皆在以书法为起点&#xff0c;亲近中国传统之美&#xff0c;以实践和所得&#xff0c;滋养当下生活。    “知行合一”四个…

20双体系Java学习之数组的toString类

Arrays.toString ★小贴士 数组内容字符串表示形式由数组的元素列表组成&#xff0c;括在方括号&#xff08;"[]"&#xff09;中。相邻元素用字符 ", "&#xff08;逗号加空格&#xff09;分隔。 使用toString()方法可方便地输出数组的内容&#xff0c;避免…

【计算机基础系列】位运算

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【解决】Github Pages搭建的网页访问加载缓慢

写在前面&#xff1a; 如果文章对你有帮助&#xff0c;记得点赞关注加收藏一波&#xff0c;利于以后需要的时候复习&#xff0c;多谢支持&#xff01; 文章目录 一、CDN技术简介二、基于Cloudflare平台使用CDN服务&#xff08;一&#xff09;添加网站&#xff08;二&#xff09…

@RestController和@Controller的区别

Retention注解的生命周期 Target表示注解的使用范围 Type&#xff1a;类型 1、RestControllerControllerResponseBody Controller:告诉Spring帮我们管理哪些程序 ResponseBody&#xff1a;返回数据&#xff0c;即可以修饰类&#xff0c;又可以修饰方法&#xff1a; &…

【TB作品】MSP430,波形发生器,单片机,Proteus仿真

文章目录 题目效果梯形波100个点产生方法锯齿波100个点产生方法c代码和proteus仿真 题目 114 波形发生器的制作 设计要求 设计一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器。设置5个开关K1~K5(从 上到下),分别对应正弦波、方波、三角波、梯形波、锯齿波,按一下…

Oracle19c静默部署

Oracle19c静默部署文档 下载地址 https://www.oracle.com/database/technologies/oracle-database-software-downloads.html#db_free 一、系统基础配置 1、创建用户和用户组 # 创建oinstall和dba用户组 groupadd oinstall groupadd dba# 创建Oracle用户 useradd -g oinstall…

解决谷歌浏览器最新chrome94版本CORS跨域问题

项目场景&#xff1a; 谷歌浏览器升级到chrome94版本出现CORS跨域问题 问题描述 解决谷歌浏览器最新chrome94版本CORS跨域问题。 CORS跨域问题&#xff1a; 升级谷歌浏览器最新chrome94版本后&#xff0c;提示Access to XMLHttpRequest at ‘http://localhost:xxxx/api’ fro…

Linux基础开发工具之yum与vim

1. Linux软件包管理器——yum 1.1 什么是软件包&#xff1f; 在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, …