import pagination from '@/store/modules/pagination';

const GET_LIST = 'GET_LIST';

const state = () => ({
  list: [],
});

const getters = {
  listData: state => state.list,
};

const actions = {
  fetchAboutList({ state, commit, dispatch }, entity) {
    return new Promise(resolve => {
      const list = [
        { id: 1, name: '123' },
        { id: 2, name: '223' },
        { id: 3, name: '323' },
      ];
      const pagination = {
        pageNum: state.pagination.pageNum,
        pageSize: state.pagination.pageSize,
        ...entity,
        total: 500,
      };
      dispatch('updatePagination', pagination);
      commit(GET_LIST, list);
      resolve();
    });
    return fetchAboutList({
      data: {
        pageNum: state.pagination.pageNum,
        pageSize: state.pagination.pageSize,
        ...entity,
      },
    }).then(res => {
      const { list, ...pagination } = res.data;
      dispatch('updatePagination', pagination);
      commit(GET_LIST, list);
    });
  },
};

const mutations = {
  [GET_LIST]: (state, list) => {
    state.list = list;
  },
};

export default {
  namespaced: true,
  modules: {
    pagination,
  },
  state,
  getters,
  actions,
  mutations,
};