Files
love-nav-vue/src/views/Settings.vue
2023-12-28 22:48:08 +08:00

166 lines
4.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<!-- <div class="home">-->
<!-- <HomePage></HomePage>-->
<!-- </div>-->
<body translate="no">
<div class="video-bg">
<video width="320" height="240" autoplay="" loop="" muted="" __idm_id__="1581057">
<source src="../assets/video/background.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
</div>
<div v-if="value==='1'" class="dark-light">
<svg viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.5" fill="none" stroke-linecap="round"
stroke-linejoin="round" @click="changeStyle">
<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"></path>
</svg>
</div>
<div class="app">
<SettingHeader></SettingHeader>
<!-- <router-view></router-view>-->
<div class="wrapper">
<SettingLeftSide></SettingLeftSide>
<router-view></router-view>
</div>
<div class="overlay-app"></div>
</div>
<div v-if="icp_info!==''" style="z-index: 9999;display: flex;flex-direction: row">
<el-link style="color: var(--theme-color);" :underline="false" href="https://beian.miit.gov.cn/" target="_blank">备案号 </el-link>
<el-link style="color: var(--theme-color);" :underline="false" href="https://beian.miit.gov.cn/" target="_blank"> {{icp_info}}</el-link>
</div>
</body>
</template>
<script>
// @ is an alias to /src
import SettingHeader from "@/components/setting/layout/SettingHeader.vue";
import SettingLeftSide from "@/components/setting/layout/SettingLeftSide.vue";
import axios from "axios";
import {mapMutations} from "vuex";
export default {
name: 'SettingsView',
components: {
SettingLeftSide,
SettingHeader,
},
data() {
return {
value:null,
isLight:false,
icp_info:null,
}
},
mounted() {
},
created() {
this.getConfig('open_dark_light');
this.getConfig('icp_info');
// let nowDate = new Date()
// let hour = nowDate.getHours()
// //黑夜时
// if (hour > 18 && hour <= 24 || hour < 6) {
// this.goDark()
// }
//根据本地存储状态哦按段
if (localStorage.getItem('theme') === 'dark') {
this.goDark()
}else{
this.goLight();
}
},
computed: {},
methods:{
...mapMutations(['setTheme']),
getConfig(name) {
let _this = this;
if (name) {
axios({
method: 'get',
url: '/api/getConfig',
params: {
name: name
}
}).then(function (res) {
if (res) {
if (res.data.open_dark_light) {
_this.value = res.data.open_dark_light.value;
}
if(res.data.icp_info){
_this.icp_info=res.data.icp_info.value;
}
// if(res.data.light_bg){
// _this.light_bg=res.data.light_bg.value;
// }
// _this.loading=false;
}
}).catch((error) => {
})
} else {
return false
}
},
getImageByConfig(name){
let _this=this;
if(name){
axios({
method: 'get',
url: '/api/getAttachment',
responseType: 'arraybuffer',
params: {
name:name
},
}).then(function (res) {
if(res.data){
_this.imageUrl=btoa(new Uint8Array(res.data).reduce((data, byte) => data + String.fromCharCode(byte), '')), 'base64';
}else{
return false;
}
}).catch((error) => {
})
}else{
return false;
// Vue.prototype.$notify.error({
// title: '错误',
// message: "不存在!",
// offset: 0
// });
}
},
goDark() {
this.getImageByConfig('dark_bg_file');
//黑夜的
document.body.classList.remove('light-mode');
this.setTheme({theme:'dark'});
},
goLight() {
this.getImageByConfig('light_bg_file');
//白天的
document.body.classList.add('light-mode')
this.setTheme({theme:'light'});
},
changeStyle() {
this.isLight = !this.isLight
if (this.isLight !== true) {
this.goDark();
} else {
this.goLight();
}
},
// toggleDarkLight() {
// const toggleButton = document.querySelector('.dark-light');
//
// toggleButton.addEventListener('click', () => {
// document.body.classList.toggle('light-mode');
// });
// }
}
}
</script>