frontend/src/store/meetingManagement.js

101 lines
3.0 KiB
JavaScript
Raw Normal View History

2024-07-03 07:58:37 +00:00
import MeetingService from '../services/meetingService';
2024-06-24 03:56:21 +00:00
const state = {
2024-07-03 07:58:37 +00:00
meetings: [],
currentMeeting: null
};
2024-06-24 03:56:21 +00:00
const mutations = {
setMeetings(state, meetings) {
2024-07-03 07:58:37 +00:00
state.meetings = meetings;
},
setCurrentMeeting(state, meeting) {
state.currentMeeting = meeting;
2024-06-24 03:56:21 +00:00
}
2024-07-03 07:58:37 +00:00
};
2024-06-24 03:56:21 +00:00
const actions = {
2024-07-03 07:58:37 +00:00
async fetchMeetings({ commit }) {
try {
const response = await MeetingService.getAllMeetings();
commit('setMeetings', response.data);
} catch (error) {
console.error('Failed to fetch meetings:', error);
}
},
async searchMeetings({ commit }, params) {
try {
const formattedparams = {
name: params.name,
organizer: params.organizer,
startTime: params.startTime,
};
const response = await MeetingService.searchMeetings(formattedparams);
commit('setMeetings', response.data);
} catch (error) {
console.error('Failed to search meetings:', error);
}
},
2024-07-03 07:58:37 +00:00
async fetchMeetingById({ commit }, id) {
try {
const response = await MeetingService.getMeetingById(id);
commit('setCurrentMeeting', response.data);
} catch (error) {
console.error('Failed to fetch meeting:', error);
}
},
async createMeeting({ dispatch }, meeting) {
try {
2024-07-03 16:12:46 +00:00
const formattedMeeting = {
name: meeting.name,
organizer: meeting.organizer,
startTime: meeting.startTime,
endTime: meeting.endTime,
content: meeting.content,
status: 'Scheduled' // 确保状态为 'Scheduled'
};
await MeetingService.createMeeting(formattedMeeting);
2024-07-03 07:58:37 +00:00
dispatch('fetchMeetings');
} catch (error) {
console.error('Failed to create meeting:', error);
}
},
2024-07-03 16:12:46 +00:00
async editMeeting({ dispatch }, meeting) {
2024-07-03 07:58:37 +00:00
try {
2024-07-03 16:12:46 +00:00
const formattedMeeting = {
name: meeting.name,
organizer: meeting.organizer,
startTime: meeting.startTime,
endTime: meeting.endTime,
content: meeting.content,
status: 'Scheduled' // 确保状态为 'Scheduled'
};
await MeetingService.updateMeeting(meeting.id, formattedMeeting);
2024-07-03 07:58:37 +00:00
dispatch('fetchMeetings');
} catch (error) {
console.error('Failed to update meeting:', error);
}
},
async deleteMeeting({ dispatch }, id) {
try {
await MeetingService.deleteMeeting(id);
dispatch('fetchMeetings');
} catch (error) {
console.error('Failed to delete meeting:', error);
}
2024-06-24 03:56:21 +00:00
}
2024-07-03 07:58:37 +00:00
};
2024-06-24 03:56:21 +00:00
const getters = {
2024-07-03 07:58:37 +00:00
allMeetings: state => state.meetings,
currentMeeting: state => state.currentMeeting
};
2024-06-24 03:56:21 +00:00
export default {
namespaced: true,
state,
mutations,
actions,
getters
2024-07-03 07:58:37 +00:00
};