时间:2021-05-26
1. 实现效果
2.实现原理
在父组件中点击编辑按钮,将当前点击对象的id传给子组件,子组件根据id修改相应的内容
父组件中代码:
//放置编辑按钮的位置<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" v-on:click="edit(manage.id)"><i class="layui-icon"></i>编辑</button>// 在methods中设计edit()方法//需要先引入编辑组件import EditManage from './EditManage' edit(id){ this.$layer.iframe({ type:2, title:"编辑", area:['600px','450px'], shade:true, offset:'auto', content:{ content:EditManage,//传递的编辑组件主线 parent:this, data:{ info:{id:id}// 传递的要编辑内容的id值 } } }) },子组件EditManage代码
<template> <div class="editmanage container"> <form class="form" v-on:submit="editManage"> <div class="form-group"> <label>账号</label> <input type="text" required placeholder="账号" autocomplete="off" class="form-control" v-model="manage.account"> </div> <div class="form-group"> <label>用户名</label> <input type="text" required placeholder="用户名" autocomplete="off" class="form-control" v-model="manage.username"> </div> <div class="form-group"> <label >密码</label> <input type="password" required placeholder="密码" autocomplete="off" class="form-control" v-model="manage.password"> </div> <div class="form-group"> <label >权限</label> <select name="authority" class="form-control" v-model="manage.authority"> <option value="超级管理员" >超级管理员</option> <option value="普通管理员" >普通管理员</option> </select> </div> <button type="submit" class="btn btn-info">立即提交</button> </form> </div></template><script> export default { name: 'addmanage', data () { return { manage:{}, form:{} } }, props:{ //接收父组件传来的id值 info:{ type:Object, default:()=>{ return {} } }, layerid:{ type:String, default:"" }, lydata:{ type:Object, default:()=>{ return {} } } }, methods:{ //用来显示对应id的编辑内容,在created中调用 fetchManage(id){ this.$http.get('http://localhost:3000/manage/'+id) .then(function (response) { this.manage=response.body; }) }, editManage(e){ if(!this.manage.account||!this.manage.username||!this.manage.password||!this.manage.authority){ this.$layer.msg("请添加对应信息!") }else{ let updateManage={ account:this.manage.account, username:this.manage.username, password:this.manage.password, authority:this.manage.authority }; this.$http.put("http://localhost:3000/manage/"+this.info.id,updateManage) .then(function (response) { //关闭父组件中的编辑弹框 this.$layer.close(this.layerid); //弹出提示信息,默认时间为3秒 this.$layer.msg("修改管理员信息成功!"); }); e.preventDefault() } e.preventDefault() } }, created(){ // this.info.id父组件传给子组件的id值 this.fetchManage(this.info.id); } }</script><style scoped> .editmanage{ margin:8px 20px 20px 20px; }</style>到此这篇关于Vue项目结合Vue-layer实现弹框式编辑功能(实例代码)的文章就介绍到这了,更多相关Vue弹框式编辑内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前两天在Vue中引入了Vue-layer插件,实现了弹出层效果。不过由于是在22寸屏下开发的,没多想,弹出层的area的长宽就设定的都是800px,效果还很好。
之前在项目中使用layer弹框感觉体验很好,这次的项目中就引入了,但是引入之后,弹出层如下图:代码:layer.msg("密码不正确!",{icon:5,tim
使用Bootstrap实现简单的布局,并结合Vue进行用户信息的编辑删除等功能,代码如下用户信息编辑用户名密码添加重置用户信息序号用户名密码操作{{$index
结合vue+element-ui+vue-quill+editor二次封装成组件1.图片上传分析原因项目中使用vue-quill-editor富文本编辑器,在编
用vue实现的穿梭框,实现基本的功能(数据移动、全选、反选、搜索)。代码:穿梭框*{margin:0;padding:0;}#transfer{width:38