Vue.component('model', { props: ['list', 'isactive'], template: `<div class="overlay" v-show="isactive"> <div class="con"> <h4 style="text-align: center">新增 | 修改</h4> <div class="content" > <div style="margin:10px auto;" v-for="(value, key) of modifylist"> <div class="item_name" v-if="key!='uid'&&key!='time'"> <span v-if="key=='id'">编号</span> <span v-else-if="key=='user_name'">用户名</span> <span v-else-if="key=='user_passwd'">密码</span> <span v-else-if="key=='uid'">识别码</span> <span v-else-if="key=='role'">角色</span> <span v-else-if="key=='note'">备注</span> <span v-else-if="key=='time'">时间</span> <span v-else>{{ key }}</span> </div> <input class="item_value" type="text" v-model="modifylist[key]" v-if="key!='uid'&&key!='time'" > <div style="clear: both;"></div> </div> <div style="margin: 20px 30px;"> <input class="item_name" style="font-size: 18px;text-align: center;" type="button" @click="changeActive" value="取消"> <input class="item_value" style="font-size: 18px;text-align: center;" type="button" @click="modify" value="保存"> </div> </div> </div> </div>`, computed: { modifylist() { return JSON.parse(JSON.stringify(this.list)); } }, methods: { changeActive() { this.$emit('change'); }, modify() { this.$emit('modify', this.modifylist); } } });
时间: 2023-10-17 09:05:17 浏览: 137
vue-3d-model::camera:vue.js 3D模型查看器组件
这是一个 Vue.js 的组件,用于展示一个弹窗,可以用于新增或者修改数据。其中,props 接收两个参数:list 和 isactive,list 是一个对象数组,用于展示数据;isactive 是一个布尔值,用于控制弹窗的显示与隐藏。模板中使用了 v-show 指令控制弹窗的显示与隐藏。computed 属性中定义了一个计算属性 modifylist,用于获取 list 的深拷贝,方便修改数据时不影响原数据。methods 中定义了两个方法:changeActive 和 modify,分别用于关闭弹窗和保存修改后的数据。其中,changeActive 使用了 $emit 方法向父组件传递事件,从而实现关闭弹窗的功能;modify 方法也使用了 $emit 方法向父组件传递修改后的数据。
阅读全文