From f2afe848e1fa2dcc6047ad9b34e108bfbc3b0747 Mon Sep 17 00:00:00 2001 From: quu Date: Sat, 10 May 2025 10:23:12 +0900 Subject: [PATCH] =?UTF-8?q?hrm=20=E8=AF=BE=E4=BB=B6=E5=92=8C=E7=89=A9?= =?UTF-8?q?=E5=93=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/hrm/courseware/index.ts | 55 +++ src/api/hrm/coursewaredetail/index.ts | 47 +++ src/api/hrm/item/index.ts | 45 +++ src/api/hrm/itemrequest/index.ts | 51 +++ src/api/hrm/itemrequestdetail/index.ts | 43 +++ src/api/hrm/training/index.ts | 50 +++ src/api/hrm/trainingexperience/index.ts | 47 +++ src/views/hrm/courseware/CoursewareForm.vue | 163 +++++++++ .../components/CoursewareDetailForm.vue | 148 +++++++++ src/views/hrm/courseware/index.vue | 278 ++++++++++++++++ .../coursewaredetail/CoursewareDetailForm.vue | 137 ++++++++ src/views/hrm/coursewaredetail/index.vue | 255 ++++++++++++++ src/views/hrm/item/ItemForm.vue | 134 ++++++++ src/views/hrm/item/index.vue | 263 +++++++++++++++ src/views/hrm/itemrequest/ItemRequestForm.vue | 142 ++++++++ .../components/ItemRequestDetailForm.vue | 108 ++++++ src/views/hrm/itemrequest/index.vue | 234 +++++++++++++ .../ItemRequestDetailForm.vue | 109 ++++++ src/views/hrm/itemrequestdetail/index.vue | 200 +++++++++++ src/views/hrm/training/TrainingForm.vue | 159 +++++++++ src/views/hrm/training/index.vue | 314 ++++++++++++++++++ .../TrainingExperienceForm.vue | 140 ++++++++ src/views/hrm/trainingexperience/index.vue | 261 +++++++++++++++ 23 files changed, 3383 insertions(+) create mode 100644 src/api/hrm/courseware/index.ts create mode 100644 src/api/hrm/coursewaredetail/index.ts create mode 100644 src/api/hrm/item/index.ts create mode 100644 src/api/hrm/itemrequest/index.ts create mode 100644 src/api/hrm/itemrequestdetail/index.ts create mode 100644 src/api/hrm/training/index.ts create mode 100644 src/api/hrm/trainingexperience/index.ts create mode 100644 src/views/hrm/courseware/CoursewareForm.vue create mode 100644 src/views/hrm/courseware/components/CoursewareDetailForm.vue create mode 100644 src/views/hrm/courseware/index.vue create mode 100644 src/views/hrm/coursewaredetail/CoursewareDetailForm.vue create mode 100644 src/views/hrm/coursewaredetail/index.vue create mode 100644 src/views/hrm/item/ItemForm.vue create mode 100644 src/views/hrm/item/index.vue create mode 100644 src/views/hrm/itemrequest/ItemRequestForm.vue create mode 100644 src/views/hrm/itemrequest/components/ItemRequestDetailForm.vue create mode 100644 src/views/hrm/itemrequest/index.vue create mode 100644 src/views/hrm/itemrequestdetail/ItemRequestDetailForm.vue create mode 100644 src/views/hrm/itemrequestdetail/index.vue create mode 100644 src/views/hrm/training/TrainingForm.vue create mode 100644 src/views/hrm/training/index.vue create mode 100644 src/views/hrm/trainingexperience/TrainingExperienceForm.vue create mode 100644 src/views/hrm/trainingexperience/index.vue diff --git a/src/api/hrm/courseware/index.ts b/src/api/hrm/courseware/index.ts new file mode 100644 index 000000000..7107a4e9b --- /dev/null +++ b/src/api/hrm/courseware/index.ts @@ -0,0 +1,55 @@ +import request from '@/config/axios' + +// 课件 VO +export interface CoursewareVO { + id: number // 主键ID + coursewareName: string // 课件名称 + author: number // 作者 + processInstanceId: string // 工作流编号 + auditStatus: number // 审批状态 + courseType: number // 课程类型 + suitableDept: string // 适合学习的部门. 逗号分隔的部门id + content: string // 课件内容 + videoAttachment: string // 视频附件 + outline: string // 课件大纲 +} + +// 课件 API +export const CoursewareApi = { + // 查询课件分页 + getCoursewarePage: async (params: any) => { + return await request.get({ url: `/hrm/courseware/page`, params }) + }, + + // 查询课件详情 + getCourseware: async (id: number) => { + return await request.get({ url: `/hrm/courseware/get?id=` + id }) + }, + + // 新增课件 + createCourseware: async (data: CoursewareVO) => { + return await request.post({ url: `/hrm/courseware/create`, data }) + }, + + // 修改课件 + updateCourseware: async (data: CoursewareVO) => { + return await request.put({ url: `/hrm/courseware/update`, data }) + }, + + // 删除课件 + deleteCourseware: async (id: number) => { + return await request.delete({ url: `/hrm/courseware/delete?id=` + id }) + }, + + // 导出课件 Excel + exportCourseware: async (params) => { + return await request.download({ url: `/hrm/courseware/export-excel`, params }) + }, + +// ==================== 子表(课件详情) ==================== + + // 获得课件详情列表 + getCoursewareDetailListByCoursewareId: async (coursewareId) => { + return await request.get({ url: `/hrm/courseware/courseware-detail/list-by-courseware-id?coursewareId=` + coursewareId }) + } +} \ No newline at end of file diff --git a/src/api/hrm/coursewaredetail/index.ts b/src/api/hrm/coursewaredetail/index.ts new file mode 100644 index 000000000..d2de7985b --- /dev/null +++ b/src/api/hrm/coursewaredetail/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +// 课件详情 VO +export interface CoursewareDetailVO { + id: number // 主键ID + coursewareId: number // 课件ID,关联courseware表 + question: string // 题目 + questionType: number // 题目类型(选择、填空、论述) + answer: string // 答案 + optionA: string // 选择题选项A + optionB: string // 选择题选项B + optionC: string // 选择题选项C + optionD: string // 选择题选项D +} + +// 课件详情 API +export const CoursewareDetailApi = { + // 查询课件详情分页 + getCoursewareDetailPage: async (params: any) => { + return await request.get({ url: `/hrm/courseware-detail/page`, params }) + }, + + // 查询课件详情详情 + getCoursewareDetail: async (id: number) => { + return await request.get({ url: `/hrm/courseware-detail/get?id=` + id }) + }, + + // 新增课件详情 + createCoursewareDetail: async (data: CoursewareDetailVO) => { + return await request.post({ url: `/hrm/courseware-detail/create`, data }) + }, + + // 修改课件详情 + updateCoursewareDetail: async (data: CoursewareDetailVO) => { + return await request.put({ url: `/hrm/courseware-detail/update`, data }) + }, + + // 删除课件详情 + deleteCoursewareDetail: async (id: number) => { + return await request.delete({ url: `/hrm/courseware-detail/delete?id=` + id }) + }, + + // 导出课件详情 Excel + exportCoursewareDetail: async (params) => { + return await request.download({ url: `/hrm/courseware-detail/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/hrm/item/index.ts b/src/api/hrm/item/index.ts new file mode 100644 index 000000000..dab28ffd2 --- /dev/null +++ b/src/api/hrm/item/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// 物品管理 VO +export interface ItemVO { + id: number // 唯一主键 + itemCode: string // 物品编码 + itemCategory: number // 物品分类(办公用品、办公设备等) + itemName: string // 物品名称 + itemCount: number // 目前库存数量 + itemType: number // 规格 + remark: string // 备注 +} + +// 物品管理 API +export const ItemApi = { + // 查询物品管理分页 + getItemPage: async (params: any) => { + return await request.get({ url: `/hrm/item/page`, params }) + }, + + // 查询物品管理详情 + getItem: async (id: number) => { + return await request.get({ url: `/hrm/item/get?id=` + id }) + }, + + // 新增物品管理 + createItem: async (data: ItemVO) => { + return await request.post({ url: `/hrm/item/create`, data }) + }, + + // 修改物品管理 + updateItem: async (data: ItemVO) => { + return await request.put({ url: `/hrm/item/update`, data }) + }, + + // 删除物品管理 + deleteItem: async (id: number) => { + return await request.delete({ url: `/hrm/item/delete?id=` + id }) + }, + + // 导出物品管理 Excel + exportItem: async (params) => { + return await request.download({ url: `/hrm/item/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/hrm/itemrequest/index.ts b/src/api/hrm/itemrequest/index.ts new file mode 100644 index 000000000..74030a6fd --- /dev/null +++ b/src/api/hrm/itemrequest/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// 物品申请 VO +export interface ItemRequestVO { + id: number // 自动递增的主键 + applicantId: number // 领用人ID + requestDate: Date // 申请日期 + eSignature: string // 领用人电子签名 + processInstanceId: string // 工作流编号 + auditStatus: number // 审批状态 +} + +// 物品申请 API +export const ItemRequestApi = { + // 查询物品申请分页 + getItemRequestPage: async (params: any) => { + return await request.get({ url: `/hrm/item-request/page`, params }) + }, + + // 查询物品申请详情 + getItemRequest: async (id: number) => { + return await request.get({ url: `/hrm/item-request/get?id=` + id }) + }, + + // 新增物品申请 + createItemRequest: async (data: ItemRequestVO) => { + return await request.post({ url: `/hrm/item-request/create`, data }) + }, + + // 修改物品申请 + updateItemRequest: async (data: ItemRequestVO) => { + return await request.put({ url: `/hrm/item-request/update`, data }) + }, + + // 删除物品申请 + deleteItemRequest: async (id: number) => { + return await request.delete({ url: `/hrm/item-request/delete?id=` + id }) + }, + + // 导出物品申请 Excel + exportItemRequest: async (params) => { + return await request.download({ url: `/hrm/item-request/export-excel`, params }) + }, + +// ==================== 子表(物品申请明细) ==================== + + // 获得物品申请明细列表 + getItemRequestDetailListByItemRequestId: async (itemRequestId) => { + return await request.get({ url: `/hrm/item-request/item-request-detail/list-by-item-request-id?itemRequestId=` + itemRequestId }) + } +} \ No newline at end of file diff --git a/src/api/hrm/itemrequestdetail/index.ts b/src/api/hrm/itemrequestdetail/index.ts new file mode 100644 index 000000000..06ddc7d97 --- /dev/null +++ b/src/api/hrm/itemrequestdetail/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +// 物品申请明细 VO +export interface ItemRequestDetailVO { + id: number // 主键 + itemRequestId: number // 物品申请ID(关联 hrm_item_request) + itemId: number // 物品管理ID(关联 hrm_item) + requestCount: number // 领用数量 + instructions: string // 申请说明 +} + +// 物品申请明细 API +export const ItemRequestDetailApi = { + // 查询物品申请明细分页 + getItemRequestDetailPage: async (params: any) => { + return await request.get({ url: `/hrm/item-request-detail/page`, params }) + }, + + // 查询物品申请明细详情 + getItemRequestDetail: async (id: number) => { + return await request.get({ url: `/hrm/item-request-detail/get?id=` + id }) + }, + + // 新增物品申请明细 + createItemRequestDetail: async (data: ItemRequestDetailVO) => { + return await request.post({ url: `/hrm/item-request-detail/create`, data }) + }, + + // 修改物品申请明细 + updateItemRequestDetail: async (data: ItemRequestDetailVO) => { + return await request.put({ url: `/hrm/item-request-detail/update`, data }) + }, + + // 删除物品申请明细 + deleteItemRequestDetail: async (id: number) => { + return await request.delete({ url: `/hrm/item-request-detail/delete?id=` + id }) + }, + + // 导出物品申请明细 Excel + exportItemRequestDetail: async (params) => { + return await request.download({ url: `/hrm/item-request-detail/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/hrm/training/index.ts b/src/api/hrm/training/index.ts new file mode 100644 index 000000000..a32fcbde9 --- /dev/null +++ b/src/api/hrm/training/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +// 培训信息 VO +export interface TrainingVO { + id: number // 主键ID + coursewareId: number // 课件ID,关联courseware表 + trainingName: string // 培训名称 + processInstanceId: string // 工作流编号 + auditStatus: number // 审批状态 + startTime: Date // 培训开始时间 + endTime: Date // 培训结束时间 + trainingHours: number // 培训学时 + lecturer: string // 讲师 + trainingLocation: string // 培训地点 + trainingPurpose: string // 培训目的 + deptId: number // 部门ID +} + +// 培训信息 API +export const TrainingApi = { + // 查询培训信息分页 + getTrainingPage: async (params: any) => { + return await request.get({ url: `/hrm/training/page`, params }) + }, + + // 查询培训信息详情 + getTraining: async (id: number) => { + return await request.get({ url: `/hrm/training/get?id=` + id }) + }, + + // 新增培训信息 + createTraining: async (data: TrainingVO) => { + return await request.post({ url: `/hrm/training/create`, data }) + }, + + // 修改培训信息 + updateTraining: async (data: TrainingVO) => { + return await request.put({ url: `/hrm/training/update`, data }) + }, + + // 删除培训信息 + deleteTraining: async (id: number) => { + return await request.delete({ url: `/hrm/training/delete?id=` + id }) + }, + + // 导出培训信息 Excel + exportTraining: async (params) => { + return await request.download({ url: `/hrm/training/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/hrm/trainingexperience/index.ts b/src/api/hrm/trainingexperience/index.ts new file mode 100644 index 000000000..22435bf63 --- /dev/null +++ b/src/api/hrm/trainingexperience/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +// 培训经历 VO +export interface TrainingExperienceVO { + id: number // 主键ID + userId: number // 员工ID + trainingId: number // 培训ID,关联training表 + startTime: Date // 培训开始时间 + endTime: Date // 培训结束时间 + trainingScore: number // 培训成绩 + certificate: string // 培训证书名称 + certificateNumber: string // 培训证书编号 + remark: string // 备注 +} + +// 培训经历 API +export const TrainingExperienceApi = { + // 查询培训经历分页 + getTrainingExperiencePage: async (params: any) => { + return await request.get({ url: `/hrm/training-experience/page`, params }) + }, + + // 查询培训经历详情 + getTrainingExperience: async (id: number) => { + return await request.get({ url: `/hrm/training-experience/get?id=` + id }) + }, + + // 新增培训经历 + createTrainingExperience: async (data: TrainingExperienceVO) => { + return await request.post({ url: `/hrm/training-experience/create`, data }) + }, + + // 修改培训经历 + updateTrainingExperience: async (data: TrainingExperienceVO) => { + return await request.put({ url: `/hrm/training-experience/update`, data }) + }, + + // 删除培训经历 + deleteTrainingExperience: async (id: number) => { + return await request.delete({ url: `/hrm/training-experience/delete?id=` + id }) + }, + + // 导出培训经历 Excel + exportTrainingExperience: async (params) => { + return await request.download({ url: `/hrm/training-experience/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/views/hrm/courseware/CoursewareForm.vue b/src/views/hrm/courseware/CoursewareForm.vue new file mode 100644 index 000000000..55b141a76 --- /dev/null +++ b/src/views/hrm/courseware/CoursewareForm.vue @@ -0,0 +1,163 @@ + + \ No newline at end of file diff --git a/src/views/hrm/courseware/components/CoursewareDetailForm.vue b/src/views/hrm/courseware/components/CoursewareDetailForm.vue new file mode 100644 index 000000000..b0e2dccc9 --- /dev/null +++ b/src/views/hrm/courseware/components/CoursewareDetailForm.vue @@ -0,0 +1,148 @@ + + \ No newline at end of file diff --git a/src/views/hrm/courseware/index.vue b/src/views/hrm/courseware/index.vue new file mode 100644 index 000000000..b34f29e36 --- /dev/null +++ b/src/views/hrm/courseware/index.vue @@ -0,0 +1,278 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/coursewaredetail/CoursewareDetailForm.vue b/src/views/hrm/coursewaredetail/CoursewareDetailForm.vue new file mode 100644 index 000000000..4c454ff88 --- /dev/null +++ b/src/views/hrm/coursewaredetail/CoursewareDetailForm.vue @@ -0,0 +1,137 @@ + + \ No newline at end of file diff --git a/src/views/hrm/coursewaredetail/index.vue b/src/views/hrm/coursewaredetail/index.vue new file mode 100644 index 000000000..cf46af703 --- /dev/null +++ b/src/views/hrm/coursewaredetail/index.vue @@ -0,0 +1,255 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/item/ItemForm.vue b/src/views/hrm/item/ItemForm.vue new file mode 100644 index 000000000..7bd37a160 --- /dev/null +++ b/src/views/hrm/item/ItemForm.vue @@ -0,0 +1,134 @@ + + \ No newline at end of file diff --git a/src/views/hrm/item/index.vue b/src/views/hrm/item/index.vue new file mode 100644 index 000000000..c4dc90c4d --- /dev/null +++ b/src/views/hrm/item/index.vue @@ -0,0 +1,263 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/itemrequest/ItemRequestForm.vue b/src/views/hrm/itemrequest/ItemRequestForm.vue new file mode 100644 index 000000000..e3b5bef2c --- /dev/null +++ b/src/views/hrm/itemrequest/ItemRequestForm.vue @@ -0,0 +1,142 @@ + + \ No newline at end of file diff --git a/src/views/hrm/itemrequest/components/ItemRequestDetailForm.vue b/src/views/hrm/itemrequest/components/ItemRequestDetailForm.vue new file mode 100644 index 000000000..d67569086 --- /dev/null +++ b/src/views/hrm/itemrequest/components/ItemRequestDetailForm.vue @@ -0,0 +1,108 @@ + + \ No newline at end of file diff --git a/src/views/hrm/itemrequest/index.vue b/src/views/hrm/itemrequest/index.vue new file mode 100644 index 000000000..c5c429f18 --- /dev/null +++ b/src/views/hrm/itemrequest/index.vue @@ -0,0 +1,234 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/itemrequestdetail/ItemRequestDetailForm.vue b/src/views/hrm/itemrequestdetail/ItemRequestDetailForm.vue new file mode 100644 index 000000000..dea347ac3 --- /dev/null +++ b/src/views/hrm/itemrequestdetail/ItemRequestDetailForm.vue @@ -0,0 +1,109 @@ + + \ No newline at end of file diff --git a/src/views/hrm/itemrequestdetail/index.vue b/src/views/hrm/itemrequestdetail/index.vue new file mode 100644 index 000000000..e93b260ff --- /dev/null +++ b/src/views/hrm/itemrequestdetail/index.vue @@ -0,0 +1,200 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/training/TrainingForm.vue b/src/views/hrm/training/TrainingForm.vue new file mode 100644 index 000000000..258570b0a --- /dev/null +++ b/src/views/hrm/training/TrainingForm.vue @@ -0,0 +1,159 @@ + + \ No newline at end of file diff --git a/src/views/hrm/training/index.vue b/src/views/hrm/training/index.vue new file mode 100644 index 000000000..efb96074b --- /dev/null +++ b/src/views/hrm/training/index.vue @@ -0,0 +1,314 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/trainingexperience/TrainingExperienceForm.vue b/src/views/hrm/trainingexperience/TrainingExperienceForm.vue new file mode 100644 index 000000000..e4d681f34 --- /dev/null +++ b/src/views/hrm/trainingexperience/TrainingExperienceForm.vue @@ -0,0 +1,140 @@ + + \ No newline at end of file diff --git a/src/views/hrm/trainingexperience/index.vue b/src/views/hrm/trainingexperience/index.vue new file mode 100644 index 000000000..655257b00 --- /dev/null +++ b/src/views/hrm/trainingexperience/index.vue @@ -0,0 +1,261 @@ + + + \ No newline at end of file