📦 基于 element-ui 库的二次封装,该组件库主要针对现有列表页的 table 表格及 form 表单中的 rules 校验等场景,旨在减少重复的操作,让开发变得更简单。
UniquewayElementTableList - 可配置的 Table
UniquewayElementScrollAffix - 固钉
UniquewayElementPreviewUploadSingle - 单张图片上传
UniquewayElementPreviewUploadMultiple - 多张个图片上传
<template>
<UniquewayElementTableList
title="产品列表"
:paginationFilter="filterFormParams"
:source="sourceList"
:config="config"
@getList="getList"
>
</UniquewayElementTableList>
</template>
<script>
import XxxComponent from '@/components/XxxComponent'
export default {
components: {
XxxComponent,
}
computed: {
...mapGetters({
sourceList: 'Xxxmodule/sourceList',
})
},
methods: {
setForbidden () {},
setUnForbidden () {},
async getList (query = this.filterFormParams) {
const res = await this.$store.dispatch(ProductLib.getAction('GetProductsList'), query)
return res
},
}
data () {
return {
loading: false,
filterFormParams: {
type: '',
},
config: [
{
attrs: {
label: '编号',
prop: 'id',
width: '90'
}
},
{
attrs: {
label: '产品信息',
width: '350'
},
renderComponent (data) {
return [
{ name: 'XxxComponent', data }
]
}
},
{
attrs: {
label: '最后更新人',
width: '100',
prop: 'lastModifierBy'
}
},
{
attrs: {
label: '更新时间',
prop: 'updatedAt'
}
},
{
attrs: {
label: '操作',
width: '260'
},
renderHTML (row) {
return [
{
attrs: {
label: '编辑',
type: 'text',
size: 'medium'
},
el: 'button',
click (row) {
this.$router.push(`/product_lib/products/${row.id}/edit/`)
}
},
!row.isForbid ? {
attrs: {
label: '禁用',
type: 'text',
size: 'medium'
},
el: 'button',
click () {
this.setForbidden(row.id)
}
} : {
attrs: {
label: '解除禁用',
type: 'text',
size: 'medium',
style: {
color: '#e6a23c'
}
},
el: 'button',
click () {
this.setUnForbidden(row.id)
}
}
]
}
}
]
}
}
}
</script>
<template>
<UniquewayElementScrollAffix>
<div class="demo"></div>
</UniquewayElementScrollAffix>
</template>
<style lang="scss" scoped>
.demo {
position: absolute;
width: 150px;
height: 300px;
border: 1px solid red;
}
</style>