diff --git a/lib/config/select.d.ts b/lib/config/select.d.ts index 17b9cd2e7cb7c377cf5253440c7060038c70aafb..10d1d075714d6885c068e967d1ef3672456e8774 100644 --- a/lib/config/select.d.ts +++ b/lib/config/select.d.ts @@ -38,6 +38,10 @@ export interface Options { * 提示文本。 */ placeholder: string | undefined; + /** + * 是否启用过滤。 + */ + filtered?: boolean; /** * 未知选项标签。 */ diff --git a/lib/field/modify/select.js b/lib/field/modify/select.js index 72200935dbc6400815ed7be19adb7befcd754979..6d9a4ec99fc1019049c90bcd522691b27029bebe 100644 --- a/lib/field/modify/select.js +++ b/lib/field/modify/select.js @@ -55,7 +55,11 @@ class SelectView extends React.PureComponent { message: "请填写" + label, type: mul ? "array" : field.options.valueType, }], - })(React.createElement(antd_1.Select, { mode: mul ? "multiple" : "default", placeholder: field.options.placeholder, style: { width: field.options.valueWidth || 200 }, onChange: this._onChange }, this.state.dataSource !== undefined ? this.state.dataSource.map(this._renderSelectOption) : undefined)), + })(React.createElement(antd_1.Select, { mode: mul ? "multiple" : "default", placeholder: field.options.placeholder, style: { width: field.options.valueWidth || 200 }, showSearch: field.options.filtered, showArrow: field.options.filtered, filterOption: field.options.filtered + ? (value, option) => { + return option.props.children.indexOf(value) >= 0; + } + : undefined, onChange: this._onChange }, this.state.dataSource !== undefined ? this.state.dataSource.map(this._renderSelectOption) : undefined)), Render.unit(field.options.unitLabel, field.options.unitWidth), Render.description(field.options.description))); } diff --git a/src/config/select.ts b/src/config/select.ts index 2e14d97c41c9f2de27854f69d3d55879219fe978..5ef789ff4ceec6365d3c60a1676d3d04cbf3ec27 100644 --- a/src/config/select.ts +++ b/src/config/select.ts @@ -42,6 +42,10 @@ export interface Options { * 提示文本。 */ placeholder: string | undefined; + /** + * 是否启用过滤。 + */ + filtered?: boolean; /** * 未知选项标签。 */ diff --git a/src/field/modify/select.tsx b/src/field/modify/select.tsx index 78c4cbc917b3c53c900c979d6335df3cc97f26be..4ca6aa7c1f342810441179398f19d77375d03df8 100644 --- a/src/field/modify/select.tsx +++ b/src/field/modify/select.tsx @@ -54,6 +54,14 @@ class SelectView extends React.PureComponent { mode={mul ? "multiple" : "default"} placeholder={field.options.placeholder} style={{ width: field.options.valueWidth || 200 }} + showSearch={field.options.filtered} + showArrow={field.options.filtered} + filterOption={field.options.filtered + ? (value: string, option: any) => { + return option.props.children.indexOf(value) >= 0; + } + : undefined + } onChange={this._onChange} > {this.state.dataSource !== undefined ? this.state.dataSource.map(this._renderSelectOption) : undefined}