12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import request from "@/common/request/index.js";
- // 请求前拦截
- const BEFOREINTERCEPT = (axios, currentPage, totalPage) => {
- axios = {
- ...axios,
- data: {
- ...axios.data,
- page: currentPage
- }
- }
- return axios
- }
- //参数处理
- const AFTERINTERCEPT = (result, ListValue, currentPage, totalPage) => {
- if (result.code != 0) throw Error(result.msg);
- currentPage++;
- totalPage = result.totalPage;
- ListValue = ListValue.concat(result.data);
- return {
- ListValue,
- currentPage,
- totalPage
- }
- }
- export default {
- namespaced: true,
- state: {
- ListValue: [], //数据
- currentPage: 1, // 当前页
- totalPage: 1 //总页数
- },
- mutations: {
- increment(state, options) {
- Object.keys(options).forEach(item => state[item] = options[item])
- }
- },
- actions: {
- async reset({
- commit,
- state
- }) {
- return new Promise((resolve, reject) => {
- commit('increment', {
- ListValue: [],
- currentPage: 1,
- totalPage: 1,
- });
- resolve()
- })
- },
- async requestFunc({
- commit,
- state
- }, options) {
- var {
- ListValue,
- currentPage,
- totalPage
- } = state;
- if (currentPage > totalPage) return false;
- let axios = BEFOREINTERCEPT(options, currentPage, totalPage);
- var result = await request(axios);
- result = AFTERINTERCEPT(result, ListValue, currentPage, totalPage);
- commit('increment', result);
- }
- }
- }
|