Vue实现点击表格单元格出现输入框,失去焦点隐藏输入框功能,变回文本


  
  
    
   
  
    
  

data中:后端返回数据中有选中状态, 但是一般是不会给返回的,需要自己添加

tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄',
        cellNameVisible: false,
        cellAddressVisible: false,
      }, {
        date: '2016-05-04',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1517 弄',
        cellNameVisible: false,
        cellAddressVisible: false,
      }, {
        date: '2016-05-01',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1519 弄',
        cellNameVisible: false,
        cellAddressVisible: false,
      }, {
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1516 弄',
        cellNameVisible: false,
        cellAddressVisible: false,
      }]

需要自己添加选中状态如下

// 调接口获取表格数据
  getTabledData() {
    this.$get(`/ets/inner/api/v1/FactorTable/parties/unmatchedData`, {
       caseId: this.caseId
     }).then(res => {
       if (res.code === 200) {
             this.tableData = res.result;
             // 方法一
             this.tableData = this.tableData.map((item) => ({
                ...item,
                cellNameVisible: false,
                cellAddressVisible: false,
              }));
              // 方法二
               this.tableData.forEach( item => {
                 this.$set(item, 'cellNameVisible', false);
                });
           } else {
              this.$message({
                 showClose: true,
                 message: res.description,
                 type: 'error'
              });
           }
      }).catch(err => {
                console.log(err);
    });
 },

/**
 * 点击文本触发,显示input框,隐藏span标签
 */
 cellClick(row, cellIndex) {
   row[cellIndex] = true;
  },
/**
  * 输入框失去焦点触发
  */
  blurEvent(row, cellIndex) {
    row[cellIndex] = false;
  },

 

你可能感兴趣的:(element-ui,el-table,vue.js,前端,javascript)