Skip to content

UserSelectPanel 用户选择面板

用户选择面板(模态框形式)。左侧展示组织树,右侧展示用户列表(带复选框和分页),支持按组织筛选用户、搜索用户、标记已授权用户。适用于批量授权场景。

基础用法

vue
<template>
  <n-button @click="showPanel = true">选择用户</n-button>
  <UserSelectPanel
    v-model:show="showPanel"
    title="授权用户"
    :assigned-user-ids="[1, 2, 3]"
    @confirm="handleConfirm"
  />
</template>

<script setup>
import { ref } from 'vue'
import UserSelectPanel from '@/components/UserSelectPanel.vue'

const showPanel = ref(false)

function handleConfirm(userIds) {
  console.log('选中的用户ID:', userIds)
  showPanel.value = false
}
</script>

Props

属性类型默认值说明
showBooleanfalse是否显示模态框(支持 v-model)
titleString'选择用户'模态框标题
confirmLoadingBooleanfalse确认按钮加载状态
assignedUserIdsArray[]已授权用户 ID 列表,这些用户会被标记为"已授权"且不可重复选择
tenantIdNumber | String租户 ID,筛选指定租户下的用户
initialOrgIdNumber | String初始选中的组织 ID
lockedOrgIdNumber | String锁定的组织 ID,设置后不可切换组织
directOrgOnlyBooleanfalse是否仅查询直属用户(不包含下级组织用户)

Events

事件名参数说明
update:show(show: boolean)面板显隐变化
confirm(userIds: Array)点击确认按钮,携带选中的用户 ID 数组

与 UserSelectModal / UserSelectPicker 的区别

组件适用场景特点
UserSelectPanel批量授权、按组织筛选左侧组织树 + 右侧用户列表,适合一次性添加大量用户
UserSelectModal通用用户搜索选择搜索条件 + 表格选择,支持单选/多选
UserSelectPicker表单控件只读输入框 + 弹窗选择,适合作为表单项

Forge Admin — 基于 Vue3 + Spring Boot 的企业级后台管理框架