ActionSheet 动作面板

引入

基础用法

动作面板通过 属性来定义选项,actions 属性是一个由对象构成的数组,数组中的每个对象配置一列,对象格式见文档下方表格。

  1. <van-cell is-link title="基础用法" @click="show = true" />
  2. <van-action-sheet v-model:show="show" :actions="actions" @select="onSelect" />
  1. import { ref } from 'vue';
  2. import { Toast } from 'vant';
  3. export default {
  4. setup() {
  5. const show = ref(false);
  6. const actions = [
  7. { name: '选项一' },
  8. { name: '选项二' },
  9. { name: '选项三' },
  10. ];
  11. const onSelect = (item) => {
  12. // 默认情况下点击选项时不会自动收起
  13. // 可以通过 close-on-click-action 属性开启自动收起
  14. Toast(item.name);
  15. };
  16. return {
  17. show,
  18. actions,
  19. onSelect,
  20. };
  21. },
  22. };

展示取消按钮

设置 cancel-text 属性后,会在底部展示取消按钮,点击后关闭当前面板并触发 cancel 事件。

  1. import { ref } from 'vue';
  2. import { Toast } from 'vant';
  3. export default {
  4. setup() {
  5. const show = ref(false);
  6. const actions = [
  7. { name: '选项一' },
  8. { name: '选项二' },
  9. { name: '选项三' },
  10. ];
  11. Toast('取消');
  12. };
  13. return {
  14. show,
  15. actions,
  16. onCancel,
  17. };
  18. };
  1. <van-action-sheet
  2. v-model:show="show"
  3. :actions="actions"
  4. cancel-text="取消"
  5. description="这是一段描述信息"
  6. close-on-click-action
  7. />

选项状态

可以通过 loadingdisabled 将选项设置为加载状态或禁用状态,或者通过color设置选项的颜色

  1. <van-action-sheet
  2. v-model:show="show"
  3. :actions="actions"
  4. cancel-text="取消"
  5. close-on-click-action
  6. />
  1. import { ref } from 'vue';
  2. export default {
  3. setup() {
  4. const show = ref(false);
  5. const actions = [
  6. { name: '着色选项', color: '#ee0a24' },
  7. { name: '禁用选项', disabled: true },
  8. { name: '加载选项', loading: true },
  9. ];
  10. return {
  11. show,
  12. };
  13. },

自定义面板

通过插槽可以自定义面板的展示内容,同时可以使用title属性展示标题栏

API

Props

Events

Slots

样式变量

组件提供了下列 Less 变量,可用于自定义样式,使用方法请参考主题定制