Electron32-Vue3OS桌面管理os模板|vite5+electron32+arco后台os系统

news2024/9/20 16:23:40

原创新作electron32.x+vue3+arco.design仿ipad/windows桌面os系统。

基于最新跨平台技术Electron32、Vite5、Vue3 setup、Pinia2、Arco-Design、Echarts、Sortablejs实战开发桌面版osx管理系统。内置ipad/windows两种桌面风格模板、动态json配置桌面图标、自研栅格拖拽布局模板。

在这里插入图片描述
在这里插入图片描述
vite5-electron-os桌面os系统封装了多窗口管理器。

在这里插入图片描述

技术栈

  • 编辑器:Vscode
  • 技术框架:vite5.4+vue3.4.37+vue-router^4.4.3
  • 跨平台框架:electron^32.0.1
  • 组件库:arco-design^2.56.0 (字节跳动vue3组件库)
  • 状态管理:pinia^2.2.2
  • 拖拽插件:sortablejs^1.15.2
  • 图表组件:echarts^5.5.1
  • 模拟数据:mockjs^1.1.0
  • 打包工具:electron-builder^24.13.3
  • electron+vite插件:vite-plugin-electron^0.28.7

在这里插入图片描述
在这里插入图片描述

项目结构目录

electron32-os桌面os系统,整合vite5.x+electronjs跨平台技术。

在这里插入图片描述
在这里插入图片描述

electron32-macos项目已经上架到我的原创作品集,欢迎下载使用。

Electron32+Vite5+ArcoDesign桌面OS管理系统

在这里插入图片描述

功能性

  1. 支持macos+windows两种桌面风格
  2. 支持自定义json配置桌面菜单和Dock菜单
  3. 自研栅格化拖拽布局模板
  4. 支持自定义桌面主题壁纸、全场景高斯模糊UI质感
  5. 支持主窗口和新开窗口打开路由页面

在这里插入图片描述

main.js配置

/**
 * 渲染进程配置入口main.js
 * @author andy
 */

import { createApp } from 'vue'
import './style.scss'
import App from './App.vue'

import { launchApp } from '@/windows/actions'

// 引入路由及状态管理
import Router from './router'
import Pinia from './pinia'

// 引入插件
import Plugins from './plugins'

launchApp().then(config => {
  if(config) {
    // 全局窗口配置
    window.config = config
  }

  // 初始化app实例
  createApp(App)
  .use(Router)
  .use(Pinia)
  .use(Plugins)
  .mount('#app')
})

在这里插入图片描述
在这里插入图片描述

公共桌面布局模板

在这里插入图片描述

<!-- 桌面模板 -->

<script setup>
  import { appState } from '@/pinia/modules/app'

  // 引入布局模板
  import MacosLayout from './template/macos.vue'
  import WindowsLayout from './template/windows.vue'

  const appstate = appState()

  const DeskLayout = {
    macos: MacosLayout,
    windows: WindowsLayout
  }
</script>

<template>
  <div class="vu__container" :style="{'--themeSkin': appstate.config.skin}">
    <component :is="DeskLayout[appstate.config.layout]" />
  </div>
</template>

在这里插入图片描述

<script setup>
  import Wintool from '@/layouts/components/wintool/index.vue'
  import Desk from '@/layouts/components/mac/desk.vue'
  import Dock from '@/layouts/components/mac/dock.vue'
</script>

<template>
  <div class="vu__layout flexbox flex-col">
    <div class="vu__layout-header">
      <Wintool />
    </div>
    <div class="vu__layout-body flex1 flexbox">
      <Desk />
    </div>
    <div class="vu__layout-footer">
      <Dock />
    </div>
  </div>
</template>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

vue3-electron-os栅格模板引擎

在这里插入图片描述
在这里插入图片描述

桌面图标菜单配置参数

