首页 > 其他分享 >Vue3+Element plus 实现表格可编辑

Vue3+Element plus 实现表格可编辑

时间:2023-11-15 09:34:46浏览次数:30  
标签:const 05 address value Element plus Vue3 id row


<template> <div> <el-button type="primary" @click="handleAdd"> 新增 </el-button> </div> <div> <el-table :data="tableData" style="width: 100%" border @cell-click="showUnitInput" > <el-table-column prop="date" label="Date"></el-table-column> <el-table-column prop="name" label="Name"> <template #default="{ row, column }"> <el-input v-if=" tableRowEditId === row.id &&tableColumnEditIndex === column.id" @blur="blurValueInput(row, column)" @keyup.enter="blurValueInput(row, column)" v-model="row.name" /> <span v-else>{{ row.name }}</span> </template> </el-table-column> <el-table-column prop="address" label="Address"> <template #default="{ row, column }"> <el-input v-if=" tableRowEditId === row.id &&tableColumnEditIndex === column.id" @blur="blurValueInput(row, column)" @keyup.enter="blurValueInput(row, column)" v-model="row.address" /> <span v-else>{{ row.address }}</span> </template> </el-table-column> <el-table-column prop="value" label="Value"> <template #default="{ row, column }"> <el-input v-if=" tableRowEditId === row.id &&tableColumnEditIndex === column.id " @blur="blurValueInput(row, column)" @keyup.enter="blurValueInput(row, column)" v-model="row.value" /> <span v-else>{{ row.value }}</span> </template> </el-table-column> <el-table-column label="Operate"> <template #default="{ row }"> <el-button type="danger" link @click="handleDelete(row)">Delete</el-button> </template> </el-table-column> </el-table> </div> </template> <script setup> import { ref } from 'vue' let tableRowEditId = ref(null) // 控制可编辑的每一行 let tableColumnEditIndex = ref(null) //控制可编辑的每一列 const showUnitInput = (row, column) => { //赋值给定义的变量 tableRowEditId.value = row.id //确定点击的单元格在哪行 如果数据中有ID可以用ID判断,没有可以使用其他值判断,只要能确定是哪一行即可 tableColumnEditIndex.value = column.id //确定点击的单元格在哪列 } const blurValueInput = (row, column) => { // tableRowEditId.value = null // tableColumnEditIndex.value = null //在此处调接口传数据 } const tableData = ref([ { id:1, date: '2016-05-03', name: 'Tom', address: 'No. 189, Grove St, Los Angeles', value: '1' }, { id:2, date: '2016-05-02', name: 'Tom', address: 'No. 189, Grove St, Los Angeles', value: '2' }, { id:3, date: '2016-05-04', name: 'Tom', address: 'No. 189, Grove St, Los Angeles', value: '3' }, { id:4, date: '2016-05-01', name: 'Tom', address: 'No. 189, Grove St, Los Angeles', value: '4' } ]) const handleDelete = (row) => { const index = tableData.value.indexOf(row) if (index !== -1) { tableData.value.splice(index, 1) } } const handleAdd = () => { tableData.value.unshift({ id:tableData.value.length+1, date: '2016-05-05', name: 'Tom', address: 'No. 189, Grove St, Los Angeles', value: tableData.value.length+1 }); } </script> <style> </style>

效果图:

 

标签:const,05,address,value,Element,plus,Vue3,id,row
From: https://www.cnblogs.com/aoshuang/p/17833132.html

相关文章

  • vue3 与 vue2 的区别
    布尔型Attribute​布尔型attribute依据true/false值来决定attribute是否应该存在于该元素上。disabled就是最常见的例子之一。v-bind在这种场景下的行为略有不同:<button:disabled="isButtonDisabled">Button</button>当isButtonDisabled为真值或一个空字符串(......
  • vue3源码学习api-vue-sfc文件编译
    vue最有代表性质的就是.VUE的文件,每一个vue文件都是一个组件,那么vue组件的编译过程是什么样的呢Vue单文件组件(SFC)和指令ast语法树一个Vue单文件组件(SFC),通常使用*.vue作为文件扩展名,它是一种使用了类似HTML语法的自定义文件格式,用于定义Vue组件。一个Vue单......
  • element ui 设置el-dialog2级弹窗
    步骤1,通过<el-buttontype="text"@click="dialogTableVisible=true">添加活动</el-button>弹出第一层,themeData设置成你循环的数据<el-buttontype="text"@click="dialogTableVisible=true">添加活动</el-button><!--第一层弹......
  • 基于element-ui开发组件自行制作的翻页小组件
    表格展示区<el-table:data="dis"style="width:100%;height:525px;"></el-table>翻页区<to-page:value="{page:tableData.length,current_page:current_page}"@......
  • mybatisPlus进行修改某字段为null时
    在相关字段上加上注解@TableField(strategy=FieldStrategy.IGNORED)如:@TableField(updateStrategy=FieldStrategy.IGNORED)@ApiModelProperty(value="检验结果2:1返工/返修、2整改、3报废")privateIntegerinspResult2; ......
  • vue3 AntV-X6 引入插件报错
    vue3AntV-X6引入插件报错:UncaughtTypeError:Cannotreadpropertiesofundefined(reading'ToolItem')vite引入路径的问题解决就是在引入插件的路径后面加上/lib:import{Keyboard}from'@antv/x6-plugin-keyboard/lib'直接写 import{Keyboard}from'@antv/......
  • Vue3调用Element-plus涉及子组件v-model双向绑定props问题
    Vue3调用Element-plus涉及子组件v-model双向绑定props问题在Vue3调用Element-plus的el-dialog组件时,碰到个很有意思的问题,el-dialog的属性值v-model直接控制对话框的显示与否,点击关闭对话框和遮罩区域,组件内部会自动更改v-model的值为false来关闭对话框。问题在于当组件作为子组......
  • element使用组件el-form自动定位到未填写的必填条目
    问题:在form表单el-form中经常会出现表单条目比较多的问题,而且在提交的时候需要校验表单并且定位到相应的条目位置。解决:html:<el-formref="form":model="form":rules="rules"label-width="140px"><el-form-itemlabel="规则名称"prop="ruleName&quo......
  • 通过PowerShellPlus示例脚本学习PowerShell-读取VMware主机信息
    ##=====================================================================##Title:GetVI-HostList##Description:RetrieveVMwareHosts##Author:Idera##Date:9/11/2008##Input:-VIserver:VirtualInfrastructureserver##......
  • 解决only one element tensors can be converted to Python scalars
    解决"onlyoneelementtensorscanbeconvertedtoPythonscalars"错误当我们使用PyTorch进行深度学习任务时,有时会遇到以下错误信息:"onlyoneelementtensorscanbeconvertedtoPythonscalars"。这个错误通常发生在我们尝试将一个只包含一个元素的张量转换为Python标量(s......