remove store filter

This commit is contained in:
Timi
2026-08-21 15:02:28 +08:00
parent c97913da2d
commit 413f12619b
8 changed files with 41 additions and 448 deletions
+4 -65
View File
@@ -1,20 +1,8 @@
<template>
<div
v-can="{ value: [permissionCodes.event.read, permissionCodes.user.read], mode: 'and' }"
:class="{ 'has-filter': hasFilter }"
class="registration-event-list"
>
<div v-if="hasFilter" class="filter-menu">
<t-dropdown-menu>
<t-dropdown-item
v-if="isGlobalManager"
v-model="selectedStoreId"
:label="storeFilterLabel"
:options="storeOptions"
@change="selectStoreFilter"
/>
</t-dropdown-menu>
</div>
<t-pull-down-refresh
v-model="isRefreshing"
:refresh-timeout="30000"
@@ -75,7 +63,7 @@
</template>
<script setup lang="ts">
import { Toast, type DropdownValue } from "tdesign-mobile-vue";
import { Toast } from "tdesign-mobile-vue";
import { type Page, type PageResult, type Role, useUserStore } from "timi-web";
import EventAPI from "@/api/EventAPI";
import ManagedUserAPI from "@/api/ManagedUserAPI";
@@ -95,31 +83,7 @@ const userStore = useUserStore();
const currentStoreStore = useCurrentStoreStore();
const isGlobalManager = computed(() => userStore.hasRoles(gaoRoleCodes.globalManager));
const hasFilter = computed(() => isGlobalManager.value);
// ---------- 门店筛选 ----------
const allStoreFilterValue = "__ALL_STORES__";
const selectedStoreId = ref(allStoreFilterValue);
const loginStoreId = ref("");
const storeOptions = computed(() => [
{ label: "全部门店", value: allStoreFilterValue },
...currentStoreStore.storeList
.map(item => ({
label: item.name || item.code || "未命名门店",
value: item.id || ""
}))
.filter(item => item.value)
]);
const storeFilterLabel = computed(() => storeOptions.value.find(item => item.value === selectedStoreId.value)?.label || "全部门店");
const eventListOptions = computed(() => {
if (isGlobalManager.value) {
return selectedStoreId.value === allStoreFilterValue
? { allStores: true }
: { storeId: selectedStoreId.value };
}
return { storeId: loginStoreId.value };
});
const eventListOptions = computed(() => ({ storeId: currentStoreStore.currentStoreId }));
// ---------- 列表数据 ----------
@@ -233,8 +197,7 @@ async function loadStoreScope(): Promise<void> {
return;
}
const store = await currentStoreStore.loadLoginStore();
loginStoreId.value = store?.id || "";
await currentStoreStore.loadLoginStore();
}
async function fetch(): Promise<void> {
@@ -279,21 +242,10 @@ async function loadData(): Promise<void> {
isNoMore.value = pageResult.list.length >= pageResult.total || pageResult.list.length < page.size;
}
async function selectStoreFilter(value: DropdownValue): Promise<void> {
if (Array.isArray(value)) {
return;
}
selectedStoreId.value = String(value);
await refresh();
}
async function toCreate(): Promise<void> {
await router.push({
path: "/management/registration-events/create",
query: isGlobalManager.value && selectedStoreId.value !== allStoreFilterValue
? { storeId: selectedStoreId.value }
: undefined
query: currentStoreStore.currentStoreId ? { storeId: currentStoreStore.currentStoreId } : undefined
});
}
@@ -320,19 +272,6 @@ onUnmounted(() => {
.registration-event-list {
padding: calc(var(--app-nav-height) + 1rem) 0 6rem 0;
&.has-filter {
padding-top: calc(var(--app-nav-height) + 4rem);
}
.filter-menu {
top: var(--app-nav-height);
left: 0;
right: 0;
z-index: 20;
position: fixed;
background: var(--td-bg-color-container);
}
.item {
.header {