vue+element表单设置动态表头及内容

本文介绍如何使用Vue.js结合Element UI组件库实现动态表头及表单内容的操作。通过v-for循环遍历table_head数组来动态生成表头,并绑定对应的prop属性到表单数据listData中。
摘要由CSDN通过智能技术生成

根据后台返回数据设置动态表头及表单内容操作

【1】前端表单样式

  <el-table
      size="small"
      :data="listData" //表单数据绑定
      highlight-current-row
      v-loading="loading"
      border
      element-loading-text="拼命加载中"
      @selection-change="handleSelectionChange"
      style="width: 100%"
    >
      <div v-for="(item, index) in table_head" :key="index">
        <el-table-column
          :prop="item.prop"
          :label="item.label"
        ></el-table-column>
      </div>
    </el-table>

注意:v-for写在非template上,添加:key没有任何问题,但是写在template上就不行了,加了就报错。
在这里插入图片描述

【2】数据格式
在这里插入图片描述
利用prop属性绑定对应值,label绑定表头。

 {
            "prop": "checkStatData",
            "label": "日期"
          },
          {
            "prop": "checkStatName",
            "label": "姓名"
          },
          {
            "prop": "checkStatNum",
            "label": "工号"
          },

【3】表头及表单内容对应不同的数组,实现方法

data(){
return{
listData: [], //表单数据
table_head: [], //表头数据
}
}
 CheckStatInfos(parameter)
        .then((res) => {
          this.loading = false;
          if (res.data.status == 500) {
            this.$message({
              type: "info",
              message: res.data.message,
            });
          } else {
            this.listData = res.data.data[1].data;//表头
            this.table_head = res.data.data[0].type;//表单数据内容
            // 分页赋值
            this.pageparm.currentPage = res.data.pageNum;
            this.pageparm.pageSize = res.data.pageSize;
            this.pageparm.total = res.data.totalSize;
          }
        })
Vue.js框架中结合Element UI库实现表格的新增、编辑和删除功能通常涉及以下几个步骤: 1. **数据绑定**:首先,你需要创建一个数组来存储表格的数据,并在Vue组件的data选项中定义。当有新增、编辑或删除操作时,这个数组需要实时更新。 ```javascript data() { return { tableData: [], // 初始化空数组 }; } ``` 2. **表格渲染**:使用Element UI的`el-table`组件展示数据,通过`v-for`指令遍历数组,将每个数据项作为tableData的一个元素。 3. **新增操作**:可以添加一个按钮,点击后弹出模态框,用户输入信息并提交时,向`tableData`数组追加新的对象。 4. **编辑操作**:在表格中设置编辑列,当用户双击某一行或者点击编辑按钮,进入编辑模式,允许修改数据,然后保存时更新对应的表格行。 5. **删除操作**:在每一行的末尾提供删除按钮,点击后从数组中移除该行对应的对象。 6. **事件处理**:对于以上操作,都需要配合Vue的响应式特性,监听用户的交互事件(如click、dblclick等),并触发相应的数据变更方法(例如`push`, `set`, 或者`splice`)。 以下是简化版的示例代码片段: ```html <template> <el-table :data="tableData"> <!-- 添加、编辑和删除操作列 --> <el-table-column type="action" width="180"> <template slot-scope="scope"> <el-button @click="editRow(scope.$index)" :disabled="scope.row.disabled">编辑</el-button> <el-button @click="deleteRow(scope.$index)">删除</el-button> </template> </el-table-column> <!-- 表头内容列 --> <el-table-column prop="name" label="Name"></el-table-column> <!-- 其他列... --> </el-table> <!-- 新增模态 --> <el-dialog v-model="dialogVisible" title="新增"> <el-form ref="addForm" :model="formAdd" rules="..."> <!-- 新增表单... --> </el-form> <div slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">取消</el-button> <el-button type="primary" @click="handleAdd">保存</el-button> </div> </el-dialog> </template> <script> export default { data() { return { dialogVisible: false, formAdd: {}, // 新增表单数据 tableData: [], }; }, methods: { editRow(index) { // 编辑操作... }, deleteRow(index) { this.tableData.splice(index, 1); }, handleAdd() { this.dialogVisible = false; this.tableData.push(this.formAdd); // 添加到数据数组 } } }; </script> ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值