Skip to content

结构化搜索

@astryxdesign/core v0.7.1 · PowerSearch

属性 ​

名称类型默认值说明
configPowerSearchConfig必需有哪些字段、运算符,以及每种运算符要什么值。
filtersPowerSearchFilter[]-当前条件。传入之后由外面保存,配合更新事件使用。
labelstring搜索输入框的无障碍名称。
isLabelHiddenbooleantrue视觉上藏起标签,读屏仍然读得到。不传就隐藏;传 false 会显示。旧名 labelHidden 同样可用。两个都传时听正名。
placeholderstring搜索……还没有条件时的占位文字。
autofocusbooleanfalse挂载后立刻聚焦。
hasClearbooleantrue有筛选条件时显示全部清除。旧名 clearable 同样可用。
readOnlybooleanfalse不能新增、修改或删除。
disabledbooleanfalse整个搜索停用。
disabledMessagestring-停用原因。和 disabled 一起用时,悬停或键盘聚焦会显示这段提示,输入框仍可聚焦(带 aria-disabled)。旧名 disabledReason 同样可用。
status'default' | 'success' | 'warning' | 'error'default校验状态。
statusMessagestring-状态说明。
statusVariant'attached' | 'detached'attached说明贴在输入框下面,或隔开一段。
maxTokenLengthnumber40标签里的值最多显示多少个字符。
maxSearchResultsnumber10输入了文字之后,字段菜单最多几条。空查询最多浏览 1000 个字段。
maxOperatorMenuItemsnumber10字符串和实体的值补全最多几条。不影响字段菜单和枚举菜单。
menuWidthnumber-字段菜单的精确宽度,单位是像素。不作用于值编辑器。
popoverSaveButtonLabelstring应用筛选编辑器里保存按钮的文字。旧名 saveLabel 同样可用。
timezoneIDstring-日期怎么显示所用的时区 ID,例如 America/New_York。旧名 timeZone 同样可用。
overflow'none' | 'unfocused-inline' | 'unfocused-layer'none标签放不下时换行、失焦收成一行,或失焦后浮层展开。
resultCountnumber | string-匹配数量。数字会按结果的单复数格式化。
size'sm' | 'md' | 'lg'md输入框和标签的尺寸。
componentsPowerSearchComponents-按值的类型替换标签或编辑器。
containerClassstring-加到字段外壳,也就是标签和状态说明那一层。不会进到画边框的外框,也不会进到原生 input。
containerStyleStyleValue-字段外壳的行内样式。落点和 containerClass 相同。
controlClassstring-加到画边框的外框。写在组件上的 class 也落在这里,不会进到原生 input。
controlStyleStyleValue-外框的行内样式。写在组件上的 style 也落在这里。

事件 ​

名称载荷说明
update:filters新的条件列表条件变化。可以配合双向绑定。
change条件、变更类型、下标类型是新增、修改或删除,下标是被碰到的那一条。
focus焦点事件焦点进入输入框。
blur焦点事件焦点离开输入框。

插槽 ​

图标放在条件前面。endContent(也接受旧名 end)放在清除按钮之前,适合再放一个操作。标签和编辑器插槽优先于按类型注册的替换组件。

组件还暴露聚焦和取消聚焦两个方法,给外面的按钮把光标送回输入框。

字段定义 ​

createPowerSearchConfig 接受字符串、数字、布尔、日期、枚举、枚举列表和字符串列表。字符串有包含、开头、结尾和等于。数字有大小比较。日期有早于、晚于和介于。布尔值不需要再填值。

手写配置时还可以使用时间、相对日期、实体列表、自定义编辑器和嵌套条件。自定义编辑器要同时提供怎么把值读成文字。