Vue2.x通用条件搜索组件的封装及应用详解


Posted in Javascript onMay 28, 2019

本文实例为大家分享了Vue2.x通用条件搜索组件的封装及应用,供大家参考,具体内容如下

效果

 Vue2.x通用条件搜索组件的封装及应用详解

组件源码

<template>
 <div class="search">
 <el-select v-model="type" @change="changeType" class="select">
  <el-option
  v-for="item in selectItems"
  :key="item.value"
  :lable="item.label"
  :value="item.value">
  </el-option>
 </el-select>
 <div class='search-input'>
  <el-input :placeholder="placeholderDes" v-model="searchValue"></el-input>
 </div>
 <el-button icon="el-icon-search" @click="search"></el-button>
 </div>
</template>

<script>
export default {
 data () {
 return {
  searchValue: '',
  type: ''
 }
 },
 created () {
 this.type = this.initType
 },
 props: {
 selectItems: {
  type: Array,
  require: true
 },
 placeholderDes: {
  type: String,
  require: true
 },
 initType: {
  type: String,
  require: true
 }
 },
 methods: {
 changeType (newType) {
  this.$emit('changeType', newType)
 },
 search () {
  this.$emit('searchOk', this.searchValue)
 }
 }
}
</script>

<style lang="less" scoped>
.search {
 display: flex;
 .el-select {
 width: 90px;
 height: 40px;
 box-sizing: border-box;
 border-right: none;
 border-radius: 0;
 background-color: #DDF0FE;
 border: 1px solid #40b0ff;
 }
 .search-input {
 width: 216px;
 height: 40px;
 border: 1px solid #40b0ff;
 border-left: none;
 box-sizing: border-box;
 font-family: 'MicrosoftYaHei';
 font-size: 14px;
 color: #909399;
 border-radius: 0;
 }
 .el-button {
 width: 44px;
 height: 40px;
 padding: 0;
 border: 1px solid #40b0ff;
 border-radius: 0;
 color: #fff;
 background: #40b0ff;
 &:hover {
  background: #10b0ff
 }
 }
}
</style>

父组件中的引用

<template>
 <div class="test">
 <v-search :initType="initType" :selectItems="selectItems" :placeholderDes="placeholderDes" @changeType="changeType" @searchOk="searchOk"></v-search>
 </div>
</template>

<script>
import VSearch from '@/components/Common/ZLGComponents/XGQTest/Search/Search'
export default {
 data () {
 return {
  selectItems: [],
  selectStatus: 'devname',
  initType: '',
  placeholderDes: '请输入要搜索的测试名称'
 }
 },
 created () {
 this.setSelectItems()
 this.setInitType()
 },
 methods: {
 setSelectItems () {
  this.selectItems = [{
  value: '测试名',
  label: '测试名'
  }, {
  value: '测试ID',
  label: '测试ID'
  }]
 },
 changeType (newType) {
  if (newType === '测试名') {
  this.placeholderDes = '请输入要搜索的测试名称'
  this.selectStatus = 'name'
  } else if (newType === '测试ID') {
  this.placeholderDes = '请输入要搜索的测试ID'
  this.selectStatus = 'id'
  }
 },
 searchOk (value) {
  console.log(this.selectStatus)
  console.log(value)
  // 调用你的搜索接口,搜索条件为搜索的类型 + 搜索值
  // yourSearch (this.selectStatus, value)
 },
 setInitType () {
  this.initType = '测试名'
 }
 },
 components: {
 VSearch
 }
}
</script>

<style lang="less" scoped>
</style>

组件基于element-UI的二次封装,适合用于使用element的项目,子组件父组件demo完整源码如上所示,有疑问建议研究一下源码,也欢迎留言交流。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript中Eval函数的使用
Mar 23 Javascript
js调用后台servlet方法实例
Jun 09 Javascript
JS实用的动画弹出层效果实例
May 05 Javascript
JQuery Mobile 弹出式登录框的实现方法
May 28 Javascript
jQuery插件EasyUI设置datagrid的checkbox为禁用状态的方法
Aug 05 Javascript
js实现刷新页面后回到记录时滚动条的位置【两种方案可选】
Dec 12 Javascript
利用imgareaselect辅助后台实现图片上传裁剪
Mar 02 Javascript
VUE页面中加载外部HTML的示例代码
Sep 20 Javascript
vue项目中的webpack-dev-sever配置方法
Dec 14 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
May 16 Javascript
layui 动态设置checbox 选中状态的例子
Sep 02 Javascript
js利用拖放实现添加删除
Aug 27 Javascript
jquery操作select常见方法大全【7种情况】
May 28 #jQuery
vue实现条件叠加搜索的解决方法
May 28 #Javascript
webpack4 从零学习常用配置(小结)
May 28 #Javascript
详解ES6 export default 和 import语句中的解构赋值
May 28 #Javascript
jQuery实现高级检索功能
May 28 #jQuery
利用原生JS实现data方法示例代码
May 28 #Javascript
php结合js实现多条件组合查询
May 28 #Javascript
You might like
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
php实现异步数据调用的方法
2015/12/24 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
如何在PHP中生成随机数
2020/06/04 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
根据邮箱的域名跳转到相应的登录页面的代码
2012/02/27 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
PHP结合jQuery实现的评论顶、踩功能
2015/07/22 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
更改Python的pip install 默认安装依赖路径方法详解
2018/10/27 Python
Python计算时间间隔(精确到微妙)的代码实例
2019/02/26 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
培训演讲稿范文
2014/01/12 职场文书
主题婚礼策划方案
2014/02/10 职场文书
小学生期末评语
2014/04/21 职场文书
员工合理化建议书
2014/05/19 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
医院合作意向书范本
2015/05/08 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
Python基础之变量的相关知识总结
2021/06/23 Python
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle