1
0

pluginAvailable.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * 功能:插件检查
  3. */
  4. import {
  5. NeedPluginIds,
  6. NeedPlugins,
  7. checkNeedPluginAvailable
  8. } from "@/utils/plugin.js"
  9. const HaloPluginAvailableMixin = {
  10. data() {
  11. return {
  12. NeedPluginIds,
  13. NeedPlugins,
  14. uniHaloPluginAvailableError: "",
  15. uniHaloPluginAvailable: true,
  16. uniHaloPluginPageClass: "",
  17. uniHaloPluginId: "", // 当前需要的插件
  18. uniHaloPluginInfo: "" // 当前插件信息
  19. };
  20. },
  21. watch: {
  22. uniHaloPluginAvailable: {
  23. immediate: true,
  24. handler(val) {
  25. if (val) {
  26. this.uniHaloPluginPageClass = ""
  27. } else {
  28. this.uniHaloPluginPageClass = "box-border items-center justify-center"
  29. }
  30. }
  31. }
  32. },
  33. methods: {
  34. /** 设置插件ID */
  35. setPluginId(pluginId) {
  36. this.uniHaloPluginId = pluginId
  37. this.uniHaloPluginInfo = NeedPlugins.get(pluginId)
  38. },
  39. /** 检查插件状态 */
  40. async checkPluginAvailable(pluginId) {
  41. pluginId = pluginId ?? this.uniHaloPluginId
  42. if (!pluginId) return false;
  43. const available = await checkNeedPluginAvailable(pluginId)
  44. this.uniHaloPluginAvailable = available
  45. return available
  46. },
  47. /** 设置错误信息 */
  48. setPluginError(text) {
  49. this.uniHaloPluginAvailableError = text
  50. }
  51. },
  52. }
  53. export default HaloPluginAvailableMixin;