elsa
⚡ elsa(eleme simple admin)基于 element-ui 封装 el-form,el-table 等组件,适用于快速开发后台管理项目。
Quickstart
// vue main.js
import Vue from 'vue'
import Element from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import Elsa from 'base-elsa-vue'
Vue.use(Element)
Vue.use(Elsa)
Feature
- else-card
- else-table
- 可配置列表列
- 支持分页控件
- 支持树形数据展示及懒加载
- elsa-form
- 支持的表单组件
- el-input
- el-radio
- el-checkbox
- el-select
- el-upload
- el-xxx-picker
- 自定义布局
- 表单校验和重置
- 嵌套对象 nest 的解析
- 表单整体 disabled 设置
- 表单项的提示 tip 信息
- 表单项:动态/联动
- 禁用/可用
- 显示/隐藏
- 动态修改多选项 options
todo
elsa-table
用法:
- 获取 Array 类型的数据源 dataSource
- 根据 dataSource 中的对象属性,配置显示的列 columns 信息
- 设置分页参数 pagination
<elsa-table border :columns="columns" :dataSource="dataSource" :pagination="pagination" />
export default {
data() {
return {
dataSource: [
{ name: 'eminoda', age: 30 },
{ name: 'foo', age: 40 },
{ name: 'bar', age: 50 },
],
columns: [
{ label: '序号', align: 'center', type: 'index', width: '50' },
{ label: '姓名', align: 'center', prop: 'name', width: '100' },
{ label: '年龄', align: 'center', prop: 'age', width: '100' },
],
pagination: {
pageSize: 10,
currentPage: 1,
total: 0,
currentChange: (currentPage) => {},
sizeChange: (pageSize) => {},
},
}
},
}
ElsaTable Attributes
参数 |
说明 |
类型 |
可选值 |
默认值 |
columns |
列信息 |
Array |
|
|
dataSource |
数据源 |
Array |
|
|
pagination |
分页信息 |
Object |
|
|
...elProps |
el-table 属性 |
|
|
|
ElsaTable.columns
参数 |
说明 |
类型 |
可选值 |
默认值 |
type |
selection 添加选择框列 index 添加序号列 expand 展示更多内容 |
String |
selection/index/expand |
|
label |
标题 |
String |
|
|
prop |
解析字段 |
String |
|
|
width |
对应列的宽度 |
String |
|
|
fixed |
列是否固定在左侧或者右侧,true 表示固定在左侧 |
String/Boolean |
true, left, right |
|
formatter |
数据格式化 |
Function(row, column, cellValue) |
|
|
show-overflow-tooltip |
当内容过长被隐藏时显示 tooltip |
Boolean |
|
|
更多详见:el-table column
ElsaTable.elProps
参数 |
说明 |
类型 |
可选值 |
默认值 |
data |
以 dataSource 代替 |
|
|
|
border |
是否带有纵向边框 |
Boolean |
|
false |
size |
尺寸 |
String |
medium / small / mini |
|
fit |
列的宽度是否自撑开 |
Boolean |
|
true |
更多详见:el-table attributes
ElsaTable Events
参数 |
说明 |
类型 |
可选值 |
默认值 |
selection-change |
当选择项发生变化时会触发该事件 |
Function(selections) |
|
|
更多详见:el-table events
😬 注:部分 Events 根据现在文件结构实现较困难(比如:排序,过滤,合并表单...),可把 config 文件内容定义在 data 中来实现(而非 import 方式)
elsa-form
用法:
- 定义表单数据模型 model
- 配置表单项 field ,定义布局(可选)
<elsa-form :config="fields" :model="model" labelWidth="auto" label-suffix=":">
<el-row type="flex" justify="center">
<el-button @click="submit" type="primary">提交</el-button>
<el-button @click="reset" type="warning" style="margin-left:10px;">重置</el-button>
</el-row>
</elsa-form>
export default {
data() {
return {
fields: {
name: {
label: '用户名',
elTag: 'el-input',
elAttrs: {
placeholder: '请输入用户名',
},
customRender: 'nameCheck',
rules: [{ required: true, message: '用户名不能为空', trigger: 'change' }],
},
password: {
label: '密码',
elTag: 'el-input',
elAttrs: {
type: 'password',
showPassword: true,
},
rules: [{ required: true, trigger: 'change' }],
},
},
model: {
name: '',
password: '',
},
}
},
}
ElsaForm Attributes
参数 |
说明 |
类型 |
可选值 |
默认值 |
config |
表单项配置 |
Object |
|
|
model |
表单数据模型 |
Object |
|
|
layout |
表单布局 |
Arrray |
|
|
disabled |
表单整体禁用 |
Boolean |
|
false |
...elProps |
表单项配置 |
Object |
|
|
ElsaForm.config
参数 |
说明 |
类型 |
可选值 |
默认值 |
field |
表单项字段,与 model 属性对应 |
Object |
|
|
field.label |
名称 |
String |
|
|
field.elTag |
element 表单标签 |
String |
el-input/select/radio/cascader/date-picker/time-picker/upload |
|
field.elAttrs |
表单项属性(参考 elTag 对应组件) |
Object |
|
|
field.elStyle |
表单项 style 样式 |
Object |
|
|
field.extra |
提示信息 |
String |
|
|
field.extraIcon |
提示信息 icon 图标 |
String |
|
el-icon-warning-outline |
field.rules |
表单校验规则 |
Array |
|
|
field.options |
当为 check,select 作为数据展示 |
Array |
|
|
field.visible |
联动,可根据 model[filed] 来控制 显示隐藏
|
Boolean/String/Function({model}) |
|
|
field.customRender |
展示于 elTag 右侧的模板 |
String |
|
|
field.slotRender |
elTag 内部的模板(比如:upload 中的内容) |
String |
|
|
更多详见:el-form-item methods
ElsaForm.field.elAttrs
示例一些特殊属性
参数 |
说明 |
类型 |
可选值 |
默认值 |
disabled |
禁用 |
Function({model})/ Boolean |
|
|
isRemote |
elTag 为 el-select 的延迟加载 |
Boolean |
|
|
remoteMethod |
elTag 为 el-select 的延迟加载 |
Function(done,{model}) / Boolean |
|
|
lazy |
elTag 为 el-cascader 的延迟加载 |
Boolean |
|
|
lazyLoad |
elTag 为 el-cascader 的延迟加载 |
Function(node, resolve, { done }) / Boolean |
|
|
ElsaForm.layout
参数 |
说明 |
类型 |
可选值 |
默认值 |
elTag |
element 表单标签 |
String |
el-row/col |
|
elAttrs |
表单项属性(参考 elTag 对应组件) |
Object |
|
|
children |
子项 |
Object |
|
|
field |
表单项字段 |
String |
|
|
ElsaForm.elProps
参数 |
说明 |
类型 |
可选值 |
默认值 |
label-width |
表单域标签的宽度 |
String |
|
|
label-suffix |
表单域标签的后缀 |
String |
|
|
size |
尺寸 |
String |
medium / small / mini |
|
更多详见:el-form attributes
ElsaForm Methods
参数 |
说明 |
类型 |
可选值 |
默认值 |
validate |
表单数据校验 |
Function(err,model) |
|
|
resetFields |
重置表单项 |
Function(props<Array | String>) |
|
|
clearValidate |
校验结果清空 |
Function(props<Array | String>) |
|
|
更多详见:el-form methods