VUE 实现element 的 el-table 的自定义表格需求(双列内容不同)

最近项目有个需求针对到el-table这个组件。自己也是第一次这样来使用,特写下这两篇文章,算是当做记录吧!如果是从第一次使用elementUI的话,可以移步另一篇文章作为参考~

产品需求样式

在这里插入图片描述

效果图

在这里插入图片描述

技术点

  • 既想用elementUI的table样式和功能,简单的<tr><th><td>是不能满足的
  • 在使用element-ui的el-table组件时,最普遍的做法就是使用el-table-column;其中columns对应el-table-column Attributes,props对应el-table Attributes,el-table原有事件照原先用法使用即可;
  • 在需要用到Scoped slot时,需要创建el-table-column,并在其中加入template标签(用法://)
  • 插槽使用具名插槽和作用域插槽slot=“header”和slot-scope=“scope”

源码

<div class="main_top">
            <img src="@/assets/big/Basic_Info.png" alt />
            基本信息
        </div>
        <el-table :data="tableData"  border style="width: 100%; margin-top: 20px"
            :header-cell-style="{'background':'rgba(0,0,0,0)','font-weight':'500'}" >
            <el-table-column prop="name" label="优惠券品类" width="240" ></el-table-column>
            <el-table-column>
                <template slot="header" slot-scope="scope">
                    <span>TEST</span>
                </template>
                <template slot-scope="scope">
                    <span>{{scope.row.value}}</span>
                </template>
            </el-table-column>
            <el-table-column prop="names" label="优惠券名称" width="240"></el-table-column>
            <el-table-column>
                <template slot="header" slot-scope="scope">
                    <span >TEST</span>
                </template>
                <template slot-scope="scope">
                    <span>{{scope.row.values}}</span>
                </template>
            </el-table-column>
        </el-table>
mounted() {
            this.tableDatas = [];
            this.tableData = [];
             this.tableData.push({
                    name: "优惠券类型",
                    value:'TEST',  //注意值为value
                    names: "优惠券说明",
                    values:'TEST',  //注意值为values
                }, {
                    name: "优惠内容",
                    value:'TEST',
                    names: "授权用户",
                    values:'TEST',
                },
                 {
                    name: "可用时间",
                    value:'TEST',
                }
                );
}

注意点

  • 两列数据值为value和values,否则会出现两列四行渲染的效果
  • 取消首行样式可参考:header-cell-style="{'background':'rgba(0,0,0,0)','font-weight':'500'}"或者:header-cell-style="{'background':'rgba(0,0,0,0)'}"
  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现表格数据更改功能,您需要使用以下步骤: 1. 在您的Vue组件引入Element Plus表格组件。 ``` <template> <el-table :data="tableData" style="width: 100%"> <el-table-column prop="name" label="Name"></el-table-column> <el-table-column prop="age" label="Age"></el-table-column> <el-table-column prop="gender" label="Gender"></el-table-column> <el-table-column label="Action" width="180"> <template #default="{ row }"> <el-button @click="handleEdit(row)">Edit</el-button> <el-button type="danger" @click="handleDelete(row)">Delete</el-button> </template> </el-table-column> </el-table> </template> <script> import { reactive } from 'vue'; export default { setup() { const tableData = reactive([ { name: 'John', age: 25, gender: 'Male' }, { name: 'Mary', age: 30, gender: 'Female' }, { name: 'Harry', age: 40, gender: 'Male' }, ]); const handleEdit = (row) => { console.log(row); // Handle edit functionality here }; const handleDelete = (row) => { console.log(row); // Handle delete functionality here }; return { tableData, handleEdit, handleDelete, }; }, }; </script> ``` 2. 在表格添加一个“Action”列,用于触发编辑和删除操作。在“Action”列,您可以使用Vue插槽来渲染自定义组件。 3. 在您的Vue组件实现“handleEdit”和“handleDelete”方法。当用户点击编辑或删除按钮时,这些方法将被触发。 4. 在“handleEdit”方法,您可以获取当前行的数据,并将其传递给编辑组件以显示当前数据。在编辑组件,您可以使用Vue双向绑定来更新表格数据。 5. 在“handleDelete”方法,您可以获取当前行的数据并将其从表格数据删除。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值