const deskGridVariable = ref({
  '--icon-radius': '10px', // 圆角
  '--icon-size': '60px', // 图标尺寸
  '--icon-gap-col': '30px', // 水平间距
  '--icon-gap-row': '30px', // 垂直间距
  '--icon-labelSize': '12px', // 标签文字大小
  '--icon-labelColor': '#fff', // 标签颜色
  '--icon-fit': 'contain', // 图标自适应模式
})

桌面json参数

/**
  * label 图标标签
  * imgico 图标(本地或网络图片) 支持Arco Design内置图标或自定义iconfont字体图标
  * path 跳转路由地址
  * link 跳转外部链接
  * hideLabel 是否隐藏图标标签
  * background 自定义图标背景色
  * color 自定义图标颜色
  * size 栅格布局(16种) 1x1 1x2 1x3 1x4、2x1 2x2 2x3 2x4、3x1 3x2 3x3 3x4、4x1 4x2 4x3 4x4
  * onClick 点击图标回调函数
  * children 二级菜单配置  
  * isNewin 新窗口打开路由页面
  */

在这里插入图片描述
在这里插入图片描述
桌面菜单代码片段

const deskMenu = [
  {
    uid: 'd137f210-507e-7e8e-1950-9deefac27e48',
    list: [
      {imgico: markRaw(Today), size: '2x2'},
      {label: '日历', imgico: markRaw(Calendar3x3), size: '3x3'},
      {label: 'Electron32', imgico: '/electron.svg', link: 'https://www.electronjs.org/'},
      // ...
    ]
  },
  {
    uid: 'g270f210-207e-6e8e-2650-9deefac27e48',
    list: [
      {label: 'Appstore', imgico: '/static/mac/appstore.png'},
      // ...
    ]
  },
  {
    uid: 't165f210-607e-4e8e-9950-9deefac27e48',
    list: [
      {label: 'Vue.js', imgico: '/vue.svg', link: 'https://vuejs.org/',},
      {label: 'Vite.js官方文档', imgico: '/vite.svg', link: 'https://vitejs.dev/',},
      // ...
    ]
  },
  {
    uid: 'u327f210-207e-1e8e-9950-9deefac27e48',
    list: [
      {label: 'Electron32', imgico: '/electron.svg', link: 'https://www.electronjs.org/'},
      {label: '首页', imgico: markRaw(IconHome), path: '/home', color: '#fff', isNewin: true},
      {label: '工作台', imgico: 'elec-icon-dotchart', path: '/home/dashboard', color: '#fff'},
      // ...
      {
        label: '用户中心',
        children: [
          {label: '主页', imgico: '/static/svg/ucenter.svg', path: '/setting'},
          {label: '用户管理', imgico: markRaw(IconUserGroup), path: '/user', color: '#fff'},
          // ...
        ]
      },
      {
        label: '设置',
        children: [
          // ...
        ]
      },
      {
        label: '收藏网址',
        children: [
          {label: 'Electron32', imgico: '/electron.svg', link: 'https://www.electronjs.org/'},
          {label: 'Vite.js', imgico: '/vite.svg',},
          // ...
        ]
      },
      {
        label: '公众号', imgico: '/static/qrimg.png', color: '#07c160',
        onClick: () => {
          Modal.info({
            // ...
          })
        }
      },
    ]
  }
]

在这里插入图片描述

electron32-os实现dock菜单

在这里插入图片描述
在这里插入图片描述
dock菜单配置参数

/**
  * label 图标tooltip提示
  * imgico 图标(本地或网络图片) 支持Arco Design内置图标或自定义iconfont图标
  * path 跳转路由页面
  * link 跳转外部链接
  * color 自定义图标颜色
  * onClick 点击图标回调函数
  * children 二级菜单
  * isNewin 是否新窗口打开路由页面
  */

在这里插入图片描述
综上就是electron32+vue3+arco.design实战开发桌面版os管理系统的一些知识分享。整个项目覆盖到的知识点还是非常多的,限于篇幅就先分享到这里。

