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 相关文章推荐
与jquery serializeArray()一起使用的函数,主要来方便提交表单
Jan 31 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
Oct 18 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
Nov 12 Javascript
JavaScript中操作字符串小结
May 04 Javascript
js实现仿Windows风格选项卡和按钮效果实例
May 13 Javascript
Jquery attr()方法 属性赋值和属性获取详解
Apr 15 Javascript
Jquery树插件zTree实现菜单树
Jan 24 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
Mar 25 Javascript
vue实现app页面切换动画效果实例
May 23 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
Jul 11 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
Jul 11 Javascript
微信小程序云开发之模拟后台增删改查
May 16 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类
2006/11/25 PHP
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
jQuery EasyUI中对表格进行编辑的实现代码
2010/06/10 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
jQuery和JavaScript节点插入元素的方法对比
2016/11/18 Javascript
Javascript之面向对象--方法
2016/12/02 Javascript
浅析Ajax语法
2016/12/05 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
对vue v-if v-else-if v-else 的简单使用详解
2018/09/29 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
Python正则抓取网易新闻的方法示例
2017/04/21 Python
python3之微信文章爬虫实例讲解
2017/07/12 Python
python学生管理系统学习笔记
2019/03/19 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
CSS3实现的渐变幻灯片效果
2020/12/07 HTML / CSS
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
当当网软件测试笔试题
2015/11/24 面试题
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
《四季》教学反思
2014/04/08 职场文书
大学生党员自我批评思想汇报
2014/10/10 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
琅琊山导游词
2015/02/05 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
golang日志包logger的用法详解
2021/05/05 Golang