2020-07-06 16:31:59 +08:00

4.2 KiB

ActionSheet

Install

import Vue from 'vue';
import { ActionSheet } from 'vant';

Vue.use(ActionSheet);

Usage

Basic Usage

Use actions prop to set options of action-sheet.

<van-cell is-link title="Basic Usage" @click="show = true" />
<van-action-sheet v-model="show" :actions="actions" @select="onSelect" />
import { Toast } from 'vant';

export default {
  data() {
    return {
      show: false,
      actions: [
        { name: 'Option 1' },
        { name: 'Option 2' },
        { name: 'Option 3' },
      ],
    };
  },
  methods: {
    onSelect(item) {
      this.show = false;
      Toast(item.name);
    },
  },
};

Show Cancel Button

<van-action-sheet
  v-model="show"
  :actions="actions"
  cancel-text="Cancel"
  close-on-click-action
  @cancel="onCancel"
/>
import { Toast } from 'vant';

export default {
  data() {
    return {
      show: false,
      actions: [
        { name: 'Option 1' },
        { name: 'Option 2' },
        { name: 'Option 3' },
      ],
    };
  },
  methods: {
    onCancel() {
      Toast('cancel');
    },
  },
};

Show Description

<van-action-sheet
  v-model="show"
  :actions="actions"
  cancel-text="Cancel"
  description="Description"
  close-on-click-action
/>
export default {
  data() {
    return {
      show: false,
      actions: [
        { name: 'Option 1' },
        { name: 'Option 2' },
        { name: 'Option 3', subname: 'Description' },
      ],
    };
  },
};

Option Status

<van-action-sheet
  v-model="show"
  :actions="actions"
  cancel-text="Cancel"
  close-on-click-action
/>
export default {
  data() {
    return {
      show: false,
      actions: [
        { name: 'Colored Option', color: '#07c160' },
        { name: 'Disabled Option', disabled: true },
        { name: 'Loading Option', loading: true },
      ],
    };
  },
};

Custom Panel

<van-action-sheet v-model="show" title="Title">
  <div class="content">Content</div>
</van-action-sheet>

<style>
  .content {
    padding: 16px 16px 160px;
  }
</style>

API

Props

Attribute Description Type Default
v-model (value) Whether to show ActionSheet boolean false
actions Options Action[] []
title Title string -
cancel-text Text of cancel button string -
description v2.2.8 Description above the options string -
close-icon v2.2.13 Close icon name string cross
duration v2.0.3 Transition duration, unit second number | string 0.3
round v2.0.9 Whether to show round corner boolean true
overlay Whether to show overlay boolean true
lock-scroll Whether to lock background scroll boolean true
lazy-render Whether to lazy render util appeared boolean true
close-on-popstate v2.5.3 Whether to close when popstate boolean false
close-on-click-action Whether to close when click action boolean false
close-on-click-overlay Whether to close when click overlay boolean true
safe-area-inset-bottom Whether to enable bottom safe area adaptation boolean true
get-container Return the mount node for ActionSheet string | () => Element -

Data Structure of Action

Key Description Type
name Title string
subname Subtitle string
color Text color string
className className for the option any
loading Whether to be loading status boolean
disabled Whether to be disabled boolean

Events

Event Description Arguments
select Triggered when click option action: Action, index: number
cancel Triggered when click cancel button -
open Triggered when open ActionSheet -
close Triggered when close ActionSheet -
opened Triggered when opened ActionSheet -
closed Triggered when closed ActionSheet -
click-overlay Triggered when click overlay -