From 3aea6a3f136de81905ca18bad2f643e9f74e27ef Mon Sep 17 00:00:00 2001 From: quu Date: Thu, 8 May 2025 22:25:42 +0900 Subject: [PATCH] =?UTF-8?q?hrm=20=E4=BC=9A=E8=AE=AE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/hrm/meetingbook/index.ts | 57 +++ src/api/hrm/meetingroom/index.ts | 50 +++ src/api/hrm/meetinguser/index.ts | 44 +++ src/views/hrm/meetingbook/MeetingBookForm.vue | 194 +++++++++++ .../components/MeetingUserForm.vue | 135 ++++++++ src/views/hrm/meetingbook/index.vue | 325 ++++++++++++++++++ src/views/hrm/meetingroom/MeetingRoomForm.vue | 164 +++++++++ src/views/hrm/meetingroom/index.vue | 318 +++++++++++++++++ src/views/hrm/meetinguser/MeetingUserForm.vue | 133 +++++++ src/views/hrm/meetinguser/index.vue | 241 +++++++++++++ 10 files changed, 1661 insertions(+) create mode 100644 src/api/hrm/meetingbook/index.ts create mode 100644 src/api/hrm/meetingroom/index.ts create mode 100644 src/api/hrm/meetinguser/index.ts create mode 100644 src/views/hrm/meetingbook/MeetingBookForm.vue create mode 100644 src/views/hrm/meetingbook/components/MeetingUserForm.vue create mode 100644 src/views/hrm/meetingbook/index.vue create mode 100644 src/views/hrm/meetingroom/MeetingRoomForm.vue create mode 100644 src/views/hrm/meetingroom/index.vue create mode 100644 src/views/hrm/meetinguser/MeetingUserForm.vue create mode 100644 src/views/hrm/meetinguser/index.vue diff --git a/src/api/hrm/meetingbook/index.ts b/src/api/hrm/meetingbook/index.ts new file mode 100644 index 000000000..192af09bb --- /dev/null +++ b/src/api/hrm/meetingbook/index.ts @@ -0,0 +1,57 @@ +import request from '@/config/axios' + +// 会议室预约 VO +export interface MeetingBookVO { + id: number // 唯一主键 + meetingRoomId: number // 会议室ID + name: string // 会议名称 + startTime: Date // 会议开始时间 + endTime: Date // 会议结束时间 + content: string // 会议内容 + tip: number // 会议提醒(字典:5分钟,10分钟,15分钟,30分钟,60分钟,前一天) + status: number // 状态:取消预订、已预订 + deptId: number // 部门ID + createUserId: number // 创建者ID(提交人与领用人可能不同) + updateUserId: number // 更新者ID + deletedFlag: number // 删除标记:1-正常,-1-已删除 +} + +// 会议室预约 API +export const MeetingBookApi = { + // 查询会议室预约分页 + getMeetingBookPage: async (params: any) => { + return await request.get({ url: `/hrm/meeting-book/page`, params }) + }, + + // 查询会议室预约详情 + getMeetingBook: async (id: number) => { + return await request.get({ url: `/hrm/meeting-book/get?id=` + id }) + }, + + // 新增会议室预约 + createMeetingBook: async (data: MeetingBookVO) => { + return await request.post({ url: `/hrm/meeting-book/create`, data }) + }, + + // 修改会议室预约 + updateMeetingBook: async (data: MeetingBookVO) => { + return await request.put({ url: `/hrm/meeting-book/update`, data }) + }, + + // 删除会议室预约 + deleteMeetingBook: async (id: number) => { + return await request.delete({ url: `/hrm/meeting-book/delete?id=` + id }) + }, + + // 导出会议室预约 Excel + exportMeetingBook: async (params) => { + return await request.download({ url: `/hrm/meeting-book/export-excel`, params }) + }, + +// ==================== 子表(会议参会人) ==================== + + // 获得会议参会人列表 + getMeetingUserListByBookMeetingId: async (bookMeetingId) => { + return await request.get({ url: `/hrm/meeting-book/meeting-user/list-by-book-meeting-id?bookMeetingId=` + bookMeetingId }) + } +} \ No newline at end of file diff --git a/src/api/hrm/meetingroom/index.ts b/src/api/hrm/meetingroom/index.ts new file mode 100644 index 000000000..d59bd5592 --- /dev/null +++ b/src/api/hrm/meetingroom/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +// 会议室管理 VO +export interface MeetingRoomVO { + id: number // 唯一主键 + roomName: string // 会议室名称 + location: number // 所在工作地点(全局字典) + address: string // 具体位置 + capacity: string // 可容纳人数 + equipment: string // 会议室设备 + remarks: string // 会议室备注 + picture: string // 会议室图片 + status: number // 状态:可预订、不可预订 + createUserId: number // 创建者ID(提交人与领用人可能不同) + updateUserId: number // 更新者ID + deletedFlag: number // 删除标记:1-正常,-1-已删除 +} + +// 会议室管理 API +export const MeetingRoomApi = { + // 查询会议室管理分页 + getMeetingRoomPage: async (params: any) => { + return await request.get({ url: `/hrm/meeting-room/page`, params }) + }, + + // 查询会议室管理详情 + getMeetingRoom: async (id: number) => { + return await request.get({ url: `/hrm/meeting-room/get?id=` + id }) + }, + + // 新增会议室管理 + createMeetingRoom: async (data: MeetingRoomVO) => { + return await request.post({ url: `/hrm/meeting-room/create`, data }) + }, + + // 修改会议室管理 + updateMeetingRoom: async (data: MeetingRoomVO) => { + return await request.put({ url: `/hrm/meeting-room/update`, data }) + }, + + // 删除会议室管理 + deleteMeetingRoom: async (id: number) => { + return await request.delete({ url: `/hrm/meeting-room/delete?id=` + id }) + }, + + // 导出会议室管理 Excel + exportMeetingRoom: async (params) => { + return await request.download({ url: `/hrm/meeting-room/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/hrm/meetinguser/index.ts b/src/api/hrm/meetinguser/index.ts new file mode 100644 index 000000000..9833f332d --- /dev/null +++ b/src/api/hrm/meetinguser/index.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +// 会议参会人 VO +export interface MeetingUserVO { + id: number // 唯一主键 + bookMeetingId: number // 会议ID,关联 hrm_book_meeting 表 + userId: number // 员工ID,关联员工信息表 + checkinStatus: number // 签到状态 + confirmStatus: number // 确认情况 + confirmTime: Date // 确认时间 +} + +// 会议参会人 API +export const MeetingUserApi = { + // 查询会议参会人分页 + getMeetingUserPage: async (params: any) => { + return await request.get({ url: `/hrm/meeting-user/page`, params }) + }, + + // 查询会议参会人详情 + getMeetingUser: async (id: number) => { + return await request.get({ url: `/hrm/meeting-user/get?id=` + id }) + }, + + // 新增会议参会人 + createMeetingUser: async (data: MeetingUserVO) => { + return await request.post({ url: `/hrm/meeting-user/create`, data }) + }, + + // 修改会议参会人 + updateMeetingUser: async (data: MeetingUserVO) => { + return await request.put({ url: `/hrm/meeting-user/update`, data }) + }, + + // 删除会议参会人 + deleteMeetingUser: async (id: number) => { + return await request.delete({ url: `/hrm/meeting-user/delete?id=` + id }) + }, + + // 导出会议参会人 Excel + exportMeetingUser: async (params) => { + return await request.download({ url: `/hrm/meeting-user/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/views/hrm/meetingbook/MeetingBookForm.vue b/src/views/hrm/meetingbook/MeetingBookForm.vue new file mode 100644 index 000000000..07423f394 --- /dev/null +++ b/src/views/hrm/meetingbook/MeetingBookForm.vue @@ -0,0 +1,194 @@ + + \ No newline at end of file diff --git a/src/views/hrm/meetingbook/components/MeetingUserForm.vue b/src/views/hrm/meetingbook/components/MeetingUserForm.vue new file mode 100644 index 000000000..8f6389542 --- /dev/null +++ b/src/views/hrm/meetingbook/components/MeetingUserForm.vue @@ -0,0 +1,135 @@ + + \ No newline at end of file diff --git a/src/views/hrm/meetingbook/index.vue b/src/views/hrm/meetingbook/index.vue new file mode 100644 index 000000000..523fca184 --- /dev/null +++ b/src/views/hrm/meetingbook/index.vue @@ -0,0 +1,325 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/meetingroom/MeetingRoomForm.vue b/src/views/hrm/meetingroom/MeetingRoomForm.vue new file mode 100644 index 000000000..3e0e85ff2 --- /dev/null +++ b/src/views/hrm/meetingroom/MeetingRoomForm.vue @@ -0,0 +1,164 @@ + + \ No newline at end of file diff --git a/src/views/hrm/meetingroom/index.vue b/src/views/hrm/meetingroom/index.vue new file mode 100644 index 000000000..ccd4a177a --- /dev/null +++ b/src/views/hrm/meetingroom/index.vue @@ -0,0 +1,318 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/meetinguser/MeetingUserForm.vue b/src/views/hrm/meetinguser/MeetingUserForm.vue new file mode 100644 index 000000000..f55f7f4d6 --- /dev/null +++ b/src/views/hrm/meetinguser/MeetingUserForm.vue @@ -0,0 +1,133 @@ + + \ No newline at end of file diff --git a/src/views/hrm/meetinguser/index.vue b/src/views/hrm/meetinguser/index.vue new file mode 100644 index 000000000..7858a7c2a --- /dev/null +++ b/src/views/hrm/meetinguser/index.vue @@ -0,0 +1,241 @@ + + + \ No newline at end of file