# YunGoo **Repository Path**: redboy88_admin/YunGoo ## Basic Information - **Project Name**: YunGoo - **Description**: YunGoo是一个Windows 10风格UI网页版在线桌面系统。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-05-07 - **Last Updated**: 2022-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YunGoo! ## 简述   YunGoo是一个Windows 10风格UI网页版在线桌面系统。前端桌面使用原生JavaScript进行搭建,包含桌面图标、任务栏(包含通知中心、日历组件等)、窗口、鼠标等部分,应用窗口部分使用iframe嵌入网页,在进行少量配置后可以实现与任意项目的连接。后端服务器使用Nodejs + Express进行搭建,通过Socket.io配合Ajax进行实时通信和数据保存。目前实现的主要功能有: 1.桌面图标的任意拖拽与删除 2.窗口的打开、关闭、最大化、最小化、任意拖拽 3.任务栏图标与窗口的联动 4.通知中心的信息发布 5.对桌面图标和任务栏图标的右键菜单功能实现 6.应用信息、窗口位置、状态等数据的实时保存 7.... ![主界面](./assets/主界面.png) ![多窗口系统](./assets/多窗口系统.png) ![日历组件](./assets/日历组件.png) ![控制中心](./assets/控制中心.png) ![右键菜单](./assets/右键菜单.png) ### AppStore   YunGoo桌面的基础应用之一,是应用系统的核心,提供应用管理功能。无法删除! ![应用商店](./assets/应用商店.png) ### Viditor   YunGoo桌面的基础应用之一,是文本文件系统的核心,通过Viditor可以实现文本文件的创建和修改。Viditor是一款基于CodeMirror的在线文档编辑器,暂时仅支持Vim快捷键,自带Emmet插件、Markdown文件实时预览、语法高亮、数据实时保存等功能。(当前仅支持.txt .md .html .css .js文件) ![内置文本编辑器](./assets/内置文本编辑器.png) ![多语言支持](./assets/多语言支持.png) ## 使用 - 下载 ``` git clone https://gitee.com/houyuncheng2020/YunGoo.git cd YunGoo ``` - 安装服务器依赖 ``` npm i ``` - 开启服务器 ``` node .\server.js ``` - 打开列出的网址即可进入登录页面,预览用户名: ```Wango``` 密码:```1234``` - 也可以勾选```游客模式```进入主界面 - 由于没有做适配和响应式,所以请最大化或全屏浏览器以获取最佳体验 ## Change Log #### 2021.01.24 新增主界面加载页面 优化任务栏交互,焦点窗口的任务栏图标突出显示 修复刷新页面后窗口层级异常的问题 优化后端数据存储,实现游客账户数据的删除功能 #### 2021.01.23 优化Viditor编辑体验,新增代码搜索、注释、自动闭合括号等插件 #### 2021.01.22 修复Viditor创建第二个窗口之后异常,窗口无法操作的问题(事件重复绑定导致多次触发,数据覆盖) 优化Viditor新建和保存文件的样式 修复文件多个扩展名无法保存的问题 修复输入框无法自动聚焦的问题 修复中文文件名导致服务器崩溃的问题 新增文件名验证 修复窗口可以被完全脱出可视区的问题 新增对开启服务器后第一次登录的用户或初始化的用户推送ReadMe.md文件 新增对创建同名文件的提示 修复新用户找不到App目录文件的问题 修复通过通知打开窗口错误的问题 #### 2021.01.21 新增Viditor编辑器后端接口,实现内容实时保存至服务器 新增文本文件系统 新增通过Viditor新建文件和保存文件功能 #### 2021.01.20 新增Viditor的文档类型切换功能 新增Markdown文件的实时预览 新增Markdown文件预览窗口的缩放功能 #### 2021.01.19 修复窗口开启时可以删除应用,之后窗口无法操作的问题 修复删除应用后任务栏图标异常的问题 优化窗口内部结构,使用iframe代替Ajax 修复点击iframe后窗口无法获取焦点的问题 新增文本编辑工具Viditor(使用CodeMirror初步构建) #### 2021.01.18 优化应用的添加和删除,去除添加或删除后的页面刷新行为 优化窗口开启功能,去除开启窗口后拖动桌面图标造成的窗口重启行为 修复关闭窗口后打开应用,应用内js代码无法执行的问题 新增通知中心右下角弹窗,通过弹窗和通知中心通知打开应用 修复关闭通知中心弹窗会打开窗口的问题 修复拖动图标后任务栏图标异常消失的问题 修复关闭窗口后任务栏图标过度效果异常的问题 #### 2021.01.16 新增应用的添加和删除功能 新增应用商店APP 修复应用商店对应用状态判断错误的问题 修复添加应用导致之前的应用被覆盖的问题 修复相同用户可以同时在线的问题,设定为登录即锁定,期间不允许再次使用用户名和密码登录 新增登录错误提示 新增游客模式登录 新增对不同类型用户的不同系统推送 #### 2021.01.15 修复使用Ajax添加HTML时,HTML中包含js代码无法执行的问题 新增应用对服务器的访问路由规范 #### 2021.01.14 新增登录页面 新增右键菜单功能在服务器端的实现 新增应用及其静态文件接口,实现应用程序加载 #### 2021.01.13 优化与服务器的交互方式,由定时上传该为由用户行为触发上传 新增用户板块(初步),实现数据分类储存(文件) 新增后台登录验证与用户个人信息储存(文件) 修复返回初始状态后重新保存到服务器报错关闭的问题 #### 2021.01.12 新增鼠标悬浮任务栏图标时窗口显示功能 修复刷新页面后固定到任务栏中的图标无法加载的问题 新增服务器板块,使用nodejs+express+socket.io进行实时通信 #### 2021.01.11 新增窗口最大化管理,对不能最大化的窗口取消最大化按钮 修复使用鼠标双击标题栏,缓存的窗口位置异常消失的问题 #### 2021.01.10 修复窗口最大化后依旧可以拖动的问题 新增双击标题栏最大化或还原 新增显示桌面按钮 新增从右键菜单打开应用 新增进入全屏的菜单项 新增固定到任务栏、从任务栏中取消固定 新增通过任务栏右键打开或关闭窗口 修复点击窗口主体也会最大化的问题 修复图标交换位置后右键菜单获取内容错误问题 新增点击任务栏图标最小化在最顶层的目标窗口 修复刷新后无法立即通过任务栏打开应用的问题 修复刷新后第一个窗口最小化后无法通过任务栏还原的问题 #### 2021.01.09 新增对新创建窗口位置的限制,不能超出桌面 新增对窗口的拖动事件 修复重启app再关闭时任务栏报错的问题 优化html结构,由js生成部分日期面板内容 新增对窗口状态的保存,刷新后还原窗口状态 优化窗口层级 修复移动桌面图标后导致窗口无响应、无法打开新窗口、任务栏图标不可用的问题 新增任务栏有窗口全屏时自动隐藏,鼠标悬浮时出现并有背景色的动画效果 #### 2021.01.08 新增动画函数,对窗口弹出、关闭等动画效果重构 修复由Util.getTarget导致的重复点击图标无效问题 新增窗口最大化、最小化、还原动画和行为 新增窗口的层叠和显示功能 新增对窗口位置的记录和保存 #### 2021.01.07 优化样式设置方式,减少对桌面图标鼠标进入离开事件的监听 优化计时器,将setInterval改为setTimeout以提高准确性 新增桌面窗口基本框架样式 优化任务栏,方便数据获取和添加 新增对应用程序的打开和关闭,任务栏图标的新增和删除 修复桌面图标多次重复创建窗口问题,固定每个应用只能打开一个窗口 #### 2021.01.06 修复事件target获取错误(获取到内部子元素或input控件)的问题 新增对用户事件目标信息的获取 新增对图标位置,消息中心系统设置的本地储存 新增对消息中心的通知功能化,实现消息通知,清除和消息提示 修复在桌面图标的相同位置上点击右键出现弹出菜单不匹配问题 #### 2021.01.05 优化css尺寸,勉强能实现任意窗口正常显示,非常勉强,但限于12px的最小字体,小窗口下文字会被部分隐藏 优化html布局,使用js生成网格和图标、通知中心设置项 新增桌面图标的右键菜单样式 #### 2021.01.04 新增日历模块 新增桌面图标 新增桌面图标任意拖动,摆放(使用h5原生事件),自动对齐 #### 2021.01.03 新增任务栏、通知中心样式