huminmin
8 小时以前 28fc65c34d1642b007dc45b83782e23be58d718c
已进行排班并且人员已打卡的前提下,对应的班次配置不能编辑删除。
已修改1个文件
15 ■■■■■ 文件已修改
src/views/personnelManagement/attendanceCheckin/checkinRules/index.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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: "取消",