66 lines
1.5 KiB
JavaScript
66 lines
1.5 KiB
JavaScript
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();
|
|
},
|
|
},
|
|
});
|