|
@@ -1,4 +1,4 @@
|
|
|
-import { Teleport, defineComponent, nextTick, onMounted, ref } from "vue";
|
|
|
+import { PropType, Teleport, defineComponent, nextTick, onMounted, ref } from "vue";
|
|
|
import { Config, DriveStep, PopoverDOM, State, driver } from "driver.js";
|
|
|
import "driver.js/dist/driver.css";
|
|
|
import state from "/src/state";
|
|
@@ -12,10 +12,26 @@ const endGuide = (guideInfo: any) => {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+/**
|
|
|
+ * 按钮状态
|
|
|
+ */
|
|
|
+type ButtonStatus = {
|
|
|
+ /** 声部状态 */
|
|
|
+ subjectStatus?: Boolean;
|
|
|
+};
|
|
|
+
|
|
|
/** 练习模式 */
|
|
|
export const PractiseDriver = defineComponent({
|
|
|
name: "PractiseDriver",
|
|
|
- setup() {
|
|
|
+ props: {
|
|
|
+ // 按钮状态
|
|
|
+ stautsAll: {
|
|
|
+ type: Object as PropType<ButtonStatus>,
|
|
|
+ default: () => {},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ setup(props) {
|
|
|
+ const driverNextStatus = ref(false);
|
|
|
// 初始化部分引导位置
|
|
|
const driverInitialPosition = (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
options.config.stageRadius = 5;
|
|
@@ -27,7 +43,12 @@ export const PractiseDriver = defineComponent({
|
|
|
};
|
|
|
|
|
|
const driverOptions = (): Config => {
|
|
|
- let length = state.setting.displayFingering ? 9 : 8;
|
|
|
+ // 指法
|
|
|
+ let length = state.setting.displayFingering ? 10 : 9;
|
|
|
+ // 声部
|
|
|
+ if (!props.stautsAll.subjectStatus) {
|
|
|
+ length -= 1;
|
|
|
+ }
|
|
|
|
|
|
// 乐器方向不一样引导位置不一样
|
|
|
const instrumentDirection: DriveStep = {
|
|
@@ -56,6 +77,12 @@ export const PractiseDriver = defineComponent({
|
|
|
onCloseClick: () => {
|
|
|
onDriverClose();
|
|
|
},
|
|
|
+ onHighlightStarted: () => {
|
|
|
+ driverNextStatus.value = true;
|
|
|
+ },
|
|
|
+ onHighlighted: () => {
|
|
|
+ driverNextStatus.value = false;
|
|
|
+ },
|
|
|
steps: [
|
|
|
{
|
|
|
element: ".driver-1",
|
|
@@ -133,23 +160,42 @@ export const PractiseDriver = defineComponent({
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
- {
|
|
|
- element: ".driver-6",
|
|
|
- popover: {
|
|
|
- title: "",
|
|
|
- description: "",
|
|
|
- popoverClass: "popoverClass popoverClass6",
|
|
|
- align: "start",
|
|
|
- side: "top",
|
|
|
- nextBtnText: "下一步6/" + length,
|
|
|
- showButtons: ["next"],
|
|
|
- onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
- driverInitialPosition(popover, options);
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
] as DriveStep[],
|
|
|
};
|
|
|
+
|
|
|
+ if (props.stautsAll.subjectStatus) {
|
|
|
+ options.steps?.push({
|
|
|
+ element: ".driver-10",
|
|
|
+ popover: {
|
|
|
+ title: "",
|
|
|
+ description: "",
|
|
|
+ popoverClass: "popoverClass popoverClass10",
|
|
|
+ align: "start",
|
|
|
+ side: "top",
|
|
|
+ nextBtnText: `下一步${options.steps.length + 1}/${length}`,
|
|
|
+ showButtons: ["next"],
|
|
|
+ onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
+ driverInitialPosition(popover, options);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ options.steps?.push({
|
|
|
+ element: ".driver-6",
|
|
|
+ popover: {
|
|
|
+ title: "",
|
|
|
+ description: "",
|
|
|
+ popoverClass: "popoverClass popoverClass6",
|
|
|
+ align: "start",
|
|
|
+ side: "top",
|
|
|
+ nextBtnText: `下一步${options.steps.length + 1}/${length}`, //"下一步6/" + length,
|
|
|
+ showButtons: ["next"],
|
|
|
+ onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
+ driverInitialPosition(popover, options);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ });
|
|
|
// 是否有指法图
|
|
|
if (state.setting.displayFingering) {
|
|
|
options.steps?.push(
|
|
@@ -162,7 +208,7 @@ export const PractiseDriver = defineComponent({
|
|
|
popoverClass: "popoverClass popoverClass8",
|
|
|
align: "start",
|
|
|
side: "bottom",
|
|
|
- nextBtnText: "下一步8/" + length,
|
|
|
+ nextBtnText: `下一步${options.steps.length + 1}/${length}`,
|
|
|
showButtons: ["next"],
|
|
|
onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
options.config.stageRadius = 1000;
|
|
@@ -212,7 +258,7 @@ export const PractiseDriver = defineComponent({
|
|
|
popoverClass: "popoverClass popoverClass8",
|
|
|
align: "start",
|
|
|
side: "bottom",
|
|
|
- nextBtnText: "下一步8/9",
|
|
|
+ nextBtnText: `下一步${options.steps.length + 1}/${length}`,
|
|
|
showButtons: ["next"],
|
|
|
onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
options.config.stageRadius = 1000;
|
|
@@ -258,14 +304,20 @@ export const PractiseDriver = defineComponent({
|
|
|
|
|
|
let driverObj: any;
|
|
|
|
|
|
+ let timer: any;
|
|
|
const handleClickOutside = (event: any) => {
|
|
|
- if (driverObj.isActive() && (event.target.nodeName === "path" || event.target.classList.contains("driver-popover") || event.target.classList.contains("driver-overlay"))) {
|
|
|
- if (driverObj.isLastStep()) {
|
|
|
- onDriverClose();
|
|
|
- } else {
|
|
|
- driverObj.moveNext(); // 跳转到下一步
|
|
|
+ if (timer) clearTimeout(timer);
|
|
|
+ timer = setTimeout(() => {
|
|
|
+ // 如果高亮没有结束则下进行下一步
|
|
|
+ if (driverNextStatus.value) return;
|
|
|
+ if (driverObj.isActive() && (event.target.nodeName === "path" || event.target.classList.contains("driver-popover") || event.target.classList.contains("driver-overlay"))) {
|
|
|
+ if (driverObj.isLastStep()) {
|
|
|
+ onDriverClose();
|
|
|
+ } else {
|
|
|
+ driverObj.moveNext(); // 跳转到下一步
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+ }, 200);
|
|
|
};
|
|
|
|
|
|
const guideInfo = ref({} as any);
|
|
@@ -329,7 +381,15 @@ export const PractiseDriver = defineComponent({
|
|
|
/** 跟练模式 */
|
|
|
export const FollowDriver = defineComponent({
|
|
|
name: "FollowDriver",
|
|
|
- setup() {
|
|
|
+ props: {
|
|
|
+ // 按钮状态
|
|
|
+ stautsAll: {
|
|
|
+ type: Object as PropType<ButtonStatus>,
|
|
|
+ default: () => {},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ setup(props) {
|
|
|
+ const driverNextStatus = ref(false);
|
|
|
// 初始化部分引导位置
|
|
|
const driverInitialPosition = (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
options.config.stageRadius = 5;
|
|
@@ -340,11 +400,22 @@ export const FollowDriver = defineComponent({
|
|
|
} catch {}
|
|
|
};
|
|
|
|
|
|
+ // 声部
|
|
|
+ let length = props.stautsAll.subjectStatus ? 4 : 3;
|
|
|
const driverOptions: Config = {
|
|
|
showProgress: false,
|
|
|
allowClose: false,
|
|
|
popoverOffset: 3,
|
|
|
disableActiveInteraction: true,
|
|
|
+ onCloseClick: () => {
|
|
|
+ onDriverClose();
|
|
|
+ },
|
|
|
+ onHighlightStarted: () => {
|
|
|
+ driverNextStatus.value = true;
|
|
|
+ },
|
|
|
+ onHighlighted: () => {
|
|
|
+ driverNextStatus.value = false;
|
|
|
+ },
|
|
|
steps: [
|
|
|
{
|
|
|
element: ".follow-1",
|
|
@@ -354,15 +425,12 @@ export const FollowDriver = defineComponent({
|
|
|
popoverClass: "popoverClass popoverClassF1",
|
|
|
align: "end",
|
|
|
side: "top",
|
|
|
- nextBtnText: "下一步1/3",
|
|
|
+ nextBtnText: `下一步1/${length}`,
|
|
|
showButtons: ["next"],
|
|
|
onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
options.config.stageRadius = 1000;
|
|
|
options.config.stagePadding = 0;
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -373,47 +441,61 @@ export const FollowDriver = defineComponent({
|
|
|
popoverClass: "popoverClass popoverClass5",
|
|
|
align: "start",
|
|
|
side: "top",
|
|
|
- nextBtnText: "下一步2/3",
|
|
|
+ nextBtnText: `下一步2/${length}`,
|
|
|
showButtons: ["next"],
|
|
|
onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
driverInitialPosition(popover, options);
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
- },
|
|
|
- },
|
|
|
- {
|
|
|
- element: ".driver-6",
|
|
|
- popover: {
|
|
|
- title: "",
|
|
|
- description: "",
|
|
|
- popoverClass: "popoverClass popoverClass6 popoverClose",
|
|
|
- align: "start",
|
|
|
- side: "top",
|
|
|
- prevBtnText: "再看一遍",
|
|
|
- doneBtnText: "完成",
|
|
|
- showButtons: ["next", "previous"],
|
|
|
- onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
- driverInitialPosition(popover, options);
|
|
|
- },
|
|
|
- onPrevClick: () => {
|
|
|
- driverObj.drive(0);
|
|
|
- },
|
|
|
- onNextClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
],
|
|
|
};
|
|
|
|
|
|
+ if (props.stautsAll.subjectStatus) {
|
|
|
+ driverOptions.steps?.push({
|
|
|
+ element: ".driver-10",
|
|
|
+ popover: {
|
|
|
+ title: "",
|
|
|
+ description: "",
|
|
|
+ popoverClass: "popoverClass popoverClass10",
|
|
|
+ align: "start",
|
|
|
+ side: "top",
|
|
|
+ nextBtnText: `下一步${driverOptions.steps.length + 1}/${length}`,
|
|
|
+ showButtons: ["next"],
|
|
|
+ onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
+ driverInitialPosition(popover, options);
|
|
|
+ },
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ driverOptions.steps?.push({
|
|
|
+ element: ".driver-6",
|
|
|
+ popover: {
|
|
|
+ title: "",
|
|
|
+ description: "",
|
|
|
+ popoverClass: "popoverClass popoverClass6 popoverClose",
|
|
|
+ align: "start",
|
|
|
+ side: "top",
|
|
|
+ prevBtnText: "再看一遍",
|
|
|
+ doneBtnText: "完成",
|
|
|
+ showButtons: ["next", "previous"],
|
|
|
+ onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
+ driverInitialPosition(popover, options);
|
|
|
+ },
|
|
|
+ onPrevClick: () => {
|
|
|
+ driverObj.drive(0);
|
|
|
+ },
|
|
|
+ onNextClick: () => {
|
|
|
+ onDriverClose();
|
|
|
+ },
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
let driverObj: any;
|
|
|
|
|
|
const handleClickOutside = (event: any) => {
|
|
|
+ if (driverNextStatus.value) return;
|
|
|
if (driverObj.isActive() && (event.target.nodeName === "path" || event.target.classList.contains("driver-popover") || event.target.classList.contains("driver-overlay"))) {
|
|
|
if (driverObj.isLastStep()) {
|
|
|
onDriverClose();
|
|
@@ -482,7 +564,15 @@ export const FollowDriver = defineComponent({
|
|
|
// 评测模式
|
|
|
export const EvaluatingDriver = defineComponent({
|
|
|
name: "EvaluatingDriver",
|
|
|
- setup() {
|
|
|
+ props: {
|
|
|
+ // 按钮状态
|
|
|
+ stautsAll: {
|
|
|
+ type: Object as PropType<ButtonStatus>,
|
|
|
+ default: () => {},
|
|
|
+ },
|
|
|
+ },
|
|
|
+ setup(props) {
|
|
|
+ const driverNextStatus = ref(false);
|
|
|
// 初始化部分引导位置
|
|
|
const driverInitialPosition = (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
options.config.stageRadius = 5;
|
|
@@ -498,6 +588,15 @@ export const EvaluatingDriver = defineComponent({
|
|
|
allowClose: false,
|
|
|
popoverOffset: 3,
|
|
|
disableActiveInteraction: true,
|
|
|
+ onCloseClick: () => {
|
|
|
+ onDriverClose();
|
|
|
+ },
|
|
|
+ onHighlightStarted: () => {
|
|
|
+ driverNextStatus.value = true;
|
|
|
+ },
|
|
|
+ onHighlighted: () => {
|
|
|
+ driverNextStatus.value = false;
|
|
|
+ },
|
|
|
steps: [
|
|
|
{
|
|
|
element: ".evaluting-1",
|
|
@@ -513,9 +612,6 @@ export const EvaluatingDriver = defineComponent({
|
|
|
options.config.stageRadius = 1000;
|
|
|
options.config.stagePadding = 0;
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -531,9 +627,6 @@ export const EvaluatingDriver = defineComponent({
|
|
|
onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
driverInitialPosition(popover, options);
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -556,9 +649,6 @@ export const EvaluatingDriver = defineComponent({
|
|
|
onNextClick: () => {
|
|
|
onDriverClose();
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
],
|
|
@@ -566,6 +656,7 @@ export const EvaluatingDriver = defineComponent({
|
|
|
let driverObj: any;
|
|
|
|
|
|
const handleClickOutside = (event: any) => {
|
|
|
+ if (driverNextStatus.value) return;
|
|
|
if (driverObj.isActive() && (event.target.nodeName === "path" || event.target.classList.contains("driver-popover") || event.target.classList.contains("driver-overlay"))) {
|
|
|
if (driverObj.isLastStep()) {
|
|
|
onDriverClose();
|
|
@@ -637,6 +728,7 @@ export const EvaluatingDriver = defineComponent({
|
|
|
export const EvaluatingResultDriver = defineComponent({
|
|
|
name: "EvaluatingResultDriver",
|
|
|
setup() {
|
|
|
+ const driverNextStatus = ref(false);
|
|
|
// 初始化部分引导位置
|
|
|
const driverInitialPosition = (popover: PopoverDOM, options: { config: Config; state: State }, position = 1) => {
|
|
|
options.config.stageRadius = 1000;
|
|
@@ -652,6 +744,15 @@ export const EvaluatingResultDriver = defineComponent({
|
|
|
allowClose: false,
|
|
|
popoverOffset: 3,
|
|
|
disableActiveInteraction: true,
|
|
|
+ onCloseClick: () => {
|
|
|
+ onDriverClose();
|
|
|
+ },
|
|
|
+ onHighlightStarted: () => {
|
|
|
+ driverNextStatus.value = true;
|
|
|
+ },
|
|
|
+ onHighlighted: () => {
|
|
|
+ driverNextStatus.value = false;
|
|
|
+ },
|
|
|
steps: [
|
|
|
{
|
|
|
element: ".evaluting-result-1",
|
|
@@ -667,9 +768,6 @@ export const EvaluatingResultDriver = defineComponent({
|
|
|
options.config.stageRadius = 12;
|
|
|
options.config.stagePadding = 10;
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -690,9 +788,6 @@ export const EvaluatingResultDriver = defineComponent({
|
|
|
popover.wrapper.style.marginLeft = (rect?.width || 0) / 2 - 4 + "px";
|
|
|
} catch {}
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -708,9 +803,6 @@ export const EvaluatingResultDriver = defineComponent({
|
|
|
onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
driverInitialPosition(popover, options, -1);
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -733,9 +825,6 @@ export const EvaluatingResultDriver = defineComponent({
|
|
|
onNextClick: () => {
|
|
|
onDriverClose();
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
],
|
|
@@ -743,6 +832,7 @@ export const EvaluatingResultDriver = defineComponent({
|
|
|
let driverObj: any;
|
|
|
|
|
|
const handleClickOutside = (event: any) => {
|
|
|
+ if (driverNextStatus.value) return;
|
|
|
if (driverObj.isActive() && (event.target.nodeName === "path" || event.target.classList.contains("driver-popover") || event.target.classList.contains("driver-overlay"))) {
|
|
|
if (driverObj.isLastStep()) {
|
|
|
onDriverClose();
|
|
@@ -819,6 +909,7 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
},
|
|
|
},
|
|
|
setup(props) {
|
|
|
+ const driverNextStatus = ref(false);
|
|
|
// state.isPercussion 是否为打击乐
|
|
|
// 初始化部分引导位置
|
|
|
const driverInitialPosition = (popover: PopoverDOM, options: { config: Config; state: State }, position = 1) => {
|
|
@@ -848,9 +939,6 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
driverInitialPosition(popover, options);
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -878,9 +966,6 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
onNextClick: () => {
|
|
|
onDriverClose();
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
];
|
|
@@ -905,9 +990,6 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
onNextClick: () => {
|
|
|
onDriverClose();
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
];
|
|
@@ -928,9 +1010,6 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
driverInitialPosition(popover, options);
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -946,9 +1025,6 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
driverInitialPosition(popover, options);
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
];
|
|
@@ -967,9 +1043,6 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
onPopoverRender: (popover: PopoverDOM, options: { config: Config; state: State }) => {
|
|
|
driverInitialPosition(popover, options);
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
},
|
|
|
{
|
|
@@ -997,9 +1070,6 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
onNextClick: () => {
|
|
|
onDriverClose();
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
}
|
|
|
);
|
|
@@ -1024,9 +1094,6 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
onNextClick: () => {
|
|
|
onDriverClose();
|
|
|
},
|
|
|
- onCloseClick: () => {
|
|
|
- onDriverClose();
|
|
|
- },
|
|
|
},
|
|
|
});
|
|
|
}
|
|
@@ -1037,6 +1104,15 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
allowClose: false,
|
|
|
popoverOffset: 3,
|
|
|
disableActiveInteraction: true,
|
|
|
+ onCloseClick: () => {
|
|
|
+ onDriverClose();
|
|
|
+ },
|
|
|
+ onHighlightStarted: () => {
|
|
|
+ driverNextStatus.value = true;
|
|
|
+ },
|
|
|
+ onHighlighted: () => {
|
|
|
+ driverNextStatus.value = false;
|
|
|
+ },
|
|
|
steps: steps,
|
|
|
};
|
|
|
|
|
@@ -1045,6 +1121,7 @@ export const EvaluatingReportDriver = defineComponent({
|
|
|
const guideInfo = ref({} as any);
|
|
|
|
|
|
const handleClickOutside = (event: any) => {
|
|
|
+ if (driverNextStatus.value) return;
|
|
|
if (driverObj.isActive() && (event.target.nodeName === "path" || event.target.classList.contains("driver-popover") || event.target.classList.contains("driver-overlay"))) {
|
|
|
if (driverObj.isLastStep()) {
|
|
|
onDriverClose();
|