npm package: @farris/component-querycondition
Description: 1. FarrisUi查询条件模块包括字段配置弹出窗口和字段查询条件展示区域：
Latest version: 1.0.3

# FarrisUi QueryCondition

1. FarrisUi查询条件模块包括字段配置弹出窗口和字段查询条件展示区域：

    字段配置弹出窗口：选择字段；

    字段查询条件展示区域：显示查询字段和设置查询字段数值。

# FarrisUi QueryCondition

1. 输入属性：

    fieldConfigs：字段配置数据源，用于展示需要选择字段配置的列表，参数类型:Array<FieldConfig>，必传属性，FieldConfig实体结构见类注释(路径：
    
    querycondition/entity/fieldconfig/fieldconfig.ts)；
        
    selectedFieldConditions：已选择字段配置条件列表，参数类型：Array<QueryCondition>，非必传属性，QueryCondition实体结构见类注释(路径：querycondition/entity/querycondition.ts);

    options: 选择项（设置控件是否显示，后续会扩展），非必须属性，参数类型：QuerySolutionOptions;

2. 输出事件：

    selectedFieldConditionsEmitter:获取已经选择的字段查询条件列表，输出参数类型：Array<QueryCondition>;

    filterClickEvent:筛选按钮点击事件；

    saveClickEvent:保存按钮点击事件；

    saveAsClickEvent:另存为按钮点击事件。
    
# FarrisUi QueryCondition模块引入步骤

1. 引入模块QueryConditionModule

2. 在HTML模板中引入:
```
    <farris-querycondition #farrisquerycondition 
        [fieldConfigs]="[字段配置列表]"
        [options]="选择项"
        [(selectedFieldConditions)]="[已选字段条件列表]">
        (fieldConditionsChange)="fieldConditionsHandler($event)"
        (filterClickEvent)="filterClickEventHandler($event)"
        (saveClickEvent)="saveClickEventHandler($event)"
        (saveAsClickEvent)="saveAsClickEventHandler($event)"
    </farris-querycondition>
```

3. 打开字段配置窗口调用方式：
```
    export class DemoComponent{

    @ViewChild('farrisquerycondition') farrisquerycondition:QueryConditionComponent;

        //打开字段配置窗口
        openFieldConfigDialog(){
            this.farrisquerycondition.openFieldConfigDialog();
        }
    }
   
```

# QueryCondition发包步骤

> 请使用 NodeJS 版本 8.11.3，否则在第四步会出错。
>
> 请使用node_modules.zip包里的代码，不需要npm install

第一步，在代码根目录``/farris-querycondition-angular7``下，运行命令

```npm run ngc-farris-querycondition```

运行完成，会在根目录``/farris-querycondition-angular7``下生成```out-tsc```文件夹。

第二步，在```out-tsc/app/projects/farris-querycondition-designer/src/```文件夹下添加两个文件：

分别是```ui.js```，```querycondition.js```，内容如下：

```javascript
//ui.js ---start
export * from '@farris/ui-common';
export * from '@farris/ui-common/column';
export * from '@farris/ui-common/date';
export * from '@farris/ui-common/events';
export * from '@farris/ui-common/lib';
export * from '@farris/ui-common/number';
export * from '@farris/ui-common/types';
export * from '@farris/ui-datatable';
export * from '@farris/ui-dialog';
export * from '@farris/ui-draggable';
export * from '@farris/ui-dropdown';
export * from '@farris/ui-field-group';
export * from '@farris/ui-filter-editor';
export * from '@farris/ui-flex-layout';
export * from '@farris/ui-forms';
export * from '@farris/ui-input-group';
export * from '@farris/ui-language-textbox';
export * from '@farris/ui-layout';
export * from '@farris/ui-loading';
export * from '@farris/ui-lookup';
export * from '@farris/ui-messager';
export * from '@farris/ui-modal';
export * from '@farris/ui-multi-select';
export * from '@farris/ui-notify';
export * from '@farris/ui-pagination';
export * from '@farris/ui-panel';
export * from '@farris/ui-perfect-scrollbar';
export * from '@farris/ui-popover';
export * from '@farris/ui-property-panel';
export * from '@farris/ui-response-toolbar';
export * from '@farris/ui-responsive';
export * from '@farris/ui-shortcuts';
export * from '@farris/ui-sort-editor';
export * from '@farris/ui-tabs';
export * from '@farris/ui-treetable';
//ui.js ---end

//querycondition.js ---start
export * from '@farris/component-querycondition';
//querycondition.js ---end
```

第三步，在代码根目录``/farris-querycondition-angular7``下，运行命令

```npm run rollup-farris-querycondition```

运行完成后，会生成```dist-rollup-prod```文件夹。

> /dist-rollup-prod/farris-querycondition-designer/@farris/component-querycondition.js 需要复制到
>
> 安装盘/platform/common/web/@farris文件夹下

第四步，在代码根目录``/farris-querycondition-angular7``下，运行命令

```npm run build farris-querycondition -c=production```

运行完成后，会生成```dist```文件夹

第五步，发布npm包。

在```dist```文件夹下```package.json```同级目录下运行命令：

```javascript
//3选1 更新版本号(请手动修改版本号)
npm version patch //add 1 to the last number
npm version minor //add 1 to the middle number
npm version major //add 1 to the first number

//发布（确认所有修改已经提交）
npm login
npm publish -access=public -tag=latest
```