in-sale-order-list.js 2.79 KB
export default function() {
  return {
    namespaced: true,
    state: {
      entryOrder: {
        page: 1,
        pageSize: 10,
        pagetotal: 0,
        list: [], // 订单列表
        pullUpload: true,
      },
      notEntryOrder: {
        page: 1,
        pageSize: 10,
        pagetotal: 0,
        list: [], // 订单列表
        pullUpload: true,
      },
      isShowEmpty: false,
    },
    mutations: {
      setEntryOrder(state, res) {
        let { page, pagetotal, data = [] } = res;

        state.entryOrder.page = ++page;
        state.entryOrder.pagetotal = pagetotal;
        state.entryOrder.list = state.entryOrder.list.concat(data);

        // 分页结束
        if (page > pagetotal) {
          state.entryOrder.pullUpload = false;
        }
      },
      setNotEntryOrder(state, res) {
        let { page, pagetotal, data = [] } = res;

        state.isShowEmpty =
          state.entryOrder.list.length === 0 && page === 1 && data.length === 0;

        state.notEntryOrder.page = ++page;
        state.notEntryOrder.pagetotal = pagetotal;
        state.notEntryOrder.list = state.entryOrder.list.concat(data);

        // 分页结束
        if (page > pagetotal) {
          state.notEntryOrder.pullUpload = false;
        }
      },
      filterOrderList(state, orderCode) {
        state.entryOrder.list = state.entryOrder.list.filter(
          order => order.orderCode !== orderCode,
        );
        state.notEntryOrder.list = state.notEntryOrder.list.filter(
          order => order.orderCode !== orderCode,
        );

        state.isShowEmpty =
          state.entryOrder.list.length === 0 &&
          state.notEntryOrder.list.length === 0;
      },
    },
    getters: {
      // scroll 组件参数,是否触发上拉事件
      pullUpload: state =>
        state.entryOrder.pullUpload || state.notEntryOrder.pullUpload,
      orderList: state => {
        const {
          entryOrder: { list: entryOrderList },
          notEntryOrder: { list: notEntryOrderList },
        } = state;

        return entryOrderList.concat(notEntryOrderList);
      },
    },
    actions: {
      async fetchEntryOrderList({ commit, state: { entryOrder } }) {
        const { page } = entryOrder;
        const res = await this.$api.get('/api/ufo/seller/entryPrdList', {
          page,

          // TODO 注释type含义
          type: 1,
        });

        if (res.code === 200) {
          commit('setEntryOrder', res.data);
        }
      },
      async fetchNotEntryOrderList({ commit, state: { notEntryOrder } }) {
        const { page } = notEntryOrder;
        const res = await this.$api.get('/api/ufo/seller/notEntryPrdList', {
          page,
          type: 1,
        });

        if (res.code === 200) {
          commit('setNotEntryOrder', res.data);
        }
      },
    },
  };
}