From 56c15ac621d7741ade02afee5cbd03defc457973 Mon Sep 17 00:00:00 2001 From: 86156 <823267011@qq.com> Date: Tue, 23 Dec 2025 10:37:00 +0800 Subject: [PATCH 1/2] =?UTF-8?q?hrm=E5=89=8D=E7=AB=AF3=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- klp-ui/src/api/hrm/index.js | 68 +++++++ klp-ui/src/views/hrm/flow/node.vue | 179 +++++++++++++++++ klp-ui/src/views/hrm/flow/template.vue | 161 +++++++++++++++ klp-ui/src/views/hrm/requests/index.vue | 245 +++-------------------- klp-ui/src/views/hrm/requests/leave.vue | 137 +++++++++++++ klp-ui/src/views/hrm/requests/seal.vue | 133 ++++++++++++ klp-ui/src/views/hrm/requests/travel.vue | 167 +++++++++++++++ 7 files changed, 875 insertions(+), 215 deletions(-) create mode 100644 klp-ui/src/views/hrm/flow/node.vue create mode 100644 klp-ui/src/views/hrm/flow/template.vue create mode 100644 klp-ui/src/views/hrm/requests/leave.vue create mode 100644 klp-ui/src/views/hrm/requests/seal.vue create mode 100644 klp-ui/src/views/hrm/requests/travel.vue diff --git a/klp-ui/src/api/hrm/index.js b/klp-ui/src/api/hrm/index.js index b66bafe9..abd013ec 100644 --- a/klp-ui/src/api/hrm/index.js +++ b/klp-ui/src/api/hrm/index.js @@ -514,6 +514,74 @@ export function getFlowForm(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) { diff --git a/klp-ui/src/views/hrm/flow/node.vue b/klp-ui/src/views/hrm/flow/node.vue new file mode 100644 index 00000000..4475fa25 --- /dev/null +++ b/klp-ui/src/views/hrm/flow/node.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/klp-ui/src/views/hrm/flow/template.vue b/klp-ui/src/views/hrm/flow/template.vue new file mode 100644 index 00000000..ae4a0a09 --- /dev/null +++ b/klp-ui/src/views/hrm/flow/template.vue @@ -0,0 +1,161 @@ + + + + + diff --git a/klp-ui/src/views/hrm/requests/index.vue b/klp-ui/src/views/hrm/requests/index.vue index b44dd8d3..fe40a7f9 100644 --- a/klp-ui/src/views/hrm/requests/index.vue +++ b/klp-ui/src/views/hrm/requests/index.vue @@ -5,7 +5,7 @@
{{ item.title }}
- 新增 + 新增 - + @@ -131,120 +138,14 @@
- -
- - 请假 - 加班 - 出差 - 用印 - - 先选类型,再填写必填项 -
- - - - - - - - - - - - -
+ + diff --git a/klp-ui/src/views/hrm/requests/seal.vue b/klp-ui/src/views/hrm/requests/seal.vue new file mode 100644 index 00000000..445a23f5 --- /dev/null +++ b/klp-ui/src/views/hrm/requests/seal.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/klp-ui/src/views/hrm/requests/travel.vue b/klp-ui/src/views/hrm/requests/travel.vue new file mode 100644 index 00000000..564c95b0 --- /dev/null +++ b/klp-ui/src/views/hrm/requests/travel.vue @@ -0,0 +1,167 @@ + + + + + From 04eace18c40cb3588f71cac9532d1dc603eed160 Mon Sep 17 00:00:00 2001 From: 86156 <823267011@qq.com> Date: Tue, 23 Dec 2025 15:56:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=8D=8F=E8=B0=83L3=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=90=88=E5=90=8C=E8=AF=81=E4=B9=A6?= =?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/klp/hrm/domain/HrmCertificate.java | 4 + .../java/com/klp/hrm/domain/HrmContract.java | 4 + .../klp/hrm/domain/bo/HrmCertificateBo.java | 10 + .../com/klp/hrm/domain/bo/HrmContractBo.java | 10 + .../klp/hrm/domain/vo/HrmCertificateVo.java | 7 + .../com/klp/hrm/domain/vo/HrmContractVo.java | 7 + klp-ui/src/api/hrm/index.js | 2 +- klp-ui/src/components/FileUpload/index.vue | 25 + klp-ui/src/views/hrm/attendance/index.vue | 83 +-- klp-ui/src/views/hrm/org/index.vue | 485 ++++++++++++++++-- klp-ui/src/views/hrm/payroll/index.vue | 7 + 11 files changed, 577 insertions(+), 67 deletions(-) diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmCertificate.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmCertificate.java index a1c3ee1b..a20caed1 100644 --- a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmCertificate.java +++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmCertificate.java @@ -25,6 +25,10 @@ public class HrmCertificate extends BaseEntity implements Serializable { private Date validFrom; private Date validTo; private String remark; + /** + * 证书附件 fileIds(逗号分隔的 OSS ID) + */ + private String fileIds; @TableLogic private Integer delFlag; } diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmContract.java b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmContract.java index 6cd604a8..8d3e8b8d 100644 --- a/klp-hrm/src/main/java/com/klp/hrm/domain/HrmContract.java +++ b/klp-hrm/src/main/java/com/klp/hrm/domain/HrmContract.java @@ -25,6 +25,10 @@ public class HrmContract extends BaseEntity implements Serializable { private Date endDate; private String status; private String remark; + /** + * 合同附件 fileIds(逗号分隔的 OSS ID) + */ + private String fileIds; @TableLogic private Integer delFlag; } diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmCertificateBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmCertificateBo.java index b5861acf..53850477 100644 --- a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmCertificateBo.java +++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmCertificateBo.java @@ -1,8 +1,10 @@ package com.klp.hrm.domain.bo; import com.klp.common.core.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -22,7 +24,15 @@ public class HrmCertificateBo extends BaseEntity { private String certNo; private String issuedBy; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date validFrom; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date validTo; private String remark; + /** + * 证书附件 fileIds(逗号分隔的 OSS ID) + */ + private String fileIds; } diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmContractBo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmContractBo.java index 07fbd23a..cbea96da 100644 --- a/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmContractBo.java +++ b/klp-hrm/src/main/java/com/klp/hrm/domain/bo/HrmContractBo.java @@ -7,6 +7,8 @@ import lombok.EqualsAndHashCode; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; @Data @EqualsAndHashCode(callSuper = true) @@ -21,8 +23,16 @@ public class HrmContractBo extends BaseEntity { private String contractNo; private String contractType; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date startDate; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endDate; private String status; private String remark; + /** + * 合同附件 fileIds(逗号分隔的 OSS ID) + */ + private String fileIds; } diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmCertificateVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmCertificateVo.java index 8c79a89d..b65cc0d9 100644 --- a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmCertificateVo.java +++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmCertificateVo.java @@ -5,6 +5,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; @Data public class HrmCertificateVo implements Serializable { @@ -21,11 +22,17 @@ public class HrmCertificateVo implements Serializable { @Excel(name = "颁发机构") private String issuedBy; @Excel(name = "有效期开始", width = 20, dateFormat = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date validFrom; @Excel(name = "有效期结束", width = 20, dateFormat = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date validTo; @Excel(name = "备注") private String remark; + /** + * 证书附件 fileIds(逗号分隔的 OSS ID) + */ + private String fileIds; private String createBy; private Date createTime; private String updateBy; diff --git a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmContractVo.java b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmContractVo.java index 7b486e30..53ca6820 100644 --- a/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmContractVo.java +++ b/klp-hrm/src/main/java/com/klp/hrm/domain/vo/HrmContractVo.java @@ -5,6 +5,7 @@ import lombok.Data; import java.io.Serializable; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; @Data public class HrmContractVo implements Serializable { @@ -19,13 +20,19 @@ public class HrmContractVo implements Serializable { @Excel(name = "合同类型") private String contractType; @Excel(name = "开始日期", width = 20, dateFormat = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date startDate; @Excel(name = "结束日期", width = 20, dateFormat = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endDate; @Excel(name = "状态") private String status; @Excel(name = "备注") private String remark; + /** + * 合同附件 fileIds(逗号分隔的 OSS ID) + */ + private String fileIds; private String createBy; private Date createTime; private String updateBy; diff --git a/klp-ui/src/api/hrm/index.js b/klp-ui/src/api/hrm/index.js index abd013ec..0568c011 100644 --- a/klp-ui/src/api/hrm/index.js +++ b/klp-ui/src/api/hrm/index.js @@ -687,7 +687,7 @@ export function delPayslip(slipIds) { // 指标快照 export function listStatSnapshot(query) { return request({ - url: '/hrm/stat/snapshot/list', + url: '/hrm/pay/stat/list', method: 'get', params: query }) diff --git a/klp-ui/src/components/FileUpload/index.vue b/klp-ui/src/components/FileUpload/index.vue index 63d2375a..0e834686 100644 --- a/klp-ui/src/components/FileUpload/index.vue +++ b/klp-ui/src/components/FileUpload/index.vue @@ -48,6 +48,11 @@ export default { props: { // 值 value: [String, Object, Array], + // 额外的自定义校验函数,返回 false 阻止上传 + beforeValidate: { + type: Function, + default: null, + }, // 数量限制 limit: { type: Number, @@ -127,6 +132,15 @@ export default { methods: { // 上传前校检格式和大小 handleBeforeUpload(file) { + // 额外自定义校验 + if (this.beforeValidate) { + const pass = this.beforeValidate(file); + if (pass === false) { + // 防止残留文件 + this.resetUpload(); + return false; + } + } // 校检文件类型 if (this.fileType) { const fileName = file.name.split('.'); @@ -189,6 +203,17 @@ export default { this.$modal.closeLoading(); } }, + // 重置上传状态(外部可调用) + resetUpload() { + this.number = 0; + this.uploadList = []; + this.fileList = []; + this.$emit("input", ""); + if (this.$refs.fileUpload) { + this.$refs.fileUpload.clearFiles(); + } + this.$modal.closeLoading(); + }, // 获取文件名称 getFileName(name) { // 如果是url那么取最后的名字 如果不是直接返回 diff --git a/klp-ui/src/views/hrm/attendance/index.vue b/klp-ui/src/views/hrm/attendance/index.vue index 1126d112..93b48b1d 100644 --- a/klp-ui/src/views/hrm/attendance/index.vue +++ b/klp-ui/src/views/hrm/attendance/index.vue @@ -1,12 +1,11 @@