vue-前端动态增加和删除行

只有一行时,显示增加,点击增加会出现第二行, 第一行不能删除;其他行都可删除

 

 

<el-form ref="form" :rules="formRules" :inline="true" :model="form" label-width="120px">
          <div v-for="(item, index) in form.courseType" :key="index">
            <el-form-item label="学段" :prop="'courseType.' + index + '.catagory'">
              <el-select v-model="item.catagory" placeholder="请选择学段">
                <el-option label="小学" :value="87" />
                <el-option label="初中" :value="73" />
                <el-option label="高中" :value="65" />
                <el-option label="测试" :value="30" />
              </el-select>
            </el-form-item>
            <el-form-item label="科目" :prop="'courseType.' + index + '.subcatagory'">
              <el-select v-model="item.subcatagory" placeholder="请选择科目">
                <el-option label="语文" :value="51" />
                <el-option label="数学" :value="52" />
                <el-option label="英语" :value="56" />
                <el-option label="政治" :value="60" />
                <el-option label="历史" :value="59" />
                <el-option label="生物" :value="30" />
                <el-option label="化学" :value="58" />
                <el-option label="物理" :value="57" />
              </el-select>
            </el-form-item>
            <el-form-item
              label="数量"
              :prop="'courseType.' + index + '.amount'"
            >
              <el-input v-model.number="item.amount" type="number" />
            </el-form-item>
            <el-form-item>
              <el-button v-if="index+1 == form.courseType.length" type="primary" @click="addItem">增加</el-button>
              <el-button v-if="index !== 0" type="danger" @click="deleteItem(item, index)">删除</el-button>
            </el-form-item>
          </div>
        </el-form>

 方法实现:

methods: {
    addItem() {
      this.form.courseType.push({
        catagory: '',
        subcatagory: '',
        amount: ''
      })
    },
    deleteItem(item, index) {
      this.form.courseType.splice(index, 1)
      console.log(this.form.courseType, '删除')
    }
  }
}

 参数:

data() {
    return {
      form: {
        courseType: [
          {
            catagory: 73,
            subcatagory: 51,
            amount: 1
          }
        ]
      }
    }
  },

  

 

posted @ 2021-03-19 17:17  小叶子leavescy  阅读(575)  评论(0编辑  收藏  举报