https://blog.csdn.net/yanxinyun1990/article/details/141310166

https://blog.csdn.net/yanxinyun1990/article/details/140284304

https://blog.csdn.net/yanxinyun1990/article/details/139103578

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2109546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Anthropic发布Claude企业计划 对标OpenAI的ChatGPT Enterprise

领先的人工智能初创公司 Anthropic 今天宣布推出Claude企业计划&#xff0c;以扩大Claude在企业中的应用。OpenAI 早在 2023 年就推出了名为ChatGPT Enterprise 的类似产品&#xff0c;并取得了相当大的成功。事实上&#xff0c;OpenAI 声称&#xff0c;财富 500 强中已有 92% …

CentOS文件和目录命令

CentOS文件和目录命令 在CentOS上&#xff0c;文件和目录是操作系统的核心部分&#xff0c;掌握其基本操作是使用Linux的第一步。文件系统是Linux用户和系统进行交互的主要方式&#xff0c;理解文件和目录的管理对于执行各种操作至关重要。以下是CentOS中与文件和目录相关的主…

【有啥问啥】数据结构哈希链(Hash Chain)的详解与技术探讨

数据结构哈希链&#xff08;Hash Chain&#xff09;的详解与技术探讨 引言 哈希链&#xff08;Hash Chain&#xff09;是一种利用哈希函数将一系列数据块&#xff08;或区块&#xff09;链接起来的数据结构&#xff0c;广泛应用于区块链技术、数据完整性验证以及安全存储等领…

校园订餐系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;餐厅信息管理&#xff0c;美食信息管理&#xff0c;订单管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;餐厅信息&#xff0c;美食信息&#xff0c;购物车&#xff0c;我的 开发系统&#…

Java+Swing+dat文件存储实现学生选课管理系统

JavaSwingdat文件存储实现学生选课管理系统 一、系统介绍二、系统展示1.用户登陆、注册2.课程信息查询3.添加课程4.选课5.退课 三、系统实现四、其他1.其它系统 一、系统介绍 功能展示&#xff1a;用户注册、用户登陆 课程管理&#xff1a;课程信息的查询、添加、删除 我的选课…

嵌入式全栈开发学习笔记---C++(强制类型转换/异常和文件)

目录 强制类型转换 static_cast reinterpret_cast dynamic_cast const_cast const_cast笔试 异常处理 什么是异常处理机制&#xff1f; 异常的基本语法 异常处理基本思想 栈解旋 异常接口声明 throw抛出类对象 异常案例 标准异常库 C的文件操作 C输入输出流 …

Unity(2022.3.41LTS) - UI详细介绍- Panel(面板)和RectTransform组件

目录 零. 简介 一、功能与作用 二、属性与设置 三、使用方法 四、优化和注意事项 五.面板总结 六. RectTransform A、主要属性 B、布局控制 C、代码控制 D.实例 控制对象靠近底部 对象紧贴底部 零. 简介 在 Unity 中&#xff0c;Panel&#xff08;面板&#xff0…

《ICT技术成熟度曲线(2024):API全生命周期管理》

来源&#xff1a;Gartner。 近期Gartner发布的《Hype Cycle for ICT in China, 2024》中&#xff0c;将全生命周期API管理收录其中。 •收益评级&#xff1a;高 •市场渗透率&#xff1a;目标受众的 5% 至 20% •成熟度&#xff1a;新兴阶段 &#xfeff; &#xfeff;&am…

ssm微信小程序的英语学习激励系统论文源码调试讲解

2 关键技术介绍 2.1 SSM框架 开发信息管理系统的主流框架是SSM&#xff08;Spring Spring MVC MyBatis&#xff09;&#xff0c;SSM框架web层使用Spring MVC框架&#xff0c;使传输前后端数据变得简单&#xff1b;对于业务层使用Spring作为轻量级控制反转和面向切面的容器框…

基于B/S的城市公交线路管理及查询系统

