diff --git a/src/api/hrm/attendrecord/index.ts b/src/api/hrm/attendrecord/index.ts new file mode 100644 index 000000000..70c313e46 --- /dev/null +++ b/src/api/hrm/attendrecord/index.ts @@ -0,0 +1,47 @@ +import request from '@/config/axios' + +// 考勤记录 VO +export interface AttendRecordVO { + id: number // 主键ID + userId: number // 员工ID + deptId: number // 部门ID + postId: number // 岗位ID + clockStatus: string // 打卡状态(正常、迟到、早退、缺卡等) + clockType: string // 打卡类型(正常上下班、加班) + clockInTime: Date // 打卡开始时间(上班打卡) + clockOutTime: Date // 打卡结束时间(下班打卡) + attendanceDuration: number // 日出勤时长(小时) +} + +// 考勤记录 API +export const AttendRecordApi = { + // 查询考勤记录分页 + getAttendRecordPage: async (params: any) => { + return await request.get({ url: `/hrm/attend-record/page`, params }) + }, + + // 查询考勤记录详情 + getAttendRecord: async (id: number) => { + return await request.get({ url: `/hrm/attend-record/get?id=` + id }) + }, + + // 新增考勤记录 + createAttendRecord: async (data: AttendRecordVO) => { + return await request.post({ url: `/hrm/attend-record/create`, data }) + }, + + // 修改考勤记录 + updateAttendRecord: async (data: AttendRecordVO) => { + return await request.put({ url: `/hrm/attend-record/update`, data }) + }, + + // 删除考勤记录 + deleteAttendRecord: async (id: number) => { + return await request.delete({ url: `/hrm/attend-record/delete?id=` + id }) + }, + + // 导出考勤记录 Excel + exportAttendRecord: async (params) => { + return await request.download({ url: `/hrm/attend-record/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/hrm/attendrule/index.ts b/src/api/hrm/attendrule/index.ts new file mode 100644 index 000000000..00cb12e48 --- /dev/null +++ b/src/api/hrm/attendrule/index.ts @@ -0,0 +1,58 @@ +import request from '@/config/axios' + +// 考勤规则 VO +export interface AttendRuleVO { + id: number // 主键 + name: string // 规则名称 + isOvertimeAllowed: boolean // 是否允许加班 + overtimeStartAfter: number // 下班多少分钟后算加班 + restDayMode: number // 休息日打卡规则:1交替一次 2交替多次 + holidayPunchRequired: boolean // 法定假日是否需要打卡 +} + +// 考勤规则 API +export const AttendRuleApi = { + // 查询考勤规则分页 + getAttendRulePage: async (params: any) => { + return await request.get({ url: `/hrm/attend-rule/page`, params }) + }, + + // 查询考勤规则详情 + getAttendRule: async (id: number) => { + return await request.get({ url: `/hrm/attend-rule/get?id=` + id }) + }, + + // 新增考勤规则 + createAttendRule: async (data: AttendRuleVO) => { + return await request.post({ url: `/hrm/attend-rule/create`, data }) + }, + + // 修改考勤规则 + updateAttendRule: async (data: AttendRuleVO) => { + return await request.put({ url: `/hrm/attend-rule/update`, data }) + }, + + // 删除考勤规则 + deleteAttendRule: async (id: number) => { + return await request.delete({ url: `/hrm/attend-rule/delete?id=` + id }) + }, + + // 导出考勤规则 Excel + exportAttendRule: async (params) => { + return await request.download({ url: `/hrm/attend-rule/export-excel`, params }) + }, + +// ==================== 子表(考勤班次) ==================== + + // 获得考勤班次列表 + getAttendShiftListByRuleId: async (ruleId) => { + return await request.get({ url: `/hrm/attend-rule/attend-shift/list-by-rule-id?ruleId=` + ruleId }) + }, + +// ==================== 子表(考勤关系) ==================== + + // 获得考勤关系列表 + getUserAttendRelationListByRuleId: async (ruleId) => { + return await request.get({ url: `/hrm/attend-rule/user-attend-relation/list-by-rule-id?ruleId=` + ruleId }) + } +} \ No newline at end of file diff --git a/src/api/hrm/attendscheduleconfig/index.ts b/src/api/hrm/attendscheduleconfig/index.ts new file mode 100644 index 000000000..ec2d71697 --- /dev/null +++ b/src/api/hrm/attendscheduleconfig/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// 考勤排班调度配置 VO +export interface AttendScheduleConfigVO { + id: number // 主键ID + ruleId: number // 所属考勤规则ID + scheduleType: number // 调度类型:1=按天,2=按周,3=按月 + dayIndex: number // 调度下标:日(从1开始),周(1~7),月(1~12) + shiftId: number // 班次ID(为空表示休息) + isWorkingDay: boolean // 是否工作日(true 表示需打卡) + remarks: string // 备注说明 +} + +// 考勤排班调度配置 API +export const AttendScheduleConfigApi = { + // 查询考勤排班调度配置分页 + getAttendScheduleConfigPage: async (params: any) => { + return await request.get({ url: `/hrm/attend-schedule-config/page`, params }) + }, + + // 查询考勤排班调度配置详情 + getAttendScheduleConfig: async (id: number) => { + return await request.get({ url: `/hrm/attend-schedule-config/get?id=` + id }) + }, + + // 新增考勤排班调度配置 + createAttendScheduleConfig: async (data: AttendScheduleConfigVO) => { + return await request.post({ url: `/hrm/attend-schedule-config/create`, data }) + }, + + // 修改考勤排班调度配置 + updateAttendScheduleConfig: async (data: AttendScheduleConfigVO) => { + return await request.put({ url: `/hrm/attend-schedule-config/update`, data }) + }, + + // 删除考勤排班调度配置 + deleteAttendScheduleConfig: async (id: number) => { + return await request.delete({ url: `/hrm/attend-schedule-config/delete?id=` + id }) + }, + + // 导出考勤排班调度配置 Excel + exportAttendScheduleConfig: async (params) => { + return await request.download({ url: `/hrm/attend-schedule-config/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/hrm/attendshift/index.ts b/src/api/hrm/attendshift/index.ts new file mode 100644 index 000000000..11d54b163 --- /dev/null +++ b/src/api/hrm/attendshift/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +// 考勤班次 VO +export interface AttendShiftVO { + id: number // 主键 + ruleId: number // 所属考勤规则 + name: string // 班次名称 + shiftType: number // 班次类型:1固定班次 2轮班制(三班倒) + restIncluded: boolean // 是否包含休息时段 +} + +// 考勤班次 API +export const AttendShiftApi = { + // 查询考勤班次分页 + getAttendShiftPage: async (params: any) => { + return await request.get({ url: `/hrm/attend-shift/page`, params }) + }, + + // 查询考勤班次详情 + getAttendShift: async (id: number) => { + return await request.get({ url: `/hrm/attend-shift/get?id=` + id }) + }, + + // 新增考勤班次 + createAttendShift: async (data: AttendShiftVO) => { + return await request.post({ url: `/hrm/attend-shift/create`, data }) + }, + + // 修改考勤班次 + updateAttendShift: async (data: AttendShiftVO) => { + return await request.put({ url: `/hrm/attend-shift/update`, data }) + }, + + // 删除考勤班次 + deleteAttendShift: async (id: number) => { + return await request.delete({ url: `/hrm/attend-shift/delete?id=` + id }) + }, + + // 导出考勤班次 Excel + exportAttendShift: async (params) => { + return await request.download({ url: `/hrm/attend-shift/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/hrm/attendshifttime/index.ts b/src/api/hrm/attendshifttime/index.ts new file mode 100644 index 000000000..5a9ef256f --- /dev/null +++ b/src/api/hrm/attendshifttime/index.ts @@ -0,0 +1,45 @@ +import request from '@/config/axios' + +// 考勤班次时间 VO +export interface AttendShiftTimeVO { + id: number // 主键 + shiftId: number // 关联班次ID + startTime: localtime // 上班时间 + endTime: localtime // 下班时间 + restStartTime: localtime // 休息开始时间 + restEndTime: localtime // 休息结束时间 + seq: number // 时段顺序(如早班、中班、晚班) +} + +// 考勤班次时间 API +export const AttendShiftTimeApi = { + // 查询考勤班次时间分页 + getAttendShiftTimePage: async (params: any) => { + return await request.get({ url: `/hrm/attend-shift-time/page`, params }) + }, + + // 查询考勤班次时间详情 + getAttendShiftTime: async (id: number) => { + return await request.get({ url: `/hrm/attend-shift-time/get?id=` + id }) + }, + + // 新增考勤班次时间 + createAttendShiftTime: async (data: AttendShiftTimeVO) => { + return await request.post({ url: `/hrm/attend-shift-time/create`, data }) + }, + + // 修改考勤班次时间 + updateAttendShiftTime: async (data: AttendShiftTimeVO) => { + return await request.put({ url: `/hrm/attend-shift-time/update`, data }) + }, + + // 删除考勤班次时间 + deleteAttendShiftTime: async (id: number) => { + return await request.delete({ url: `/hrm/attend-shift-time/delete?id=` + id }) + }, + + // 导出考勤班次时间 Excel + exportAttendShiftTime: async (params) => { + return await request.download({ url: `/hrm/attend-shift-time/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/hrm/userperformance/index.ts b/src/api/hrm/userperformance/index.ts new file mode 100644 index 000000000..894c7a4c6 --- /dev/null +++ b/src/api/hrm/userperformance/index.ts @@ -0,0 +1,46 @@ +import request from '@/config/axios' + +// 员工绩效 VO +export interface UserPerformanceVO { + id: number // 唯一主键 + userId: number // 员工档案ID(关联 hrm_user_infor) + assessmentMonth: Date // 考核月份(格式:YYYY-MM) + performanceLevel: number // 绩效等级 + assessmentScoreTotal: number // 考核得分合计 + attendanceScore: number // 考勤得分 + performanceAssessmentScore: number // 业绩考核得分 + behaviorAssessmentScore: number // 行为考核得分 +} + +// 员工绩效 API +export const UserPerformanceApi = { + // 查询员工绩效分页 + getUserPerformancePage: async (params: any) => { + return await request.get({ url: `/hrm/user-performance/page`, params }) + }, + + // 查询员工绩效详情 + getUserPerformance: async (id: number) => { + return await request.get({ url: `/hrm/user-performance/get?id=` + id }) + }, + + // 新增员工绩效 + createUserPerformance: async (data: UserPerformanceVO) => { + return await request.post({ url: `/hrm/user-performance/create`, data }) + }, + + // 修改员工绩效 + updateUserPerformance: async (data: UserPerformanceVO) => { + return await request.put({ url: `/hrm/user-performance/update`, data }) + }, + + // 删除员工绩效 + deleteUserPerformance: async (id: number) => { + return await request.delete({ url: `/hrm/user-performance/delete?id=` + id }) + }, + + // 导出员工绩效 Excel + exportUserPerformance: async (params) => { + return await request.download({ url: `/hrm/user-performance/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/system/postassessment/index.ts b/src/api/system/postassessment/index.ts new file mode 100644 index 000000000..7224a0c93 --- /dev/null +++ b/src/api/system/postassessment/index.ts @@ -0,0 +1,44 @@ +import request from '@/config/axios' + +// 职位考核信息 VO +export interface PostAssessmentVO { + id: number // 主键 + postId: number // 岗位关联ID + assessType: string // 考核类型 + assessName: string // 考核名称 + assessDetail: string // 考核详情 + score: number // 分数分值 +} + +// 职位考核信息 API +export const PostAssessmentApi = { + // 查询职位考核信息分页 + getPostAssessmentPage: async (params: any) => { + return await request.get({ url: `/system/post-assessment/page`, params }) + }, + + // 查询职位考核信息详情 + getPostAssessment: async (id: number) => { + return await request.get({ url: `/system/post-assessment/get?id=` + id }) + }, + + // 新增职位考核信息 + createPostAssessment: async (data: PostAssessmentVO) => { + return await request.post({ url: `/system/post-assessment/create`, data }) + }, + + // 修改职位考核信息 + updatePostAssessment: async (data: PostAssessmentVO) => { + return await request.put({ url: `/system/post-assessment/update`, data }) + }, + + // 删除职位考核信息 + deletePostAssessment: async (id: number) => { + return await request.delete({ url: `/system/post-assessment/delete?id=` + id }) + }, + + // 导出职位考核信息 Excel + exportPostAssessment: async (params) => { + return await request.download({ url: `/system/post-assessment/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/system/postrequirement/index.ts b/src/api/system/postrequirement/index.ts new file mode 100644 index 000000000..a08b7670e --- /dev/null +++ b/src/api/system/postrequirement/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +// 任职条件 VO +export interface PostRequirementVO { + id: number // 唯一主键 + postId: number // 岗位关联ID + requirementName: string // 名称 + qualificationDescription: string // 资格说明 +} + +// 任职条件 API +export const PostRequirementApi = { + // 查询任职条件分页 + getPostRequirementPage: async (params: any) => { + return await request.get({ url: `/system/post-requirement/page`, params }) + }, + + // 查询任职条件详情 + getPostRequirement: async (id: number) => { + return await request.get({ url: `/system/post-requirement/get?id=` + id }) + }, + + // 新增任职条件 + createPostRequirement: async (data: PostRequirementVO) => { + return await request.post({ url: `/system/post-requirement/create`, data }) + }, + + // 修改任职条件 + updatePostRequirement: async (data: PostRequirementVO) => { + return await request.put({ url: `/system/post-requirement/update`, data }) + }, + + // 删除任职条件 + deletePostRequirement: async (id: number) => { + return await request.delete({ url: `/system/post-requirement/delete?id=` + id }) + }, + + // 导出任职条件 Excel + exportPostRequirement: async (params) => { + return await request.download({ url: `/system/post-requirement/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/api/system/postresponsibility/index.ts b/src/api/system/postresponsibility/index.ts new file mode 100644 index 000000000..708fd26dd --- /dev/null +++ b/src/api/system/postresponsibility/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +// 岗位职责 VO +export interface PostResponsibilityVO { + id: number // 唯一主键 + postId: number // 岗位关联ID + responsibility: string // 职责 + task: string // 任务 + timeAllocation: string // 时间分配 +} + +// 岗位职责 API +export const PostResponsibilityApi = { + // 查询岗位职责分页 + getPostResponsibilityPage: async (params: any) => { + return await request.get({ url: `/system/post-responsibility/page`, params }) + }, + + // 查询岗位职责详情 + getPostResponsibility: async (id: number) => { + return await request.get({ url: `/system/post-responsibility/get?id=` + id }) + }, + + // 新增岗位职责 + createPostResponsibility: async (data: PostResponsibilityVO) => { + return await request.post({ url: `/system/post-responsibility/create`, data }) + }, + + // 修改岗位职责 + updatePostResponsibility: async (data: PostResponsibilityVO) => { + return await request.put({ url: `/system/post-responsibility/update`, data }) + }, + + // 删除岗位职责 + deletePostResponsibility: async (id: number) => { + return await request.delete({ url: `/system/post-responsibility/delete?id=` + id }) + }, + + // 导出岗位职责 Excel + exportPostResponsibility: async (params) => { + return await request.download({ url: `/system/post-responsibility/export-excel`, params }) + } +} \ No newline at end of file diff --git a/src/views/hrm/attendrecord/AttendRecordForm.vue b/src/views/hrm/attendrecord/AttendRecordForm.vue new file mode 100644 index 000000000..7474a4f0e --- /dev/null +++ b/src/views/hrm/attendrecord/AttendRecordForm.vue @@ -0,0 +1,154 @@ + + \ No newline at end of file diff --git a/src/views/hrm/attendrecord/index.vue b/src/views/hrm/attendrecord/index.vue new file mode 100644 index 000000000..196ae545d --- /dev/null +++ b/src/views/hrm/attendrecord/index.vue @@ -0,0 +1,301 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/attendrule/AttendRuleForm.vue b/src/views/hrm/attendrule/AttendRuleForm.vue new file mode 100644 index 000000000..7457955b7 --- /dev/null +++ b/src/views/hrm/attendrule/AttendRuleForm.vue @@ -0,0 +1,168 @@ + + \ No newline at end of file diff --git a/src/views/hrm/attendrule/components/AttendShiftForm.vue b/src/views/hrm/attendrule/components/AttendShiftForm.vue new file mode 100644 index 000000000..075912b04 --- /dev/null +++ b/src/views/hrm/attendrule/components/AttendShiftForm.vue @@ -0,0 +1,123 @@ + + \ No newline at end of file diff --git a/src/views/hrm/attendrule/components/UserAttendRelationForm.vue b/src/views/hrm/attendrule/components/UserAttendRelationForm.vue new file mode 100644 index 000000000..ed99bc71f --- /dev/null +++ b/src/views/hrm/attendrule/components/UserAttendRelationForm.vue @@ -0,0 +1,123 @@ + + \ No newline at end of file diff --git a/src/views/hrm/attendrule/index.vue b/src/views/hrm/attendrule/index.vue new file mode 100644 index 000000000..75c701309 --- /dev/null +++ b/src/views/hrm/attendrule/index.vue @@ -0,0 +1,262 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/attendscheduleconfig/AttendScheduleConfigForm.vue b/src/views/hrm/attendscheduleconfig/AttendScheduleConfigForm.vue new file mode 100644 index 000000000..bf7b57902 --- /dev/null +++ b/src/views/hrm/attendscheduleconfig/AttendScheduleConfigForm.vue @@ -0,0 +1,124 @@ + + \ No newline at end of file diff --git a/src/views/hrm/attendscheduleconfig/index.vue b/src/views/hrm/attendscheduleconfig/index.vue new file mode 100644 index 000000000..cf9a85e92 --- /dev/null +++ b/src/views/hrm/attendscheduleconfig/index.vue @@ -0,0 +1,244 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/attendshift/AttendShiftForm.vue b/src/views/hrm/attendshift/AttendShiftForm.vue new file mode 100644 index 000000000..11b832580 --- /dev/null +++ b/src/views/hrm/attendshift/AttendShiftForm.vue @@ -0,0 +1,124 @@ + + \ No newline at end of file diff --git a/src/views/hrm/attendshift/index.vue b/src/views/hrm/attendshift/index.vue new file mode 100644 index 000000000..7144c1818 --- /dev/null +++ b/src/views/hrm/attendshift/index.vue @@ -0,0 +1,241 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/attendshifttime/AttendShiftTimeForm.vue b/src/views/hrm/attendshifttime/AttendShiftTimeForm.vue new file mode 100644 index 000000000..b6416d723 --- /dev/null +++ b/src/views/hrm/attendshifttime/AttendShiftTimeForm.vue @@ -0,0 +1,139 @@ + + \ No newline at end of file diff --git a/src/views/hrm/attendshifttime/index.vue b/src/views/hrm/attendshifttime/index.vue new file mode 100644 index 000000000..294f29374 --- /dev/null +++ b/src/views/hrm/attendshifttime/index.vue @@ -0,0 +1,250 @@ + + + \ No newline at end of file diff --git a/src/views/hrm/userperformance/UserPerformanceForm.vue b/src/views/hrm/userperformance/UserPerformanceForm.vue new file mode 100644 index 000000000..131b89b69 --- /dev/null +++ b/src/views/hrm/userperformance/UserPerformanceForm.vue @@ -0,0 +1,135 @@ + + \ No newline at end of file diff --git a/src/views/hrm/userperformance/index.vue b/src/views/hrm/userperformance/index.vue new file mode 100644 index 000000000..cc061cc0a --- /dev/null +++ b/src/views/hrm/userperformance/index.vue @@ -0,0 +1,264 @@ + + + \ No newline at end of file diff --git a/src/views/system/postassessment/PostAssessmentForm.vue b/src/views/system/postassessment/PostAssessmentForm.vue new file mode 100644 index 000000000..bcb8e0eb0 --- /dev/null +++ b/src/views/system/postassessment/PostAssessmentForm.vue @@ -0,0 +1,121 @@ + + \ No newline at end of file diff --git a/src/views/system/postassessment/index.vue b/src/views/system/postassessment/index.vue new file mode 100644 index 000000000..a6a0457e2 --- /dev/null +++ b/src/views/system/postassessment/index.vue @@ -0,0 +1,222 @@ + + + \ No newline at end of file diff --git a/src/views/system/postrequirement/PostRequirementForm.vue b/src/views/system/postrequirement/PostRequirementForm.vue new file mode 100644 index 000000000..aadd70433 --- /dev/null +++ b/src/views/system/postrequirement/PostRequirementForm.vue @@ -0,0 +1,103 @@ + + \ No newline at end of file diff --git a/src/views/system/postrequirement/index.vue b/src/views/system/postrequirement/index.vue new file mode 100644 index 000000000..b67f07d98 --- /dev/null +++ b/src/views/system/postrequirement/index.vue @@ -0,0 +1,180 @@ + + + \ No newline at end of file diff --git a/src/views/system/postresponsibility/PostResponsibilityForm.vue b/src/views/system/postresponsibility/PostResponsibilityForm.vue new file mode 100644 index 000000000..0875d0ca4 --- /dev/null +++ b/src/views/system/postresponsibility/PostResponsibilityForm.vue @@ -0,0 +1,109 @@ + + \ No newline at end of file diff --git a/src/views/system/postresponsibility/index.vue b/src/views/system/postresponsibility/index.vue new file mode 100644 index 000000000..b9b68f6b2 --- /dev/null +++ b/src/views/system/postresponsibility/index.vue @@ -0,0 +1,200 @@ + + + \ No newline at end of file