vue自写组件可输入,可下拉选择,因为el-autocomplete数据多了会卡

news2024/11/15 13:39:52

<!-- 引入组件 -->
                <AutoComplete
                  v-model="scope.row.strreceivername"
                  :lngemployeeid="scope.row.lngreceiverid"
                  @select="handleSelect($event,scope.row)"
                />
methods:{
   handleSelect(item, row) {
      row.lngreceiverid = item.lngemployeeid
      row.strreceivername = item.strfullname
    }
}
<template>
  <el-popover
    v-model="visible"
    width="300"
    trigger="focus"
    :disabled="disabled"
  >
    <vxe-grid
      ref="grid"
      border
      highlight-hover-row
      auto-resize
      height="300"
      class="vxecss"
      :show-overflow="true"
      :data="employeesList"
      :columns="tableColumn"
      @cell-click="cellClickEvent"
      @scroll="xTableScroll"
    />
    <el-input
      slot="reference"
      v-model="currVal"
      placeholder="请输入"
      maxlength="250"
      clearable
      @change="changeEvent"
      @input="inputEvent"
      @focus="focusEvent"
    />
  </el-popover>
</template>
<script>
import { getEmployeesList } from '@/base/api/common'
import PinyinMatch from 'pinyin-match'
export default {
  name: 'AutoComplete',
  props: {
    value: {
      type: String,
      default: ''
    },
    lngemployeeid: {
      type: [Number, String],
      default: null
    },
    disabled: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      tableColumn: [
        { field: 'strfullname', title: 'strfullname' }
      ],
      employeesList: [],
      copyList: [],
      visible: false,
      xTableScrollTop: 0
    }
  },
  computed: {
    currVal: {
      get() {
        return this.value
      },
      set(val) {
        this.$emit('input', val)
      }
    }
  },
  created() {
    if (this.$store.state.employeesList) {
      this.employeesList = this.$store.state.employeesList
      this.copyList = this.$store.state.employeesList
    } else {
      this.getEmployeesListFn()
    }
  },

  methods: {
    xTableScroll({ scrollTop }) {
      this.xTableScrollTop = scrollTop
    },
    focusEvent() {
      setTimeout(() => {
        this.$refs.grid.scrollTo(0, this.xTableScrollTop)
        if (this.lngemployeeid) {
          const curRow = this.employeesList.filter(item => {
            return item.lngemployeeid === this.lngemployeeid
          })
          this.$refs.grid.setCurrentRow(curRow[0])
        }
      })
    },
    cellClickEvent({ row }) {
      this.visible = false
      this.curRow = row
      this.$emit('select', row)
    },
    changeEvent() {
      this.$emit('change')
    },
    inputEvent(val) {
      if (val) {
        this.employeesList = this.copyList.filter((item) => {
          return PinyinMatch.match(item.strfullname, val)
        })
      } else {
        this.employeesList = this.copyList
      }
    },
    getEmployeesListFn() {
      getEmployeesList({ 'blninactive': 0 }).then(res => {
        if (res.code === 20000) {
          this.employeesList = res.data
          this.copyList = res.data
          this.$store.state.employeesList = res.data
        }
      })
    }
  }
}
</script>
<style>
.vxecss .vxe-header--row{ display: none;}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NC 删除有序链表中重复的元素-II

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 给出一个升序…

复杂系统科学之钥——从简单交互到宏观行为的涌现公式

复杂系统科学之钥——从简单交互到宏观行为的涌现公式 简单交互与宏观行为的类比 你可以把简单交互比作“音符”&#xff0c;而宏观行为就像是“乐章”&#xff0c;复杂系统科学就是研究如何从众多音符演奏出美妙乐章的学问。 复杂系统科学的核心作用 组件/步骤描述简单交互个…

这可能是开源界最好用的能源管理系统

&#x1f482; 个人网站: IT知识小屋&#x1f91f; 版权: 本文由【IT学习日记】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 文章目录 写在前面项目简介项目特点项目架构模块展示项目获取 写在前面 大…

为什么日本的就业率那么高?原因是什么?

数据显示&#xff0c;2024年&#xff0c;日本大学生就业为98.1%&#xff0c;是自1997年以来的最高水平。不是说日本经济快崩了嘛&#xff0c;怎么就业率会如此高呢&#xff1f; 其中最主要的原因还是与就业率的统计有关。 有网友说&#xff0c;在日本工作&#xff0c;主要分为…

企知道 接口逆向:AES加密

&#x1f510; 登录接口逆向 &#x1f575;️ 抓包登录接口 使用抓包工具捕获企知道的登录接口请求&#xff0c;观察到密码参数是加密的密文&#xff0c;传输给后端服务器。 &#x1f9e9; 跟栈到密码加密位置 通过浏览器开发者工具&#xff0c;跟踪JS代码栈&#xff0c;找…

什么是数据中台?从哪些方面加深对数据中台的认知?需要理清些什么概念?数据中台的意义是什么?

目录 一、数据中台的产生与发展 1.1 脱胎于大数据的发展 1.2 概念诞生于中国 二、数据中台的定义 2.1 概述 2.2 定义一 2.2 定义二 2.3 定义三 2.4 定义四 2.5 定义五 2.6 我对数据中台的解读 三、对数据中台的认知 3.1 概述 3.2 数据中台需要提升战略高度&#x…

Python学习笔记47:游戏篇之外星人入侵(八)

