diff --git a/admin-frontend-vue/src/pages/account/GroupsPage.vue b/admin-frontend-vue/src/pages/account/GroupsPage.vue index b970ce10..83edb7fe 100644 --- a/admin-frontend-vue/src/pages/account/GroupsPage.vue +++ b/admin-frontend-vue/src/pages/account/GroupsPage.vue @@ -7,8 +7,7 @@ import { ElMessage } from 'element-plus' import { useAdminSessionStore } from '@/stores/admin-session' import { openAdminConfirm } from '@/components/admin-confirm' import { deleteShopGroup, fetchShopGroups } from './shop-group-api' -import { shopGroupSummary, type ShopGroupItem } from './shop-group-model' -import { dedupeGroupSummaryOf } from '@/pages/asin/dedupe-total-model' +import type { ShopGroupItem } from './shop-group-model' import GroupEditorDialog from './GroupEditorDialog.vue' const session = useAdminSessionStore() @@ -16,17 +15,21 @@ const loading = ref(false) const rows = ref([]) const editorVisible = ref(false) const editingGroup = ref(null) -const summary = computed(() => shopGroupSummary(rows.value)) const isSuperAdmin = computed(() => session.isSuperAdmin) const currentUserId = computed(() => session.user?.id ?? null) -/** 顶部摘要 chips(对齐 admin.js renderShopManageGroupSummary;与去重汇总同构)。 */ -const groupChips = computed(() => - dedupeGroupSummaryOf( - rows.value.map((g) => ({ id: g.id, name: g.name, leaderUserId: g.leaderUserId })), - currentUserId.value, - session.user?.role || '', - ), -) +/** 筛选:分组名称/组长 模糊过滤(用户要求账户域子菜单补筛选条件)。 */ +const filterKeyword = ref('') +const filterLeader = ref('') +const filteredRows = computed(() => { + const kw = (filterKeyword.value || '').trim().toLowerCase() + const ldr = (filterLeader.value || '').trim().toLowerCase() + if (!kw && !ldr) return rows.value + return rows.value.filter((g) => { + const nameOk = !kw || (g.name || '').toLowerCase().includes(kw) + const leaderOk = !ldr || (g.leaderUsername || '').toLowerCase().includes(ldr) + return nameOk && leaderOk + }) +}) function canEditOf(group: ShopGroupItem): boolean { if (isSuperAdmin.value) return true @@ -72,32 +75,23 @@ onMounted(loadGroups)