vue行内编辑内容(通过row.edit来改变)

前言

vue行内编辑在开发业务中我们经常遇到的,本文章是通过改变row.edit来实现文本的编辑,通过row.originalTitle重新为row.title赋值
本文通过操作的编辑按钮和双击文本框内容来实现的

1、效果图(简单案例的实现)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、vue中的代码

<template>
  <div class="install">
    <el-tabs v-model="activeName" @tab-click="handleClick">
      <el-table :data="tableData" stripe style="width: 100%">
        <el-table-column label="单位名称" align="center" width="600" show-overflow-tooltip>
          <template #default="{ row }">
            <template v-if="row.edit">
              <el-input v-model="row.name" style="width: 300px" />
              <el-button class="cancel-btn" type="warning" @click="cancelEdit(row)">
                取消
              </el-button>
            </template>
            <span @dblclick="row.edit = !row.edit"  v-else>{{ row.name }}</span>
          </template>
        </el-table-column>
        <el-table-column label="用途" prop="use" align="center" :show-overflow-tooltip="true"></el-table-column>
        <el-table-column label="安装设备" prop="equipment" align="center" :show-overflow-tooltip="true"></el-table-column>
        <el-table-column label="操作" prop="desc" align="center">
          <template #default="{ row,$index }">
            <el-button v-if="row.edit" size="small" type="success" @click="confirmEdit(row, $index+1)">
              保存
            </el-button>
            <el-button v-else icon="el-icon-edit" size="small" type="primary" @click="row.edit = !row.edit">
              编辑
            </el-button>
          </template>
        </el-table-column>
      </el-table>
    </el-tabs>
  </div>
</template>

<script>
  import { defineComponent, toRefs, reactive, ref } from "vue";
  import { useRouter } from "vue-router";
  import { Consent, TrunDown } from "@/utils/method";

  export default defineComponent({
    name: "index",
    components: {},
    setup() {
      const data = reactive({
        // 列表信息
        tableData: [
          {
            name: "单位名称单位名称",
            use: "饭店",
            equipment: "煤气表,热水器"
          },
          {
            name: "单位名称单位名称",
            use: "饭店",
            equipment: "煤气表,热水器"
          },
        ]
      });
      const confirmEdit = (row,index) => {
        row.edit = false;
        row.originalTitle = row.title;
      };

      const cancelEdit = row => {
        row.title = row.originalTitle;
        row.edit = false;
      };

      return {
        ...toRefs(data),
        confirmEdit,
        cancelEdit
      };
    },
  });
</script>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值