增加ai办公,考勤管理
This commit is contained in:
1 parent
eb9b7beff5
commit
31ae07175d
46 files changed
+9250
-296
No files matched your search
@@ -0,0 +1,68 @@
|
||||
import { request } from '@/api/request.js'
|
||||
|
||||
/**
|
||||
* OA 考勤打卡接口封装,对应后端 /api/oa/attendance/*。
|
||||
*
|
||||
* 打卡联动工作排班:今日排班由后端匹配,匹配不上时 today.warning 非空,
|
||||
* 但 can_clock_in / can_clock_out 仍为 true(提醒后仍可签到)。
|
||||
*/
|
||||
|
||||
/** 今日打卡状态:{date, employee, entry, record, matched, warning, can_clock_in, can_clock_out, recent, stats} */
|
||||
export function fetchAttendanceToday(days = 7) {
|
||||
return request({ url: '/api/oa/attendance/today', data: { days } })
|
||||
}
|
||||
|
||||
/**
|
||||
* 签到 / 签退
|
||||
* @param {'in'|'out'} type
|
||||
* @param {{location?:string,remark?:string}} extra
|
||||
* @returns {Promise<{record:object,warning:string,duplicated:boolean,message:string}>}
|
||||
*/
|
||||
export function clockAttendance(type, extra = {}) {
|
||||
return request({
|
||||
url: '/api/oa/attendance/clock',
|
||||
method: 'POST',
|
||||
data: {
|
||||
type,
|
||||
location: extra.location || '',
|
||||
remark: extra.remark || ''
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 我的考勤记录(默认本月)
|
||||
* @param {{page?:number,pageSize?:number,startDate?:string,endDate?:string}} params
|
||||
* @returns {Promise<{list:Array,total:number,stats:object}>}
|
||||
*/
|
||||
export function fetchMyAttendanceRecords(params = {}) {
|
||||
return request({
|
||||
url: '/api/oa/attendance/records',
|
||||
data: {
|
||||
page: params.page || 1,
|
||||
pageSize: params.pageSize || 20,
|
||||
start_date: params.startDate || '',
|
||||
end_date: params.endDate || ''
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 个人考勤卡:按 月 / 季 / 年 聚合
|
||||
* @param {'month'|'quarter'|'year'} period
|
||||
* @param {string} date 锚点日期 "YYYY-MM-DD",默认今天
|
||||
* @returns {Promise<{period:string,label:string,start_date:string,end_date:string,stats:object}>}
|
||||
*/
|
||||
export function fetchAttendanceStats(period = 'month', date = '') {
|
||||
return request({
|
||||
url: '/api/oa/attendance/stats',
|
||||
data: { period, date }
|
||||
})
|
||||
}
|
||||
|
||||
/** 今日 "YYYY-MM-DD"(与后端本地日期口径一致) */
|
||||
export function todayString() {
|
||||
const now = new Date()
|
||||
const pad = (n) => String(n).padStart(2, '0')
|
||||
return `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())}`
|
||||
}
|
||||
Reference in new issue
Block a user