Bootstrap

可编辑的el-table表格

可编辑的el-table表格,可以结合input输入框,select选择框,tree树形结构等。

实现序列递增,删除的序列不会再出现。

效果图

html部分代码

<div>
<el-table :data="tableData" border :header-cell-style="{textAlign: 'center'}" :cell-style="{ textAlign: 'center' }">
   <!--递增序列,删除的序列不会再次出现-->
   <el-table-column label="序列" prop="index"></el-table-column>
   <!--多选框,可以替换任何输入框等-->
   <el-table-column label="岗位" prop="data">
       <template slot-scope="scope">
           <el-select v-model="scope.row.startFrameType" placeholder="请选择岗位" multiple>
               <el-option v-for="(item,index) in options" :key="index" :label="item" :value="item"></el-option>
            </el-select>
        </template>
   </el-table-column>
   <!--删除操作-->
   <el-table-column fixed="right" label="操作">
         <template slot-scope="scope">
             <el-button type="text" size="small" @click="delValue(scope.$index)">删除</el-button>
         </template>
    </el-table-column>
</el-table>
<button type="button" class="btn add" @click="addValue"><span>添加</span></button>
</div>

js部分代码

data() {
    return {
      tableData: [],//表格数据
      options: ['员工', '主管', '全部'],//筛选数据
    }
  },
computed: {
    //序列处理,递增,删除的序列数,不会再出现
    index() {
      let index = this.tableData && this.tableData.length && this.tableData[this.tableData.length - 1].index
      return ++index
    }
  },
methods: {
    //    添加
    addValue() {
      this.tableData.push({
        index: this.index,
        startFrameType: [],
      })
    },
    //    删除
    delValue(i) {
      this.$confirm('是否删除序列?', '提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        this.tableData.splice(i, 1)
      }).catch(() => {
        this.$message({
          type: 'info',
          message: '已取消'
        });
      });

    },
  }

;