Skip to content

ActionSheet 动作面板

底部弹出式操作面板,常用于微信分享菜单、照片上传途径选择、危险操作二次确认等场景。


代码示例

1. 微信同款动作面板 (WeChat Style ActionSheet)

支持标题 title、副说明文本 description、项目副文本 description 与图标 icon

vue
<template>
  <view>
    <mu-button type="primary" block radius="full" @click="show = true">
      打开微信式动作面板
    </mu-button>

    <mu-action-sheet
      v-model:show="show"
      title="网页由 mp.weixin.qq.com 提供"
      description="请选择您要执行的网页操作"
      :items="wechatActions"
      @select="onSelect"
    />
  </view>
</template>

<script setup>
import { ref } from 'vue'

const show = ref(false)
const wechatActions = ref([
  { text: '发送给朋友', description: '分享网页链接给微信好友', icon: 'share-2' },
  { text: '分享到朋友圈', description: '发布网页至微信朋友圈', icon: 'aperture' },
  { text: '复制链接', description: '拷贝当前 H5 链接', icon: 'copy' },
  { text: '投诉举报', description: '举报该网页违规内容', icon: 'shield-off', danger: true }
])

const onSelect = ({ item }) => {
  console.log('选中操作:', item.text)
}
</script>

API 属性说明 (Props)

参数名说明类型可选值默认值
v-model:show / show是否显示动作面板Booleantrue | falsefalse
items / actions菜单列表集合 [{ text, description, icon, danger, disabled, badge }]Array-[]
title顶部主标题String-''
description顶部副标题说明文案String-''
cancelText底部取消按钮文案String-'取消'
showCancel是否显示底部取消按钮Booleantrue | falsetrue
maskClosable点击遮罩层是否自动关闭Booleantrue | falsetrue

菜单项数据结构 (Item Object)

字段名说明类型
text / label / name菜单标题文字String
description / subText菜单下方说明小字String
icon矢量图标名称String
img / image图片图标 URLString
color文字色彩String
danger是否标红危险项目Boolean
disabled是否禁用不可点击Boolean

事件说明 (Events)

事件名说明回调参数
update:showv-model:show 双向绑定更新(show: boolean)
select / click点击菜单项时触发({ index: Number, item: Object })
cancel点击取消按钮或遮罩层时触发-
close面板收起关闭动画完成时触发-

基于 MIT 协议开源发行

H5 模拟器 (action-sheet)☀️🔄