前言 在上篇文章中&#xff0c;我们在游戏窗口中加载三行外星人。文章中也说过我们加载外星人的方式是比较简单的加载方式&#xff1a;一次性加载固定数量的外星人&#xff0c;并且以同样的方式重复加载。这种加载方式简单易懂&#xff0c;比较适合新手&#xff0c;如果想要一…

c++----日期类

今天这篇博客是对我们上面的两篇博客的一个小小的检验。我们今天来实现一下我们手机上的一个小功能。对日期的实现。那么如何实现以及使用哪些知识&#xff0c;我们马上来看看吧。 思想概括 其实实现日期类并不是什么难事。如果用c语言的话大家可能会觉得很简单&#xff0c;主…

【VS Code】我用到的一些VS Code插件和命令

【命令】 打开终端&#xff1a; Ctrl ~ 【插件】 材质图标主题插件&#xff1a;Material Icon Theme 让文件图标看起来更美丽

yandex图标点选验证码YOLOV8识别案例

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 某yandex图标点选验证码如下: 使用过yolov8的小伙伴可能都知道,这种直接打个标注,基本上就可以了,至于问题图片由于不能很好的切割做分类,所以干脆也做成目标…

还在用JVM跑你的Java代码吗?太慢了,试试Oracle的GraalVM吧

前言 对于Java开发者们来说&#xff0c;几乎每天都在和JVM打交道&#xff0c;然而JVM即将过时了。那些对新技术保持敏锐洞察力的开发者&#xff0c;可能已经在生产环境中部署GraalVM生成的二进制程序了&#xff0c;小伙伴们&#xff0c;你们已经用起来了吗&#xff1f; Graal…

AOP~面向切面编程介绍

AOP基础 概述 AOP&#xff1a;Aspect Oriented Programming&#xff08;面向切面编程、面向方面编程&#xff09;&#xff0c;面向特定方法的编程。 动态代理是面向切面编程最主流的实现。 SpringAOP是Spring框架的高级技术&#xff0c;旨在管理bean对象的过程中&#xff0c…

【基础篇】Docker 架构与组件 TWO

嗨&#xff0c;小伙伴们&#xff01;我是小竹笋&#xff0c;一名热爱创作的工程师。上一篇我们聊了聊 Docker 的历史与发展、与虚拟机的对比以及它在行业中的应用。今天&#xff0c;让我们更进一步&#xff0c;深入探讨 Docker 的架构与关键组件。 欢迎订阅公众号&#xff1a;…

Fantastic-admin:Vue 中后台管理系统

Fantastic-admin&#xff1a;Vue 中后台管理系统 在当今的前端开发世界里&#xff0c;fantastic-admin 作为一款功能强大的 Vue 中后台管理系统框架&#xff0c;简直是开发者的福音。本文将介绍 fantastic-admin 的基本信息、特点&#xff0c;以及如何快速上手和使用。 项目简介…

亚信安慧AntDB亮相PostgreSQL中国技术大会,获“数据库最佳应用奖”并分享数据库应用实践

7月12日&#xff0c;第13届PostgreSQL中国技术大会在杭州顺利举办&#xff0c;亚信安慧AntDB数据库荣获“数据库最佳应用奖”。大会上&#xff0c;亚信安慧AntDB数据库同事带来《基于AntDB的CRM系统全域数据库替换实践》和《亚信安慧AntDB数据库运维之路》两场精彩演讲&#xf…

AWS资源购买和使用:亚马逊云显示配额不足怎么解决

亚马逊云显示配额不足是许多AWS用户在使用云服务时可能遇到的常见问题。这种情况通常发生在用户试图启动新的EC2实例或扩展现有资源时&#xff0c;系统提示已达到特定资源类型的限制。本文中九河云将跟你们一起探讨这一问题的原因及其解决方案。 首先&#xff0c;了解AWS配额的…

最便宜的iPhone SE 4要来,配置爆炸但砍了灵魂

前几天乐视刚刚发布了「低配青春 AIR 版 iPhone SE 4」&#xff0c;电友们就坐不住了&#xff0c;纷纷问真 iPhone SE 4 究竟什么时候才能来。 阿红也去挖了一下情报&#xff0c;别说&#xff0c;还真在路上了。 众所周知&#xff0c;最近一代&#xff0c;也就是第三代 iPhone…

Liquibase 增加一列主键,自动生成 UUID:最佳实践与深度解析

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 自动生成 UUID UUID 是一种全局唯一的标识符&#xff0c;通常由 32 个十六进制数字组成&#xff0c;分为五组&#xff0c;形式如下&#xff1a; 123e4567-e89b-12d3-a456-426614174000在 Java 中&#xff0c;可以使…

从零开始写 Docker(十九)---增加 cgroup v2 支持

本文为从零开始写 Docker 系列第十九篇&#xff0c;添加对 cgroup v2 的支持。 完整代码见&#xff1a;https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识&#xff1a; 核心原理&#xff1a;深入理解 Docker 核心原理&#xff1a…

解锁未来安全:WT2003HP8芯片如何重塑智能电子锁的安全性与智能化体验

WT2003HP8混音芯片&#xff1a;智能电子锁的声音守护者 在当今这个追求智能化、便捷化的时代&#xff0c;智能电子锁作为智能家居的重要组成部分&#xff0c;正逐步改变着我们的生活方式。而WT2003HP8混音芯片&#xff0c;凭借其卓越的性能和广泛的应用潜力&#xff0c;在智能…