搜索

先睹为快

王福元×

选项参数

# url

功能:请求url

默认:''

类型:{String}

# zIndex

功能:设置层级

默认:19920604

类型:{Number}

说明:若style中已经设置,则不使用该值

# query

功能:设置查询参数

默认:'keyword'

类型:{String}

类型:{Function}

参数:self {Object} 组件实例对象

参数:value {String} 文本框输入值

返回:{Object} 查询参数对象集合

# item

功能:定义列表模版

默认:''

类型:{String}

类型:{Function}

参数:self {Object} 组件实例对象

返回:{String} 返回列表模版

说明:模版中可以使用<%$data%>获取当前行数据,<%$index%>获取当前行索引; 配合选项参数selected方法在模版中类名中加入<%selected($data)%>可以设置当前行是否选中; 模版中有效列表类名必须包含con-search-item以及data-index="<%$index%>"属性

# empty

功能:定义提示信息模版

默认:''

类型:{String}

类型:{Function}

参数:self {Object} 组件实例对象

返回:{String} 返回空数据时模版

说明:模版中可以使用<%value%>获取当前输入值

# prompt

功能:定义输入时有结果返回提示模版

默认:''

类型:{String}

类型:{Function}

参数:self {Object} 组件实例对象

返回:{String} 返回提示模版

# foot

功能:定义底部模版

默认:''

类型:{String}

类型:{Function}

参数:self {Object} 组件实例对象

返回:{String} 返回底部模版

# field

功能:设置列表展示内容字段名

默认:''

类型:{String}

说明:在展示列表时如果未使用item参数,将会展示该值内容

# focus

功能:是否在文本获取焦点时展示下拉

默认:false

类型:{Boolean}

说明:设置true后组件内部会绑定focus事件,因此不建议手动绑定focus事件调用组件的同时将该参数设置为true,那样会导致事件重复绑定

# nullable

功能:是否允许文本框内容为空时展示下拉

默认:false

类型:{Boolean}

# cahce

功能:搜索时是否缓存数据

默认:false

类型:{Boolean}

说明:设置为true后,如果输入之前已经查询过的数据,那么不再执行查询,直接返回该数据

# container

功能:展示内容显示容器

默认:'body'

类型:{String} 选择器

类型:{Object} DOM对象、jQuery对象

类型:{Function}

参数:self {Object} 组件实例对象

返回:{String, Object} 返回选择器或者元素对象

说明:如果设置为body,创建的元素会基于搜索输入框进行定位,如果不是则基于该值定义的元素进行定位

# limit

功能:下拉列表的数量,超过出现滚动条

默认:6

类型:{Number}

# size

功能:为展示元素增加高宽

默认:null

类型:{Object}

属性:width {Number} 宽度

属性:height {Number} 高度

# offset

功能:设置展示元素的偏移值

默认:null

类型:{Object}

属性:top {Number} 顶部偏移值

属性:left {Number} 左侧偏移值

# style

功能:设置组件元素样式

默认:null

类型:{Object}

# ajax

功能:jQuery ajax配置

默认:null

类型:{Object}

# data

功能:自定义列表数据

默认:null

类型:{Array}

类型:{Function}

参数:self {Object} 组件实例对象

返回:{Array} 返回自定义数据

# tag

功能:展示标签配置项

类型:{Object}

属性 默认值 类型 说明
type '' {String, Array} 定义标签类型,设置后会在标签元素上增加类名ui-tag-名称
close '×' {String} 关闭按钮内容
multiple false {Boolean} 是否多选
backspace false {Boolean} 是否可以用退格键删除标签
focus false {Boolean} 点击叉号删除标签时是否使输入框获取焦点
clear false {Boolean} 选择完是否清空输入框,只有多选时才会启用
title true {Boolean} 鼠标悬停在标签上是否有提示
container null {DOM, jQuery Object, Selector, Function} 标签填充容器,该属性必填
scroll null {DOM, jQuery Object, Selector, Function} 设置滚动容器,未设置时默认取container属性
getData null {Function} 该方法会在标签元素遍历时执行,设置已选择的标签数据,存储在实例属性tagData中,返回对象必须包含text属性
deleteMatch null {DOM, jQuery Object, Selector} 检测已选中的标签是否可以删除

# tabs

功能:设置多菜单

默认:null

类型:{Array}

属性 默认值 类型 说明
title '' {String} 菜单标题
content '' {String, Function} 菜单内容
onShow null {Function} 菜单选中状态时回调

# match

功能:过滤数据

默认:null

