From 8e50f0717df0b7ad3a57f8d64c124cac414278ba Mon Sep 17 00:00:00 2001 From: tiantian <1012874180@qq.com> Date: Tue, 10 Dec 2024 18:41:41 +0800 Subject: [PATCH 1/2] =?UTF-8?q?add:=E5=85=BC=E5=AE=B9=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E9=9D=99=E6=80=81=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/components.d.ts | 7 +- frontend/index.html | 4 +- frontend/package-lock.json | 20 ++++ frontend/package.json | 1 + frontend/src/App.vue | 10 +- .../components/desktop/mobile/BottomBar.vue | 47 ++++++++ .../src/components/desktop/mobile/Mobile.vue | 105 ++++++++++++++++++ .../components/desktop/mobile/MobileApp.vue | 43 +++++++ .../src/components/desktop/mobile/util.scss | 16 +++ frontend/src/util/device.ts | 10 ++ frontend/vite.config.ts | 8 +- 11 files changed, 262 insertions(+), 9 deletions(-) create mode 100644 frontend/src/components/desktop/mobile/BottomBar.vue create mode 100644 frontend/src/components/desktop/mobile/Mobile.vue create mode 100644 frontend/src/components/desktop/mobile/MobileApp.vue create mode 100644 frontend/src/components/desktop/mobile/util.scss create mode 100644 frontend/src/util/device.ts diff --git a/frontend/components.d.ts b/frontend/components.d.ts index cc621de..9424b7b 100644 --- a/frontend/components.d.ts +++ b/frontend/components.d.ts @@ -25,6 +25,7 @@ declare module 'vue' { AssistantAdd: typeof import('./src/components/ai/AssistantAdd.vue')['default'] Battery: typeof import('./src/components/taskbar/Battery.vue')['default'] BatteryPop: typeof import('./src/components/taskbar/BatteryPop.vue')['default'] + BottomBar: typeof import('./src/components/desktop/mobile/BottomBar.vue')['default'] Browser: typeof import('./src/components/builtin/Browser.vue')['default'] Calendar: typeof import('./src/components/builtin/Calendar.vue')['default'] Chat: typeof import('./src/components/chat/Chat.vue')['default'] @@ -73,13 +74,9 @@ declare module 'vue' { ElFormItem: typeof import('element-plus/es')['ElFormItem'] ElIcon: typeof import('element-plus/es')['ElIcon'] ElInput: typeof import('element-plus/es')['ElInput'] - ElOption: typeof import('element-plus/es')['ElOption'] ElPagination: typeof import('element-plus/es')['ElPagination'] ElProgress: typeof import('element-plus/es')['ElProgress'] ElRow: typeof import('element-plus/es')['ElRow'] - ElSelect: typeof import('element-plus/es')['ElSelect'] - ElSwitch: typeof import('element-plus/es')['ElSwitch'] - ElTag: typeof import('element-plus/es')['ElTag'] Error: typeof import('./src/components/taskbar/Error.vue')['default'] FileIcon: typeof import('./src/components/builtin/FileIcon.vue')['default'] FileIconImg: typeof import('./src/components/builtin/FileIconImg.vue')['default'] @@ -103,6 +100,8 @@ declare module 'vue' { MenuList: typeof import('./src/components/taskbar/MenuList.vue')['default'] MessageCenterPop: typeof import('./src/components/taskbar/MessageCenterPop.vue')['default'] MessageIcon: typeof import('./src/components/taskbar/MessageIcon.vue')['default'] + Mobile: typeof import('./src/components/desktop/mobile/Mobile.vue')['default'] + MobileApp: typeof import('./src/components/desktop/mobile/MobileApp.vue')['default'] MusicStore: typeof import('./src/components/builtin/MusicStore.vue')['default'] MusicViewer: typeof import('./src/components/builtin/MusicViewer.vue')['default'] NetWork: typeof import('./src/components/taskbar/NetWork.vue')['default'] diff --git a/frontend/index.html b/frontend/index.html index ad82f44..3a5daae 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -3,7 +3,7 @@ - + GodoOS diff --git a/frontend/package-lock.json b/frontend/package-lock.json index cfa25c5..89e5c40 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -21,6 +21,7 @@ "moment": "^2.30.1", "pinia": "^2.1.7", "pinia-plugin-persist": "^1.0.0", + "swiper": "^11.1.15", "vue": "^3.4.31", "vue-i18n": "^9.13.1", "vue-router": "^4.4.0", @@ -3436,6 +3437,25 @@ "integrity": "sha512-osIBl6BGUmSfDkyH2mB7EFvCJntXDrLhKjHTRj/rK6xLH0yuPrHULDRQzKokSOD4VoorhtKpfcfW1GAntu8now==", "optional": true }, + "node_modules/swiper": { + "version": "11.1.15", + "resolved": "https://registry.npmmirror.com/swiper/-/swiper-11.1.15.tgz", + "integrity": "sha512-IzWeU34WwC7gbhjKsjkImTuCRf+lRbO6cnxMGs88iVNKDwV+xQpBCJxZ4bNH6gSrIbbyVJ1kuGzo3JTtz//CBw==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "license": "MIT", + "engines": { + "node": ">= 4.7.0" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmmirror.com/symbol-tree/-/symbol-tree-3.2.4.tgz", diff --git a/frontend/package.json b/frontend/package.json index 3d7edc6..2f94b61 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -22,6 +22,7 @@ "moment": "^2.30.1", "pinia": "^2.1.7", "pinia-plugin-persist": "^1.0.0", + "swiper": "^11.1.15", "vue": "^3.4.31", "vue-i18n": "^9.13.1", "vue-router": "^4.4.0", diff --git a/frontend/src/App.vue b/frontend/src/App.vue index bf7b858..0ba0032 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,12 +1,18 @@ diff --git a/frontend/src/components/desktop/mobile/BottomBar.vue b/frontend/src/components/desktop/mobile/BottomBar.vue new file mode 100644 index 0000000..e56ae84 --- /dev/null +++ b/frontend/src/components/desktop/mobile/BottomBar.vue @@ -0,0 +1,47 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/desktop/mobile/Mobile.vue b/frontend/src/components/desktop/mobile/Mobile.vue new file mode 100644 index 0000000..e037ff1 --- /dev/null +++ b/frontend/src/components/desktop/mobile/Mobile.vue @@ -0,0 +1,105 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/desktop/mobile/MobileApp.vue b/frontend/src/components/desktop/mobile/MobileApp.vue new file mode 100644 index 0000000..186a941 --- /dev/null +++ b/frontend/src/components/desktop/mobile/MobileApp.vue @@ -0,0 +1,43 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/desktop/mobile/util.scss b/frontend/src/components/desktop/mobile/util.scss new file mode 100644 index 0000000..3b1c62f --- /dev/null +++ b/frontend/src/components/desktop/mobile/util.scss @@ -0,0 +1,16 @@ +@use "sass:math"; + +// 默认设计稿的宽度 +$designWidth: 375; +// 默认设计稿的高度 +$designHeight: 667; + +// px 转为 vw 的函数 +@function vw($px) { + @return math.div($px, $designWidth) * 100vw; +} + +// px 转为 vh 的函数 +@function vh($px) { + @return math.div($px, $designHeight) * 100vh; +} \ No newline at end of file diff --git a/frontend/src/util/device.ts b/frontend/src/util/device.ts new file mode 100644 index 0000000..8606a3e --- /dev/null +++ b/frontend/src/util/device.ts @@ -0,0 +1,10 @@ +export const isMobileDevice=() =>{ + const userAgent = navigator.userAgent.toLowerCase(); + const mobileKeywords = ['iphone', 'android', 'mobile', 'blackberry', 'iemobile', 'opera mini']; + for (const keyword of mobileKeywords) { + if (userAgent.includes(keyword)) { + return true; + } + } + return false; +} \ No newline at end of file diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts index 53ba47a..5116be2 100644 --- a/frontend/vite.config.ts +++ b/frontend/vite.config.ts @@ -21,7 +21,13 @@ export default defineConfig(async () => ({ resolvers: [ElementPlusResolver()], }), ], - + css: { + preprocessorOptions: { + scss: { + additionalData: `@import "./src/components/desktop/mobile/util.scss";` + } + } + }, clearScreen: false, server: { host: '0.0.0.0', From 9660695446fc049d788088d3738e3e8738b2e405 Mon Sep 17 00:00:00 2001 From: tiantian <1012874180@qq.com> Date: Wed, 11 Dec 2024 09:07:45 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8Dbuild=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E8=AF=AD=E6=B3=95=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/desktop/mobile/Mobile.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend/src/components/desktop/mobile/Mobile.vue b/frontend/src/components/desktop/mobile/Mobile.vue index e037ff1..35546e4 100644 --- a/frontend/src/components/desktop/mobile/Mobile.vue +++ b/frontend/src/components/desktop/mobile/Mobile.vue @@ -76,7 +76,6 @@ Bios.onOpen((system: System) => { .desktop { position: relative; background-color: #3A98CE; - background: url('@/pubic/image/bg/bg6.jpg'); height: 100vh; overflow: hidden; .userarea-upper {