const state = { home: {} }; const getters = { // 商品分类 categoryList(state) { return state.home.categoryList || []; }, // 热销商品 hotSkuList(state) { return state.home.hotSkuList || []; }, // 新人专享 newPersonSkuInfoList(state) { return state.home.newPersonSkuInfoList || []; }, // 提货点信息 leaderAddressVo(state) { return state.home.leaderAddressVo || {} }, // 秒杀时间 seckillTime(state) { return state.home.seckillTime || {} }, // 秒杀商品 seckillSkuVoList(state) { return state.home.seckillSkuVoList || [] } }; const mutations = { // 获取首页数据 getHomeIndexMutation(state, payload) { state.home = payload } }; const actions = { async getHomeIndexAction({ commit, dispatch }) { // 直接用this.$u.api在仓库中是无法调用到对应的接口的,因为this对象指向不同 // 仓库中的this指向的是Store,所以需要通过this._vm来找到对应的Vue实例 let result = await this._vm.$u.api.getHomeIndex() await commit('getHomeIndexMutation', result) // 利用root属性将派发pickUpLocation模块中的action动作 dispatch('pickUpLocationModule/changeLeaderAddressVoAction', result.leaderAddressVo, { root: true }) dispatch('cartModule/getCartListAction', {}, {root: true}) } }; export default { namespaced: true, state, mutations, actions, getters, };