@@ -162,6 +169,8 @@ const {
showTransl,
showRoma,
playCoverType,
+ justLyricArea,
+ lyricsBold,
} = storeToRefs(settings);
// 歌词滚动数据
@@ -331,7 +340,6 @@ onMounted(() => {
transform 0.35s ease-in-out;
.lrc-content {
font-size: 46px;
- font-weight: bold;
word-wrap: break-word;
// 逐字歌词部分样式
.lrc-text {
@@ -503,6 +511,9 @@ onMounted(() => {
}
}
}
+ &.custom-lrc {
+ font-family: var(--main-font-family-lyric) !important;
+ }
@media (max-width: 700px) {
:deep(.n-scrollbar-content) {
padding: 0 20px !important;
diff --git a/src/main.js b/src/main.js
index 94ec43ee..c201e752 100644
--- a/src/main.js
+++ b/src/main.js
@@ -15,8 +15,7 @@ const isElectron = checkPlatform.electron();
// 分设备添加字体
if (isElectron) {
- loadCSS(`${import.meta.env.BASE_URL}font/HarmonyOS_Sans_SC_Bold/result.css`);
- loadCSS(`${import.meta.env.BASE_URL}font/HarmonyOS_Sans_SC_Regular/result.css`);
+ loadCSS(`${import.meta.env.BASE_URL}font/font.css`);
} else {
loadCSS("https://s1.hdslb.com/bfs/static/jinkela/long/font/regular.css");
}
diff --git a/src/stores/siteSettings.js b/src/stores/siteSettings.js
index 70a0da74..449f18f0 100644
--- a/src/stores/siteSettings.js
+++ b/src/stores/siteSettings.js
@@ -14,6 +14,8 @@ const useSiteSettingsStore = defineStore("siteSettings", {
showSider: true, // 显示侧边栏
siderShowCover: false, // 侧边栏显示封面
autoCheckUpdates: true, // 自动检查更新
+ systemFonts: "HarmonyOS Sans", // 全局字体
+ justLyricArea: false, // 仅在歌词区域生效
// 主题部分
themeType: "dark",
themeAuto: false,
@@ -41,6 +43,7 @@ const useSiteSettingsStore = defineStore("siteSettings", {
lrcMousePause: false, // 鼠标移入歌词区域暂停滚动
lyricsFontSize: 46, // 歌词大小
lyricsBlur: false, // 歌词模糊
+ lyricsBold: true, // 歌词加粗
showYrc: true, // 是否显示逐字歌词
showYrcAnimation: true, // 是否显示逐字歌词动画
lyricsPosition: "left", // 歌词位置
@@ -52,6 +55,10 @@ const useSiteSettingsStore = defineStore("siteSettings", {
downloadMeta: true, // 同时下载元信息
downloadCover: true, // 同时下载封面
downloadLyrics: true, // 同时下载歌词
+ // 网络部分
+ proxyProtocol: "off", // 代理协议
+ proxyServe: "127.0.0.1", // 代理地址
+ proxyPort: 80, // 代理端口
};
},
getters: {},
@@ -62,6 +69,28 @@ const useSiteSettingsStore = defineStore("siteSettings", {
this.themeAuto = false;
$message.info(`已切换至${value === "light" ? "浅色" : "深色"}模式`, { showIcon: false });
},
+ // 更改系统字体
+ changeSystemFonts(font = this.systemFonts) {
+ this.systemFonts = font;
+ const root = document.documentElement;
+ if (!root) return false;
+ // 若仅歌词生效
+ if (this.justLyricArea) {
+ root.style.setProperty(
+ "--main-font-family-lyric",
+ `"${font}", "HarmonyOS_Regular", system-ui, -apple-system, sans-serif`,
+ );
+ root.style.setProperty(
+ "--main-font-family",
+ `"HarmonyOS Sans", "HarmonyOS_Regular", system-ui, -apple-system, sans-serif`,
+ );
+ return true;
+ }
+ root.style.setProperty(
+ "--main-font-family",
+ `"${font}", "HarmonyOS_Regular", system-ui, -apple-system, sans-serif`,
+ );
+ },
},
// 数据持久化
persist: [
diff --git a/src/style/main.scss b/src/style/main.scss
index 4a78a83c..5ab659e7 100644
--- a/src/style/main.scss
+++ b/src/style/main.scss
@@ -1,8 +1,12 @@
+:root {
+ --main-font-family: "HarmonyOS Sans", "HarmonyOS_Regular", system-ui, -apple-system, sans-serif;
+}
+
* {
margin: 0;
padding: 0;
- user-select: none;
- -webkit-user-drag: none;
+ user-select: none !important;
+ -webkit-user-drag: none !important;
}
html,
@@ -14,17 +18,7 @@ body,
}
body {
- font-family:
- "HarmonyOS Sans SC",
- "HarmonyOS_Regular",
- system-ui,
- -apple-system,
- sans-serif !important;
- &.webapp {
- #electron-bar {
- display: none !important;
- }
- }
+ font-family: var(--main-font-family) !important;
}
// n-text
@@ -110,6 +104,9 @@ body {
.n-tabs {
width: 100%;
--n-tab-border-radius: 6px !important;
+ .n-tabs-nav {
+ position: relative;
+ }
}
// n-modal
diff --git a/src/utils/request.js b/src/utils/request.js
index 4d7f1076..7f826c8f 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -27,6 +27,15 @@ axios.interceptors.request.use(
}
// 附加 realIP
if (!checkPlatform.electron()) request.params.realIP = "116.25.146.177";
+ // 附加代理
+ const proxy = JSON.parse(localStorage.getItem("siteSettings")).proxyProtocol;
+ if (proxy !== "off") {
+ const server = JSON.parse(localStorage.getItem("siteSettings")).proxyServe;
+ const port = parseInt(localStorage.getItem("siteSettings").proxyPort);
+ if (server && port) {
+ request.params.proxy = `${proxy}://${server}:${port}`;
+ }
+ }
// 发送请求
return request;
},
diff --git a/src/views/Setting/download.vue b/src/views/Setting/download.vue
new file mode 100644
index 00000000..b7272b8d
--- /dev/null
+++ b/src/views/Setting/download.vue
@@ -0,0 +1,57 @@
+
+
+
下载
+
+
+ 默认下载文件夹
+ {{ downloadPath || "不设置则会每次选择保存位置" }}
+
+
+
+
+ 清除
+
+
+
+ 更改
+
+
+
+
+
+ 同时下载歌曲元信息
+ 为当前下载歌曲附加封面及歌词等元信息
+
+
+
+
+ 下载歌曲时同时下载封面
+
+
+
+ 下载歌曲时同时下载歌词
+
+
+
+
+
+
diff --git a/src/views/Setting/general.vue b/src/views/Setting/general.vue
new file mode 100644
index 00000000..ae2514f7
--- /dev/null
+++ b/src/views/Setting/general.vue
@@ -0,0 +1,157 @@
+
+
+
+
常规
+
+ 明暗模式
+
+
+
+ 明暗模式是否跟随系统
+ {
+ if (val) themeType = osThemeRef;
+ }
+ "
+ />
+
+
+
+ 开启侧边栏
+ 将导航栏放于侧边显示,可展开或收起
+
+
+
+
+
+ 侧边栏展示封面
+ 侧边栏歌单是否展示歌单封面
+
+
+
+
+ 显示搜索历史
+
+
+
+
+ 自动签到
+ 在每日首次开启软件时自动签到
+
+
+
+
+
+
+ 全局动态取色
+
+ 开发中
+
+
+
+
+
+
+
+
主题色是否跟随封面,目前感觉不好看
+
+
+
+
+
+
+ 全局动态取色类别
+
+ 开发中
+
+
+
+
+
+
+
+
将在下一首播放或刷新时生效,不建议更改
+
+
+
+
+
+
+
diff --git a/src/views/Setting/index.vue b/src/views/Setting/index.vue
index 707c8bae..8372bbeb 100644
--- a/src/views/Setting/index.vue
+++ b/src/views/Setting/index.vue
@@ -37,662 +37,45 @@
@scroll="allSetScroll"
>
-
-
常规
-
- 明暗模式
-
-
-
- 明暗模式是否跟随系统
- {
- if (val) themeType = osThemeRef;
- }
- "
- />
-
-
-
- 开启侧边栏
- 将导航栏放于侧边显示,可展开或收起
-
-
-
-
-
- 侧边栏展示封面
- 侧边栏歌单是否展示歌单封面
-
-
-
-
- 显示搜索历史
-
-
-
-
- 自动签到
- 在每日首次开启软件时自动签到
-
-
-
-
-
-
- 全局动态取色
-
- 开发中
-
-
-
-
-
-
-
-
主题色是否跟随封面,目前感觉不好看
-
-
-
-
-
-
- 全局动态取色类别
-
- 开发中
-
-
-
-
-
-
-
-
将在下一首播放或刷新时生效,不建议更改
-
-
-
-
+
-
-
系统
-
- 关闭软件时
-
-
-
- 每次关闭前都进行提醒
-
-
-
- 任务栏显示歌曲播放进度
-
-
-
-
- 自动检查更新
- 在开启软件时自动检查更新
-
-
-
-
-
-
系统
-
- 该设置项为桌面端独占功能
-
-
+
-
-
播放
-
-
- 启动时自动播放
-
- {{ checkPlatform.electron() ? "程序启动时自动播放上次歌曲" : "客户端独占功能" }}
-
-
-
-
-
-
- 记忆上次播放位置
- 与自动播放相冲突,已禁用
-
-
-
-
-
- 音乐资源自动缓存
- 可能会造成加载缓慢,将在下一首播放或刷新时生效
-
-
-
-
- 音乐渐入渐出
-
-
-
-
- 播放全部搜索歌曲
-
- 在播放搜索页面上的歌曲时,是否同时播放所有搜索结果中的歌曲
-
-
-
-
-
-
- 在线播放音质
-
- {{ songLevelData[songLevel].tip }}
-
-
-
-
-
-
- 底栏歌词显示
- 是否在播放时将歌手信息更改为歌词
-
-
-
-
- 显示播放列表歌曲数量
-
-
-
-
- 播放器样式
- 播放器左侧区域样式
-
-
-
-
-
- 播放背景样式
-
- {{
- playerBackgroundType === "animation"
- ? "流体效果,较消耗性能,请谨慎开启"
- : playerBackgroundType === "blur"
- ? "将封面模糊处理为背景"
- : "提取封面主色为渐变色"
- }}
-
-
-
-
-
-
- 显示前奏倒计时
- 部分歌曲前奏可能存在显示错误
-
-
-
-
-
- 尝试替换无法播放的歌曲
-
- {{ checkPlatform.electron() ? "可能会造成音乐与原曲不符" : "客户端独占功能" }}
-
-
-
-
-
-
-
- 显示音乐频谱
-
- 开发中
-
-
-
-
-
-
-
-
- {{
- showSpectrums
- ? "开启音乐频谱会极大影响性能,如遇问题请关闭"
- : "是否在播放器底部显示音乐频谱"
- }}
-
-
-
-
-
+
-
-
歌词
-
-
- 歌词文本大小
-
- 我是一句歌词
-
-
-
-
-
-
- 智能暂停滚动
- 鼠标移入歌词区域是否暂停滚动
-
-
-
-
-
- 歌词位置
- 歌词的默认垂直位置
-
-
-
-
-
- 歌词滚动位置
- 歌词高亮时所处的位置
-
-
-
-
-
-
- 显示逐字歌词
-
- 开发中
-
-
-
-
-
-
-
-
是否在具有逐字歌词时显示
-
-
-
-
-
-
- 显示逐字歌词动画
-
- 开发中
-
-
-
-
-
-
-
-
可能会造成卡顿等性能问题,建议显卡为 GTX 2060 及以上
-
-
-
-
-
- 显示歌词翻译
- 是否在具有翻译歌词时显示
-
-
-
-
-
- 显示歌词音译
- 是否在具有音译歌词时显示
-
-
-
-
-
- 歌词自动聚焦
- 是否聚焦显示当前播放行,其他行将模糊显示
-
-
-
-
+
-
-
下载
-
-
- 默认下载文件夹
- {{ downloadPath || "不设置则会每次选择保存位置" }}
-
-
-
-
- 清除
-
-
-
- 更改
-
-
-
-
-
- 同时下载歌曲元信息
- 为当前下载歌曲附加封面及歌词等元信息
-
-
-
-
- 下载歌曲时同时下载封面
-
-
-
- 下载歌曲时同时下载歌词
-
-
-
+
-
-
其他
-
- 显示 GitHub 仓库按钮
-
-
-
-
- 默认加载数量
- 在部分列表页面显示几条数据
-
-
-
-
-
- 程序重置
- 若程序显示异常或出现问题时可尝试此操作
-
- 重置
-
-
+