commit 17cb1efcd07f7f3ba3f072a9c5a8141fb269d1e7 Author: Jafeng <2998840497@qq.com> Date: Thu Apr 30 11:04:48 2026 +0800 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b87a2cb --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +dist +docs diff --git a/index.html b/index.html new file mode 100644 index 0000000..51f6fcb --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + 柚康|患者精细化管理服务平台 + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..5a586f8 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1087 @@ +{ + "name": "youkang-vue3-homepage", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "youkang-vue3-homepage", + "version": "1.0.0", + "dependencies": { + "@vitejs/plugin-vue": "latest", + "vite": "latest", + "vue": "latest" + }, + "devDependencies": {} + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.2", + "resolved": "https://registry.npmmirror.com/@babel/parser/-/parser-7.29.2.tgz", + "integrity": "sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmmirror.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmmirror.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.127.0", + "resolved": "https://registry.npmmirror.com/@oxc-project/types/-/types-0.127.0.tgz", + "integrity": "sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz", + "integrity": "sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz", + "integrity": "sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz", + "integrity": "sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.17.tgz", + "integrity": "sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.17.tgz", + "integrity": "sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.17.tgz", + "integrity": "sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==", + "cpu": [ + "ppc64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==", + "cpu": [ + "s390x" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.17.tgz", + "integrity": "sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.17.tgz", + "integrity": "sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.17.tgz", + "integrity": "sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.17.tgz", + "integrity": "sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==", + "cpu": [ + "wasm32" + ], + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.17.tgz", + "integrity": "sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.17.tgz", + "integrity": "sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.13", + "resolved": "https://registry.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.13.tgz", + "integrity": "sha512-3ngTAv6F/Py35BsYbeeLeecvhMKdsKm4AoOETVhAA+Qc8nrA2I0kF7oa93mE9qnIurngOSpMnQ0x2nQY2FPviA==", + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://registry.npmmirror.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.6", + "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-6.0.6.tgz", + "integrity": "sha512-u9HHgfrq3AjXlysn0eINFnWQOJQLO9WN6VprZ8FXl7A2bYisv3Hui9Ij+7QZ41F/WYWarHjwBbXtD7dKg3uxbg==", + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-rc.13" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.33", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.33.tgz", + "integrity": "sha512-3PZLQwFw4Za3TC8t0FvTy3wI16Kt+pmwcgNZca4Pj9iWL2E72a/gZlpBtAJvEdDMdCxdG/qq0C7PN0bsJuv0Rw==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/shared": "3.5.33", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.33", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.33.tgz", + "integrity": "sha512-PXq0yrfCLzzL07rbXO4awtXY1Z06LG2eu6Adg3RJFa/j3Cii217XxxLXG22N330gw7GmALCY0Z8RgXEviwgpjA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.33", + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.33", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.33.tgz", + "integrity": "sha512-UTUvRO9cY+rROrx/pvN9P5Z7FgA6QGfokUCfhQE4EnmUj3rVnK+CHI0LsEO1pg+I7//iRYMUfcNcCPe7tg0CoA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.2", + "@vue/compiler-core": "3.5.33", + "@vue/compiler-dom": "3.5.33", + "@vue/compiler-ssr": "3.5.33", + "@vue/shared": "3.5.33", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.10", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.33", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.33.tgz", + "integrity": "sha512-IErjYdnj1qIupG5xxiVIYiiRvDhGWV4zuh/RCrwfYpuL+HWQzeU6lCk/nF9r7olWMnjKxCAkOctT2qFWFkzb1A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.33", + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.33", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.33.tgz", + "integrity": "sha512-p8UfIqyIhb0rYGlSgSBV+lPhF2iUSBcRy7enhTmPqKWadHy9kcOFYF1AejYBP9P+avnd3OBbD49DU4pLWX/94A==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.33", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.33.tgz", + "integrity": "sha512-UpFF45RI9//a7rvq7RdOQblb4tup7hHG9QsmIrxkFQLzQ7R8/iNQ5LE15NhLZ1/WcHMU2b47u6P33CPUelHyIQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.33", + "@vue/shared": "3.5.33" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.33", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.33.tgz", + "integrity": "sha512-IOxMsAOwquhfITgmOgaPYl7/j8gKUxUFoflRc+u4LxyD3+783xne8vNta1PONVCvCV9A0w7hkyEepINDqfO0tw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.33", + "@vue/runtime-core": "3.5.33", + "@vue/shared": "3.5.33", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.33", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.33.tgz", + "integrity": "sha512-0xylq/8/h44lVG0pZFknv1XIdEgymq2E9n59uTWJBG+dIgiT0TMCSsxrN7nO16Z0MU0MPjFcguBbZV8Itk52Hw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.33", + "@vue/shared": "3.5.33" + }, + "peerDependencies": { + "vue": "3.5.33" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.33", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.33.tgz", + "integrity": "sha512-5vR2QIlmaLG77Ygd4pMP6+SGQ5yox9VhtnbDWTy9DzMzdmeLxZ1QqxrywEZ9sa1AVubfIJyaCG3ytyWU81ufcQ==", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/entities/-/entities-7.0.1.tgz", + "integrity": "sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.12", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.12.tgz", + "integrity": "sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rolldown": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/rolldown/-/rolldown-1.0.0-rc.17.tgz", + "integrity": "sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==", + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.127.0", + "@rolldown/pluginutils": "1.0.0-rc.17" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.0-rc.17", + "@rolldown/binding-darwin-arm64": "1.0.0-rc.17", + "@rolldown/binding-darwin-x64": "1.0.0-rc.17", + "@rolldown/binding-freebsd-x64": "1.0.0-rc.17", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-rc.17", + "@rolldown/binding-linux-arm64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-arm64-musl": "1.0.0-rc.17", + "@rolldown/binding-linux-ppc64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-s390x-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-x64-gnu": "1.0.0-rc.17", + "@rolldown/binding-linux-x64-musl": "1.0.0-rc.17", + "@rolldown/binding-openharmony-arm64": "1.0.0-rc.17", + "@rolldown/binding-wasm32-wasi": "1.0.0-rc.17", + "@rolldown/binding-win32-arm64-msvc": "1.0.0-rc.17", + "@rolldown/binding-win32-x64-msvc": "1.0.0-rc.17" + } + }, + "node_modules/rolldown/node_modules/@rolldown/pluginutils": { + "version": "1.0.0-rc.17", + "resolved": "https://registry.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.17.tgz", + "integrity": "sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD", + "optional": true + }, + "node_modules/vite": { + "version": "8.0.10", + "resolved": "https://registry.npmmirror.com/vite/-/vite-8.0.10.tgz", + "integrity": "sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==", + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.10", + "rolldown": "1.0.0-rc.17", + "tinyglobby": "^0.2.16" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.0", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.33", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.33.tgz", + "integrity": "sha512-1AgChhx5w3ALgT4oK3acm2Es/7jyZhWSVUfs3rOBlGQC0rjEDkS7G4lWlJJGGNQD+BV3reCwbQrOe1mPNwKHBQ==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.33", + "@vue/compiler-sfc": "3.5.33", + "@vue/runtime-dom": "3.5.33", + "@vue/server-renderer": "3.5.33", + "@vue/shared": "3.5.33" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..497b5a1 --- /dev/null +++ b/package.json @@ -0,0 +1,17 @@ +{ + "name": "youcan-homepage", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite --host 0.0.0.0", + "build": "vite build", + "preview": "vite preview --host 0.0.0.0" + }, + "dependencies": { + "@vitejs/plugin-vue": "latest", + "vite": "latest", + "vue": "latest" + }, + "devDependencies": {} +} diff --git a/public/assets/logo.png b/public/assets/logo.png new file mode 100644 index 0000000..f90e6be Binary files /dev/null and b/public/assets/logo.png differ diff --git a/public/assets/medical.png b/public/assets/medical.png new file mode 100644 index 0000000..c746d81 Binary files /dev/null and b/public/assets/medical.png differ diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..caf8d75 --- /dev/null +++ b/src/App.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/components/CaseSection.vue b/src/components/CaseSection.vue new file mode 100644 index 0000000..fd46019 --- /dev/null +++ b/src/components/CaseSection.vue @@ -0,0 +1,70 @@ + + + diff --git a/src/components/ContactSection.vue b/src/components/ContactSection.vue new file mode 100644 index 0000000..b4275bc --- /dev/null +++ b/src/components/ContactSection.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/components/FooterBar.vue b/src/components/FooterBar.vue new file mode 100644 index 0000000..f3bfb43 --- /dev/null +++ b/src/components/FooterBar.vue @@ -0,0 +1,14 @@ + diff --git a/src/components/HeaderNav.vue b/src/components/HeaderNav.vue new file mode 100644 index 0000000..aff1812 --- /dev/null +++ b/src/components/HeaderNav.vue @@ -0,0 +1,124 @@ + + + diff --git a/src/components/HeroSection.vue b/src/components/HeroSection.vue new file mode 100644 index 0000000..324983c --- /dev/null +++ b/src/components/HeroSection.vue @@ -0,0 +1,25 @@ + diff --git a/src/components/IconMark.vue b/src/components/IconMark.vue new file mode 100644 index 0000000..59887ce --- /dev/null +++ b/src/components/IconMark.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/components/PlatformSection.vue b/src/components/PlatformSection.vue new file mode 100644 index 0000000..d8d1ea6 --- /dev/null +++ b/src/components/PlatformSection.vue @@ -0,0 +1,29 @@ + + + diff --git a/src/components/QrPlaceholder.vue b/src/components/QrPlaceholder.vue new file mode 100644 index 0000000..5a743b4 --- /dev/null +++ b/src/components/QrPlaceholder.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/components/SectionTitle.vue b/src/components/SectionTitle.vue new file mode 100644 index 0000000..4876455 --- /dev/null +++ b/src/components/SectionTitle.vue @@ -0,0 +1,15 @@ + + + diff --git a/src/components/SolutionSection.vue b/src/components/SolutionSection.vue new file mode 100644 index 0000000..27c6a05 --- /dev/null +++ b/src/components/SolutionSection.vue @@ -0,0 +1,87 @@ + + + diff --git a/src/data/homepage.js b/src/data/homepage.js new file mode 100644 index 0000000..a2fdc31 --- /dev/null +++ b/src/data/homepage.js @@ -0,0 +1,69 @@ +export const navItems = [ + { label: '首页', target: 'home' }, + { label: '公司介绍', target: 'company' }, + { label: '患者精细化管理服务平台', target: 'platform' }, + { label: '客户案例', target: 'cases' }, + { label: '联系我们', target: 'contact' } +] + +export const features = [ + { + icon: 'user-flow', + title: '前端运营获客', + items: ['公众号/视频号互动引流', '个人号承接', '团队微信池', '活动裂变', '企业微信能力融合'] + }, + { + icon: 'clipboard', + title: '中端服务承接', + items: ['患者建档、管理画像', '管理服务流程', '日诊断评估', '日访持续执行', '宣教、随访、复诊'] + }, + { + icon: 'chart', + title: '后端跟进管理', + items: ['复诊/随访流程分组', 'SOP任务引擎', '管理协作闭环', '任务分配下达', '运营管理支撑'] + }, + { + icon: 'ai', + title: '全端数智赋能', + items: ['体效营销体系及引擎', '话术智能客服训练', 'Youcan AI大模型', 'AI客服助手-小柚', '精细化客服多图层'] + } +] + +export const solutions = [ + { + key: 'cloud', + tab: '机构云服务版', + title: '版本优势', + points: ['快速开通、快速培训、快速上线', '按年付费、费用低', '享受平台功能持续升级服务', '支持管理患者档案数据的导出'], + qrLabel: '柚康企业微信客服二维码' + }, + { + key: 'local', + tab: '机构本地部署版', + title: '版本优势', + points: ['支持本地服务器部署及内部业务系统对接', '数据本地化管理', '大规模长期使用,性价比高'], + qrLabel: '柚康企业微信客服二维码' + }, + { + key: 'personal', + tab: '个人云服务版', + title: '医生/护士/助理免费开通', + points: ['如果您是医生、护士、医生助理,现在即可免费开通使用:'], + qrLabel: '柚助二维码' + } +] + +export const caseCategories = ['国家医学中心', '公立医院', '妇幼保健宫', '医疗集团客户'] + +export const cases = [ + { short: '骨', name: '国家骨科医学中心\n上海市第六人民医院', tone: 'blue', category: '国家医学中心' }, + { short: '呼', name: '国家呼吸医学中心\n广州医科大学附属第一医院', tone: 'orange', category: '国家医学中心' }, + { short: '广', name: '广医口腔', tone: 'blue', category: '公立医院' }, + { short: '广', name: '广医口腔', tone: 'blue', category: '公立医院' }, + { short: '丹', name: '丹红互联网医院', tone: 'red', category: '公立医院' }, + { short: '十', name: '圣德', tone: 'green', category: '妇幼保健宫' }, + { short: '中', name: '中信医疗', tone: 'red', category: '医疗集团客户' }, + { short: 'Z', name: '浙江震元', tone: 'cyan', category: '医疗集团客户' }, + { short: '合', name: '合禾', tone: 'green', category: '医疗集团客户' }, + { short: '…', name: '更多案例\n……', tone: 'gray', category: '医疗集团客户' } +] diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..6cfbbad --- /dev/null +++ b/src/main.js @@ -0,0 +1,5 @@ +import { createApp } from 'vue' +import App from './App.vue' +import './styles/theme.css' + +createApp(App).mount('#app') diff --git a/src/styles/theme.css b/src/styles/theme.css new file mode 100644 index 0000000..73604f7 --- /dev/null +++ b/src/styles/theme.css @@ -0,0 +1,977 @@ +:root { + --brand: #ff8a00; + --brand-dark: #ea7600; + --brand-soft: #fff2df; + --brand-soft-2: #ffe4bf; + --text: #202530; + --muted: #687080; + --line: rgba(255, 138, 0, 0.16); + --card: #ffffff; + --bg: #fffdf9; + --warm: #fff7ec; + --shadow: 0 18px 50px rgba(218, 112, 0, 0.12); + --shadow-sm: 0 10px 28px rgba(31, 35, 44, 0.08); + --radius-xl: 30px; + --radius-lg: 22px; + --radius-md: 16px; + --container: 1180px; + font-family: "Inter", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif; + color: var(--text); + background: var(--bg); +} + +* { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + margin: 0; + background: + radial-gradient(circle at 14% 8%, rgba(255, 138, 0, 0.10), transparent 28%), + radial-gradient(circle at 88% 20%, rgba(255, 196, 102, 0.16), transparent 32%), + linear-gradient(180deg, #fffaf2 0%, #ffffff 38%, #fffdf9 100%); + color: var(--text); +} + +a { + color: inherit; + text-decoration: none; +} + +button { + font: inherit; +} + +.container { + width: min(var(--container), calc(100% - 48px)); + margin: 0 auto; +} + +.site-shell { + min-height: 100vh; + overflow: hidden; +} + +.site-header { + position: sticky; + top: 0; + z-index: 50; + background: rgba(255, 255, 255, 0.88); + backdrop-filter: blur(18px); + border-bottom: 1px solid rgba(255, 138, 0, 0.08); +} + +.header-inner { + height: 86px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 36px; +} + +.brand { + display: inline-flex; + align-items: center; + gap: 12px; + min-width: 210px; +} + +.brand-logo { + width: 52px; + height: 52px; + border-radius: 14px; + object-fit: contain; + box-shadow: 0 10px 22px rgba(255, 138, 0, 0.16); +} + +.brand-copy, +.footer-brand span { + display: grid; + line-height: 1.1; +} + +.brand-copy strong, +.footer-brand strong { + font-size: 25px; + letter-spacing: 0.04em; +} + +.brand-copy em, +.footer-brand em { + margin-top: 7px; + color: var(--muted); + font-style: normal; + font-size: 12px; +} + +.nav-links { + display: flex; + align-items: center; + gap: clamp(22px, 3.4vw, 58px); + font-size: 16px; + color: #252a35; +} + +.nav-toggle { + display: none; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 5px; + width: 44px; + height: 44px; + border: 1px solid rgba(255, 138, 0, 0.18); + border-radius: 12px; + background: #fff; + cursor: pointer; +} + +.nav-toggle span { + display: block; + width: 20px; + height: 2px; + border-radius: 999px; + background: var(--brand); +} + +.nav-link { + position: relative; + padding: 31px 0 28px; + white-space: nowrap; + transition: color 0.2s ease; +} + +.nav-link:hover, +.nav-link.active { + color: var(--brand); +} + +.nav-link.active::after { + content: ""; + position: absolute; + left: 50%; + bottom: 16px; + width: 32px; + height: 4px; + border-radius: 999px; + background: linear-gradient(90deg, var(--brand), #ffb154); + transform: translateX(-50%); +} + +.hero-section { + position: relative; + padding: 64px 0 84px; + background: + linear-gradient(105deg, rgba(255, 255, 255, 0.96), rgba(255, 237, 210, 0.78) 52%, rgba(255, 255, 255, 0.94)), + radial-gradient(circle at 68% 40%, rgba(255, 138, 0, 0.16), transparent 28%); + overflow: hidden; +} + +.hero-section::after { + content: ""; + position: absolute; + right: -180px; + bottom: -190px; + width: 650px; + height: 360px; + border-radius: 50%; + border: 24px solid rgba(255, 138, 0, 0.26); + transform: rotate(-12deg); +} + +.hero-bg-orb { + position: absolute; + border-radius: 999px; + background: linear-gradient(135deg, rgba(255, 138, 0, 0.28), rgba(255, 255, 255, 0.1)); + filter: blur(2px); +} + +.hero-bg-orb--left { + width: 110px; + height: 110px; + left: 48%; + top: 35%; +} + +.hero-bg-orb--right { + width: 180px; + height: 180px; + right: 8%; + top: 16%; + opacity: 0.32; +} + +.hero-grid { + position: relative; + z-index: 2; + display: grid; + grid-template-columns: 1.02fr 0.98fr; + align-items: center; + gap: 52px; +} + +.hero-copy { + max-width: 620px; +} + +.eyebrow { + display: inline-flex; + align-items: center; + gap: 8px; + margin: 0 0 14px; + color: var(--brand-dark); + font-weight: 700; + letter-spacing: 0.08em; +} + +.eyebrow::before { + content: ""; + width: 22px; + height: 3px; + border-radius: 999px; + background: var(--brand); +} + +.hero-copy h1 { + margin: 0; + font-size: clamp(38px, 4.5vw, 58px); + line-height: 1.22; + letter-spacing: -0.04em; + color: #171b23; +} + +.hero-badge { + display: inline-flex; + align-items: center; + margin-top: 24px; + padding: 13px 34px; + border-radius: 999px; + background: linear-gradient(90deg, var(--brand), #ffad39); + color: #fff; + font-size: 24px; + font-weight: 800; + box-shadow: 0 16px 34px rgba(255, 138, 0, 0.24); +} + +.glass-card { + background: rgba(255, 255, 255, 0.76); + border: 1px solid rgba(255, 255, 255, 0.82); + box-shadow: var(--shadow); + backdrop-filter: blur(18px); +} + +.intro-card { + margin-top: 32px; + padding: 26px 30px; + border-radius: 20px; +} + +.intro-card p { + margin: 0; + color: #424956; + font-size: 17px; + line-height: 2.05; +} + +.hero-visual { + position: relative; + min-height: 458px; + display: grid; + place-items: center; +} + +.hero-visual img { + width: min(100%, 620px); + height: auto; + display: block; + border-radius: 42px; + filter: drop-shadow(0 28px 56px rgba(255, 138, 0, 0.14)); +} + +.float-card { + position: absolute; + display: grid; + gap: 4px; + padding: 14px 18px; + border-radius: 18px; + background: rgba(255, 255, 255, 0.74); + border: 1px solid rgba(255, 255, 255, 0.88); + box-shadow: var(--shadow-sm); + backdrop-filter: blur(16px); +} + +.float-card span { + color: var(--muted); + font-size: 12px; +} + +.float-card strong { + color: var(--brand); + font-size: 20px; +} + +.float-card--heart { + top: 62px; + left: 34px; +} + +.float-card--data { + right: 28px; + bottom: 68px; +} + +.page-section { + padding: 70px 0; + background: #fff; +} + +.page-section--compact { + padding-top: 44px; +} + +.section-title { + display: flex; + align-items: center; + justify-content: center; + gap: 20px; + flex-wrap: wrap; + margin-bottom: 42px; + text-align: center; +} + +.section-title h2 { + margin: 0; + font-size: clamp(28px, 3vw, 40px); + letter-spacing: -0.03em; +} + +.section-title p { + flex-basis: 100%; + margin: 0; + color: var(--muted); +} + +.title-dots { + display: inline-flex; + gap: 8px; +} + +.title-dots i { + display: block; + width: 9px; + height: 9px; + border-radius: 999px; + background: var(--brand); + box-shadow: 16px 0 0 rgba(255, 138, 0, 0.42); +} + +.feature-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 28px; +} + +.feature-card { + overflow: hidden; + border-radius: 18px; + background: #fff; + box-shadow: var(--shadow-sm); + border: 1px solid rgba(255, 138, 0, 0.10); + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.feature-card:hover, +.solution-card:hover, +.case-card:hover { + transform: translateY(-4px); + box-shadow: 0 20px 46px rgba(31, 35, 44, 0.10); +} + +.feature-head { + position: relative; + display: grid; + place-items: center; + gap: 12px; + padding: 28px 20px 24px; + color: #fff; + background: linear-gradient(180deg, var(--brand), #ff7900); +} + +.feature-head::after { + content: ""; + position: absolute; + inset: auto -18px -22px -18px; + height: 48px; + border-radius: 50% 50% 0 0; + background: #fff; + opacity: 0.12; +} + +.feature-icon { + position: relative; + z-index: 1; + width: 72px; + height: 72px; + border-radius: 999px; + display: grid; + place-items: center; + color: var(--brand); + background: #fff; +} + +.feature-head h3 { + position: relative; + z-index: 1; + margin: 0; + font-size: 21px; +} + +.feature-list { + list-style: none; + display: grid; + gap: 12px; + margin: 0; + padding: 22px 18px 24px; + background: linear-gradient(180deg, #fff, #fffaf5); +} + +.feature-list li { + display: flex; + align-items: center; + gap: 9px; + min-height: 36px; + padding: 8px 13px; + border-radius: 10px; + background: linear-gradient(180deg, #fff, #fff5ec); + color: #535b68; + font-size: 14px; + box-shadow: inset 0 0 0 1px rgba(255, 138, 0, 0.10); +} + +.check-dot { + display: inline-grid; + place-items: center; + flex: 0 0 auto; + width: 16px; + height: 16px; + border-radius: 50%; + color: #fff; + background: var(--brand); + font-size: 10px; + font-weight: 800; +} + +.solution-section { + background: linear-gradient(180deg, #fff, #fffaf4 42%, #fff); +} + +.solution-tabs { + position: relative; + display: grid; + grid-template-columns: repeat(3, 1fr); + width: min(760px, 100%); + min-height: 58px; + margin: 0 auto 28px; + padding: 6px; + border-radius: 15px; + background: #fff; + box-shadow: var(--shadow-sm); + border: 1px solid rgba(255, 138, 0, 0.12); +} + +.solution-tab { + position: relative; + z-index: 2; + border: 0; + background: transparent; + color: #4e5664; + font-weight: 800; + cursor: pointer; + border-radius: 12px; + transition: color 0.2s ease; +} + +.solution-tab.active { + color: #fff; +} + +.tab-indicator { + position: absolute; + z-index: 1; + left: 6px; + top: 6px; + width: calc((100% - 12px) / 3); + height: calc(100% - 12px); + border-radius: 12px; + background: linear-gradient(90deg, var(--brand), #ff9d22); + box-shadow: 0 12px 24px rgba(255, 138, 0, 0.24); + transition: transform 0.26s ease; +} + +.solution-grid { + display: grid; + grid-template-columns: 1fr; + width: min(760px, 100%); + margin: 0 auto; +} + +.solution-card { + min-height: 286px; + padding: 27px 24px 22px; + border-radius: 20px; + background: rgba(255, 255, 255, 0.9); + border: 1px solid rgba(255, 138, 0, 0.11); + box-shadow: var(--shadow-sm); + transition: all 0.22s ease; +} + +.solution-card.active { + border-color: rgba(255, 138, 0, 0.32); + box-shadow: 0 22px 58px rgba(255, 138, 0, 0.16); +} + +.solution-kicker { + display: inline-flex; + margin-bottom: 10px; + color: var(--brand); + font-size: 13px; + font-weight: 800; +} + +.solution-card h3 { + margin: 0 0 14px; + font-size: 21px; +} + +.solution-points { + margin: 0; + padding-left: 20px; + color: #424956; + line-height: 1.9; +} + +.solution-personal-text { + margin: 0 0 40px; + color: #424956; + line-height: 1.9; +} + +.solution-qr-row { + margin-top: 18px; + display: flex; + align-items: end; + justify-content: space-between; + gap: 20px; + color: #4e5664; + font-size: 14px; +} + +.qr-wrap { + display: grid; + justify-items: center; + gap: 8px; +} + +.qr-fake { + position: relative; + width: 94px; + height: 94px; + border: 7px solid #fff; + background: + linear-gradient(90deg, #111 10px, transparent 10px 16px, #111 16px 22px, transparent 22px 31px, #111 31px 38px, transparent 38px 47px, #111 47px 54px, transparent 54px 64px, #111 64px 72px, transparent 72px), + linear-gradient(0deg, transparent 8px, #111 8px 14px, transparent 14px 23px, #111 23px 30px, transparent 30px 39px, #111 39px 45px, transparent 45px 59px, #111 59px 66px, transparent 66px), + #fff; + background-blend-mode: multiply; + box-shadow: inset 0 0 0 1px #111, 0 6px 14px rgba(0,0,0,.08); +} + +.qr-corner { + position: absolute; + width: 26px; + height: 26px; + border: 5px solid #111; + background: #fff; +} + +.qr-corner::after { + content: ""; + position: absolute; + inset: 5px; + background: #111; +} + +.qr-corner.tl { left: 6px; top: 6px; } +.qr-corner.tr { right: 6px; top: 6px; } +.qr-corner.bl { left: 6px; bottom: 6px; } + +.qr-label { + max-width: 118px; + margin: 0; + color: #66707d; + font-size: 12px; + line-height: 1.3; + text-align: center; +} + +.qr-wrap--small .qr-fake { + width: 78px; + height: 78px; + border-width: 6px; +} + +.qr-wrap--small .qr-label { + display: none; +} + +.case-section { + background: #fff; +} + +.case-layout { + display: grid; + grid-template-columns: 170px 1fr; + gap: 46px; + align-items: start; +} + +.case-filter { + display: grid; + gap: 15px; +} + +.case-filter-btn { + min-height: 54px; + padding: 0 18px; + border-radius: 12px; + border: 1px solid rgba(255, 138, 0, 0.18); + background: #fff; + color: #313843; + font-size: 16px; + font-weight: 800; + cursor: pointer; + transition: all 0.2s ease; +} + +.case-filter-btn.active, +.case-filter-btn:hover { + border-color: transparent; + background: linear-gradient(90deg, var(--brand), #ff9d22); + color: #fff; + box-shadow: 0 12px 24px rgba(255, 138, 0, 0.22); +} + +.case-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 16px; +} + +.case-card { + min-height: 86px; + display: flex; + align-items: center; + gap: 14px; + padding: 16px 18px; + border: 1px solid rgba(31, 35, 44, 0.07); + border-radius: 14px; + background: #fff; + box-shadow: 0 8px 26px rgba(31, 35, 44, 0.05); + transition: all 0.2s ease; +} + +.case-logo { + flex: 0 0 auto; + width: 48px; + height: 48px; + display: grid; + place-items: center; + border-radius: 14px; + color: #fff; + font-weight: 900; + font-size: 18px; +} + +.case-logo--blue { background: linear-gradient(135deg, #2e6bd4, #153d93); } +.case-logo--orange { background: linear-gradient(135deg, var(--brand), #ffb24b); } +.case-logo--red { background: linear-gradient(135deg, #e63e31, #bd1f18); } +.case-logo--cyan { background: linear-gradient(135deg, #26a4e8, #0874b8); } +.case-logo--green { background: linear-gradient(135deg, #10a774, #087d56); } +.case-logo--gray { background: linear-gradient(135deg, #b6bdc7, #88919f); } + +.case-card p { + margin: 0; + color: #2f3540; + line-height: 1.45; + white-space: pre-line; + font-size: 14px; +} + +.contact-section { + background: linear-gradient(180deg, #fff, #fff7ec); +} + +.contact-card { + width: min(960px, 100%); + margin: 0 auto; + padding: 34px 40px; + border-radius: 24px; + background: rgba(255, 255, 255, 0.86); + border: 1px solid rgba(255, 138, 0, 0.15); + box-shadow: var(--shadow); +} + +.address-row { + display: flex; + align-items: center; + justify-content: center; + flex-wrap: wrap; + gap: 8px; + font-size: 20px; + margin-bottom: 28px; +} + +.address-icon { + display: inline-grid; + place-items: center; + width: 40px; + height: 40px; + border-radius: 50%; + background: var(--brand); + color: #fff; +} + +.contact-manager-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 24px; +} + +.manager-card { + display: flex; + align-items: center; + justify-content: space-between; + gap: 24px; + padding: 22px 26px; + border-radius: 18px; + background: #fff; + box-shadow: var(--shadow-sm); +} + +.manager-copy { + display: flex; + align-items: center; + gap: 14px; +} + +.manager-copy p { + margin: 0; + color: #3d4552; + line-height: 1.7; +} + +.manager-icon { + display: grid; + place-items: center; + width: 42px; + height: 42px; + border-radius: 50%; + background: var(--brand-soft); + color: var(--brand); + font-size: 20px; +} + +.site-footer { + background: #f6f7f9; + border-top: 1px solid rgba(31, 35, 44, 0.06); +} + +.footer-inner { + min-height: 92px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 20px; + color: #8a929f; + font-size: 14px; +} + +.footer-brand { + display: inline-flex; + align-items: center; + gap: 10px; + color: var(--text); +} + +.footer-brand img { + width: 44px; + height: 44px; + border-radius: 12px; +} + +.footer-brand strong { + font-size: 18px; +} + +@media (max-width: 1100px) { + .nav-links { + gap: 20px; + font-size: 14px; + } + .hero-grid { + grid-template-columns: 1fr; + } + .hero-copy { + max-width: none; + } + .feature-grid { + grid-template-columns: repeat(2, 1fr); + } + .case-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} + +@media (max-width: 860px) { + .container { + width: min(100% - 28px, var(--container)); + } + .site-header { + position: static; + } + .header-inner { + height: auto; + padding: 16px 0; + flex-wrap: wrap; + gap: 12px; + } + .brand { + min-width: 0; + } + .nav-toggle { + display: inline-flex; + margin-left: auto; + } + .nav-links { + width: 100%; + display: none; + padding: 6px; + border-radius: 15px; + background: #fff; + border: 1px solid rgba(255, 138, 0, 0.12); + box-shadow: var(--shadow-sm); + } + .nav-links.open { + display: grid; + gap: 2px; + } + .nav-link { + padding: 12px 14px; + border-radius: 10px; + } + .nav-link.active::after { + left: 14px; + bottom: 8px; + width: 22px; + transform: none; + } + .hero-section { + padding: 44px 0 60px; + } + .hero-badge { + font-size: 18px; + padding: 11px 22px; + } + .intro-card { + padding: 20px; + } + .intro-card p { + font-size: 15px; + } + .hero-visual { + min-height: auto; + } + .float-card { + display: none; + } + .feature-grid, + .contact-manager-grid { + grid-template-columns: 1fr; + } + .solution-tabs { + grid-template-columns: repeat(3, 1fr); + min-height: 50px; + padding: 5px; + } + .solution-tab { + min-height: 40px; + padding: 0 6px; + font-size: 13px; + line-height: 1.25; + } + .tab-indicator { + left: 5px; + top: 5px; + width: calc((100% - 10px) / 3); + height: calc(100% - 10px); + } + .case-layout { + grid-template-columns: 1fr; + gap: 22px; + } + .case-filter { + display: flex; + overflow-x: auto; + padding-bottom: 4px; + } + .case-filter-btn { + white-space: nowrap; + min-width: 136px; + } + .contact-card { + padding: 24px 18px; + } + .manager-card { + align-items: flex-start; + } + .footer-inner { + flex-direction: column; + align-items: flex-start; + padding: 24px 0; + } +} + +@media (max-width: 540px) { + .brand-copy strong { + font-size: 22px; + } + .brand-logo { + width: 46px; + height: 46px; + } + .hero-copy h1 { + font-size: 31px; + } + .section-title { + gap: 12px; + margin-bottom: 28px; + } + .title-dots { + display: none; + } + .case-grid { + grid-template-columns: 1fr; + } + .solution-qr-row, + .manager-card { + flex-direction: column; + align-items: flex-start; + } + .address-row { + justify-content: flex-start; + font-size: 17px; + } +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..99ad3aa --- /dev/null +++ b/vite.config.js @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +export default defineConfig({ + plugins: [vue()], + server: { + port: 5173, + host: '0.0.0.0' + } +})