fix: resolve system settings display refresh bug

This commit is contained in:
eoao
2026-05-10 00:28:32 +08:00
parent a46192b214
commit 6189a91000

View File

@@ -367,7 +367,7 @@
<div class="setting-item"> <div class="setting-item">
<div><span>{{ $t('codeRecognition') }}</span></div> <div><span>{{ $t('codeRecognition') }}</span></div>
<div> <div>
<el-switch @change="change" :before-change="beforeChange" :active-value="0" :inactive-value="1" <el-switch @change="changeField('aiCode', $event)" :before-change="beforeChange" :active-value="0" :inactive-value="1"
v-model="setting.aiCode"/> v-model="setting.aiCode"/>
</div> </div>
</div> </div>
@@ -801,7 +801,7 @@
</template> </template>
<script setup> <script setup>
import {computed, defineOptions, reactive, ref} from "vue"; import {computed, defineOptions, nextTick, reactive, ref} from "vue";
import {deleteBackground, setBackground, setBlackList, settingQuery, settingSet} from "@/request/setting.js"; import {deleteBackground, setBackground, setBlackList, settingQuery, settingSet} from "@/request/setting.js";
import {useSettingStore} from "@/store/setting.js"; import {useSettingStore} from "@/store/setting.js";
import {useUiStore} from "@/store/ui.js"; import {useUiStore} from "@/store/ui.js";
@@ -827,6 +827,7 @@ const hasUpdate = ref(false)
let getUpdateErrorCount = 1; let getUpdateErrorCount = 1;
const {t, locale} = useI18n(); const {t, locale} = useI18n();
const firstLoading = ref(true) const firstLoading = ref(true)
const settingReady = ref(false)
const backgroundImage = ref('') const backgroundImage = ref('')
const localUpShow = ref(false) const localUpShow = ref(false)
const accountStore = useAccountStore(); const accountStore = useAccountStore();
@@ -936,6 +937,7 @@ getSettings()
getUpdate() getUpdate()
function getSettings() { function getSettings() {
settingReady.value = false
settingQuery().then(settingData => { settingQuery().then(settingData => {
setting.value = settingData setting.value = settingData
settingStore.domainList = settingData.domainList; settingStore.domainList = settingData.domainList;
@@ -953,6 +955,9 @@ function getSettings() {
resetEmailPrefix() resetEmailPrefix()
resetBlackList() resetBlackList()
resetAiCodeFilter() resetAiCodeFilter()
nextTick(() => {
settingReady.value = true
})
}) })
} }
@@ -1217,6 +1222,7 @@ function ruleEmailSave() {
} }
function doOpacityChange() { function doOpacityChange() {
if (!settingReady.value) return
const form = {} const form = {}
form.loginOpacity = loginOpacity.value form.loginOpacity = loginOpacity.value
editSetting(form, true) editSetting(form, true)
@@ -1420,12 +1426,13 @@ function cleanResendTokenForm() {
} }
function beforeChange() { function beforeChange() {
if (settingLoading.value) return false if (!settingReady.value || settingLoading.value) return false
backupSetting() backupSetting()
return true return true
} }
function change(e) { function change(e) {
if (!settingReady.value) return
const settingForm = {...setting.value} const settingForm = {...setting.value}
delete settingForm.siteKey delete settingForm.siteKey
delete settingForm.secretKey delete settingForm.secretKey
@@ -1435,6 +1442,12 @@ function change(e) {
editSetting(settingForm, false) editSetting(settingForm, false)
} }
function changeField(key, value) {
if (!settingReady.value) return
setting.value[key] = value
editSetting({[key]: value}, false)
}
function saveTitle() { function saveTitle() {
editSetting({title: editTitle.value}) editSetting({title: editTitle.value})
} }