/*** * @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; }