首页 > 其他分享 >vue3 和 element-plus 实现指定单元格编辑

vue3 和 element-plus 实现指定单元格编辑

时间:2023-10-24 09:11:57浏览次数:30  
标签:column 单元格 tableRowEditId value element plus null row

思路

1.获取到指定单元格的位置 2.通过状态来判断 是否展示编辑

步骤

1.定义变量去确定行和列

let tableRowEditId = ref(null), // 控制可编辑的每一行
let tableColumnEditIndex = ref(null), //控制可编辑的每一列

2.在el-table上 绑定单元格的点击事件

cell-click(单击) cell-dblclick(双击) 在该事件上可以解构出是 row 和 column 确定点击的单元格的位置

 <el-table
   :data="tableData"
   style="width: 100%"
   border
   @cell-click="showUnitInput"
  >
 
</el-table>
 
 
const showUnitInput = (row: any, column: any) => {
  // console.log('row', row)
  // console.log('column', column)
  //赋值给定义的变量
  tableRowEditId.value = row.id //确定点击的单元格在哪行 如果数据中有ID可以用ID判断,没有可以使用其他值判断,只要能确定是哪一行即可
  tableColumnEditIndex.value = column.id //确定点击的单元格在哪列 
}

3.在指定的单元格显示输入框,input是放在el-table-item的插槽中的解构出row和column确定输入框位置

4.通过两个值去比较 进行显示隐藏

5.当输入框失去焦点或者触发了键盘回车时间,将判断条件情况即可

<el-table-column
  prop="xxxxx"
  label="xxxxx"
  >
   // 判断input框所在的单元格的位置是否和赋值的变量的值一致,一致就显示 否则显示其他的
   //@blur @keyup.enter 失去焦点事件和 键盘按下回车事件
  <template #default="{ row, column }">
   <el-input
    v-if="
     tableRowEditId === row.id &&
     tableColumnEditIndex === column.id
    "
    @blur="blurValueInput(row, column)"
    @keyup.enter="blurValueInput(row, column)"
   />
     <span v-else>{{ row.value }}</span>
   </template>
 </el-table-column>
 
 
const blurUnitInput = (row: { [x: string]: boolean }, column: any) => {
  tableRowEditId.value = null
  tableColumnEditIndex.value = null
  //在此处调接口传数据
}

标签:column,单元格,tableRowEditId,value,element,plus,null,row
From: https://www.cnblogs.com/tn666/p/17783947.html

相关文章

  • EXCEL中去掉单元格首尾空格,保留字符串中间空格
    用到的函数:MID,FIND,LEFT,RIGHT,TRIM,SUBSTITUTE,LEN     公式:=MID(A1,FIND(LEFT(TRIM(A1)),A1),FIND("☆",SUBSTITUTE(A1,RIGHT(TRIM(A1)),"☆",LEN(A1)-LEN(SUBSTITUTE(A1,RIGHT(TRIM(A1)),""))))-FIND(LEFT(TRIM(A1)),A1)+1)说明:设单元格为A1,值为:$ab$��......
  • 关于elementui的cascader组件多个级联大量数据滚动定位样式导致卡顿问题
    如题,多个cascader级联组件,下拉选项含大量数据,滚动时会有实时样式重新渲染,导致CUP内存溢满而卡顿解决尝试:使用elementui中的内部源码方法处理<script>import{addResizeListener,removeResizeListener}from'element-ui/src/utils/resize-event';...setu......
  • vue element 常用正则
    在vue项目中使用element的时候,经常会用到的一些正则验证。exportdefault{textChecked:{pattern:/^[\u4e00-\u9fa5a-zA-Z0-9]{0,50}$/,message:'最多可输入50位字符,仅支持数字、英文大小写、中文',trigger:'blur'},textCheckedAll:{pattern:......
  • MyBatis-Plus和shardingsphere一起用。子查询取别名读取不到的问题。
    https://github.com/baomidou/mybatis-plus/issues/2585在使用MP和Shardingsphere的某些版本中,可能会出现join子查询表取别名之后,在where中用这个别名报错 Cannotfindownerfromtable.//重点是外层SQL不要出现*,不要使用别名,需要的字段都写清楚(内外层sql都要写清楚),......
  • Xshell Plus 6 po jie版下载
    分享一波XshellPlus6pojie版,亲测有效,因为是绿色无安装版本的,下载下来后,解压即可使用,就可以直接使用了,下面是详细教程~注意:XshellPlus6pojie版的下载地址在文章最后面。申明:本XshellPlus6pojie版收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除.一、Xshe......
  • 如何使用MyBatis-Plus实现字段的自动填充?一文教会你
    环境说明:Windows10+Idea2021.3.2+Jdk1.8+SpringBoot2.3.1.RELEASE前言在实际的开发过程中,我们经常需要在进行数据库操作时自动填充某些字段值,比如创建时间,更新时间等。手动填充虽然可行,但是容易出错,并且代码冗余,影响开发效率。MyBatis-Plus提供了字段自动填充的功能,可以......
  • Vue.js框架:vue3版本引入使用element-ui
    一、引入element-pluselement-ui只支持vue2,vue3需要引入element-plus进行使用,两个分别对应vue2和3两个版本,各自独立,无法跨级兼容。地址:https://element-plus.gitee.io/在vue3项目终端里使用以下命令引入该依赖:npminstallelement-plus--save二、修......
  • PEnum_ElementShading
    PEnum_ElementShading NameDescriptionFIXEDFixed MOVABLEMovable OVERHANGOverhang SIDEFINSidefin USERDEFINEDUserdefined NOTDEFINEDNotdefined    ##############......
  • Mybatis-Plus 语句日志输出
    两种方式都是在yml文件下配置第一种方式:mybatis-plus:configuration:log-impl:org.apache.ibatis.logging.stdout.StdOutImpl这种方式会将数据也一块输出出来,遇到查询较多数据的情况会导致看不到sql语句第二种方式:logging:level:com:***......
  • Uncaught TypeError: "element" is read-only
    UncaughtTypeError:"element"isread-only错误表明你尝试修改一个JavaScript变量或常量的值,但该变量或常量是只读的,不能被修改。通常,像const声明的变量是只读的,不允许重新分配。在你的代码中,如果你尝试修改一个const声明的变量element,那么就会触发这个错误。要解决这个......