elementui动态添加表格

一显示效果

二、代码

全部粘贴上去即可 

<template>
  <div>
    <el-button @click="addRow">添加行</el-button>
    <el-button @click="saveAll" type="primary" style="margin-left: 10px">保存全部</el-button>
    <el-table :data="tableData" :empty-text="'没有数据'" size="mini" style="width: 600px">
      <el-table-column prop="date" label="日期" width="180">
        <template slot-scope="scope">
          <el-input
            v-model="scope.row.date"
            placeholder="请输入日期"
            v-show="scope.row.editing"
          ></el-input>
          <span v-show="!scope.row.editing">{{ scope.row.date }}</span>
        </template>
      </el-table-column>
      <el-table-column prop="name" label="姓名" width="180">
        <template slot-scope="scope">
          <el-input
            v-model="scope.row.name"
            placeholder="请输入姓名"
            v-show="scope.row.editing"
          ></el-input>
          <span v-show="!scope.row.editing">{{ scope.row.name }}</span>
        </template>
      </el-table-column>
      <el-table-column prop="food" label="食物">
        <template slot-scope="scope">
          <el-select
            v-model="scope.row.food"
            placeholder="请选择食物"
            v-show="scope.row.editing"
          >
            <el-option
              v-for="item in options"
              :key="item.value"
              :label="item.label"
              :value="item.value"
            ></el-option>
          </el-select>
          <span v-show="!scope.row.editing">{{ scope.row.food }}</span>
        </template>
      </el-table-column>
      <el-table-column label="操作" width="100">
        <template slot-scope="scope">
          <el-button
            v-if="!scope.row.editing"
            @click="startEditing(scope.row)"
            type="text"
            size="small"
          >
            编辑
          </el-button>
          <el-button
            v-else
            @click="save(scope.row)"
            type="text"
            size="small"
          >
            保存
          </el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [],
      options: [
        { value: 'apple', label: '苹果' },
        { value: 'banana', label: '香蕉' },
        { value: 'orange', label: '橙子' }
      ]
    };
  },
  methods: {
    addRow() {
      const newRow = {
        date: '',
        name: '',
        food: '',
        editing: true
      };
      this.tableData.push(newRow);
    },
    startEditing(row) {
      row.editing = true;
    },
    save(row) {
      row.editing = false;
    },
    saveAll() {
      this.tableData.forEach(row => {
        row.editing = false;
      });
    //   const payload = this.tableData.map(row => ({
    //   date: row.date,
    //   name: row.name,
    //   food: row.food
    // }));

    // 发送POST请求到后端API端点
    // axios.post('/api/save-data', payload)
    //   .then(response => {
    //     // 根据后端的响应进行相应的处理
    //     console.log(response.data); // 可以打印响应结果或做其他处理
    //   })
    //   .catch(error => {
    //     // 处理请求错误
    //     console.error(error);
    //   });
    }
  }
};
</script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Vue Element UI中,动态添加表单是相对简单的。你可以使用动态表格组件来实现这个功能。首先,你需要在表格头部和数据渲染之前添加以下代码,以确保页面可以按预期完成渲染: this.$nextTick(() => { this.dynamicTableShow = true }) 接下来,你可以在表格组件中添加一个属性来控制序号列的显示。例如,你可以在表格组件的代码中添加以下代码来控制是否显示序号列: <dynamic-table v-if="dynamicTableShow" :table-data="tableData" :table-header="tableHeaders" :height="'550px'" :is-index="isAddIndex" /> 在Element UI官方例子中,如果你想给表格添加一个序号列或索引列,你可以在<el-table>标签内声明一个特殊的<el-table-column>,并设置type属性为"index",还可以设置该列的宽度。例如: <el-table> <el-table-column type="index" width="50"></el-table-column> <!-- 其他列 --> </el-table> 通过这样的设置,你就可以在表格动态添加表单了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【vue】基于ElementUI实现动态表格](https://blog.csdn.net/coralime/article/details/119248972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值