fix #293. stay at MAP page. Remove calling of copyPending.......

This commit is contained in:
Cindy Chang
2024-06-12 10:43:48 +08:00
parent d117adf54e
commit 235504a3fb
4 changed files with 21 additions and 14 deletions

View File

@@ -137,6 +137,7 @@ export default {
'activePage', 'activePage',
'pendingActivePage', 'pendingActivePage',
'activePageComputedByRoute', 'activePageComputedByRoute',
'shouldKeepPreviousPage',
]), ]),
}, },
watch: { watch: {
@@ -146,7 +147,13 @@ export default {
}, },
activePageComputedByRoute (newVal) { activePageComputedByRoute (newVal) {
// console.log('activePageComputedByRoute newVal', newVal); // console.log('activePageComputedByRoute newVal', newVal);
} },
activePage: function(newVal){
// console.log('watch activePage', this.activePage);
},
pendingActivePage: function(newVal){
// console.log('watch pendingActivePage', this.pendingActivePage);
},
}, },
mounted() { mounted() {
this.handleNavItemBtn(); this.handleNavItemBtn();
@@ -259,7 +266,10 @@ export default {
// so here we need to save to a pending state // so here we need to save to a pending state
// 前端無法確定用戶稍後會按下彈窗上的哪個按鈕(取消還是確認、儲存) // 前端無法確定用戶稍後會按下彈窗上的哪個按鈕(取消還是確認、儲存)
// 因此我們需要將其保存到待處理狀態 // 因此我們需要將其保存到待處理狀態
this.setPendingActivePage(valueToSet); if(!this.shouldKeepPreviousPage) { // 若使用者不是按下取消按鈕或是點選按鈕時
this.setPendingActivePage(valueToSet);
}
return valueToSet; return valueToSet;
}, },

View File

@@ -55,11 +55,11 @@ export async function saveFilter(addFilterId, next = null) {
fileName = ''; fileName = '';
return true; return true;
} else { // 點擊取消或空白處,為存檔失敗。 } else { // 點擊取消或空白處,為存檔失敗。
// console.log("PageAdminStore.activePage", PageAdminStore.activePage);
pageAdminStore.keepPreviousPage(); pageAdminStore.keepPreviousPage();
// console.log("現在 pageAdminStore.activePage", pageAdminStore.activePage);
// Not every time we have nontrivial next value // Not every time we have nontrivial next value
next !== null ? next() : 1; next !== null ? next(false) : 1;
return false; return false;
} }
} }
@@ -117,9 +117,6 @@ export async function leaveFilter(next, addFilterId, toPath, logOut) {
await saveFilter(addFilterId, next); await saveFilter(addFilterId, next);
} }
// Handle page admin issue
pageAdminStore.copyPendingPageToActivePage();
logOut ? logOut() : next(toPath); logOut ? logOut() : next(toPath);
} else if(result.dismiss === 'cancel') { } else if(result.dismiss === 'cancel') {
// console.log('popup cancel case', ); // console.log('popup cancel case', );

View File

@@ -1,5 +1,6 @@
import { defineStore } from "pinia"; import { defineStore } from "pinia";
import { mapPageNameToCapitalUnifiedName } from "../utils/pageUtils"; import { mapPageNameToCapitalUnifiedName } from "../utils/pageUtils";
const printPageAdiminLog = false;
// There are at least two ways to trigger a page navigation: // There are at least two ways to trigger a page navigation:
// clicking the navigation button and refreshing the page. // clicking the navigation button and refreshing the page.
@@ -21,7 +22,7 @@ export default defineStore('pageAdminStore', {
setActivePageComputedByRoute(routeMatched){ setActivePageComputedByRoute(routeMatched){
if (routeMatched.length && routeMatched[routeMatched.length - 1] if (routeMatched.length && routeMatched[routeMatched.length - 1]
&& routeMatched[routeMatched.length - 1].name) { && routeMatched[routeMatched.length - 1].name) {
// console.log('setActivePageComputedByRoute()', mapPageNameToCapitalUnifiedName(routeMatched[routeMatched.length - 1].name)); printPageAdiminLog && console.log('setActivePageComputedByRoute()', mapPageNameToCapitalUnifiedName(routeMatched[routeMatched.length - 1].name));
this.activePageComputedByRoute = mapPageNameToCapitalUnifiedName( this.activePageComputedByRoute = mapPageNameToCapitalUnifiedName(
routeMatched[routeMatched.length - 1].name); routeMatched[routeMatched.length - 1].name);
} }
@@ -32,7 +33,7 @@ export default defineStore('pageAdminStore', {
* @param {string} activePage * @param {string} activePage
*/ */
setActivePage(activePage) { setActivePage(activePage) {
// console.log("setActivePage", activePage) printPageAdiminLog && console.log("setActivePage", activePage)
this.activePage = mapPageNameToCapitalUnifiedName(activePage); this.activePage = mapPageNameToCapitalUnifiedName(activePage);
}, },
/** /**
@@ -61,7 +62,7 @@ export default defineStore('pageAdminStore', {
* Copy(transit) the value of pendingActivePage to activePage * Copy(transit) the value of pendingActivePage to activePage
*/ */
copyPendingPageToActivePage() { copyPendingPageToActivePage() {
// console.log('pinia copying this.pendingActivePage', this.pendingActivePage); printPageAdiminLog && console.log('pinia copying this.pendingActivePage', this.pendingActivePage);
this.activePage = this.pendingActivePage; this.activePage = this.pendingActivePage;
}, },
/** /**
@@ -72,7 +73,7 @@ export default defineStore('pageAdminStore', {
* @param {string} pendingActivePage * @param {string} pendingActivePage
*/ */
setPendingActivePage(argPendingActivePage) { setPendingActivePage(argPendingActivePage) {
// console.log('pinia setting this.pendingActivePage', this.pendingActivePage); printPageAdiminLog && console.log('pinia setting this.pendingActivePage', this.pendingActivePage);
this.pendingActivePage = mapPageNameToCapitalUnifiedName(argPendingActivePage); this.pendingActivePage = mapPageNameToCapitalUnifiedName(argPendingActivePage);
}, },
/** /**
@@ -87,7 +88,7 @@ export default defineStore('pageAdminStore', {
* instead, we apply the previous page. * instead, we apply the previous page.
*/ */
keepPreviousPage() { keepPreviousPage() {
// console.log('pinia keeping this.previousPage', this.previousPage); printPageAdiminLog && console.log('pinia keeping this.previousPage', this.previousPage);
this.activePage = this.previousPage; this.activePage = this.previousPage;
this.shouldKeepPreviousPage = true; this.shouldKeepPreviousPage = true;
}, },
@@ -95,7 +96,7 @@ export default defineStore('pageAdminStore', {
* Clean up the state of the boolean related to modal showing phase * Clean up the state of the boolean related to modal showing phase
*/ */
clearShouldKeepPreviousPageBoolean(){ clearShouldKeepPreviousPageBoolean(){
// console.log('clearShouldKeepPreviousPageBoolean()'); printPageAdiminLog && console.log('clearShouldKeepPreviousPageBoolean()');
this.shouldKeepPreviousPage = false; this.shouldKeepPreviousPage = false;
}, },
}, },

View File

@@ -64,7 +64,6 @@ export default {
beforeRouteUpdate(to, from, next) { beforeRouteUpdate(to, from, next) {
// console.log("beforeRouteUpdate", from.name, "to:", to.name); // console.log("beforeRouteUpdate", from.name, "to:", to.name);
this.setPrevioiusPage(from.name); this.setPrevioiusPage(from.name);
this.setActivePageComputedByRoute(to.matched);
// 離開 Map 頁時判斷是否有無資料和需要存檔 // 離開 Map 頁時判斷是否有無資料和需要存檔
if ((from.name === 'Map' || from.name === 'CheckMap') && this.tempFilterId) { if ((from.name === 'Map' || from.name === 'CheckMap') && this.tempFilterId) {