|
|
@@ -1,21 +1,45 @@
|
|
|
+import { destoryToken, saveToken } from '@/utils/token';
|
|
|
import { createStore } from 'vuex';
|
|
|
+import { useRouter } from 'vue-router';
|
|
|
|
|
|
-export default createStore({
|
|
|
+import {
|
|
|
+ ChangeGroupPayload, ChangeProjectPayload, RootState, TokenPayload,
|
|
|
+} from './typings';
|
|
|
+
|
|
|
+export default createStore<RootState>({
|
|
|
state: {
|
|
|
- projectList: [{ name: '项目一', description: 'asd', id: 0 },
|
|
|
- { name: '项目二', description: 'asd', id: 1 },
|
|
|
- { name: '项目三', description: 'asd', id: 2 },
|
|
|
- { name: '长项目名12312312312123123312', description: 'asd', id: 3 },
|
|
|
- { name: '项目一', description: 'asd', id: 4 },
|
|
|
- { name: '项目二', description: 'asd', id: 5 },
|
|
|
- { name: '项目三', description: 'asd', id: 6 },
|
|
|
- { name: '长项目名12312312312123123312', description: 'asd', id: 7 }],
|
|
|
+ currentGroup: -1,
|
|
|
+ currentProject: -1,
|
|
|
+ token: localStorage.getItem('token') || '',
|
|
|
},
|
|
|
mutations: {
|
|
|
- refreshProjectList(state) {
|
|
|
- state.projectList = [{ name: '项目一', description: 'asd', id: 0 },
|
|
|
- { name: '项目二', description: 'asd', id: 1 },
|
|
|
- { name: '项目三', description: 'asd', id: 2 }];
|
|
|
+ changeGroup(state, { groupId }: ChangeGroupPayload) {
|
|
|
+ state.currentGroup = groupId;
|
|
|
+ },
|
|
|
+ changeProject(state, { projectId }: ChangeProjectPayload) {
|
|
|
+ state.currentProject = projectId;
|
|
|
+ },
|
|
|
+ updateToken(state, { token }: TokenPayload) {
|
|
|
+ state.token = token;
|
|
|
+ },
|
|
|
+ },
|
|
|
+ actions: {
|
|
|
+ changeGroup({ commit }, payload: ChangeGroupPayload) {
|
|
|
+ commit('changeGroup', payload);
|
|
|
+ },
|
|
|
+ changeProject({ commit }, payload: ChangeProjectPayload) {
|
|
|
+ commit('changeProject', payload);
|
|
|
+ },
|
|
|
+ updateToken({ commit }, payload: TokenPayload) {
|
|
|
+ commit('updateToken', payload);
|
|
|
+ saveToken(payload.token);
|
|
|
+ },
|
|
|
+ destoryToken({ commit }) {
|
|
|
+ commit('updateToken', {
|
|
|
+ token: '',
|
|
|
+ } as TokenPayload);
|
|
|
+ destoryToken();
|
|
|
+ useRouter().push('/home');
|
|
|
},
|
|
|
},
|
|
|
});
|