From 227af685d432adfea5284fdb1169c45e63f1db0d Mon Sep 17 00:00:00 2001 From: Ap_Tx <3045929398@qq.com> Date: Thu, 22 Oct 2026 22:07:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E6=9D=83=E9=99=90=E7=BB=84=E3=80=81=E5=85=AC?= =?UTF-8?q?=E5=91=8A=E5=8F=91=E5=B8=83=E4=BA=BA=E4=B8=8E=E9=97=AE=E5=8D=B7?= =?UTF-8?q?=E9=80=89=E9=A1=B9=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 用户列表新增权限组列,展示权限标签 - 公告发布人由 UUID 解析为用户名 - 问卷选择题作答由选项 ID 解析为选项文字 - 维基默认打开首页,内部链接标题不再被替换下划线 --- .../components/ui/skin-site/SkinSiteHome.vue | 2 +- .../ui/skin-site/admin/AdminBroadcastPage.vue | 24 ++++++++++- .../ui/skin-site/admin/AdminReviewPage.vue | 15 +++++-- .../ui/skin-site/admin/AdminUsersPage.vue | 40 +++++++++++++++++++ .../ui/skin-site/wiki/WikiNodeRenderer.vue | 2 +- .../app-frontend/src/locales/en-US/index.json | 1 + .../app-frontend/src/locales/zh-CN/index.json | 1 + 7 files changed, 78 insertions(+), 7 deletions(-) diff --git a/apps/app-frontend/src/components/ui/skin-site/SkinSiteHome.vue b/apps/app-frontend/src/components/ui/skin-site/SkinSiteHome.vue index 6b5bd37..3096537 100644 --- a/apps/app-frontend/src/components/ui/skin-site/SkinSiteHome.vue +++ b/apps/app-frontend/src/components/ui/skin-site/SkinSiteHome.vue @@ -101,7 +101,7 @@ function onBugCreated(id: number) { @open="openBug" /> - + ([]) +const uploaderNames = ref>({}) const loading = ref(true) const failed = ref(false) const saving = ref(false) @@ -154,11 +157,28 @@ const canSave = computed( () => form.value.title.trim().length > 0 && form.value.content.length > 0 && !saving.value, ) +function uploaderName(uuid: string): string { + return uploaderNames.value[uuid] ?? uuid +} + +async function loadUploaderNames() { + try { + const res = await skinSiteAdminUserList({ limit: 200, offset: 0 }) + if (!res.success) return + const users: SkinSiteAdminUser[] = res.payload ?? [] + const map: Record = {} + for (const u of users) map[u.uuid] = u.username + uploaderNames.value = map + } catch { + // 名称映射失败不影响公告列表展示 + } +} + async function load() { loading.value = true failed.value = false try { - const result = await skinSiteBroadcasts() + const [result] = await Promise.all([skinSiteBroadcasts(), loadUploaderNames()]) if (!result.success) throw new Error(result.errorMessage) items.value = result.payload ?? [] } catch (error) { @@ -248,7 +268,7 @@ onMounted(() => void load()) {{ formatDate(item.updateAt) }} - {{ formatMessage(messages.uploader, { name: item.uploader }) }} + {{ formatMessage(messages.uploader, { name: uploaderName(item.uploader) }) }}