frontend/src/store/meetingManagement.js

101 lines
3.0 KiB
JavaScript

import MeetingService from '../services/meetingService';
const state = {
meetings: [],
currentMeeting: null
};
const mutations = {
setMeetings(state, meetings) {
state.meetings = meetings;
},
setCurrentMeeting(state, meeting) {
state.currentMeeting = meeting;
}
};
const actions = {
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);
}
},
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 {
const formattedMeeting = {
name: meeting.name,
organizer: meeting.organizer,
startTime: meeting.startTime,
endTime: meeting.endTime,
content: meeting.content,
status: 'Scheduled' // 确保状态为 'Scheduled'
};
await MeetingService.createMeeting(formattedMeeting);
dispatch('fetchMeetings');
} catch (error) {
console.error('Failed to create meeting:', error);
}
},
async editMeeting({ dispatch }, meeting) {
try {
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);
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);
}
}
};
const getters = {
allMeetings: state => state.meetings,
currentMeeting: state => state.currentMeeting
};
export default {
namespaced: true,
state,
mutations,
actions,
getters
};