# DropdownMenu 下拉菜单
向下弹出的菜单列表。
# 引入
import PressDropdownMenu from 'press-ui/press-dropdown-menu/press-dropdown-menu';
import PressDropdownItem from 'press-ui/press-dropdown-item/press-dropdown-item';
export default {
components: {
PressDropdownMenu,
PressDropdownItem,
}
}
# 代码演示
# 基础用法
<press-dropdown-menu>
<press-dropdown-item
:value="value1"
:options="option1"
/>
<press-dropdown-item
:value="value2"
:options="option2"
/>
</press-dropdown-menu>
export default {
data() {
return {
option1: [
{ text: '全部商品', value: 0 },
{ text: '新款商品', value: 1 },
{ text: '活动商品', value: 2 },
],
option2: [
{ text: '默认排序', value: 'a' },
{ text: '好评排序', value: 'b' },
{ text: '销量排序', value: 'c' },
],
value1: 0,
value2: 'a',
}
},
};
# 自定义菜单内容
<press-dropdown-menu>
<press-dropdown-item
:value="value1"
:options="option1"
/>
<press-dropdown-item
ref="item"
:title="itemTitle"
>
<press-cell :title="switchTitle1">
<press-switch
slot="right-icon"
size="24px"
style="height: 26px"
:checked="switch1"
active-color="#ee0a24"
@change="onSwitch1Change"
/>
</press-cell>
<press-cell :title="switchTitle2">
<press-switch
slot="right-icon"
size="24px"
style="height: 26px"
:checked="switch2"
active-color="#ee0a24"
@change="onSwitch2Change"
/>
</press-cell>
<div style="padding: 5px 16px;">
<press-button
type="danger"
block
round
@click="onConfirm"
>
确认
</press-button>
</div>
</press-dropdown-item>
</press-dropdown-menu>
export default {
data() {
return {
switchTitle1: '包邮',
switchTitle2: '团购',
itemTitle: '筛选',
option1: [
{ text: '全部商品', value: 0 },
{ text: '新款商品', value: 1 },
{ text: '活动商品', value: 2 },
],
value1: 0,
}
},
methods: {
onConfirm() {
this.$refs.item.toggle();
},
onSwitch1Change({ detail }) {
this.setData({ switch1: detail });
},
onSwitch2Change({ detail }) {
this.setData({ switch2: detail });
},
}
};
# 自定义选中状态颜色
<press-dropdown-menu active-color="#1989fa">
<press-dropdown-item
:value="value1"
:options="option1"
/>
<press-dropdown-item
:value="value2"
:options="option2"
/>
</press-dropdown-menu>
# 向上展开
<press-dropdown-menu direction="up">
<press-dropdown-item
:value="value1"
:options="option1"
/>
<press-dropdown-item
:value="value2"
:options="option2"
/>
</press-dropdown-menu>
# 禁用菜单
<press-dropdown-menu>
<press-dropdown-item
:value="value1"
disabled
:options="option1"
/>
<press-dropdown-item
:value="value2"
disabled
:options="option2"
/>
</press-dropdown-menu>
# API
# DropdownMenu Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
active-color | 菜单标题和选项的选中态颜色 | string | #ee0a24 |
z-index | 菜单栏 z-index 层级 | number | 10 |
duration | 动画时长,单位毫秒 | number | 200 |
direction | 菜单展开方向,可选值为 up | string | down |
overlay | 是否显示遮罩层 | boolean | true |
close-on-click-overlay | 是否在点击遮罩层后关闭菜单 | boolean | true |
close-on-click-outside | 是否在点击外部 menu 后关闭菜单 | boolean | true |
# DropdownItem Props
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
value | 当前选中项对应的 value | number | string | - |
title | 菜单项标题 | string | 当前选中项文字 |
options | 选项数组 | Option[] | [] |
disabled | 是否禁用菜单 | boolean | false |
title-class | 标题额外类名 | string | - |
popup-style | 自定义弹出层样式 | string | - |
# DropdownItem Events
事件名 | 说明 | 回调参数 |
---|---|---|
change | 点击选项导致 value 变化时触发 | value |
open | 打开菜单栏时触发 | - |
close | 关闭菜单栏时触发 | - |
opened | 打开菜单栏且动画结束后触发 | - |
closed | 关闭菜单栏且动画结束后触发 | - |
# DropdownItem 方法
通过 ref 可访问。
方法名 | 说明 | 参数 | 返回值 |
---|---|---|---|
toggle | 切换菜单展示状态,传true 为显示,false 为隐藏,不传参为取反 | show?: boolean | - |
# Option 数据结构
键名 | 说明 | 类型 |
---|---|---|
text | 文字 | string |
value | 标识符 | number | string |
icon | 左侧图标名称或图片链接 | string |
# 在线调试
← DialogPlus Guide →