Merge branch 'refs/heads/pr' into pr-159

# Conflicts:
#	package-lock.json
#	src/App.vue
#	src/pages/article/PracticeArticles.vue
#	src/stores/setting.ts
This commit is contained in:
Zyronon
2025-11-16 22:37:01 +08:00
51 changed files with 3301 additions and 504 deletions

View File

@@ -5,17 +5,18 @@ import { useRuntimeStore } from "@/stores/runtime.ts";
import { useSettingStore } from "@/stores/setting.ts";
import useTheme from "@/hooks/theme.ts";
import { shakeCommonDict } from "@/utils";
import { routes } from "@/router.ts";
import { get, set } from 'idb-keyval'
import { useRoute } from "vue-router";
import { DictId } from "@/types/types.ts";
import { APP_VERSION, CAN_REQUEST, LOCAL_FILE_KEY, SAVE_DICT_KEY, SAVE_SETTING_KEY } from "@/config/env.ts";
import { APP_VERSION, AppEnv, LOCAL_FILE_KEY, SAVE_DICT_KEY, SAVE_SETTING_KEY } from "@/config/env.ts";
import { syncSetting } from "@/apis";
import { useUserStore } from "@/stores/auth.ts";
const store = useBaseStore()
const runtimeStore = useRuntimeStore()
const settingStore = useSettingStore()
const userStore = useUserStore()
const { setTheme } = useTheme()
let lastAudioFileIdList = []
@@ -51,15 +52,17 @@ watch(store.$state, (n: BaseState) => {
watch(() => settingStore.$state, (n) => {
set(SAVE_SETTING_KEY.key, JSON.stringify({ val: n, version: SAVE_SETTING_KEY.version }))
if (CAN_REQUEST) {
if (AppEnv.CAN_REQUEST) {
syncSetting(null, settingStore.$state)
}
}, { deep: true })
async function init() {
await userStore.init()
await store.init()
await settingStore.init()
store.load = true
setTheme(settingStore.theme)
if (settingStore.first) {
@@ -80,19 +83,19 @@ watch(() => route.path, (to, from) => {
return transitionName = ''
// console.log('watch', to, from)
// //footer下面的5个按钮对跳不要用动画
let noAnimation = [
'/pc/practice',
'/pc/dict',
'/mobile',
'/'
]
if (noAnimation.indexOf(from) !== -1 && noAnimation.indexOf(to) !== -1) {
return transitionName = ''
}
const toDepth = routes.findIndex(v => v.path === to)
const fromDepth = routes.findIndex(v => v.path === from)
transitionName = toDepth > fromDepth ? 'go' : 'back'
// let noAnimation = [
// '/pc/practice',
// '/pc/dict',
// '/mobile',
// '/'
// ]
// if (noAnimation.indexOf(from) !== -1 && noAnimation.indexOf(to) !== -1) {
// return transitionName = ''
// }
//
// const toDepth = routes.findIndex(v => v.path === to)
// const fromDepth = routes.findIndex(v => v.path === from)
// transitionName = toDepth > fromDepth ? 'go' : 'back'
// console.log('transitionName', transitionName, toDepth, fromDepth)
})
</script>
@@ -106,6 +109,4 @@ watch(() => route.path, (to, from) => {
<!-- </transition>-->
<!-- </router-view>-->
<router-view></router-view>
</template>
<style scoped lang="scss"></style>
</template>