vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例-汇总

github求⭐

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅰ)配置项文档

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅱ)搜索及数据获取配置项

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅲ)列表项及分页器配置及props配置

vue3 依赖-组件tablepage-vue3说明文档,列表页快速开发,使用思路及范例(Ⅳ)其他配置项

配置项API

  • 引入
  • 思路介绍
  • 全文档模拟接口的数据结构
  • TablePage-vue3 API汇总
    • 属性
    • 插槽
    • Exposes
    • 自定义对象
      • searchConfig(array<object\> 类型)
        • searchConfig-type
        • 当type=times时
        • 当type不为时间类型时的 bind默认值(Object类型)
        • 当type为时间类型时的 bind默认值(Object类型)
      • props(object类型)
      • tableColumnList(array<object\> 类型)
  • 全文档的模拟接口结构
  • 搜索及数据获取配置项
    • 属性: noSearchModel(无表单搜索标识)
    • 属性:changeToSearch(表单change事件是否触发搜索 )
    • 属性: changeParams(参数预处理【可异步】 )
    • 属性: resetFun(重置触发【可异步】)
    • 属性: tableFileter(表格过渡效果【可异步】)
    • 属性: searchOver(搜索完成触发)
    • 插槽: buttonModel
    • 属性: searchConfig(搜索项设置)
      • key
      • label
      • noLabel
      • defaultValue
      • bind
      • childSlot
      • type
        • String类型数据(除 times 与 slot )
        • 字符串 times
        • 字符串 slot (及 配套 slotName 属性)
        • vue组件类型 VueComponent
  • 列表项及分页器配置
    • 属性 tableHeight
    • 属性 tableColumnList 与 插槽 default / 插槽 tableShow
      • 属性 tableColumnList
        • 嵌套多层级 child
        • 插槽 slotName
      • 插槽 default / 插槽 tableShow
      • 优先级
    • 属性 noPage
    • 属性 paginationProps
    • ElTable的其他相关属性
  • props配置
    • pageNumKey
    • pageSizeKey
    • totalKey
    • dataKey
    • pageNumInit
    • pageSizeInit
    • 总结
  • 其他配置项
    • title
    • noTitle
    • noMountedGetData
    • loading

引入

npm i element-plus
npm i tablepage-vue3

思路介绍

本组件是基于element-UI进行快速搭建搜索列表页的依赖,主干思路为:将异步接口声明到组件的tableApi属性,并将搜索项通过searchConfig声明给组件,将搜索、重置、分页的逻辑均交给组件内部去处理,达到最简化的代码实现,对于标准搜索列表页能够进行快速开发。
如下所示,便完成了一个标准搜索列表页的开发

<template><table-page :searchConfig="searchConfig" :tableApi="getMessageList" ><template #default><el-table-column type="index" label="序号" align="center" width="90" /><el-table-column prop="recieveUserName" label="接收人姓名" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="recieveUserPhone" label="接收人电话" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="content" label="内容" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="createTime" label="提交时间" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="sendTime" label="发送时间" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="recieveTime" label="送达时间" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="recieveStatusVal" label="送达状态" align="center" min-width="90" show-overflow-tooltip /></template></table-page>
</template>
<script setup>import TablePage from 'tablepage-vue3'import { getMessageList } from '@/api/message' // 接口const searchConfig = [{label: '时间',type: 'times'},{label: '电话',key: 'phone'}]
</script>
<style lang="scss" scoped></style>

在这里插入图片描述

全文档模拟接口的数据结构

  const getMessageList = () => ({total: 5,data: new Array(5).fill({ name: '张三', phone: '13x-xxxx-xxxx' })})

TablePage-vue3 API汇总

属性

属性名说明类型默认值
tableApi[必填]表格api【可异步】FunctionPromise.reject()
title标题String当前route的meta?.title
noTitle无标题标识Boolean-
noPage不显示分页器标识Boolean-
noMountedGetDataonMounted 不获取数据标识 ,为true时不会默认调用api接口,需要外部触发getList,但是分页和搜索仍会调用接口Boolean-
loading外部loading传入,与内部loading为<或>的关系Boolean-
noSearchModel无表单搜索标识Boolean-
changeToSearch表单change事件是否触发搜索Boolean-
tableHeight表格高度Number/String550
searchConfig搜索项设置Array[]
changeParams参数预处理【可异步】Function(value) => value
resetFun重置触发【可异步】Function() => {}
tableFileter表格过渡效果【可异步】Function(list) => list
searchOver搜索完成触发函数Function()=>{}
props配置选项Object{}
tableColumnList表格列list【当default 或 tableShow插槽使用时,将不会使用tableColumnList进行渲染】Array[]
paginationProps分页器配置选项【将element-ui中的pagination相关属性写进该对象里即可】Object{}

插槽

插槽名说明
buttonModel按钮
default / tableShow表格展示插槽【当default 或 tableShow插槽使用时,将不会使用tableColumnList进行渲染】
[你设定的slotName]本组件内部使用了大量的动态组件,方便配置,可阅读文档自行设置插槽名

Exposes

