办公V3
This commit is contained in:
127
klp-ui/src/api/hrm/attendance.js
Normal file
127
klp-ui/src/api/hrm/attendance.js
Normal file
@@ -0,0 +1,127 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 班次
|
||||
export function listShift(query) {
|
||||
return request({
|
||||
url: '/hrm/shift/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addShift(data) {
|
||||
return request({
|
||||
url: '/hrm/shift',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateShift(data) {
|
||||
return request({
|
||||
url: '/hrm/shift',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delShift(shiftIds) {
|
||||
return request({
|
||||
url: `/hrm/shift/${shiftIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 排班
|
||||
export function listSchedule(query) {
|
||||
return request({
|
||||
url: '/hrm/schedule/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addSchedule(data) {
|
||||
return request({
|
||||
url: '/hrm/schedule',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateSchedule(data) {
|
||||
return request({
|
||||
url: '/hrm/schedule',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delSchedule(scheduleIds) {
|
||||
return request({
|
||||
url: `/hrm/schedule/${scheduleIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 打卡
|
||||
export function listPunch(query) {
|
||||
return request({
|
||||
url: '/hrm/punch/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addPunch(data) {
|
||||
return request({
|
||||
url: '/hrm/punch',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updatePunch(data) {
|
||||
return request({
|
||||
url: '/hrm/punch',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delPunch(punchIds) {
|
||||
return request({
|
||||
url: `/hrm/punch/${punchIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 考勤结果
|
||||
export function listAttendCalc(query) {
|
||||
return request({
|
||||
url: '/hrm/attend/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 假期余额
|
||||
export function listLeaveBalance(query) {
|
||||
return request({
|
||||
url: '/hrm/leave/balance/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addLeaveBalance(data) {
|
||||
return request({
|
||||
url: '/hrm/leave/balance',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateLeaveBalance(data) {
|
||||
return request({
|
||||
url: '/hrm/leave/balance',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delLeaveBalance(balIds) {
|
||||
return request({
|
||||
url: `/hrm/leave/balance/${balIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
35
klp-ui/src/api/hrm/cc.js
Normal file
35
klp-ui/src/api/hrm/cc.js
Normal file
@@ -0,0 +1,35 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询抄送记录列表
|
||||
export function listCc(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/cc/my',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 标记抄送为已读
|
||||
export function readCc(ccId) {
|
||||
return request({
|
||||
url: `/hrm/flow/cc/${ccId}/read`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
// 手动抄送
|
||||
export function addCc(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/cc',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询抄送记录详细
|
||||
export function getCc(ccId) {
|
||||
return request({
|
||||
url: `/hrm/flow/cc/${ccId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
66
klp-ui/src/api/hrm/certContract.js
Normal file
66
klp-ui/src/api/hrm/certContract.js
Normal file
@@ -0,0 +1,66 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 证书
|
||||
export function listCertificate(query) {
|
||||
return request({
|
||||
url: '/hrm/certificate/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addCertificate(data) {
|
||||
return request({
|
||||
url: '/hrm/certificate',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateCertificate(data) {
|
||||
return request({
|
||||
url: '/hrm/certificate',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delCertificate(certIds) {
|
||||
return request({
|
||||
url: `/hrm/certificate/${certIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 合同
|
||||
export function listContract(query) {
|
||||
return request({
|
||||
url: '/hrm/contract/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addContract(data) {
|
||||
return request({
|
||||
url: '/hrm/contract',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateContract(data) {
|
||||
return request({
|
||||
url: '/hrm/contract',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delContract(contractIds) {
|
||||
return request({
|
||||
url: `/hrm/contract/${contractIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
34
klp-ui/src/api/hrm/empOrgPosition.js
Normal file
34
klp-ui/src/api/hrm/empOrgPosition.js
Normal file
@@ -0,0 +1,34 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 员工组织岗位关系
|
||||
export function listEmpOrgPosition(query) {
|
||||
return request({
|
||||
url: '/hrm/empOrg/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addEmpOrgPosition(data) {
|
||||
return request({
|
||||
url: '/hrm/empOrg',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateEmpOrgPosition(data) {
|
||||
return request({
|
||||
url: '/hrm/empOrg',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delEmpOrgPosition(relIds) {
|
||||
return request({
|
||||
url: `/hrm/empOrg/${relIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
56
klp-ui/src/api/hrm/employee.js
Normal file
56
klp-ui/src/api/hrm/employee.js
Normal file
@@ -0,0 +1,56 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 员工
|
||||
export function listEmployee(query) {
|
||||
return request({
|
||||
url: '/hrm/employee/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function allEmployee(query) {
|
||||
return request({
|
||||
url: '/hrm/employee/all',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addEmployee(data) {
|
||||
return request({
|
||||
url: '/hrm/employee',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateEmployee(data) {
|
||||
return request({
|
||||
url: '/hrm/employee',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delEmployee(empIds) {
|
||||
return request({
|
||||
url: `/hrm/employee/${empIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function getEmployee(empId) {
|
||||
return request({
|
||||
url: `/hrm/employee/${empId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 根据用户ID获取员工信息
|
||||
export function getEmployeeByUserId(userId) {
|
||||
return request({
|
||||
url: `/hrm/employee/byUserId/${userId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
212
klp-ui/src/api/hrm/flow.js
Normal file
212
klp-ui/src/api/hrm/flow.js
Normal file
@@ -0,0 +1,212 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 流程任务
|
||||
export function listFlowTask(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/task/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function listTodoFlowTask(assigneeUserId) {
|
||||
return request({
|
||||
url: '/hrm/flow/task/todo',
|
||||
method: 'get',
|
||||
params: { assigneeUserId }
|
||||
})
|
||||
}
|
||||
|
||||
// 业务维度:按 bizType + bizId 查询当前待办任务(后端需提供)
|
||||
export function getTodoTaskByBiz(bizType, bizId, assigneeUserId) {
|
||||
return request({
|
||||
url: '/hrm/flow/task/todoByBiz',
|
||||
method: 'get',
|
||||
params: { bizType, bizId, assigneeUserId }
|
||||
})
|
||||
}
|
||||
|
||||
export function approveFlowTask(taskId, data) {
|
||||
return request({
|
||||
url: `/hrm/flow/task/${taskId}/approve`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function rejectFlowTask(taskId, data) {
|
||||
return request({
|
||||
url: `/hrm/flow/task/${taskId}/reject`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function withdrawFlowTask(taskId, data) {
|
||||
return request({
|
||||
url: `/hrm/flow/task/${taskId}/withdraw`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function transferFlowTask(taskId, data) {
|
||||
return request({
|
||||
url: `/hrm/flow/task/${taskId}/transfer`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function ccFlowTask(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/cc',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 流程动作/表单
|
||||
export function listFlowAction(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/action/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function listFlowFormData(query) {
|
||||
return request({
|
||||
// 后端 Controller: HrmFlowFormDataController
|
||||
// @RequestMapping("/hrm/flow/form") + @GetMapping("/list")
|
||||
url: '/hrm/flow/form/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 流程实例
|
||||
export function listFlowInstance(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/instance/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 我的申请(我发起的流程实例)
|
||||
export function listMyFlowInstance(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/instance/myList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getFlowInstance(instId) {
|
||||
return request({
|
||||
url: `/hrm/flow/instance/${instId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function queryInstanceByBiz(bizType, bizId) {
|
||||
return request({
|
||||
url: '/hrm/flow/instance/all',
|
||||
method: 'get',
|
||||
params: { bizType, bizId }
|
||||
})
|
||||
}
|
||||
|
||||
export function listFlowForm(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/form/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getFlowForm(formId) {
|
||||
return request({
|
||||
url: `/hrm/flow/form/${formId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 流程模板
|
||||
export function listFlowTemplate(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/template/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getFlowTemplate(tplId) {
|
||||
return request({
|
||||
url: `/hrm/flow/template/${tplId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addFlowTemplate(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/template',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateFlowTemplate(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/template',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delFlowTemplate(tplIds) {
|
||||
return request({
|
||||
url: `/hrm/flow/template/${tplIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 流程节点
|
||||
export function listFlowNode(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/node/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getFlowNode(nodeId) {
|
||||
return request({
|
||||
url: `/hrm/flow/node/${nodeId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addFlowNode(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/node',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateFlowNode(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/node',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delFlowNode(nodeIds) {
|
||||
return request({
|
||||
url: `/hrm/flow/node/${nodeIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
66
klp-ui/src/api/hrm/gradePosition.js
Normal file
66
klp-ui/src/api/hrm/gradePosition.js
Normal file
@@ -0,0 +1,66 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 职级
|
||||
export function listGrade(query) {
|
||||
return request({
|
||||
url: '/hrm/grade/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addGrade(data) {
|
||||
return request({
|
||||
url: '/hrm/grade',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateGrade(data) {
|
||||
return request({
|
||||
url: '/hrm/grade',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delGrade(gradeIds) {
|
||||
return request({
|
||||
url: `/hrm/grade/${gradeIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 岗位
|
||||
export function listPosition(query) {
|
||||
return request({
|
||||
url: '/hrm/position/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addPosition(data) {
|
||||
return request({
|
||||
url: '/hrm/position',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updatePosition(data) {
|
||||
return request({
|
||||
url: '/hrm/position',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delPosition(positionIds) {
|
||||
return request({
|
||||
url: `/hrm/position/${positionIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1,694 +1,12 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 组织
|
||||
export function listOrg(query) {
|
||||
return request({
|
||||
url: '/hrm/org/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function allOrg(query) {
|
||||
return request({
|
||||
url: '/hrm/org/all',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addOrg(data) {
|
||||
return request({
|
||||
url: '/hrm/org',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateOrg(data) {
|
||||
return request({
|
||||
url: '/hrm/org',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delOrg(orgIds) {
|
||||
return request({
|
||||
url: `/hrm/org/${orgIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function getOrg(orgId) {
|
||||
return request({
|
||||
url: `/hrm/org/${orgId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 员工
|
||||
export function listEmployee(query) {
|
||||
return request({
|
||||
url: '/hrm/employee/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function allEmployee(query) {
|
||||
return request({
|
||||
url: '/hrm/employee/all',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addEmployee(data) {
|
||||
return request({
|
||||
url: '/hrm/employee',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateEmployee(data) {
|
||||
return request({
|
||||
url: '/hrm/employee',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delEmployee(empIds) {
|
||||
return request({
|
||||
url: `/hrm/employee/${empIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function getEmployee(empId) {
|
||||
return request({
|
||||
url: `/hrm/employee/${empId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 证书与合同
|
||||
export function listCertificate(query) {
|
||||
return request({
|
||||
url: '/hrm/certificate/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addCertificate(data) {
|
||||
return request({
|
||||
url: '/hrm/certificate',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateCertificate(data) {
|
||||
return request({
|
||||
url: '/hrm/certificate',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delCertificate(certIds) {
|
||||
return request({
|
||||
url: `/hrm/certificate/${certIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function listContract(query) {
|
||||
return request({
|
||||
url: '/hrm/contract/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addContract(data) {
|
||||
return request({
|
||||
url: '/hrm/contract',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateContract(data) {
|
||||
return request({
|
||||
url: '/hrm/contract',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delContract(contractIds) {
|
||||
return request({
|
||||
url: `/hrm/contract/${contractIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 员工组织岗位关系
|
||||
export function listEmpOrgPosition(query) {
|
||||
return request({
|
||||
url: '/hrm/empOrg/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addEmpOrgPosition(data) {
|
||||
return request({
|
||||
url: '/hrm/empOrg',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateEmpOrgPosition(data) {
|
||||
return request({
|
||||
url: '/hrm/empOrg',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delEmpOrgPosition(relIds) {
|
||||
return request({
|
||||
url: `/hrm/empOrg/${relIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 职级/岗位
|
||||
export function listGrade(query) {
|
||||
return request({
|
||||
url: '/hrm/grade/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addGrade(data) {
|
||||
return request({
|
||||
url: '/hrm/grade',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateGrade(data) {
|
||||
return request({
|
||||
url: '/hrm/grade',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delGrade(gradeIds) {
|
||||
return request({
|
||||
url: `/hrm/grade/${gradeIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function listPosition(query) {
|
||||
return request({
|
||||
url: '/hrm/position/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addPosition(data) {
|
||||
return request({
|
||||
url: '/hrm/position',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updatePosition(data) {
|
||||
return request({
|
||||
url: '/hrm/position',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delPosition(positionIds) {
|
||||
return request({
|
||||
url: `/hrm/position/${positionIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 班次/排班/打卡/考勤
|
||||
export function listShift(query) {
|
||||
return request({
|
||||
url: '/hrm/shift/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addShift(data) {
|
||||
return request({
|
||||
url: '/hrm/shift',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateShift(data) {
|
||||
return request({
|
||||
url: '/hrm/shift',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delShift(shiftIds) {
|
||||
return request({
|
||||
url: `/hrm/shift/${shiftIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function listSchedule(query) {
|
||||
return request({
|
||||
url: '/hrm/schedule/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addSchedule(data) {
|
||||
return request({
|
||||
url: '/hrm/schedule',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateSchedule(data) {
|
||||
return request({
|
||||
url: '/hrm/schedule',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delSchedule(scheduleIds) {
|
||||
return request({
|
||||
url: `/hrm/schedule/${scheduleIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function listPunch(query) {
|
||||
return request({
|
||||
url: '/hrm/punch/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addPunch(data) {
|
||||
return request({
|
||||
url: '/hrm/punch',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updatePunch(data) {
|
||||
return request({
|
||||
url: '/hrm/punch',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delPunch(punchIds) {
|
||||
return request({
|
||||
url: `/hrm/punch/${punchIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function listAttendCalc(query) {
|
||||
return request({
|
||||
url: '/hrm/attend/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function listLeaveBalance(query) {
|
||||
return request({
|
||||
url: '/hrm/leave/balance/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addLeaveBalance(data) {
|
||||
return request({
|
||||
url: '/hrm/leave/balance',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateLeaveBalance(data) {
|
||||
return request({
|
||||
url: '/hrm/leave/balance',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delLeaveBalance(balIds) {
|
||||
return request({
|
||||
url: `/hrm/leave/balance/${balIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 申请单
|
||||
export function listLeaveReq(query) {
|
||||
return request({
|
||||
url: '/hrm/leave/req/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addLeaveReq(data) {
|
||||
return request({
|
||||
url: '/hrm/leave/req',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function listOvertimeReq(query) {
|
||||
return request({
|
||||
url: '/hrm/overtime/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addOvertimeReq(data) {
|
||||
return request({
|
||||
url: '/hrm/overtime',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function listTravelReq(query) {
|
||||
return request({
|
||||
url: '/hrm/travel/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function addTravelReq(data) {
|
||||
return request({
|
||||
url: '/hrm/travel',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function listSealReq(query) {
|
||||
return request({
|
||||
url: '/hrm/seal/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function getSealReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function addSealReq(data) {
|
||||
return request({
|
||||
url: '/hrm/seal',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateSealReq(data) {
|
||||
return request({
|
||||
url: '/hrm/seal',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delSealReq(bizIds) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function approveSealReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}/approve`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
export function rejectSealReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}/reject`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
export function cancelSealReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}/cancel`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
export function stampSealJava(bizId, data) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}/stamp/java`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function stampSealPython(bizId, data) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}/stamp/python`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 流程任务
|
||||
export function listFlowTask(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/task/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function listTodoFlowTask(assigneeUserId) {
|
||||
return request({
|
||||
url: '/hrm/flow/task/todo',
|
||||
method: 'get',
|
||||
params: { assigneeUserId }
|
||||
})
|
||||
}
|
||||
export function approveFlowTask(taskId, data) {
|
||||
return request({
|
||||
url: `/hrm/flow/task/${taskId}/approve`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function rejectFlowTask(taskId, data) {
|
||||
return request({
|
||||
url: `/hrm/flow/task/${taskId}/reject`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function withdrawFlowTask(taskId, data) {
|
||||
return request({
|
||||
url: `/hrm/flow/task/${taskId}/withdraw`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function listFlowAction(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/action/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function listFlowFormData(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/formData/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function listFlowForm(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/form/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function getFlowForm(formId) {
|
||||
return request({
|
||||
url: `/hrm/flow/form/${formId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
// 流程模板
|
||||
export function listFlowTemplate(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/template/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function getFlowTemplate(tplId) {
|
||||
return request({
|
||||
url: `/hrm/flow/template/${tplId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function addFlowTemplate(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/template',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateFlowTemplate(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/template',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delFlowTemplate(tplIds) {
|
||||
return request({
|
||||
url: `/hrm/flow/template/${tplIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
// 流程节点
|
||||
export function listFlowNode(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/node/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function getFlowNode(nodeId) {
|
||||
return request({
|
||||
url: `/hrm/flow/node/${nodeId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function addFlowNode(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/node',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updateFlowNode(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/node',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delFlowNode(nodeIds) {
|
||||
return request({
|
||||
url: `/hrm/flow/node/${nodeIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 薪酬
|
||||
export function listPayPlan(query) {
|
||||
return request({
|
||||
url: '/hrm/pay/plan/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function getPayPlan(planId) {
|
||||
return request({
|
||||
url: `/hrm/pay/plan/${planId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function addPayPlan(data) {
|
||||
return request({
|
||||
url: '/hrm/pay/plan',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updatePayPlan(data) {
|
||||
return request({
|
||||
url: '/hrm/pay/plan',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delPayPlan(planIds) {
|
||||
return request({
|
||||
url: `/hrm/pay/plan/${planIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function listPayRun(query) {
|
||||
return request({
|
||||
url: '/hrm/pay/run/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function getPayRun(runId) {
|
||||
return request({
|
||||
url: `/hrm/pay/run/${runId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function addPayRun(data) {
|
||||
return request({
|
||||
url: '/hrm/pay/run',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updatePayRun(data) {
|
||||
return request({
|
||||
url: '/hrm/pay/run',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delPayRun(runIds) {
|
||||
return request({
|
||||
url: `/hrm/pay/run/${runIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function listPayslip(query) {
|
||||
return request({
|
||||
url: '/hrm/payslip/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
export function getPayslip(slipId) {
|
||||
return request({
|
||||
url: `/hrm/payslip/${slipId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
export function addPayslip(data) {
|
||||
return request({
|
||||
url: '/hrm/payslip',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function updatePayslip(data) {
|
||||
return request({
|
||||
url: '/hrm/payslip',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function delPayslip(slipIds) {
|
||||
return request({
|
||||
url: `/hrm/payslip/${slipIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 指标快照
|
||||
export function listStatSnapshot(query) {
|
||||
return request({
|
||||
url: '/hrm/pay/stat/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 导出所有 HRM 模块 API
|
||||
export * from './employee'
|
||||
export * from './org'
|
||||
export * from './certContract'
|
||||
export * from './empOrgPosition'
|
||||
export * from './gradePosition'
|
||||
export * from './attendance'
|
||||
export * from './leave'
|
||||
export * from './travel'
|
||||
export * from './seal'
|
||||
export * from './reimburse'
|
||||
export * from './flow'
|
||||
|
||||
48
klp-ui/src/api/hrm/leave.js
Normal file
48
klp-ui/src/api/hrm/leave.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 请假单
|
||||
export function listLeaveReq(query) {
|
||||
return request({
|
||||
url: '/hrm/leave/req/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getLeaveReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/leave/req/${bizId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addLeaveReq(data) {
|
||||
return request({
|
||||
url: '/hrm/leave/req',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function editLeaveReq(data) {
|
||||
return request({
|
||||
url: '/hrm/leave/req',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delLeaveReq(bizIds) {
|
||||
return request({
|
||||
url: `/hrm/leave/req/${bizIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function allLeaveReq(query) {
|
||||
return request({
|
||||
url: '/hrm/leave/req/all',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
49
klp-ui/src/api/hrm/org.js
Normal file
49
klp-ui/src/api/hrm/org.js
Normal file
@@ -0,0 +1,49 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 组织
|
||||
export function listOrg(query) {
|
||||
return request({
|
||||
url: '/hrm/org/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function allOrg(query) {
|
||||
return request({
|
||||
url: '/hrm/org/all',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function addOrg(data) {
|
||||
return request({
|
||||
url: '/hrm/org',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateOrg(data) {
|
||||
return request({
|
||||
url: '/hrm/org',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delOrg(orgIds) {
|
||||
return request({
|
||||
url: `/hrm/org/${orgIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function getOrg(orgId) {
|
||||
return request({
|
||||
url: `/hrm/org/${orgId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
49
klp-ui/src/api/hrm/reimburse.js
Normal file
49
klp-ui/src/api/hrm/reimburse.js
Normal file
@@ -0,0 +1,49 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 日常报销单
|
||||
export function listReimburseReq(query) {
|
||||
return request({
|
||||
url: '/hrm/reimburse/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getReimburseReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/reimburse/${bizId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addReimburseReq(data) {
|
||||
return request({
|
||||
url: '/hrm/reimburse',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function editReimburseReq(data) {
|
||||
return request({
|
||||
url: '/hrm/reimburse',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delReimburseReq(bizIds) {
|
||||
return request({
|
||||
url: `/hrm/reimburse/${bizIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function allReimburseReq(query) {
|
||||
return request({
|
||||
url: '/hrm/reimburse/all',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
99
klp-ui/src/api/hrm/seal.js
Normal file
99
klp-ui/src/api/hrm/seal.js
Normal file
@@ -0,0 +1,99 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 用印申请
|
||||
export function listSealReq(query) {
|
||||
return request({
|
||||
url: '/hrm/seal/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getSealReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addSealReq(data) {
|
||||
return request({
|
||||
url: '/hrm/seal',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function editSealReq(data) {
|
||||
return request({
|
||||
url: '/hrm/seal',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delSealReq(bizIds) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function approveSealReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}/approve`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
export function rejectSealReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}/reject`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
export function cancelSealReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}/cancel`,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
export function stampSealJava(bizId, data) {
|
||||
// 确保数据正确序列化,特别是 0 值
|
||||
const payload = {
|
||||
targetFileUrl: String(data.targetFileUrl || ''),
|
||||
stampImageUrl: String(data.stampImageUrl || ''),
|
||||
pageNo: Number(data.pageNo) || 1,
|
||||
xPx: Number(data.xPx) || 0,
|
||||
yPx: Number(data.yPx) || 0,
|
||||
viewportWidth: data.viewportWidth !== undefined && data.viewportWidth !== null ? Number(data.viewportWidth) : undefined,
|
||||
viewportHeight: data.viewportHeight !== undefined && data.viewportHeight !== null ? Number(data.viewportHeight) : undefined
|
||||
}
|
||||
// 可选字段
|
||||
if (data.widthPx !== undefined && data.widthPx !== null) {
|
||||
payload.widthPx = Number(data.widthPx)
|
||||
}
|
||||
if (data.heightPx !== undefined && data.heightPx !== null) {
|
||||
payload.heightPx = Number(data.heightPx)
|
||||
}
|
||||
// viewportWidth/Height:如果是 undefined 则不传(兼容后端校验)
|
||||
if (payload.viewportWidth === undefined) delete payload.viewportWidth
|
||||
if (payload.viewportHeight === undefined) delete payload.viewportHeight
|
||||
console.log('stampSealJava API call, payload:', JSON.stringify(payload, null, 2))
|
||||
console.log('yPx in API:', typeof payload.yPx, payload.yPx)
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}/stamp/java`,
|
||||
method: 'post',
|
||||
data: payload
|
||||
})
|
||||
}
|
||||
|
||||
export function stampSealPython(bizId, data) {
|
||||
return request({
|
||||
url: `/hrm/seal/${bizId}/stamp/python`,
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
48
klp-ui/src/api/hrm/travel.js
Normal file
48
klp-ui/src/api/hrm/travel.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 出差单
|
||||
export function listTravelReq(query) {
|
||||
return request({
|
||||
url: '/hrm/travel/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getTravelReq(bizId) {
|
||||
return request({
|
||||
url: `/hrm/travel/${bizId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addTravelReq(data) {
|
||||
return request({
|
||||
url: '/hrm/travel',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function editTravelReq(data) {
|
||||
return request({
|
||||
url: '/hrm/travel',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delTravelReq(bizIds) {
|
||||
return request({
|
||||
url: `/hrm/travel/${bizIds}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function allTravelReq(query) {
|
||||
return request({
|
||||
url: '/hrm/travel/all',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
@@ -50,3 +50,11 @@ export function delDept(deptId) {
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询部门下拉树结构
|
||||
export function treeselect() {
|
||||
return request({
|
||||
url: '/system/dept/treeselect',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
@@ -9,10 +9,12 @@ export function listOss(query) {
|
||||
})
|
||||
}
|
||||
|
||||
// 查询OSS对象基于id串
|
||||
export function listByIds(ossId) {
|
||||
// 查询OSS对象基于id串(支持多个ID,用逗号分隔或数组)
|
||||
export function listByIds(ossIds) {
|
||||
// 如果是数组,转换为逗号分隔的字符串
|
||||
const ids = Array.isArray(ossIds) ? ossIds.join(',') : ossIds
|
||||
return request({
|
||||
url: '/system/oss/listByIds/' + ossId,
|
||||
url: '/system/oss/listByIds/' + ids,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user