Skip to content

ActionSheet 动作面板

底部弹起的模态面板,包含与当前情境相关的多个选项。

引入

通过 easycom 自动引入,无需手动注册。

代码演示

基础用法

通过 actions 属性设置选项列表,v-model:show 控制显示。

html
<zq-button text="基础用法" @click="show = true" />
<zq-action-sheet
  v-model:show="show"
  :actions="actions"
  @select="onSelect"
/>
js
const show = ref(false)
const actions = [
  { name: '选项一' },
  { name: '选项二' },
  { name: '选项三' },
]

function onSelect({ item, index }) {
  console.log('选中:', item.name, index)
}

展示标题和描述

通过 titledescription 属性设置标题和描述信息。

html
<zq-action-sheet
  v-model:show="show"
  title="标题"
  description="这是一段描述信息"
  :actions="actions"
/>

展示取消按钮

通过 cancel-text 属性设置取消按钮文字。

html
<zq-action-sheet
  v-model:show="show"
  :actions="actions"
  cancel-text="取消"
  @cancel="onCancel"
/>

选项状态

选项支持 disabled(禁用)、loading(加载中)、color(自定义颜色)和 subname(副标题)。

html
<zq-action-sheet
  v-model:show="show"
  :actions="[
    { name: '着色选项', color: '#ee0a24' },
    { name: '禁用选项', disabled: true },
    { name: '加载选项', loading: true },
    { name: '带描述', subname: '描述信息' },
  ]"
/>

点击选项后不关闭

通过 :close-on-click-action="false" 设置点击选项后不自动关闭。

html
<zq-action-sheet
  v-model:show="show"
  :actions="actions"
  :close-on-click-action="false"
/>

API

Props

参数说明类型默认值
v-model:show是否展示动作面板booleanfalse
title面板标题string''
description面板描述string''
actions选项列表ActionItem[][]
cancel-text取消按钮文字string''
close-on-click-action点击选项后是否关闭booleantrue

ActionItem 数据结构

键名说明类型
name选项名称string
subname选项描述string
color选项文字颜色string
disabled是否禁用boolean
loading是否显示加载状态boolean

Events

事件名说明回调参数
select点击选项时触发(禁用或加载状态下不触发){ item: ActionItem, index: number }
cancel点击取消按钮时触发-
close面板关闭时触发-

注意事项

  • 组件基于 zq-popup 实现,从底部弹出并带有圆角。
  • 底部包含安全区域适配(safe-area-inset-bottom)。
  • 取消按钮与选项列表之间有间隔区分。

主题定制

变量名说明
--color-bg-card面板背景色
--color-bg-page取消按钮间隔区域背景色
--color-bg-hover选项点击态背景色
--color-text-primary标题/选项文字颜色
--color-text-secondary描述/取消按钮文字颜色
--color-text-disabled禁用选项文字颜色
--color-divider选项分割线颜色

Released under the MIT License.