vue 动态添加删除行

1.如图

在这里插入图片描述

2.代码示例

<template>
  <div class="app-container">
    <el-card>
      <el-form ref="form" :model="form" :rules="rules">
        <el-descriptions :column="1" border title="使用单位评价" size="mini" :content-style="CS" :label-style="LS">
          <el-descriptions-item>
            <template slot="label">
              防护
            </template>
            <el-form-item prop="isAq">
              <el-radio-group v-model="form.isAq">
                <el-radio v-for="i in sfOptions" :key="i.value" :label="parseInt(i.value)">{{i.label}}</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-descriptions-item>
        </el-descriptions>

        <el-row :gutter="0">
          <el-col>
            <div style="display: inline-block;margin-left: 10px;margin-top: 5px;">
              <el-button size="mini" type="primary" class="el-icon-plus" @click="addInfo">添加</el-button>
            </div>
            <el-table :data="form.childList" size="mini" border :cell-style="{ padding: '3px' }" highlight-current-row style="width: 100%; ">
              <el-table-column label="名称" header-align="center" align="center">
                <template slot-scope="scope">
                  <el-form-item :prop="`childList[${scope.$index}].name`" :rules="{ required: true, message: '必填', trigger: 'blur' }">
                    <el-input v-model="form.childList[scope.$index].name" placeholder="名称"/>
                  </el-form-item>
                </template>
              </el-table-column>
              <el-table-column label="备注" header-align="center" align="center">
                <template slot-scope="scope">
                  <el-form-item :prop="`childList[${scope.$index}].remark`">
                    <el-input v-model="form.childList[scope.$index].remark" type="textarea" placeholder="备注"/>
                  </el-form-item>
                </template>
              </el-table-column>

              <el-table-column fixed="right" header-align="center" align="center" label="操作">
                <template slot-scope="scope">
                  <el-button type="text" size="small" icon="el-icon-delete" @click="deleteEvent(scope.row,scope.$index)">删除</el-button>
                </template>
              </el-table-column>
            </el-table>
          </el-col>
        </el-row>
      </el-form>
    </el-card>
  </div>
</template>

<script>
import {DICT_TYPE} from "@/utils/dict";
import {MessageBox} from "element-ui";

export default {
  name: "CManagement",
  components: {},
  data() {
    return {
      CS: {
        'width': '15%',
        'text-align':'left'
      },
      LS: {
        'width': '10%',
        'text-align':'center'
      },
      // 表单参数
      form: {
        id: undefined,
        isAq: undefined,
        childList:[],
      },
      sfOptions:this.getDictDatas(DICT_TYPE.SF),
      // 表单校验
      rules: {}
    };
  },
  created() {},
  methods: {
    addInfo() {
      const obj = {
        name: undefined,
        remark: undefined,
      };
      this.form.childList.push(obj);
    },

    deleteEvent(row, index) {
      const _this = this
      MessageBox.confirm('删除不能恢复,是否确定删除!', '删除提示', {
          confirmButtonText: '删除',
          type: 'warning'
        }
      ).then(() => {
        _this.form.childList.splice(index, 1);
      }).catch(() => {
      });
    },

  }
};
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值