<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Vue3-WebOS網(wǎng)頁版os系統(tǒng)|vite5+pinia2+arco-design仿macOS桌面os管理

      原創(chuàng)Vue3+Pinia2+ArcoDesign仿macOS桌面網(wǎng)頁版os管理系統(tǒng)ViteMacOS。

      vite5-vue3-macos基于最新前端技術(shù)vite5.x+vue3+pinia2+arco.design+sortablejs+echarts構(gòu)建網(wǎng)頁版osx后臺管理系統(tǒng)新解決方案。支持windows+macos兩種桌面模式、自定義桌面柵格布局引擎、可拖拽式桌面菜單/程序塢菜單等功能。

      vite7-webos網(wǎng)頁版os管理|Vue3+Vite7+ArcoDesign搭建pc端os后臺系統(tǒng)

      使用技術(shù)

      • 開發(fā)工具:Vscode
      • 技術(shù)框架:vite5.3.3+vue3.4.31+vue-router4.4+pinia2
      • UI組件庫:arco-design^2.55.3 (字節(jié)桌面版vue3組件庫)
      • 狀態(tài)管理:pinia^2.1.7
      • 圖表插件:echarts^5.5.1
      • 拖拽組件:sortablejs^1.15.2
      • 富文本編輯器:wangeditor^4.7.15
      • 模擬數(shù)據(jù):mockjs^1.1.0
      • 樣式編譯:sass^1.77.8
      • 構(gòu)建工具:vite^5.3.3

      項(xiàng)目結(jié)構(gòu)目錄

      vite-macOS使用 vite5.x 構(gòu)建工具搭建項(xiàng)目模板,采用 vue3 setup 語法編碼開發(fā)。

      功能特性

      1. 桌面/Dock菜單支持動態(tài)JSON配置
      2. 支持windows和macos兩種桌面模式
      3. 支持桌面菜單和dock菜單可拖拽排序
      4. 支持自定義桌面主題皮膚、虛化毛玻璃UI質(zhì)感
      5. 全新os式后臺管理系統(tǒng)解決方案

      vue3-macos項(xiàng)目已經(jīng)同步到我的原創(chuàng)作品集,有需要的可以去看看。

      原創(chuàng)vite5+vue3+arcoDesign網(wǎng)頁版os式管理系統(tǒng)

      ArcoDesign組件庫

      項(xiàng)目中使用的UI組件庫是字節(jié)前端團(tuán)隊(duì)推出的vue3組件庫。支持vue和react框架。

      main.js主入口配置

      import { createApp } from 'vue'
      import './style.scss'
      import App from './App.vue'
      
      // 引入arco.design組件庫
      import ArcoDesign from '@arco-design/web-vue'
      import '@arco-design/web-vue/dist/arco.css'
      // 額外引入圖標(biāo)庫
      import ArcoIcon from '@arco-design/web-vue/es/icon'
      import VEPlus from 've-plus'
      import 've-plus/dist/ve-plus.css'
      
      // 引入路由及狀態(tài)管理
      import Router from './router'
      import Pinia from './pinia'
      
      const app = createApp(App)
      
      app
      .use(ArcoDesign)
      .use(ArcoIcon)
      .use(VEPlus)
      .use(Router)
      .use(Pinia)
      .mount('#app')

      桌面布局模板

      桌面支持windowsmacos兩種模式。

      <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 desktop flexbox flex-alignc flex-justifyc"
          :style="{'--themeSkin': appstate.config.skin}"
          @contextmenu.prevent
        >
          <component :is="DeskLayout[appstate.config.layout]" />
        </div>
      </template>

      <template>
        <div class="vu__layout flexbox flex-col">
          <div class="vu__layout-header">
            <Toolbar />
          </div>
          <div class="vu__layout-body flex1 flexbox">
            <Desk />
          </div>
          <div class="vu__layout-footer">
            <Dock />
          </div>
          <!-- 懸浮球(輔助觸控) -->
          <Touch />
        </div>
      </template>

      vite-os桌面柵格布局引擎

      自定義桌面圖標(biāo)變量

      // 自定義變量(桌面圖標(biāo))
      const deskVariable = ref({
        '--icon-radius': '8px', // 圓角
        '--icon-size': '60px', // 圖標(biāo)尺寸(設(shè)置rpx自定義手機(jī)設(shè)備)
        '--icon-gap-col': '30px', // 水平間距
        '--icon-gap-row': '30px', // 垂直間距
        '--icon-labelSize': '12px', // 標(biāo)簽文字大小
        '--icon-labelColor': '#fff', // 標(biāo)簽顏色
        '--icon-fit': 'contain', // 圖標(biāo)自適應(yīng)模式
      })

      桌面os菜單配置項(xiàng)

      /**
        * label 圖標(biāo)標(biāo)題
        * imgico 圖標(biāo)(本地或網(wǎng)絡(luò)圖片) 支持Arco Design內(nèi)置圖標(biāo)或自定義iconfont圖標(biāo)
        * path 跳轉(zhuǎn)路由頁面
        * link 跳轉(zhuǎn)外部鏈接
        * hideLabel 是否隱藏圖標(biāo)標(biāo)題
        * background 自定義圖標(biāo)背景色
        * color 自定義圖標(biāo)顏色
        * size 柵格磁貼布局(16種) 1x1 1x2 1x3 1x4、2x1 2x2 2x3 2x4、3x1 3x2 3x3 3x4、4x1 4x2 4x3 4x4
        * onClick 點(diǎn)擊圖標(biāo)回調(diào)函數(shù)
        */

      設(shè)置children參數(shù),則支持二級菜單配置。

      桌面菜單配置片段

      const deskMenu = [
        {
          pid: 20240507001,
          list: [
            {imgico: markRaw(Today), size: '2x2'},
            {imgico: markRaw(Weather), size: '2x2'},
            {label: '便簽', imgico: markRaw(NoteBook), size: '4x2'},
            ...
          ]
        },
        {
          pid: 20240509002,
          list: [
            {label: 'Appstore', imgico: '/static/mac/appstore.png'},
            {label: '地圖', imgico: '/static/mac/maps.png'},
            ...
          ]
        },
        {
          pid: 20240510001,
          list: [
            {label: 'Github', imgico: '/static/svg/github.svg', link: 'https://github.com/', background: '#607d8b',},
            ...
          ]
        },
        {
          uid: 'd141f210-207e-1e8e-9950-9deefac27e48',
          list: [
            {label: 'Vite^5.3.3', imgico: 'https://vitejs.dev/logo.svg', link: 'https://vitejs.dev/'},
            ...
            {
              label: '組件',
              children: [
                {label: '表格', imgico: '/static/svg/table.svg', path: '/components/table/all'},
                {label: '自定義表格', imgico: '/static/svg/table.svg', path: '/components/table/custom'},
                ...
              ]
            },
            {label: 'ChatGPT', imgico: '/static/svg/chatgpt.svg', link: 'https://openai.com/chatgpt/', background: '#15A17F',},
            {label: 'Bilibili', imgico: '/static/svg/bilibili.svg', link: 'https://www.bilibili.com/', background: '#ff6899',},
            {
              label: '個人中心',
              children: [
                {label: '主頁', imgico: '/static/svg/my.svg', path: '/setting'},
                ...
              ]
            },
            {
              label: '設(shè)置',
              children: [
                {label: '網(wǎng)站設(shè)置', imgico: '/static/svg/settings.svg', path: '/setting/system/website'},
                {label: '郵件服務(wù)', imgico: '/static/mac/mail.png', path: '/setting/system/mail'},
              ]
            },
            {
              label: '公眾號', imgico: markRaw(IconWechat), color: '#07c160',
              onClick: () => {
                ...
              }
            },
          ]
        }
      ]

      vue3-os實(shí)現(xiàn)Dock菜單

      macos桌面模式下Dock菜單支持聚合+分離兩種方式

      <template>
        <div class="vu__macos-dock">
          <div class="vu__dock-wrap" :class="appstate.config.dock||'compact'">
            <div v-for="(data, key) in dockMenu" :key="key" class="vu__dock-group">
              <a v-for="(item, index) in data?.list" :key="index" class="vu__dock-item" @click="handleClickDock(item)">
                <span v-if="item.label" class="label">{{item.label}}</span>
                <!-- 二級菜單 -->
                <a-trigger v-if="isArray(item?.children)" trigger="click">
                  <!-- 二級縮略圖 -->
                  <div class="thumb">
                    <div class="vu__dock-thumbmenu">
                      ...
                    </div>
                  </div>
                  <template #content>
                    <!-- 二級彈窗菜單 -->
                    <div class="vu__dock-thumbpopup">
                      <a-scrollbar style="overflow: auto; margin-top: 10px; height: 210px;">
                        ...
                      </a-scrollbar>
                    </div>
                  </template>
                </a-trigger>
                <div v-else class="imgico" :style="{'color': item.color}">
                  <template v-if="isImg(item.imgico)">
                    <img :src="item.imgico" />
                  </template>
                  <template v-else>
                    <component v-if="isObject(item.imgico)" class="ico" :is="item.imgico" />
                    <i v-else class="ico elec-icon" :class="item.imgico"></i>
                  </template>
                </div>
              </a>
            </div>
          </div>
        </div>
      </template>

      End,綜上就是vue3+pinia+arcoDesign實(shí)戰(zhàn)網(wǎng)頁版webos系統(tǒng)的一些知識分享,希望對大家有所幫助!

      最后附上幾個最新跨平臺實(shí)例項(xiàng)目

      Electron38-Wechat電腦端聊天|vite7+electron38仿微信桌面端聊天系統(tǒng)

      Electron38-Vue3OS客戶端OS系統(tǒng)|vite7+electron38+arco桌面os后臺管理

      electron38-admin桌面端后臺|Electron38+Vue3+ElementPlus管理系統(tǒng)

      Tauri2.0-Vue3OS桌面端os平臺|tauri2+vite6+arco電腦版OS管理系統(tǒng)

      Flutter3-MacOS桌面OS系統(tǒng)|flutter3.32+window_manager客戶端OS模板

      最新版uniapp+vue3+uv-ui跨三端短視頻+直播+聊天【H5+小程序+App端】

      Uniapp-DeepSeek跨三端AI助手|uniapp+vue3+deepseek-v3流式ai聊天模板

      flutter3-dymall仿抖音直播商城|Flutter3.27短視頻+直播+聊天App實(shí)例

      Tauri2.0+Vite5聊天室|vue3+tauri2+element-plus仿微信|tauri聊天應(yīng)用

       

      posted @ 2024-07-25 18:48  xiaoyan2017  閱讀(1721)  評論(0)    收藏  舉報
      友情鏈接: UP主小店B站
      主站蜘蛛池模板: 国产精品成人av电影不卡| 欧美一区二区三区欧美日韩亚洲 | 亚洲成年av天堂动漫网站| 国产无遮挡又黄又爽不要vip软件| 少妇的丰满3中文字幕| 亚洲中文一区二区av| 久久影院综合精品| 九九热免费在线观看视频| 日韩中文字幕精品人妻| 唐人社视频呦一区二区| 国厂精品114福利电影免费| 饥渴的熟妇张开腿呻吟视频| 国产又色又爽又黄的网站免费| 久久中文字幕无码专区| 国产三级精品三级在线看| 四虎国产精品永久在线| 免费现黄频在线观看国产| 大乳丰满人妻中文字幕日本| 夜夜添狠狠添高潮出水| 日本一卡2卡3卡4卡无卡免费| 久久久亚洲精品无码| 久久综合国产精品一区二区 | 狠狠亚洲色一日本高清色| 国产一级r片内射免费视频| 国产a级三级三级三级| 精品无人区一区二区三区在线| 无码一级视频在线| 国产熟女一区二区五月婷| 国产精品中文字幕久久| 国产精品天天看天天狠| 色综合久久婷婷88| 爱啪啪精品一区二区三区| 亚洲精品无码成人A片九色播放| 国产偷国产偷亚洲高清日韩| 国产精品美女乱子伦高| 国产精品一区二区三区激情| 不卡一区二区国产在线| 无码人妻丝袜在线视频红杏| 国产精品九九九一区二区| 国产精品亚洲综合色区丝瓜| 国产91色在线精品三级|