当前位置:   article > 正文

el-form 动态表单增减项 (vue+element ui)_form表单加减数据

form表单加减数据

1、点击”+“,弹出弹窗,新增一项,点击”-“,删除当前项

代码展示:

html代码:

注意:

el-form-item(表单项)循环,绑定的数组写在form当中

表单:

  1. <el-form :model="form">
  2. <el-form-item label="设备类型:" :label-width="formLabelWidth">
  3. <el-select v-model="form.region" placeholder="请选择活动区域">
  4. <el-option label="区域一" value="shanghai"></el-option>
  5. <el-option label="区域二" value="beijing"></el-option>
  6. </el-select>
  7. </el-form-item>
  8. <el-form-item v-for="(item, index) in form.formItemData" :key="item.id" :label="item.label"
  9. :label-width="formLabelWidth">
  10. <div class="formItem">
  11. <el-input v-model="item.value" autocomplete="off"></el-input>
  12. <el-button v-if="form.formItemData.length - 1 == index" style="margin-left: 20px;"
  13. @click="addItem(item, index)">+</el-button>
  14. <el-button style="margin-left: 20px;" @click="delItem(item, index)">-</el-button>
  15. </div>
  16. </el-form-item>
  17. </el-form>

新增参数弹框:

  1. <!-- 新增参数弹窗 -->
  2. <el-dialog :close-on-click-modal="false" title="新增参数" :visible.sync="paramsVisible">
  3. <el-form :model="paramsForm">
  4. <el-form-item label="参数名称" label-width="120px">
  5. <el-input v-model="paramsForm.paramsName" autocomplete="off"></el-input>
  6. </el-form-item>
  7. </el-form>
  8. <div slot="footer" class="dialog-footer">
  9. <el-button @click="cancelParams">取 消</el-button>
  10. <el-button type="primary" @click="addParams">确 定</el-button>
  11. </div>
  12. </el-dialog>

data:

  1. //表单数据
  2. form: {
  3. region: '',
  4. formItemData: [],
  5. },
  6. //新增弹窗数据
  7. paramsVisible: false,
  8. paramsForm: {
  9. paramsName: "",
  10. }

methods:

1、点击新增,弹出新增弹窗,添加表单项

  1. // 新增选项
  2. addItem(item, index) {
  3. console.log("添加", item, index)
  4. this.paramsVisible = true
  5. },
  6. // 取消参数弹窗
  7. cancelParams() {
  8. this.paramsForm.paramsName = '';
  9. this.paramsVisible = false;
  10. },

2、点击”-“,删除当前表单项

  1. // 删除选项
  2. delItem(item, index) {
  3. //item:当前表单项 index:当前项的下标
  4. console.log("删除", item, index)
  5. if (this.form.formItemData.length > 1) {
  6. this.form.formItemData.splice(index, 1)
  7. } else {
  8. this.$message({
  9. message: "最少保留一项",
  10. type: "warning"
  11. })
  12. }
  13. },

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/98853
推荐阅读
相关标签
  

闽ICP备14008679号