使用mockjs模拟分页请求


首先安装mockjs

npm install mockjs --save-dev

创建mock.js

//mock.js
const Mock = require("mockjs");
// const Random = Mock.Random // Mock.Random 是一个工具类,用于生成各种随机数据
const dataList = []
//用于接受生成数据的数组
for (let i = 0; i < 50; i++) { // 可自定义生成的个数
  const template = {
    "roleId": i,
    "name": "admin" + i,
    "remark": "超级管理员" + i,
    "createBy": null,
    "createTime": "2018-08-14T03:11:11.000+0000",
    "lastUpdateBy": null,
    "lastUpdateTime": null,
    "delFlag": 0
  }
  dataList.push(template)
}
Mock.mock(/role\/query/, 'post', (params) => { //三个参数。第一个路径,第二个请求方式post/get,第三个回调,返回值
  var info = JSON.parse(params.body)
  var [index, size, total] = [info.params.pageIndex, info.params.pageSize, dataList.length]
  var len = total / size
  var totalPages = len - parseInt(len) > 0 ? parseInt(len) + 1 : len
  var newDataList = dataList.slice((index - 1) * size, index * size)
  return {
    'code': '0',
    'message': 'success',
    'data': {
      'pageIndex': index,
      'pageSize': size,
      'content': newDataList,
      'total': total,
      'totalPages': totalPages,
    }
  }
})

在main.js中引入mock.js

import './mock/index.js'
在组件中模拟请求
//role.vue
 methods: {
    // 获取数据
    async getSysRoleData () {
      try {
        const url = '/role/query';
        const { data: res } = await this.$http[4].post(url, {
          params: {
            pageIndex: this.query.pageIndex,
            pageSize: this.query.pageSize
          }
        });
        console.log("角色管理列表:", res.data)
      } catch (err) {
        console.dir(err);
        this.$message.error({
          message: err.message,
          duration: 1500
        });
      }
    },
}

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM