import axios from 'axios';
import MockAdapter from 'axios-mock-adapter';
import { LoginUsers, Users } from '../mockdata/user';
let _Users = Users;

export default {
  /**
   * mock bootstrap
   */
  bootstrap() {
    let mock = new MockAdapter(axios);

    // mock success request
    mock.onGet('/success').reply(200, {
      msg: 'success'
    });

    // mock error request
    mock.onGet('/error').reply(500, {
      msg: 'failure'
    });

    //登录
    mock.onPost('/login').reply(config => {
      let {username, password} = JSON.parse(config.data);
      return new Promise((resolve, reject) => {
        let user = null;
        setTimeout(() => {
          let hasUser = LoginUsers.some(u => {
            if (u.username === username && u.password === password) {
              user = JSON.parse(JSON.stringify(u));
              user.password = undefined;
              return true;
            }
          });

          if (hasUser) {
            resolve([200, { code: 200, msg: '请求成功', user }]);
          } else {
            resolve([200, { code: 500, msg: '账号或密码错误' }]);
          }
        }, 500);
      });
    });

    //获取用户列表
    mock.onGet('/user/list').reply(config => {
      let {name} = config.params;
      let mockUsers = _Users.filter(user => {
        if (name && user.name.indexOf(name) == -1) return false;
        return true;
      });
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve([200, {
            users: mockUsers
          }]);
        }, 500);
      });
    });

    //获取用户列表(分页)
    mock.onGet('/user/listpage').reply(config => {
      let {page, name} = config.params;
      let mockUsers = _Users.filter(user => {
        if (name && user.name.indexOf(name) == -1) return false;
        return true;
      });
      let total = mockUsers.length;
      mockUsers = mockUsers.filter((u, index) => index < 20 * page && index >= 20 * (page - 1));
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve([200, {
            total: total,
            users: mockUsers
          }]);
        }, 500);
      });
    });

    //删除用户
    mock.onGet('/user/remove').reply(config => {
      let { id } = config.params;
      _Users = _Users.filter(u => u.id !== id);
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve([200, {
            code: 200,
            msg: '删除成功'
          }]);
        }, 500);
      });
    });

    //编辑用户
    mock.onGet('/user/edit').reply(config => {
      let { id, name, addr, age, birth, sex } = config.params;
      _Users.some(u => {
        if (u.id === id) {
          u.name = name;
          u.addr = addr;
          u.age = age;
          u.birth = birth;
          u.sex = sex;
          return true;
        }
      });
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve([200, {
            code: 200,
            msg: '编辑成功'
          }]);
        }, 500);
      });
    });

    //新增用户
    mock.onGet('/user/add').reply(config => {
      let { name, addr, age, birth, sex } = config.params;
      _Users.push({
        name: name,
        addr: addr,
        age: age,
        birth: birth,
        sex: sex
      });
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve([200, {
            code: 200,
            msg: '新增成功'
          }]);
        }, 500);
      });
    });

  }
};

  

最新文章

  1. What is a RaycastHit normal?
  2. Flags-Ural1225简单递推
  3. Kudu 实时的存储系统
  4. php连接redis数据库 操作redis任务队列
  5. Concurrent inserts on MyISAM and the binary log
  6. (5)jvm垃圾回收器相关垃圾回收算法
  7. BZOJ3585: mex
  8. Tcl语言笔记之一
  9. Writing a ServiceMain Function(使用RegisterServiceCtrlHandler函数)
  10. struts2获得提交是get还是post方法提交
  11. CocoaAsyncSocket + Protobuf 处理粘包和拆包问题
  12. 打开safari开发者选项
  13. [转载] HBase vs Cassandra:我们迁移系统的原因
  14. Mego(05) - 创建模型
  15. 其它综合-有趣的linux命令行工具-lolcat
  16. Drag(拖拽)和Move(移动)两个脚本
  17. macbook突然没有声音了
  18. c/c++ lambda 表达式 剖析
  19. 解决no module named ipykernel_launcher
  20. 2016-03-22 OneZero团队 Daily Scrum Meeting

热门文章

  1. pointer-events的css属性。使用该属性可以决定是否能穿透绝对定位元素去触发下面元素的某些行为
  2. pandas学习笔记 - 常见的数据处理方式
  3. HDU 4069 数独
  4. solr + eclipse 调试环境搭建
  5. Qt之图形(简笔画-绘制卡通蚂蚁)
  6. hadoop-10-创建yum资源库
  7. nodejs是什么
  8. [洛谷P1169] [ZJOI2007] 棋盘制作 解题报告(悬线法+最大正方形)
  9. POJ 3187 全排列+杨辉三角(组合数)
  10. 关于 nginx 的配置的 location