爱蒙编辑器(vue,一键打开)

2021/11/18 下午3:32:59

// ==UserScript==
// @name        爱蒙编辑器(vue,一键打开)
// @namespace   Violentmonkey Scripts
// @include       http://localhost*
// @include       http://127.0.0.1*
// @grant       none
// @version     0.4.4
// @author      -
// @description 2021/11/18 下午3:32:59
// ==/UserScript==

document.addEventListener('keyup',(event)=>{
  if(event.keyCode === 190 && event.target.tagName !== 'INPUT' && typeof app !== 'undefined'){
    const vue3Url = (window?.__VUE_DEVTOOLS_GLOBAL_HOOK__.apps?.[0]?.app?.config?.globalProperties.$route.matched.slice(-1))?.[0].components.default.__file
    if(vue3Url){
      console.log(vue3Url)
      fetch(`/__open-in-editor?file=${vue3Url}`)
    }else if(window.uni){
      const app = window?.__VUE_DEVTOOLS_GLOBAL_HOOK__.apps?.[0]?.app
      const baseSrc = app._component.__file.replace('/App.vue','')
      const fileUrl = baseSrc + app.router.currentRoute.value.fullPath + '.vue'
      fetch(`/__open-in-editor?file=${fileUrl}`)
    }else if(app){
      const vm =  app.__vue__
      const fileUrl = vm.$route.matched[vm.$route.matched.length - 1].components.default.__file
      fetch(`/__open-in-editor?file=${fileUrl}`)
    }else if(typeof getApp === 'function' && localStorage.getItem('custom-file-base-url')){
      const url = localStorage.getItem('custom-file-base-url') + getApp()._route.fullPath + '.vue'
      console.log(url)
      fetch(`/__open-in-editor?file=${url}`)
  }
  }
})