使用说明 · Axios 中文说明 · 看云
参考的人家的 src/api js 的文件写法

需求

当前页面需要多个 axios 请求,因为需要加 loading 加载动画,所以决定当前页面所有的 axios 请求使用一个大的全屏的加载动画,因此需要知道所有请求的状态(无论失败),到所有的请求全部执行完了之后,再隐藏加载条。

源码

  1. src/api/index.js 文件 ``` // 解决 axios 兼容 IE 问题 import ‘core-js/es6/promise’ import axios from ‘axios’ // 解决 axios 数据提交格式与后台不一致的问题 post 使用 qs.stringify() import qs from ‘qs’ import store from ‘../store’;

const baseURL = process.env.NODE_ENV === ‘production’ ? ‘http://xxx.xx.xxx.xx:8080‘ : ‘http://localhost:8080

/*基础信息页面 / const basicInformation = { // 获取客户类型数据 getCusBaseInfo() { return axios .get(baseURL + ‘/dictpc/getCusBaseInfo?vip_card=’ + store.getters.getVipCard) }, // 获取关键人 table 数据 getKeyPeopleList() { return axios .get(baseURL + ‘/dictpc/getKeyPeopleList?vip_card=’ + store.getters.getVipCard) }, /*

  • 获取客户列表数据 可传参
  • @param {object} params
  • pageNum 当前的页码数字
  • pageSize 每一页的数据条数
  • vip_card */ getCusCrmList(params) { const parameter = params || { pageNum: 1, pageSize: 10, vip_card: store.getters.getVipCard || ‘’ } return axios .get(baseURL + ‘/dictpc/getCusCrmList’, { params: parameter}) } }

/*客触记录页面 */ const guestRecord = { // 请求客户类型 getCustomVisit() { return axios .get(baseURL + ‘/dictpc/getCustomVisit?vip_card=’ + store.getters.getVipCard) } }

/*产品订购页面 */ const orderingProduct = { // 请求客户类型 getCustomVisit() { return axios .get(baseURL + ‘/dictpc/getCustomVisit?vip_card=’ + store.getters.getVipCard) } }

/*账户信息页面 / const accountInformation = { /*

  • 获取客户列表数据 可传参
  • @param {object} params
  • pageNum 当前的页码数字
  • pageSize 每一页的数据条数
  • vip_card */ getAccountInfoList(params) { const parameter = params || { pageNum: 1, pageSize: 10, vip_card: store.getters.getVipCard } return axios .get(baseURL + ‘/dictpc/getAccountInfoList’, { params: parameter}) } }

/*账单信息页面 */ const billingInformation = { // 请求客户类型 getCustomVisit() { const parameter = params || { pageNum: 1, pageSize: 10, vip_card: store.getters.getVipCard } return axios .get(baseURL + ‘/dictpc/getAccountInfoList’, { params: parameter}) } }

/*需求调研页面 */ const requestingResearch = { // 请求客户类型 getCustomVisit() { return axios .get(baseURL + ‘/dictpc/getCustomVisit?vip_card=’ + store.getters.getVipCard) } }

export { basicInformation, guestRecord, orderingProduct, accountInformation, billingInformation, requestingResearch }

  1. 2. `.vue` 页面的 `js -> export default{}` 部分

import { basicInformation } from “@/api”; import axios from “axios”;

export default { name: “basicInformation”, data() { return { /**

  1. * baseTypeData 客户类型获取的数据
  2. */
  3. baseTypeData: {},
  4. // 关键人 table 获取的数据
  5. keyPeopleList: [],
  6. // 客户列表获取的数据
  7. cusCrmList: {},
  8. // 账号信息 table 数据
  9. tableData3: []
  10. };

}, computed: {}, created() { const me = this; me.getPageData(); }, methods: { // 获取页面基本数据 getPageData() { const me = this; const loading = me.$loading(); axios .all([ // 获取客户类型数据 basicInformation.getCusBaseInfo(), // 获取关键人 table 数据 basicInformation.getKeyPeopleList(), // 获取客户列表数据 带分页 basicInformation.getCusCrmList() ]) .then( axios.spread(function(cusBaseInfo, keyPeopleList, cusCrmList) { // 请求现在都执行完成 console.log(cusBaseInfo); console.log(keyPeopleList); console.log(cusCrmList);

  1. cusBaseInfo.data.code === 200 &&
  2. (me.baseTypeData = cusBaseInfo.data.data);
  3. keyPeopleList.data.code === 200 &&
  4. (me.keyPeopleList = keyPeopleList.data.data);
  5. cusCrmList.data.code === 200 &&
  6. (me.cusCrmList = cusCrmList.data.data);
  7. loading.close();
  8. })
  9. )
  10. .catch(error => {
  11. console.log(error);
  12. loading.close();
  13. });
  14. },
  15. handleCurrentChange(val) {
  16. const me = this;
  17. console.log(`当前页: ${val}`);
  18. // 请求页码数据
  19. basicInformation.getCusCrmList({
  20. // 当前的页码数字
  21. pageNum: val,
  22. // 每一页的数据条数
  23. pageSize: 10,
  24. vip_card: me.$store.getters.getVipCard
  25. });
  26. },
  27. /**
  28. * 客户列表某一行点击的回调方法
  29. * http://element-cn.eleme.io/#/zh-CN/component/table
  30. */
  31. clientRowHandle(row, event, column) {
  32. console.log(row);
  33. }

} };

```