首页 > 其他分享 >elementUI 使用 el-select 的远程搜索功能,导致数据无法回显怎么解决?

elementUI 使用 el-select 的远程搜索功能,导致数据无法回显怎么解决?

时间:2024-05-18 11:07:59浏览次数:29  
标签:el const 回显 elementUI strs res ids ele push

问题:

解决方法:
在数据初始化的时候将获取到的数据做进一步的处理,进行本地select组件的一个添加

const labels = [];
          const values = [];
          res.data.rows.forEach((ele) => {
            labels.push(ele.buildName);
            values.push(ele.buildCode);
          });

          this.$refs.select.cachedOptions = labels.map((label, index) => ({
            currentLabel: label,      	 //当前绑定的数据的label
            currentValue: values[index], //当前绑定数据的value
            label,                       //当前绑定的数据的label
            value: values[index],        //当前绑定数据的value
          }));

参考资料:

<el-select ref="selectDom" v-model="form.diagnosisIds" :remote-method="remoteMethod" placeholder="请选择" clearable filterable multiple remote @visible-change="templateTagChange">
  <el-option
    v-for="item in relationList"
    :key="item.id"
    :label="item.name"
    :value="item.id"
  />
</el-select>

<script> export default {
  data: {
  	return {
  	  form: {
        diagnosisIds: [] // v-model 中绑定的值
      },
      relationList: [] // 下拉框的数据
    }
  },
  methods: {
    // 远程搜索方法,数据太多,不能直接渲染
    remoteMethod(query) {
      if (query !== '') {
        this.relationList = []
        this.loading = true
        // 这个方法可以做下节流处理,不需要一输入就发起请求,这里偷懒没有写
        getDiagnoseInfo({ diagnoseName: query }).then(res => {
          this.loading = false
          this.relationList = res.filter(item => {
            return item.name.toLowerCase()
              .indexOf(query.toLowerCase()) > -1
          })
        })
      } else {
        this.relationList = []
      }
    },
    // 诊断选择器下拉框隐藏时触发事件,清空数据
    templateTagChange(val) {
      if (val === false) {
        this.relationList = []
      }
    }
  }
} </script> 

const ids = [] // 专门用来存放选项id的数据
const strs = [] // 专门用来存放选项name的数据
// res.tagMapList 为接口返回的id与name的集合数据
res.tagMapList.forEach(ele => {
  ids.push(ele.id)
  strs.push(ele.value)
})
for (let i = 0; i < strs.length; i++) {
  this.form.diagnosisIds.push(ids[i]) // 给选择器v-model赋值,由于是支持多选的,所以会是一个数据
  // 给选择器的选项赋值,接可以自己匹配上name了
  this.relationList.push({
    id: ids[i],
    name: strs[i]
  }) 

const ids = []
const strs = []
res.tagMapList.forEach(ele => {
  ids.push(ele.id)
  strs.push(ele.value)
})
for (let i = 0; i < strs.length; i++) {
  this.form.diagnosisIds.push(ids[i])
  this.$refs.selectDom.cachedOptions.push({
    currentLabel: strs[i],
    currentValue: ids[i],
    label: strs[i],
    value: ids[i]
  })
} 

参考链接:

  1. https://blog.csdn.net/weixin_53312997/article/details/124983389?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1-124983389-blog-125002466.235v43pc_blog_bottom_relevance_base8&spm=1001.2101.3001.4242.2&utm_relevant_index=4

  2. https://www.jianshu.com/p/7dfcc05a419f

标签:el,const,回显,elementUI,strs,res,ids,ele,push
From: https://www.cnblogs.com/hxy--Tina/p/18199142

相关文章

  • delphi安卓动态权限申请
    delphi安卓动态权限申请安卓8及以上版本,除了原来的静态权限申请以外,还需要动态权限申请。delphi10.3开始支持安卓动态权限申请。delphi11开始官方改变了安卓动态权限申请的参数类型,导致原来编写的代码,编码报错。下面的代码,可以很好地解决权限问题。兼顾了delphi10.3和delphi11......
  • restcontroller中使用delete请求发送带参路径报错
    报错内容:Resolved[org.springframework.web.HttpRequestMethodNotSupportedException:Requestmethod'DELETE'notsupported]具体情景:postman中发送的路径: 每次用这个路径发送delete请求都报错,但是用这个路径发送get请求做查询却没问题,真的让我苦恼好久 解决:因为HttpC......
  • dbt Relation check_schema_exists 一个有意思的功能
    dbt内部总有一些隐藏的小细节,官方文档没有说明,但是在一些adapter实现中包含,一些是关于check_schema_exists的一些说明内部处理dbt/adapters/sql/impl.pydefcheck_schema_exists(self,database:str,schema:str)->bool:information_schema=self.Re......
  • css 让文字不被选中之-moz-user-select 属性介绍
    让文字不被选中,应该有一个css属性进行控制,结果网上查了下发现了-moz-user-select属性介绍 他在ie下也能选中文字,但是选中其他列表,不会选中文字,原来它是在不同div中,属于不同的范围,而同事是放在同一个table中,当然会选中。而在firefox下,文字不会被选中,查看googlecalender的css,原......
  • (报错)ROS2:WARNING:colcon.colcon_core.package_selection:ignoring unknown package
    在使用colcon编译时,如果直接对所有包编译colconbuild则不会有问题,但是针对单独某个包编译colconbuild--packages-select<pkg>则报错WARNING:colcon.colcon_core.package_selection:ignoringunknownpackagegg了一下找到了问题参考:https://unix.stackexchange.co......
  • element-plus丑陋的使用
     所花时间(包括上课): 4 h代码量(行): 400   左右搏客量(篇):1了解到的知识点: element-plus的使用备注(其他): <template><div><el-form:model="form":rules="rules"ref="form"label-width="100px">......
  • 122- Best Time to Buy and Sell Stock II 卖股票II
    题目描述链接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/description/Youaregivenanintegerarraypriceswhereprices[i]isthepriceofagivenstockontheithday.Oneachday,youmaydecidetobuyand/orsellthestock.Youcanon......
  • 【Delphi 开箱即用 1】简单实现拖拽文件到窗口
    当今,大多数个人小程序都普遍具备拖拽功能,因为拖拽操作极其便捷。毕竟,相比于传统的浏览文件夹方式打开目标文件,拖拽操作简直是一种解放。在这里,我们无需依赖任何第三方控件,单纯通过代码实现拖拽功能。目录1.最终效果图2.部分核心代码3.完整Demo源码下载1.最终效果图2.部分......
  • git delete and revert
    deleteorrevertthecommit#soft移动头节点,同时将删除更改保存到暂存区,同时工作区不变---non-destructivegitreset--softHEAD~{num}/{hash}gitreset--hardHEAD~{num}/{hash}#回退,同时暂存区和工作区都会被重置和commit一样gitreset--mixedHEAD~{num}/{has......
  • celery异步框架
    celery介绍https://github.com/celery/celery/https://docs.celeryq.dev/en/stable/celery是一个分布式异步任务框架,是一个灵活且可靠的,处理大量消息的分布式系统,可以在多个节点之间处理某个任务,是一个专注于实时处理的任务队列,支持任务调度,所以celery本质上是一个分布式......