赞
踩
为偷懒而开发:
uni-table
uni-pagination
mosowe-form
mosowe-dropdown
属性 | 类型 | 默认 | 说明 |
---|---|---|---|
column | columnItem[] | - | 列配置,排列顺序即为表格顺序 |
localData | array | 本地数据列表,与requestMethod不能同时为空,优先级最高 | |
requestMethod | function | 数据获取的方法,接受一个promise返回的方法,其then方法的回调参数res={code,data,msg} 格式,data包含了dataListKey ,dataTotalKey ,若不满足可以使用initBefore 处理 | |
autoRequest | boolean | true | 是否自动请求数据,即页面加载完就请求 |
rowOperation | rowOperation[] | 表格行末尾的操作选项列表,即操作列 | |
rowOperationWidth | string | 100 | 操作列宽度 |
tableProps | object | 表格uni-table的props配置,loading属性无效,已被组件内部处理了,如需请使用ref调用 | |
title | string | 左上角表格名称 | |
initBefore | function | 表格通过requestMethod 获取数据后渲染页面前数据处理,参数为接口返回数据res,return值为{list,total} 结构,list、total为固定字段 | |
dataListKey | string | list | requestMethod时数据列表的键名 |
dataTotalKey | string | total | requestMethod时数据总数的键名 |
toolbar | boolean/toolbarString | true | 表格常用工具展示,默认true展示全部,false不展示,值为toolbarString 时展示相关按钮,多个英文逗号分隔 |
pagination | boolean/paginationConfig | true | 分页器配置,默认true显示,组件默认配置为{current:1,pageSize:10},false不展示,翻页功能添加了节流处理,点击翻页300ms后请求数据 |
defaultOpenSearch | boolean/number | false | 是否默认展开搜索区,或者默认展开多少项,配置为number的时候,默认显示‘收起’按钮,点击收起的时候,只展示一行 |
autoHeight | boolean | false | 不限制高度,自动增加 |
maxHeight | string | - | 最大高度,低于最大高度的时候,高度自适应,优先级高于autoHeight |
showIndex | boolean | false | 显示序号 |
exportSelectConfig | exportSelectConfigObject | 导出已选配置 | |
radio | boolean | false | tableProps.type === 'selection' 时单选,单选时只能在当前页选中,跨页清空 |
属性 | 类型 | 可选 | 说明 |
---|---|---|---|
text | string | 列表头名称 | |
value | string | 列单元格键名 | |
width | string | 单元格宽度 | |
fixed | string | left/right | 固定位置,多选和序号固定在左侧,只针对一级表头,该项设置时列宽度默认100px |
hideInTable | boolean | 在表格中不显示,仅一级表头生效 | |
mustShow | boolean | 该列在表中必须展示,不能被用户隐藏,仅一级表头生效 | |
align | string | left/center/right | 表头对齐方式 |
filter-type | string | search/select/range/date | 筛选类型,仅一级表头生效,search关键字搜索,select类别选择 |
filter-data | array | 筛选数据,仅一级表头生效 | |
sortable | boolean | 是否启用排序,仅一级表头生效 | |
searchOrder | number | 在搜索区的排列权重,越大越靠前 | |
search | boolean/searchConfig | 是否可搜索,默认false,为true会根据是否包含enum字段选择显示input还是select | |
enum | enumItem[] | 枚举数组,若列表数据字段为enum的value,则会自动替换展示enum的text | |
children | columnItem[] | 子表头 |
属性 | 类型 | 可选 | 说明 |
---|---|---|---|
text | string | 按钮文案 | |
click | function | 按钮点击事件,回调参数为行数据 | |
isShow | boolean | 是否显示,用于权限配置 | |
type | string | text/button | 按钮类型 |
config | object | type=button的props配置,或type=text时文字颜色等样式设置 |
属性 | 类型 | 默认 | 说明 |
---|---|---|---|
border | boolean | false | 是否带有纵向边框 |
stripe | boolean | true | 是否显示斑马线样式 |
type | string | 值为type=“selection” 时开启多选 | |
emptyText | string | 没有更多数据 | 空数据时显示的文本内容 |
值 | 说明 |
---|---|
export | 导出按钮,默认文案:导出 |
exportChoose | 导出已选按钮,默认文案:导出已选,组件内置导出功能,导出原始表格列表数据,与右上角列显隐无关,多级表头只导出子集表头,有配置enum的会转文案后输出 |
add | 新增按钮,默认文案:新增 |
download | 下载模板按钮,默认文案:下载模板 |
upload | 导入按钮,默认文案:导入数据 |
delete | 删除按钮,表格可选择时生效,默认文案:删除已选 |
column | 列布局展示按钮 |
refresh | 刷新按钮 |
属性 | 类型 | 默认 | 说明 |
---|---|---|---|
prevText | string | 上一页 | 左侧按钮文字 |
nextText | string | 下一页 | 右侧按钮文字 |
pageSize | number | 10 | 每页数据量 |
showIcon | boolean | false | 是否以icon形式展示按钮,即‘上一页’‘下一页’变为图标形式 |
参考mosowe-form
的nameConfig配置,其中col,hide,visible配置无效
属性 | 类型 | 说明 |
---|---|---|
text | string | 文案 |
value | string|number | 值 |
属性 | 类型 | 说明 |
---|---|---|
type | string | 导出类型,支持:xls,html,csv,默认xls |
filename | string | 导出文件名称,优先级 > title,都没有就默认时间戳 |
事件 | 说明 |
---|---|
onSearchChange | 搜索区表单项值改变时,回调参数为name及值 |
onExport | 导出按钮点击事件,回调参数为查询参数,导出功能的传参需要搜索区点击查询后方能生效 |
onAdd | 新增按钮点击事件 |
onDownload | 下载按钮点击事件,回调参数为查询参数 |
onUpload | 导入数据按钮点击事件 |
onDelete | 删除已选按钮点击事件,回调参数为表格已选数据列表 |
onSelectionChange | 多选时选项改变事件,回调参数为已选数据列表 |
onSortChange | th点击排序,回调参数obj |
onFilterChange | th点击筛选,回调参数obj |
slot | 说明 |
---|---|
search | 搜索区插槽 |
toolbar | 工具栏区插槽,作用域参数为{selectData,searchQuery} |
toolbarLeft | 工具栏左侧区插槽,作用域参数为{selectData,searchQuery},包含了title,export,add,download,delete按钮 |
toolbarRight | 工具栏右侧区插槽,作用域参数为{selectData,searchQuery},包含了column,refresh按钮 |
rowOperation | 表格行操作栏插槽,作用域参数为{index,rowData} |
more | 工具栏上方,搜索区下方插槽 |
under | 分页下方底部区插槽 |
paginationLeft | 分页区左侧插槽 |
[columnItem.value ]Header | 表格头部插槽,一级表头有效,作用域参数为{index,colnum} |
[columnItem.value ]Default | 表格单元插槽,一级表头有效,作用域参数为{index,rowData,colnum} |
<template> <mosowe-table :column="column" :requestMethod="requestMethod" dataListKey="content" dataTotalKey="totalCount" rowOperationWidth="100" showIndex :tableProps="{ type: 'selection' }" :rowOperation="rowOperation" @onAdd="onAdd" @onDelete="onDelete" @onSelectionChange="selectionChange" @onSortChange="onSortChange" @onSearchChange="onSearchChange" ></mosowe-table> </template> <script setup lang="ts"> import { ref } from 'vue'; const app = getApp().globalData; app?.checkLogin(); const requestMethod = (query: any) => { return new Promise((resolve) => { console.log('query', query); setTimeout(() => { resolve({ code: 0, data: { content: Array.from({ length: query.pageSize }).map((_, index) => { return { name: '测试' + Date.now().toString().substring(9) + '-' + index, name2: '测试2', sex: index % 3, age: 20, date: Date.now() }; }), totalCount: 100 }, msg: '' }); }, 1000); }); }; const initBefore = (data: any) => { return { list: data.data.list.map((item: any) => ({ ...item, name: '我改了' })), total: data.data.total }; }; const onSortChange = (obj: any) =>{ console.log('onSortChange',obj) } const selectionChange = (data: any) => { console.log('selectionChange',data) } const localData = Array.from({ length: 50 }).map((_, index) => { return { name: '测试', name2: '测试2', sex: index % 3, age: 20, date: Date.now() }; }); const rowOperation = [ { text: '编辑', type: 'text', isShow: true, config: { color: '#409eff' }, click: (row: any) => { console.log('编辑', row); } }, { text: '删除', type: 'text', isShow: true, config: { sizi: 'mini', type: 'primary', style: { height: '20px', lineHeight: '20px', fontSize: '12px' } }, click: (row: any) => { console.log('删除', row); } } ]; const onSearchChange = (name: any,value: any) => { console.log(name,value) if (name ==='name') { column.value[2].enum = [ { text: '男', value: 0 }, { text: '女', value: 1 } ] } } const column = ref([ { text: '姓名', value: 'name', fixed: 'right', sortable: true, search: { type:'input', unionName: 'date=2023-02-01' } }, { text: '姓名2', value: 'name2', width:'150', fixed: 'right' }, { text: '性别', value: 'sex', width: '300', search: true, enum: [ { text: '男', value: 0 }, { text: '女', value: 1 }, { text: '未知', value: 2 } ] }, { text: '年龄', value: 'age', search: true, }, { text: '创建时间', value: 'date', searchOrder:12, search: { type: 'date', defaultValue: '2021-02-1', transform:(value: any)=>{ return { time: value } } } } ]); const onAdd = () => { console.log('onAdd'); }; const onDelete = (data: any) => { console.log('onDelete', data); }; </script> <style lang="scss" scoped></style>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。