plugin.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. })
  12. export const NeedPlugins = new Map([
  13. [
  14. NeedPluginIds.PluginUniHalo, {
  15. id: "plugin-uni-halo",
  16. name: "UniHalo配置",
  17. desc: "uni-halo 核心插件,未安装和启用的情况下,将无法使用 uni-halo,请检查是否已安装和启用。",
  18. logo: utils.checkUrl("/plugins/plugin-uni-halo/assets/logo.png"),
  19. url: "https://www.halo.run/store/apps/app-ryemX"
  20. }
  21. ],
  22. [
  23. NeedPluginIds.PluginPhotos, {
  24. id: "PluginPhotos",
  25. name: "图库管理",
  26. desc: "图库功能模块所需要的插件,用于展示",
  27. logo: utils.checkUrl("/plugins/PluginPhotos/assets/logo.svg"),
  28. url: "https://www.halo.run/store/apps/app-BmQJW"
  29. }
  30. ],
  31. [
  32. NeedPluginIds.PluginLinks, {
  33. id: "PluginLinks",
  34. name: "链接管理",
  35. desc: "链接管理模块,用于网站友情链接功能模块。",
  36. logo: utils.checkUrl("/plugins/PluginLinks/assets/logo.svg"),
  37. url: "https://www.halo.run/store/apps/app-hfbQg"
  38. }
  39. ],
  40. [
  41. NeedPluginIds.PluginMoments, {
  42. id: "PluginMoments",
  43. name: "瞬间",
  44. desc: "提供一个轻量级的内容图文、视频、音频等内容展示。",
  45. logo: utils.checkUrl("/plugins/PluginMoments/assets/logo.svg"),
  46. url: "https://www.halo.run/store/apps/app-SnwWD"
  47. }
  48. ],
  49. [
  50. NeedPluginIds.PluginSearchWidget, {
  51. id: "PluginSearchWidget",
  52. name: "搜索组件",
  53. desc: "为应用提供统一的搜索组件。",
  54. logo: utils.checkUrl("/plugins/PluginSearchWidget/assets/logo.svg"),
  55. url: "https://www.halo.run/store/apps/app-DlacW"
  56. }
  57. ],
  58. [
  59. NeedPluginIds.PluginCommentWidget, {
  60. id: "PluginCommentWidget",
  61. name: "评论组件",
  62. desc: "为用户前台提供完整的评论解决方案",
  63. logo: utils.checkUrl("/plugins/PluginCommentWidget/assets/logo.svg"),
  64. url: "https://www.halo.run/store/apps/app-YXyaD"
  65. }
  66. ],
  67. [
  68. NeedPluginIds.PluginVote, {
  69. id: "vote",
  70. name: "投票管理",
  71. desc: "投票模块所需要的插件,用于展示投票和提交投票",
  72. logo: utils.checkUrl("/plugins/vote/assets/logo.png"),
  73. url: "https://www.halo.run/store/apps/app-veyvzyhv"
  74. }
  75. ]
  76. ])
  77. /**
  78. * 检查插件是否启用、安装
  79. * @param {String} pluginId 插件id
  80. * @return {Boolean} true = 安装、启用 false= 未安装启用
  81. */
  82. export const checkNeedPluginAvailable = (pluginId) => {
  83. return new Promise(async (resolve) => {
  84. try {
  85. const available = await v2Apis.checkPluginAvailable(pluginId)
  86. resolve(available)
  87. } catch (err) {
  88. resolve(false)
  89. }
  90. })
  91. }