|
|
@@ -6,6 +6,12 @@ import {
|
|
|
WorkspaceState, RootState, ChangeProjectPayload, UserState,
|
|
|
} from '../typings';
|
|
|
|
|
|
+const NOT_SELECT_PROJECT_HINT = '未选择项目';
|
|
|
+
|
|
|
+const EMPTY_PROJECT_LIST_HINT = '暂无项目';
|
|
|
+
|
|
|
+const NO_SUCH_PROJECT_HINT = '未知项目';
|
|
|
+
|
|
|
const DEFAULT: WorkspaceState = {
|
|
|
currentProjectId: -1,
|
|
|
currentProjectMembers: [],
|
|
|
@@ -14,11 +20,11 @@ const DEFAULT: WorkspaceState = {
|
|
|
|
|
|
const actions: ActionTree<WorkspaceState, RootState> = {
|
|
|
async refreshProjectList({ commit }) {
|
|
|
- const projectList = await ProjectAPI.getProjectListByUserId();
|
|
|
+ const projectList = (await ProjectAPI.getProjectListByUserId()) || [];
|
|
|
commit('updateProjectList', projectList);
|
|
|
},
|
|
|
async changeProject({ commit }, payload: ChangeProjectPayload) {
|
|
|
- const members = await ProjectAPI.getProjectMembersByProjectId(payload.projectId);
|
|
|
+ const members = (await ProjectAPI.getProjectMembersByProjectId(payload.projectId)) || [];
|
|
|
commit('updateMembers', members);
|
|
|
commit('changeProject', payload);
|
|
|
},
|
|
|
@@ -41,11 +47,23 @@ const mutations: MutationTree<WorkspaceState> = {
|
|
|
|
|
|
const getters: GetterTree<WorkspaceState, RootState> = {
|
|
|
currentProjectInfo(state) {
|
|
|
- return Array.prototype.find.call(state.projectList, (project) => project.id === state.currentProjectId)
|
|
|
- || {
|
|
|
+ if (state.projectList.length === 0) {
|
|
|
+ return {
|
|
|
+ id: -1,
|
|
|
+ name: EMPTY_PROJECT_LIST_HINT,
|
|
|
+ };
|
|
|
+ }
|
|
|
+ if (state.currentProjectId === -1) {
|
|
|
+ return {
|
|
|
id: -1,
|
|
|
- name: '未选择项目',
|
|
|
+ name: NOT_SELECT_PROJECT_HINT,
|
|
|
};
|
|
|
+ }
|
|
|
+ const currentProjectInfo = Array.prototype.find.call(state.projectList, (project) => project.id === state.currentProjectId);
|
|
|
+ return currentProjectInfo || {
|
|
|
+ id: -1,
|
|
|
+ name: NO_SUCH_PROJECT_HINT,
|
|
|
+ };
|
|
|
},
|
|
|
userOptions(state) {
|
|
|
return state.currentProjectMembers.map((user) => ({
|