mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-13 07:46:17 -08:00
66 lines
1.5 KiB
JavaScript
66 lines
1.5 KiB
JavaScript
import { append, setStyle, hasClass, addClass, removeClass } from '../utils';
|
|
|
|
export default function lock(art) {
|
|
const {
|
|
layers,
|
|
icons,
|
|
template: { $player },
|
|
} = art;
|
|
|
|
function getState() {
|
|
return hasClass($player, 'art-lock');
|
|
}
|
|
|
|
function setLock() {
|
|
addClass($player, 'art-lock');
|
|
art.isLock = true;
|
|
art.emit('lock', true);
|
|
}
|
|
|
|
function setUnlock() {
|
|
removeClass($player, 'art-lock');
|
|
art.isLock = false;
|
|
art.emit('lock', false);
|
|
}
|
|
|
|
layers.add({
|
|
name: 'lock',
|
|
mounted($el) {
|
|
const $lock = append($el, icons.lock);
|
|
const $unlock = append($el, icons.unlock);
|
|
setStyle($lock, 'display', 'none');
|
|
|
|
art.on('lock', (state) => {
|
|
if (state) {
|
|
setStyle($lock, 'display', 'inline-flex');
|
|
setStyle($unlock, 'display', 'none');
|
|
} else {
|
|
setStyle($lock, 'display', 'none');
|
|
setStyle($unlock, 'display', 'inline-flex');
|
|
}
|
|
});
|
|
},
|
|
click() {
|
|
if (getState()) {
|
|
setUnlock();
|
|
} else {
|
|
setLock();
|
|
}
|
|
},
|
|
});
|
|
|
|
return {
|
|
name: 'lock',
|
|
get state() {
|
|
return getState();
|
|
},
|
|
set state(value) {
|
|
if (value) {
|
|
setLock();
|
|
} else {
|
|
setUnlock();
|
|
}
|
|
},
|
|
};
|
|
}
|