2 系统需求分析 需求分析是对所要做的系统进行分析&#xff0c;通过使用文字和图表的综合形式&#xff0c;以相对来说容易让人理解的方式去描绘需求的数据、功能、行为&#xff0c;更可以直接评审其正确性、完整性和一致性[2]。通过查询相关的资料&#xff0c;对所做的系统进行…

黑种草:花语中的爱与思念

一、黑种草的神秘面纱 &#xff08;一&#xff09;产地 黑种草原产于欧洲南部&#xff0c;随着被引种栽培&#xff0c;现在在中国长江流域及华北、新疆、云南、西藏等地也有栽培。它性喜冷凉气候&#xff0c;忌高温高湿&#xff0c;对生长环境有一定要求。在适宜的环境中&…

好看的个人导航页面html源码

源码介绍 好看的个人导航页面html源码&#xff0c;适合做博客介绍页或者公司介绍页。喜欢的朋友可以下载使用&#xff0c;源码HTML源码&#xff0c;记事本简单修改文字即可&#xff0c;上传到服务器 效果预览 源码获取 好看的个人导航页面html源码

TypeError: ‘ChatCompletion‘ object is not subscriptable 解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

S3C2440开发板:时钟,PWM定时器控制蜂鸣器发声

时钟 时钟和电源管理模块由三部分组成&#xff1a;时钟控制&#xff0c;USB 控制和电源控制。 S3C2440A 中的时钟控制逻辑可以产生必须的时钟信号&#xff0c;包括 CPU 的 FCLK&#xff0c;AHB 总线外设的 HCLK 以及 APB 总线外设的 PCLK。S3C2440A 包含两个锁相环&#xff08…

QT新建项目并运行操作步骤

1、打开qt creator 2、选择new project后选择qt widgets application&#xff0c;点choose 3、输入工程名称和存储路径 4、点击下一步 5、选择Qwidget 6、点击下一步&#xff0c;完成项目新建 7、点击运行&#xff0c;程序即可运行结果&#xff0c;显示一个界面

U盘加密软件哪个好用?盘点2024最受欢迎的10款U盘加密软件(数据安全)

随着信息安全越来越受到重视&#xff0c;U盘作为便捷的数据存储工具&#xff0c;在携带和传输重要文件时&#xff0c;往往面临数据泄露和丢失的风险。为此&#xff0c;选择一款好用且安全的U盘加密软件变得尤为重要。 为了帮助大家在2024年更好地保护敏感数据&#xff0c;以下…

Vue如何将网页转换成图片或PDF并上传

一.使用html2canvas获取页面元素并绘制成图片 htmlcanvas中文文档 npm install --save html2canvas<template><div><button click"uploadImg">上传</button><div ref"yourDom"><!-- ...图片中页面内容 --><img s…

【Linux】自定义协议与序列化和反序列化

一、自定义协议 1.1 自定义报文格式 在前面的博客中&#xff0c;我们可以知道在TCP协议中&#xff0c;面向的是字节流&#xff1b;而UDP协议中面向的是数据报。因此&#xff0c;在手写简单的TCP和UDP服务器中&#xff0c;所使用的是接收函数和发送函数不同。因此&#xff0c;在…

docker images

docker 装好docker之后&#xff0c;先掌握一下docker启动与停止 docker启动关闭状态 systemctl 命令是系统服务管理器指令&#xff0c;它是 service 和 chkconfig 两个命令组合。 查看 docker 的启动状态 systemctl status docker关闭 docker systemctl stop docker启动 …

基于空间结构光场照明的三维单像素成像

单像素成像是一种新兴的计算成像技术。该技术使用不具备空间分辨能力的单像素探测器来获取目标物体或场景的空间信息。单像素探测器具有高的时间分辨率、光探测效率和探测带宽&#xff0c;因此单像素光学成像技术在散射、弱光等复杂环境下相较于传统面阵成像技术展现了很大优势…