diff --git a/src/api/types/uni-halo.ts b/src/api/types/uni-halo.ts index 7e5252a..891a6ac 100644 --- a/src/api/types/uni-halo.ts +++ b/src/api/types/uni-halo.ts @@ -18,10 +18,14 @@ export interface IImagesConfig { export interface IPluginConfig { toolsPlugin?: { Authorization?: string } & Record /** - * 链接配置(插件端 spec.linkInfo 直接下发到本键,结构 = {miniInfo, siteInfo, authorInfo},字段名无映射; - * linksSubmitPlugin 旧键已弃用不再下发;votePlugin/linksPlugin 已下线(2026-09-10,app 端改插件启用检测判定)) + * 友链信息(插件端 spec.linkInfo 直接下发到本键,结构 = {submissionEnabled, miniInfo, siteInfo},字段名无映射; + * linksSubmitPlugin 旧键已弃用不再下发;votePlugin/linksPlugin 已下线(2026-09-10,app 端改插件启用检测判定); + * 2026-09-11 起新增基本配置 submissionEnabled(公开提交申请开关,原 setting linkConfig);authorInfo 已下线, + * 作者信息改读 authorConfig.blogger) */ linkInfo?: { + /** 基本配置:是否开放公开提交申请(默认 true;false 时隐藏「提交申请」入口) */ + submissionEnabled?: boolean /** 小程序信息(「申请信息」弹窗展示) */ miniInfo?: { displayName?: string @@ -30,22 +34,15 @@ export interface IPluginConfig { description?: string applyRemark?: string } - /** 站点信息(对齐 Halo 官方友链提交 API:displayName/url/logo/description/email/backlink/feedUrls) */ + /** 站点信息(对齐 Halo 官方友链提交 API:displayName/url/logo/description/backlink/feedUrls,2026-09-11 起不再含 email) */ siteInfo?: { displayName?: string url?: string logo?: string description?: string - email?: string backlink?: string feedUrls?: string[] } - /** 作者信息(小程序端作者区) */ - authorInfo?: { - authorName?: string - avatar?: string - website?: string - } } doubanPlugin?: { position?: string } & Record [key: string]: unknown @@ -121,6 +118,23 @@ export interface IPageConfig { aboutConfig?: { bgImageUrl?: string waveImageUrl?: string + /** 页脚版权(2026-09-10 起插件端从应用设置迁入,显示于关于页页脚) */ + copyrightConfig?: { + enabled?: boolean + content?: string + } + } + /** 免责声明页(2026-09-10 起插件端从应用设置迁入:不再有 enabled 开关,按内容非空展示) */ + disclaimers?: { + content?: string + } + /** 文章详情页配置(2026-09-10 起插件端从应用设置迁入:评论开关与版权文案) */ + postDetailConfig?: { + showComment?: boolean + copyrightEnabled?: boolean + copyrightAuthor?: string + copyrightDesc?: string + copyrightViolation?: string } [key: string]: unknown } @@ -169,8 +183,16 @@ export interface IAppConfig { personalToken?: string } } + /** + * 恋爱配置(2026-09-10 起插件端 loveEnabled 总开关下线,入口显隐由模块入口开关 + * (ourStory/lovePhoto/loveDaily.enabled)与 navList 统一管理,客户端按模块开关判定) + */ loveConfig?: Record imagesConfig?: IImagesConfig + /** + * 博主与社交(插件端 GeneralConfig.profile.blogger/social 重建;blogger 含 + * nickname/avatar/email/description/website(官网地址 2026-09-10 新增)) + */ authorConfig?: Record appConfig?: Record pluginConfig?: IPluginConfig diff --git a/src/components/uh-links-mini-info/uh-links-mini-info.vue b/src/components/uh-links-mini-info/uh-links-mini-info.vue index c8530fe..a08be4c 100644 --- a/src/components/uh-links-mini-info/uh-links-mini-info.vue +++ b/src/components/uh-links-mini-info/uh-links-mini-info.vue @@ -24,18 +24,20 @@ const emit = defineEmits<{ const isShow = ref(false) const appConfigStore = useAppConfigStore() -/** 小程序申请信息(字段与 uh-links-mini-apply 表单一致;小程序信息读 linkInfo.miniInfo、作者信息读 linkInfo.authorInfo,字段名无映射) */ +/** 小程序申请信息(字段与 uh-links-mini-apply 表单一致;小程序信息读 linkInfo.miniInfo; + * 作者信息 2026-09-10 起改读应用设置-博主资料 authorConfig.blogger(linkInfo.authorInfo 已下线),字段名无映射) */ const miniInfo = computed(() => { const miniCfg = (appConfigStore.configs.pluginConfig?.linkInfo?.miniInfo || {}) as Record - const authorCfg = (appConfigStore.configs.pluginConfig?.linkInfo?.authorInfo || {}) as Record + const blogger = (appConfigStore.configs.authorConfig?.blogger || {}) as Record const str = (cfg: Record, key: string, fallback = '') => String(cfg[key] || fallback || '') return { displayName: str(miniCfg, 'displayName'), miniProgramCode: str(miniCfg, 'miniProgramCode'), link: str(miniCfg, 'link'), - authorName: str(authorCfg, 'authorName'), - avatar: str(authorCfg, 'avatar'), - website: str(authorCfg, 'website'), + // 作者信息:博主资料 nickname/avatar/website(官网地址 2026-09-10 新增) + authorName: str(blogger, 'nickname'), + avatar: str(blogger, 'avatar'), + website: str(blogger, 'website'), description: str(miniCfg, 'description'), applyRemark: str(miniCfg, 'applyRemark'), email: str(miniCfg, 'email'), diff --git a/src/components/uh-links-site-info/uh-links-site-info.vue b/src/components/uh-links-site-info/uh-links-site-info.vue index 7c846da..671bd08 100644 --- a/src/components/uh-links-site-info/uh-links-site-info.vue +++ b/src/components/uh-links-site-info/uh-links-site-info.vue @@ -26,7 +26,6 @@ const blogDetail = computed(() => (appConfigStore.configs.pluginConfig?.linkInfo url?: string logo?: string description?: string - email?: string backlink?: string feedUrls?: string[] } | undefined) || {}) diff --git a/src/pages-blog/article-detail/article-detail.vue b/src/pages-blog/article-detail/article-detail.vue index c0676ae..5181b77 100644 --- a/src/pages-blog/article-detail/article-detail.vue +++ b/src/pages-blog/article-detail/article-detail.vue @@ -66,7 +66,7 @@ }) /* ---------------- 计算属性 ---------------- */ - const postDetailConfig = computed(() => (haloConfigs.value.basicConfig as { postDetailConfig ?: Record } | undefined)?.postDetailConfig) + const postDetailConfig = computed(() => (haloConfigs.value.pageConfig as { postDetailConfig ?: Record } | undefined)?.postDetailConfig) const bloggerInfo = computed(() => { const blogger = haloConfigs.value.authorConfig?.blogger as { nickname ?: string, avatar ?: string } | undefined diff --git a/src/pages-blog/contact/contact.vue b/src/pages-blog/contact/contact.vue index 39078ff..60761f3 100644 --- a/src/pages-blog/contact/contact.vue +++ b/src/pages-blog/contact/contact.vue @@ -1,148 +1,155 @@ + + + + TO · 收 + + + 素未谋面的朋友 + + + 展信安,见字如面。 + + + 自 · {{ bloggerInfo.nickname }} + + + + + {{ bloggerInfo.nickname }} + + + + + + + + + \ No newline at end of file diff --git a/src/pages-blog/disclaimers/disclaimers.vue b/src/pages-blog/disclaimers/disclaimers.vue index ef12400..54ffb10 100644 --- a/src/pages-blog/disclaimers/disclaimers.vue +++ b/src/pages-blog/disclaimers/disclaimers.vue @@ -16,8 +16,8 @@ const haloConfigs = computed(() => appConfigStore.configs) const disclaimersContent = computed(() => { - const basicConfig = haloConfigs.value.basicConfig as { disclaimers ?: { content ?: string } } | undefined - return basicConfig?.disclaimers?.content || '' + const pageConfig = haloConfigs.value.pageConfig as { disclaimers ?: { content ?: string } } | undefined + return pageConfig?.disclaimers?.content || '' }) const bloggerInfo = computed(() => { diff --git a/src/pages-blog/friend-links/friend-links.vue b/src/pages-blog/friend-links/friend-links.vue index 6a3ecc8..71419b2 100644 --- a/src/pages-blog/friend-links/friend-links.vue +++ b/src/pages-blog/friend-links/friend-links.vue @@ -68,6 +68,9 @@ async function handleMiniPluginRefresh() { handleGetMiniProgramLinks() } +/** 是否开放公开提交申请(通用配置-友链信息-基本配置 submissionEnabled,2026-09-11 由 setting linkConfig 迁入;默认 true) */ +const submissionEnabled = computed(() => (haloPluginConfigs.value?.linkInfo?.submissionEnabled ?? true)) + /* ---------------- tabs ---------------- */ const activeTabIndex = ref(0) @@ -575,8 +578,8 @@ onReachBottom(() => { - - + + diff --git a/src/pages-blog/submit-link/submit-link.vue b/src/pages-blog/submit-link/submit-link.vue deleted file mode 100644 index e2dc7af..0000000 --- a/src/pages-blog/submit-link/submit-link.vue +++ /dev/null @@ -1,209 +0,0 @@ - - -