迁移提示文本字段
parent
9bf33fdb25
commit
b844a577c7
|
@ -12,6 +12,7 @@
|
||||||
- 添加音频可视化与音频输出设备冲突的提示
|
- 添加音频可视化与音频输出设备冲突的提示
|
||||||
- 优化歌词的播放偏移
|
- 优化歌词的播放偏移
|
||||||
- 优化托盘菜单操作(#686)
|
- 优化托盘菜单操作(#686)
|
||||||
|
- 优化播放下载列表时的切歌性能
|
||||||
|
|
||||||
### 修复
|
### 修复
|
||||||
|
|
||||||
|
|
|
@ -169,7 +169,7 @@
|
||||||
"player__music_singer": "Artist: ",
|
"player__music_singer": "Artist: ",
|
||||||
"player__next": "Next",
|
"player__next": "Next",
|
||||||
"player__pause": "Pause",
|
"player__pause": "Pause",
|
||||||
"player__pic_tip": "Right click to locate the currently playing song in \"My List\"",
|
"player__pic_tip": "Play details page (right-click to locate the currently playing song in \"My List\")",
|
||||||
"player__play": "Play",
|
"player__play": "Play",
|
||||||
"player__play_toggle_mode_list": "Play in order",
|
"player__play_toggle_mode_list": "Play in order",
|
||||||
"player__play_toggle_mode_list_loop": "List Loop",
|
"player__play_toggle_mode_list_loop": "List Loop",
|
||||||
|
|
|
@ -169,7 +169,7 @@
|
||||||
"player__music_singer": "艺术家:",
|
"player__music_singer": "艺术家:",
|
||||||
"player__next": "下一首",
|
"player__next": "下一首",
|
||||||
"player__pause": "暂停",
|
"player__pause": "暂停",
|
||||||
"player__pic_tip": "右击在“我的列表”定位当前播放的歌曲",
|
"player__pic_tip": "播放详情页(右击在“我的列表”定位当前播放的歌曲)",
|
||||||
"player__play": "播放",
|
"player__play": "播放",
|
||||||
"player__play_toggle_mode_list": "顺序播放",
|
"player__play_toggle_mode_list": "顺序播放",
|
||||||
"player__play_toggle_mode_list_loop": "列表循环",
|
"player__play_toggle_mode_list_loop": "列表循环",
|
||||||
|
|
|
@ -169,7 +169,7 @@
|
||||||
"player__music_singer": "藝術家:",
|
"player__music_singer": "藝術家:",
|
||||||
"player__next": "下一首",
|
"player__next": "下一首",
|
||||||
"player__pause": "暫停",
|
"player__pause": "暫停",
|
||||||
"player__pic_tip": "右擊在“我的列表”定位當前播放的歌曲",
|
"player__pic_tip": "播放詳情頁(右擊在“我的列表”定位當前播放的歌曲)",
|
||||||
"player__play": "播放",
|
"player__play": "播放",
|
||||||
"player__play_toggle_mode_list": "順序播放",
|
"player__play_toggle_mode_list": "順序播放",
|
||||||
"player__play_toggle_mode_list_loop": "列表循環",
|
"player__play_toggle_mode_list_loop": "列表循環",
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
<template>
|
<template>
|
||||||
<ul :class="$style.list" :style="listStyles" ref="dom_list">
|
<ul :class="$style.list" :style="listStyles" ref="dom_list" role="toolbar" :aria-hidden="!show">
|
||||||
<li v-for="item in menus"
|
<li v-for="item in menus"
|
||||||
|
role="tab"
|
||||||
|
tabindex="0"
|
||||||
|
:aria-label="item[itemName]"
|
||||||
|
ignore-tip
|
||||||
:key="item.action"
|
:key="item.action"
|
||||||
@click="handleClick(item)"
|
@click="handleClick(item)"
|
||||||
v-show="!item.hide && (item.action == 'download' ? setting.download.enable : true)"
|
v-show="!item.hide && (item.action == 'download' ? setting.download.enable : true)"
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
</div>
|
</div>
|
||||||
<ul class="selection-list scroll" :class="$style.list" :style="listStyles" ref="dom_list">
|
<ul class="selection-list scroll" :class="$style.list" :style="listStyles" ref="dom_list">
|
||||||
<li v-for="(item, index) in list" :key="index" :class="(itemKey ? item[itemKey] : item) == modelValue ? $style.active : null"
|
<li v-for="(item, index) in list" :key="index" :class="(itemKey ? item[itemKey] : item) == modelValue ? $style.active : null"
|
||||||
@click="handleClick(item)" :tips="itemName ? item[itemName] : item">{{itemName ? item[itemName] : item}}</li>
|
@click="handleClick(item)" :aria-label="itemName ? item[itemName] : item">{{itemName ? item[itemName] : item}}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
<main :class="$style.main">
|
<main :class="$style.main">
|
||||||
<h2>{{$t('list_add__' + (isMove ? 'title_first_move' : 'title_first_add'))}} <span :class="$style.name">{{this.musicInfo && `${musicInfo.name}`}}</span> {{$t('list_add__title_last')}}</h2>
|
<h2>{{$t('list_add__' + (isMove ? 'title_first_move' : 'title_first_add'))}} <span :class="$style.name">{{this.musicInfo && `${musicInfo.name}`}}</span> {{$t('list_add__title_last')}}</h2>
|
||||||
<div class="scroll" :class="$style.btnContent">
|
<div class="scroll" :class="$style.btnContent">
|
||||||
<base-btn :class="$style.btn" :tips="$t('list_add__btn_title', { name: item.name })" :key="item.id" :disabled="item.isExist" @click="handleClick(index)" v-for="(item, index) in lists">{{item.name}}</base-btn>
|
<base-btn :class="$style.btn" :aria-label="$t('list_add__btn_title', { name: item.name })" :key="item.id" :disabled="item.isExist" @click="handleClick(index)" v-for="(item, index) in lists">{{item.name}}</base-btn>
|
||||||
<base-btn :class="[$style.btn, $style.newList, isEditing ? $style.editing : null]" @click="handleEditing($event)" :tips="$t('lists__new_list_btn')">
|
<base-btn :class="[$style.btn, $style.newList, isEditing ? $style.editing : null]" @click="handleEditing($event)" :aria-label="$t('lists__new_list_btn')">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42 42" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42 42" space="preserve">
|
||||||
<use xlink:href="#icon-addTo"></use>
|
<use xlink:href="#icon-addTo"></use>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
|
@ -3,8 +3,8 @@
|
||||||
<main :class="$style.main">
|
<main :class="$style.main">
|
||||||
<h2>{{$t('list_add__multiple_' + (isMove ? 'title_move' : 'title_add'), { num: musicList.length })}}</h2>
|
<h2>{{$t('list_add__multiple_' + (isMove ? 'title_move' : 'title_add'), { num: musicList.length })}}</h2>
|
||||||
<div class="scroll" :class="$style.btnContent">
|
<div class="scroll" :class="$style.btnContent">
|
||||||
<base-btn :class="$style.btn" :tips="$t('list_add__multiple_btn_title', { name: item.name })" :key="item.id" @click="handleClick(index)" v-for="(item, index) in lists">{{item.name}}</base-btn>
|
<base-btn :class="$style.btn" :aria-label="$t('list_add__multiple_btn_title', { name: item.name })" :key="item.id" @click="handleClick(index)" v-for="(item, index) in lists">{{item.name}}</base-btn>
|
||||||
<base-btn :class="[$style.btn, $style.newList, isEditing ? $style.editing : null]" @click="handleEditing($event)" :tips="$t('lists__new_list_btn')">
|
<base-btn :class="[$style.btn, $style.newList, isEditing ? $style.editing : null]" @click="handleEditing($event)" :aria-label="$t('lists__new_list_btn')">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42 42" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" viewBox="0 0 42 42" space="preserve">
|
||||||
<use xlink:href="#icon-addTo"></use>
|
<use xlink:href="#icon-addTo"></use>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
<div :class="[$style.volume, {[$style.muted]: setting.player.isMute} ]">
|
<div :class="[$style.volume, {[$style.muted]: setting.player.isMute} ]">
|
||||||
<div :class="$style.volumeBar" ref="dom_volumeBar" :style="{ transform: `scaleX(${volume || 0})` }"></div>
|
<div :class="$style.volumeBar" ref="dom_volumeBar" :style="{ transform: `scaleX(${volume || 0})` }"></div>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.volumeMask" @mousedown="handleVolumeMsDown" :tips="`${$t('player__volume')}${parseInt(volume * 100)}%`"></div>
|
<div :class="$style.volumeMask" @mousedown="handleVolumeMsDown" :aria-label="`${$t('player__volume')}${parseInt(volume * 100)}%`"></div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="$style.controlBtn" v-show="!isFullscreen">
|
<div :class="$style.controlBtn" v-show="!isFullscreen">
|
||||||
<button type="button" :class="[$style.btn, $style.close]" :tips="$t('close')" @click="close">
|
<button type="button" :class="[$style.btn, $style.close]" :aria-label="$t('close')" @click="close">
|
||||||
<svg :class="$style.controlBtniIcon" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 24 24" space="preserve">
|
<svg :class="$style.controlBtniIcon" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 24 24" space="preserve">
|
||||||
<use xlink:href="#icon-window-close"></use>
|
<use xlink:href="#icon-window-close"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<button type="button" :class="[$style.btn, $style.min]" :tips="$t('min')" @click="min">
|
<button type="button" :class="[$style.btn, $style.min]" :aria-label="$t('min')" @click="min">
|
||||||
<svg :class="$style.controlBtniIcon" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 24 24" space="preserve">
|
<svg :class="$style.controlBtniIcon" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" width="100%" viewBox="0 0 24 24" space="preserve">
|
||||||
<use xlink:href="#icon-window-minimize"></use>
|
<use xlink:href="#icon-window-minimize"></use>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="$style.menu">
|
<div :class="$style.menu">
|
||||||
<ul :class="$style.list">
|
<ul :class="$style.list" role="toolbar">
|
||||||
<li v-for="item in menus" :key="item.to" :class="$style.navItem">
|
<li v-for="item in menus" :key="item.to" :class="$style.navItem" role="presentation">
|
||||||
<router-link :class="$style.link" :active-class="$style.active" :to="item.to" :tips="item.tips">
|
<router-link :class="$style.link" :active-class="$style.active" role="tab" :aria-selected="$route.name == item.to" :to="item.to" :aria-label="item.tips">
|
||||||
<div :class="$style.icon">
|
<div :class="$style.icon">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" :viewBox="item.iconSize" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" :viewBox="item.iconSize" space="preserve">
|
||||||
<use :xlink:href="item.icon"></use>
|
<use :xlink:href="item.icon"></use>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' style="display: none;")
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' style="display: none;" aria-hidden="true")
|
||||||
defs
|
defs
|
||||||
g#icon-search(fill='currentColor')
|
g#icon-search(fill='currentColor')
|
||||||
// 30.239 30.239
|
// 30.239 30.239
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="$style.controlBtn">
|
<div :class="$style.controlBtn">
|
||||||
<common-volume-bar :setting="setting" />
|
<common-volume-bar :setting="setting" />
|
||||||
<div :class="$style.titleBtn" @click="toggleDesktopLyric" @contextmenu="toggleLockDesktopLyric" :tips="toggleDesktopLyricBtnTitle">
|
<div :class="$style.titleBtn" @click="toggleDesktopLyric" @contextmenu="toggleLockDesktopLyric" :aria-label="toggleDesktopLyricBtnTitle">
|
||||||
<svg v-show="setting.desktopLyric.enable" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="100%" viewBox="0 0 512 512" space="preserve">
|
<svg v-show="setting.desktopLyric.enable" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="100%" viewBox="0 0 512 512" space="preserve">
|
||||||
<use xlink:href="#icon-desktop-lyric-on"></use>
|
<use xlink:href="#icon-desktop-lyric-on"></use>
|
||||||
</svg>
|
</svg>
|
||||||
|
@ -9,7 +9,7 @@
|
||||||
<use xlink:href="#icon-desktop-lyric-off"></use>
|
<use xlink:href="#icon-desktop-lyric-off"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.titleBtn" @click="toggleNextPlayMode" :tips="nextTogglePlayName">
|
<div :class="$style.titleBtn" @click="toggleNextPlayMode" :aria-label="nextTogglePlayName">
|
||||||
<svg v-show="setting.player.togglePlayMethod == 'listLoop'" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="80%" viewBox="0 0 24 24" space="preserve">
|
<svg v-show="setting.player.togglePlayMethod == 'listLoop'" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="80%" viewBox="0 0 24 24" space="preserve">
|
||||||
<use xlink:href="#icon-list-loop"></use>
|
<use xlink:href="#icon-list-loop"></use>
|
||||||
</svg>
|
</svg>
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
<use xlink:href="#icon-single"></use>
|
<use xlink:href="#icon-single"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.titleBtn" @click="addMusicTo" :tips="$t('player__add_music_to')">
|
<div :class="$style.titleBtn" @click="addMusicTo" :aria-label="$t('player__add_music_to')">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="80%" viewBox="0 0 512 512" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="80%" viewBox="0 0 512 512" space="preserve">
|
||||||
<use xlink:href="#icon-add-2"></use>
|
<use xlink:href="#icon-add-2"></use>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
div(:class="$style.player")
|
div(:class="$style.player")
|
||||||
div(:class="$style.left" @contextmenu="handleToMusicLocation" @click="showPlayerDetail" :tips="$t('player__pic_tip')")
|
div(:class="$style.left" @contextmenu="handleToMusicLocation" @click="showPlayerDetail" :aria-label="$t('player__pic_tip')")
|
||||||
img(v-if="musicInfo.img" :src="musicInfo.img" @error="imgError")
|
img(v-if="musicInfo.img" :src="musicInfo.img" @error="imgError")
|
||||||
svg(v-else version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='102%' width='100%' viewBox='0 0 60 60' space='preserve')
|
svg(v-else version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='102%' width='100%' viewBox='0 0 60 60' space='preserve')
|
||||||
use(:xlink:href='`#${$style.iconPic}`')
|
use(:xlink:href='`#${$style.iconPic}`')
|
||||||
div(:class="$style.middle")
|
div(:class="$style.middle")
|
||||||
div(:class="$style.column1")
|
div(:class="$style.column1")
|
||||||
div(:class="$style.container")
|
div(:class="$style.container")
|
||||||
div(:class="$style.title" @click="handleCopy(title)" :tips="title + $t('copy_tip')") {{title}}
|
div(:class="$style.title" @click="handleCopy(title)" :aria-label="title + $t('copy_tip')") {{title}}
|
||||||
control-btns
|
control-btns
|
||||||
div(:class="$style.column2")
|
div(:class="$style.column2")
|
||||||
common-progress-bar(:progress="progress" :handleTransitionEnd="handleTransitionEnd" :isActiveTransition="isActiveTransition" v-if="!isShowPlayerDetail")
|
common-progress-bar(:progress="progress" :handleTransitionEnd="handleTransitionEnd" :isActiveTransition="isActiveTransition" v-if="!isShowPlayerDetail")
|
||||||
|
@ -18,15 +18,15 @@ div(:class="$style.player")
|
||||||
span(style="margin: 0 5px;") /
|
span(style="margin: 0 5px;") /
|
||||||
span {{maxPlayTimeStr}}
|
span {{maxPlayTimeStr}}
|
||||||
div(:class="$style.right")
|
div(:class="$style.right")
|
||||||
div(:class="$style.playBtn" @click='playPrev' :tips="$t('player__prev')" style="transform: rotate(180deg);")
|
div(:class="$style.playBtn" @click='playPrev' :aria-label="$t('player__prev')" style="transform: rotate(180deg);")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 220.847 220.847' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 220.847 220.847' space='preserve')
|
||||||
use(xlink:href='#icon-nextMusic')
|
use(xlink:href='#icon-nextMusic')
|
||||||
div(:class="$style.playBtn" :tips="isPlay ? $t('player__pause') : $t('player__play')" @click='togglePlay')
|
div(:class="$style.playBtn" :aria-label="isPlay ? $t('player__pause') : $t('player__play')" @click='togglePlay')
|
||||||
svg(v-if="isPlay" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 277.338 277.338' space='preserve')
|
svg(v-if="isPlay" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 277.338 277.338' space='preserve')
|
||||||
use(xlink:href='#icon-pause')
|
use(xlink:href='#icon-pause')
|
||||||
svg(v-else version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 170 170' space='preserve')
|
svg(v-else version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 170 170' space='preserve')
|
||||||
use(xlink:href='#icon-play')
|
use(xlink:href='#icon-play')
|
||||||
div(:class="$style.playBtn" @click='playNext' :tips="$t('player__next')")
|
div(:class="$style.playBtn" @click='playNext' :aria-label="$t('player__next')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 220.847 220.847' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 220.847 220.847' space='preserve')
|
||||||
use(xlink:href='#icon-nextMusic')
|
use(xlink:href='#icon-nextMusic')
|
||||||
|
|
||||||
|
|
|
@ -11,15 +11,15 @@ div(:class="$style.footer")
|
||||||
span(style="margin: 0 5px;") /
|
span(style="margin: 0 5px;") /
|
||||||
span {{maxPlayTimeStr}}
|
span {{maxPlayTimeStr}}
|
||||||
div(:class="$style.playControl")
|
div(:class="$style.playControl")
|
||||||
div(:class="$style.playBtn" @click="playPrev" style="transform: rotate(180deg);" :tips="$t('player__prev')")
|
div(:class="$style.playBtn" @click="playPrev" style="transform: rotate(180deg);" :aria-label="$t('player__prev')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 220.847 220.847' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 220.847 220.847' space='preserve')
|
||||||
use(xlink:href='#icon-nextMusic')
|
use(xlink:href='#icon-nextMusic')
|
||||||
div(:class="$style.playBtn" @click="togglePlay" :tips="isPlay ? $t('player__pause') : $t('player__play')")
|
div(:class="$style.playBtn" @click="togglePlay" :aria-label="isPlay ? $t('player__pause') : $t('player__play')")
|
||||||
svg(v-if="isPlay" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 277.338 277.338' space='preserve')
|
svg(v-if="isPlay" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 277.338 277.338' space='preserve')
|
||||||
use(xlink:href='#icon-pause')
|
use(xlink:href='#icon-pause')
|
||||||
svg(v-else version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 170 170' space='preserve')
|
svg(v-else version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 170 170' space='preserve')
|
||||||
use(xlink:href='#icon-play')
|
use(xlink:href='#icon-play')
|
||||||
div(:class="$style.playBtn" @click="playNext" :tips="$t('player__next')")
|
div(:class="$style.playBtn" @click="playNext" :aria-label="$t('player__next')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 220.847 220.847' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 220.847 220.847' space='preserve')
|
||||||
use(xlink:href='#icon-nextMusic')
|
use(xlink:href='#icon-nextMusic')
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
div(:class="$style.footerLeftControlBtns")
|
div(:class="$style.footerLeftControlBtns")
|
||||||
common-volume-bar(:setting="setting")
|
common-volume-bar(:setting="setting")
|
||||||
div(:class="[$style.footerLeftControlBtn, $style.lrcBtn]" @click="toggleDesktopLyric" @contextmenu="toggleLockDesktopLyric" :tips="toggleDesktopLyricBtnTitle")
|
div(:class="[$style.footerLeftControlBtn, $style.lrcBtn]" @click="toggleDesktopLyric" @contextmenu="toggleLockDesktopLyric" :aria-label="toggleDesktopLyricBtnTitle")
|
||||||
svg(v-show="setting.desktopLyric.enable" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='125%' viewBox='0 0 512 512' space='preserve')
|
svg(v-show="setting.desktopLyric.enable" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='125%' viewBox='0 0 512 512' space='preserve')
|
||||||
use(xlink:href='#icon-desktop-lyric-on')
|
use(xlink:href='#icon-desktop-lyric-on')
|
||||||
svg(v-show="!setting.desktopLyric.enable" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='125%' viewBox='0 0 512 512' space='preserve')
|
svg(v-show="!setting.desktopLyric.enable" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='125%' viewBox='0 0 512 512' space='preserve')
|
||||||
use(xlink:href='#icon-desktop-lyric-off')
|
use(xlink:href='#icon-desktop-lyric-off')
|
||||||
div(:class="[$style.footerLeftControlBtn, { [$style.active]: setting.player.audioVisualization }]" @click="toggleAudioVisualization" :tips="$t('audio_visualization')")
|
div(:class="[$style.footerLeftControlBtn, { [$style.active]: setting.player.audioVisualization }]" @click="toggleAudioVisualization" :aria-label="$t('audio_visualization')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='95%' viewBox='0 0 24 24' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='95%' viewBox='0 0 24 24' space='preserve')
|
||||||
use(xlink:href='#icon-audio-wave')
|
use(xlink:href='#icon-audio-wave')
|
||||||
div(:class="[$style.footerLeftControlBtn, { [$style.active]: isShowLrcSelectContent }]" @click="toggleVisibleLrc" :tips="$t('lyric__select')")
|
div(:class="[$style.footerLeftControlBtn, { [$style.active]: isShowLrcSelectContent }]" @click="toggleVisibleLrc" :aria-label="$t('lyric__select')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='95%' viewBox='0 0 24 24' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='95%' viewBox='0 0 24 24' space='preserve')
|
||||||
use(xlink:href='#icon-text')
|
use(xlink:href='#icon-text')
|
||||||
div(:class="[$style.footerLeftControlBtn, {[$style.active]: isShowPlayComment}]" @click="toggleVisibleComment" :tips="$t('comment__show')")
|
div(:class="[$style.footerLeftControlBtn, {[$style.active]: isShowPlayComment}]" @click="toggleVisibleComment" :aria-label="$t('comment__show')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='95%' viewBox='0 0 24 24' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='95%' viewBox='0 0 24 24' space='preserve')
|
||||||
use(xlink:href='#icon-comment')
|
use(xlink:href='#icon-comment')
|
||||||
div(:class="$style.footerLeftControlBtn" @click="toggleNextPlayMode" :tips="nextTogglePlayName")
|
div(:class="$style.footerLeftControlBtn" @click="toggleNextPlayMode" :aria-label="nextTogglePlayName")
|
||||||
svg(v-show="setting.player.togglePlayMethod == 'listLoop'" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' viewBox='0 0 24 24' space='preserve')
|
svg(v-show="setting.player.togglePlayMethod == 'listLoop'" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' viewBox='0 0 24 24' space='preserve')
|
||||||
use(xlink:href='#icon-list-loop')
|
use(xlink:href='#icon-list-loop')
|
||||||
svg(v-show="setting.player.togglePlayMethod == 'random'" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' viewBox='0 0 24 24' space='preserve')
|
svg(v-show="setting.player.togglePlayMethod == 'random'" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' viewBox='0 0 24 24' space='preserve')
|
||||||
|
@ -26,7 +26,7 @@ div(:class="$style.footerLeftControlBtns")
|
||||||
use(xlink:href='#icon-single-loop')
|
use(xlink:href='#icon-single-loop')
|
||||||
svg(v-show="!setting.player.togglePlayMethod" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='120%' viewBox='0 0 24 24' space='preserve')
|
svg(v-show="!setting.player.togglePlayMethod" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='120%' viewBox='0 0 24 24' space='preserve')
|
||||||
use(xlink:href='#icon-single')
|
use(xlink:href='#icon-single')
|
||||||
div(:class="$style.footerLeftControlBtn" @click="isShowAddMusicTo = true" :tips="$t('player__add_music_to')")
|
div(:class="$style.footerLeftControlBtn" @click="isShowAddMusicTo = true" :aria-label="$t('player__add_music_to')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' viewBox='0 0 512 512' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' viewBox='0 0 512 512' space='preserve')
|
||||||
use(xlink:href='#icon-add-2')
|
use(xlink:href='#icon-add-2')
|
||||||
common-list-add-modal(v-model:show="isShowAddMusicTo" :musicInfo="musicInfoItem")
|
common-list-add-modal(v-model:show="isShowAddMusicTo" :musicInfo="musicInfoItem")
|
||||||
|
|
|
@ -3,7 +3,7 @@ div.comment(:class="$style.comment" ref="dom_container")
|
||||||
div(:class="$style.commentHeader")
|
div(:class="$style.commentHeader")
|
||||||
h3 {{$t('comment__title', { name: title })}}
|
h3 {{$t('comment__title', { name: title })}}
|
||||||
div(:class="$style.commentHeaderBtns")
|
div(:class="$style.commentHeaderBtns")
|
||||||
div(:class="$style.commentHeaderBtn" @click="handleShowComment" :tips="$t('comment__refresh')")
|
div(:class="$style.commentHeaderBtn" @click="handleShowComment" :aria-label="$t('comment__refresh')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' style='transform: rotate(45deg);' viewBox='0 0 24 24' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' style='transform: rotate(45deg);' viewBox='0 0 24 24' space='preserve')
|
||||||
use(xlink:href='#icon-refresh')
|
use(xlink:href='#icon-refresh')
|
||||||
div(:class="$style.commentHeaderBtn" @click="$emit('close')")
|
div(:class="$style.commentHeaderBtn" @click="$emit('close')")
|
||||||
|
|
|
@ -5,28 +5,28 @@ transition(enter-active-class="animated lightSpeedIn" leave-active-class="animat
|
||||||
//- div(:class="$style.bg2")
|
//- div(:class="$style.bg2")
|
||||||
div(:class="[$style.header, $style.controlBtnLeft]" v-if="setting.controlBtnPosition == 'left'")
|
div(:class="[$style.header, $style.controlBtnLeft]" v-if="setting.controlBtnPosition == 'left'")
|
||||||
div(:class="$style.controBtn")
|
div(:class="$style.controBtn")
|
||||||
button(type="button" :class="$style.hide" :tips="$t('player__hide_detail_tip')" @click="hide")
|
button(type="button" :class="$style.hide" :aria-label="$t('player__hide_detail_tip')" @click="hide")
|
||||||
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='80%' viewBox='0 0 30.727 30.727' space='preserve')
|
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='80%' viewBox='0 0 30.727 30.727' space='preserve')
|
||||||
use(xlink:href='#icon-window-hide')
|
use(xlink:href='#icon-window-hide')
|
||||||
button(type="button" :class="$style.min" :tips="$t('min')" @click="min")
|
button(type="button" :class="$style.min" :aria-label="$t('min')" @click="min")
|
||||||
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='100%' viewBox='0 0 24 24' space='preserve')
|
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='100%' viewBox='0 0 24 24' space='preserve')
|
||||||
use(xlink:href='#icon-window-minimize')
|
use(xlink:href='#icon-window-minimize')
|
||||||
|
|
||||||
//- button(type="button" :class="$style.max" @click="max")
|
//- button(type="button" :class="$style.max" @click="max")
|
||||||
button(type="button" :class="$style.close" :tips="$t('close')" @click="close")
|
button(type="button" :class="$style.close" :aria-label="$t('close')" @click="close")
|
||||||
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='100%' viewBox='0 0 24 24' space='preserve')
|
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' width='100%' viewBox='0 0 24 24' space='preserve')
|
||||||
use(xlink:href='#icon-window-close')
|
use(xlink:href='#icon-window-close')
|
||||||
div(:class="[$style.header, $style.controlBtnRight]" v-else)
|
div(:class="[$style.header, $style.controlBtnRight]" v-else)
|
||||||
div(:class="$style.controBtn")
|
div(:class="$style.controBtn")
|
||||||
button(type="button" :class="$style.hide" :tips="$t('player__hide_detail_tip')" @click="hide")
|
button(type="button" :class="$style.hide" :aria-label="$t('player__hide_detail_tip')" @click="hide")
|
||||||
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='35%' viewBox='0 0 30.727 30.727' space='preserve')
|
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='35%' viewBox='0 0 30.727 30.727' space='preserve')
|
||||||
use(xlink:href='#icon-window-hide')
|
use(xlink:href='#icon-window-hide')
|
||||||
button(type="button" :class="$style.min" :tips="$t('min')" @click="min")
|
button(type="button" :class="$style.min" :aria-label="$t('min')" @click="min")
|
||||||
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='60%' viewBox='0 0 24 24' space='preserve')
|
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='60%' viewBox='0 0 24 24' space='preserve')
|
||||||
use(xlink:href='#icon-window-minimize-2')
|
use(xlink:href='#icon-window-minimize-2')
|
||||||
|
|
||||||
//- button(type="button" :class="$style.max" @click="max")
|
//- button(type="button" :class="$style.max" @click="max")
|
||||||
button(type="button" :class="$style.close" :tips="$t('close')" @click="close")
|
button(type="button" :class="$style.close" :aria-label="$t('close')" @click="close")
|
||||||
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='60%' viewBox='0 0 24 24' space='preserve')
|
svg(:class="$style.controBtnIcon" version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='60%' viewBox='0 0 24 24' space='preserve')
|
||||||
use(xlink:href='#icon-window-close-2')
|
use(xlink:href='#icon-window-close-2')
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="$style.control" v-show="!isFullscreen">
|
<div :class="$style.control" v-show="!isFullscreen">
|
||||||
<button type="button" :class="[$style.btn, $style.min]" :tips="$t('min')" @click="min">
|
<button type="button" :class="[$style.btn, $style.min]" :aria-label="$t('min')" @click="min">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="60%" viewBox="0 0 24 24" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="60%" viewBox="0 0 24 24" space="preserve">
|
||||||
<use xlink:href="#icon-window-minimize-2"></use>
|
<use xlink:href="#icon-window-minimize-2"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<button type="button" :class="[$style.btn, $style.close]" :tips="$t('close')" @click="close">
|
<button type="button" :class="[$style.btn, $style.close]" :aria-label="$t('close')" @click="close">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="60%" viewBox="0 0 24 24" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="60%" viewBox="0 0 24 24" space="preserve">
|
||||||
<use xlink:href="#icon-window-close-2"></use>
|
<use xlink:href="#icon-window-close-2"></use>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
|
@ -44,11 +44,11 @@ material-modal(:show="versionInfo.showModal" @close="handleClose")
|
||||||
p 发现有新版本啦,但是自动更新功能出问题了,
|
p 发现有新版本啦,但是自动更新功能出问题了,
|
||||||
p
|
p
|
||||||
| 你可以去
|
| 你可以去
|
||||||
strong.hover.underline(@click="handleOpenUrl('https://github.com/lyswhut/lx-music-desktop/releases')" tips="点击打开") 软件发布页
|
strong.hover.underline(@click="handleOpenUrl('https://github.com/lyswhut/lx-music-desktop/releases')" aria-label="点击打开") 软件发布页
|
||||||
| 或
|
| 或
|
||||||
strong.hover.underline(@click="handleOpenUrl('https://www.lanzoui.com/b0bf2cfa/')" tips="点击打开") 网盘
|
strong.hover.underline(@click="handleOpenUrl('https://www.lanzoui.com/b0bf2cfa/')" aria-label="点击打开") 网盘
|
||||||
| (密码:
|
| (密码:
|
||||||
strong.hover(@click="handleCopy('glqw')" tips="点击复制") glqw
|
strong.hover(@click="handleCopy('glqw')" aria-label="点击复制") glqw
|
||||||
| ) 下载新版本,
|
| ) 下载新版本,
|
||||||
p
|
p
|
||||||
| 国内Windows/MAC用户推荐到
|
| 国内Windows/MAC用户推荐到
|
||||||
|
@ -61,11 +61,11 @@ material-modal(:show="versionInfo.showModal" @close="handleClose")
|
||||||
p 你当前所在网络访问GitHub较慢,导致新版本下载超时(已经下了半个钟了😳),你仍可选择继续等,但墙裂建议手动更新版本!
|
p 你当前所在网络访问GitHub较慢,导致新版本下载超时(已经下了半个钟了😳),你仍可选择继续等,但墙裂建议手动更新版本!
|
||||||
p
|
p
|
||||||
| 你可以去
|
| 你可以去
|
||||||
base-btn(min @click="handleOpenUrl('https://github.com/lyswhut/lx-music-desktop/releases')" tips="点击打开") 软件发布页
|
base-btn(min @click="handleOpenUrl('https://github.com/lyswhut/lx-music-desktop/releases')" aria-label="点击打开") 软件发布页
|
||||||
| 或
|
| 或
|
||||||
base-btn(min @click="handleOpenUrl('https://www.lanzoui.com/b0bf2cfa/')" tips="点击打开") 网盘
|
base-btn(min @click="handleOpenUrl('https://www.lanzoui.com/b0bf2cfa/')" aria-label="点击打开") 网盘
|
||||||
| (密码:
|
| (密码:
|
||||||
strong.hover(@click="handleCopy('glqw')" tips="点击复制") glqw
|
strong.hover(@click="handleCopy('glqw')" aria-label="点击复制") glqw
|
||||||
| )下载新版本,
|
| )下载新版本,
|
||||||
p
|
p
|
||||||
| 国内Windows/MAC用户推荐到
|
| 国内Windows/MAC用户推荐到
|
||||||
|
@ -82,11 +82,11 @@ material-modal(:show="versionInfo.showModal" @close="handleClose")
|
||||||
p 更新信息获取失败,可能是无法访问Github导致的,请手动检查更新!
|
p 更新信息获取失败,可能是无法访问Github导致的,请手动检查更新!
|
||||||
p
|
p
|
||||||
| 检查方法:打开
|
| 检查方法:打开
|
||||||
base-btn(min @click="handleOpenUrl('https://github.com/lyswhut/lx-music-desktop/releases')" tips="点击打开") 软件发布页
|
base-btn(min @click="handleOpenUrl('https://github.com/lyswhut/lx-music-desktop/releases')" aria-label="点击打开") 软件发布页
|
||||||
| 或
|
| 或
|
||||||
base-btn(min @click="handleOpenUrl('https://www.lanzoui.com/b0bf2cfa/')" tips="点击打开") 网盘
|
base-btn(min @click="handleOpenUrl('https://www.lanzoui.com/b0bf2cfa/')" aria-label="点击打开") 网盘
|
||||||
| (密码:
|
| (密码:
|
||||||
strong.hover(@click="handleCopy('glqw')" tips="点击复制") glqw
|
strong.hover(@click="handleCopy('glqw')" aria-label="点击复制") glqw
|
||||||
| )查看它们的
|
| )查看它们的
|
||||||
strong 版本号
|
strong 版本号
|
||||||
| 与当前版本({{versionInfo.version}})对比是否一样,
|
| 与当前版本({{versionInfo.version}})对比是否一样,
|
||||||
|
@ -115,11 +115,11 @@ material-modal(:show="versionInfo.showModal" @close="handleClose")
|
||||||
| 重新打开本弹窗。
|
| 重新打开本弹窗。
|
||||||
p
|
p
|
||||||
| 手动更新可以去
|
| 手动更新可以去
|
||||||
strong.hover.underline(@click="handleOpenUrl('https://github.com/lyswhut/lx-music-desktop/releases')" tips="点击打开") 软件发布页
|
strong.hover.underline(@click="handleOpenUrl('https://github.com/lyswhut/lx-music-desktop/releases')" aria-label="点击打开") 软件发布页
|
||||||
| 或
|
| 或
|
||||||
strong.hover.underline(@click="handleOpenUrl('https://www.lanzoui.com/b0bf2cfa/')" tips="点击打开") 网盘
|
strong.hover.underline(@click="handleOpenUrl('https://www.lanzoui.com/b0bf2cfa/')" aria-label="点击打开") 网盘
|
||||||
| (密码:
|
| (密码:
|
||||||
strong.hover(@click="handleCopy('glqw')" tips="点击复制") glqw
|
strong.hover(@click="handleCopy('glqw')" aria-label="点击复制") glqw
|
||||||
| ) 下载,
|
| ) 下载,
|
||||||
p 国内Windows/MAC用户推荐到网盘下载。
|
p 国内Windows/MAC用户推荐到网盘下载。
|
||||||
p 当前下载进度:{{progress}}
|
p 当前下载进度:{{progress}}
|
||||||
|
|
|
@ -1,30 +1,30 @@
|
||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
div(:class="$style.btns")
|
div(:class="$style.btns")
|
||||||
button(type="button" v-if="playBtn" @contextmenu.capture.stop :tips="$t('list__play')" @click.stop="handleClick('play')")
|
button(type="button" v-if="playBtn" @contextmenu.capture.stop :aria-label="$t('list__play')" @click.stop="handleClick('play')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 287.386 287.386' space='preserve' v-once)
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 287.386 287.386' space='preserve' v-once)
|
||||||
use(xlink:href='#icon-testPlay')
|
use(xlink:href='#icon-testPlay')
|
||||||
button(type="button" v-if="listAddBtn" @contextmenu.capture.stop :tips="$t('list__add_to')" @click.stop="handleClick('listAdd')")
|
button(type="button" v-if="listAddBtn" @contextmenu.capture.stop :aria-label="$t('list__add_to')" @click.stop="handleClick('listAdd')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 42 42' space='preserve' v-once)
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 42 42' space='preserve' v-once)
|
||||||
use(xlink:href='#icon-addTo')
|
use(xlink:href='#icon-addTo')
|
||||||
button(type="button" v-if="downloadBtn && setting.download.enable" @contextmenu.capture.stop :tips="$t('list__download')" @click.stop="handleClick('download')")
|
button(type="button" v-if="downloadBtn && setting.download.enable" @contextmenu.capture.stop :aria-label="$t('list__download')" @click.stop="handleClick('download')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 475.078 475.077' space='preserve' v-once)
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 475.078 475.077' space='preserve' v-once)
|
||||||
use(xlink:href='#icon-download')
|
use(xlink:href='#icon-download')
|
||||||
//- button(type="button" :tips="$t('list__add')" v-if="userInfo" @click.stop="handleClick('add')")
|
//- button(type="button" :aria-label="$t('list__add')" v-if="userInfo" @click.stop="handleClick('add')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 42 42' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 42 42' space='preserve')
|
||||||
use(xlink:href='#icon-addTo')
|
use(xlink:href='#icon-addTo')
|
||||||
button(type="button" v-if="startBtn" @contextmenu.capture.stop :tips="$t('list__start')" @click.stop="handleClick('start')")
|
button(type="button" v-if="startBtn" @contextmenu.capture.stop :aria-label="$t('list__start')" @click.stop="handleClick('start')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 170 170' space='preserve' v-once)
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 170 170' space='preserve' v-once)
|
||||||
use(xlink:href='#icon-play')
|
use(xlink:href='#icon-play')
|
||||||
button(type="button" v-if="pauseBtn" @contextmenu.capture.stop :tips="$t('list__pause')" @click.stop="handleClick('pause')")
|
button(type="button" v-if="pauseBtn" @contextmenu.capture.stop :aria-label="$t('list__pause')" @click.stop="handleClick('pause')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 277.338 277.338' space='preserve' v-once)
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 277.338 277.338' space='preserve' v-once)
|
||||||
use(xlink:href='#icon-pause')
|
use(xlink:href='#icon-pause')
|
||||||
button(type="button" v-if="fileBtn" @contextmenu.capture.stop :tips="$t('list__file')" @click.stop="handleClick('file')")
|
button(type="button" v-if="fileBtn" @contextmenu.capture.stop :aria-label="$t('list__file')" @click.stop="handleClick('file')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='-61 0 512 512' space='preserve' v-once)
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='-61 0 512 512' space='preserve' v-once)
|
||||||
use(xlink:href='#icon-musicFile')
|
use(xlink:href='#icon-musicFile')
|
||||||
button(type="button" v-if="searchBtn" @contextmenu.capture.stop :tips="$t('list__search')" @click.stop="handleClick('search')")
|
button(type="button" v-if="searchBtn" @contextmenu.capture.stop :aria-label="$t('list__search')" @click.stop="handleClick('search')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 30.239 30.239' space='preserve' v-once)
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 30.239 30.239' space='preserve' v-once)
|
||||||
use(xlink:href='#icon-search')
|
use(xlink:href='#icon-search')
|
||||||
button(type="button" v-if="removeBtn" :tips="$t('list__remove')" @click.stop="handleClick('remove')")
|
button(type="button" v-if="removeBtn" :aria-label="$t('list__remove')" @click.stop="handleClick('remove')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 212.982 212.982' space='preserve' v-once)
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 212.982 212.982' space='preserve' v-once)
|
||||||
use(xlink:href='#icon-delete')
|
use(xlink:href='#icon-delete')
|
||||||
|
|
||||||
|
|
|
@ -20,13 +20,13 @@ div(:class="$style.songList")
|
||||||
div.list-item(@click="handleListItemClick($event, index)" @contextmenu="handleListItemRightClick($event, index)"
|
div.list-item(@click="handleListItemClick($event, index)" @contextmenu="handleListItemRightClick($event, index)"
|
||||||
:class="[{ selected: rightClickSelectedIndex == index }, { active: selectedList.includes(item) }]")
|
:class="[{ selected: rightClickSelectedIndex == index }, { active: selectedList.includes(item) }]")
|
||||||
div.list-item-cell.nobreak.center(:style="{ width: rowWidth.r1 }" style="padding-left: 3px; padding-right: 3px;" :class="$style.noSelect" @click.stop) {{index + 1}}
|
div.list-item-cell.nobreak.center(:style="{ width: rowWidth.r1 }" style="padding-left: 3px; padding-right: 3px;" :class="$style.noSelect" @click.stop) {{index + 1}}
|
||||||
div.list-item-cell.auto(:style="{ width: rowWidth.r2 }" :tips="item.name + ((item._types.ape || item._types.flac || item._types.wav) ? ` - ${$t('tag__lossless')}` : item._types['320k'] ? ` - ${$t('tag__high_quality')}` : '')")
|
div.list-item-cell.auto(:style="{ width: rowWidth.r2 }" :aria-label="item.name + ((item._types.ape || item._types.flac || item._types.wav) ? ` - ${$t('tag__lossless')}` : item._types['320k'] ? ` - ${$t('tag__high_quality')}` : '')")
|
||||||
span.select {{item.name}}
|
span.select {{item.name}}
|
||||||
span.badge.badge-theme-success(:class="[$style.labelQuality, $style.noSelect]" v-if="item._types.ape || item._types.flac || item._types.wav") {{$t('tag__lossless')}}
|
span.badge.badge-theme-success(:class="[$style.labelQuality, $style.noSelect]" v-if="item._types.ape || item._types.flac || item._types.wav") {{$t('tag__lossless')}}
|
||||||
span.badge.badge-theme-info(:class="[$style.labelQuality, $style.noSelect]" v-else-if="item._types['320k']") {{$t('tag__high_quality')}}
|
span.badge.badge-theme-info(:class="[$style.labelQuality, $style.noSelect]" v-else-if="item._types['320k']") {{$t('tag__high_quality')}}
|
||||||
div.list-item-cell(:style="{ width: rowWidth.r3 }" :tips="item.singer")
|
div.list-item-cell(:style="{ width: rowWidth.r3 }" :aria-label="item.singer")
|
||||||
span.select {{item.singer}}
|
span.select {{item.singer}}
|
||||||
div.list-item-cell(:style="{ width: rowWidth.r4 }" :tips="item.albumName")
|
div.list-item-cell(:style="{ width: rowWidth.r4 }" :aria-label="item.albumName")
|
||||||
span.select {{item.albumName}}
|
span.select {{item.albumName}}
|
||||||
div.list-item-cell(:style="{ width: rowWidth.r5 }")
|
div.list-item-cell(:style="{ width: rowWidth.r5 }")
|
||||||
span(:class="[$style.time, $style.noSelect]") {{item.interval || '--/--'}}
|
span(:class="[$style.time, $style.noSelect]") {{item.interval || '--/--'}}
|
||||||
|
|
|
@ -6,24 +6,24 @@
|
||||||
<use xlink:href="#icon-left"></use>
|
<use xlink:href="#icon-left"></use>
|
||||||
</svg></span></li>
|
</svg></span></li>
|
||||||
<li v-else>
|
<li v-else>
|
||||||
<button type="button" @click="handleClick(page - 1)" :tips="$t('pagination__prev')">
|
<button type="button" @click="handleClick(page - 1)" :aria-label="$t('pagination__prev')">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="100%" viewBox="0 0 451.846 451.847" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="100%" viewBox="0 0 451.846 451.847" space="preserve">
|
||||||
<use xlink:href="#icon-left"></use>
|
<use xlink:href="#icon-left"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="allPage > btnLength && page > pageEvg+1" :class="$style.first">
|
<li v-if="allPage > btnLength && page > pageEvg+1" :class="$style.first">
|
||||||
<button type="button" @click="handleClick(1)" :tips="$t('pagination__page', { num: 1 })">
|
<button type="button" @click="handleClick(1)" :aria-label="$t('pagination__page', { num: 1 })">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="100%" viewBox="0 0 451.846 451.847" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="100%" viewBox="0 0 451.846 451.847" space="preserve">
|
||||||
<use xlink:href="#icon-first"></use>
|
<use xlink:href="#icon-first"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
<li v-for="(p, index) in pages" :key="index" :class="{[$style.active] : p == page}"><span v-if="p === page" v-text="page"></span>
|
<li v-for="(p, index) in pages" :key="index" :class="{[$style.active] : p == page}"><span v-if="p === page" v-text="page"></span>
|
||||||
<button v-else type="button" @click="handleClick(p)" v-text="p" :tips="$t('pagination__page', { num: p })"></button>
|
<button v-else type="button" @click="handleClick(p)" v-text="p" :aria-label="$t('pagination__page', { num: p })"></button>
|
||||||
</li>
|
</li>
|
||||||
<li v-if="allPage > btnLength && allPage - page > pageEvg" :class="$style.last">
|
<li v-if="allPage > btnLength && allPage - page > pageEvg" :class="$style.last">
|
||||||
<button type="button" @click="handleClick(allPage)" :tips="$t('pagination__page', { num: allPage })">
|
<button type="button" @click="handleClick(allPage)" :aria-label="$t('pagination__page', { num: allPage })">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="100%" viewBox="0 0 451.846 451.847" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="100%" viewBox="0 0 451.846 451.847" space="preserve">
|
||||||
<use xlink:href="#icon-last"></use>
|
<use xlink:href="#icon-last"></use>
|
||||||
</svg>
|
</svg>
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
<use xlink:href="#icon-right"></use>
|
<use xlink:href="#icon-right"></use>
|
||||||
</svg></span></li>
|
</svg></span></li>
|
||||||
<li v-else>
|
<li v-else>
|
||||||
<button type="button" @click="handleClick(page + 1)" :tips="$t('pagination__next')">
|
<button type="button" @click="handleClick(page + 1)" :aria-label="$t('pagination__next')">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="100%" viewBox="0 0 451.846 451.847" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="100%" viewBox="0 0 451.846 451.847" space="preserve">
|
||||||
<use xlink:href="#icon-right"></use>
|
<use xlink:href="#icon-right"></use>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<transition name="tips-fade" @after-leave="afterLeave">
|
<transition name="tips-fade" @after-leave="afterLeave">
|
||||||
<div v-show="visible" :style="{ left: position.left + 'px' , top: position.top + 'px', transform: transform }" ref="dom_tips" :class="$style.tips">{{message}}</div>
|
<div v-show="visible" :style="{ left: position.left + 'px' , top: position.top + 'px', transform: transform }" ref="dom_tips" :class="$style.tips" role="presentation">{{message}}</div>
|
||||||
</transition>
|
</transition>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -8,10 +8,14 @@ let prevX = 0
|
||||||
let prevY = 0
|
let prevY = 0
|
||||||
let isDraging = false
|
let isDraging = false
|
||||||
|
|
||||||
|
const getTipText = el => {
|
||||||
|
return el.getAttribute('aria-label') && el.getAttribute('ignore-tip') == null ? el.getAttribute('aria-label') : null
|
||||||
|
}
|
||||||
|
|
||||||
const getTips = el =>
|
const getTips = el =>
|
||||||
el
|
el
|
||||||
? el.getAttribute('tips')
|
? getTipText(el)
|
||||||
? el.getAttribute('tips')
|
? getTipText(el)
|
||||||
: el.parentNode === document.documentElement
|
: el.parentNode === document.documentElement
|
||||||
? null
|
? null
|
||||||
: getTips(el.parentNode)
|
: getTips(el.parentNode)
|
||||||
|
|
|
@ -20,10 +20,10 @@ div(:class="$style.download")
|
||||||
div.list-item(@click="handleDoubleClick($event, index)" @contextmenu="handleListItemRigthClick($event, index)"
|
div.list-item(@click="handleDoubleClick($event, index)" @contextmenu="handleListItemRigthClick($event, index)"
|
||||||
:class="[{[$style.active]: playListIndex == index }, { selected: selectedIndex == index }, { active: selectedData.includes(item) }]")
|
:class="[{[$style.active]: playListIndex == index }, { selected: selectedIndex == index }, { active: selectedData.includes(item) }]")
|
||||||
div.list-item-cell.nobreak.center(style="width: 5%; padding-left: 3px; padding-right: 3px;" @click.stop) {{index + 1}}
|
div.list-item-cell.nobreak.center(style="width: 5%; padding-left: 3px; padding-right: 3px;" @click.stop) {{index + 1}}
|
||||||
div.list-item-cell.auto(:tips="item.name")
|
div.list-item-cell.auto(:aria-label="item.name")
|
||||||
span.select {{item.name}}
|
span.select {{item.name}}
|
||||||
div.list-item-cell(style="width: 20%;") {{item.progress.progress}}%
|
div.list-item-cell(style="width: 20%;") {{item.progress.progress}}%
|
||||||
div.list-item-cell(style="width: 22%;" :tips="item.statusText") {{item.statusText}}
|
div.list-item-cell(style="width: 22%;" :aria-label="item.statusText") {{item.statusText}}
|
||||||
div.list-item-cell(style="width: 10%;") {{item.metadata.type && item.metadata.type.toUpperCase()}}
|
div.list-item-cell(style="width: 10%;") {{item.metadata.type && item.metadata.type.toUpperCase()}}
|
||||||
div.list-item-cell(style="width: 13%; padding-left: 0; padding-right: 0;")
|
div.list-item-cell(style="width: 13%; padding-left: 0; padding-right: 0;")
|
||||||
material-list-buttons(:index="index" :download-btn="false" :file-btn="item.status != downloadStatus.ERROR" remove-btn
|
material-list-buttons(:index="index" :download-btn="false" :file-btn="item.status != downloadStatus.ERROR" remove-btn
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
</div>
|
</div>
|
||||||
<ul class="scroll" :class="$style.listsContent" ref="dom_lists_list">
|
<ul class="scroll" :class="$style.listsContent" ref="dom_lists_list">
|
||||||
<li :class="[$style.listsItem, { [$style.active]: item.id == tabId }, { [$style.clicked]: boardListData.rightClickItemIndex == index }]"
|
<li :class="[$style.listsItem, { [$style.active]: item.id == tabId }, { [$style.clicked]: boardListData.rightClickItemIndex == index }]"
|
||||||
:tips="item.name" v-for="(item, index) in boardList" :key="item.id"
|
:aria-label="item.name" v-for="(item, index) in boardList" :key="item.id"
|
||||||
@click="handleToggleList(item.id)" @contextmenu="handleListsItemRigthClick($event, index)">
|
@click="handleToggleList(item.id)" @contextmenu="handleListsItemRigthClick($event, index)">
|
||||||
<span :class="$style.listsLabel">{{item.name}}</span>
|
<span :class="$style.listsLabel">{{item.name}}</span>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -50,10 +50,10 @@ div(:class="$style.search")
|
||||||
dl(:class="$style.noitemList" v-if="setting.search.isShowHistorySearch && historyList.length")
|
dl(:class="$style.noitemList" v-if="setting.search.isShowHistorySearch && historyList.length")
|
||||||
dt(:class="$style.noitemListTitle")
|
dt(:class="$style.noitemListTitle")
|
||||||
span {{$t('history_search')}}
|
span {{$t('history_search')}}
|
||||||
span(:class="$style.historyClearBtn" @click="clearHistory" :tips="$t('history_clear')")
|
span(:class="$style.historyClearBtn" @click="clearHistory" :aria-label="$t('history_clear')")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 512 512' space='preserve')
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' height='100%' viewBox='0 0 512 512' space='preserve')
|
||||||
use(xlink:href='#icon-eraser')
|
use(xlink:href='#icon-eraser')
|
||||||
dd(:class="$style.noitemListItem" v-for="(item, index) in historyList" @contextmenu="removeHistory(index)" :key="index + item" @click="handleNoitemSearch(item)" :tips="$t('history_remove')") {{item}}
|
dd(:class="$style.noitemListItem" v-for="(item, index) in historyList" @contextmenu="removeHistory(index)" :key="index + item" @click="handleNoitemSearch(item)" :aria-label="$t('history_remove')") {{item}}
|
||||||
div(v-else :class="$style.noitem_list")
|
div(v-else :class="$style.noitem_list")
|
||||||
p {{$t('search__welcome')}}
|
p {{$t('search__welcome')}}
|
||||||
//- common-flow-btn(:show="isShowEditBtn && (searchSourceId == 'all' || assertApiSupport(searchSourceId))" :remove-btn="false" @btn-click="handleFlowBtnClick")
|
//- common-flow-btn(:show="isShowEditBtn && (searchSourceId == 'all' || assertApiSupport(searchSourceId))" :remove-btn="false" @btn-click="handleFlowBtnClick")
|
||||||
|
|
|
@ -18,12 +18,12 @@ div(:class="$style.list")
|
||||||
:class="[{ [$style.active]: playerInfo.isPlayList && playerInfo.playIndex === index }, { selected: selectedIndex == index || rightClickSelectedIndex == index }, { active: selectedList.includes(item) }, { [$style.disabled]: !assertApiSupport(item.source) }]"
|
:class="[{ [$style.active]: playerInfo.isPlayList && playerInfo.playIndex === index }, { selected: selectedIndex == index || rightClickSelectedIndex == index }, { active: selectedList.includes(item) }, { [$style.disabled]: !assertApiSupport(item.source) }]"
|
||||||
@contextmenu="handleListItemRightClick($event, index)")
|
@contextmenu="handleListItemRightClick($event, index)")
|
||||||
div.list-item-cell.nobreak.center(style="flex: 0 0 5%; padding-left: 3px; padding-right: 3px;" :class="$style.noSelect" @click.stop) {{index + 1}}
|
div.list-item-cell.nobreak.center(style="flex: 0 0 5%; padding-left: 3px; padding-right: 3px;" :class="$style.noSelect" @click.stop) {{index + 1}}
|
||||||
div.list-item-cell.auto(:tips="item.name + (isShowSource ? ` - ${item.source}` : '')")
|
div.list-item-cell.auto(:aria-label="item.name + (isShowSource ? ` - ${item.source}` : '')")
|
||||||
span.select {{item.name}}
|
span.select {{item.name}}
|
||||||
span(:class="[$style.labelSource, $style.noSelect]" v-if="isShowSource") {{item.source}}
|
span(:class="[$style.labelSource, $style.noSelect]" v-if="isShowSource") {{item.source}}
|
||||||
div.list-item-cell(style="flex: 0 0 22%;" :tips="item.singer")
|
div.list-item-cell(style="flex: 0 0 22%;" :aria-label="item.singer")
|
||||||
span.select {{item.singer}}
|
span.select {{item.singer}}
|
||||||
div.list-item-cell(style="flex: 0 0 22%;" :tips="item.albumName")
|
div.list-item-cell(style="flex: 0 0 22%;" :aria-label="item.albumName")
|
||||||
span.select {{item.albumName}}
|
span.select {{item.albumName}}
|
||||||
div.list-item-cell(style="flex: 0 0 9%;")
|
div.list-item-cell(style="flex: 0 0 9%;")
|
||||||
span(:class="[$style.time, $style.noSelect]") {{item.interval || '--/--'}}
|
span(:class="[$style.time, $style.noSelect]") {{item.interval || '--/--'}}
|
||||||
|
|
|
@ -2,31 +2,31 @@
|
||||||
<div :class="$style.lists" ref="dom_lists">
|
<div :class="$style.lists" ref="dom_lists">
|
||||||
<div :class="$style.listHeader">
|
<div :class="$style.listHeader">
|
||||||
<h2 :class="$style.listsTitle">{{$t('my_list')}}</h2>
|
<h2 :class="$style.listsTitle">{{$t('my_list')}}</h2>
|
||||||
<button :class="$style.listsAdd" @click="handleShowNewList" :tips="$t('lists__new_list_btn')">
|
<button :class="$style.listsAdd" @click="handleShowNewList" :aria-label="$t('lists__new_list_btn')">
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="70%" viewBox="0 0 24 24" space="preserve">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" height="70%" viewBox="0 0 24 24" space="preserve">
|
||||||
<use xlink:href="#icon-list-add"></use>
|
<use xlink:href="#icon-list-add"></use>
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<ul class="scroll" :class="[$style.listsContent, { [$style.sortable]: keyEvent.isModDown }]" ref="dom_lists_list">
|
<ul class="scroll" :class="[$style.listsContent, { [$style.sortable]: keyEvent.isModDown }]" ref="dom_lists_list">
|
||||||
<li class="default-list" :class="[$style.listsItem, {[$style.active]: defaultList.id == listId}]" :tips="defaultList.name"
|
<li class="default-list" :class="[$style.listsItem, {[$style.active]: defaultList.id == listId}]" :aria-label="defaultList.name" :aria-selected="defaultList.id == listId"
|
||||||
@contextmenu="handleListsItemRigthClick($event, -2)" @click="handleListToggle(defaultList.id)"
|
@contextmenu="handleListsItemRigthClick($event, -2)" @click="handleListToggle(defaultList.id)"
|
||||||
>
|
>
|
||||||
<span :class="$style.listsLabel">{{defaultList.name}}</span>
|
<span :class="$style.listsLabel">{{defaultList.name}}</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="default-list" :class="[$style.listsItem, {[$style.active]: loveList.id == listId}]" :tips="loveList.name"
|
<li class="default-list" :class="[$style.listsItem, {[$style.active]: loveList.id == listId}]" :aria-label="loveList.name" :aria-selected="loveList.id == listId"
|
||||||
@contextmenu="handleListsItemRigthClick($event, -1)" @click="handleListToggle(loveList.id)">
|
@contextmenu="handleListsItemRigthClick($event, -1)" @click="handleListToggle(loveList.id)">
|
||||||
<span :class="$style.listsLabel">{{loveList.name}}</span>
|
<span :class="$style.listsLabel">{{loveList.name}}</span>
|
||||||
</li>
|
</li>
|
||||||
<li class="user-list"
|
<li class="user-list"
|
||||||
:class="[$style.listsItem, {[$style.active]: item.id == listId}, {[$style.clicked]: listsData.rightClickItemIndex == index}, {[$style.fetching]: fetchingListStatus[item.id]}]" :data-index="index"
|
:class="[$style.listsItem, {[$style.active]: item.id == listId}, {[$style.clicked]: listsData.rightClickItemIndex == index}, {[$style.fetching]: fetchingListStatus[item.id]}]" :data-index="index"
|
||||||
@contextmenu="handleListsItemRigthClick($event, index)" :tips="item.name" v-for="(item, index) in userLists" :key="item.id"
|
@contextmenu="handleListsItemRigthClick($event, index)" :aria-label="item.name" v-for="(item, index) in userLists" :key="item.id" :aria-selected="defaultList.id == listId"
|
||||||
>
|
>
|
||||||
<span :class="$style.listsLabel" @click="handleListToggle(item.id, index + 2)">{{item.name}}</span>
|
<span :class="$style.listsLabel" @click="handleListToggle(item.id, index + 2)">{{item.name}}</span>
|
||||||
<input class="key-bind" :class="$style.listsInput" @contextmenu.stop type="text"
|
<input class="key-bind" :class="$style.listsInput" @contextmenu.stop type="text"
|
||||||
@keyup.enter="handleListsSave(index, $event)" @blur="handleListsSave(index, $event)" :value="item.name" :placeholder="item.name"/>
|
@keyup.enter="handleListsSave(index, $event)" @blur="handleListsSave(index, $event)" :value="item.name" :placeholder="item.name"/>
|
||||||
</li>
|
</li>
|
||||||
<transition enter-active-class="animated-fast slideInLeft" leave-active-class="animated-fast fadeOut" @after-leave="handleListsNewAfterLeave">
|
<transition enter-active-class="animated-fast slideInLeft" leave-active-class="animated-fast fadeOut" @after-leave="handleListsNewAfterLeave" @after-enter="$refs.dom_listsNewInput.focus()">
|
||||||
<li :class="[$style.listsItem, $style.listsNew, listsData.isNewLeave ? $style.newLeave : null]" v-if="listsData.isShowNewList">
|
<li :class="[$style.listsItem, $style.listsNew, listsData.isNewLeave ? $style.newLeave : null]" v-if="listsData.isShowNewList">
|
||||||
<input class="key-bind" :class="$style.listsInput" @contextmenu.stop ref="dom_listsNewInput" type="text" @keyup.enter="handleListsCreate"
|
<input class="key-bind" :class="$style.listsInput" @contextmenu.stop ref="dom_listsNewInput" type="text" @keyup.enter="handleListsCreate"
|
||||||
@blur="handleListsCreate" :placeholder="$t('lists__new_list_input')"/>
|
@blur="handleListsCreate" :placeholder="$t('lists__new_list_input')"/>
|
||||||
|
@ -263,9 +263,6 @@ export default {
|
||||||
},
|
},
|
||||||
handleShowNewList() {
|
handleShowNewList() {
|
||||||
this.listsData.isShowNewList = true
|
this.listsData.isShowNewList = true
|
||||||
this.$nextTick(() => {
|
|
||||||
this.$refs.dom_listsNewInput.focus()
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
handleListsNewAfterLeave() {
|
handleListsNewAfterLeave() {
|
||||||
this.listsData.isNewLeave = false
|
this.listsData.isNewLeave = false
|
||||||
|
|
|
@ -3,12 +3,12 @@
|
||||||
<!-- <div class="scroll" :class="$style.toc">
|
<!-- <div class="scroll" :class="$style.toc">
|
||||||
<ul :class="$style.tocList">
|
<ul :class="$style.tocList">
|
||||||
<li :class="$style.tocListItem" v-for="h2 in toc.list" :key="h2.id">
|
<li :class="$style.tocListItem" v-for="h2 in toc.list" :key="h2.id">
|
||||||
<h2 :class="[$style.tocH2, toc.activeId == h2.id ? $style.active : null]" :tips="h2.title">
|
<h2 :class="[$style.tocH2, toc.activeId == h2.id ? $style.active : null]" :aria-label="h2.title">
|
||||||
<a :href="'#' + h2.id" @click.stop="toc.activeId = h2.id">{{h2.title}}</a>
|
<a :href="'#' + h2.id" @click.stop="toc.activeId = h2.id">{{h2.title}}</a>
|
||||||
</h2>
|
</h2>
|
||||||
<ul :class="$style.tocList" v-if="h2.children.length">
|
<ul :class="$style.tocList" v-if="h2.children.length">
|
||||||
<li :class="$style.tocSubListItem" v-for="h3 in h2.children" :key="h3.id">
|
<li :class="$style.tocSubListItem" v-for="h3 in h2.children" :key="h3.id">
|
||||||
<h3 :class="[$style.tocH3, toc.activeId == h3.id ? $style.active : null]" :tips="h3.title">
|
<h3 :class="[$style.tocH3, toc.activeId == h3.id ? $style.active : null]" :aria-label="h3.title">
|
||||||
<a :href="'#' + h3.id" @click.stop="toc.activeId = h3.id">{{h3.title}}</a>
|
<a :href="'#' + h3.id" @click.stop="toc.activeId = h3.id">{{h3.title}}</a>
|
||||||
</h3>
|
</h3>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -3,15 +3,15 @@ dt#about {{$t('setting__about')}}
|
||||||
dd
|
dd
|
||||||
p.small
|
p.small
|
||||||
| 本软件完全免费,代码已开源,开源地址:
|
| 本软件完全免费,代码已开源,开源地址:
|
||||||
span.hover.underline(:tips="$t('setting__click_open')" @click="openUrl('https://github.com/lyswhut/lx-music-desktop#readme')") https://github.com/lyswhut/lx-music-desktop
|
span.hover.underline(:aria-label="$t('setting__click_open')" @click="openUrl('https://github.com/lyswhut/lx-music-desktop#readme')") https://github.com/lyswhut/lx-music-desktop
|
||||||
p.small
|
p.small
|
||||||
| 最新版网盘下载地址(网盘内有Windows、MAC版):
|
| 最新版网盘下载地址(网盘内有Windows、MAC版):
|
||||||
span.hover.underline(:tips="$t('setting__click_open')" @click="openUrl('https://www.lanzoui.com/b0bf2cfa/')") 网盘地址
|
span.hover.underline(:aria-label="$t('setting__click_open')" @click="openUrl('https://www.lanzoui.com/b0bf2cfa/')") 网盘地址
|
||||||
| 密码:
|
| 密码:
|
||||||
span.hover(:tips="$t('setting__click_copy')" @click="clipboardWriteText('glqw')") glqw
|
span.hover(:aria-label="$t('setting__click_copy')" @click="clipboardWriteText('glqw')") glqw
|
||||||
p.small
|
p.small
|
||||||
| 软件的常见问题可转至:
|
| 软件的常见问题可转至:
|
||||||
span.hover.underline(:tips="$t('setting__click_open')" @click="openUrl('https://github.com/lyswhut/lx-music-desktop/blob/master/FAQ.md')") 常见问题
|
span.hover.underline(:aria-label="$t('setting__click_open')" @click="openUrl('https://github.com/lyswhut/lx-music-desktop/blob/master/FAQ.md')") 常见问题
|
||||||
p.small
|
p.small
|
||||||
strong 本软件没有客服
|
strong 本软件没有客服
|
||||||
| ,但我们整理了一些常见的使用问题,
|
| ,但我们整理了一些常见的使用问题,
|
||||||
|
@ -19,11 +19,11 @@ dd
|
||||||
| 地阅读常见问题后,
|
| 地阅读常见问题后,
|
||||||
p.small
|
p.small
|
||||||
| 仍有问题可加企鹅群
|
| 仍有问题可加企鹅群
|
||||||
span.hover(:tips="$t('setting__click_open')" @click="openUrl('https://jq.qq.com/?_wv=1027&k=51ECeq2')") 830125506
|
span.hover(:aria-label="$t('setting__click_open')" @click="openUrl('https://jq.qq.com/?_wv=1027&k=51ECeq2')") 830125506
|
||||||
| 反馈
|
| 反馈
|
||||||
strong (为免满人,无事勿加,入群先看群公告)
|
strong (为免满人,无事勿加,入群先看群公告)
|
||||||
| ,或到 GitHub 提交
|
| ,或到 GitHub 提交
|
||||||
span.hover.underline(:tips="$t('setting__click_open')" @click="openUrl('https://github.com/lyswhut/lx-music-desktop/issues')") issue
|
span.hover.underline(:aria-label="$t('setting__click_open')" @click="openUrl('https://github.com/lyswhut/lx-music-desktop/issues')") issue
|
||||||
|
|
||||||
br
|
br
|
||||||
p.small
|
p.small
|
||||||
|
@ -32,7 +32,7 @@ dd
|
||||||
| ,
|
| ,
|
||||||
p
|
p
|
||||||
| 可以加入测试企鹅群
|
| 可以加入测试企鹅群
|
||||||
span.hover(:tips="$t('setting__click_open')" @click="openUrl('https://qm.qq.com/cgi-bin/qm/qr?k=zR6aYosQoKb07g4FGFZdO9n9zL1dhFpE&jump_from=webapi')") 768786588
|
span.hover(:aria-label="$t('setting__click_open')" @click="openUrl('https://qm.qq.com/cgi-bin/qm/qr?k=zR6aYosQoKb07g4FGFZdO9n9zL1dhFpE&jump_from=webapi')") 768786588
|
||||||
| ,注意:测试版的功可能会不稳定,
|
| ,注意:测试版的功可能会不稳定,
|
||||||
strong 打算潜水的勿加
|
strong 打算潜水的勿加
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ dd
|
||||||
| 你已签署本软件的
|
| 你已签署本软件的
|
||||||
base-btn(min @click="handleShowPact") 许可协议
|
base-btn(min @click="handleShowPact") 许可协议
|
||||||
| ,协议的在线版本在
|
| ,协议的在线版本在
|
||||||
strong.hover.underline(:tips="$t('setting__click_open')" @click="openUrl('https://github.com/lyswhut/lx-music-desktop#%E9%A1%B9%E7%9B%AE%E5%8D%8F%E8%AE%AE')") 这里
|
strong.hover.underline(:aria-label="$t('setting__click_open')" @click="openUrl('https://github.com/lyswhut/lx-music-desktop#%E9%A1%B9%E7%9B%AE%E5%8D%8F%E8%AE%AE')") 这里
|
||||||
| 。
|
| 。
|
||||||
br
|
br
|
||||||
|
|
||||||
|
|
|
@ -4,10 +4,10 @@ dd
|
||||||
h3#basic_theme {{$t('setting__basic_theme')}}
|
h3#basic_theme {{$t('setting__basic_theme')}}
|
||||||
div
|
div
|
||||||
ul(:class="$style.theme")
|
ul(:class="$style.theme")
|
||||||
li(v-for="theme in themes.list" :key="theme.id" :tips="$t('theme_' + theme.className)" @click="currentStting.theme.id = theme.id" :class="[theme.className, {[$style.active]: themes.active == theme.id}]")
|
li(v-for="theme in themes.list" :key="theme.id" :aria-label="$t('theme_' + theme.className)" @click="currentStting.theme.id = theme.id" :class="[theme.className, {[$style.active]: themes.active == theme.id}]")
|
||||||
div(:class="$style.bg")
|
div(:class="$style.bg")
|
||||||
label {{$t('theme_' + theme.className)}}
|
label {{$t('theme_' + theme.className)}}
|
||||||
li(:tips="$t('theme_auto_tip')" @click="handleSetThemeAuto" @contextmenu="isShowThemeSelectorModal = true" :class="[$style.auto, themeClassName, {[$style.active]: themes.active == 'auto'}]")
|
li(:aria-label="$t('theme_auto_tip')" @click="handleSetThemeAuto" @contextmenu="isShowThemeSelectorModal = true" :class="[$style.auto, themeClassName, {[$style.active]: themes.active == 'auto'}]")
|
||||||
div(:class="$style.bg")
|
div(:class="$style.bg")
|
||||||
div(:class="$style.bgContent")
|
div(:class="$style.bgContent")
|
||||||
div(:class="[$style.light, themes.lightTheme.className]")
|
div(:class="[$style.light, themes.lightTheme.className]")
|
||||||
|
@ -25,7 +25,7 @@ dd
|
||||||
p.gap-top
|
p.gap-top
|
||||||
base-btn.btn(min @click="isShowPlayTimeoutModal = true") {{$t('setting__play_timeout')}} {{ timeLabel ? ` (${timeLabel})` : '' }}
|
base-btn.btn(min @click="isShowPlayTimeoutModal = true") {{$t('setting__play_timeout')}} {{ timeLabel ? ` (${timeLabel})` : '' }}
|
||||||
|
|
||||||
dd(:tips="$t('setting__basic_source_title')")
|
dd(:aria-label="$t('setting__basic_source_title')")
|
||||||
h3#basic_source {{$t('setting__basic_source')}}
|
h3#basic_source {{$t('setting__basic_source')}}
|
||||||
div
|
div
|
||||||
.gap-top(v-for="item in apiSources" :key="item.id")
|
.gap-top(v-for="item in apiSources" :key="item.id")
|
||||||
|
@ -34,19 +34,19 @@ dd(:tips="$t('setting__basic_source_title')")
|
||||||
p.gap-top
|
p.gap-top
|
||||||
base-btn.btn(min @click="isShowUserApiModal = true") {{$t('setting__basic_source_user_api_btn')}}
|
base-btn.btn(min @click="isShowUserApiModal = true") {{$t('setting__basic_source_user_api_btn')}}
|
||||||
|
|
||||||
dd(:tips="$t('setting__basic_window_size_title')")
|
dd(:aria-label="$t('setting__basic_window_size_title')")
|
||||||
h3#basic_window_size {{$t('setting__basic_window_size')}}
|
h3#basic_window_size {{$t('setting__basic_window_size')}}
|
||||||
div
|
div
|
||||||
base-checkbox.gap-left(v-for="(item, index) in windowSizeList" :id="`setting_window_size_${item.id}`" name="setting_window_size"
|
base-checkbox.gap-left(v-for="(item, index) in windowSizeList" :id="`setting_window_size_${item.id}`" name="setting_window_size"
|
||||||
need v-model="currentStting.windowSizeId" :disabled="isFullscreen" :value="item.id" :label="$t('setting__basic_window_size_' + item.name)" :key="item.id")
|
need v-model="currentStting.windowSizeId" :disabled="isFullscreen" :value="item.id" :label="$t('setting__basic_window_size_' + item.name)" :key="item.id")
|
||||||
|
|
||||||
dd(:tips="$t('setting__basic_lang_title')")
|
dd(:aria-label="$t('setting__basic_lang_title')")
|
||||||
h3#basic_lang {{$t('setting__basic_lang')}}
|
h3#basic_lang {{$t('setting__basic_lang')}}
|
||||||
div
|
div
|
||||||
base-checkbox.gap-left(v-for="item in langList" :key="item.locale" :id="`setting_lang_${item.locale}`" name="setting_lang"
|
base-checkbox.gap-left(v-for="item in langList" :key="item.locale" :id="`setting_lang_${item.locale}`" name="setting_lang"
|
||||||
need v-model="currentStting.langId" :value="item.locale" :label="item.name")
|
need v-model="currentStting.langId" :value="item.locale" :label="item.name")
|
||||||
|
|
||||||
dd(:tips="$t('setting__basic_sourcename_title')")
|
dd(:aria-label="$t('setting__basic_sourcename_title')")
|
||||||
h3#basic_sourcename {{$t('setting__basic_sourcename')}}
|
h3#basic_sourcename {{$t('setting__basic_sourcename')}}
|
||||||
div
|
div
|
||||||
base-checkbox.gap-left(v-for="item in sourceNameTypes" :key="item.id" :id="`setting_abasic_sourcename_${item.id}`"
|
base-checkbox.gap-left(v-for="item in sourceNameTypes" :key="item.id" :id="`setting_abasic_sourcename_${item.id}`"
|
||||||
|
|
|
@ -2,22 +2,22 @@
|
||||||
dt#download {{$t('setting__download')}}
|
dt#download {{$t('setting__download')}}
|
||||||
dd
|
dd
|
||||||
base-checkbox(id="setting_download_enable" v-model="currentStting.download.enable" :label="$t('setting__download_enable')")
|
base-checkbox(id="setting_download_enable" v-model="currentStting.download.enable" :label="$t('setting__download_enable')")
|
||||||
dd(:tips="$t('setting__download_path_title')")
|
dd(:aria-label="$t('setting__download_path_title')")
|
||||||
h3#download_path {{$t('setting__download_path')}}
|
h3#download_path {{$t('setting__download_path')}}
|
||||||
div
|
div
|
||||||
p
|
p
|
||||||
| {{$t('setting__download_path_label')}}
|
| {{$t('setting__download_path_label')}}
|
||||||
span.auto-hidden.hover(:class="$style.savePath" @click="openDirInExplorer(currentStting.download.savePath)" :tips="$t('setting__download_path_open_label')") {{currentStting.download.savePath}}
|
span.auto-hidden.hover(:class="$style.savePath" @click="openDirInExplorer(currentStting.download.savePath)" :aria-label="$t('setting__download_path_open_label')") {{currentStting.download.savePath}}
|
||||||
p
|
p
|
||||||
base-btn.btn(min @click="handleChangeSavePath") {{$t('setting__download_path_change_btn')}}
|
base-btn.btn(min @click="handleChangeSavePath") {{$t('setting__download_path_change_btn')}}
|
||||||
dd
|
dd
|
||||||
h3#download_use_other_source
|
h3#download_use_other_source
|
||||||
| {{$t('setting__download_use_other_source')}}
|
| {{$t('setting__download_use_other_source')}}
|
||||||
svg-icon(class="help-icon" name="help-circle-outline" :tips="$t('setting__download_use_other_source_tip')")
|
svg-icon(class="help-icon" name="help-circle-outline" :aria-label="$t('setting__download_use_other_source_tip')")
|
||||||
div
|
div
|
||||||
base-checkbox(id="setting_download_isUseOtherSource" v-model="currentStting.download.isUseOtherSource" :label="$t('setting__is_enable')")
|
base-checkbox(id="setting_download_isUseOtherSource" v-model="currentStting.download.isUseOtherSource" :label="$t('setting__is_enable')")
|
||||||
div
|
div
|
||||||
dd(:tips="$t('setting__download_name_title')")
|
dd(:aria-label="$t('setting__download_name_title')")
|
||||||
h3#download_name {{$t('setting__download_name')}}
|
h3#download_name {{$t('setting__download_name')}}
|
||||||
div
|
div
|
||||||
base-checkbox.gap-left(:id="`setting_download_musicName_${item.value}`" name="setting_download_musicName" :value="item.value" :key="item.value" need
|
base-checkbox.gap-left(:id="`setting_download_musicName_${item.value}`" name="setting_download_musicName" :value="item.value" :key="item.value" need
|
||||||
|
@ -28,7 +28,7 @@ dd
|
||||||
base-checkbox(id="setting_download_isEmbedPic" v-model="currentStting.download.isEmbedPic" :label="$t('setting__download_embed_pic')")
|
base-checkbox(id="setting_download_isEmbedPic" v-model="currentStting.download.isEmbedPic" :label="$t('setting__download_embed_pic')")
|
||||||
.gap-top
|
.gap-top
|
||||||
base-checkbox(id="setting_download_isEmbedLyric" v-model="currentStting.download.isEmbedLyric" :label="$t('setting__download_embed_lyric')")
|
base-checkbox(id="setting_download_isEmbedLyric" v-model="currentStting.download.isEmbedLyric" :label="$t('setting__download_embed_lyric')")
|
||||||
dd(:tips="$t('setting__download_lyric_title')")
|
dd(:aria-label="$t('setting__download_lyric_title')")
|
||||||
h3#download_lyric {{$t('setting__download_lyric')}}
|
h3#download_lyric {{$t('setting__download_lyric')}}
|
||||||
div
|
div
|
||||||
base-checkbox(id="setting_download_isDownloadLrc" v-model="currentStting.download.isDownloadLrc" :label="$t('setting__is_enable')")
|
base-checkbox(id="setting_download_isDownloadLrc" v-model="currentStting.download.isDownloadLrc" :label="$t('setting__is_enable')")
|
||||||
|
|
|
@ -7,7 +7,7 @@ dd
|
||||||
base-checkbox(id="setting_list_scroll_enable" v-model="currentStting.list.isSaveScrollLocation" :label="$t('setting__list_scroll')")
|
base-checkbox(id="setting_list_scroll_enable" v-model="currentStting.list.isSaveScrollLocation" :label="$t('setting__list_scroll')")
|
||||||
.gap-top
|
.gap-top
|
||||||
base-checkbox(id="setting_list_clickAction_enable" v-model="currentStting.list.isClickPlayList" :label="$t('setting__list_click_action')")
|
base-checkbox(id="setting_list_clickAction_enable" v-model="currentStting.list.isClickPlayList" :label="$t('setting__list_click_action')")
|
||||||
dd(:tips="$t('setting__basic_sourcename_title')")
|
dd(:aria-label="$t('setting__basic_sourcename_title')")
|
||||||
h3#list_addMusicLocationType {{$t('setting__list_add_music_location_type')}}
|
h3#list_addMusicLocationType {{$t('setting__list_add_music_location_type')}}
|
||||||
div
|
div
|
||||||
base-checkbox.gap-left(id="setting_list_add_music_location_type_top"
|
base-checkbox.gap-left(id="setting_list_add_music_location_type_top"
|
||||||
|
|
|
@ -8,7 +8,7 @@ dd
|
||||||
dd
|
dd
|
||||||
h3#other_resource_cache
|
h3#other_resource_cache
|
||||||
| {{$t('setting__other_resource_cache')}}
|
| {{$t('setting__other_resource_cache')}}
|
||||||
svg-icon(class="help-icon" name="help-circle-outline" :tips="$t('setting__other_resource_cache_tip')")
|
svg-icon(class="help-icon" name="help-circle-outline" :aria-label="$t('setting__other_resource_cache_tip')")
|
||||||
div
|
div
|
||||||
p
|
p
|
||||||
| {{$t('setting__other_resource_cache_label')}}
|
| {{$t('setting__other_resource_cache_label')}}
|
||||||
|
@ -18,7 +18,7 @@ dd
|
||||||
dd
|
dd
|
||||||
h3#other_play_list_cache
|
h3#other_play_list_cache
|
||||||
| {{$t('setting__other_play_list_cache')}}
|
| {{$t('setting__other_play_list_cache')}}
|
||||||
svg-icon(class="help-icon" name="help-circle-outline" :tips="$t('setting__other_play_list_cache_tip')")
|
svg-icon(class="help-icon" name="help-circle-outline" :aria-label="$t('setting__other_play_list_cache_tip')")
|
||||||
|
|
||||||
div
|
div
|
||||||
base-btn.btn(min :disabled="isDisabledListCacheClear" @click="clearListCache") {{$t('setting__other_play_list_cache_clear_btn')}}
|
base-btn.btn(min :disabled="isDisabledListCacheClear" @click="clearListCache") {{$t('setting__other_play_list_cache_clear_btn')}}
|
||||||
|
|
|
@ -15,7 +15,7 @@ dd
|
||||||
base-checkbox(id="setting_player_showTaskProgess" v-model="currentStting.player.isShowTaskProgess" :label="$t('setting__play_task_bar')")
|
base-checkbox(id="setting_player_showTaskProgess" v-model="currentStting.player.isShowTaskProgess" :label="$t('setting__play_task_bar')")
|
||||||
.gap-top
|
.gap-top
|
||||||
base-checkbox(id="setting_player_isMediaDeviceRemovedStopPlay" v-model="currentStting.player.isMediaDeviceRemovedStopPlay" :label="$t('setting__play_mediaDevice_remove_stop_play')")
|
base-checkbox(id="setting_player_isMediaDeviceRemovedStopPlay" v-model="currentStting.player.isMediaDeviceRemovedStopPlay" :label="$t('setting__play_mediaDevice_remove_stop_play')")
|
||||||
dd(:tips="$t('setting__play_mediaDevice_title')")
|
dd(:aria-label="$t('setting__play_mediaDevice_title')")
|
||||||
h3#play_mediaDevice {{$t('setting__play_mediaDevice')}}
|
h3#play_mediaDevice {{$t('setting__play_mediaDevice')}}
|
||||||
div
|
div
|
||||||
base-selection.gap-left(:list="mediaDevices" v-model="mediaDeviceId" @change="handleMediaDeviceIdChnage" item-key="deviceId" item-name="label")
|
base-selection.gap-left(:list="mediaDevices" v-model="mediaDeviceId" @change="handleMediaDeviceIdChnage" item-key="deviceId" item-name="label")
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
dt#sync
|
dt#sync
|
||||||
| {{$t('setting__sync')}}
|
| {{$t('setting__sync')}}
|
||||||
button(class="help-btn" @click="openUrl('https://github.com/lyswhut/lx-music-desktop/blob/master/FAQ.md#%E5%90%8C%E6%AD%A5%E5%8A%9F%E8%83%BD%E7%9A%84%E4%BD%BF%E7%94%A8%E5%AE%9E%E9%AA%8C%E6%80%A7%E9%A6%96%E6%AC%A1%E4%BD%BF%E7%94%A8%E5%89%8D%E5%BB%BA%E8%AE%AE%E5%85%88%E5%A4%87%E4%BB%BD%E4%B8%80%E6%AC%A1%E5%88%97%E8%A1%A8')" :tips="$t('setting__sync_tip')")
|
button(class="help-btn" @click="openUrl('https://github.com/lyswhut/lx-music-desktop/blob/master/FAQ.md#%E5%90%8C%E6%AD%A5%E5%8A%9F%E8%83%BD%E7%9A%84%E4%BD%BF%E7%94%A8%E5%AE%9E%E9%AA%8C%E6%80%A7%E9%A6%96%E6%AC%A1%E4%BD%BF%E7%94%A8%E5%89%8D%E5%BB%BA%E8%AE%AE%E5%85%88%E5%A4%87%E4%BB%BD%E4%B8%80%E6%AC%A1%E5%88%97%E8%A1%A8')" :aria-label="$t('setting__sync_tip')")
|
||||||
svg-icon(name="help-circle-outline")
|
svg-icon(name="help-circle-outline")
|
||||||
dd
|
dd
|
||||||
base-checkbox(id="setting_sync_enable" v-model="currentStting.sync.enable" :label="syncEnableTitle")
|
base-checkbox(id="setting_sync_enable" v-model="currentStting.sync.enable" :label="syncEnableTitle")
|
||||||
|
|
|
@ -6,13 +6,13 @@ material-modal(:show="modelValue" bg-close @close="$emit('update:modelValue', fa
|
||||||
div
|
div
|
||||||
h3 {{$t('theme_selector_modal__light_title')}}
|
h3 {{$t('theme_selector_modal__light_title')}}
|
||||||
ul(:class="$style.theme")
|
ul(:class="$style.theme")
|
||||||
li(v-for="theme in themeLights" :key="theme.id" :tips="$t('theme_' + theme.className)" @click="currentStting.theme.lightId = theme.id" :class="[theme.className, {[$style.active]: lightId == theme.id}]")
|
li(v-for="theme in themeLights" :key="theme.id" :aria-label="$t('theme_' + theme.className)" @click="currentStting.theme.lightId = theme.id" :class="[theme.className, {[$style.active]: lightId == theme.id}]")
|
||||||
span
|
span
|
||||||
label {{$t('theme_' + theme.className)}}
|
label {{$t('theme_' + theme.className)}}
|
||||||
div
|
div
|
||||||
h3 {{$t('theme_selector_modal__dark_title')}}
|
h3 {{$t('theme_selector_modal__dark_title')}}
|
||||||
ul(:class="$style.theme")
|
ul(:class="$style.theme")
|
||||||
li(v-for="theme in themeDarks" :key="theme.id" :tips="$t('theme_' + theme.className)" @click="currentStting.theme.darkId = theme.id" :class="[theme.className, {[$style.active]: darkId == theme.id}]")
|
li(v-for="theme in themeDarks" :key="theme.id" :aria-label="$t('theme_' + theme.className)" @click="currentStting.theme.darkId = theme.id" :class="[theme.className, {[$style.active]: darkId == theme.id}]")
|
||||||
span
|
span
|
||||||
label {{$t('theme_' + theme.className)}}
|
label {{$t('theme_' + theme.className)}}
|
||||||
div(:class="$style.note")
|
div(:class="$style.note")
|
||||||
|
|
|
@ -9,7 +9,7 @@ material-modal(:show="modelValue" bg-close @close="handleClose" teleport="#view"
|
||||||
p {{api.description}}
|
p {{api.description}}
|
||||||
div
|
div
|
||||||
base-checkbox(:class="$style.checkbox" :id="`user_api_${api.id}`" v-model="api.allowShowUpdateAlert" @change="handleChangeAllowUpdateAlert(api, $event)" :label="$t('user_api__allow_show_update_alert')")
|
base-checkbox(:class="$style.checkbox" :id="`user_api_${api.id}`" v-model="api.allowShowUpdateAlert" @change="handleChangeAllowUpdateAlert(api, $event)" :label="$t('user_api__allow_show_update_alert')")
|
||||||
base-btn(:class="$style.listBtn" outline :tips="$t('user_api__btn_remove')" @click.stop="handleRemove(index)")
|
base-btn(:class="$style.listBtn" outline :aria-label="$t('user_api__btn_remove')" @click.stop="handleRemove(index)")
|
||||||
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' viewBox='0 0 212.982 212.982' space='preserve' v-once)
|
svg(version='1.1' xmlns='http://www.w3.org/2000/svg' xlink='http://www.w3.org/1999/xlink' viewBox='0 0 212.982 212.982' space='preserve' v-once)
|
||||||
use(xlink:href='#icon-delete')
|
use(xlink:href='#icon-delete')
|
||||||
div(v-else :class="$style.content")
|
div(v-else :class="$style.content")
|
||||||
|
@ -17,7 +17,7 @@ material-modal(:show="modelValue" bg-close @close="handleClose" teleport="#view"
|
||||||
div(:class="$style.note")
|
div(:class="$style.note")
|
||||||
p(:class="[$style.ruleLink]")
|
p(:class="[$style.ruleLink]")
|
||||||
| {{$t('user_api__readme')}}
|
| {{$t('user_api__readme')}}
|
||||||
span.hover.underline(@click="handleOpenUrl('https://github.com/lyswhut/lx-music-desktop/blob/master/FAQ.md#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%BA%90%E8%84%9A%E6%9C%AC%E7%BC%96%E5%86%99%E8%AF%B4%E6%98%8E')" tips="https://github.com/lyswhut/lx-music-desktop/blob/master/FAQ.md") FAQ.md
|
span.hover.underline(@click="handleOpenUrl('https://github.com/lyswhut/lx-music-desktop/blob/master/FAQ.md#%E8%87%AA%E5%AE%9A%E4%B9%89%E6%BA%90%E8%84%9A%E6%9C%AC%E7%BC%96%E5%86%99%E8%AF%B4%E6%98%8E')" aria-label="https://github.com/lyswhut/lx-music-desktop/blob/master/FAQ.md") FAQ.md
|
||||||
p {{$t('user_api__note')}}
|
p {{$t('user_api__note')}}
|
||||||
div(:class="$style.footer")
|
div(:class="$style.footer")
|
||||||
base-btn(:class="$style.footerBtn" @click="handleImport") {{$t('user_api__btn_import')}}
|
base-btn(:class="$style.footerBtn" @click="handleImport") {{$t('user_api__btn_import')}}
|
||||||
|
|
Loading…
Reference in New Issue