feat/create_wamp

This commit is contained in:
王性驊 2025-09-12 15:24:29 +08:00
parent 759ae6884f
commit a9a586eb0e
7 changed files with 195 additions and 23 deletions

View File

@ -1,6 +1,13 @@
<script setup>
import BaseWindow from '~/components/BaseWindow.vue';
defineProps({
windowData: {
type: Object,
required: true,
},
});
const emit = defineEmits([
'close',
'minimize',

View File

@ -1,5 +1,6 @@
<script setup>
import { inject } from 'vue';
import winampLogo from '../../assets/icon/Winamp-logo.svg';
const openWinamp = inject('openWinamp');
@ -8,7 +9,9 @@ const openWinamp = inject('openWinamp');
<template>
<div class="desktop">
<div class="icon" @click="openWinamp">
<div class="icon-image">[W]</div>
<div class="icon-image">
<img :src="winampLogo" alt="Winamp logo" />
</div>
<div class="icon-label">Winamp</div>
</div>
</div>
@ -50,6 +53,11 @@ const openWinamp = inject('openWinamp');
margin-bottom: 0.5rem;
}
.icon-image img {
max-width: 100%;
max-height: 100%;
}
.icon-label {
background-color: white;
padding: 2px 4px;

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg width="804.12" height="808.84" version="1.1" viewBox="0 0 804.12 808.84" xmlns="http://www.w3.org/2000/svg">
<path d="m271.21 646.74 130.71 135.11 375.51-377.32-163.27-163.36-69.561 69.13 49.872 18.583-0.27296 108.28z" fill="#fff" stroke="#000" stroke-width="1px"/>
<path d="m24.957 400.78 375.34-374.58 127.7 129.3-333.41 194.4-4.9088 95.612 20.178 19.869 45.066 0.0845-81.866 81.076z" fill="#fff" stroke="#000" stroke-width="1px"/>
<g transform="translate(1.9418 .70204)">
<path d="m194.59 349.9c1.9907-3.345 8.3399-7.4709 8.3399-7.4709l436.23-255.44 27.813-15.66s11.484 4.2325 15.267 8.706c4.207 4.9756 6.7256 18.354 6.7256 18.354l-4.0898 69.886-142.21 141.33 49.872 18.583 1.8398 36.5-2.1127 71.784-481.79 312.61-16.702 3.989-10.003-11.888c0.07914-35.385 0.10759-70.769-0.05456-106.15l171.21-169.56-45.066-0.0845s-14.264 1.0442-17.976-2.88c-3.6489-3.8572-2.2017-16.989-2.2017-16.989l2.7444-84.091s-0.0685-7.7695 2.1644-11.522z" fill="#fca600" stroke="#000" stroke-width="30.236"/>
<g fill="none" stroke="#000">
<g stroke-linejoin="round">
<path d="m24.957 400.78 148.1 145.76" stroke-width="37.795"/>
<path d="m24.957 400.78 375.34-374.58" stroke-linecap="square" stroke-width="38.041"/>
<path d="m400.3 26.197 127.7 129.3" stroke-width="37.795"/>
</g>
<path d="m612.22 240.47 163.27 163.36-375.51 377.32-130.71-135.11" stroke-width="37.795"/>
</g>
<path d="m111.62 643.97 302.85-293.62-154.9 3.0796-24.389 3.6374 147.31 1.7944-263.27 263.73z" fill="#fff" opacity=".68156"/>
<path d="m223.35 362.24c23.42 0.0907 106.09-2.2511 159.13-3.3767l-15.767 16.07-118.87-5.7399z" fill="#ed5814" opacity=".55611"/>
<path d="m448.75 291.88 34.091-46.313 165.07-138.34-29.119 32.743z" fill="#fff" opacity=".67475"/>
<path d="m647.92 107.23-21.076 40.835-168.95 143.26-9.1397 0.56455 170.04-151.91z" fill="#ec4d00" opacity=".6507"/>
<path d="m562.5 343.07 6.2987 6.323-446.03 289.39-4.8911-0.67194 81.242-60.07 217.83-145.81z" fill="#ed5906"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -7,5 +7,6 @@
"my_computer": "My Computer",
"recycle_bin": "Recycle Bin",
"terminal": "Terminal",
"close_all_windows": "Close All Windows"
"close_all_windows": "Close All Windows",
"Winamp": "Winamp"
}

View File

@ -7,6 +7,7 @@
"my_computer": "我的電腦",
"recycle_bin": "資源回收筒",
"terminal": "終端機",
"close_all_windows": "關閉全視窗"
"close_all_windows": "關閉全視窗",
"Winamp": "心情點播"
}

