From ab8c184a629b4e92f7b472e2e5cbb870120afee4 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期四, 12 二月 2026 15:25:55 +0800
Subject: [PATCH] 上下班时间限制校验
---
src/views/personnelManagement/attendanceCheckin/checkinRules/components/form.vue | 37 ++++++++++++++++++++++++++++++++++++-
1 files changed, 36 insertions(+), 1 deletions(-)
diff --git a/src/views/personnelManagement/attendanceCheckin/checkinRules/components/form.vue b/src/views/personnelManagement/attendanceCheckin/checkinRules/components/form.vue
index 39eacda..1585a8a 100644
--- a/src/views/personnelManagement/attendanceCheckin/checkinRules/components/form.vue
+++ b/src/views/personnelManagement/attendanceCheckin/checkinRules/components/form.vue
@@ -89,6 +89,9 @@
<el-time-picker v-model="form.endAt"
format="HH:mm"
value-format="HH:mm"
+ :picker-options="{
+ minTime: form.startAt
+ }"
placeholder="璇烽�夋嫨涓嬬彮鏃堕棿"
:disabled="operationType === 'view'" />
</el-form-item>
@@ -127,6 +130,7 @@
default: () => ({}),
},
});
+ // const pickerOptions = ref({ minTime: form.value.startAt });
const emit = defineEmits(["update:modelValue", "close"]);
@@ -164,7 +168,28 @@
latitude: [{ required: true, message: "璇烽�夋嫨鎵撳崱浣嶇疆", trigger: "blur" }],
radius: [{ required: true, message: "璇疯緭鍏ユ墦鍗¤寖鍥�", trigger: "blur" }],
startAt: [{ required: true, message: "璇烽�夋嫨涓婄彮鏃堕棿", trigger: "change" }],
- endAt: [{ required: true, message: "璇烽�夋嫨涓嬬彮鏃堕棿", trigger: "change" }],
+ endAt: [
+ { required: true, message: "璇烽�夋嫨涓嬬彮鏃堕棿", trigger: "change" },
+ {
+ validator: (rule, value, callback) => {
+ if (form.startAt && value) {
+ const startParts = form.startAt.split(":");
+ const endParts = value.split(":");
+ const startTime =
+ parseInt(startParts[0]) * 60 + parseInt(startParts[1]);
+ const endTime = parseInt(endParts[0]) * 60 + parseInt(endParts[1]);
+ if (endTime <= startTime) {
+ callback(new Error("涓嬬彮鏃堕棿涓嶈兘鏃╀簬涓婄彮鏃堕棿"));
+ } else {
+ callback();
+ }
+ } else {
+ callback();
+ }
+ },
+ trigger: "change",
+ },
+ ],
};
// 閮ㄩ棬閫夐」
@@ -355,6 +380,16 @@
}
);
+ // 鐩戝惉涓婄彮鏃堕棿鍙樺寲锛岃Е鍙戜笅鐝椂闂存牎楠�
+ watch(
+ () => form.startAt,
+ () => {
+ if (formRef.value && form.endAt) {
+ formRef.value.validateField("endAt");
+ }
+ }
+ );
+
// 鐩戝惉寮圭獥鏄剧ず
watch(
() => dialogVisible.value,
--
Gitblit v1.9.3