1.0.3 • Published 5 years ago

cms-table v1.0.3

Weekly downloads
2
License
ISC
Repository
github
Last release
5 years ago

简介

在使用VUE开发后台类型的项目时,我们通常会选择Element-UI来搭建界面,而后台类型的项目用的最多的组件就是表格了,我们经常使用el-table来展示一组数据,但我们发现很多页面的开发都是在做重复性的工作,因此这个通用表格组件为你提供了一种通过JSON数据配置来快速开发表格的方案。

依赖

  • Vue
  • Element-UI

安装

$ npm install cms-table

效果图

效果图

使用

cms-table是基于Element-UI二次封装的通用组件,使用前请务必导入Element以及样式模板。

全局引入

import Vue from 'vue'
import Element from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import cmsTable from 'cms-table' // 导入cms-table
 
Vue.use(Element)
Vue.use(cmsTable) // 全局注册cms-table

在你的页面中使用cms-table组件

cms-table有两个属性:

属性名数据类型说明
fields数组用来定义每一列的属性
data数组表格的数据源

以下是一个简单的示例:

<template>
    <div>
        <cms-table :fields="fields" :data="list"></cms-table>
    </div>
</template>

<script>
export default {
	data () {
        return {
            fields: [
                { width: 60, type: 'selection' },
                { width: 80, type: 'index' },
                { label: '姓名', prop: 'name', filter: val => val.trim() }
            ],
            list: [
                { name: '张三', age: 16, school: '清华大学' },
                { name: '李四', age: 18, school: '北京大学' },
                { name: '王五', age: 20, school: '复旦大学' }
            ]

        }
    }
}
</script>

fields 列属性

下面列出了fields中的对象可被支持的所有属性以及说明:

属性名数据类型是否必填说明示例
width数值列宽度,不填就自适应width: 60
type字符串列类型,目前仅支持 selection(复选框)和 index(序号列)type: 'selection'
label字符串未设置type时必填列标题(表头)label: '姓名'
prop字符串未设置type时必填数据源对象的渲染字段prop: 'name'
filter函数数据过滤器,如果需要对数据做处理,请传入此函数并返回数据处理结果filter: val => val.trim()
template字符串列模板,如输入框、操作按钮等,受支持的模板请参见下表template: 'text-button'
operateCallback函数列模板操作回调函数,用户在列模板内操作会回调此函数,未设置template则不支持operateCallback: (index, event, row) => {}
maxLength数值当template为input时,定义输入框的最大字符数maxLength: 10
placeHolder数值当template为input时,定义输入框的提示文字placeHolder: '请输入'
style对象当template为image时,定义图片容器的内联样式style: { borderColor: '2px' }
target字符串当template为link时,定义链接打开的窗口类型,默认为_blanktarget: 'self'
text字符串当template为link时,定义链接的显示文本,默认显示原始链接text: '点击查看'
btns数组当template为button-group时,定义每个按钮的类型、文本等属性btns: { size: 'small', label: '保存', flag: 'save' }
customTemplate对象自定义列模板,请设置已导入到当前页面的vue组件customTemplate: MyComponent

template 列模板

下面列出了template受支持的列模板类型:

模板值模板名称事件类型展示形式
text-button文本按钮add一个蓝色的文本按钮,不支持换行
link超链接一个超链接文本,支持换行
input输入框change一个输入框,会对数据源进行v-model绑定
image缩略图tap一个图片,默认宽60像素,可自定义样式
edit-button操作按钮edit, delete一个编辑按钮和一个删除按钮
button-group按钮组自定义flag,默认为click按钮组,需要自定义各个按钮的属性

customTemplate 自定义列模板

如果以上列模板没有你需要的展示形式,可以开发自定义列模板,开发说明请等待更新......

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago