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

10 篇文章 0 订阅
9 篇文章 0 订阅

github求⭐

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

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

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

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

引入

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{}

插槽

插槽名说明
buttonModule按钮
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-
  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_默_

别打赏了,点点赞,点点关注就行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值