1
0
mirror of https://github.com/ialley-workshop-open/uni-halo.git synced 2026-06-10 20:29:28 +08:00
Files
uni-halo/utils/plugin.js
T

104 lines
3.2 KiB
JavaScript

import utils from '@/utils/index.js'
import v2Apis from "@/api/v2/all.api.js"
export const NeedPluginIds = Object.freeze({
PluginUniHalo: "plugin-uni-halo",
PluginPhotos: "PluginPhotos",
PluginLinks: "PluginLinks",
PluginMoments: "PluginMoments",
PluginSearchWidget: "PluginSearchWidget",
PluginCommentWidget: "PluginCommentWidget",
PluginVote: "vote",
PluginDataStatistics: 'data-statistics'
})
export const NeedPlugins = new Map([
[
NeedPluginIds.PluginUniHalo, {
id: "plugin-uni-halo",
name: "UniHalo配置",
desc: "uni-halo 核心插件,未安装和启用的情况下,将无法使用 uni-halo,请检查是否已安装和启用",
logo: utils.checkUrl("/plugins/plugin-uni-halo/assets/logo.png"),
url: "https://www.halo.run/store/apps/app-ryemX"
}
],
[
NeedPluginIds.PluginPhotos, {
id: "PluginPhotos",
name: "图库管理",
desc: "图库功能模块所需要的插件",
logo: utils.checkUrl("/plugins/PluginPhotos/assets/logo.svg"),
url: "https://www.halo.run/store/apps/app-BmQJW"
}
],
[
NeedPluginIds.PluginLinks, {
id: "PluginLinks",
name: "链接管理",
desc: "链接管理模块,用于网站友情链接功能模块",
logo: utils.checkUrl("/plugins/PluginLinks/assets/logo.svg"),
url: "https://www.halo.run/store/apps/app-hfbQg"
}
],
[
NeedPluginIds.PluginMoments, {
id: "PluginMoments",
name: "瞬间",
desc: "提供一个轻量级的内容图文、视频、音频等内容展示",
logo: utils.checkUrl("/plugins/PluginMoments/assets/logo.svg"),
url: "https://www.halo.run/store/apps/app-SnwWD"
}
],
[
NeedPluginIds.PluginSearchWidget, {
id: "PluginSearchWidget",
name: "搜索组件",
desc: "为应用提供统一的搜索组件",
logo: utils.checkUrl("/plugins/PluginSearchWidget/assets/logo.svg"),
url: "https://www.halo.run/store/apps/app-DlacW"
}
],
[
NeedPluginIds.PluginCommentWidget, {
id: "PluginCommentWidget",
name: "评论组件",
desc: "为用户前台提供完整的评论解决方案",
logo: utils.checkUrl("/plugins/PluginCommentWidget/assets/logo.svg"),
url: "https://www.halo.run/store/apps/app-YXyaD"
}
],
[
NeedPluginIds.PluginVote, {
id: "vote",
name: "投票管理",
desc: "投票模块所需要的插件,用于展示投票和提交投票",
logo: utils.checkUrl("/plugins/vote/assets/logo.png"),
url: "https://www.halo.run/store/apps/app-veyvzyhv"
}
],
[
NeedPluginIds.PluginDataStatistics, {
id: "data-statistics",
name: "数据看板",
desc: "为 Halo2 提供强大的数据可视化统计功能,支持 Umami 流量统计、uptime、网站内部数据图表(标签、分类、文章趋势、评论排行、热门文章等)",
logo: utils.checkUrl("/plugins/data-statistics/assets/logo.svg"),
url: "https://www.halo.run/store/apps/app-rtnbbgfk"
}
]
])
/**
* 检查插件是否启用、安装
* @param {String} pluginId 插件id
* @return {Boolean} true = 安装、启用 false= 未安装启用
*/
export const checkNeedPluginAvailable = (pluginId) => {
return new Promise(async (resolve) => {
try {
const available = await v2Apis.checkPluginAvailable(pluginId)
resolve(available)
} catch (err) {
resolve(false)
}
})
}