user settings and app settings page supports showing specified tab by query parameter

This commit is contained in:
MaysWind
2023-07-09 16:35:12 +08:00
parent 6edf66a599
commit 522ed94c32
4 changed files with 40 additions and 7 deletions
+8 -2
View File
@@ -104,11 +104,17 @@ const router = createRouter({
}, },
{ {
path: '/user/settings', path: '/user/settings',
component: UserSettingsPage component: UserSettingsPage,
props: route => ({
tab: route.query.tab
})
}, },
{ {
path: '/app/settings', path: '/app/settings',
component: AppSettingsPage component: AppSettingsPage,
props: route => ({
tab: route.query.tab
})
}, },
{ {
path: '/about', path: '/about',
+17 -4
View File
@@ -21,7 +21,7 @@
</v-window-item> </v-window-item>
<v-window-item value="applicationLockSetting"> <v-window-item value="applicationLockSetting">
<app-lock-seting-tab/> <app-lock-setting-tab/>
</v-window-item> </v-window-item>
<v-window-item value="statisticsSetting"> <v-window-item value="statisticsSetting">
@@ -33,7 +33,7 @@
<script> <script>
import AppBasicSettingTab from './settings/AppBasicSettingTab.vue'; import AppBasicSettingTab from './settings/AppBasicSettingTab.vue';
import AppLockSetingTab from './settings/AppLockSetingTab.vue'; import AppLockSettingTab from './settings/AppLockSettingTab.vue';
import AppStatisticsSettingTab from './settings/AppStatisticsSettingTab.vue'; import AppStatisticsSettingTab from './settings/AppStatisticsSettingTab.vue';
import { import {
@@ -45,12 +45,25 @@ import {
export default { export default {
components: { components: {
AppBasicSettingTab, AppBasicSettingTab,
AppLockSetingTab, AppLockSettingTab,
AppStatisticsSettingTab AppStatisticsSettingTab
}, },
props: [
'tab'
],
data() { data() {
let queryActiveTab = this.tab || 'basicSetting';
if ([
'basicSetting',
'applicationLockSetting',
'statisticsSetting'
].indexOf(queryActiveTab) === -1) {
queryActiveTab = 'basicSetting';
}
return { return {
activeTab: 'basicSetting', activeTab: queryActiveTab,
icons: { icons: {
basicSetting: mdiCogOutline, basicSetting: mdiCogOutline,
applicationLockSetting: mdiLockOpenOutline, applicationLockSetting: mdiLockOpenOutline,
+15 -1
View File
@@ -59,9 +59,23 @@ export default {
UserTwoFactorAuthSettingTab, UserTwoFactorAuthSettingTab,
UserDataManagementSettingTab UserDataManagementSettingTab
}, },
props: [
'tab'
],
data() { data() {
let queryActiveTab = this.tab || 'basicSetting';
if ([
'basicSetting',
'securitySetting',
'twoFactorSetting',
'dataManagementSetting'
].indexOf(queryActiveTab) === -1) {
queryActiveTab = 'basicSetting';
}
return { return {
activeTab: 'basicSetting', activeTab: queryActiveTab,
icons: { icons: {
basicSetting: mdiAccountOutline, basicSetting: mdiAccountOutline,
securitySetting: mdiLockOpenOutline, securitySetting: mdiLockOpenOutline,