类型:{Array, Object}

说明:该参数仅在使用自定义数据时才会启用,与filter参数互斥,优先使用filter

属性 默认值 类型 说明
field '' {String} 匹配字段名
like ''
类型 说明
{String} 正则字符串,可使用{value}作为当前输入值占位符
{Object} 正则对象
{Function} 第一个参数为通过field获取的值,第二个参数为当前输入值,函数返回布尔类型

# setValue

功能:定义搜索列表选中数据

默认:null 默认取field参数获取的值

类型:{Function}

参数:self {Object} 组件实例对象

参数:data {Object} 当前选中行数据

返回:{String, Object} 如果选中后以标签展示,并且需要在标签中设置隐藏域,返回值必须是对象,必须包含text、fields属性

# selected

功能:检测列表是否被选中

默认:null

类型:{Function}

参数:self {Object} 组件实例对象

参数:data {Object} 列表一行数据

返回:{Boolean} 返回true表示被选中,列表class属性值会增加s-crt类

# filter

功能:过滤数据

默认:null

类型:{Function}

参数:self {Object} 组件实例对象

参数:data {Object} 列表数据

参数:value {String} 当前输入框的值

返回:{Array} 返回过滤后的新数据

说明:该参数仅在使用自定义数据时才会启用,与match参数互斥,优先使用该参数

# exist

功能:输入框失去焦点时校验内容是否存在

默认:null

类型:{Boolean} 为true时默认取field参数对应的字段

类型:{Function}

参数:self {Object} 组件实例对象

参数:data {Object} 遍历的列表一行数据

参数:value {String} 当前输入框的值

返回:{Boolean} 返回true则表示数据匹配

说明:仅在单选功能才会启用

# onResponse

功能:请求返回数据时触发回调

默认:null

类型:{Function}

参数:self {Object} 组件实例对象

参数:data {Anything} 接口返回数据

返回:{Array} 返回列表数据

# onSelectBefore

功能:选中列表前触发回调

默认:null

类型:{Function}

参数:self {Object} 组件实例对象

参数:data {Object} 选中项数据

参数:event {Object} 事件对象

参数:elem {Object} 选中项jQuery对象

返回:{Boolean} 返回false则不会触发setValue以及onSelect

# onSelect

功能:选中列表后触发回调

默认:null

类型:{Function}

参数:self {Object} 组件实例对象

参数:data {Object} 选中项数据

参数:event {Object} 事件对象

参数:elem {Object} 选中项jQuery对象

# onBlur

功能:输入框失焦后触发

默认:null

类型:{Function}

参数:self {Object} 组件实例对象

参数:data {Object} exist参数启用时该参数才存在,表示已选中数据

说明:不建议手动给元素绑定blur事件,应该使用该参数

# onChange

功能:改变选中值后触发回调

默认:null

类型:{Function}

参数:self {Object} 组件实例对象

参数:event {Object} 事件对象,当手动删除标签时才会有该参数

实例属性

# target

功能:调用组件的对象

类型:{jQuery Object}

# element

功能:组件元素对象

类型:{jQuery Object}

# container

功能:展示列表所在容器对象

类型:{jQuery Object}

# $result

功能:搜索列表容器对象

类型:{jQuery Object}

# $list

功能:搜索列表对象,没有搜到内容时该值不存在

类型:{jQuery Object}

# $tags

功能:选中的标签元素对象

类型:{jQuery Object}

# tagData

功能:选中的标签数据集合

类型:{Array}

# activeTab

功能:当前选中状态菜单数据

类型:{Object}

# data

功能:选项参数data中获取的数据

类型:{Array}

# queryData

功能:查询后的结果数据

类型:{Array}

实例方法

# resize

功能:重新计算组件元素的位置

类型:{Function}

# show

功能:显示组件元素

类型:{Function}

# hide

功能:隐藏组件元素

类型:{Function}

# value

功能:填充文本框内容或者添加tag标签

类型:{Function}

参数:data {String} 设置文本框内容

参数:data {Object, Array} 添加tag标签,对象必须包含text属性,如果需要给标签添加隐藏域则必须包含fields属性;值为null时会清空标签或者文本框内容

参数:add {Boolean} 如果为false则不会添加标签

类方法

# data2html

功能:将tag数据转为html模版

类型:{Function}

参数:data {String, Object, Array} 为对象类型时必须包含text属性,如果需要给标签添加隐藏域则必须包含fields属性

参数:option {Object} 属性包含title、close、type,说明请参考选项参数tag

方法输出: