考勤记录

This commit is contained in:
Teo
2025-04-08 18:02:55 +08:00
parent 54952bea08
commit 8439370389
13 changed files with 1682 additions and 12 deletions

View File

@ -6,11 +6,12 @@ const grid = {
bottom: 50
};
const color = ['#91CC75', '#409EFF', '#fff'];
const color = ['#4FD6A9', '#409EFF', '#ECF5FF', '#FFC069'];
const titleList = [
{ name: '勤人数', color: '#fff' },
{ name: '勤人数', color: '#fff' },
{ name: '半勤人数', color: '#fff' },
{ name: '缺勤人数', color: '#000' }
{ name: '缺勤人数', color: '#000' },
{ name: '请假人数', color: '#000' }
];
export const echartsConfig = (ref: any, list?: any) => {
@ -18,12 +19,13 @@ export const echartsConfig = (ref: any, list?: any) => {
const attendanceArray = list.map((item) => item.attendance);
const halfAttendanceArray = list.map((item) => item.halfAttendance);
const absenteeismArray = list.map((item) => item.absenteeism);
const leaveArray = list.map((item) => item.leave);
const rawData = [attendanceArray, halfAttendanceArray, absenteeismArray];
const rawData = [attendanceArray, halfAttendanceArray, absenteeismArray, leaveArray];
//y轴数据
const data = list.map((item) => item.clockDate);
const series: echarts.BarSeriesOption[] = titleList.map((item, sid) => {
const series: any = titleList.map((item, sid) => {
return {
name: item.name,
type: 'bar',
@ -32,7 +34,10 @@ export const echartsConfig = (ref: any, list?: any) => {
label: {
show: true,
color: item.color,
fontSize: 10
fontSize: 10,
formatter: function (params) {
return params.value > 0 ? params.value : '';
}
},
data: rawData[sid]
};

View File

@ -46,7 +46,7 @@ export const listAttendanceTwoWeek = (query?: AttendanceTwoWeekQuery): AxiosProm
export const listAttendanceMonth = (query?: AttendanceMonthQuery): AxiosPromise<AttendanceMonthVO[]> => {
return request({
url: '/project/constructionUser/list/attendance/month',
url: '/project/attendance/list/month/byUserId',
method: 'get',
params: query
});

View File

@ -46,7 +46,7 @@ export interface AttendanceTwoWeekQuery {
}
export interface AttendanceMonthQuery {
id: string | number;
userId: string | number;
clockMonth?: string;
}

View File

@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { AttendanceVO, AttendanceForm, AttendanceQuery } from '@/api/project/attendance/types';
/**
* 查询考勤列表
* @param query
* @returns {*}
*/
export const listAttendance = (query?: AttendanceQuery): AxiosPromise<AttendanceVO[]> => {
return request({
url: '/project/attendance/list',
method: 'get',
params: query
});
};
/**
* 查询考勤详细
* @param id
*/
export const getAttendance = (id: string | number): AxiosPromise<AttendanceVO> => {
return request({
url: '/project/attendance/' + id,
method: 'get'
});
};
/**
* 新增考勤
* @param data
*/
export const addAttendance = (data: AttendanceForm) => {
return request({
url: '/project/attendance',
method: 'post',
data: data
});
};
/**
* 修改考勤
* @param data
*/
export const updateAttendance = (data: AttendanceForm) => {
return request({
url: '/project/attendance',
method: 'put',
data: data
});
};
/**
* 删除考勤
* @param id
*/
export const delAttendance = (id: string | number | Array<string | number>) => {
return request({
url: '/project/attendance/' + id,
method: 'delete'
});
};

View File

@ -0,0 +1,146 @@
export interface AttendanceVO {
/**
* 人员姓名
*/
userName: string;
/**
* 上班打卡时间
*/
onClockTime: string;
/**
* 下班打卡时间
*/
offClockTime: string;
/**
* 打卡日期
*/
clockDate: string;
/**
* 1正常,2迟到,3早退,4缺勤,5补卡
*/
clockStatus: string;
/**
* 上下班1上班,2下班
*/
commuter: string;
/**
* 备注
*/
remark: string;
}
export interface AttendanceForm extends BaseEntity {
/**
* 主键id
*/
id?: string | number;
/**
* 人员id
*/
userId?: string | number;
/**
* 人脸照
*/
facePic?: string;
/**
* 项目id
*/
projectId?: string | number;
/**
* 上班打卡时间
*/
onClockTime?: string;
/**
* 下班打卡时间
*/
offClockTime?: string;
/**
* 打卡日期
*/
clockDate?: string;
/**
* 1正常,2迟到,3早退,4缺勤,5补卡
*/
clockStatus?: string;
/**
* 代打人员id
*/
pinchUserId?: string | number;
/**
* 多次打卡时间记录
*/
clockRecord?: string;
/**
* 上下班1上班,2下班
*/
commuter?: string;
/**
* 日薪
*/
dailyWage?: number;
/**
* 经度
*/
lng?: string;
/**
* 纬度
*/
lat?: string;
/**
* 备注
*/
remark?: string;
}
export interface AttendanceQuery extends PageQuery {
/**
* 人员姓名
*/
userName?: string;
teamId?: string | number;
/**
* 项目id
*/
projectId?: string | number;
/**
* 打卡日期
*/
clockDate?: string;
/**
* 1正常,2迟到,3早退,4缺勤,5补卡
*/
clockStatus?: string;
/**
* 上下班1上班,2下班
*/
commuter?: string;
/**
* 日期范围参数
*/
params?: any;
}

View File

@ -0,0 +1,76 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { LeaveVO, LeaveForm, LeaveQuery } from '@/api/project/leave/types';
import { AuditReissueCardForm } from '../reissueCard/types';
/**
* 查询施工人员请假申请列表
* @param query
* @returns {*}
*/
export const listLeave = (query?: LeaveQuery): AxiosPromise<LeaveVO[]> => {
return request({
url: '/project/leave/list',
method: 'get',
params: query
});
};
/**
* 查询施工人员请假申请详细
* @param id
*/
export const getLeave = (id: string | number): AxiosPromise<LeaveVO> => {
return request({
url: '/project/leave/' + id,
method: 'get'
});
};
/**
* 新增施工人员请假申请
* @param data
*/
export const addLeave = (data: LeaveForm) => {
return request({
url: '/project/leave',
method: 'post',
data: data
});
};
/**
* 修改施工人员请假申请
* @param data
*/
export const updateLeave = (data: LeaveForm) => {
return request({
url: '/project/leave',
method: 'put',
data: data
});
};
/**
* 删除施工人员请假申请
* @param id
*/
export const delLeave = (id: string | number | Array<string | number>) => {
return request({
url: '/project/leave/' + id,
method: 'delete'
});
};
/**
* 管理员审核施工人员请假申请
* @param data
*/
export const AuditReissueCard = (data: AuditReissueCardForm) => {
return request({
url: '/project/leave/review/manager',
method: 'put',
data: data
});
};

View File

@ -0,0 +1,206 @@
export interface LeaveVO {
/**
* 申请人名字
*/
userName: string;
id?: string | number;
/**
* 申请请假说明
*/
userExplain: string;
status?: string;
/**
* 请假申请时间
*/
userTime: string;
/**
* 请假类型1事假 2病假
*/
leaveType: string;
/**
* 请假开始时间
*/
startTime: string;
/**
* 请假结束时间
*/
endTime: string;
/**
* 班组长名字
*/
gangerName: string;
/**
* 班组长意见1未读 2同意 3拒绝
*/
gangerOpinion: string;
/**
* 班组长说明
*/
gangerExplain: string;
/**
* 班组长操作时间
*/
gangerTime: string;
/**
* 管理员意见1未读 2同意 3拒绝
*/
managerOpinion: string;
/**
* 管理员说明
*/
managerExplain: string;
/**
* 管理员操作时间
*/
managerTime: string;
/**
* 备注
*/
remark: string;
managerName?: string;
}
export interface LeaveForm extends BaseEntity {
/**
* 主键id
*/
id?: string | number;
/**
* 申请人id
*/
userId?: string | number;
/**
* 申请人名字
*/
userName?: string;
/**
* 申请请假说明
*/
userExplain?: string;
/**
* 请假申请时间
*/
userTime?: string;
/**
* 请假类型1事假 2病假
*/
leaveType?: string;
/**
* 请假开始时间
*/
startTime?: string;
/**
* 请假结束时间
*/
endTime?: string;
/**
* 班组长
*/
gangerId?: string | number;
/**
* 班组长名字
*/
gangerName?: string;
/**
* 班组长意见1未读 2同意 3拒绝
*/
gangerOpinion?: string;
/**
* 班组长说明
*/
gangerExplain?: string;
/**
* 班组长操作时间
*/
gangerTime?: string;
/**
* 管理员意见1未读 2同意 3拒绝
*/
managerOpinion?: string;
/**
* 管理员说明
*/
managerExplain?: string;
/**
* 管理员操作时间
*/
managerTime?: string;
/**
* 项目id
*/
projectId?: string | number;
/**
* 班组id
*/
teamId?: string | number;
/**
* 备注
*/
remark?: string;
}
export interface LeaveQuery extends PageQuery {
/**
* 申请人名字
*/
userName?: string;
/**
* 请假类型1事假 2病假
*/
leaveType?: string;
/**
* 班组长意见1未读 2同意 3拒绝
*/
gangerOpinion?: string;
/**
* 管理员意见1未读 2同意 3拒绝
*/
managerOpinion?: string;
/**
* 项目id
*/
projectId?: string | number;
/**
* 班组id
*/
teamId?: string | number;
/**
* 日期范围参数
*/
params?: any;
}

View File

@ -0,0 +1,75 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { ReissueCardVO, ReissueCardForm, ReissueCardQuery, AuditReissueCardForm } from '@/api/project/reissueCard/types';
/**
* 查询施工人员补卡申请列表
* @param query
* @returns {*}
*/
export const listReissueCard = (query?: ReissueCardQuery): AxiosPromise<ReissueCardVO[]> => {
return request({
url: '/project/reissueCard/list',
method: 'get',
params: query
});
};
/**
* 查询施工人员补卡申请详细
* @param id
*/
export const getReissueCard = (id: string | number): AxiosPromise<ReissueCardVO> => {
return request({
url: '/project/reissueCard/' + id,
method: 'get'
});
};
/**
* 新增施工人员补卡申请
* @param data
*/
export const addReissueCard = (data: ReissueCardForm) => {
return request({
url: '/project/reissueCard',
method: 'post',
data: data
});
};
/**
* 修改施工人员补卡申请
* @param data
*/
export const updateReissueCard = (data: ReissueCardForm) => {
return request({
url: '/project/reissueCard',
method: 'put',
data: data
});
};
/**
* 删除施工人员补卡申请
* @param id
*/
export const delReissueCard = (id: string | number | Array<string | number>) => {
return request({
url: '/project/reissueCard/' + id,
method: 'delete'
});
};
/**
* 管理员审核施工人员补卡申请
* @param data
*/
export const AuditReissueCard = (data: AuditReissueCardForm) => {
return request({
url: '/project/reissueCard/review/manager',
method: 'put',
data: data
});
};

View File

@ -0,0 +1,173 @@
export interface ReissueCardVO {
/**
* 申请人名字
*/
userName: string;
id?: string | number;
status?: string;
managerName?: string;
/**
* 申请补卡说明
*/
userExplain: string;
/**
* 补卡申请时间
*/
userTime: string;
/**
* 班组长名字
*/
gangerName: string;
/**
* 班组长意见1未读 2同意 3拒绝
*/
gangerOpinion: string;
/**
* 班组长说明
*/
gangerExplain: string;
/**
* 班组长操作时间
*/
gangerTime: string;
/**
* 管理员意见1未读 2同意 3拒绝
*/
managerOpinion: string;
/**
* 管理员说明
*/
managerExplain: string;
/**
* 管理员操作时间
*/
managerTime: string;
/**
* 备注
*/
remark: string;
}
export interface AuditReissueCardForm {
/**
* 主键id
*/
id?: string | number;
/**
* 管理员意见
*/
managerOpinion?: string;
/**
* 管理员说明
*/
managerExplain?: string;
/**
* 备注
*/
remark?: string;
}
export interface ReissueCardForm extends BaseEntity {
/**
* 主键id
*/
id?: string | number;
/**
* 申请人id
*/
userId?: string | number;
/**
* 申请补卡说明
*/
userExplain?: string;
/**
* 班组长
*/
gangerId?: string | number;
/**
* 班组长意见1未读 2同意 3拒绝
*/
gangerOpinion?: string;
/**
* 班组长说明
*/
gangerExplain?: string;
/**
* 管理员意见1未读 2同意 3拒绝
*/
managerOpinion?: string;
/**
* 管理员说明
*/
managerExplain?: string;
/**
* 项目id
*/
projectId?: string | number;
/**
* 考勤表主键id
*/
attendanceId?: string | number;
/**
* 备注
*/
remark?: string;
}
export interface ReissueCardQuery extends PageQuery {
/**
* 申请人名字
*/
userName?: string;
/**
* 班组长意见1未读 2同意 3拒绝
*/
gangerOpinion?: string;
/**
* 管理员意见1未读 2同意 3拒绝
*/
managerOpinion?: string;
/**
* 项目id
*/
projectId?: string | number;
/**
* 班组id
*/
teamId?: string | number;
/**
* 补卡类型1上班 2下班
*/
reissueCardType?: string;
/**
* 日期范围参数
*/
params?: any;
}