Files
MiniProgram/ProjectLiaisonForm/pages/guide/content/index.js

66 lines
1.5 KiB
JavaScript
Raw Normal View History

2025-08-15 14:05:08 +08:00
Component({
data: {
current: -1,
steps: [],
},
lifetimes: {
attached() {
this.setData({
current: 0,
steps: [
{
element: () =>
new Promise((resolve) =>
this.createSelectorQuery()
.select('.main-title')
.boundingClientRect((rect) => resolve(rect))
.exec(),
),
placement: 'center',
},
{
element: () =>
new Promise((resolve) =>
this.createSelectorQuery()
.select('.label-field')
.boundingClientRect((rect) => resolve(rect))
.exec(),
),
placement: 'bottom',
highlightPadding: 0,
},
{
element: () =>
new Promise((resolve) =>
this.createSelectorQuery()
.select('.action')
.boundingClientRect((rect) => resolve(rect))
.exec(),
),
placement: 'bottom-right',
},
],
});
},
},
methods: {
close() {
this.triggerEvent('close');
},
skip() {
this.setData({ current: -1 });
this.close();
},
back() {
this.setData({ current: 0 });
},
next() {
this.setData({ current: this.data.current + 1 });
},
finish() {
this.setData({ current: -1 });
this.close();
},
},
});