保存一下

This commit is contained in:
2025-08-29 14:22:20 +08:00
parent edb725354e
commit 17024fbf89
15 changed files with 74 additions and 205 deletions

View File

@@ -1,13 +1,12 @@
import ProcessImpl from '@/core/process/impl/ProcessImpl.ts'
import type { ProcessInfoImpl } from '@/core/process/impl/ProcessInfoImpl.ts'
import XSystem from '@/core/XSystem.ts'
import { BasicSystemProcess } from '@/core/system/BasicSystemProcess.ts'
import { createApp, h } from 'vue'
import DesktopComponent from '@/core/desktop/ui/DesktopComponent.vue'
import { naiveUi } from '@/core/common/naive-ui/components.ts'
import { DesktopEventEnum } from '@/core/events/EventTypes.ts'
import { debounce } from 'lodash'
import type { IProcessInfo } from '@/core/process/IProcessInfo.ts'
import { eventManager } from '@/core/events/EventManager.ts'
import { processManager } from '@/core/process/ProcessManager.ts'
export class DesktopProcess extends ProcessImpl {
private _desktopRootDom: HTMLElement;
@@ -23,7 +22,7 @@ export class DesktopProcess extends ProcessImpl {
return this._isMounted;
}
public get basicSystemProcess() {
return XSystem.instance.processManage.findProcessByName<BasicSystemProcess>('basic-system')
return processManager.findProcessByName<BasicSystemProcess>('basic-system')
}
public get width() {
@@ -58,15 +57,11 @@ export class DesktopProcess extends ProcessImpl {
if (this._pendingResize) {
this._pendingResize = false;
console.log('onDesktopRootDomResize')
this.eventManages.notifyEvent(DesktopEventEnum.onDesktopRootDomResize, this._width, this._height);
eventManager.notifyEvent('onDesktopRootDomResize', this._width, this._height);
}
});
}
private get eventManages() {
return XSystem.instance.eventManage;
}
constructor(info: IProcessInfo) {
super(info)
console.log('DesktopProcess')

View File

@@ -24,18 +24,16 @@ import type { DesktopProcess } from '@/core/desktop/DesktopProcess.ts'
import XSystem from '@/core/XSystem.ts'
import { notificationApi } from '@/core/common/naive-ui/discrete-api.ts'
import { configProviderProps } from '@/core/common/naive-ui/theme.ts'
import { DesktopEventEnum } from '@/core/events/EventTypes.ts'
import { useDesktopInit } from '@/core/desktop/ui/hooks/useDesktopInit.ts'
import AppIcon from '@/core/desktop/ui/components/AppIcon.vue'
import { watch } from 'vue'
import type { IDesktopAppIcon } from '@/core/desktop/types/IDesktopAppIcon.ts'
import { eventManager } from '@/core/events/EventManager.ts'
const props = defineProps<{ process: DesktopProcess }>()
const { appIconsRef, gridStyle, gridTemplate } = useDesktopInit('.desktop-icons-container')
XSystem.instance.eventManage.addEventListener(
DesktopEventEnum.onDesktopRootDomResize,
eventManager.addEventListener('onDesktopRootDomResize',
(width, height) => {
console.log(width, height)
notificationApi.create({

View File

@@ -13,8 +13,7 @@
<script setup lang="ts">
import type { IDesktopAppIcon } from '@/core/desktop/types/IDesktopAppIcon.ts'
import type { IGridTemplateParams } from '@/core/desktop/types/IGridTemplateParams.ts'
import XSystem from '@/core/XSystem.ts'
import { DesktopEventEnum } from '@/core/events/EventTypes.ts'
import { eventManager } from '@/core/events/EventManager.ts'
const { iconInfo, gridTemplate } = defineProps<{ iconInfo: IDesktopAppIcon, gridTemplate: IGridTemplateParams }>()
@@ -27,7 +26,7 @@ const onDragEnd = (e: DragEvent) => {
const pointTarget = document.elementFromPoint(e.clientX, e.clientY)
if (!pointTarget) return
if (pointTarget.classList.contains('icon-container')) return
if (!pointTarget.classList.contains('desktop-container')) return
if (!pointTarget.classList.contains('desktop-icons-container')) return
// 获取容器边界
const rect = el.parentElement!.getBoundingClientRect()
@@ -43,7 +42,7 @@ const onDragEnd = (e: DragEvent) => {
iconInfo.x = gridX
iconInfo.y = gridY
XSystem.instance.eventManage.notifyEvent(DesktopEventEnum.onDesktopAppIconPos, iconInfo)
eventManager.notifyEvent('onDesktopAppIconPos', iconInfo)
}
</script>

View File

@@ -1,4 +1,3 @@
import XSystem from '@/core/XSystem.ts'
import type { IDesktopAppIcon } from '@/core/desktop/types/IDesktopAppIcon.ts'
import {
computed,
@@ -14,9 +13,9 @@ import {
watch,
watchEffect,
} from 'vue'
import { DesktopEventEnum } from '@/core/events/EventTypes.ts'
import { useDraggable } from '@vueuse/core'
import type { IGridTemplateParams } from '@/core/desktop/types/IGridTemplateParams.ts'
import { eventManager } from '@/core/events/EventManager.ts'
import { processManager } from '@/core/process/ProcessManager.ts'
export function useDesktopInit(containerStr: string) {
let container:HTMLElement
@@ -60,7 +59,7 @@ export function useDesktopInit(containerStr: string) {
})
// 有桌面图标的app
const appInfos = XSystem.instance.processManage.processInfos.filter(processInfo => !processInfo.isJustProcess)
const appInfos = processManager.processInfos.filter(processInfo => !processInfo.isJustProcess)
const oldAppIcons: IDesktopAppIcon[] = JSON.parse(localStorage.getItem('desktopAppIconInfo') || '[]')
const appIcons: IDesktopAppIcon[] = appInfos.map((processInfo, index) => {
const oldAppIcon = oldAppIcons.find(oldAppIcon => oldAppIcon.name === processInfo.name)
@@ -89,7 +88,7 @@ export function useDesktopInit(containerStr: string) {
exceedApp.value = hideAppIcons
})
XSystem.instance.eventManage.addEventListener(DesktopEventEnum.onDesktopAppIconPos, (iconInfo) => {
eventManager.addEventListener('onDesktopAppIconPos', (iconInfo) => {
localStorage.setItem('desktopAppIconInfo', JSON.stringify(toValue(appIconsRef.value)))
})