0.0.1 • Published 4 years ago
el-search-form v0.0.1
el-search-form
这是一个基于element-ui的自适应表单容器,能够根据父级容器的宽度确定每行表单控件的数量。
其使用window.ResizeObserver来监听容器大小变化,如果有兼容需求,那么需要自行引入resize-observer-polyfill。
安装
npm i el-search-form -S该包使用的是es6语法,如果想转成es5,需要自行转换(比如vue-cli可以用transpileDependencies: ['el-search-form'])
el-search-form会直接使用element-ui的el-form、el-row、el-col、el-button,需要确保这四个组件均已全局注册,并且记得引入element-ui的图标字体。
使用
记得在引入element-ui的样式后,引入el-search-form的样式:
// 需要有scss预处理器
import 'el-search-form/src/style.scss'
// 纯css
// import 'el-search-form/src/style.css'在el-search-form内直接书写el-form-item即可,不需要考虑label-width属性
<template>
<el-search-form label-position="left" @search="onSearch" @reset="onReset">
<el-form-item label="v1">
<el-input v-model="searchForm.v1"></el-input>
</el-form-item>
<el-form-item label="v2">
<el-input v-model="searchForm.v2"></el-input>
</el-form-item>
<el-form-item label="v3">
<el-input v-model="searchForm.v3"></el-input>
</el-form-item>
<el-form-item label="v4">
<el-select v-model="searchForm.v4">
<el-option v-for="i in 4" :key="i" :label="i" :value="i"></el-option>
</el-select>
</el-form-item>
<el-form-item label="v5">
<el-date-picker v-model="searchForm.v5" type="date" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
<el-form-item label="v6">
<el-date-picker v-model="searchForm.v6" type="daterange" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-search-form>
</template>export default {
data() {
return {
searchForm: {
v1: null,
v2: null,
v3: null,
v4: null,
v5: null
}
}
},
methods: {
onSearch() {
alert('查询')
},
onReset() {
alert('重置')
}
}
}注意!为了实现自适应功能,el-search-form内的每个表单控件宽度必须相同,比如常见的开始时间、结束时间必须拆成两个控件(或者用范围选择器),不然控件超宽会导致样式出错
API说明
Attributes
| 名称 | 说明 | 类型 | 默认 |
|---|---|---|---|
| defaultExpand | 是否默认展开 | boolean | false |
| size | 等同于el-form的size | string | - |
| labelPosition | 等同于el-form的labelPosition,不支持top | string | 'right' |
| labelSuffix | 等同于el-form的labelSuffix | string | ':' |
| size | 等同于el-form的size | string | - |
| gutter | 等同于el-row的gutter | number | 20 |
| xs | 父级宽度<768px时,每行能有多少个控件(包含操作按钮组),需要是24的因数 | number | 1 |
| sm | 父级宽度>=768px | number | 2 |
| md | 父级宽度>=998px | number | 3 |
| lg | 父级宽度>=1200px | number | 4 |
Events
| 事件名称 | 说明 | 回调参数 |
|---|---|---|
| search | 点击查询按钮触发 | - |
| reset | 点击重置按钮触发 | - |
0.0.1
4 years ago