• 前端在for循环中使用Element-plus el-select中的@click.native动态传参


    <el-table    
        ref="table" 
        :data="editTableVariables" @cell-dblclick="handleRowDblClick" style="width: 100%"  
    > 
    
        <!-- el-table-column: 表格列组件,定义每列的展示内容和属性 -->
        <el-table-column prop="name" label="名称" width="150"> 
            <!-- template标签:定义列内的自定义内容 -->
            <template #default="scope"> 
                <span>{{scope.row.name}}</span> <!-- 显示当前行的name属性值 -->
            </template> 
        </el-table-column>  
    
        <el-table-column prop="dataType" label="数据类型" width="80"> 
            <template #default="scope"> 
                <span>{{scope.row.dataType}}</span> <!-- 显示当前行的dataType属性值 -->
            </template> 
        </el-table-column> 
    
        <el-table-column prop="accessLevel" label="读写权限" width="140"> 
            <template #default="scope"> 
                <!-- el-select: 下拉选择框组件 -->
                <el-select  
                    v-model="tableSelectValue[scope.row.nodeId]"  
                    placeholder="请选择" 
                    size="small" 
                    style="width: 120px" 
                > 
                    <!-- el-option: 下拉选项组件 -->
                    <el-option 
                        v-for="(item, index) in accessLevel" 
                        :key="scope.row.nodeId" 
                        :label="item.value" 
                        :value="item.value" 
                        @click.native="changeTableSelect(item, index, scope.row.writeMask, scope.row.nodeId)" 
                    /> 
                </el-select> 
            </template> 
        </el-table-column> 
    
        <el-table-column prop="value" label="初值" width="100"> 
            <template  #default="scope">  <!-- template标签定义列内的自定义内容 -->
                <span>{{scope.row.value === null ? "<空>" : scope.row.value}}</span> <!-- 根据条件显示值或空 -->
            </template> 
        </el-table-column> 
    
        <el-table-column prop="address" label="使能" width="120"> 
            <template #default="scope"> 
                <el-input v-model="scope.row.address" @change="handleEdit(scope.$index, scope.row)"></el-input> <!-- 输入框,绑定地址属性 -->
            </template> 
        </el-table-column> 
    </el-table>
    

    代码解释:

    • : element-plus表格组件,用于展示数据。
      • ref=“table”: 为table设置引用,可以通过该引用获取table的实例。
      • :data=“editTableVariables”: 绑定表格的数据源为editTableVariables。
      • @cell-dblclick=“handleRowDblClick”: 监听表格的双击事件,触发handleRowDblClick方法。
      • style=“width: 100%”: 设置表格的宽度为100%。

    表格列解释:

    • el-table-column: 表格列组件,定义每列的展示内容和属性。
      • prop: 表示列对应数据源中的属性。
      • label: 列的标题名称。
      • width: 列的宽度。
      • template: 列内的自定义内容,使用#default="scope"来获取当前行的数据。

    组件解释:

    • el-select: element-plus下拉选择框组件,用于选择读写权限。
      • v-model=“tableSelectValue[scope.row.nodeId]”: 将下拉框的选中值与tableSelectValue对象中对应scope.row.nodeId属性进行双向绑定。
      • placeholder=“请选择”: 设置未选中时的提示文字。
      • size=“small”: 设置下拉框的尺寸为小号。
      • :key=“scope.row.nodeId”: 为循环中的每个选项设置唯一标识符。

    方法介绍:

    • handleEdit(index, row): 处理编辑操作的方法,传入索引和行数据。
    • changeTableSelect(item, index, writeMask, nodeId): 处理下拉选择框选中事件的方法,传入选项、索引、写权限和节点ID。

    以上就是文章全部内容了,如果喜欢这篇文章的话,还希望三连支持一下,感谢!

  • 相关阅读:
    使用一维数组模拟栈数据结构
    es6的新东西
    2024年华为OD机试真题- 手机App防沉迷系统-(C++)-OD统一考试(C卷D卷)
    php://filter协议在任意文件读取漏洞(附例题)
    java计算机毕业设计的流浪动物救助平台的设计与实现源程序+mysql+系统+lw文档+远程调试
    alginate-Ferrocene|海藻酸钠-二茂铁|二茂铁修饰改性海藻酸钠|海藻酸钠-peg-二茂铁
    Springboot Vue个人简历网站系统java项目源码
    vue3点击表格某个单元格文本就切换成输入框,其他单元格不变化
    logstash输出到es模式action实践
    最短路-蓝桥杯
  • 原文地址:https://blog.csdn.net/weixin_43891869/article/details/140116739