diff --git a/klp-ui/src/views/wms/hrm/apply/leave.vue b/klp-ui/src/views/wms/hrm/apply/leave.vue
index 7468e867..d1f81c85 100644
--- a/klp-ui/src/views/wms/hrm/apply/leave.vue
+++ b/klp-ui/src/views/wms/hrm/apply/leave.vue
@@ -8,7 +8,7 @@
-
+
@@ -29,14 +29,8 @@
请假时段 {{ index + 1 }}
- 删除
+ 删除
@@ -79,7 +73,9 @@
- {{ form.leaveId ? '更新申请' : '批量提交申请' }}
+ {{ form.leaveId ? '更新申请' :
+ '批量提交申请'
+ }}
重置表单
@@ -107,7 +103,8 @@
-
+
{{ task.approverName }} {{ getTaskStatusText(task.taskStatus) }}
@@ -307,7 +304,8 @@ export default {
endTime: data.endTime,
leaveShift: data.leaveShift,
leaveDays: data.leaveDays,
- leaveReason: data.leaveReason
+ leaveReason: data.leaveReason,
+ oldApprovalType: data.approvalType,
}]
};
});
@@ -327,7 +325,7 @@ export default {
this.buttonLoading = true;
const { list, ...commonFields } = this.form; // 拆分公共字段和时段列表
let successCount = 0;
- let failCount = 0;
+ let failCount = 0;
const failReasons = [];
// 2. 循环处理每个时段,逐个发送请求
@@ -342,21 +340,23 @@ export default {
leaveDays: item.leaveDays,
leaveReason: item.leaveReason,
// 生成单条记录的标题
- leaveTitle: `${commonFields.applicantName}-${commonFields.leaveType}-时段${i+1}-${item.startTime}-${item.leaveReason || ''}`,
+ leaveTitle: `${commonFields.applicantName}-${commonFields.leaveType}-时段${i + 1}-${item.startTime}-${item.leaveReason || ''}`,
approvalType: approvalType,
};
try {
if (commonFields.leaveId != null) {
+ if (singleRequestData.oldApprovalType !== approvalType) {
+ this.$message.warning('请假时长变动过大,请撤销后重新发起');
+ failCount++;
+ continue;
+ }
+ await updateLeaveRequest({ ...singleRequestData, leaveId: commonFields.leaveId });
+ successCount++;
// 编辑模式:仅支持修改单条(因为后端是单条记录)
if (list.length > 1) {
this.$message.warning('编辑模式仅支持单条修改,已自动取第一行数据');
- await updateLeaveRequest({ ...singleRequestData, leaveId: commonFields.leaveId });
- successCount++;
break; // 编辑时只处理第一条
- } else {
- await updateLeaveRequest({ ...singleRequestData, leaveId: commonFields.leaveId });
- successCount++;
}
} else {
// 新增模式:批量提交多条
@@ -365,19 +365,23 @@ export default {
}
} catch (error) {
failCount++;
- failReasons.push(`时段${i+1}提交失败:${error.message || '未知错误'}`);
+ failReasons.push(`时段${i + 1}提交失败:${error.message || '未知错误'}`);
// 失败后继续提交下一条,不中断批量操作
continue;
}
}
// 3. 提交完成后反馈结果
- if (failCount === 0) {
- this.$modal.msgSuccess(`批量提交成功!共提交${successCount}条请假申请`);
- } else {
- this.$modal.msgWarning(`批量提交完成!成功${successCount}条,失败${failCount}条\n失败原因:${failReasons.join(';')}`);
+ console.log(commonFields.leaveId);
+ if (commonFields.leaveId == null) {
+ if (failCount === 0) {
+ this.$modal.msgSuccess(`批量提交成功!共提交${successCount}条请假申请`);
+ } else {
+ this.$modal.msgWarning(`批量提交完成!成功${successCount}条,失败${failCount}条\n失败原因:${failReasons.join(';')}`);
+ }
}
+
// 4. 刷新列表并重置表单
this.getList();
this.reset();
diff --git a/klp-ui/src/views/wms/hrm/todo/index.vue b/klp-ui/src/views/wms/hrm/todo/index.vue
index 931d506b..3495565f 100644
--- a/klp-ui/src/views/wms/hrm/todo/index.vue
+++ b/klp-ui/src/views/wms/hrm/todo/index.vue
@@ -182,6 +182,9 @@
{{ currentDetail.leaveDays || '-' }}
{{ currentDetail.leaveReason || '-' }}
{{ currentDetail.remark || '-' }}
+
+
+
@@ -196,6 +199,9 @@
{{ currentDetail.outPlace || '-' }}
{{ currentDetail.outReason || '-' }}
{{ currentDetail.remark || '-' }}
+
+
+
@@ -208,9 +214,14 @@