diff --git a/src/App.vue b/src/App.vue
index 0f04584..46d8922 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -15,9 +15,3 @@ import DashBoard from "./components/DashBoard.vue";
-
-
diff --git a/src/components/DashBoard.vue b/src/components/DashBoard.vue
index c3c14df..b06f42c 100644
--- a/src/components/DashBoard.vue
+++ b/src/components/DashBoard.vue
@@ -22,8 +22,11 @@
修改授权码
删除本地授权码
+ 夜间模式配置
+ 夜间模式
+ 夜间模式
- 里站搜索
+ 里站搜索
{{thumbnailGallery.shortName}}
@@ -87,7 +90,7 @@
查询
-
+
首页
@@ -112,6 +115,20 @@
+
+ 夜间模式跟随系统
+
+ 自定义起始时间(精确到分)
+
+
+ ~
+
+
+
+ 保存
+
+
+
是否记住授权码
@@ -129,6 +146,8 @@ import axios from "axios";
let AuthCode = ref("")
let isRemember = ref(false)
let isAlterAuthCode = ref(false)
+let isConfigDarkMode = ref(false)
+let isDark = ref(false)
let newAuthCode = ref("")
let tempAuthCode = ref("")
@@ -136,6 +155,7 @@ let isQuerying = ref(false)
let keyword = ref("")
let galleries = ref([])
let queryPage = ref({})
+let darkConfig = ref({})
//查询相关
let type = ref("link")
@@ -292,20 +312,116 @@ function deleteAuthCode(){
localStorage.removeItem('auth')
ElMessage("删除授权码完成")
}
+function toggleStyle(){
+ if(isDark.value)
+ dark()
+ else
+ light()
+}
+
onMounted(() => {
const auth = localStorage.getItem("auth")
+ adjustForStyle()
+
if(auth !== null){
store.dispatch("validate", auth)
AuthCode.value = localStorage.getItem("auth")
}
})
+
+function adjustForStyle(){
+ let darkConfigStr = localStorage.getItem("darkConfig")
+ if(darkConfigStr !== null) {
+ darkConfig.value = JSON.parse(darkConfigStr)
+ if (darkConfig.value.followSystem)
+ if (isSystemDark()) {
+ dark()
+ isDark.value = true
+ }
+ else {
+ light()
+ isDark.value = false
+ }
+
+ if (darkConfig.value.customTime)
+ if (isDarkTime(darkConfig.value)) {
+ dark()
+ isDark.value = true
+ }
+ else {
+ light()
+ isDark.value = false
+ }
+
+ if(isDark.value)
+ dark()
+ else
+ light()
+ }else {
+ light()
+ darkConfig.value = {'followSystem': false, 'customTime': false}
+ }
+}
+function isSystemDark(){
+ return window.matchMedia('(prefers-color-scheme: dark)').matches
+}
+function isDarkTime(darkConfig){
+ let date = new Date()
+ let startTime = darkConfig.startTime
+ let endTime = darkConfig.endTime
+ if(startTime.hour > endTime.hour){ //隔夜 22:00 ~ 8:00
+ if(date.getHours() > endTime.getHours() && date.getHours() < startTime.getHours()){ // 大于结束时间且小于起始时间 16:00
+ return false
+ }else if(date.getHours() === endTime.getHours()){ //22:00 ~ 8:30 8:26
+ return date.getMinutes() <= endTime.getMinutes();
+ }else if(date.getHours() === startTime.getHours()){ //22:30 ~ 8:00 22:46
+ return date.getMinutes() > startTime.getMinutes();
+ }else
+ return true
+ }else{ //不隔夜 00:00 ~ 6:00 22:00 ~ 23:00
+ if(date.getHours() > endTime.getHours() || date.getHours() < startTime.getHours()){
+ return false
+ }else if(date.getHours() === startTime.getHours()){ // 01:30 ~ 06:00 01:32
+ return date.getMinutes() >= startTime.getMinutes();
+ }else if(date.getHours() === endTime.getHours()){ // 01:30 ~ 06:30 06:35
+ return date.getMinutes() <= endTime.getMinutes();
+ }else
+ return true
+ }
+}
+function dark(){
+ let html = document.querySelector("html")
+ if(!html.classList.contains("dark"))
+ html.classList.add('dark')
+ document.querySelector(".DashBoard").style.setProperty("background-color", null)
+ document.querySelector(".app").style.setProperty("background-color", null)
+}
+function light(){
+ let html = document.querySelector("html")
+ if(html.classList.contains("dark"))
+ html.classList.remove('dark')
+
+ document.querySelector(".DashBoard").style.setProperty("background-color", "ghostwhite")
+ document.querySelector(".app").style.setProperty("background-color", "#c6e2ff")
+}
+function saveDarkConfig(){
+ if(darkConfig.value.customTime) {
+ if(darkConfig.value.startTime === undefined || darkConfig.value.endTime === undefined){
+ ElMessage("请正确选择起始时间")
+ return
+ }
+ }
+
+ localStorage.setItem("darkConfig", JSON.stringify(darkConfig.value))
+ isConfigDarkMode.value = false
+ adjustForStyle()
+}