From e1eb58d4c499200108b9579156384859b88dcb85 Mon Sep 17 00:00:00 2001 From: Vicky <10212746+haifeng-jiang@user.noreply.gitee.com> Date: Tue, 27 Oct 2026 14:27:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E5=88=97=E8=A1=A8=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=8C=89=E7=B3=BB=E7=BB=9F=E7=AD=9B=E9=80=89=EF=BC=8C?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=88=97=E8=A1=A5=E8=AF=AD=E4=B9=89=E6=A0=87?= =?UTF-8?q?=E7=AD=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 收藏/点赞/观看增加「全部系统 / Android / iOS」下拉 - 用户列第二行标注 UID,游客行标注设备,避免一串字母看不出含义 --- src/api/admin/appUser.ts | 2 ++ src/api/admin/engagement.ts | 2 ++ src/views/components/AppUserCell.vue | 18 +++++------ src/views/userManagement/FavoritesView.vue | 31 ++++++++++++++++-- src/views/userManagement/LikesView.vue | 32 +++++++++++++++++-- src/views/userManagement/WatchHistoryView.vue | 22 +++++++++++++ 6 files changed, 93 insertions(+), 14 deletions(-) diff --git a/src/api/admin/appUser.ts b/src/api/admin/appUser.ts index 884938d..7879b04 100644 --- a/src/api/admin/appUser.ts +++ b/src/api/admin/appUser.ts @@ -21,6 +21,8 @@ export interface WatchHistoryPageParams { dramaTitle?: string dramaId?: number episodeId?: number + /** 客户端平台:ANDROID / IOS / WEB */ + platform?: string source?: string finished?: boolean startTime?: string diff --git a/src/api/admin/engagement.ts b/src/api/admin/engagement.ts index b856ecb..13cf0b4 100644 --- a/src/api/admin/engagement.ts +++ b/src/api/admin/engagement.ts @@ -10,6 +10,8 @@ export interface EngagementPageParams { keyword?: string userId?: string | number deviceId?: string + /** 客户端平台:ANDROID / IOS / WEB */ + platform?: string dramaId?: string | number dramaTitle?: string targetType?: string diff --git a/src/views/components/AppUserCell.vue b/src/views/components/AppUserCell.vue index eb2866d..47cb37e 100644 --- a/src/views/components/AppUserCell.vue +++ b/src/views/components/AppUserCell.vue @@ -6,8 +6,8 @@ import { computed } from 'vue' /** * 后台各列表共用的「用户」单元格。 * - * 口径:已登录显示昵称 + uid;未登录显示「游客」标签 + deviceId(单行省略,悬浮看全值)。 - * 客户端平台由独立的「系统」列展示,这里不再重复。 + * 口径:已登录显示昵称 + `UID xxx`;未登录显示「游客」标签 + `设备 xxx`。 + * 两行都带标签,避免一串随机字母看不出是什么。平台由独立的「系统」列展示。 */ const props = defineProps({ row: { type: Object, required: true } @@ -20,15 +20,15 @@ const isGuest = computed(() => props.row?.userId == null)
diff --git a/src/views/userManagement/FavoritesView.vue b/src/views/userManagement/FavoritesView.vue index 105a85f..295a13a 100644 --- a/src/views/userManagement/FavoritesView.vue +++ b/src/views/userManagement/FavoritesView.vue @@ -9,8 +9,19 @@ import { pageFavoritesApi } from '@/api/admin/engagement' import { platformText } from './composables/useAppUsers' const PAGE_SIZES = [10, 20, 50] +const PLATFORM_OPTIONS = [ + { value: '', label: '全部系统' }, + { value: 'ANDROID', label: 'Android' }, + { value: 'IOS', label: 'iOS' } +] -const filters = reactive({ keyword: '', deviceId: '', dramaTitle: '', range: null }) +const filters = reactive({ + keyword: '', + deviceId: '', + dramaTitle: '', + platform: '', + range: null +}) const rows = ref([]) const total = ref(0) const loading = ref(false) @@ -26,7 +37,7 @@ async function load() { keyword: filters.keyword.trim() || undefined, deviceId: filters.deviceId.trim() || undefined, dramaTitle: filters.dramaTitle.trim() || undefined, - + platform: filters.platform || undefined, startTime: filters.range?.[0] || undefined, endTime: filters.range?.[1] || undefined }) @@ -43,7 +54,13 @@ function search() { } function resetFilters() { - Object.assign(filters, { keyword: '', deviceId: '', dramaTitle: '', range: null }) + Object.assign(filters, { + keyword: '', + deviceId: '', + dramaTitle: '', + platform: '', + range: null + }) search() } @@ -84,6 +101,14 @@ onMounted(load) placeholder="短剧名称" @keyup.enter="search" /> +