import Vue from 'vue'

import {
  services as Services
} from '../../../api/index'

var qs = require('qs');
import Util from '../../../util/index'

const state = {
  zyFilter: false,
  zyClass: false,
  zyRank: false,
  classData: [],
  classLight: {},
  zyFilterData: {}, //过滤数据
  zyData: [],
  loading: false,
  finished: false,
  count: 0
}
const mutations = {
  xianhuo(state, payload) {
    if (payload.type == "filter") {
      state.zyFilter = payload.bool;
      state.zyFilterData = payload.data;
    } else if (payload.type == "rank") {
      state.zyRank = payload.bool
    } else if (payload.type == "class") {
      state.zyClass = payload.bool;
      state.classData = payload.data;
    } else if (payload.type == "class_light") {
      state.classLight = payload.data;
    } else if (payload.type == "zydata") {
      state.zyData = state.zyData.concat(payload.data)
    }
  }
}
const actions = {
  getZyData({
    commit
  }, payload) {
    state.loading = true;
    state.finished = false;
    let p = payload.data.p;
    if(p == 1){
      state.zyData = [];
    }
    let params= Util.getParams({
      ...payload.data
    })
    Services.getZyData(params).then((res) => {
      state.loading = false;
      let data = res.data;
      if (data.error_code == 0) {
       
        if(!data.data.data){
          state.finished = true;
          return;
        }
        let totalPage = Math.ceil(data.data.total / 10);
        if (p == totalPage) {
          state.finished = true;
        }
        if (data.data.aggs) {
          commit("xianhuo", { //过滤数据
            type: "filter",
            bool: true,
            data: data.data.aggs,
          })
        }
        if (data.data.class) { //分类数据
          commit("xianhuo", {
            type: "class",
            bool: true,
            data: data.data.class,
          })
        }
        if (data.data.class_light) { //分类选中数据
          commit("xianhuo", {
            type: "class_light",
            data: data.data.class_light,
          })
        }
        if (data.data.total !== 0) { //数据总数
          commit("xianhuo", {
            type: "rank",
            bool: true,
            data: data.data.aggs
          })
        }
        if (data.data.data.data_list) {
          commit('xianhuo', {
            type: 'zydata',
            data: data.data.data.data_list
          })
        }

      } else {
        state.loading = false;
        state.finished = true;
      }
    }).catch(function (err) {
      state.loading = false;
      state.finished = true;
    });
  }
}

export default {
  state,
  actions,
  mutations
}