«

实现行内编辑核心思路

yang 发布于 阅读:350 Vue2阶段


1.1 给每一个数据对象, 增加一个额外的boolean属性, 用来区分当前数据是否被点了编辑

res.data.data
    //循环
    循环(let obj of res.data.data){
        obj.clickedit = false//是否点击了编辑
    }
    //先加字段,在赋值!!! 不然新属性不响应!!!
    this.xxx = res.data.data

实例:

//获取数据,渲染到页面上
    async getData() {
      let res = await cateList({
        currentPage: this.page,
        pageSize: this.pageSize,
      });
      this.tableData = res.data.data.map((v) => ({ ...v, flag: true })); //给原来的数组中添加一个标杆,用来判断数据点击时的状态
      this.total = res.data.total;
      // console.log(res);
    },

1.2 在表格中,要变化的元素节点上, 预埋2个元素(两个元素永远只会显示1个)

<span v-show="数据对象.clickedit == false">默认</span>   //默认显示它
<el-input v-show="数据对象.clickedit"/> //为true显示它

实例:

 <el-table-column label="账号">
  <template slot-scope="obj">
     <span v-show="!obj.row.clickedit">{{ obj.row.account }}</span>
     <el-input v-show="obj.row.clickedit" v-model="obj.row.account" />
   </template>
</el-table-column>

<el-table-column width="120" label="用户组" prop="userGroup">
    <template slot-scope="obj">
        <span v-show="!obj.row.clickedit">{{ obj.row.userGroup }}</span>
         <el-select v-show="obj.row.clickedit" v-model="obj.row.userGroup">
              <el-option label="超级管理员" value="超级管理员" />
              <el-option label="普通管理员" value="普通管理员" />
         </el-select>
     </template>
</el-table-column>

1.3 给编辑按钮绑定点击事件
<编辑按钮 @click=" 数据对象.clickedit = true">
{{ 数据对象.clickedit ? '完成' : '编辑' }}
</编辑按钮>
按钮上的操作:

 <el-table-column label="操作">
    <template slot-scope="obj">
      <el-button @click="obj.row.clickedit = !obj.row.clickedit">{{
         obj.row.clickedit ? '完成' : '编辑'
          }}</el-button>
       <el-button type="danger" @click="remove(obj.row)">删除</el-button>
     </template>
</el-table-column>

实现行内编辑核心思路

版权所有:微4e
文章标题:实现行内编辑核心思路
除非注明,文章均为 微4e 原创,请勿用于任何商业用途,禁止转载

推荐阅读:


扫描二维码,在手机上阅读
请先 登录 再评论