You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.0 KiB

# 二次封装的element-ui组件
这些组件位于 `@/component/abstract` 下,均为函数式组件,无特殊声明时与原始的 `element-ui` 组件没有区别。
## Dialog
位于 `@/component/abstract/Dialog/index.vue`
可拖拽,超出滚动(使用 `el-scrollbar`),使用 `value`(支持 `v-model`) 代替 `visible`,新增了 `loading` 属性。
## Form
位于 `@/component/abstract/Form`
`el-form``el-form-item` 做了默认封装(`index.vue` 和 `item.vue`),使用 `el-row``el-col` 包裹。
用法:
```vue
<abstract-form :model="model" :rules="rules">
<abstract-form-item label="xxx" prop="xxx">
<el-input/>
</abstract-form-item>
</abstract-form>
```
`abstract-form` 的其他用法与 `el-form` 没有区别,`abstract-form-item` 参数如下:
| 名称 | 说明 | 类型 | 默认值 |
|:-----:|:--------------------------------------:|:-------:|:------:|
| full | 为 `true` 时,将占满一行 | Boolean | - |
| thin | 为 `true` 时,屏幕宽度>=1200px下占12列 | Boolean | - |
| label | 等同于 `el-form-item``label` | String | - |
| prop | 等同于 `el-form-item``prop` | String | - |
::: tip 注意
`abstract-form-item``full``true` 时,可以认为是 `el-form-item` 的子集
:::
## Pagination
位于 `@/component/abstract/Pagination/index.vue`
设置了一些默认属性,与 `el-pagination` 的区别是增加了 `model` 属性,
`model` 是一个 `{total, page, pageSize}` 对象,对应 `el-pagination``total`、`current-page`、`page-size` 属性
## Table
位于 `@/component/abstract/Table/index.vue`
`<el-table>` 设置了一些默认属性,设置了 `empty` 插槽(位于 `@/component/Empty`)。
```html
<el-table
ref="table"
current-row-key="id"
row-key="id"
highlight-current-row
{...data}
>
{children}
<Empty slot="empty"/>
</el-table>
```