ant-design-vue中实现modal模态框的复用(添加,编辑展示同一个模态框)
用两个button(添加,编辑)按钮展示同一个模态框,并不是什么大问题,问题在于解决这两个模态框得有自己的确定和取消方法
父页面完全接管子页面(利于子页面复用)
父页面代码:
- <template>
- <div>
<-- 定义两个按钮,一个添加按钮, 一个编辑按钮 -->- <a-button type="primary" @click="showModal">添加</a-button>
- <a-button type="primary" @click="showEditModal">编辑</a-button>
<-- 引入模态框,将modal框的确定和取消方法由此元素触发调用 -->- <test-add
- ref="collectionForm"
- :visible="visible"
- @cancel="dialogStatus==='add'?handleCancel():handleEditCancel()"
- @ok="dialogStatus==='add'?handleOk():handleEditOk()"
- />
- </div>
- </template>
- <script>
- import TestAdd from './modules/TestAdd'
- export default {
- components: { TestAdd },
- data() {
- return {
- dialogStatus:'',
- visible: false,
- };
- },
- watch:{
- },
- methods: {
- // 处理添加方法
- showModal() {
- this.visible = true;
- this.dialogStatus = 'add';
- },
- handleCancel() {
- this.visible = false;
- this.dialogStatus=''
- console.log('add cancel')
- },
- handleOk(){
- console.log('add ok')
- },
- //处理编辑的方法
- showEditModal(){
- this.type = 'edit';
- this.visible = true;
- },
- handleEditCancel(){
- this.visible = false;
- this.dialogStatus = ''
- console.log('edit cancel')
- },
- handleEditOk(){
- this.visible = true;
- console.log('edit ok')
- }
- },
- };
- </script>
子页面代码:
- <template>
<-- 用emit方法触发父级方法,自己本身不需要处理方法 -->
<-- 表单校验的时候,可以表单校验成功了之后再去触发父元素方法 -->- <a-modal
- :visible="visible"
- title='Create a new collection'
- okText='完成'
- @cancel="() => { $emit('cancel') }"
- @ok="() => { $emit('ok') }"
- >
- <a-form layout='vertical' :form="form">
- <a-form-item label='Title'>
- <a-input v-decorator="[ 'title' ]" />
- </a-form-item>
- <a-form-item label='Description'>
- <a-input type='textarea' v-decorator="['description']"/>
- </a-form-item>
- <a-form-item class='collection-create-form_last-form-item'>
- <a-radio-group
- v-decorator="['modifier',{initialValue: 'private'}]">
- <a-radio value='public'>Public</a-radio>
- <a-radio value='private'>Private</a-radio>
- </a-radio-group>
- </a-form-item>
- </a-form>
- </a-modal>
- </template>
- <script>
- export default {
- name: 'TestAdd',
- props: ['visible'],
- data () {
- return {
- form: this.$form.createForm(this)
- }
- }
- }
- </script>
- <style scoped>
- </style>
使用上面这种方式,子页面基本上不需要处理什么业务逻辑,所有方法都由父页面实现,这样就可以把子页面随意引用到其他地方去使用,也是官方文档中的样例。
ant-design-vue中实现modal模态框的复用(添加,编辑展示同一个模态框)的更多相关文章
- Ant Design Pro中Transfer穿梭框的实际用法(与后端交互)
Ant Design Pro中Transfer穿梭框的实际用法(与后端交互) 该控件的属性以及属性的作用在ADP的官方文档中都有介绍,但没有讲如何与后端交互,本文旨在讲解该控件与后端的交互. Ant ...
- Ant Design Vue select下拉列表设置默认值
在项目中需要为Ant Design Vue 的 select 组件设置一个默认值,如下图所示的状态下拉选择框,默认选择全部 代码如下: <a-select v-model="query ...
- Ant Design框架中不同的组件访问不同的models中的数据
Ant Design框架中不同的组件访问不同的models中的数据 本文记录了我在使用该框架的时候踩过的坑,方便以后查阅. 一.models绑定 在某个组件(控件或是页面),要想从某个models中获 ...
- Ant Design Vue Pro 项目实战-项目初始化(一)
写在前面 时间真快,转眼又是新的一年.随着前后端技术的不断更新迭代,尤其是前端,在目前前后端分离开发模式这样的一个大环境下,交互性.兼容性等传统的开发模式已经显得有些吃力.之前一直用的是react,随 ...
- 使用ant design vue的日历组件,实现一个简单交易日与非交易日的切换
使用ant design vue的日历组件,实现一个简单交易日与非交易日的切换 需求: 日历区分交易日.非交易日 可以切换面板查看整年交易日信息 可以在手动调整交易日.非交易日 演示实例 序--使用软 ...
- Vue3学习(二)之集成Ant Design Vue
一.集成Ant Design Vue npm install ant-design-vue@2.0.0-rc.3 --save 兼容性 Ant Design Vue 2.x 支持所有的现代浏览器. 如 ...
- 基于Ant Design Vue封装一个表单控件
开源代码 https://github.com/naturefwvue/nf-vue3-ant 有缺点本来是写在最后的,但是博文写的似乎有点太长了,估计大家没时间往下看,于是就把有缺点写在前面了,不喜 ...
- 使用npm安装 Ant Design Vue 时报错—ant-design-vue@latest(sha1-qsf / gCIFcRYxyGmOKgx7TmHf1z4 =)seems to be corrupted.
安装 Ant Design Vue 时报错: npm install ant-design-vue --save ant-design-vue @ latest(sha1-qsf / gCIFcRYx ...
- Ant Design Vue项目解析-前言
源码系列文章很长时间没有更新,一是在考虑文章用什么方式写质量会更高,用什么方式总结更易于扩展和总结知识点,加上工作.看书.健身占用的时间比较多所以也没时间去整理.最近在网上看到一篇文章感觉这种方式不错 ...
随机推荐
- Java8新特性之流stream
<Java 8 实战>学习笔记系列 定义 流是Java API的新成员,它允许你以声明性方式处理数据集合,可以把它看成遍历数据集的高级迭代器 示例 List<String> t ...
- 关于Ubuntu系统忘记密码的解决方法合集
昨天有台机器的Ubuntu系统密码出了问题,一直提示错误.由于里面的数据比较重要,不建议重装系统,所以百度了一会,最终解决了忘记密码问题.整理了一个大合集分享出来. 第一种:参考教程如下 ...
- 囚徒问题(100 prisoners problem)的python验证
密码学课上老师介绍了这样一个问题,囚徒问题(100 prisoners problem):一百个囚徒被关在牢房里,典狱长给他们最后一次机会,100人依次进入一个有100个抽屉的牢房,每个抽屉置乱放入1 ...
- 看了Java的Class的源码,我自闭了
java源码之Class 源码的重要性不言而喻,虽然枯燥,但是也有拍案叫绝.这是我的源码系列第二弹,后续还会一直更新,欢迎交流.String源码可以看我的Java源码之String,如有不足,希望 ...
- springMVC --@RequestParam注解(后台控制器获取参数)
在SpringMVC后台控制层获取参数的方式主要有两种,一种是request.getParameter("name"),另外一种是用注解@RequestParam直接获取. 1.获 ...
- 【SpringMVC】
前言
- mysql错误详解(1819):ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
O(∩_∩)O哈哈~ 在学习 Mysql 的时候又遇到了新问题了 o(╥﹏╥)o 当我在准备为用户授权的时候: grant all privileges on *.* to 'root'@'%' id ...
- java中的Arrays这个工具类你真的会用吗
Java源码系列三-工具类Arrays 今天分享java的源码的第三弹,Arrays这个工具类的源码.因为近期在复习数据结构,了解到Arrays里面的排序算法和二分查找等的实现,收益匪浅,决定研读 ...
- Python之浅谈函数
目录 文件的高级应用 文件修改的两种方式 第一种 第二种 函数的定义 函数的参数 函数的返回值 文件的高级应用 r+即可读又可写,并且是在后面追加 w+清空文件的功能是w提供的 a+a有追加的功能,a ...
- 十.总结drf视图
一.对一个资源的五个操作: 如users资源: 序列化是把模型/表中数据以json格式的数据返回给前端,反序列化是把前端通过http post提交过来的json格式数据(data)插入到数据库. 小 ...