68 lines
1.7 KiB
JavaScript
68 lines
1.7 KiB
JavaScript
// Parser/trees/trees.js
|
|
Component({
|
|
properties: {
|
|
nodes: {
|
|
type: Array,
|
|
value: []
|
|
},
|
|
controls: {
|
|
type: Object,
|
|
value: {}
|
|
}
|
|
},
|
|
methods: {
|
|
//冒泡事件
|
|
playEvent(e) {
|
|
this.triggerEvent('play', e.currentTarget.dataset.id, {
|
|
bubbles: true,
|
|
composed: true
|
|
});
|
|
},
|
|
previewEvent(e) {
|
|
if (!e.target.dataset.hasOwnProperty('ignore')) {
|
|
this.triggerEvent('preview', e.currentTarget.dataset.src, {
|
|
bubbles: true,
|
|
composed: true
|
|
});
|
|
}
|
|
},
|
|
tapEvent(e) {
|
|
this.triggerEvent('linkpress', e.currentTarget.dataset.href, {
|
|
bubbles: true,
|
|
composed: true
|
|
});
|
|
},
|
|
errorEvent(e) {
|
|
//尝试加载其他源
|
|
if (!this.data.controls[e.currentTarget.dataset.id] && e.currentTarget.dataset.source.length > 1) {
|
|
this.data.controls[e.currentTarget.dataset.id] = {
|
|
play: false,
|
|
index: 1
|
|
}
|
|
} else if (this.data.controls[e.currentTarget.dataset.id] && e.currentTarget.dataset.source.length > (this.data.controls[e.currentTarget.dataset.id].index + 1)) {
|
|
this.data.controls[e.currentTarget.dataset.id].index++;
|
|
}
|
|
this.setData({
|
|
controls: this.data.controls
|
|
})
|
|
this.triggerEvent('error', {
|
|
target: e.currentTarget,
|
|
message: e.detail.errMsg
|
|
}, {
|
|
bubbles: true,
|
|
composed: true
|
|
});
|
|
},
|
|
//内部方法:点击封面后加载真实内容
|
|
_loadVideo(e) {
|
|
this.data.controls[e.currentTarget.dataset.id] = {
|
|
play: true,
|
|
index: 0
|
|
}
|
|
this.setData({
|
|
controls: this.data.controls
|
|
})
|
|
},
|
|
}
|
|
})
|