support hiding and unhiding explorers

This commit is contained in:
MaysWind
2026-01-07 23:39:07 +08:00
parent ab88b0bf44
commit 1c596c4a15
20 changed files with 102 additions and 13 deletions
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Dodaj poizvedbo", "Add Query": "Dodaj poizvedbo",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "Save Explorer", "Save Explorer": "Save Explorer",
"Save As New Explorer": "Save As New Explorer", "Save As New Explorer": "Save As New Explorer",
"Rename Explorer": "Rename Explorer", "Rename Explorer": "Rename Explorer",
"Hide Explorer": "Hide Explorer",
"Unhide Explorer": "Unhide Explorer",
"Delete Explorer": "Delete Explorer", "Delete Explorer": "Delete Explorer",
"Explorer Name": "Explorer Name", "Explorer Name": "Explorer Name",
"Add Query": "Add Query", "Add Query": "Add Query",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "保存探索", "Save Explorer": "保存探索",
"Save As New Explorer": "另存为新的探索", "Save As New Explorer": "另存为新的探索",
"Rename Explorer": "重命名探索", "Rename Explorer": "重命名探索",
"Hide Explorer": "隐藏探索",
"Unhide Explorer": "取消隐藏探索",
"Delete Explorer": "删除探索", "Delete Explorer": "删除探索",
"Explorer Name": "探索名称", "Explorer Name": "探索名称",
"Add Query": "添加查询", "Add Query": "添加查询",
+2
View File
@@ -1718,6 +1718,8 @@
"Save Explorer": "儲存探索", "Save Explorer": "儲存探索",
"Save As New Explorer": "另存新探索", "Save As New Explorer": "另存新探索",
"Rename Explorer": "重新命名探索", "Rename Explorer": "重新命名探索",
"Hide Explorer": "隱藏探索",
"Unhide Explorer": "取消隱藏探索",
"Delete Explorer": "刪除探索", "Delete Explorer": "刪除探索",
"Explorer Name": "探索名稱", "Explorer Name": "探索名稱",
"Add Query": "新增查詢", "Add Query": "新增查詢",
+1
View File
@@ -1099,6 +1099,7 @@ export const useExplorersStore = defineStore('explorers', () => {
return; return;
} }
explorer.hidden = hidden;
updateExplorerVisibilityInInsightsExplorerList({ explorer: explorer, hidden }); updateExplorerVisibilityInInsightsExplorerList({ explorer: explorer, hidden });
resolve(data.result); resolve(data.result);
+65 -13
View File
@@ -80,17 +80,9 @@
<v-progress-circular indeterminate size="22" class="ms-2" v-if="updating"></v-progress-circular> <v-progress-circular indeterminate size="22" class="ms-2" v-if="updating"></v-progress-circular>
<v-menu activator="parent" :open-on-hover="true"> <v-menu activator="parent" :open-on-hover="true">
<v-list> <v-list>
<v-list-item :prepend-icon="mdiContentSaveOutline" @click="saveExplorer(true)"> <v-list-item @click="saveExplorer(true)">
<v-list-item-title>{{ tt('Save As New Explorer') }}</v-list-item-title> <v-list-item-title>{{ tt('Save As New Explorer') }}</v-list-item-title>
</v-list-item> </v-list-item>
<v-divider class="my-2" v-if="currentExplorer.id" />
<v-list-item :prepend-icon="mdiPencilOutline" @click="setExplorerName" v-if="currentExplorer.id">
<v-list-item-title>{{ tt('Rename Explorer') }}</v-list-item-title>
</v-list-item>
<v-divider class="my-2" v-if="currentExplorer.id" />
<v-list-item :prepend-icon="mdiDeleteOutline" @click="removeExplorer" v-if="currentExplorer.id">
<v-list-item-title>{{ tt('Delete Explorer') }}</v-list-item-title>
</v-list-item>
</v-list> </v-list>
</v-menu> </v-menu>
</v-btn> </v-btn>
@@ -114,6 +106,19 @@
:disabled="loading || updating || !filteredTransactions || filteredTransactions.length < 1" :disabled="loading || updating || !filteredTransactions || filteredTransactions.length < 1"
@click="exportResults" @click="exportResults"
v-if="activeTab === 'table' || activeTab === 'chart'"></v-list-item> v-if="activeTab === 'table' || activeTab === 'chart'"></v-list-item>
<v-divider class="my-2" v-if="currentExplorer.id" />
<v-list-item :prepend-icon="mdiPencilOutline" @click="setExplorerName" v-if="currentExplorer.id">
<v-list-item-title>{{ tt('Rename Explorer') }}</v-list-item-title>
</v-list-item>
<v-list-item :prepend-icon="mdiEyeOffOutline" @click="hideExplorer(true)" v-if="currentExplorer.id && !currentExplorer.hidden">
<v-list-item-title>{{ tt('Hide Explorer') }}</v-list-item-title>
</v-list-item>
<v-list-item :prepend-icon="mdiEyeOutline" @click="hideExplorer(false)" v-if="currentExplorer.id && currentExplorer.hidden">
<v-list-item-title>{{ tt('Unhide Explorer') }}</v-list-item-title>
</v-list-item>
<v-list-item :prepend-icon="mdiDeleteOutline" @click="removeExplorer" v-if="currentExplorer.id">
<v-list-item-title>{{ tt('Delete Explorer') }}</v-list-item-title>
</v-list-item>
</v-list> </v-list>
</v-menu> </v-menu>
</v-btn> </v-btn>
@@ -131,7 +136,7 @@
</v-window-item> </v-window-item>
<v-window-item value="chart"> <v-window-item value="chart">
<explorer-chart-tab ref="explorerChartTab" <explorer-chart-tab ref="explorerChartTab"
:loading="loading" :disabled="loading || updating" /> :loading="loading" :disabled="loading || updating" />
</v-window-item> </v-window-item>
</v-window> </v-window>
</v-card> </v-card>
@@ -184,7 +189,7 @@ import { type WeekDayValue, type LocalizedDateRange, DateRangeScene, DateRange }
import { TimezoneTypeForStatistics } from '@/core/timezone.ts'; import { TimezoneTypeForStatistics } from '@/core/timezone.ts';
import { type TransactionInsightDataItem, Transaction } from '@/models/transaction.ts'; import { type TransactionInsightDataItem, Transaction } from '@/models/transaction.ts';
import { type InsightsExplorerBasicInfo, InsightsExplorer } from '@/models/explorer.ts'; import { InsightsExplorerBasicInfo, InsightsExplorer } from '@/models/explorer.ts';
import { import {
parseDateTimeFromUnixTime, parseDateTimeFromUnixTime,
@@ -202,8 +207,9 @@ import {
mdiCheck, mdiCheck,
mdiRefresh, mdiRefresh,
mdiDotsVertical, mdiDotsVertical,
mdiContentSaveOutline,
mdiPencilOutline, mdiPencilOutline,
mdiEyeOutline,
mdiEyeOffOutline,
mdiDeleteOutline, mdiDeleteOutline,
mdiHomeClockOutline, mdiHomeClockOutline,
mdiInvoiceTextClockOutline, mdiInvoiceTextClockOutline,
@@ -272,7 +278,35 @@ const showCustomDateRangeDialog = ref<boolean>(false);
const firstDayOfWeek = computed<WeekDayValue>(() => userStore.currentUserFirstDayOfWeek); const firstDayOfWeek = computed<WeekDayValue>(() => userStore.currentUserFirstDayOfWeek);
const fiscalYearStart = computed<number>(() => userStore.currentUserFiscalYearStart); const fiscalYearStart = computed<number>(() => userStore.currentUserFiscalYearStart);
const allExplorers = computed<InsightsExplorerBasicInfo[]>(() => explorersStore.allInsightsExplorerBasicInfos.slice(0, 15)); const allExplorers = computed<InsightsExplorerBasicInfo[]>(() => {
const maximumExplorersToShow = 14;
const ret: InsightsExplorerBasicInfo[] = [];
let hasCurrentExplorer = false;
for (const explorer of explorersStore.allInsightsExplorerBasicInfos) {
if (ret.length >= maximumExplorersToShow) {
break;
}
if (!explorer.hidden || (explorer.id && explorer.id === currentExplorer.value.id)) {
ret.push(explorer);
if (explorer.id && explorer.id === currentExplorer.value.id) {
hasCurrentExplorer = true;
}
}
}
if (!hasCurrentExplorer && currentExplorer.value && currentExplorer.value.id) {
if (ret.length >= maximumExplorersToShow) {
ret.pop();
}
ret.push(InsightsExplorerBasicInfo.of(currentExplorer.value));
}
return ret;
});
const currentFilter = computed<TransactionExplorerFilter>(() => explorersStore.transactionExplorerFilter); const currentFilter = computed<TransactionExplorerFilter>(() => explorersStore.transactionExplorerFilter);
const currentExplorer = computed<InsightsExplorer>(() => explorersStore.currentInsightsExplorer); const currentExplorer = computed<InsightsExplorer>(() => explorersStore.currentInsightsExplorer);
const filteredTransactions = computed<TransactionInsightDataItem[]>(() => explorersStore.filteredTransactions); const filteredTransactions = computed<TransactionInsightDataItem[]>(() => explorersStore.filteredTransactions);
@@ -463,6 +497,24 @@ function setExplorerName(): void {
}); });
} }
function hideExplorer(hidden: boolean): void {
updating.value = true;
explorersStore.hideInsightsExplorer({
explorer: currentExplorer.value,
hidden: hidden
}).then(() => {
updating.value = false;
currentExplorer.value.hidden = hidden;
}).catch(error => {
updating.value = false;
if (!error.processed) {
snackbar.value?.showError(error);
}
});
}
function removeExplorer(): void { function removeExplorer(): void {
if (!currentExplorer.value.id) { if (!currentExplorer.value.id) {
return; return;