1
0

plugin.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import utils from '@/utils/index.js'
  2. import v2Apis from "@/api/v2/all.api.js"
  3. export const NeedPluginIds = Object.freeze({
  4. PluginUniHalo: "plugin-uni-halo",
  5. PluginPhotos: "PluginPhotos",
  6. PluginLinks: "PluginLinks",
  7. PluginMoments: "PluginMoments",
  8. PluginSearchWidget: "PluginSearchWidget",
  9. PluginCommentWidget: "PluginCommentWidget",
  10. PluginVote: "vote",
  11. PluginDataStatistics: 'data-statistics'
  12. })
  13. export const NeedPlugins = new Map([
  14. [
  15. NeedPluginIds.PluginUniHalo, {
  16. id: "plugin-uni-halo",
  17. name: "UniHalo配置",
  18. desc: "uni-halo 核心插件,未安装和启用的情况下,将无法使用 uni-halo,请检查是否已安装和启用",
  19. logo: utils.checkUrl("/plugins/plugin-uni-halo/assets/logo.png"),
  20. url: "https://www.halo.run/store/apps/app-ryemX"
  21. }
  22. ],
  23. [
  24. NeedPluginIds.PluginPhotos, {
  25. id: "PluginPhotos",
  26. name: "图库管理",
  27. desc: "图库功能模块所需要的插件",
  28. logo: utils.checkUrl("/plugins/PluginPhotos/assets/logo.svg"),
  29. url: "https://www.halo.run/store/apps/app-BmQJW"
  30. }
  31. ],
  32. [
  33. NeedPluginIds.PluginLinks, {
  34. id: "PluginLinks",
  35. name: "链接管理",
  36. desc: "链接管理模块,用于网站友情链接功能模块",
  37. logo: utils.checkUrl("/plugins/PluginLinks/assets/logo.svg"),
  38. url: "https://www.halo.run/store/apps/app-hfbQg"
  39. }
  40. ],
  41. [
  42. NeedPluginIds.PluginMoments, {
  43. id: "PluginMoments",
  44. name: "瞬间",
  45. desc: "提供一个轻量级的内容图文、视频、音频等内容展示",
  46. logo: utils.checkUrl("/plugins/PluginMoments/assets/logo.svg"),
  47. url: "https://www.halo.run/store/apps/app-SnwWD"
  48. }
  49. ],
  50. [
  51. NeedPluginIds.PluginSearchWidget, {
  52. id: "PluginSearchWidget",
  53. name: "搜索组件",
  54. desc: "为应用提供统一的搜索组件",
  55. logo: utils.checkUrl("/plugins/PluginSearchWidget/assets/logo.svg"),
  56. url: "https://www.halo.run/store/apps/app-DlacW"
  57. }
  58. ],
  59. [
  60. NeedPluginIds.PluginCommentWidget, {
  61. id: "PluginCommentWidget",
  62. name: "评论组件",
  63. desc: "为用户前台提供完整的评论解决方案",
  64. logo: utils.checkUrl("/plugins/PluginCommentWidget/assets/logo.svg"),
  65. url: "https://www.halo.run/store/apps/app-YXyaD"
  66. }
  67. ],
  68. [
  69. NeedPluginIds.PluginVote, {
  70. id: "vote",
  71. name: "投票管理",
  72. desc: "投票模块所需要的插件,用于展示投票和提交投票",
  73. logo: utils.checkUrl("/plugins/vote/assets/logo.png"),
  74. url: "https://www.halo.run/store/apps/app-veyvzyhv"
  75. }
  76. ],
  77. [
  78. NeedPluginIds.PluginDataStatistics, {
  79. id: "data-statistics",
  80. name: "数据看板",
  81. desc: "为 Halo2 提供强大的数据可视化统计功能,支持 Umami 流量统计、uptime、网站内部数据图表(标签、分类、文章趋势、评论排行、热门文章等)",
  82. logo: utils.checkUrl("/plugins/data-statistics/assets/logo.svg"),
  83. url: "https://www.halo.run/store/apps/app-rtnbbgfk"
  84. }
  85. ]
  86. ])
  87. /**
  88. * 检查插件是否启用、安装
  89. * @param {String} pluginId 插件id
  90. * @return {Boolean} true = 安装、启用 false= 未安装启用
  91. */
  92. export const checkNeedPluginAvailable = (pluginId) => {
  93. return new Promise(async (resolve) => {
  94. try {
  95. const available = await v2Apis.checkPluginAvailable(pluginId)
  96. resolve(available)
  97. } catch (err) {
  98. resolve(false)
  99. }
  100. })
  101. }