Cat-Table-Select 基于Vue+Element的表格选择器

Posted 究极死胖兽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cat-Table-Select 基于Vue+Element的表格选择器相关的知识,希望对你有一定的参考价值。

Cat-Table-Select 基于Vue+Element的表格选择器

基于 Element 的Vue 组件(Vue.js 2.x)

cat-table-select Github 地址

前言

之前自己动手做了个基于Element树选择器 cat-tree-selec ,于是就照着之前的思路又封装了个表格选择器。目前已经实现了单选,多选,分页,自定义列,可搜索等功能。

效果预览


Demo 安装

复制仓库

git clone git@github.com:scuxiatian/cat-table-select.git

安装依赖

npm install

demo预览

npm run serve

实例

单选表格

<cat-table-select 
	v-model="value" 
	:data="data" 
	:columns="columns" 
	:props="props">
</cat-table-select>
export default   
	data ()    
		return  
			value: '',
			columns: [
				 key: 'name',  label: '姓名', width: 100, 
				 key: 'address', label: '地址'  
			],
			props:  key: 'id', label: 'name' ,
			data: [
				 id: '1', name: '王小虎1', address: '上海市普陀区金沙江路 1518 弄' , 
				 id: '2', name: '王小虎2', address: '上海市普陀区金沙江路 1517 弄' ,
				 id: '3', name: '王小虎3', address: '上海市普陀区金沙江路 1519 弄' ,
				 id: '4', name: '王小虎4', address: '上海市普陀区金沙江路 1516 弄'  
			] 
		
	

可分页

<cat-table-select 
	v-model="value" 
	:data="data" 
	:columns="columns" 
	:props="props" 
	paged 
	layout="prev, pager, next" 
	:page-size="2" 
	:current-page.sync="page">
</cat-table-select>

多选表格

<cat-table-select 
	v-model="value1" 
	:data="data" 
	:columns="columns" 
	:props="props" 
	multiple>
</cat-table-select>

自定义row

<cat-table-select
	 v-model="value1"
	  :data="data" 
	  :columns="columns" 
	  :props="props"> 
	  <template v-slot:index=" index "> index + 1 </template> 
	  <template v-slot:date=" row "> showDate(row.date) </template>
</cat-table-select>

筛选row

<cat-table-select 
	v-model="value1" 
	:data="data" 
	:columns="columns" 
	:props="props" 
	:filter-method="filterRow" 
	filterable>
</cat-table-select>
filterRow (value, data)  
	const reg = new RegExp(value) 
	return data.filter(item =>     return reg.test(item.name)  )

Api 文档

TableSelect Attributes

参数说明类型可选值默认值
value / v-model绑定值boolean / string / number
multiple是否多选booleanfalse
disabled是否禁用booleanfalse
size输入框尺寸stringmedium/small/mini
clearable是否可以清空选项booleanfalse
collapse-tags多选时是否将选中值按文字的形式展示booleanfalse
nametable-select input 的 name 属性string
placeholder占位符string请选择
filterable是否可搜索booleanfalse
placement弹出框出现位置stringtop/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-endbottom
tableWidth表格宽度string400px
layout组件布局,子组件名用逗号分隔stringprev, pager, next, jumper, ->, total, slot“prev, pager, next, jumper, ->, total”
pageSize每页显示条目个数number10
currentPage当前页数,支持 .sync 修饰符number1
columns配置选项,具体看下表array
props配置选项,具体看下表object
el-table attributes参考element-ui官网 el-table attributes

Columns

参数说明类型可选值默认值
key列值对应列对象的属性名(必填)string
label列显示名对应列对象的属性名(必填)string
width列宽度number

Props

参数说明类型可选值默认值
key指定row值为row对象的某个属性值(必填)string / number
label指定row标签为row对象的某个属性值string,
disabled指定row选择框是否禁用为row对象的某个属性值boolean

TableSelect Events

事件类型说明回调参数
change选中值发生变化时触发目前的选中值
visible-change下拉框出现/隐藏时触发出现则为 true,隐藏则为 false
remove-tag多选模式下移除tag时触发移除的tag值
blur当 input 失去焦点时触发(event: Event)
el-table events参考element-ui官网 el-table events

TableSelect V-Slot

name说明
columns中配置的key自定义备选项的列内容,参数为 row, index ,分别为当前列和索引

以上是关于Cat-Table-Select 基于Vue+Element的表格选择器的主要内容,如果未能解决你的问题,请参考以下文章

vue基于el-table自定义table组件

基于Vue手写el-form el-form-item el-input 以及其搭配使用

元素的高度(基于vue)

vue基于el-timeline组件实现动态表格时间线

vue基于el-timeline组件实现动态表格时间线

基于vue实现可拖动弹框