dropdown-item
向下弹出的菜单列表组件,默认情况下使用dict-dropdown-item使用, 如果字典包配置中有配置componentsPreFix字段,请根据此字段的具体配置值进行前缀修改,如配置了componentsPreFix为Bu, 则使用bu-dropdown-item使用。
复制成功


组件结构
组件封装结构如下
vue
<van-dropdown-item ref="VanDropdownItemRef">
</van-dropdown-item>js
const VanDropdownItemRef = ref(null)
const getVanDropdownItemRef = () => {
return VanDropdownItemRef.value
}
defineExpose({ getVanDropdownItemRef })属性、事件和插槽继承技巧
此组件引用了van-dropdown-item一个组件,可直接继承原生属性、事件和插槽。
属性
| 属性 | 类型 | 说明 | 默认值 |
|---|---|---|---|
dictType | String, Object | 字典类型,传递字典类型选项将渲染该字典类型对应的数据,传递对象时请继续阅读文档 | "" |
disabledObj | Object | 用于禁用数据的对象(仅对字典数据有效),具体用法见下文 | null |
filterDataFun(list) | function | 接收字典类型对应的数据对数据进行过滤处理 | null |
disabledDataFun(item) | function | (仅对字典数据有效)接收的是字典类型对应数据项的具体一项,根据条件进行返回true则是禁用 | null |
data | Array | 自定义选项数据,优先级最大 | null |
format | Object | 用于格式化数据字段,将数据字段匹配成与字典配置的format一致的格式。 | 见下文 |
keyValue | Boolean | dictChange事件是否返回对象形式 | false |
format默认值
js
{
label: "label",
value: "value",
disabled: "disabled"
}dictType为对象类型时
拥有下列属性
| 字段 | 类型 | 说明 | 默认值 |
|---|---|---|---|
type | string | 对应字典类型 | "" |
filters | string,array | 过滤掉的数据,多个且为字符串类型时使用英文逗号分隔 | "" |
filterType | string | 上述配置的filters根据哪个字段过滤 | 字典包配置中的format.value |
reverse | Boolean | false时 则只展示filters配置的值,true时则返选 | false |
disabledObj配置
拥有下列属性
| 字段 | 类型 | 说明 | 默认值 |
|---|---|---|---|
disabledValues | string,array | 需要禁选的值 | "" |
disabledType | string | 上述配置的disabledValues根据什么字段进行禁选 | 字典包配置中的format.value |
reverse | Boolean | false时,配置的值必为禁选,true时,非配置的值必为禁选 | false |
事件
| 事件名称 | 说明 |
|---|---|
dictChange | 选中值时触发此事件,并返回一个值, keyValue为false时返回当前选中值,为true时返回当前选中值的对象 |
注意
注意
data自定义数据优先级大于dictType
disabledDataFun 配置优先级最高,return的值就是disabled的值 配置了disabledDataFun后 disabledObj 将失效
disabledObj 配置优先级最低,优先取原生字典数据的disabled值,原生disabled值为false再取disabledObj的配置,即此配置无法覆盖原生字典数据的disabled为true的值

