# g-select-dialog **Repository Path**: ujjldn/g-select-dialog ## Basic Information - **Project Name**: g-select-dialog - **Description**: 一个基于 Vue 3 和 Element Plus 的选择器组件库,包含特殊字符、用户、部门和角色等选择功能。 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-10 - **Last Updated**: 2025-08-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: Vue, Element-UI ## README # g-selectDialog 一个基于 Vue 3 和 Element Plus 的选择器组件库,包含用户、部门和角色选择功能。 ## 🎯 项目概述 g-selectDialog 是一组灵活且易用的选择器组件,专为 Vue 3 应用程序设计。它提供了用户、部门和角色的选择功能,支持单选、多选以及限制选择数量等多种使用场景。 ## 🚀 快速开始 ### 安装依赖 ```bash npm install ``` ### 本地开发 ```bash npm run dev ``` ### 生产构建 ```bash npm run build ``` ## 🧩 组件介绍 ### UserSelector - 用户选择器 用户选择器组件支持通过部门和角色筛选用户,提供用户列表展示和搜索功能。 #### 功能特性 - 支持通过部门和角色筛选用户 - 用户搜索功能 - 支持单选和多选模式 - 可限制选择数量 - 分页展示用户列表 - 已选择用户管理 #### 使用示例 ```vue ``` ### UserSelectorH5 - 用户选择器(H5移动端) 专为移动端设计的用户选择器组件,具有响应式布局和触摸友好的交互。 #### 功能特性 - 支持通过部门筛选用户 - 用户搜索功能 - 支持单选和多选模式 - 可限制选择数量 - 分页展示用户列表 - 已选择用户管理 - 面包屑导航支持 - 移动端优化的UI界面 #### 使用示例 ```vue ``` ### DeptSelector - 部门选择器 部门选择器基于树形结构展示部门信息,支持层级选择。 #### 功能特性 - 树形结构展示部门层级 - 支持单选和多选模式 - 可限制选择数量 - 部门搜索功能 - 全选功能(多选模式下) #### 使用示例 ```vue ``` ### DeptSelectorH5 - 部门选择器(H5移动端) 专为移动端设计的部门选择器组件,具有响应式布局和触摸友好的交互。 #### 功能特性 - 树形结构展示部门层级 - 支持单选和多选模式 - 可限制选择数量 - 部门搜索功能 - 全选功能(多选模式下) - 面包屑导航支持 - 移动端优化的UI界面 #### 使用示例 ```vue ``` ### RoleSelector - 角色选择器 角色选择器同样基于树形结构展示角色信息。 #### 功能特性 - 树形结构展示角色层级 - 支持单选和多选模式 - 可限制选择数量 - 角色搜索功能 - 全选功能(多选模式下) #### 使用示例 ```vue ``` ### cdn 使用示例 详见test/test - dialog-js.html文件 使用组件名称调用对应的组件 dialogName:string 组件名称(characterSelector/RoleSelector/DeptSelector/UserSelector/RoleSelector/DeptSelectorH5/UserSelectorH5) ```javascript GDialog.openDialog({dialogName: 'RoleSelector', ...props,onConfirm:{},onCancel:{}) ``` ```html 部门选择框H5 openDeptSelectorH5(){ window.GDialog.openDialog({ dialogName: 'DeptSelectorH5', visible:true, selected:[3], departments: depts, onConfirm: (result) => { console.log('收到:', result) } }) } ``` ## 🛠️ 开发与构建 - 本地开发:`npm run dev` - 生产构建:`npm run build` - 预览生产构建:`npm run preview` 构建输出目录为 `dist/`。 ## 📁 目录结构 ``` . ├── public/ │ └── mockData/ # 模拟数据 │ ├── department.json │ ├── role.json │ └── user.json ├── src/ │ ├── components/ │ │ ├── characterSelector/ │ │ ├── treeSelector/ │ │ ├── DeptSelector.vue │ │ ├── DeptSelectorH5.vue │ │ ├── RoleSelector.vue │ │ ├── UserSelector.vue │ │ ├── UserSelectorH5.vue │ │ ├── character-dialog.vue │ │ ├── character-drawer.vue │ │ └── g-select-dialog.vue │ ├── utils/ │ │ └── useSelectDialog.js │ ├── App.vue │ └── main.js ├── temp/ ├── test/ ├── README.md ├── index.html ├── package.json └── vite.config.js ``` ## 🤝 更新日志 ### 2025-08-11 v.0.0.2 1. 修复UserSelector组件使用props传参时,组件内部数据未更新 ### 2025-08-23 v.0.0.3 1. 新增UserSelectorH5和DeptSelectorH5移动端组件 2. 优化组件布局和交互体验 ### 2025-08-26 v.0.0.4 1. 编译成cdn下使用的gdialog.umd.js时,通过window.GDialog.openDialog({...})可以调用全部组件,详见test/test - dialog-js.html文件 2. 部门、角色、用户等选择框增加 onConfirm和onCancel回调函数或通过confirm,cancel 属性设置回调函数,增加selected属性,用于设置默认选中项[1,2,3] ## 📄 许可证 MIT License