Skip to content

FilterItem 筛选选项 ​

用于选型筛选条件中单个筛选字段的选项选择器,支持单选/多选、远程数据加载、联动清空等功能。通常作为 HxFilterPanel 的子组件使用,也支持独立使用。

独立使用 ​

展示 FilterItem 的三种使用场景:单选、多选、自定义字段映射

单选(multiple=false)

待审核
已通过
已驳回
已撤销
""

多选(multiple=true)

技术
产品
设计
运营
[]

多选 modelValueType 对比

modelValueType="array"(默认)

技术
产品
设计
运营
[]

modelValueType="string"

技术
产品
设计
运营
""

自定义 labelKey / valueKey

重要
紧急
普通
归档
""

API ​

HxFilterItem Props ​

参数说明类型默认值
modelValue / v-model当前选中的值,单选为 string | number,多选根据 modelValueType 决定为数组或逗号拼接字符串FilterValueType—
label左侧标签文本string''
options静态选项列表FilterOption[]—
labelKey选项文本字段名string'label'
valueKey选项值字段名string'value'
multiple是否支持多选booleanfalse
modelValueType多选时 v-model 的值类型:"array" 发送数组,"string" 发送逗号拼接字符串(仅在 multiple=true 时有效)'string' | 'array''array'
allowDeselectAll多选模式下是否允许取消所有选项(最后一项也可取消)booleantrue
remote远程数据配置,优先级高于 optionsFilterRemoteConfig—
dependsOn联动:依赖的父级 prop 名称,父值变化时自动清空自身选中值string—
dependsOnValue联动:父级 prop 当前选中的值FilterValueType—

HxFilterItem Emits ​

事件名说明参数
update:modelValue选中值变化(value: FilterValueType)
change选中值变化(与 update:modelValue 同时触发)(value: FilterValueType)
options-updated远程数据加载完成,选项列表更新()

FilterOption ​

参数说明类型默认值
[key: string]可配置任意字段,通过 labelKey / valueKey 指定用于显示和取值的字段any—
disabled是否禁用该选项booleanfalse

FilterRemoteConfig ​

参数说明类型默认值
url远程请求 URLstring—
method请求方法'get' | 'post''get'
paramsURL query 参数(GET 自动拼接在 ? 后)Record<string, unknown>—
body请求体参数(POST 序列化为 JSON 放入 body)Record<string, unknown>—
bodyType请求体格式'json' | 'form-data''json'
labelKey响应数据中 label 字段名string'label'
valueKey响应数据中 value 字段名string'value'
childrenKey响应数据中 children 字段名(用于级联和分组)string'children'
dependsOn联动:依赖的父级 prop 名称,父值变化时自动重新请求string—
dependsOnParamKey联动:父值作为哪个参数名传递string'value'
dependsOnIn联动:父值注入在 query 还是 body 中,默认跟随 method'query' | 'body'—

类型定义 ​

ts
import type {
  FilterItemProps,
  FilterItemEmits,
  FilterItemInstance,
  FilterValueType,
  FilterOption,
  FilterRemoteConfig,
} from '@whhx/ui'

功能说明 ​

  • 单选/多选:通过 multiple 属性控制。单选模式点击同一选项可取消选中;多选模式每项独立切换。
  • 多选值类型:多选模式下通过 modelValueType 控制 v-model 的值格式:
    • "array"(默认):v-model 值为 (string \| number)[] 数组
    • "string":v-model 值为逗号拼接字符串(如 "a,b,c"),适用于表单提交时可直接传入的格式
  • 禁用选项:选项中设置 disabled: true 可禁用该选项。
  • 自定义字段匹配:通过 labelKey 和 valueKey 指定选项对象中用于显示文本和值的字段名。
  • 远程数据:配置 remote 后自动发起请求,请求参数可包含 dependsOnValue 实现联动。
  • 联动清空:当 dependsOn 指定的父级 prop 值变化时,自动清空当前选中值。
  • 主动清空:设置 modelValue 为空字符串(单选)或空数组(多选)即可清空选中状态。

Released under the MIT License.