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>

浙公网安备 33010602011771号