常用的搜索组件,提供两种类型搜索的切换:

  • "text":普通文本的搜索
  • "date":时间段的搜索,有开始时间和结束时间,如果开始时间大于结束时间(不符合常理)的将给出提示,避免误操作

方法

方法

init

init
(
  • options
)
Object

搜索组件的调用方法(标准版)

参数:

名称类型标识描述
options Object 必选

组件配置参数,对该搜索组件类型特性的定义,配置不同展示的方式不同

名称类型标识描述
model Object 必选

该搜索组件是属于哪个搜索模块,主要用于搜索历史的记录,格式:
{ name:"coordination",//模块名称,如:协同模块 id:"8888888" //模块id,如:已办协同的id }

items Array 必选

搜索条件的定义,可定义格式如:
{ type:"text", //目前组件只提供文本搜索和时间段搜索,1、text:文本搜索;2、date:时间段搜索 text:"发起人", //搜索标题 condition:1 //返回给开发者搜索结果对应的类型(也是开发者自己传的类型) }

parameter Object 必选

默认传递的参数

  • 如果默认是时间对象的话,此时value里的值必须是数组的时间格式 ['2016-5-10','2020-5-10']
  • 如果时间格式没有传递开始时间,组件自动返回空的字符
  • 如果时间格式没有传递结束时间,组件自动返回当日时间
  • 文本格式,例如:{type:"text",text:"标题",condition:"1",value:"待办项"}
  • 日期格式,例如:{type:"date",text:"时间1233",condition:"3",value:['2016-03-10','2016-08-10']}

[callback] Function 可选

搜索动作的回调函数,组件将搜索的类型和搜索关键字一并以对象的形式传入

[cancelCallback] Function 可选

点击取消按钮的回调

[closeCallback] Function 可选

关闭组件时的回调

返回值:

[Object]

搜索组件对象

示例:

<script>

    cmp.ready(function () {
        /**
         *
         * @param result
         * {
         *  item:{} //选择的item
         *  searchKey:["",""], 搜索关键值
         * }
         */
        //初始化的items
        var items = [{
            type: 'text',
            text: '标题1',
            condition:"标题1"
        }, {
            type: 'text',
            text: '发布人1',
            condition:"发布人1"
        }, {
            type: 'date',
            text: '创建时间1',
            condition:"创建时间1"
        }];


        var dataDiv=document.querySelector('.datas');
        function searchCallback(result) {
            console.log(result);  //返回搜索对象结果
            console.log(result.searchKey[0]);  //返回输入的值此为数组类型

            dataDiv.innerHTML=result.searchKey[0];
            document.querySelector('#initInput').value = dataDiv.innerText;
        }
        function cancelCallback(){
            console.log("cancelCallback");
        }


        var search_container=document.querySelector('#search_container');
        document.querySelector('#getSearch').addEventListener("click",function(){
            //初始化搜索组件
            cmp.search.init( {
                items: items,
                model:{
                    name:"coordination",
                    id: "8888"
                },
//                parameter 默认传递的参数
                //如果默认是时间对象的话,此时value里的值必须是数组的时间格式 ['2016-5-10','2020-5-10']
                /*
                 * 如果时间格式没有传递开始时间,组件自动返回空的字符
                 * 如果时间格式没有传递结束时间,组件自动返回当日时间
                 * */
                parameter:{type:"text",text:"标题",condition:"1",value:dataDiv.innerText},
//                parameter:{type:"date",text:"时间1233",condition:"3",value:['2016-03-10','2016-08-10']},
                callback: searchCallback,
                cancelCallback:cancelCallback
            });

        },false);


    });


</script>

图例:

搜索

Top