feat: remain in the same position when back from a subfolder

This commit is contained in:
niubility000 2024-03-23 18:06:58 +08:00 committed by GitHub
parent 05bfae264a
commit 5f64bc711a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<header-bar v-if="error || req.type == null" showMenu showLogo /> <header-bar v-if="error || req.type == undefined" showMenu showLogo />
<breadcrumbs base="/files" /> <breadcrumbs base="/files" />
<listing /> <listing />
@ -47,6 +47,7 @@ export default {
return { return {
error: null, error: null,
width: window.innerWidth, width: window.innerWidth,
parentDir: false,
}; };
}, },
computed: { computed: {
@ -69,24 +70,26 @@ export default {
}, },
watch: { watch: {
$route: function (to, from) { $route: function (to, from) {
if (
to.path.endsWith("/") &&
from.path.startsWith(to.path) &&
from.path.length > to.path.length
) {
this.parentDir = "true";
} else {
this.parentDir = "false";
window.sessionStorage.removeItem(to.path);
}
if (from.path.endsWith("/")) { if (from.path.endsWith("/")) {
if (to.path.endsWith("/")) { if (to.path.endsWith("/")) {
window.sessionStorage.setItem("listFrozen", "false"); window.sessionStorage.setItem("listFrozen", "false");
this.fetchData();
return;
} else { } else {
window.sessionStorage.setItem("listFrozen", "true"); window.sessionStorage.setItem("listFrozen", "true");
this.fetchData();
return;
} }
} else if (to.path.endsWith("/")) { } else if (to.path.endsWith("/")) {
this.$store.commit("updateRequest", {}); this.$store.commit("updateRequest", {});
this.fetchData();
return;
} else {
this.fetchData();
return;
} }
this.fetchData();
}, },
reload: function (value) { reload: function (value) {
if (value === true) { if (value === true) {
@ -116,7 +119,11 @@ export default {
this.$store.commit("closeHovers"); this.$store.commit("closeHovers");
// Set loading to true and reset the error. // Set loading to true and reset the error.
if (window.sessionStorage.getItem("listFrozen") !=="true" && window.sessionStorage.getItem("modified") !=="true"){ if (
window.sessionStorage.getItem("listFrozen") !== "true" &&
window.sessionStorage.getItem("modified") !== "true" &&
this.parentDir !== "true"
) {
this.setLoading(true); this.setLoading(true);
} }
this.error = null; this.error = null;