2023-05-14 16:30:24 +00:00
|
|
|
|
<!-- 设置面板组件,展示整个论坛的设置面板 -->
|
2023-05-13 06:05:05 +00:00
|
|
|
|
<script setup lang="ts">
|
2023-05-14 16:30:24 +00:00
|
|
|
|
// 引入图标字体
|
2023-05-13 06:05:05 +00:00
|
|
|
|
import { Icon } from '@iconify/vue'
|
2023-05-14 16:30:24 +00:00
|
|
|
|
// 引入看板娘组件
|
2023-05-13 06:05:05 +00:00
|
|
|
|
import Loli from './components/Loli.vue'
|
2023-05-14 16:30:24 +00:00
|
|
|
|
// 引入背景设置组件
|
2023-05-13 06:05:05 +00:00
|
|
|
|
import Background from './components/Background.vue'
|
2023-05-14 07:16:28 +00:00
|
|
|
|
// 导入设置面板 store
|
2023-05-29 09:18:38 +00:00
|
|
|
|
import { useKUNGalgameSettingsStore } from '@/store/modules/settings'
|
2023-05-14 07:16:28 +00:00
|
|
|
|
import { storeToRefs } from 'pinia'
|
2023-05-25 18:30:13 +00:00
|
|
|
|
// 导入 i18n
|
|
|
|
|
import { useI18n } from 'vue-i18n'
|
2023-05-30 10:59:54 +00:00
|
|
|
|
|
|
|
|
|
// 使用设置面板的 store
|
|
|
|
|
const settingsStore = useKUNGalgameSettingsStore()
|
|
|
|
|
const {
|
|
|
|
|
showKUNGalgamePanel,
|
|
|
|
|
showKUNGalgameMainPageWidth,
|
|
|
|
|
showKUNGalgameLanguage,
|
|
|
|
|
} = storeToRefs(settingsStore)
|
2023-05-25 18:30:13 +00:00
|
|
|
|
/*
|
|
|
|
|
* 网站的语言设置
|
|
|
|
|
*/
|
|
|
|
|
const { locale } = useI18n({ useScope: 'global' })
|
|
|
|
|
|
2023-05-30 10:59:54 +00:00
|
|
|
|
const handleChangeLanguage = () => {
|
|
|
|
|
locale.value = showKUNGalgameLanguage.value
|
2023-05-25 18:30:13 +00:00
|
|
|
|
}
|
2023-05-16 19:22:28 +00:00
|
|
|
|
|
2023-05-27 10:52:54 +00:00
|
|
|
|
/* 恢复所有设置为默认 */
|
2023-05-30 14:25:42 +00:00
|
|
|
|
const handleRecover = () => {
|
|
|
|
|
settingsStore.restoreSettings()
|
2023-05-14 07:16:28 +00:00
|
|
|
|
}
|
2023-05-13 06:05:05 +00:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<template>
|
2023-05-14 16:30:24 +00:00
|
|
|
|
<!-- 根元素 -->
|
2023-05-13 06:05:05 +00:00
|
|
|
|
<div class="root">
|
|
|
|
|
<div class="container">
|
|
|
|
|
<div class="title">
|
2023-05-26 14:08:01 +00:00
|
|
|
|
<span>{{ $t('header.settings.name') }}</span>
|
2023-05-19 18:23:25 +00:00
|
|
|
|
<span><Icon class="settings-icon" icon="uiw:setting-o" /></span>
|
2023-05-13 06:05:05 +00:00
|
|
|
|
</div>
|
|
|
|
|
<div class="mode">
|
2023-05-14 16:30:24 +00:00
|
|
|
|
<!-- 白天 / 黑夜模式切换 -->
|
2023-05-26 14:08:01 +00:00
|
|
|
|
<span>{{ $t('header.settings.mode') }}</span>
|
2023-05-13 06:05:05 +00:00
|
|
|
|
<div class="mode-container">
|
|
|
|
|
<li>
|
|
|
|
|
<Icon
|
|
|
|
|
class="sun"
|
|
|
|
|
icon="line-md:moon-filled-alt-to-sunny-filled-loop-transition"
|
|
|
|
|
/>
|
|
|
|
|
</li>
|
|
|
|
|
<li>
|
|
|
|
|
<Icon
|
|
|
|
|
class="moon"
|
|
|
|
|
icon="line-md:sunny-outline-to-moon-loop-transition"
|
2023-05-14 17:47:25 +00:00
|
|
|
|
/>
|
2023-05-13 06:05:05 +00:00
|
|
|
|
</li>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2023-05-20 16:16:15 +00:00
|
|
|
|
<div class="set-lang">
|
2023-05-26 14:08:01 +00:00
|
|
|
|
<span>{{ $t('header.settings.language') }}</span>
|
2023-05-30 10:59:54 +00:00
|
|
|
|
<select
|
|
|
|
|
class="select"
|
|
|
|
|
v-model="showKUNGalgameLanguage"
|
|
|
|
|
@change="handleChangeLanguage"
|
|
|
|
|
>
|
2023-05-20 16:16:15 +00:00
|
|
|
|
<option value="en">English</option>
|
|
|
|
|
<option value="zh">中文</option>
|
|
|
|
|
</select>
|
2023-05-20 15:17:46 +00:00
|
|
|
|
</div>
|
2023-05-13 06:05:05 +00:00
|
|
|
|
<div>
|
2023-05-14 16:30:24 +00:00
|
|
|
|
<!-- 设置主页的宽度 -->
|
2023-05-20 16:16:15 +00:00
|
|
|
|
<div class="width-container">
|
2023-05-26 14:08:01 +00:00
|
|
|
|
<span>{{ $t('header.settings.width') }}</span>
|
2023-05-29 09:18:38 +00:00
|
|
|
|
<span>{{ showKUNGalgameMainPageWidth }}%</span>
|
2023-05-20 16:16:15 +00:00
|
|
|
|
</div>
|
2023-05-13 06:05:05 +00:00
|
|
|
|
<div class="page-width">
|
2023-05-27 02:39:57 +00:00
|
|
|
|
<span>50%</span
|
2023-05-26 09:07:35 +00:00
|
|
|
|
><input
|
|
|
|
|
class="main"
|
2023-05-27 02:39:57 +00:00
|
|
|
|
min="50"
|
2023-05-26 09:07:35 +00:00
|
|
|
|
max="90"
|
|
|
|
|
step="0.1"
|
|
|
|
|
type="range"
|
2023-05-29 09:18:38 +00:00
|
|
|
|
v-model="showKUNGalgameMainPageWidth"
|
2023-05-26 09:07:35 +00:00
|
|
|
|
/><span>90%</span>
|
2023-05-13 06:05:05 +00:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- 背景设置组件 -->
|
|
|
|
|
<Background />
|
2023-05-20 15:17:46 +00:00
|
|
|
|
|
2023-05-26 14:08:01 +00:00
|
|
|
|
<div>
|
2023-05-27 10:52:54 +00:00
|
|
|
|
<button class="reset" @click="handleRecover">
|
|
|
|
|
{{ $t('header.settings.recover') }}
|
|
|
|
|
</button>
|
2023-05-26 14:08:01 +00:00
|
|
|
|
</div>
|
2023-05-13 06:05:05 +00:00
|
|
|
|
</div>
|
2023-05-20 14:59:41 +00:00
|
|
|
|
|
2023-05-13 06:05:05 +00:00
|
|
|
|
<!-- 看板娘组件 -->
|
2023-05-20 14:59:41 +00:00
|
|
|
|
<Loli class="loli" />
|
|
|
|
|
|
2023-05-13 10:56:56 +00:00
|
|
|
|
<!-- 关闭面板 -->
|
2023-05-20 14:59:41 +00:00
|
|
|
|
<div class="close">
|
2023-05-30 14:25:42 +00:00
|
|
|
|
<!-- showKUNGalgamePanel 存在于 settings 里,false 为关闭设置面板 -->
|
|
|
|
|
<Icon @click="showKUNGalgamePanel = false" icon="line-md:close" />
|
2023-05-17 15:56:47 +00:00
|
|
|
|
</div>
|
2023-05-13 06:05:05 +00:00
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
2023-05-25 07:55:30 +00:00
|
|
|
|
<style lang="scss" scoped>
|
2023-05-13 06:05:05 +00:00
|
|
|
|
/* 根容器 */
|
|
|
|
|
.root {
|
|
|
|
|
top: 65px;
|
|
|
|
|
right: 0;
|
2023-05-14 17:47:25 +00:00
|
|
|
|
position: absolute;
|
2023-06-05 06:32:08 +00:00
|
|
|
|
background-color: var(--kungalgame-trans-white-5);
|
2023-05-13 06:05:05 +00:00
|
|
|
|
backdrop-filter: blur(5px);
|
2023-06-05 06:32:08 +00:00
|
|
|
|
box-shadow: var(--shadow);
|
2023-05-13 06:05:05 +00:00
|
|
|
|
border-radius: 10px;
|
|
|
|
|
display: flex;
|
|
|
|
|
}
|
|
|
|
|
.container {
|
|
|
|
|
position: relative;
|
|
|
|
|
margin: 20px;
|
|
|
|
|
font-size: 17px;
|
|
|
|
|
}
|
|
|
|
|
.title {
|
|
|
|
|
font-size: 23px;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
2023-05-19 18:23:25 +00:00
|
|
|
|
span {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
2023-05-13 06:05:05 +00:00
|
|
|
|
}
|
2023-05-20 16:16:15 +00:00
|
|
|
|
// 使设置按钮保持旋转
|
2023-05-13 06:05:05 +00:00
|
|
|
|
.settings-icon {
|
|
|
|
|
animation: settings 3s linear infinite;
|
|
|
|
|
}
|
|
|
|
|
@keyframes settings {
|
|
|
|
|
0% {
|
|
|
|
|
transform: rotate(0deg);
|
|
|
|
|
}
|
|
|
|
|
100% {
|
|
|
|
|
transform: rotate(360deg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.mode {
|
|
|
|
|
margin: 20px 0;
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
}
|
|
|
|
|
.mode-container {
|
|
|
|
|
font-size: 25px;
|
|
|
|
|
width: 60%;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-around;
|
2023-05-14 07:16:28 +00:00
|
|
|
|
li {
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
2023-05-13 06:05:05 +00:00
|
|
|
|
li:nth-child(1) {
|
2023-06-05 06:32:08 +00:00
|
|
|
|
color: var(--kungalgame-red-4);
|
2023-05-13 06:05:05 +00:00
|
|
|
|
}
|
|
|
|
|
li:nth-child(2) {
|
2023-06-05 06:32:08 +00:00
|
|
|
|
color: var(--kungalgame-blue-4);
|
2023-05-13 06:05:05 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2023-05-20 16:16:15 +00:00
|
|
|
|
// 语言设置
|
|
|
|
|
.set-lang {
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
}
|
|
|
|
|
// 语言的选择框
|
|
|
|
|
.select {
|
|
|
|
|
width: 100px;
|
|
|
|
|
font-size: 16px;
|
2023-06-05 06:32:08 +00:00
|
|
|
|
border: 1px solid var(--kungalgame-blue-4);
|
|
|
|
|
background-color: var(--kungalgame-trans-white-9);
|
2023-05-20 16:16:15 +00:00
|
|
|
|
option {
|
2023-06-05 06:32:08 +00:00
|
|
|
|
background-color: var(--kungalgame-trans-white-9);
|
2023-05-20 16:16:15 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2023-05-13 06:05:05 +00:00
|
|
|
|
.page-width {
|
|
|
|
|
font-size: 15px;
|
|
|
|
|
display: flex;
|
|
|
|
|
span {
|
|
|
|
|
margin-top: 15px;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/* 主页页面宽度滑动条 */
|
|
|
|
|
.main {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 10px;
|
|
|
|
|
margin: 20px 0;
|
|
|
|
|
}
|
|
|
|
|
/* 固定看板娘 */
|
2023-05-20 16:16:15 +00:00
|
|
|
|
.set-lang {
|
2023-05-20 15:17:46 +00:00
|
|
|
|
margin-bottom: 20px;
|
2023-05-20 16:16:15 +00:00
|
|
|
|
}
|
|
|
|
|
.width-container {
|
2023-05-13 06:05:05 +00:00
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
}
|
|
|
|
|
.reset {
|
|
|
|
|
font-size: 15px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
margin-top: 20px;
|
2023-06-05 06:32:08 +00:00
|
|
|
|
border: 1px solid var(--kungalgame-red-4);
|
|
|
|
|
background-color: var(--kungalgame-trans-red-1);
|
2023-05-13 06:05:05 +00:00
|
|
|
|
width: 100%;
|
|
|
|
|
height: 30px;
|
|
|
|
|
&:hover {
|
2023-06-05 06:32:08 +00:00
|
|
|
|
background-color: var(--kungalgame-red-3);
|
|
|
|
|
color: var(--kungalgame-white);
|
2023-05-13 06:05:05 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
2023-05-13 10:56:56 +00:00
|
|
|
|
.close {
|
|
|
|
|
font-size: 25px;
|
2023-05-17 15:56:47 +00:00
|
|
|
|
width: 270px;
|
2023-05-13 10:56:56 +00:00
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: end;
|
|
|
|
|
margin: 20px;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
@media (max-width: 700px) {
|
|
|
|
|
.loli {
|
|
|
|
|
display: none;
|
|
|
|
|
}
|
|
|
|
|
.root {
|
|
|
|
|
width: 300px;
|
|
|
|
|
transition: 0.3s;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@media (max-height: 600px) {
|
|
|
|
|
.root {
|
|
|
|
|
right: -600px;
|
|
|
|
|
transition: 0.5s;
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-05-13 06:05:05 +00:00
|
|
|
|
</style>
|