前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue3+ElementPlus 表单编辑与查看模式切换的应用

vue3+ElementPlus 表单编辑与查看模式切换的应用

原创
作者头像
流年Felix
发布2023-08-08 22:01:54
7890
发布2023-08-08 22:01:54
举报

有时候在填写表单的时候,想要在输入的时候是input输入框的状态,但是当鼠标移出输入框失去焦点时,希望是查看的状态,这种场景可以通过 v-if实现

编辑模式
编辑模式
查看模式
查看模式

具体实现如下:当flag=true时候展示el-input输入框(v-if="row.flag")

当flag=false时,展示else部分也就<div>部分,也就是查看模式的页面

当el-input失去焦点时候绑定一个toLook事件,将flag设置为false,进去查看模式

当div元素点击时触发一个toEdit事件,将flag设置为true,进入编辑模式

代码语言:javascript
复制
 <el-table-column label="属性值名称">
  <template #="{ row, $index }">
 <el-input
   :ref="(vc: any) => inputArr[$index] = vc"
   v-if="row.flag"
   @blur="toLook(row, $index)"
   size="small"
   placeholder="请你输入属性值名称"
   v-model="row.valueName">
</el-input>
    
              
   <div v-else @click="toEdit(row, $index)">{{ row.valueName }}</div>
  </template>
</el-table-column>

代码语言:javascript
复制
const toLook = (row: AttrValue, $index: number) => {
    ...
    row.flag = false 
}

const toEdit = (row: AttrValue, $index: number) => {
  row.flag = true
  //nextTick:响应式数据发生变化,获取更新的DOM(组件实例)
  nextTick(() => {
    inputArr.value[$index].focus()
  })
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档