Tour 漫游式引导

分步引导用户了解产品功能

何时使用

  • 需要分步引导用户熟悉功能时。

「上一步」「下一步」「完成」按钮文案默认跟随全局语言(zh-CN / zh-TW / en-US)。

导入

import { Tour } from "@reglow/reui";
import type { TourStep } from "@reglow/reui";

基础用法

<script setup lang="ts">
import { ref } from "vue";
import { Tour } from "@reglow/reui";
import { Button } from "@reglow/reui";
import type { TourStep } from "@reglow/reui";

const open = ref(false);
const btnRef1 = ref<InstanceType<typeof Button> | null>(null);
const btnRef2 = ref<InstanceType<typeof Button> | null>(null);

const steps: TourStep[] = [
  {
    title: "上传文件",
    description: "点击这里上传文件",
    target: () => btnRef1.value?.$el ?? null,
  },
  {
    title: "保存",
    description: "保存你的更改",
    placement: "right",
    target: () => btnRef2.value?.$el ?? null,
  },
];
</script>

<template>
  <Button ref="btnRef1" @click="open = true">开始引导</Button>
  <Button ref="btnRef2">保存</Button>

  <Tour v-model:open="open" :steps="steps" @finish="console.log('done')" />
</template>

更多示例

居中显示(无目标)

<Tour v-model:open="open" :steps="[{ title: '欢迎', description: '欢迎使用本系统', target: () => null }]" />

非模态引导

<Tour v-model:open="open" :steps="steps" :mask="false" type="primary" />

自定义位置

<Tour v-model:open="open" :steps="[
  { title: '右侧', description: '在目标右侧', placement: 'right', target: () => el },
  { title: '上方', description: '在目标上方', placement: 'top', target: () => el },
]" />

API

Tour Props

属性说明类型默认值
open (v-model)打开引导booleanfalse
steps步骤配置数组TourStep[][]
current (v-model)当前步骤number0
placement相对位置TourPlacementbottom
mask遮罩boolean | { style?: Record<string, string>; color?: string }true
type类型"default" | "primary"default
arrow是否显示箭头booleantrue
closable关闭按钮booleantrue
keyboard键盘导航booleantrue
gap高亮区域边距{ offset?: number | [number, number]; radius?: number }{ offset: 6, radius: 2 }
zIndex层级number1001
scrollIntoViewOptions滚动到视窗boolean | ScrollIntoViewOptionstrue

TourStep

属性说明类型默认值
title标题string-
description描述string-
cover封面图string-
target目标元素函数() => HTMLElement | null-
placement位置TourPlacement-
mask遮罩boolean | { style, color }-
arrow箭头boolean-

TourPlacement

center top topLeft topRight bottom bottomLeft bottomRight left leftTop leftBottom right rightTop rightBottom

Events

事件说明回调
update:open开关变化(value: boolean)
update:current步骤变化(value: number)
close关闭()
finish完成()
change步骤改变(current: number)

Slots

插槽说明作用域
cover封面{ step }
title标题{ step }
description描述{ step }
indicators指示器{ current, total }
actions操作按钮{ current, total, prev, next }