2021/11/18 下午3:32:59
当前为
// ==UserScript==
// @name 爱蒙编辑器(vue,一键打开)
// @namespace Violentmonkey Scripts
// @include http://localhost*
// @include http://127.0.0.1*
// @include http://0.0.0.0*
// @include http://192.168.*
// @grant none
// @version 0.6.1
// @author -
// @description 2021/11/18 下午3:32:59
// ==/UserScript==
document.addEventListener('click', event=>{
if (event.ctrlKey) {
event.preventDefault()
event.stopPropagation()
const app = useNuxtApp()
const rootDir = app.vueApp._component.__file.replace(/node_modules.*/,'')
const src = event.srcElement.getAttribute('data-v-inspector')
fetch(`/__open-in-editor?file=${rootDir + src}`).then(()=>{
highlight(event.srcElement)
})
}
})
document.addEventListener('keyup', (event) => {
if (event.keyCode === 190 && event.target.tagName !== 'INPUT') {
if (window.useNuxtApp) {
const app = useNuxtApp()
if(event.ctrlKey){
console.log(1)
console.log(event.target)
}else{
fetch(`/__open-in-editor?file=${app._route.matched[app._route.matched.length - 1].components.default.__file}`)
}
return false
}
if (window.__vite_plugin_ssr) {
const baseSrc = __VUE_DEVTOOLS_GLOBAL_HOOK__.apps[2].app._instance.subTree.type.__file.replace(/renderer\/.*/, '')
let pathname = location.pathname + '/index'
const list = __vite_plugin_ssr['setPageFiles.ts'].pageFilesAll
let fileUrl = ''
if (pathname === '//index') {
file = list.find(item => item.pageId === '/src/pages/index/index')
fileUrl = file.filePath
} else {
file = list.find(item => item.pageId.includes(pathname))
fileUrl = file.filePath
}
console.log(fileUrl)
fetch(`/__open-in-editor?file=${baseSrc + fileUrl}`)
return false
}
if (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}`)
}
}
})
function highlight(clickedElement) {
const rect = clickedElement.getBoundingClientRect()
const frame = document.createElement('div')
frame.style.position = 'absolute'
frame.style.top = rect.top + window.scrollY + 'px'
frame.style.left = rect.left + window.scrollX + 'px'
frame.style.width = rect.width - 4 + 'px'
frame.style.height = rect.height - 4 + 'px'
frame.style.border = 'solid 2px gold'
frame.style.borderRadius = '5px'
frame.style.zIndex = '99999'
frame.style.pointerEvents = 'none'
document.body.appendChild(frame)
$(frame).fadeIn(300, 'swing').delay(500).fadeOut(500, 'swing')
}