From 28fc65c34d1642b007dc45b83782e23be58d718c Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 08 七月 2026 16:43:58 +0800
Subject: [PATCH] 已进行排班并且人员已打卡的前提下,对应的班次配置不能编辑删除。
---
src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue b/src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue
index 8bebe3b..9658b1f 100644
--- a/src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue
+++ b/src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue
@@ -123,9 +123,11 @@
<template #default="scope">
<el-button type="primary"
link
+ :disabled="isRuleLocked(scope.row)"
@click="openForm('edit', scope.row)">缂栬緫</el-button>
<el-button type="danger"
link
+ :disabled="isRuleLocked(scope.row)"
@click="handleDelete(scope.row.id)">鍒犻櫎</el-button>
</template>
</el-table-column>
@@ -212,6 +214,10 @@
return shift ? shift.label : value;
};
+ const isRuleLocked = row => {
+ return Boolean(row?.usageLocked || row?.canEdit === false || row?.canDelete === false);
+ };
+
// 鑾峰彇閮ㄩ棬鍒楄〃
const fetchDeptOptions = () => {
deptTreeSelect().then(response => {
@@ -286,6 +292,10 @@
// 鎵撳紑琛ㄥ崟
const openForm = (type, row = {}) => {
+ if (type === "edit" && isRuleLocked(row)) {
+ ElMessage.warning("璇ョ彮娆¢厤缃凡琚帓鐝苟浜х敓鎵撳崱璁板綍锛屼笉鑳界紪杈�");
+ return;
+ }
operationType.value = type;
currentRow.value = row;
dialogVisible.value = true;
@@ -293,6 +303,11 @@
// 鍒犻櫎鐝
const handleDelete = id => {
+ const row = tableData.value.find(item => String(item.id) === String(id));
+ if (isRuleLocked(row)) {
+ ElMessage.warning("瀛樺湪宸叉帓鐝笖宸叉湁鎵撳崱璁板綍鐨勭彮娆¢厤缃紝涓嶈兘鍒犻櫎");
+ return;
+ }
ElMessageBox.confirm("纭畾瑕佸垹闄よ繖鏉$彮娆″悧锛�", "鍒犻櫎纭", {
confirmButtonText: "纭畾",
cancelButtonText: "鍙栨秷",
--
Gitblit v1.9.3