1
0
mirror of https://github.com/ialley-workshop-open/uni-halo.git synced 2026-09-12 16:40:40 +08:00

refactor: 重构插件可用性检测逻辑,统一传参和状态管理

1.  抽离统一的插件ID枚举NeedPluginIds,替换硬编码的插件ID字符串
2.  修改usePluginAvailable调用方式,改为对象传参模式
3.  统一插件不可用页面的提示文本和刷新逻辑,新增检测状态绑定
4.  优化uh-plugin-unavailable组件的兜底数据和样式
This commit is contained in:
小莫唐尼
2026-09-04 20:45:08 +08:00
parent 02fa9e4294
commit e371f1b1d6
8 changed files with 99 additions and 46 deletions
+28 -10
View File
@@ -31,13 +31,29 @@ const settingStore = useSettingStore()
const haloPluginConfigs = computed(() => appConfigStore.configs.pluginConfig)
const globalAppSettings = computed(() => settingStore.settings)
/* ---------------- 依赖插件 ---------------- */
/** 站点 tab:plugin-links */
const sitePluginId = NeedPluginIds.PluginLinks
const { available: sitePluginAvailable, check: checkSitePluginAvailable } = usePluginAvailable(sitePluginId)
/* ---------------- 依赖插件(参考 gallery 对象传参模式) ---------------- */
/** 站点 tab:PluginLinks */
const { pluginId: sitePluginId, checking: siteChecking, tips: siteTips, available: sitePluginAvailable, check: checkSitePluginAvailable } = usePluginAvailable({
pluginId: NeedPluginIds.PluginLinks,
tips: '检测到当前插件没有安装或者启用,无法使用友情链接功能哦,请联系管理员',
})
/** 小程序 tab:plugin-uni-halo */
const miniPluginId = NeedPluginIds.PluginUniHalo
const { available: miniPluginAvailable, check: checkMiniPluginAvailable } = usePluginAvailable(miniPluginId)
const { pluginId: miniPluginId, checking: miniChecking, tips: miniTips, available: miniPluginAvailable, check: checkMiniPluginAvailable } = usePluginAvailable({
pluginId: NeedPluginIds.PluginUniHalo,
tips: '检测到当前插件没有安装或者启用,无法使用小程序链接功能哦,请联系管理员',
})
/** 重新检测站点插件:可用则拉取友链数据(供 uh-plugin-unavailable 刷新按钮) */
async function handleSitePluginRefresh() {
if (await checkSitePluginAvailable())
handleGetLinkGroupData()
}
/** 重新检测小程序插件:可用则拉取小程序链接数据(供 uh-plugin-unavailable 刷新按钮) */
async function handleMiniPluginRefresh() {
if (await checkMiniPluginAvailable())
handleGetMiniProgramLinks()
}
/* ---------------- tabs ---------------- */
const activeTabIndex = ref(0)
@@ -357,8 +373,9 @@ onReachBottom(() => {
<uh-plugin-unavailable
v-if="!sitePluginAvailable"
:plugin-id="sitePluginId"
error-text="检测到当前插件没有安装或者启用无法使用友情链接功能哦请联系管理员"
@on-refresh="handleGetLinkGroupData"
:error-text="siteTips"
:checking="siteChecking"
@on-refresh="handleSitePluginRefresh"
/>
<template v-else>
<!-- 加载/错误/空占位(状态机) -->
@@ -455,8 +472,9 @@ onReachBottom(() => {
<uh-plugin-unavailable
v-if="!miniPluginAvailable"
:plugin-id="miniPluginId"
error-text="检测到当前插件没有安装或者启用无法使用小程序链接功能哦请联系管理员"
@on-refresh="handleGetMiniProgramLinks"
:error-text="miniTips"
:checking="miniChecking"
@on-refresh="handleMiniPluginRefresh"
/>
<template v-else>
<!-- 加载/错误/空占位(状态机) -->