export const ADMIN_API_PATH = '/api/admin' const getDefaultUsersData = () => { return { users: [], pagination: {} } } const getDefaultRolesData = () => { return { role: [], pagination: {} } } const getDefaultArticlesData = () => { return { articles: [], pagination: {} } } const getDefaultCommentsData = () => { return { comments: [], pagination: {} } } const getDefaultProductsData = () => { return { products: [], pagination: {} } } export const state = () => { return { fetching: false, users: getDefaultUsersData(), roles: getDefaultRolesData(), articles: getDefaultArticlesData(), comments: getDefaultCommentsData(), products: getDefaultProductsData(), tabs: [ { title: 'Dashboard', name: 'admin-dashboard', path: '/admin/dashboard', icon: 'el-icon-s-data', closable: false } ], activeTab: 'admin-dashboard' } } export const mutations = { updateFetching(state, action) { state.fetching = action }, updateUsersData(state, action) { state.users = action }, updateRolesData(state, action) { state.roles = action }, updateArticlesData(state, action) { state.articles = action }, updateCommentsData(state, action) { state.comments = action }, updateProductsData(state, action) { state.products = action }, updateArticlePreference(state, action) { let articles = state.articles.list[action.index] if (articles.idArticle === action.idArticle) { articles.articlePerfect = action.articlePerfect } }, updateTags(state, action) { state.tabs = action }, pushTags(state, action) { let tabs = state.tabs tabs.push(action) }, updateActiveTab(state, action) { state.activeTab = action } } export const actions = { fetchUsers({commit}, params = {}) { if (params && params.reset === '0') { return true; } // 清空已有数据 commit('updateUsersData', getDefaultUsersData()) commit('updateFetching', true) let data = { page: params.page || 1, rows: params.rows || 10 } return this.$axios .$get(`${ADMIN_API_PATH}/users`, { params: data }) .then(response => { commit('updateFetching', false); commit('updateUsersData', response); }) .catch(error => { console.log(error); commit('updateFetching', false); }); }, fetchRoles({commit}, params = {}) { if (params && params.reset === '0') { return true; } // 清空已有数据 commit('updateRolesData', getDefaultRolesData()) commit('updateFetching', true) let data = { page: params.page || 1, rows: params.rows || 10 } return this.$axios .$get(`${ADMIN_API_PATH}/roles`, { params: data }) .then(response => { commit('updateFetching', false); commit('updateRolesData', response); }) .catch(error => { console.log(error); commit('updateFetching', false); }); }, fetchArticles({commit}, params = {}) { if (params && params.reset === '0') { return true; } // 清空已有数据 commit('updateArticlesData', getDefaultArticlesData()) commit('updateFetching', true) let data = { page: params.page || 1, rows: params.rows || 10, topicUri: 'news' } return this.$axios .$get(`${ADMIN_API_PATH}/articles`, { params: data }) .then(response => { commit('updateFetching', false); commit('updateArticlesData', response); }) .catch(error => { console.log(error); commit('updateFetching', false); }); }, fetchComments({commit}, params = {}) { if (params && params.reset === '0') { return true; } // 清空已有数据 commit('updateCommentsData', getDefaultCommentsData()) commit('updateFetching', true) let data = { page: params.page || 1, rows: params.rows || 10 } return this.$axios .$get(`${ADMIN_API_PATH}/comments`, { params: data }) .then(response => { commit('updateFetching', false); commit('updateCommentsData', response); }) .catch(error => { console.log(error); commit('updateFetching', false); }); }, fetchProducts({commit}, params = {}) { if (params && params.reset === '0') { return true; } // 清空已有数据 commit('updateProductsData', getDefaultProductsData()) commit('updateFetching', true) let data = { page: params.page || 1, rows: params.rows || 10 } return this.$axios .$get(`${ADMIN_API_PATH}/products`, { params: data }) .then(response => { commit('updateFetching', false); commit('updateProductsData', response); }) .catch(error => { console.log(error); commit('updateFetching', false); }); } }