txl-ai-fullgenerate

基于 Vue3 + Element Plus 的组织人员选择组件
318
Install
npm install txl-ai-fullgenerate
Latest Version:0.1.1
Vue:3
License:MIT
Last Updated:Sep 21, 2026
Links: npm
Maintainer: chamlerrence

txl-ai-fullgenerate

Vue 3 + TypeScript 组织人员选择组件,支持组织树懒加载、人员搜索、分页、跨页选择和已选人员回显。

特性

  • 组织树懒加载和组织搜索
  • 人员分页、姓名/账号搜索
  • 跨组织、跨页保留已选人员
  • 已选人员列表快速删除
  • 支持 defaultSelectedUsers 回显
  • 支持组件事件和实例方法

安装

npm install txl-ai-fullgenerate vue element-plus @element-plus/icons-vue

项目要求 Vue 3.5+、Element Plus 2.14+ 和 Node.js 22.18+ 或 24.12+。

基础用法

<script setup lang="ts">
import { ref } from 'vue'
import { OrgUserSelector } from 'txl-ai-fullgenerate'
import 'txl-ai-fullgenerate/style.css'
import 'element-plus/dist/index.css'
import type { User } from 'txl-ai-fullgenerate'

const visible = ref(false)
const selectedUsers = ref<User[]>([])

const handleConfirm = (users: User[]) => {
  selectedUsers.value = users
}
</script>

<template>
  <el-button type="primary" @click="visible = true">选择人员</el-button>

  <OrgUserSelector
    v-model="visible"
    :default-selected-users="selectedUsers"
    @confirm="handleConfirm"
  />
</template>

也可以使用插件方式注册组件:

import { createApp } from 'vue'
import OrgUserSelector from 'txl-ai-fullgenerate'

createApp(App).use(OrgUserSelector).mount('#app')

Props

属性 类型 默认值 说明
modelValue boolean false 控制弹窗显示状态,支持 v-model
defaultSelectedUsers User[] [] 打开时需要回显的人员
accessState 'normal' | 'unauthenticated' | 'forbidden' 'normal' 登录和权限状态
submitSelectedUsers (users: User[]) => Promise<void> - 异步提交函数

User 类型:

interface User {
  userId: string
  userName: string
  account: string
  orgId: string
  orgName: string
}

事件

事件 参数 说明
update:modelValue boolean 弹窗状态变化
confirm User[] 点击确定时返回最终选中人员
cancel 无 点击取消时触发
login-required 无 未登录时点击“去登录”触发
access-retry 无 无权限时点击重试触发
submit-error unknown 提交失败时触发

实例方法

通过模板 ref 可调用:

const selectorRef = ref<InstanceType<typeof OrgUserSelector>>()

selectorRef.value?.clear()
const users = selectorRef.value?.getSelectedUsers()
  • clear():清空当前已选人员。
  • getSelectedUsers():获取当前已选人员数组。

样式和依赖

组件不会打包 Vue、Element Plus 和图标库,请确保宿主项目安装并注册 Element Plus。组件样式通过以下路径引入:

import 'txl-ai-fullgenerate/style.css'

本地开发

pnpm install
pnpm dev
pnpm run type-check
pnpm run test:unit:run
pnpm run build

License

MIT

Related Packages

@element-plus/nuxt

Element Plus module for Nuxt

830,141 176
earthsdk-ui

基于 vue3、element-plus、earthsdk3 构建的 EarthSDK UI 组件库,提供丰富的 UI 组件...

11,530
monose-component-vue

Vue3 ElementPlus 二次封装组件库

3,327
zb-ep

vue3 and element-plus components

2,744
slb_public_components

This is a Vue3 + ts + ELement-Plus pulic components.

1,804

Version History

Version Released Vue License
0.1.1 ^3.5.40 MIT
0.1.0 ^3.5.40 MIT