feat(HRM): 新增HRM办公审批模块及相关功能组件
新增HRM办公审批模块,包括审批中心、抄送我的、我的申请等功能页面和组件。主要变更包括: 1. 添加审批相关API接口文件 2. 新增审批详情展示组件 3. 实现审批流程操作功能 4. 添加Vuex状态管理 5. 新增相关静态资源图片 6. 配置页面路由 7. 实现审批列表展示和筛选功能 8. 添加审批操作弹窗和状态管理
This commit is contained in:
127
api/hrm/attendance.js
Normal file
127
api/hrm/attendance.js
Normal file
@@ -0,0 +1,127 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 班次
|
||||
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
api/hrm/cc.js
Normal file
35
api/hrm/cc.js
Normal file
@@ -0,0 +1,35 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 查询抄送记录列表
|
||||
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
api/hrm/certContract.js
Normal file
66
api/hrm/certContract.js
Normal file
@@ -0,0 +1,66 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 证书
|
||||
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'
|
||||
})
|
||||
}
|
||||
|
||||
33
api/hrm/empOrgPosition.js
Normal file
33
api/hrm/empOrgPosition.js
Normal file
@@ -0,0 +1,33 @@
|
||||
import request from "@/util/oaRequest"
|
||||
// 员工组织岗位关系
|
||||
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
api/hrm/employee.js
Normal file
56
api/hrm/employee.js
Normal file
@@ -0,0 +1,56 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 员工
|
||||
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'
|
||||
})
|
||||
}
|
||||
220
api/hrm/flow.js
Normal file
220
api/hrm/flow.js
Normal file
@@ -0,0 +1,220 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 流程任务
|
||||
export function listFlowTask(query) {
|
||||
return request({
|
||||
url: '/hrm/flow/task/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function updateFlowInstance(data) {
|
||||
return request({
|
||||
url: '/hrm/flow/instance',
|
||||
method: 'put',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
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',
|
||||
params: 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
api/hrm/gradePosition.js
Normal file
66
api/hrm/gradePosition.js
Normal file
@@ -0,0 +1,66 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 职级
|
||||
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'
|
||||
})
|
||||
}
|
||||
|
||||
12
api/hrm/index.js
Normal file
12
api/hrm/index.js
Normal file
@@ -0,0 +1,12 @@
|
||||
// 导出所有 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
api/hrm/leave.js
Normal file
48
api/hrm/leave.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 请假单
|
||||
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
api/hrm/org.js
Normal file
49
api/hrm/org.js
Normal file
@@ -0,0 +1,49 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 组织
|
||||
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
api/hrm/reimburse.js
Normal file
49
api/hrm/reimburse.js
Normal file
@@ -0,0 +1,49 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 日常报销单
|
||||
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
api/hrm/seal.js
Normal file
99
api/hrm/seal.js
Normal file
@@ -0,0 +1,99 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 用印申请
|
||||
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
api/hrm/travel.js
Normal file
48
api/hrm/travel.js
Normal file
@@ -0,0 +1,48 @@
|
||||
import request from "@/util/oaRequest"
|
||||
|
||||
// 出差单
|
||||
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
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user