值名说明
searchHandler()执行数据获取
resetHandler()执行重置逻辑
queryParams获取页面搜索参数
inputQueryParams页面输入参数
getParams接口查询参数
tableList获取表格数据
TableReftableRef对象

自定义对象

searchConfig(array<object> 类型)

属性名说明类型默认值
key字段key值,该值将作用于表单搜索时向接口所发送的字段key,当type为times时详见当type=times时String-
type详见下文 searchConfig-typeString/vue3Component‘input’
label搜索表单标签文本String-
noLabel搜索表单无标签文本标识,为true时将不显示标签文本Booleanfalse
bind搜索表单搜索项属性绑定,将直接作用于搜索表单筛选框的绑定,当type为times时详见当type=times时Object默认值可详见当type不为时间类型时 bind默认值 与 当type为时间类型时 bind默认值
defaultValue默认参数,当type为times时详见当type=times时String-
slotName插槽名称 将整个搜索项暴露给父页面进行使用String-
childSlot子插槽名,当组件结构为<el-select><el-option><\el-option></el-select>时,可将type设置为 select,通过子插槽渲染optionString-
searchConfig-type

值 / 值类型值详情说明
‘times’文本times将渲染分开为两个的时间筛选器,key、bind、defaultValue详见当type=times时
‘slot’文本slot该搜索项将索引页面插槽进行渲染
Stringelement相关组件标签文本(以<el-time-picker>为例:‘el-time-picker’|‘time-picker’|‘ElTimePicker’|‘TimePicker’均可)将捕获element-UI相关组件,并通过v-model将值与页面搜索项进行绑定
类型为 VueComponentvue3组件对象将该组件进行绑定并通过v-model绑定值,逻辑与主要处理的element-ui的相关标签保持一致
当type=times时

属性名说明类型默认值
key字段key值,该值将作用于表单搜索时向接口所发送的字段key,当type=times时字段固定无法修改startTime,endTime
startDefaultValue开始时间默认参数String-
endDefaultValue结束时间默认参数String-
startBind开始时间属性绑定Object详见 当type为时间类型时 bind默认值
endBind结束时间属性绑定Object详见 当type为时间类型时 bind默认值
当type不为时间类型时的 bind默认值(Object类型)

属性名默认值
placeholderlabel的值
clearabletrue
stylewidth: 200px
当type为时间类型时的 bind默认值(Object类型)

属性名默认值
stylewidth: 190px
typedatetime
placeholder请选择时间
formatYYYY-MM-DD HH:mm:ss
valueFormatYYYY-MM-DD HH:mm:ss

props(object类型)

属性名说明类型默认值
pageNumKey接口调用时的当前页码字段Stringpage
pageSizeKey接口调用时的每页显示条目个数字段Stringlimit
totalKey接口调用时的总页数字段Stringcount
dataKey接口调用时的列表数据字段Stringdata
pageNumInit列表默认当前页码Number1
pageSizeInit列表默认每页显示条目个数Number10

tableColumnList(array<object> 类型)

属性名说明类型默认值
slotName使用插槽嵌入tableColumn,并使用slotName为插槽keyString-
alignelement-UI的 tableColumn中align字段复写默认值Stringcenter
element-UI的 tableColumn中的字段均可直接声明
child子tableColumn,嵌套tableColumn使用Array-

全文档的模拟接口结构

  const getMessageList = () => ({total: 5,data: new Array(5).fill({ name: '张三', phone: '13x-xxxx-xxxx' })})

搜索及数据获取配置项

属性: noSearchModel(无表单搜索标识)

该属性为true时,将不会显示表单项(以及属于表单的按钮项也不会显示),但是列表和属于列表的分页器将正常展示

<template><table-page noSearchModel :searchConfig="searchConfig" :tableApi="getMessageList" ><template #default><el-table-column type="index" label="序号" align="center" width="90" /><el-table-column prop="recieveUserName" label="接收人姓名" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="recieveUserPhone" label="接收人电话" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="content" label="内容" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="createTime" label="提交时间" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="sendTime" label="发送时间" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="recieveTime" label="送达时间" align="center" min-width="90" show-overflow-tooltip /><el-table-column prop="recieveStatusVal" label="送达状态" align="center" min-width="90" show-overflow-tooltip /></template></table-page>
</template>
<script setup>import TablePage from 'tablepage-vue3'import { getMessageList } from '@/api/message' // 接口const searchConfig = [{label: '时间',type: 'times'},{label: '电话',type:'input',key: 'phone'}]
</script>

在这里插入图片描述

属性:changeToSearch(表单change事件是否触发搜索 )


此属性为true时,当搜索项被触发change事件时,将会立即执行搜索逻辑,无需用户手动点击搜索按钮

<template><table-page changeToSearch :searchConfig="searchConfig" :tableApi="getMessageList" ><template #default>...// 与前文一致,省略处理...</template></table-page>
</template>
<script setup>import TablePage from 'tablepage-vue3'import { getMessageList } from '@/api/message' // 接口const searchConfig = [{label

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

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

相关文章

