/***
* @file: 搜索组件
* @author: linkun.he
* @Date: 2019-06-03 10:11:13
*/
import { EventEmitter, OnChanges } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { SettingsService } from '@ithinkdt/shared/browser';
import { DictionaryService } from '@ithinkdt/shared/dict';
import { DtMessageService } from '@ithinkdt/shared/message';
/**
* 搜索表单控件
* 支持三种控件:
* - input
* - select
* - date
* - dateRange
* - time
*
* @param labelWidth 控件名称大小,传入无需带`px`
* @param colNumber 一行显示几个控件。可以被24整除的正整数
* @param searchItems 传入表单数据,它有如下内容:
* - type: input | select | date | dateRange | time
* - lable: 键名
* - value: 显示的控件名称
* - width: 控件名称大小,可选的,不传则默认100px
* - options: 类型为`select`时方需传入此数据,下拉的值。
* - keys: 类型为`dateRange`时,输出的开始日期和结束日期的属性名
* @example
* searchItems:
* ```
* [
* {
* type: "input",
* label: "name",
* value: "名称"
* },
* {
* type: "date",
* label: "birthday",
* value: "生日"
* },
* {
* type: "select",
* label: "sex",
* value: "性别",
* options: [
* {
* label: "man",
* value: "男"
* },
* {
* label: "woman",
* value: "女"
* }
* },
* {
* type: 'dateRange',
* label: 'sendDate',
* value: '日期范围',
* keys: ['startDate', 'endDate']
* },
* {
* type: 'time',
* label: 'sendTime',
* value: '时间选择'
* }
* ]
* ```
* 组件调用:
* ```
*
* ```
* @return formSearch 搜索回调函数,把输入的数据以key为`label`的json对象传回父组件。
* @return resetSearchForm 重置回调函数,重置的时候会在搜索的回调函数中再次请求数据。
* @author linkun.he
*/
export declare class FormSearchComponent implements OnChanges {
private fb;
private messageSrv;
private dictionarySrv;
private settingsSrv;
/**
* form表单
*/
validateForm: FormGroup;
/**
* 日期格式化常量
*/
dateFormat: string;
/**
* 实际显示的表单控件集合
*/
showItems: any;
/**
* 默认一个控件宽度
*/
itemSize: number;
/**
* 字典配置
*/
dictConfig: any;
/**
* 是否显示折叠按钮
*/
showCollapse: boolean;
/**
* 是否显示按钮那一行
*/
hideBtnRow: boolean;
/**
* 是否显示按钮那一行
*/
searchByReset: boolean;
/**
* 名称长度
*/
labelWidth: string;
/**
* 是否可以编辑
*/
operable: boolean;
/**
* 是否折叠
*/
isCollapse: boolean;
/**
* 是否显示下划线
*/
underline: boolean;
/**
* 一行显示几个
*/
colNumber: number;
/**
* 传入的搜索项
*/
searchItems: any;
/**
* 传入的搜索表单
*/
searchForm: any;
/**
* 回调函数
* 把控件输入的值传回调用组件,若无值则不传递。
*/
formSearch: EventEmitter;
resetSearchForm: EventEmitter;
constructor(fb: FormBuilder, messageSrv: DtMessageService, dictionarySrv: DictionaryService, settingsSrv: SettingsService);
ngOnChanges(): void;
initTemp(): void;
getLabelSize(): void;
initSearchData(): void;
createForm(): void;
/**
* 搜索
* @param formData 表单数据
*/
search(formData: any): void;
toggleCollapse(): void;
onChoose(choosedItems: any): void;
onInput(item: any, event: any): void;
addFormControl(label: any, defaultValue?: any, validators?: any): void;
resetForm(): void;
}