第一个问题:批量删除的时候循环删除每一条成功之后,让提示信息只有一个
这个只需要修改他的公共样式,定位改成绝对定位。
或者把你循环删除的最后面统计成功失败的数量再加this.$message({ message: '恭喜你,这是一条成功消息', type: 'success' });
第二个问题:取消勾选的时候点击确定去除索引的验证
问题一:
import ElementUI, {
Message
} from 'element-ui'
// use
class DonMessage {
success(options, single = true) {
this.showMessage('success', options, single)
}
warning(options, single = true) {
this.showMessage('warning', options, single)
}
info(options, single = true) {
this.showMessage('info', options, single)
}
error(options, single = true) {
this.showMessage('error', options, single)
}
showMessage(type, options, single) {
if (single) {
// 判断是否已存在Message
if (document.getElementsByClassName('el-message').length === 0) {
Message[type](options)
}
} else {
Message[type](options)
}
}
}
Vue.use(ElementUI)
// 命名根据需要,DonMessage只是在文章中使用
Vue.prototype.$message = new DonMessage()
问题二:
在你的 验证之前对勾选状态进行判断
1.首先,批量删除不建议用循环去删除.这样你是一次删一条其实.对于服务器压力不友好.建议改成传[id1,id2,id3...]到后台,统一删除,这样就可以只弹一个了.
2.如果你就是要循环,一次删一个.那么可以在进入方法前在循环外面定义一个标志,showReady=false.然后每次要提示时,判断是否已经提示过了就行.这样就保证了多条提示,只有一次会显示.
function deleteList(list){
let showReady = false;
for(let i=0;i<list.length;i++){
httpDelete(list[i])
if(!showReady){
console.log("删除成功")
showReady=true;
}
}
}
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="特殊资源" prop="resource">
<el-checkbox label="美食/餐厅线上活动" name="type"></el-checkbox>
</el-form-item>
<el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
<el-button @click="resetForm('ruleForm')">重置</el-button>
</el-form-item>
</el-form>
<script>
export default {
data() {
return {
ruleForm: {
resource: '',
},
rules: {
resource: [
{ required: true, message: '请输入特殊资源', trigger: 'change' }
]
}
};
},
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!');
} else {
console.log('error submit!!');
return false;
}
});
},
//取消勾选方法
quxiao(){
this.rules.resource = { required: false}
}
}
}
</script>
建议使用promise.all 完成循环删除的接口请求,promise.all([promise1,promise2]).then(res=>{this.$message.success("删除成功")})