nebula/store/user.js

155 lines
3.6 KiB
JavaScript
Raw Normal View History

2020-08-01 00:41:00 +08:00
/**
* @file 用户信息状态 / ES module
* @module store/category
* @author Ronger <https://github.com/ronger-x>
*/
export const USER_API_PATH = '/api/user'
export const state = () => {
return {
fetching: false,
data: [],
userExtend: {},
2020-08-01 00:41:00 +08:00
articles: {
articles: [],
pagination: {}
},
portfolios: {
portfolios: [],
pagination: {}
2020-10-25 01:40:24 +08:00
},
followers: {
users: [],
pagination: {}
},
followings: {
users: [],
pagination: {}
2020-08-01 00:41:00 +08:00
}
}
}
export const mutations = {
updateFetching(state, action) {
state.fetching = action
},
updateDetailData(state, action) {
state.data = action
},
updateUserExtendData(state, action) {
state.userExtend = action
},
2020-08-01 00:41:00 +08:00
updateArticleList(state, action) {
state.articles = action
},
updatePortfolioList(state, action) {
state.portfolios = action
2020-10-25 01:40:24 +08:00
},
updateFollowerList(state, action) {
state.followers = action
},
updateFollowingList(state, action) {
state.followings = action
2020-08-01 00:41:00 +08:00
}
}
export const actions = {
fetchDetail({ commit }, params) {
commit('updateFetching', true);
return this.$axios
.$get(`${USER_API_PATH}/${params.nickname}`)
.then(response => {
commit('updateDetailData', response)
commit('updateFetching', false)
})
.catch(error => {
commit('updateFetching', false)
})
},
fetchUserExtend({ commit }, params) {
commit('updateFetching', true);
return this.$axios
.$get(`${USER_API_PATH}/${params.nickname}/user-extend`)
.then(response => {
commit('updateUserExtendData', response)
commit('updateFetching', false)
})
.catch(error => {
commit('updateFetching', false)
})
},
2020-08-01 00:41:00 +08:00
fetchArticleList({commit}, params) {
2020-08-02 00:25:44 +08:00
commit('updateFetching', true);
2020-08-01 00:41:00 +08:00
return this.$axios
.$get(`${USER_API_PATH}/${params.nickname}/articles`, {
params: {
page: params.page
}
})
.then(response => {
commit('updateArticleList', response)
commit('updateFetching', false)
})
.catch(error => {
commit('updateFetching', false)
})
},
fetchPortfolioList({commit}, params) {
2020-08-02 00:25:44 +08:00
commit('updateFetching', true);
2020-08-01 00:41:00 +08:00
return this.$axios
.$get(`${USER_API_PATH}/${params.nickname}/portfolios`, {
params: {
page: params.page
}
})
.then(response => {
commit('updatePortfolioList', response)
commit('updateFetching', false)
})
.catch(error => {
commit('updateFetching', false)
})
2020-10-25 01:40:24 +08:00
},
fetchFollowerList({commit}, params) {
commit('updateFetching', true);
commit('updateFollowerList', {
users: [],
pagination: {}
})
return this.$axios
.$get(`${USER_API_PATH}/${params.nickname}/followers`, {
params: {
page: params.page
}
})
.then(response => {
commit('updateFollowerList', response)
commit('updateFetching', false)
})
.catch(error => {
commit('updateFetching', false)
})
},
fetchFollowingList({commit}, params) {
commit('updateFetching', true);
commit('updateFollowingList', {
users: [],
pagination: {}
})
return this.$axios
.$get(`${USER_API_PATH}/${params.nickname}/followings`, {
params: {
page: params.page
}
})
.then(response => {
commit('updateFollowingList', response)
commit('updateFetching', false)
})
.catch(error => {
commit('updateFetching', false)
})
2020-08-01 00:41:00 +08:00
}
}