当前位置:首页 > VUE

vue实现选人

2026-02-10 10:26:47VUE

Vue 实现选人功能

使用 Element UI 的 Select 组件

Element UI 提供了 Select 组件,可以方便地实现选人功能。需要安装 Element UI 并引入 Select 组件。

<template>
  <el-select v-model="selectedPerson" placeholder="请选择人员">
    <el-option
      v-for="person in personList"
      :key="person.id"
      :label="person.name"
      :value="person.id">
    </el-option>
  </el-select>
</template>

<script>
export default {
  data() {
    return {
      selectedPerson: '',
      personList: [
        { id: 1, name: '张三' },
        { id: 2, name: '李四' },
        { id: 3, name: '王五' }
      ]
    }
  }
}
</script>

使用自定义组件实现多选

如果需要多选功能,可以使用 multiple 属性。

<el-select v-model="selectedPersons" multiple placeholder="请选择人员">
  <el-option
    v-for="person in personList"
    :key="person.id"
    :label="person.name"
    :value="person.id">
  </el-option>
</el-select>

结合后端 API 动态加载人员列表

通常人员列表需要从后端 API 获取,可以使用 axios 或其他 HTTP 库。

export default {
  data() {
    return {
      selectedPerson: '',
      personList: []
    }
  },
  mounted() {
    this.fetchPersonList()
  },
  methods: {
    fetchPersonList() {
      axios.get('/api/persons').then(response => {
        this.personList = response.data
      })
    }
  }
}

添加搜索过滤功能

Element UI 的 Select 组件支持搜索过滤,通过 filterable 属性启用。

<el-select v-model="selectedPerson" filterable placeholder="请搜索并选择人员">
  <el-option
    v-for="person in personList"
    :key="person.id"
    :label="person.name"
    :value="person.id">
  </el-option>
</el-select>

使用虚拟滚动优化性能

对于大量人员数据,可以使用虚拟滚动提升性能。

<el-select
  v-model="selectedPerson"
  filterable
  remote
  reserve-keyword
  placeholder="请输入关键词"
  :remote-method="remoteMethod"
  :loading="loading">
  <el-option
    v-for="item in options"
    :key="item.value"
    :label="item.label"
    :value="item.value">
  </el-option>
</el-select>

实现自定义模板

如果需要更复杂的展示方式,可以使用自定义模板。

<el-select v-model="selectedPerson" placeholder="请选择人员">
  <el-option
    v-for="person in personList"
    :key="person.id"
    :label="person.name"
    :value="person.id">
    <span style="float: left">{{ person.name }}</span>
    <span style="float: right; color: #8492a6; font-size: 13px">{{ person.department }}</span>
  </el-option>
</el-select>

以上方法可以根据实际需求灵活组合使用,实现不同场景下的选人功能。

vue实现选人

标签: 选人vue
分享给朋友:

相关文章

vue实现主页

vue实现主页

Vue 实现主页的基本步骤 创建一个 Vue 主页通常涉及以下几个关键步骤,从项目初始化到页面布局和功能实现。 初始化 Vue 项目 使用 Vue CLI 或 Vite 初始化项目。Vue CLI…

vue实现sso

vue实现sso

Vue 实现 SSO(单点登录)方案 单点登录(SSO)允许用户通过一次登录访问多个相关系统。以下是基于 Vue 的实现方案: 使用 OAuth2/OpenID Connect 协议 OAuth2…

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue实现markdown

vue实现markdown

Vue 实现 Markdown 编辑器 在 Vue 中实现 Markdown 编辑器可以通过集成第三方库或自定义解析器完成。以下是两种常见方法: 使用第三方库(如 marked 或 markdown…

vue实现签章

vue实现签章

Vue 实现签章功能 签章功能通常包括手写签名、电子印章等。以下是基于 Vue 的实现方法: 使用 canvas 实现手写签名 安装依赖(如需要): npm install signatu…

vue实现定时

vue实现定时

Vue 实现定时功能的方法 使用 setInterval 和 clearInterval 在 Vue 中可以通过 setInterval 和 clearInterval 实现定时功能。在组件的 mou…