diff --git a/newdocs/docs/notes/pro/selectusercom.md b/newdocs/docs/notes/pro/selectusercom.md index c7adfd2f..1886bdba 100644 --- a/newdocs/docs/notes/pro/selectusercom.md +++ b/newdocs/docs/notes/pro/selectusercom.md @@ -4,166 +4,181 @@ createTime: 2025/05/24 23:43:26 permalink: /pro/selectusercom/ --- -SelectUsersCom是一个用于选择用户或角色的基础组件。如下图: +SelectUsersCom是一个用于选择用户或角色的组件,提供了两种使用方式: +1. 对话框模式 (index.vue) +2. 输入框触发模式 (indexwithinput.vue) -![2025-07-21-22-58-52](http://img.openauth.net.cn/2025-07-21-22-58-52.png) +![2025-07-24-00-07-13](http://img.openauth.net.cn/2025-07-24-00-07-13.png) -一般通过按钮触发弹框进行选择,如下: +## 基础对话框组件 (index.vue) -```vue - 选择用户 - - - +### 组件功能 +- 支持选择用户或角色 +- 支持组织树结构浏览 +- 支持搜索功能 +- 支持分页显示 +- 支持已选项目可视化管理 - -``` - -还有一种通过输入框触发弹框进行选择,这时需要回填数据到文本框中。如下: - -![2025-07-21-23-05-22](http://img.openauth.net.cn/2025-07-21-23-05-22.png) - -```vue - - - - - - -``` - -为了方便使用,我们在`SelectUsersCom`组件的基础上封装了`/components/SelectUsersCom/dialog.vue`组件用于带文本框的场景。使用如下: - -```vue - - - -``` - -## 属性 +### 属性说明 | 属性名 | 类型 | 默认值 | 说明 | | --- | --- | --- | --- | -| show | Boolean | false | 控制组件显示/隐藏 | -| selectType | String | - | 选择类型,'User'表示选择用户,'Role'表示选择角色 | -| orgId | String | - | 组织ID,如果为空则显示左侧树状结构 | -| ignoreAuth | Boolean | false | 是否忽略登录用户权限,直接获取全部数据,用于可以跨部门选择用户、角色的场景 | -| hiddenFooter | Boolean | false | 是否隐藏底部的确定/取消按钮 | -| userNames | String | - | 已选用户/角色名称,逗号分隔 | -| users | Array | [] | 已选用户/角色ID或对象列表 | -| inType | String | 'id' | 传入的users参数类型,'id'表示ID数组,'object'表示对象数组 | +| ignoreAuth | Boolean | false | 是否忽略登录用户权限,直接获取全部数据 | +| selectType | String | 'User' | 选择类型,'User'表示选择用户,'Role'表示选择角色 | +| orgId | String | - | 组织ID,如果为空则显示左边树状结构 | +| userNames | String | - | 用户名称(逗号分隔) | +| users | Object | - | 初始选中项ID列表或对象列表 | +| inType | String | 'id' | 父级传入的是id列表还是对象列表,取值为'id'或'obj' | +| modelValue | Boolean | false | 控制对话框显示 | -## 事件 +### 事件说明 -| 事件名 | 说明 | 回调参数 | -| --- | --- | --- | -| update:show | 组件显示状态变化时触发 | (show: Boolean) | -| update:userNames | 选择的用户/角色名称变化时触发 | (userNames: String) | -| update:users | 选择的用户/角色ID变化时触发 | (users: Array) | +| 事件名 | 说明 | +| --- | --- | +| update:userNames | 更新用户名称 | +| update:users | 更新用户列表 | +| save | 保存选择结果 | +| update:modelValue | 更新对话框显示状态 | -## 方法 - -| 方法名 | 说明 | 参数 | -| --- | --- | --- | -| handleSaveUsers | 保存已选中的用户/角色,可通过ref调用 | - | - -## 更多示例 - -### 选择角色 +### 使用示例 ```vue - - - - + ``` -为了方便使用,我们在`SelectUsersCom`组件的基础上封装了`SelectRoles`组件用于选择角色。使用如下: +## 输入框触发模式 (indexwithinput.vue) + +### 组件功能 +- 默认显示为输入框 +- 点击输入框弹出选择对话框 +- 支持根据用户ID自动获取用户姓名 +- 支持选择用户并回显名称 + +### 属性说明 + +| 属性名 | 类型 | 默认值 | 说明 | +| --- | --- | --- | --- | +| users | Array/String | - | 用户ID列表或单个用户ID | +| userNames | String | '' | 用户名称(逗号分隔) | +| placeholder | String | '' | 输入框占位符 | +| ignoreAuth | Boolean | false | 是否忽略权限限制 | + +### 事件说明 + +| 事件名 | 说明 | +| --- | --- | +| users-change | 用户选择变更时触发,参数为('users', 选中的用户ID列表)或('Texts', 选中的用户名称) | + +### 使用示例 ```vue - + ``` -### 不显示底部按钮,通过ref调用方法 +## 角色选择输入框 (SelectRoles/indexwithinput.vue) + +### 组件功能 +- 基于SelectUsersCom实现的角色选择器 +- 默认显示为输入框 +- 点击输入框弹出选择角色对话框 + +### 属性说明 + +| 属性名 | 类型 | 默认值 | 说明 | +| --- | --- | --- | --- | +| roles | Array | - | 角色ID列表 | +| userNames | String | - | 角色名称(逗号分隔) | +| placeholder | String | - | 输入框占位符 | +| ignoreAuth | Boolean | false | 是否忽略权限限制 | + +### 事件说明 + +| 事件名 | 说明 | +| --- | --- | +| roles-change | 角色选择变更时触发,参数为('roles', 选中的角色ID列表)或('Texts', 选中的角色名称) | + +### 使用示例 ```vue - - - - + ``` ## 注意事项 -1. 当`ignoreAuth`为`true`时,将调用`loadAll`接口获取所有数据,否则调用`getList`接口获取有权限的数据 \ No newline at end of file +1. 使用indexwithinput.vue时,如果在弹出框中使用,建议设置`:destroy-on-close="true"`,避免names记录上一次选中行的值 +2. 选择用户时可以通过组织树进行筛选,也可以直接搜索 +3. ignoreAuth属性可以控制是否忽略用户权限限制,直接获取全部数据 +4. 组件内部会自动处理用户ID和用户名称的映射关系 \ No newline at end of file