From b00e35c31c1b81af48bc0e92cfc41cdaee02fe4e Mon Sep 17 00:00:00 2001 From: Sparkfreeman <2440444538@qq.com> Date: Wed, 3 Jul 2024 15:58:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=99=E4=BA=86=E7=82=B9=20=E8=BF=98?= =?UTF-8?q?=E6=B2=A1debug=20=E8=AF=B6=E5=98=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/meetingManagement.js | 36 +++-- src/services/meetingService.js | 30 +++++ src/store/meetingManagement.js | 69 +++++++--- src/views/meeting-management/AddMeeting.vue | 53 ++++++++ src/views/meeting-management/EditMeeting.vue | 61 +++++++++ .../meeting-management/MeetingManagement.vue | 123 ++++++++++++++++++ 6 files changed, 349 insertions(+), 23 deletions(-) create mode 100644 src/views/meeting-management/AddMeeting.vue create mode 100644 src/views/meeting-management/EditMeeting.vue create mode 100644 src/views/meeting-management/MeetingManagement.vue diff --git a/src/router/meetingManagement.js b/src/router/meetingManagement.js index 6aac70c..0d688a5 100644 --- a/src/router/meetingManagement.js +++ b/src/router/meetingManagement.js @@ -1,9 +1,29 @@ -// import MeetingList from '../views/meeting-management/MeetingList.vue' -// import MeetingDetail from '../views/meeting-management/MeetingDetail.vue' -// import MeetingEdit from '../views/meeting-management/MeetingEdit.vue' +import { createRouter, createWebHistory } from 'vue-router'; +import MeetingManagement from '../views/meeting-management/MeetingManagement.vue'; +import AddMeeting from '../views/meeting-management/AddMeeting.vue'; +import EditMeeting from '../views/meeting-management/EditMeeting.vue'; -export default [ - // { path: '/meetings', component: MeetingList }, - // { path: '/meetings/:id', component: MeetingDetail }, - // { path: '/meetings/:id/edit', component: MeetingEdit } -] +const routes = [ + { + path: '/Meeting', + name: 'MeetingManagement', + component: MeetingManagement + }, + { + path: '/Meeting/add', + name: 'AddMeeting', + component: AddMeeting + }, + { + path: '/Meeting/edit/:id', + name: 'EditMeeting', + component: EditMeeting + } +]; + +const router = createRouter({ + history: createWebHistory(process.env.BASE_URL), + routes +}); + +export default router; \ No newline at end of file diff --git a/src/services/meetingService.js b/src/services/meetingService.js index e69de29..3b63be3 100644 --- a/src/services/meetingService.js +++ b/src/services/meetingService.js @@ -0,0 +1,30 @@ +import axios from 'axios'; + +const API_URL = 'http://localhost:8080/meetings'; + +class MeetingService { + getAllMeetings() { + return axios.get(`${API_URL}/listAll`); + } + + getMeetingById(id) { + // 使用 POST 方法并传递请求体 + return axios.post(`${API_URL}/getMeetingById`, { id }); + } + + createMeeting(meeting) { + return axios.post(`${API_URL}/addMeeting`, meeting); + } + + updateMeeting(id, meeting) { + // 使用 POST 方法而不是 PUT 方法 + return axios.post(`${API_URL}/updateMeeting`, meeting); + } + + deleteMeeting(id) { + // 使用 POST 方法并传递请求体 + return axios.post(`${API_URL}/deleteMeeting`, { id }); + } +} + +export default new MeetingService(); \ No newline at end of file diff --git a/src/store/meetingManagement.js b/src/store/meetingManagement.js index 147e57a..b6e0ad1 100644 --- a/src/store/meetingManagement.js +++ b/src/store/meetingManagement.js @@ -1,27 +1,66 @@ +import MeetingService from '../services/meetingService'; + const state = { - meetings: [] -} + meetings: [], + currentMeeting: null +}; const mutations = { setMeetings(state, meetings) { - state.meetings = meetings + state.meetings = meetings; + }, + setCurrentMeeting(state, meeting) { + state.currentMeeting = meeting; } -} +}; const actions = { - fetchMeetings({ commit }) { - // 模拟API调用 - const meetings = [ - { id: 1, title: 'Meeting 1' }, - { id: 2, title: 'Meeting 2' } - ] - commit('setMeetings', meetings) + async fetchMeetings({ commit }) { + try { + const response = await MeetingService.getAllMeetings(); + commit('setMeetings', response.data); + } catch (error) { + console.error('Failed to fetch 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 { + await MeetingService.createMeeting(meeting); + dispatch('fetchMeetings'); + } catch (error) { + console.error('Failed to create meeting:', error); + } + }, + async updateMeeting({ dispatch }, meeting) { + try { + await MeetingService.updateMeeting(meeting.id, meeting); + 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 -} + allMeetings: state => state.meetings, + currentMeeting: state => state.currentMeeting +}; export default { namespaced: true, @@ -29,4 +68,4 @@ export default { mutations, actions, getters -} +}; \ No newline at end of file diff --git a/src/views/meeting-management/AddMeeting.vue b/src/views/meeting-management/AddMeeting.vue new file mode 100644 index 0000000..51bd0a8 --- /dev/null +++ b/src/views/meeting-management/AddMeeting.vue @@ -0,0 +1,53 @@ + + + \ No newline at end of file diff --git a/src/views/meeting-management/EditMeeting.vue b/src/views/meeting-management/EditMeeting.vue new file mode 100644 index 0000000..fd9197d --- /dev/null +++ b/src/views/meeting-management/EditMeeting.vue @@ -0,0 +1,61 @@ + + + \ No newline at end of file diff --git a/src/views/meeting-management/MeetingManagement.vue b/src/views/meeting-management/MeetingManagement.vue new file mode 100644 index 0000000..f442d47 --- /dev/null +++ b/src/views/meeting-management/MeetingManagement.vue @@ -0,0 +1,123 @@ + + + + + \ No newline at end of file