vue Element-ui input 远程搜索与修改建议显示模版的示例代码


Posted in Javascript onOctober 19, 2017

html:

<template>
 <el-autocomplete popper-class="my-autocomplete" custom-item="my-remote" v-model="state" :fetch-suggestions="querySearch" placeholder="默认空" icon="close" :on-icon-click="handleIconClick">
 </el-autocomplete>
</template>

js:

<script>
import Vue from 'vue'
Vue.component('my-remote', {
 functional: true,
 render: function(h, ctx) {
  var item = ctx.props.item;
  let str = h('li', ctx.data, [
   h('div', { attrs: { class: 'name' } }, [item.value]),
   h('span', { attrs: { class: 'addr' } }, [item.address])
  ]);
  if (item.str) { // 根据参数不同 修改原模版结构
   str = h('center', { attrs: { class: 'ems' } }, [item.str])
  }
  return str
 },
 props: {
  item: { type: Object, required: true }
 }
});
export default {
 data() {
  return {
   restaurants: [],
   state: '',
   timeout: null,
   _that: {} // 记录this,用来发起http请求
  };
 },
 methods: {
  querySearch(queryString, cb) {
   let restaurants = this.restaurants;
   if (restaurants.length > 0) { // 如果参数都没变化,则使用缓存数据,避免请求沉积
    let results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
    cb(results);
   } else {
    const qtype = ‘参数';
    this._that.$http('/inner', { qtype: qtype })
     .then((res) => {
       restaurants = this.loadAll(res);
       this.restaurants = restaurants;
       let results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
       cb(results);
     })
     .catch((err) => {
      restaurants = this.loadAll();
      let results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
      cb(results);
     });
   }
  },
  createFilter(queryString) {
   return (restaurant) => {
    if (restaurant.str) return false;
    return (restaurant.value.indexOf(queryString.toLowerCase()) === 0);
   };
  },
  loadAll(data) {
   let serier = [];
   if (data) {
    for (let i = 0, l = data.length; i < l; i++) {
     let a = data[i];
     let b = '';
     if (typeof a === "object") {
      b = a[1];
      a = a[0];
     }
     serier.push({ "value": a, "address": b })
    }
   } else { // 如果没有请求到数据,则显示暂无数据!
    serier.push({ "str": '暂无数据' })
   }
   return serier;
  },
  handleIconClick(ev) {
   this.state = "";
  }
 },
 mounted() {
  this._that = this;
 }
}
</script> 

css:

<style lang="scss">
.my-autocomplete {
 li {
  line-height: normal !important;
  padding: 7px !important;
 
  .name {
   text-overflow: ellipsis;
   overflow: hidden;
  }
  .addr {
   font-size: 12px;
   color: #b4b4b4;
  }
 
  .highlighted .addr {
   color: #ddd;
  }
 }
 .ems {
  font-size: 12px;
  color: #b4b4b4;
 }
}
</style> 

总结

以上所述是小编给大家介绍的vue Element-ui input 远程搜索与修改建议显示模版的示例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript Cookie读写删除操作的函数
Mar 02 Javascript
jquery简单实现网页层的展开与收缩效果
Aug 07 Javascript
AngularJS模块学习之Anchor Scroll
Jan 19 Javascript
利用JS生成博文目录及CSS定制博客
Feb 10 Javascript
基于Jquery插件实现跨域异步上传文件功能
Apr 26 Javascript
JS平滑无缝滚动效果的实现代码
May 06 Javascript
JS脚本实现动态给标签控件添加事件的方法
Jun 02 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
Dec 21 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
Mar 05 Javascript
express默认日志组件morgan的方法
Apr 05 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
Dec 07 Javascript
vuex存取值和映射函数使用说明
Jul 24 Javascript
JavaScript适配器模式详解
Oct 19 #Javascript
JavaScript门面模式详解
Oct 19 #Javascript
vue+Java后端进行调试时解决跨域问题的方式
Oct 19 #Javascript
AngularJS的$location使用方法详解
Oct 19 #Javascript
vue-cli 自定义指令directive 添加验证滑块示例
Oct 19 #Javascript
Angular2仿照微信UI实现9张图片上传和预览的示例代码
Oct 19 #Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 #jQuery
You might like
php&amp;java(一)
2006/10/09 PHP
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
javascript 选择文件夹对话框(web)
2009/07/07 Javascript
Jquery实现视频播放页面的关灯开灯效果
2013/05/27 Javascript
使用js修改客户端注册表的方法
2013/08/09 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
js中settimeout方法加参数的使用实例
2014/02/27 Javascript
浅谈Javascript 数组与字典
2015/01/29 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
一文看懂如何简单实现节流函数和防抖函数
2019/09/05 Javascript
浅谈vue 锚点指令v-anchor的使用
2019/11/13 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
2020/02/26 Javascript
Python3调用微信企业号API发送文本消息代码示例
2017/11/10 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
Python 输入一个数字判断成绩分数等级的方法
2018/11/15 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
关于Keras Dense层整理
2020/05/21 Python
Python接口测试文件上传实例解析
2020/05/22 Python
如何在Python对Excel进行读取
2020/06/04 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
应聘医药代表职位求职信
2013/10/21 职场文书
股东授权委托书范文
2014/09/13 职场文书
三严三实对照检查材料思想汇报
2014/09/28 职场文书
关于安全的广播稿
2014/10/23 职场文书
2014年度考核工作总结
2014/12/24 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
解决Golang time.Parse和time.Format的时区问题
2021/04/29 Golang
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技