diff --git a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java
index 0d2a9ba0..5dd381f7 100644
--- a/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java
+++ b/continew-admin-system/src/main/java/top/charles7c/cnadmin/system/service/impl/DeptServiceImpl.java
@@ -119,12 +119,11 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO,
         Optional<DeptDO> isSystemData = list.stream().filter(d -> DataTypeEnum.SYSTEM.equals(d.getType())).findFirst();
         CheckUtils.throwIf(isSystemData::isPresent, "所选部门 [{}] 是系统内置部门,不允许删除",
             isSystemData.orElseGet(DeptDO::new).getName());
+        CheckUtils.throwIf(this.countChildren(ids) > 0, "所选部门存在下级部门,不允许删除");
         CheckUtils.throwIf(userService.countByDeptIds(ids) > 0, "所选部门存在用户关联,请解除关联后重试");
 
         // 删除角色和部门关联
         roleDeptService.deleteByDeptIds(ids);
-        // 删除子部门
-        baseMapper.lambdaUpdate().in(DeptDO::getParentId, ids).remove();
         // 删除部门
         super.delete(ids);
     }
@@ -193,6 +192,22 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptVO,
         return baseMapper.lambdaQuery().apply(String.format("find_in_set(%s, `ancestors`)", id)).list();
     }
 
+    /**
+     * 查询子部门数量
+     *
+     * @param ids
+     *            ID 列表
+     * @return 子部门数量
+     */
+    private Long countChildren(List<Long> ids) {
+        if (CollUtil.isEmpty(ids)) {
+            return 0L;
+        }
+        return ids.stream()
+            .mapToLong(id -> baseMapper.lambdaQuery().apply(String.format("find_in_set(%s, `ancestors`)", id)).count())
+            .sum();
+    }
+
     /**
      * 更新子部门祖级列表
      *
diff --git a/continew-admin-ui/src/views/system/dept/index.vue b/continew-admin-ui/src/views/system/dept/index.vue
index f56ccabc..b59de1d5 100644
--- a/continew-admin-ui/src/views/system/dept/index.vue
+++ b/continew-admin-ui/src/views/system/dept/index.vue
@@ -158,7 +158,7 @@
                 <template #icon><icon-edit /></template>修改
               </a-button>
               <a-popconfirm
-                content="确定要删除当前选中的数据吗?如果存在下级部门则一并删除,此操作不能撤销!"
+                content="确定要删除当前选中的数据吗?"
                 type="warning"
                 @ok="handleDelete([record.id])"
               >
@@ -490,8 +490,7 @@
       proxy.$modal.warning({
         title: '警告',
         titleAlign: 'start',
-        content:
-          '确定要删除当前选中的数据吗?如果存在下级部门则一并删除,此操作不能撤销!',
+        content: '确定要删除当前选中的数据吗?',
         hideCancel: false,
         onOk: () => {
           handleDelete(ids.value);