fix: 修正复制链接插件和复制插件冲突的问题

This commit is contained in:
539943419 committed 2025-03-31 22:42:54 +08:00
1 parent 5d0abf5ac9
commit 6f42c634ff
3 files changed
+68 -4

No files matched your search

+66
View File
@@ -0,0 +1,66 @@
import { PluginGroup, registerComponentOption } from "@/class/PluginCenter"
import VirtualDirectory, { VirtualFile } from "@/class/VirtualDirectory"
import VirtualPage from "@/class/VirtualPage"
import usePluginCenter from "@/hooks/usePluginCenter"
import useVirtualPages from "@/hooks/useVirtualPages"
export const componentOption2pluginOption = (option: registerComponentOption) => {
const {
key,
name,
getComponent,
icon,
filter,
group = [PluginGroup.default],
disable = false,
exitConfirm = false,
single = false,
priority = 0
} = option
let _component: any
const views = useVirtualPages()
const pluginCenter = usePluginCenter()
return {
name,
filter,
icon: shallowRef(icon),
group,
disable,
priority,
func: async (
VDirectories: VirtualDirectory[],
VFiles: VirtualFile[]
) => {
if (filter(VDirectories, VFiles) === false) {
return
}
if (_component === undefined) {
const setAlertTip = pluginCenter.globalAlertTip(`加载 ${name} 插件中`)
_component = await getComponent()
setAlertTip &&
setAlertTip(`加载 ${name} 插件完成`, {
type: 'success',
timeout: 2000
})
}
const _findRes = views.find(_component) as VirtualPage[]
if (single && _findRes.length !== 0) {
const view = _findRes[0]
view.currentFiles = [...view.currentFiles, ...VFiles]
view.currentDirectories = [
...view.currentDirectories,
...VDirectories
]
} else {
views.push(_component, key, VDirectories, VFiles, {
VirtualPageOption: {
exitConfirm,
allowCopy: single === false
}
})
}
}
}
}