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