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.mfbz.cn/a/463201.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springboot项目学习-瑞吉外卖(1)

第一天任务如下&#xff1a; 建立基本架构完成登录、退出功能 注意&#xff1a;本博客没有使用网上教程里的mybatis-plus&#xff0c;使用的是mybatis&#xff1b;数据库连接池也没有使用教程里的druid&#xff0c;使用的是spring自带的连接池 基本架构 common包&#xff1a;存…

PostMan测试文件上传

后端代码 package com.example.backend.controller;import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.StrUtil; import com.example.backend.common.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import org…

macOS系统中通过brew安装MongoDB

Macos 修改目录权限&#xff1a; sudo chmod -R 777 你的文件夹 本文使用homebrew进行安装简单&#xff0c;因为从官网下载安装包并手动安装需要移动安装包到合适的目录下并配置环境变量等一大堆操作后才能使用数据库&#xff08;若没有安装过brew请自行百度进行安装brew&am…

Pikachu 靶场搭建

文章目录 环境说明1 Pikachu 简介2 Pikachu 安装 环境说明 操作系统&#xff1a;Windows 10PHPStudy 版本: 8.1.1.3Apache 版本&#xff1a;2.4.39MySQL 版本 5.7.26 1 Pikachu 简介 Pikachu是一个使用“PHP MySQL” 开发、包含常见的Web安全漏洞、适合Web渗透测试学习人员练…

python3GUI--qt仿暴风影音视频播放器By:PyQt5(附下载地址)

文章目录 一&#xff0e;前言二&#xff0e;环境1.开发环境2.打包环境3.运行环境 三&#xff0e;软件截图1.启动页2.视频播放3.音频播放4.其他1.托盘2.对话框 四&#xff0e;功能总览五&#xff0e;代码展示&心得1.UI设计2.如何防止卡顿3.如何自定义组件 五&#xff0e;思考…

特殊内齿轮加工的另一种选择

内齿轮加工普遍采用插齿或拉削&#xff0c;但对于一些特殊齿廓的内齿轮来说&#xff0c;插齿可能会有一定的困难&#xff0c;或者成本较高。在这种情况下&#xff0c;线切割加工不失为一种不错的选择。那么什么样的零件需要选择这种加工方式呢&#xff1f;一起来看看&#xff1…

政安晨:【深度学习处理实践】(九)—— Transformer架构

咱们接着这个系列的上一篇文章继续&#xff1a; 政安晨&#xff1a;【深度学习处理实践】&#xff08;八&#xff09;—— 表示单词组的两种方法&#xff1a;集合和序列https://blog.csdn.net/snowdenkeke/article/details/136762323 Transformer是一种架构&#xff0c;用于在…

C#,图论与图算法,图(Graph)的数据结构设计与源代码

因为后面即将发布的大量有关“图”的算法与源代码都需要用到下面的这些基础数据&#xff0c;为避免大家去下载&#xff0c;特意先发布于此。 一、图&#xff08;Graph&#xff09;的基础知识 图&#xff08;Graph&#xff09;是一组对象的图示&#xff0c;其中一些对象对通过链…

zabbix企业微信接入结合海螺问问编写的shell脚本

前言 博客懒得写详细了&#xff0c;视频剪的累死了&#xff0c;看视频就好了 白帽小丑的个人空间-白帽小丑个人主页-哔哩哔哩视频 shell脚本 #!/bin/bash #set -x CorpID"" #我的企业下面的CorpID Secret"" #创建的应用那…

web canvas系列——快速入门上手绘制二维空间点、线、面

文章目录 ⭐前言⭐基本用法&#x1f496;设置一个 canvas 2D 上下文&#x1f496;绘制矩形常用方法属性&#x1f496;绘制一个红蓝交替的矩形 &#x1f496;绘制路径常用方法属性&#x1f496;画一个点&#x1f496;画一条线&#x1f496;画一个三角形面&#x1f496;画一个笑脸…

Nginx高级技术: 代理缓存配置

一、缓存说明 Nginx缓存&#xff0c;Nginx 提供了一个强大的反向代理和 HTTP 服务器功能&#xff0c;同时也是一个高效的缓存服务器。一般情况下系统用到的缓存有以下三种&#xff1a; 1、服务端缓存&#xff1a;缓存存在后端服务器&#xff0c;如 redis。 2、代理缓存&#…

【QT入门】VS2019+QT的开发环境配置

声明&#xff1a;该专栏为本人学习Qt知识点时候的笔记汇总&#xff0c;希望能给初学的朋友们一点帮助(加油&#xff01;) 往期回顾&#xff1a; 【QT入门】什么是qt&#xff0c;发展历史&#xff0c;特征&#xff0c;应用&#xff0c;QtCreator-CSDN博客【QT入门】Windows平台下…

【Vue】Request模块 - axios 封装Vuex的持久化存储

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Vue ⛺️稳中求进&#xff0c;晒太阳 Request模块 - axios 封装 使用axios来请求后端接口&#xff0c;一般会对axios进行一些配置&#xff08;比如配置基础地址&#xff0c;请求响应拦截器…

金鸣表格文字识别大师:解决医学文档PDF生僻字识别难题的利器

在医学领域&#xff0c;文档资料常常涉及到大量的专业术语和生僻字&#xff0c;例如唑吡坦、哌替啶、氟桂利嗪等。这些专业词汇对于非专业人士来说可能较为陌生&#xff0c;但在医学研究和临床实践中却具有不可或缺的重要性。然而&#xff0c;当这些生僻字出现在PDF文档中&…

Rust学习02:推荐一本入门书,免费的

都说Rust的学习曲线很陡峭&#xff0c;试过才知雀实不容易。 先说我的基础&#xff0c;非科班&#xff0c;自学Python&#xff0c;写过几个小程序。 我买书从来不扣扣嗖嗖的&#xff0c;所以先啃了几本Rust的入门书&#xff0c;包括&#xff1a; Tim McNamara的《Rust实战》&am…

单片机第四季-第一课:RTOS

1&#xff0c;RTOS来龙去脉 操作系统是什么&#xff1f; 以人类社会类比&#xff0c;小公司三四个人都是干活的&#xff0c;大公司有几万人其中有几千人从事管理工作&#xff0c;他们的工作是让其他人的干活效率更高。 51单片机为什么没有操作系统&#xff0c;因为51的性能太…

Github 2024-03-17 php开源项目日报 Top9

根据Github Trendings的统计,今日(2024-03-17统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目9Blade项目2Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar数量:75969 个Fork数量:24281 次关…

校园闲置物品交易网站 |基于springboot框架+ Mysql+Java+Tomcat的校园闲置物品交易网站设计与实现(可运行源码+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 用户功能模块 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen…

用 Visual Studio 调试器中查看内存中图像

返回目录&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 前一篇&#xff1a;OpenCV4.9.0在windows系统下的安装 后一篇&#xff1a;OpenCV-Java 开发简介 ​警告 本教程可以包含过时的信息。 Image Watch 是 Microsoft Visual Studio 的插件&a…

蓝桥:保险箱(Python,动态规划)

问题描述&#xff1a; 小蓝有一个保险箱&#xff0c;保险箱上共有 n 位数字。小蓝可以任意调整保险箱上的每个数字&#xff0c;每一次操作可以将其中一位增加 1 或减少 1。当某位原本为 9 或 0 时可能会向前&#xff08;左边&#xff09;进位/退位&#xff0c;当最高位&#x…