当前位置:首页 > 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>

实现自定义模板

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

vue实现选人

<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 评分组件实现方法 使用第三方库(如 Element UI) 安装 Element UI: npm install element-ui 引入并注册组件: import Vue from '…

甘特图vue实现

甘特图vue实现

甘特图 Vue 实现方法 使用开源库 vue-ganttastic 安装依赖: npm install vue-ganttastic 基础实现代码: <template> <…

实现vue cli

实现vue cli

安装 Vue CLI 确保系统中已安装 Node.js(版本建议 12.x 或更高)。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 安装完成后验证版本:…

vue实现插件

vue实现插件

Vue 插件实现方法 Vue 插件通常用于为 Vue 应用添加全局功能或共享功能。以下是实现 Vue 插件的核心步骤: 插件基本结构 Vue 插件需要暴露一个 install 方法,该方法接收 Vu…

vue实现导出excel实现流程

vue实现导出excel实现流程

安装依赖库 需要安装 xlsx 和 file-saver 库来处理 Excel 文件的生成和保存。通过 npm 或 yarn 安装: npm install xlsx file-saver # 或…

vue实现im通信

vue实现im通信

Vue 实现 IM 通信的方法 选择通信协议 WebSocket 是实现实时 IM 通信的常用协议,相比 HTTP 更适合双向通信。可使用原生 WebSocket 或第三方库如 Socket.IO。…