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 相关文章推荐
js中if语句的几种优化代码写法
Mar 12 Javascript
JavaScript高级程序设计 DOM学习笔记
Sep 10 Javascript
使用JavaScript实现Java的List功能(实例讲解)
Nov 07 Javascript
全面理解面向对象的 JavaScript(来自ibm)
Nov 10 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
Apr 29 Javascript
深入探究使JavaScript动画流畅的一些方法
Jun 30 Javascript
JavaScript数据结构与算法之链表
Jan 29 Javascript
深入理解AngularJs-scope的脏检查(一)
Jun 19 Javascript
ES6学习教程之模板字符串详解
Oct 09 Javascript
jQuery中图片展示插件highslide.js的简单dom
Apr 22 jQuery
vue实现验证用户名是否可用
Jan 20 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
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 array 的加法操作代码
2010/07/24 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
编写跨浏览器的javascript代码必备[js多浏览器兼容写法]
2008/10/29 Javascript
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
用JSON做数据传输格式中的一些问题总结
2011/12/21 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
php中给js数组赋值方法
2014/03/10 Javascript
js实现点击链接后窗口缩小并居中的方法
2015/03/02 Javascript
javascript验证身份证号
2015/03/03 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
JavaScript用200行代码制作打飞机小游戏实例
2017/06/21 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
js实现随机div颜色位置 类似满天星效果
2019/10/24 Javascript
Python中unittest用法实例
2014/09/25 Python
深入解析Python中的变量和赋值运算符
2015/10/12 Python
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
python异步Web框架sanic的实现
2020/04/27 Python
软件测试工程师面试问题精选
2016/10/28 面试题
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
拓展培训心得体会
2014/01/04 职场文书
超市促销活动方案
2014/03/05 职场文书
优秀学生干部个人事迹材料
2014/06/02 职场文书
公安纪律作风整顿剖析材料
2014/10/10 职场文书
出生证明格式
2015/06/15 职场文书
技能培训通讯稿
2015/07/18 职场文书
反邪教教育心得体会
2016/01/15 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
浅谈python数据类型及其操作
2021/05/25 Python
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python