自定义element中的table表格动态获取表头

element表格默认只需要传递进去数据,然后写死表头即可渲染数据。在本次业务开发过程中表格需求较多,表头数据不是固定的,最终解决为把table表格封装,页面中引入同一个table即可,而table通过父组件传递数据来动态渲染。

亲测可用,若有疑问请私信

  • 子组件

  <template>
    <el-table
            :data="listData"
            style="width: 100%"
            :cell-style="cellStyle"
            :header-row-class-name="headerClass"
            fit>
        <el-table-column
                v-for="(item, index) in listLabel"
                :key="index"
                :prop="item.prop"
                :label="item.label">
        </el-table-column>
    </el-table>

</template>

<script>
    export default {

        props: {
            listData: {
                type: Array,
                default: []
            },
            listLabel: {
                type: Array,
                default: () => {
                    return []
                }
            }
        },
        name: "san-table",

        methods: {
            // 表格头部样式
            headerClass() {
                return 'table-header-class'
            },

            // element列表文字居中
            cellStyle () {
                return 'text-align:center;line-height: 8px;'
            },
        }
    }
</script>
  • 父组件引用


<dj-sanTable :listData="tableData" :listLabel="listLabel"></dj-sanTable>
// 局部引用
import djSanTable from '/components/dj-sanTable'

components: {
    djSanTable
},

export default {
        data() {
            return {
                // 表头数据(随意写的数据)
                listLabel: [
                    {label: '车牌号', prop: 'carEntrustId'},
                    {label: '名称', prop: 'name'},
                    {label: '值', width: '', prop: 'carRewardId'},
                    {label: '价格', prop: 'carFundProvider'},
                    {label: '利润', prop: 'carFrameNo'},
                    {label: '大类', prop: 'carNo'},
                    {label: '小类', prop: 'acreage'},
                    {label: '有价格', prop: 'assetsType'},
                    {label: '极好价格', prop: 'incomePrice'},
                    {label: '优质价格', prop: 'rewardStatus'},
                    {label: '良好价格', prop: 'addTime'},
                    {label: '无价格', prop: 'addManagerName'},
                ],

                // 表格数据  (随意写的数据)
                tableData: [
                    {
                        carEntrustId: '1',
                        name: '23',
                        carRewardId: '34',
                        carFundProvider: '34',
                        carFrameNo: '354',
                        carNo: '534',
                        acreage: '93450',
                        assetsType: '44344',
                        incomePrice: '34',
                        rewardStatus: '23',
                        addTime: '23',
                        addManagerName: '23',
                    },
                    {
                        carEntrustId: '2',
                        name: '343',
                        carRewardId: '78',
                        carFundProvider: '34',
                        carFrameNo: '78',
                        carNo: '78',
                        acreage: '756',
                        assetsType: '354',
                        incomePrice: '34534',
                        rewardStatus: '23',
                        addTime: '23',
                        addManagerName: '23',
                    }
                ]
            }
        },
}

最后还需要提醒大家一点,本篇文章中的例子仅供参考学习,切误将本篇文章中的代码直接使用在正式项目当中。希望以上代码对大家有所帮助。



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值