lv_micropython for ESP32-C3

一、开发平台说明 硬件&#xff1a;立创实战派ESP32-C3开发板。处理器ESP32-C3&#xff08;内置400KB SRAM&#xff09;&#xff0c;无内置FLASH&#xff0c;2.0寸液晶&#xff08;液晶驱动IC:ST7789&#xff0c;触屏驱动IC:FT6336&#xff09;&#xff0c;下载口UART0。 ESP…

AUTOSAR-COMStack-002_Update-Bit 机制

最近在工作中第一次使用了AUTOSAR COM Update-Bit功能&#xff0c;对使用了Update-Bit功能信号的使用&#xff0c;不能得心应手&#xff0c;发送信号比较顺利&#xff1b;测试接收信号功能时&#xff0c;对应的RTE接口始终不能接收到对应的模拟发送的信号值&#xff0c;后来翻阅…

掌握现代 C++:Lambda 在 C++14、C++17 和 C++20 中的演变

深入研究Lambda 在 C14、C17 和 C20 中的演变 一、背景二、C14 中的 Lambda2.1、默认参数2.2、模板参数2.3、广义捕获2.4、从函数返回 lambda 三、C17 中的 Lambda四、C20 中的 Lambda总结 一、背景 Lambda 是现代 C 最受欢迎的功能之一。自从在 C 11 中引入以来&#xff0c;它…

MySQL 嵌套查询

嵌套查询 是指在一个完整的查询语句之中&#xff0c;包含若干个不同功能的小查询&#xff1b;从而一起完成复杂查询的一种编写形式。包含的查询放在&#xff08;&#xff09;里 &#xff0c; 包含的查询出现的位置&#xff1a; 位置含义SELECT之后把查询结果作为表头使用FROM…

聊一下HashMap的底层原理

HashMap作为我们熟悉的一种集合&#xff0c;今天就来聊一下它的原理、数据结构。 1.HashMap的数据结构 JDK1.7的数据结构是数组链表&#xff0c;JDK1.7还有人在用&#xff1f;不会吧…… 说一下JDK1.8的数据结构吧&#xff1a; JDK1.8的数据结构是数组链表红黑树。 数据结…

Android 14.0 SystemUI修改状态栏电池图标样式为横屏显示

1.概述 在14.0的系统rom产品定制化开发中,对于原生系统中SystemUId 状态栏的电池图标是竖着显示的,一般手机的电池图标都是横屏显示的 可以觉得样式挺不错的,所以由于产品开发要求电池图标横着显示和手机的样式一样,所以就得重新更换SystemUI状态栏的电池样式了 如图: 2.S…

Boost之date_time

Boost.Date_Time库是一个功能丰富的时间日期处理库&#xff0c;它提供了多种用于日期和时间计算、格式化、转换和输入输出的功能。以下是该库的一些详细介绍&#xff1a; 1、日期处理&#xff1a; Boost.Date_Time库中的date类基于格里高利历&#xff08;Gregorian calendar&…

MySQL基础知识——MySQL日志

一条查询语句的执行过程一般是经过连接器、 分析器、 优化器、 执行器等功能模块&#xff0c; 最后到达存储引擎。 那么&#xff0c; 一条更新语句的执行流程又是怎样的呢&#xff1f; 下面我们从一个表的一条更新语句进行具体介绍&#xff1a; 假设这个表有一个主键ID和一个…

在视频号变现,你还停留在只能自己直播的时代吗?现在新玩法来了

大家好&#xff0c;我是电商笨笨熊 在很多人的固有印象里&#xff0c;视频号当下变现的方式还只有自己开直播带货或者是短视频带货&#xff1b;这种方式虽然变现快&#xff0c;但是对于更多的普通玩家来说相对困难&#xff0c;需要直播经验&#xff0c;自身还要具备足够的粉丝…

ML在骨科手术术前、书中、术后方法应用综述【含数据集】

达芬奇V手术机器人 近年来,人工智能(AI)彻底改变了人们的生活。人工智能早就在外科领域取得了突破性进展。然而,人工智能在骨科中的应用研究尚处于探索阶段。 本文综述了近年来深度学习和机器学习应用于骨科图像检测的最新成果,描述了其贡献、优势和不足。以及未来每项研究…

CTFshow电子取证——内存取证2

接上回 JiaJia-CP-2 2.佳佳在网页上登录了自己的邮箱&#xff0c;请问佳佳的邮箱是&#xff1f; 因为是在网页上登陆的邮箱 用iehistory插件 查看一下网页历史记录 为了方便分析&#xff0c;使用grep命令正则匹配一下 **com 的记录 vol.py -f JiaJia_Co.raw --profileWin…

Git以及Gitlab的快速使用文档

优质博文&#xff1a;IT-BLOG-CN 安装git 【1】Windows为例&#xff0c;去百度下载安装包。或者去官网下载。安装过秳返里略过&#xff0c;一直下一步即可。丌要忉记设置环境发量。 【2】打开cmd&#xff0c;输入git –version正确输出版本后则git安装成功。 配置ssh Git和s…