ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例

目录

1. 准备工作

2. 弹出窗口

3. 新增更新功能

4. 删除功能

5. 表单验证

5. 接口文档


1. 准备工作

后台服务接口,对书本的增删改查操作

2. 弹出窗口

进入ElementUi官网, 找到Dialog对话框,可以参考“嵌套表单的dialog”实现。
该步骤先实现弹出窗口的前端逻辑,并不会调用后台接口服务进行实际的业务操作。
BookList.vue



  
    
      
    
    
      
    
    
      
    
    
      
        
        
      
    
  
  

在数据表格中添加“编辑”“删除”功能连接。(在element-ui官方demo -> table组件中,有如何加入删除,编辑等按钮的示例)

    
    
      
      
      
      
      
      
        
        
      
    

script部分:

export default {
name: 'BookList',

data: function() {
  return {
    bookname: '',
    books: [],
    total: 0,
    rows: 10,
    page: 1,

    //控制对话框是否显示,默认是隐藏状态
    dialogFormVisible: false,

    //统一控制标签的宽度
    formLabelWidth: '40px',

    //统一控制表单元素的宽度
    formEleWidth: '400px',

    //对话框标题,默认为新增,如果是点击修改按钮打开对话框,则标题应为修改。
    dialogName:'新增书本',

    //操作类型,默认为添加,如果是点击修改打开对话框,则操作类类型应变为修改
    //该变量用于控制是否显示书本编号字段,当操作类型为新增时不需显示(书本编号数据表字段为自增)
    //当操作类型为修改时,需要显示。
    optiontype: 'add',

    //定义表单对应的model
    bookForm: {
      id: '',
      bookname: '',
      price:null,
      booktype: ''
    }
  }
},

methods: {
  qry: function() {
    let url = this.axios.urls.BOOKMSG_BOOKINFO_REQ;
    this.axios.post(url, {
      bookname: this.bookname,
      page: this.page,
      rows: this.rows
    }).then(resp => {
      console.log(resp);
      this.books = resp.data.data;
      this.total = resp.data.total;
    }).catch(error => {
      console.log(error);
    });
  },

  //当每页显示的记录数发生变化时,设置当前页码为1,执行查询。
  handleSizeChange: function(rows) {
    this.rows = rows;
    this.page = 1;
    this.qry();
  },

  //当前页码发生变化时,执行查询
  handleCurrentChange: function(page) {
    this.page = page;
    this.qry();
  },

  //当关闭对话框时,该方法用于清空表单
  closeBookForm: function() {
    this.bookForm.id=null;
    this.bookForm.bookname = null;
    this.bookForm.booktype = null;
    this.bookForm.price = null;
  },

  //打开对话框,将对话框标题设置为新增,操作类型设置为'add'
  addBook: function() {
    this.dialogName = '新增书本信息';
    this.dialogFormVisible = true;
    this.optiontype = 'add';
  },

  //打开对话框,将对话框标题设置为修改,操作类型设置为'update',
  //并使用获取的待修改的记录的值设置对应的表单元素
  handleEdit: function(row) {
    this.dialogName = '编辑书本信息';
    this.dialogFormVisible = true;
    this.bookForm.id=row.id;
    this.bookForm.bookname = row.bookname;
    this.bookForm.booktype = row.booktype;
    this.bookForm.price = row.price;
    this.optiontype = 'update';
  },

  //删除书本记录
  handleDelete: function(row) {
    console.log("dele  = " + row);
  }

}
}

3. 新增更新功能

1) 在action.js中加入后台接口配置配置时按照自己的项目实际进行,不要照抄

ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例_第1张图片

2) 在前端调用接口前请确认后台接口可正常使用

图一:

ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例_第2张图片

图二:
ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例_第3张图片

4. 删除功能

ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例_第4张图片

5. 表单验证

查看Element-ui官方文档Form部分
图一:

ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例_第5张图片

如果需要自定义验证规则,用法如下图所示:
图二

ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例_第6张图片

定义验证规则,及rule
图三

ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例_第7张图片

 

调用验证,图四

ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例_第8张图片

通过form表单的ref属性来清空表单验证信息,图五

ElementUi中的Dialog对话框——弹出窗口与新增更新功能为例_第9张图片

5. 接口文档

接口文档需要包含的基本要素:

接口地址:
请求方式:get/post/put/delete等
请求示例:举例说明如何调用
请求参数:说明请求参数,及存放的位置,如url,form-data, body raw等等。
返回参数:
正确:说明返回的json数据
错误:指明不同错误的代码及含义

你可能感兴趣的:(vue前端,vue.js,前端,elementui)