From 8d77a338d4e062f1ed72494069a563dd5a105e66 Mon Sep 17 00:00:00 2001 From: M1LKTEA <3494199620@qq.com> Date: Tue, 24 Mar 2026 10:22:53 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E4=B8=BA=E5=8D=A1=E7=89=87?= =?UTF-8?q?=E8=A7=86=E5=9B=BE=E5=A2=9E=E5=8A=A0=E4=BD=9C=E8=80=85=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dashboard/src/components/shared/ExtensionCard.vue | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/dashboard/src/components/shared/ExtensionCard.vue b/dashboard/src/components/shared/ExtensionCard.vue index 1e37314fdf..061a76c56f 100644 --- a/dashboard/src/components/shared/ExtensionCard.vue +++ b/dashboard/src/components/shared/ExtensionCard.vue @@ -68,6 +68,17 @@ const astrbotVersionRequirement = computed(() => { : ""; }); +// 作者显示(兼容多种字段名) +const authorDisplay = computed(() => { + const ext = props.extension || {}; + if (typeof ext.author === 'string' && ext.author.trim()) return ext.author; + if (Array.isArray(ext.authors) && ext.authors.length) return ext.authors.join(', '); + if (typeof ext.author_name === 'string' && ext.author_name.trim()) return ext.author_name; + if (typeof ext.owner === 'string' && ext.owner.trim()) return ext.owner; + if (ext.author && typeof ext.author === 'object' && ext.author.name) return ext.author.name; + return ''; +}); + const logoLoadFailed = ref(false); const logoSrc = computed(() => { @@ -345,6 +356,10 @@ const viewChangelog = () => { {{ tag === "danger" ? tm("tags.danger") : tag }} + + + {{ authorDisplay }} + Date: Tue, 24 Mar 2026 10:27:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat=EF=BC=9A=E7=BD=AE=E9=A1=B6=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E9=9D=A2=E6=9D=BF=E6=96=B0=E5=A2=9E=E4=BD=9C=E8=80=85?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E4=B8=8E=E6=8F=92=E4=BB=B6=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/extension/PinnedPluginItem.vue | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/dashboard/src/components/extension/PinnedPluginItem.vue b/dashboard/src/components/extension/PinnedPluginItem.vue index 8fbb7dfd0b..f836b1134d 100644 --- a/dashboard/src/components/extension/PinnedPluginItem.vue +++ b/dashboard/src/components/extension/PinnedPluginItem.vue @@ -39,6 +39,16 @@ const emit = defineEmits([ const handlePinnedImgError = (e) => { e.target.src = defaultPluginIcon; }; + +const authorDisplay = computed(() => { + const p = props.plugin || {}; + if (typeof p.author === 'string' && p.author.trim()) return p.author; + if (Array.isArray(p.authors) && p.authors.length) return p.authors.join(', '); + if (typeof p.author_name === 'string' && p.author_name.trim()) return p.author_name; + if (typeof p.owner === 'string' && p.owner.trim()) return p.owner; + if (p.author && typeof p.author === 'object' && p.author.name) return p.author.name; + return ''; +}); + +
+ + + +
+
{{ plugin.display_name || plugin.name }}
+
{{ authorDisplay || (plugin.author || '') }}
+
+
+
+