172
package-lock.json generated
View File

@ -9,6 +9,7 @@
"dependencies": {
"@nuxt/content": "^2.7.2",
"@nuxt/eslint": "^1.9.0",
"@nuxt/icon": "^2.0.0",
"@nuxt/image": "^1.11.0",
"@nuxt/scripts": "^0.11.13",
"@nuxt/test-utils": "^3.19.2",
@ -47,9 +48,10 @@
}
},
"node_modules/@antfu/utils": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz",
"integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==",
"version": "9.2.0",
"resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-9.2.0.tgz",
"integrity": "sha512-Oq1d9BGZakE/FyoEtcNeSwM7MpDO2vUBi11RWBZXf75zPsbUVWmUs03EqkRFrcgbXyKTas0BdZWC1wcuSoqSAw==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/antfu"
}
@ -1323,17 +1325,18 @@
"integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg=="
},
"node_modules/@iconify/utils": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz",
"integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==",
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-3.0.1.tgz",
"integrity": "sha512-A78CUEnFGX8I/WlILxJCuIJXloL0j/OJ9PSchPAfCargEIKmUBWvvEMmKWB5oONwiUqlNt+5eRufdkLxeHIWYw==",
"license": "MIT",
"dependencies": {
"@antfu/install-pkg": "^1.0.0",
"@antfu/utils": "^8.1.0",
"@antfu/install-pkg": "^1.1.0",
"@antfu/utils": "^9.2.0",
"@iconify/types": "^2.0.0",
"debug": "^4.4.0",
"globals": "^15.14.0",
"debug": "^4.4.1",
"globals": "^15.15.0",
"kolorist": "^1.8.0",
"local-pkg": "^1.0.0",
"local-pkg": "^1.1.1",
"mlly": "^1.7.4"
}
},
@ -1341,6 +1344,7 @@
"version": "15.15.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
"license": "MIT",
"engines": {
"node": ">=18"
},
@ -2126,26 +2130,60 @@
}
},
"node_modules/@nuxt/icon": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/@nuxt/icon/-/icon-1.15.0.tgz",
"integrity": "sha512-kA0rxqr1B601zNJNcOXera8CyYcxUCEcT7dXEC7rwAz71PRCN5emf7G656eKEQgtqrD4JSj6NQqWDgrmFcf/GQ==",
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@nuxt/icon/-/icon-2.0.0.tgz",
"integrity": "sha512-sy8+zkKMYp+H09S0cuTteL3zPTmktqzYPpPXV9ZkLNjrQsaPH08n7s/9wjr+C/K/w2R3u18E3+P1VIQi3xaq1A==",
"license": "MIT",
"dependencies": {
"@iconify/collections": "^1.0.563",
"@iconify/collections": "^1.0.579",
"@iconify/types": "^2.0.0",
"@iconify/utils": "^2.3.0",
"@iconify/utils": "^3.0.0",
"@iconify/vue": "^5.0.0",
"@nuxt/devtools-kit": "^2.5.0",
"@nuxt/kit": "^3.17.5",
"@nuxt/devtools-kit": "^2.6.2",
"@nuxt/kit": "^4.0.3",
"consola": "^3.4.2",
"local-pkg": "^1.1.1",
"mlly": "^1.7.4",
"ohash": "^2.0.11",
"pathe": "^2.0.3",
"picomatch": "^4.0.2",
"picomatch": "^4.0.3",
"std-env": "^3.9.0",
"tinyglobby": "^0.2.14"
}
},
"node_modules/@nuxt/icon/node_modules/@nuxt/kit": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-4.1.1.tgz",
"integrity": "sha512-2MGfOXtbcxdkbUNZDjyEv4xmokicZhTrQBMrmNJQztrePfpKOVBe8AiGf/BfbHelXMKio5PgktiRoiEIyIsX4g==",
"license": "MIT",
"dependencies": {
"c12": "^3.2.0",
"consola": "^3.4.2",
"defu": "^6.1.4",
"destr": "^2.0.5",
"errx": "^0.1.0",
"exsolve": "^1.0.7",
"ignore": "^7.0.5",
"jiti": "^2.5.1",
"klona": "^2.0.6",
"mlly": "^1.8.0",
"ohash": "^2.0.11",
"pathe": "^2.0.3",
"pkg-types": "^2.3.0",
"rc9": "^2.1.2",
"scule": "^1.3.0",
"semver": "^7.7.2",
"std-env": "^3.9.0",
"tinyglobby": "^0.2.14",
"ufo": "^1.6.1",
"unctx": "^2.4.1",
"unimport": "^5.2.0",
"untyped": "^2.0.0"
},
"engines": {
"node": ">=18.12.0"
}
},
"node_modules/@nuxt/image": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/@nuxt/image/-/image-1.11.0.tgz",
@ -2487,6 +2525,87 @@
}
}
},
"node_modules/@nuxt/ui/node_modules/@antfu/utils": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-8.1.1.tgz",
"integrity": "sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==",
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/antfu"
}
},
"node_modules/@nuxt/ui/node_modules/@iconify/utils": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@iconify/utils/-/utils-2.3.0.tgz",
"integrity": "sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==",
"license": "MIT",
"dependencies": {
"@antfu/install-pkg": "^1.0.0",
"@antfu/utils": "^8.1.0",
"@iconify/types": "^2.0.0",
"debug": "^4.4.0",
"globals": "^15.14.0",
"kolorist": "^1.8.0",
"local-pkg": "^1.0.0",
"mlly": "^1.7.4"
}
},
"node_modules/@nuxt/ui/node_modules/@nuxt/icon": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/@nuxt/icon/-/icon-1.15.0.tgz",
"integrity": "sha512-kA0rxqr1B601zNJNcOXera8CyYcxUCEcT7dXEC7rwAz71PRCN5emf7G656eKEQgtqrD4JSj6NQqWDgrmFcf/GQ==",
"license": "MIT",
"dependencies": {
"@iconify/collections": "^1.0.563",
"@iconify/types": "^2.0.0",
"@iconify/utils": "^2.3.0",
"@iconify/vue": "^5.0.0",
"@nuxt/devtools-kit": "^2.5.0",
"@nuxt/kit": "^3.17.5",
"consola": "^3.4.2",
"local-pkg": "^1.1.1",
"mlly": "^1.7.4",
"ohash": "^2.0.11",
"pathe": "^2.0.3",
"picomatch": "^4.0.2",
"std-env": "^3.9.0",
"tinyglobby": "^0.2.14"
}
},
"node_modules/@nuxt/ui/node_modules/@nuxt/icon/node_modules/@nuxt/kit": {
"version": "3.19.1",
"resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.19.1.tgz",
"integrity": "sha512-cLKNdmfFk49o9Tt7g+vwD9rYN7cLg0D6K6CRB+4aaQYxveJXQbZGgZ4z7CGq5HxIG22Ki8G3XSXaiN1s6lVyZg==",
"license": "MIT",
"dependencies": {
"c12": "^3.2.0",
"consola": "^3.4.2",
"defu": "^6.1.4",
"destr": "^2.0.5",
"errx": "^0.1.0",
"exsolve": "^1.0.7",
"ignore": "^7.0.5",
"jiti": "^2.5.1",
"klona": "^2.0.6",
"knitwork": "^1.2.0",
"mlly": "^1.8.0",
"ohash": "^2.0.11",
"pathe": "^2.0.3",
"pkg-types": "^2.3.0",
"rc9": "^2.1.2",
"scule": "^1.3.0",
"semver": "^7.7.2",
"std-env": "^3.9.0",
"tinyglobby": "^0.2.14",
"ufo": "^1.6.1",
"unctx": "^2.4.1",
"unimport": "^5.2.0",
"untyped": "^2.0.0"
},
"engines": {
"node": ">=18.12.0"
}
},
"node_modules/@nuxt/ui/node_modules/@nuxt/kit": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-4.1.1.tgz",
@ -2519,6 +2638,18 @@
"node": ">=18.12.0"
}
},
"node_modules/@nuxt/ui/node_modules/globals": {
"version": "15.15.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
"integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
"license": "MIT",
"engines": {
"node": ">=18"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/@nuxt/vite-builder": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/@nuxt/vite-builder/-/vite-builder-4.1.1.tgz",
@ -10224,7 +10355,8 @@
"node_modules/kolorist": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
"integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ=="
"integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
"license": "MIT"
},
"node_modules/launch-editor": {
"version": "2.11.1",

View File

@ -12,6 +12,7 @@
"dependencies": {
"@nuxt/content": "^2.7.2",
"@nuxt/eslint": "^1.9.0",
"@nuxt/icon": "^2.0.0",
"@nuxt/image": "^1.11.0",
"@nuxt/scripts": "^0.11.13",
"@nuxt/test-utils": "^3.19.2",