vue 添加删除子元素

显示效果:

 

 代码:

<template>
  <!-- 商家端-添加分期规则 -->
  <div class="divisionForm">
    <el-button @click="dialogFormVisible = true">新增分期规则</el-button>
    <el-dialog title="添加分期规则" :visible.sync="dialogFormVisible">
      <el-form :model="divisionForm" label-width="120px">
        <el-row>
          <el-col :span="16">
            <el-form-item label="分期名称" prop="name">
              <el-input v-model="divisionForm.name" placeholder='输入分期名称'></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="16">
            <el-form-item label="信保金比例" prop="guaranteeMoney">
              <el-input v-model="divisionForm.guaranteeMoney" placeholder='输入0-100的数字'></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="17">
            <el-form-item label="分期期数" prop="lists" style="margin-bottom: 0;">
              <div ref="fenqi" class="fenqi">
                <ul>
                  <li class="item" v-for='(list,index) in divisionForm.lists' :key='index'>
                    <span class="fenqi_span">{{index + 1}}</span>
                    <input class="fenqi_input" v-model="list.percent" placeholder='输入0-100的数字' style="display: inline-block;"/>
                    <span class="fenqi_percent">(%)</span>
                    <i v-if="index==0" class="el-icon-circle-plus-outline" @click="addNumber"></i>
                    <i v-else class="el-icon-remove-outline" @click="delNumber(index)"></i>
                  </li>
                </ul>
              </div>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="16">
            <el-form-item label="排序" prop="formsort">
              <el-input-number v-model="divisionForm.formsort" @change="handleChange" :min="1" :max="10" label="描述文字"></el-input-number>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="16">
            <el-form-item label="分期说明" prop="explain">
              <el-input v-model="divisionForm.explain" placeholder='输入分期说明'></el-input>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="16">
            <el-form-item label="备注" prop="remarks">
              <el-input v-model="divisionForm.remarks" placeholder='输入备注'></el-input>
            </el-form-item>
          </el-col>
        </el-row>

      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 消</el-button>
        <el-button type="primary" @click="addDivisionRule">保 存</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
  import Vue from 'vue';
  import {Button,Form,FormItem,Dialog,Input,Row,Col,Icon} from 'element-ui';
  Vue.use(Button).use(Form).use(FormItem).use(Dialog).use(Input).use(Row).use(Col).use(Icon);
export default {
  data() {
    return {
        dialogFormVisible: false,
      inputLable: 1,
      divisionForm: {
        name: '',//分期名称
        guaranteeMoney: '',//信保金比例
        lists: [
          { percent:''}
        ],//分期期数数组
        formsort: 1,//排序
        explain: '',//分期说明
        remarks: ''//备注
      }
    }
  },
  created() {
  },
  mounted() {

  },
  watch: {

  },
  methods: {
    //保存分期规则
    addDivisionRule() {
      console.log(this.divisionForm);
      let lists = this.divisionForm.lists;
      let sum = 0;
      for(var i=0;i<lists.length;i++){
        sum += parseFloat(lists[i].percent);
        if(lists[i].percent == ''){
          this.$layerMessage.error('付款比例不能为空!');
          return
        }
      }
      // console.log(sum);
      if(sum !== 100){
        this.$layerMessage.error('付款比例的和应等于100%!');
      }else{
        //其他表单内容用rules限制格式
        //1.验证表单通过后调用保存表单接口
        //XXXXXXXXXXXXXXXXX
        //2.关闭弹框
        this.dialogFormVisible = false;
      }
    },
    //新增分期期数
    addNumber(){
      let list = {
        percent: ""
      };
      this.divisionForm.lists.push(list);
    },
    //删除分期期数
    delNumber(index) {
      this.divisionForm.lists.splice(index, 1);
    },
    // 修改排序
    handleChange(value) {
      console.log(value);
    }

  }
}
</script>

<style type="text/scss" lang="scss" scoped>
  .divisionForm {
    /deep/ .el-dialog {
      min-width: 830px;
    }
  }
  .fenqi {
    .item {
      margin-bottom: 20px;
      input::-webkit-input-placeholder {
        color: #bbb;
      }
      input:-moz-input-placeholder {
        color: #bbb;
      }
      input::-moz-input-placeholder {
        color: #bbb;
      }
      input:-ms-input-placeholder {
        color: #bbb;
      }
      .fenqi_span {
        width: 80px;
        text-align: center;
        color: #999;
        margin-right: 20px;
      }
      .fenqi_input {
        width: 258px;
        margin-right: 8px;
      }
      .fenqi_percent {
        color: #aaa;
        margin-right: 20px;
        font-size: 18px;
      }
      /deep/ {
        .el-icon-circle-plus-outline,.el-icon-remove-outline {
          color: #aaa;
          font-size: 24px;
        }
      }
      .fenqi_span,.fenqi_input {
        -webkit-appearance: none;
        background-color: #FFF;
        background-image: none;
        border-radius: 4px;
        border: 1px solid #DCDFE6;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        color: #606266;
        display: inline-block;
        font-size: inherit;
        height: 40px;
        line-height: 40px;
        outline: 0;
        padding: 0 15px;
        -webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
        transition: border-color .2s cubic-bezier(.645,.045,.355,1);
      }
    }
  }
</style>
View Code

 

posted @ 2020-03-02 15:31  小白&小菜  阅读(3832)  评论(0编辑  收藏  举报
我是一个小菜鸟,飞呀飞呀,快飞高