From b1c8859634791b85088f02a4aa56bcf0aa049c1a Mon Sep 17 00:00:00 2001 From: xy <2115269706@qq.com> Date: Wed, 12 Mar 2025 10:59:05 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 1209 ++++++++++++++++++++++++++++++++++++-- package.json | 4 +- src/api/user.ts | 16 + src/layout/loginPage.vue | 111 +++- tsconfig.json | 2 +- 5 files changed, 1257 insertions(+), 85 deletions(-) create mode 100644 src/api/user.ts diff --git a/package-lock.json b/package-lock.json index 8e5094a..fddbf3d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,10 +8,20 @@ "name": "vite-project", "version": "0.0.0", "dependencies": { - "@element-plus/icons-vue": "^2.3.1", + "@antv/x6": "^2.18.1", + "@antv/x6-plugin-clipboard": "^2.1.6", + "@antv/x6-plugin-history": "^2.2.4", + "@antv/x6-plugin-keyboard": "^2.2.3", + "@antv/x6-plugin-selection": "^2.2.2", + "@antv/x6-plugin-snapline": "^2.1.7", + "@antv/x6-plugin-stencil": "^2.1.5", + "@antv/x6-plugin-transform": "^2.1.8", + "@antv/x6-vue-shape": "^2.1.2", "@kjgl77/datav-vue3": "^1.7.3", "axios": "^1.7.2", - "element-plus": "^2.9.5", + "echarts": "^5.6.0", + "element-plus": "^2.9.6", + "insert-css": "^2.0.0", "lib-flexible": "^0.3.2", "pinia": "^2.1.7", "postcss-plugin-px2rem": "^0.8.1", @@ -29,6 +39,8 @@ "postcss-scss": "^4.0.9", "px2rem-loader": "^0.1.9", "typescript": "^5.2.2", + "unplugin-auto-import": "^19.1.1", + "unplugin-vue-components": "^28.4.1", "vite": "^5.3.1", "vue-tsc": "^2.0.21" } @@ -96,6 +108,118 @@ } } }, + "node_modules/@antv/x6": { + "version": "2.18.1", + "resolved": "https://registry.npmmirror.com/@antv/x6/-/x6-2.18.1.tgz", + "integrity": "sha512-FkWdbLOpN9J7dfJ+kiBxzowSx2N6syBily13NMVdMs+wqC6Eo5sLXWCZjQHateTFWgFw7ZGi2y9o3Pmdov1sXw==", + "dependencies": { + "@antv/x6-common": "^2.0.16", + "@antv/x6-geometry": "^2.0.5", + "utility-types": "^3.10.0" + } + }, + "node_modules/@antv/x6-common": { + "version": "2.0.17", + "resolved": "https://registry.npmmirror.com/@antv/x6-common/-/x6-common-2.0.17.tgz", + "integrity": "sha512-37g7vmRkNdYzZPdwjaMSZEGv/MMH0S4r70/Jwoab1mioycmuIBN73iyziX8m56BvJSDucZ3J/6DU07otWqzS6A==", + "dependencies": { + "lodash-es": "^4.17.15", + "utility-types": "^3.10.0" + } + }, + "node_modules/@antv/x6-geometry": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@antv/x6-geometry/-/x6-geometry-2.0.5.tgz", + "integrity": "sha512-MId6riEQkxphBpVeTcL4ZNXL4lScyvDEPLyIafvWMcWNTGK0jgkK7N20XSzqt8ltJb0mGUso5s56mrk8ysHu2A==" + }, + "node_modules/@antv/x6-plugin-clipboard": { + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-clipboard/-/x6-plugin-clipboard-2.1.6.tgz", + "integrity": "sha512-roZPLnZx6PK8MBvee0QMo90fz/TXeF0WNe4EGin2NBq5M1I5XTWrYvA6N2XVIiWAAI67gjQeEE8TpkL7f8QdqA==", + "peerDependencies": { + "@antv/x6": "^2.x" + } + }, + "node_modules/@antv/x6-plugin-dnd": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-dnd/-/x6-plugin-dnd-2.1.1.tgz", + "integrity": "sha512-v0szzik1RkadPDn4Qi5mOSaB2AeI78D40/YuCYbPVzplG+HydGsHwO3MLTgJPQ+R5n0eM0W5F850p1VfTOHR7g==", + "peerDependencies": { + "@antv/x6": "^2.x" + } + }, + "node_modules/@antv/x6-plugin-history": { + "version": "2.2.4", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-history/-/x6-plugin-history-2.2.4.tgz", + "integrity": "sha512-9gHHvEW4Fla+1hxUV49zNgJyIMoV9CjVM52MrFgAJcvyRn1Kvxz4MfxiKlG+DEZUs+/zvfjl9pS6gJOd8laRkg==", + "peerDependencies": { + "@antv/x6": "^2.x" + } + }, + "node_modules/@antv/x6-plugin-keyboard": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-keyboard/-/x6-plugin-keyboard-2.2.3.tgz", + "integrity": "sha512-pnCIC+mDyKKfkcDyLePfGxKVIqXBcldTgannITkHC1kc0IafRS1GMvzpvuDGrM5haRYd6Nwz8kjkJyHkJE4GPA==", + "dependencies": { + "mousetrap": "^1.6.5" + }, + "peerDependencies": { + "@antv/x6": "^2.x" + } + }, + "node_modules/@antv/x6-plugin-selection": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-selection/-/x6-plugin-selection-2.2.2.tgz", + "integrity": "sha512-s2gtR9Onlhr7HOHqyqg0d+4sG76JCcQEbvrZZ64XmSChlvieIPlC3YtH4dg1KMNhYIuBmBmpSum6S0eVTEiPQw==", + "peerDependencies": { + "@antv/x6": "^2.x" + } + }, + "node_modules/@antv/x6-plugin-snapline": { + "version": "2.1.7", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-snapline/-/x6-plugin-snapline-2.1.7.tgz", + "integrity": "sha512-AsysoCb9vES0U2USNhEpYuO/W8I0aYfkhlbee5Kt4NYiMfQfZKQyqW/YjDVaS2pm38C1NKu1LdPVk/BBr4CasA==", + "peerDependencies": { + "@antv/x6": "^2.x" + } + }, + "node_modules/@antv/x6-plugin-stencil": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-stencil/-/x6-plugin-stencil-2.1.5.tgz", + "integrity": "sha512-q7wx7XRMFkUKPv3WsHkvZda6O1GW+6q6H/+c1lcrwlQoEKOFv1Djc4Hu2J4SGhV2z98P2JLfVJiT5m7YoOoCHw==", + "dependencies": { + "@antv/x6-plugin-dnd": "^2.x" + }, + "peerDependencies": { + "@antv/x6": "^2.x" + } + }, + "node_modules/@antv/x6-plugin-transform": { + "version": "2.1.8", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-transform/-/x6-plugin-transform-2.1.8.tgz", + "integrity": "sha512-GvJuiJ4BKp0H7+qx3R1I+Vzbw5gXp9+oByXo/WyVxE3urOC7LC5sqnaDfIjyYMN6ROLPYPZraLSeSyYBgMgcDw==", + "peerDependencies": { + "@antv/x6": "^2.x" + } + }, + "node_modules/@antv/x6-vue-shape": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/@antv/x6-vue-shape/-/x6-vue-shape-2.1.2.tgz", + "integrity": "sha512-lfLNJ2ztK8NP2JBAWTD6m5Wol0u6tOqj2KdOhWZoT8EtEw9rMmAdxsr8uTi9MRJO9pDMM0nbsR3cidnMh7VeDQ==", + "dependencies": { + "vue-demi": "latest" + }, + "peerDependencies": { + "@antv/x6": "^2.x", + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^2.0.0 || >=3.0.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, "node_modules/@babel/helper-string-parser": { "version": "7.25.9", "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", @@ -1492,12 +1616,10 @@ } }, "node_modules/acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "version": "8.14.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", "dev": true, - "optional": true, - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1505,6 +1627,19 @@ "node": ">=0.4.0" } }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/async-validator": { "version": "4.2.5", "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", @@ -1552,6 +1687,18 @@ "node": "*" } }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1566,7 +1713,7 @@ "version": "3.0.3", "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "optional": true, + "devOptional": true, "dependencies": { "fill-range": "^7.1.1" }, @@ -1582,6 +1729,30 @@ "optional": true, "peer": true }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", @@ -1605,6 +1776,12 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "node_modules/confbox": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.1.tgz", + "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==", + "dev": true + }, "node_modules/copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz", @@ -1645,6 +1822,23 @@ "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", "dev": true }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz", @@ -1729,10 +1923,24 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/echarts": { + "version": "5.6.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz", + "integrity": "sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==", + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.6.1" + } + }, + "node_modules/echarts/node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, "node_modules/element-plus": { - "version": "2.9.5", - "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.5.tgz", - "integrity": "sha512-r+X79oogLbYq8p9L5f9fHSHhUFNM0AL72aikqiZVxSc2/08mK6m/PotiB9e/D90QmWTIHIaFnFmW65AcXmneig==", + "version": "2.9.6", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.6.tgz", + "integrity": "sha512-D9zU28Ce0s/9O/Vp3ewemikxzFVA6gdZyMwmWijHijo+t5/9H3sHRTIm1WlfeNpFW2Yq0y8nHXD0fU5YxU6qlQ==", "dependencies": { "@ctrl/tinycolor": "^3.4.1", "@element-plus/icons-vue": "^2.3.1", @@ -1868,11 +2076,29 @@ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "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==" }, + "node_modules/exsolve": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.4.tgz", + "integrity": "sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==", + "dev": true + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", @@ -1883,7 +2109,7 @@ "version": "7.1.1", "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "optional": true, + "devOptional": true, "dependencies": { "to-regex-range": "^5.0.1" }, @@ -1943,6 +2169,18 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2045,11 +2283,28 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "node_modules/insert-css": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/insert-css/-/insert-css-2.0.0.tgz", + "integrity": "sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "optional": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -2058,7 +2313,7 @@ "version": "4.0.3", "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "optional": true, + "devOptional": true, "dependencies": { "is-extglob": "^2.1.1" }, @@ -2070,7 +2325,7 @@ "version": "7.0.0", "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "optional": true, + "devOptional": true, "engines": { "node": ">=0.12.0" } @@ -2087,9 +2342,9 @@ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" }, "node_modules/js-tokens": { - "version": "9.0.0", - "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", - "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", "dev": true }, "node_modules/json5": { @@ -2183,6 +2438,23 @@ "node": ">=4.0.0" } }, + "node_modules/local-pkg": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.1.tgz", + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "dev": true, + "dependencies": { + "mlly": "^1.7.4", + "pkg-types": "^2.0.1", + "quansync": "^0.2.8" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", @@ -2282,6 +2554,46 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + } + }, + "node_modules/mlly/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true + }, + "node_modules/mlly/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/mousetrap": { + "version": "1.6.5", + "resolved": "https://registry.npmmirror.com/mousetrap/-/mousetrap-1.6.5.tgz", + "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "node_modules/nanoid": { "version": "3.3.8", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz", @@ -2334,6 +2646,15 @@ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "optional": true }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/normalize-wheel-es": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", @@ -2372,6 +2693,12 @@ "node": ">=0.10.0" } }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", @@ -2381,7 +2708,7 @@ "version": "2.3.1", "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "optional": true, + "devOptional": true, "engines": { "node": ">=8.6" }, @@ -2410,6 +2737,17 @@ } } }, + "node_modules/pkg-types": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.1.0.tgz", + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", + "dev": true, + "dependencies": { + "confbox": "^0.2.1", + "exsolve": "^1.0.1", + "pathe": "^2.0.3" + } + }, "node_modules/postcss": { "version": "8.5.3", "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz", @@ -2818,6 +3156,34 @@ "node": ">=0.10.0" } }, + "node_modules/quansync": { + "version": "0.2.8", + "resolved": "https://registry.npmmirror.com/quansync/-/quansync-0.2.8.tgz", + "integrity": "sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/antfu" + }, + { + "type": "individual", + "url": "https://github.com/sponsors/sxzz" + } + ] + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, "node_modules/regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", @@ -2928,6 +3294,12 @@ "dev": true, "optional": true }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "dev": true + }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", @@ -2993,6 +3365,18 @@ "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, + "node_modules/strip-literal": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-3.0.0.tgz", + "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "dev": true, + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/terser": { "version": "5.31.1", "resolved": "https://registry.npmmirror.com/terser/-/terser-5.31.1.tgz", @@ -3021,11 +3405,53 @@ "optional": true, "peer": true }, + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "optional": true, + "devOptional": true, "dependencies": { "is-number": "^7.0.0" }, @@ -3052,30 +3478,227 @@ "node": ">=14.17" } }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "node_modules/unimport": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/unimport/-/unimport-4.1.2.tgz", + "integrity": "sha512-oVUL7PSlyVV3QRhsdcyYEMaDX8HJyS/CnUonEJTYA3//bWO+o/4gG8F7auGWWWkrrxBQBYOO8DKe+C53ktpRXw==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "pkg-types": "^1.3.1", + "scule": "^1.3.0", + "strip-literal": "^3.0.0", + "tinyglobby": "^0.2.11", + "unplugin": "^2.2.0", + "unplugin-utils": "^0.2.4" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unimport/node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", "dev": true }, - "node_modules/vite": { - "version": "5.3.2", - "resolved": "https://registry.npmmirror.com/vite/-/vite-5.3.2.tgz", - "integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==", + "node_modules/unimport/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.38", - "rollup": "^4.13.0" + "@types/estree": "^1.0.0" + } + }, + "node_modules/unimport/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" }, - "bin": { + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/unimport/node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/unplugin": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-2.2.0.tgz", + "integrity": "sha512-m1ekpSwuOT5hxkJeZGRxO7gXbXT3gF26NjQ7GdVHoLoF8/nopLcd/QfPigpCy7i51oFHiRJg/CyHhj4vs2+KGw==", + "dev": true, + "dependencies": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin-auto-import": { + "version": "19.1.1", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-19.1.1.tgz", + "integrity": "sha512-sCGZZrSR1Bc8RfN8Q0RUDxXtC20rdAt7UB4lDyq8MNtKVHiXXh+5af6Nz4JRp9Q+7HjnbgQfQox0TkEymjdUAQ==", + "dev": true, + "dependencies": { + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "picomatch": "^4.0.2", + "unimport": "^4.1.2", + "unplugin": "^2.2.0", + "unplugin-utils": "^0.2.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@nuxt/kit": "^3.2.2", + "@vueuse/core": "*" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + }, + "@vueuse/core": { + "optional": true + } + } + }, + "node_modules/unplugin-auto-import/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/unplugin-utils": { + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/unplugin-utils/-/unplugin-utils-0.2.4.tgz", + "integrity": "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==", + "dev": true, + "dependencies": { + "pathe": "^2.0.2", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/unplugin-utils/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/unplugin-vue-components": { + "version": "28.4.1", + "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-28.4.1.tgz", + "integrity": "sha512-niGSc0vJD9ueAnsqcfAldmtpkppZ09B6p2G1dL7X5S8KPdgbk1P+txPwaaDCe7N+eZh2VG1aAypLXkuJs3OSUg==", + "dev": true, + "dependencies": { + "chokidar": "^3.6.0", + "debug": "^4.4.0", + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "tinyglobby": "^0.2.12", + "unplugin": "^2.2.0", + "unplugin-utils": "^0.2.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@babel/parser": "^7.15.8", + "@nuxt/kit": "^3.2.2", + "vue": "2 || 3" + }, + "peerDependenciesMeta": { + "@babel/parser": { + "optional": true + }, + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmmirror.com/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/vite": { + "version": "5.3.2", + "resolved": "https://registry.npmmirror.com/vite/-/vite-5.3.2.tgz", + "integrity": "sha512-6lA7OBHBlXUxiJxbO5aAY2fsHHzDr1q7DvXYnyZycRs2Dz+dXBWuhpWHvmljTRTpQC2uvGmUFFkSHF2vGo90MA==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { "vite": "bin/vite.js" }, "engines": { @@ -3250,6 +3873,12 @@ "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz", "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==" }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", @@ -3261,9 +3890,106 @@ "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true + }, + "node_modules/zrender": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.1.tgz", + "integrity": "sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==", + "dependencies": { + "tslib": "2.3.0" + } + }, + "node_modules/zrender/node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" } }, "dependencies": { + "@antv/x6": { + "version": "2.18.1", + "resolved": "https://registry.npmmirror.com/@antv/x6/-/x6-2.18.1.tgz", + "integrity": "sha512-FkWdbLOpN9J7dfJ+kiBxzowSx2N6syBily13NMVdMs+wqC6Eo5sLXWCZjQHateTFWgFw7ZGi2y9o3Pmdov1sXw==", + "requires": { + "@antv/x6-common": "^2.0.16", + "@antv/x6-geometry": "^2.0.5", + "utility-types": "^3.10.0" + } + }, + "@antv/x6-common": { + "version": "2.0.17", + "resolved": "https://registry.npmmirror.com/@antv/x6-common/-/x6-common-2.0.17.tgz", + "integrity": "sha512-37g7vmRkNdYzZPdwjaMSZEGv/MMH0S4r70/Jwoab1mioycmuIBN73iyziX8m56BvJSDucZ3J/6DU07otWqzS6A==", + "requires": { + "lodash-es": "^4.17.15", + "utility-types": "^3.10.0" + } + }, + "@antv/x6-geometry": { + "version": "2.0.5", + "resolved": "https://registry.npmmirror.com/@antv/x6-geometry/-/x6-geometry-2.0.5.tgz", + "integrity": "sha512-MId6riEQkxphBpVeTcL4ZNXL4lScyvDEPLyIafvWMcWNTGK0jgkK7N20XSzqt8ltJb0mGUso5s56mrk8ysHu2A==" + }, + "@antv/x6-plugin-clipboard": { + "version": "2.1.6", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-clipboard/-/x6-plugin-clipboard-2.1.6.tgz", + "integrity": "sha512-roZPLnZx6PK8MBvee0QMo90fz/TXeF0WNe4EGin2NBq5M1I5XTWrYvA6N2XVIiWAAI67gjQeEE8TpkL7f8QdqA==", + "requires": {} + }, + "@antv/x6-plugin-dnd": { + "version": "2.1.1", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-dnd/-/x6-plugin-dnd-2.1.1.tgz", + "integrity": "sha512-v0szzik1RkadPDn4Qi5mOSaB2AeI78D40/YuCYbPVzplG+HydGsHwO3MLTgJPQ+R5n0eM0W5F850p1VfTOHR7g==", + "requires": {} + }, + "@antv/x6-plugin-history": { + "version": "2.2.4", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-history/-/x6-plugin-history-2.2.4.tgz", + "integrity": "sha512-9gHHvEW4Fla+1hxUV49zNgJyIMoV9CjVM52MrFgAJcvyRn1Kvxz4MfxiKlG+DEZUs+/zvfjl9pS6gJOd8laRkg==", + "requires": {} + }, + "@antv/x6-plugin-keyboard": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-keyboard/-/x6-plugin-keyboard-2.2.3.tgz", + "integrity": "sha512-pnCIC+mDyKKfkcDyLePfGxKVIqXBcldTgannITkHC1kc0IafRS1GMvzpvuDGrM5haRYd6Nwz8kjkJyHkJE4GPA==", + "requires": { + "mousetrap": "^1.6.5" + } + }, + "@antv/x6-plugin-selection": { + "version": "2.2.2", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-selection/-/x6-plugin-selection-2.2.2.tgz", + "integrity": "sha512-s2gtR9Onlhr7HOHqyqg0d+4sG76JCcQEbvrZZ64XmSChlvieIPlC3YtH4dg1KMNhYIuBmBmpSum6S0eVTEiPQw==", + "requires": {} + }, + "@antv/x6-plugin-snapline": { + "version": "2.1.7", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-snapline/-/x6-plugin-snapline-2.1.7.tgz", + "integrity": "sha512-AsysoCb9vES0U2USNhEpYuO/W8I0aYfkhlbee5Kt4NYiMfQfZKQyqW/YjDVaS2pm38C1NKu1LdPVk/BBr4CasA==", + "requires": {} + }, + "@antv/x6-plugin-stencil": { + "version": "2.1.5", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-stencil/-/x6-plugin-stencil-2.1.5.tgz", + "integrity": "sha512-q7wx7XRMFkUKPv3WsHkvZda6O1GW+6q6H/+c1lcrwlQoEKOFv1Djc4Hu2J4SGhV2z98P2JLfVJiT5m7YoOoCHw==", + "requires": { + "@antv/x6-plugin-dnd": "^2.x" + } + }, + "@antv/x6-plugin-transform": { + "version": "2.1.8", + "resolved": "https://registry.npmmirror.com/@antv/x6-plugin-transform/-/x6-plugin-transform-2.1.8.tgz", + "integrity": "sha512-GvJuiJ4BKp0H7+qx3R1I+Vzbw5gXp9+oByXo/WyVxE3urOC7LC5sqnaDfIjyYMN6ROLPYPZraLSeSyYBgMgcDw==", + "requires": {} + }, + "@antv/x6-vue-shape": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/@antv/x6-vue-shape/-/x6-vue-shape-2.1.2.tgz", + "integrity": "sha512-lfLNJ2ztK8NP2JBAWTD6m5Wol0u6tOqj2KdOhWZoT8EtEw9rMmAdxsr8uTi9MRJO9pDMM0nbsR3cidnMh7VeDQ==", + "requires": { + "vue-demi": "latest" + } + }, "@babel/helper-string-parser": { "version": "7.25.9", "resolved": "https://registry.npmmirror.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", @@ -4117,12 +4843,20 @@ } }, "acorn": { - "version": "8.12.0", - "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz", - "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "version": "8.14.1", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, - "optional": true, - "peer": true + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } }, "async-validator": { "version": "4.2.5", @@ -4162,6 +4896,12 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, + "binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -4176,7 +4916,7 @@ "version": "3.0.3", "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "optional": true, + "devOptional": true, "requires": { "fill-range": "^7.1.1" } @@ -4189,6 +4929,22 @@ "optional": true, "peer": true }, + "chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", @@ -4209,6 +4965,12 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, + "confbox": { + "version": "0.2.1", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.1.tgz", + "integrity": "sha512-hkT3yDPFbs95mNCy1+7qNKC6Pro+/ibzYxtM2iqEigpf0sVw+bg4Zh9/snjsBcf990vfIsg5+1U7VyiyBb3etg==", + "dev": true + }, "copy-anything": { "version": "2.0.6", "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz", @@ -4246,6 +5008,15 @@ "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", "dev": true }, + "debug": { + "version": "4.4.0", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, "decode-uri-component": { "version": "0.2.2", "resolved": "https://registry.npmmirror.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz", @@ -4300,10 +5071,26 @@ "domhandler": "^5.0.3" } }, + "echarts": { + "version": "5.6.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-5.6.0.tgz", + "integrity": "sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==", + "requires": { + "tslib": "2.3.0", + "zrender": "5.6.1" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } + }, "element-plus": { - "version": "2.9.5", - "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.5.tgz", - "integrity": "sha512-r+X79oogLbYq8p9L5f9fHSHhUFNM0AL72aikqiZVxSc2/08mK6m/PotiB9e/D90QmWTIHIaFnFmW65AcXmneig==", + "version": "2.9.6", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.6.tgz", + "integrity": "sha512-D9zU28Ce0s/9O/Vp3ewemikxzFVA6gdZyMwmWijHijo+t5/9H3sHRTIm1WlfeNpFW2Yq0y8nHXD0fU5YxU6qlQ==", "requires": { "@ctrl/tinycolor": "^3.4.1", "@element-plus/icons-vue": "^2.3.1", @@ -4410,11 +5197,23 @@ "resolved": "https://registry.npmmirror.com/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, + "escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true + }, "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==" }, + "exsolve": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.4.tgz", + "integrity": "sha512-xsZH6PXaER4XoV+NiT7JHp1bJodJVT+cxeSH1G0f0tlT0lJqYuHUP3bUx2HtfTDvOagMINYp8rsqusxud3RXhw==", + "dev": true + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmmirror.com/extend/-/extend-3.0.2.tgz", @@ -4425,7 +5224,7 @@ "version": "7.1.1", "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "optional": true, + "devOptional": true, "requires": { "to-regex-range": "^5.0.1" } @@ -4458,6 +5257,15 @@ "dev": true, "optional": true }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -4536,17 +5344,31 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, + "insert-css": { + "version": "2.0.0", + "resolved": "https://registry.npmmirror.com/insert-css/-/insert-css-2.0.0.tgz", + "integrity": "sha512-xGq5ISgcUP5cvGkS2MMFLtPDBtrtQPSFfC6gA6U8wHKqfjTIMZLZNxOItQnoSjdOzlXOLU/yD32RKC4SvjNbtA==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "optional": true + "devOptional": true }, "is-glob": { "version": "4.0.3", "resolved": "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "optional": true, + "devOptional": true, "requires": { "is-extglob": "^2.1.1" } @@ -4555,7 +5377,7 @@ "version": "7.0.0", "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "optional": true + "devOptional": true }, "is-what": { "version": "3.14.1", @@ -4569,9 +5391,9 @@ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==" }, "js-tokens": { - "version": "9.0.0", - "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz", - "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==", + "version": "9.0.1", + "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", "dev": true }, "json5": { @@ -4644,6 +5466,17 @@ "json5": "^1.0.1" } }, + "local-pkg": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-1.1.1.tgz", + "integrity": "sha512-WunYko2W1NcdfAFpuLUoucsgULmgDBRkdxHxWQ7mK0cQqwPiy8E1enjuRBrhLtZkB5iScJ1XIPdhVEFK8aOLSg==", + "dev": true, + "requires": { + "mlly": "^1.7.4", + "pkg-types": "^2.0.1", + "quansync": "^0.2.8" + } + }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", @@ -4718,6 +5551,48 @@ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true }, + "mlly": { + "version": "1.7.4", + "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.4.tgz", + "integrity": "sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==", + "dev": true, + "requires": { + "acorn": "^8.14.0", + "pathe": "^2.0.1", + "pkg-types": "^1.3.0", + "ufo": "^1.5.4" + }, + "dependencies": { + "confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true + }, + "pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "requires": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + } + } + }, + "mousetrap": { + "version": "1.6.5", + "resolved": "https://registry.npmmirror.com/mousetrap/-/mousetrap-1.6.5.tgz", + "integrity": "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, "nanoid": { "version": "3.3.8", "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.8.tgz", @@ -4751,6 +5626,12 @@ "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", "optional": true }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, "normalize-wheel-es": { "version": "1.2.0", "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", @@ -4783,6 +5664,12 @@ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, + "pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmmirror.com/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true + }, "picocolors": { "version": "1.1.1", "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", @@ -4792,7 +5679,7 @@ "version": "2.3.1", "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "optional": true + "devOptional": true }, "pinia": { "version": "2.3.1", @@ -4803,6 +5690,17 @@ "vue-demi": "^0.14.10" } }, + "pkg-types": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.1.0.tgz", + "integrity": "sha512-wmJwA+8ihJixSoHKxZJRBQG1oY8Yr9pGLzRmSsNms0iNWyHHAlZCa7mmKiFR10YPZuz/2k169JiS/inOjBCZ2A==", + "dev": true, + "requires": { + "confbox": "^0.2.1", + "exsolve": "^1.0.1", + "pathe": "^2.0.3" + } + }, "postcss": { "version": "8.5.3", "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz", @@ -5088,6 +5986,21 @@ "px2rem": "^0.5.0" } }, + "quansync": { + "version": "0.2.8", + "resolved": "https://registry.npmmirror.com/quansync/-/quansync-0.2.8.tgz", + "integrity": "sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, "regenerator-runtime": { "version": "0.14.1", "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", @@ -5147,6 +6060,12 @@ "dev": true, "optional": true }, + "scule": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "dev": true + }, "semver": { "version": "7.5.4", "resolved": "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz", @@ -5198,6 +6117,15 @@ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", "dev": true }, + "strip-literal": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-3.0.0.tgz", + "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "dev": true, + "requires": { + "js-tokens": "^9.0.1" + } + }, "terser": { "version": "5.31.1", "resolved": "https://registry.npmmirror.com/terser/-/terser-5.31.1.tgz", @@ -5222,11 +6150,36 @@ } } }, + "tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmmirror.com/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "requires": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "dependencies": { + "fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmmirror.com/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "requires": {} + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + } + } + }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "optional": true, + "devOptional": true, "requires": { "is-number": "^7.0.0" } @@ -5243,18 +6196,151 @@ "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==", "devOptional": true }, + "ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true + }, "undici-types": { "version": "5.26.5", "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz", "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, + "unimport": { + "version": "4.1.2", + "resolved": "https://registry.npmmirror.com/unimport/-/unimport-4.1.2.tgz", + "integrity": "sha512-oVUL7PSlyVV3QRhsdcyYEMaDX8HJyS/CnUonEJTYA3//bWO+o/4gG8F7auGWWWkrrxBQBYOO8DKe+C53ktpRXw==", + "dev": true, + "requires": { + "acorn": "^8.14.0", + "escape-string-regexp": "^5.0.0", + "estree-walker": "^3.0.3", + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "pathe": "^2.0.3", + "picomatch": "^4.0.2", + "pkg-types": "^1.3.1", + "scule": "^1.3.0", + "strip-literal": "^3.0.0", + "tinyglobby": "^0.2.11", + "unplugin": "^2.2.0", + "unplugin-utils": "^0.2.4" + }, + "dependencies": { + "confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true + }, + "estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "requires": { + "@types/estree": "^1.0.0" + } + }, + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + }, + "pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "requires": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + } + } + }, + "unplugin": { + "version": "2.2.0", + "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-2.2.0.tgz", + "integrity": "sha512-m1ekpSwuOT5hxkJeZGRxO7gXbXT3gF26NjQ7GdVHoLoF8/nopLcd/QfPigpCy7i51oFHiRJg/CyHhj4vs2+KGw==", + "dev": true, + "requires": { + "acorn": "^8.14.0", + "webpack-virtual-modules": "^0.6.2" + } + }, + "unplugin-auto-import": { + "version": "19.1.1", + "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-19.1.1.tgz", + "integrity": "sha512-sCGZZrSR1Bc8RfN8Q0RUDxXtC20rdAt7UB4lDyq8MNtKVHiXXh+5af6Nz4JRp9Q+7HjnbgQfQox0TkEymjdUAQ==", + "dev": true, + "requires": { + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "picomatch": "^4.0.2", + "unimport": "^4.1.2", + "unplugin": "^2.2.0", + "unplugin-utils": "^0.2.4" + }, + "dependencies": { + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + } + } + }, + "unplugin-utils": { + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/unplugin-utils/-/unplugin-utils-0.2.4.tgz", + "integrity": "sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==", + "dev": true, + "requires": { + "pathe": "^2.0.2", + "picomatch": "^4.0.2" + }, + "dependencies": { + "picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true + } + } + }, + "unplugin-vue-components": { + "version": "28.4.1", + "resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-28.4.1.tgz", + "integrity": "sha512-niGSc0vJD9ueAnsqcfAldmtpkppZ09B6p2G1dL7X5S8KPdgbk1P+txPwaaDCe7N+eZh2VG1aAypLXkuJs3OSUg==", + "dev": true, + "requires": { + "chokidar": "^3.6.0", + "debug": "^4.4.0", + "local-pkg": "^1.0.0", + "magic-string": "^0.30.17", + "mlly": "^1.7.4", + "tinyglobby": "^0.2.12", + "unplugin": "^2.2.0", + "unplugin-utils": "^0.2.4" + } + }, "urix": { "version": "0.1.0", "resolved": "https://registry.npmmirror.com/urix/-/urix-0.1.0.tgz", "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", "dev": true }, + "utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmmirror.com/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==" + }, "vite": { "version": "5.3.2", "resolved": "https://registry.npmmirror.com/vite/-/vite-5.3.2.tgz", @@ -5372,6 +6458,12 @@ "semver": "^7.5.4" } }, + "webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz", + "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==", + "dev": true + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", @@ -5383,6 +6475,21 @@ "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true + }, + "zrender": { + "version": "5.6.1", + "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.1.tgz", + "integrity": "sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==", + "requires": { + "tslib": "2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + } + } } } } diff --git a/package.json b/package.json index 080e8f6..8e3ff0d 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@kjgl77/datav-vue3": "^1.7.3", "axios": "^1.7.2", "echarts": "^5.6.0", - "element-plus": "^2.9.5", + "element-plus": "^2.9.6", "insert-css": "^2.0.0", "lib-flexible": "^0.3.2", "pinia": "^2.1.7", @@ -40,6 +40,8 @@ "postcss-scss": "^4.0.9", "px2rem-loader": "^0.1.9", "typescript": "^5.2.2", + "unplugin-auto-import": "^19.1.1", + "unplugin-vue-components": "^28.4.1", "vite": "^5.3.1", "vue-tsc": "^2.0.21" } diff --git a/src/api/user.ts b/src/api/user.ts new file mode 100644 index 0000000..086d417 --- /dev/null +++ b/src/api/user.ts @@ -0,0 +1,16 @@ +import request from '@/utils/request' + + +export const getCode = (time: any) => { + return request({ + url: '/sys/randomImage/' + time, + }) +} +// 注册 +export const sturegister = (data: any) => { + return request({ + url: '/sys/user/sturegister', + method: 'POST', + data, + }) +} \ No newline at end of file diff --git a/src/layout/loginPage.vue b/src/layout/loginPage.vue index 1d0d3ad..2262bca 100644 --- a/src/layout/loginPage.vue +++ b/src/layout/loginPage.vue @@ -6,43 +6,49 @@
)N6#}m2_LuC8IThx6X0K>~a2I<-- zZCM(U4evbyKvbJ;wvr9a4lhTpAj#}!)~~pXU(+t$K9&G_z*t4-rT=Zi|H}tHd=sfY zf?FQ6OE$x8o#ozJP)un!BBm{neQ$z%I}5-)X~ny;ihlq%?d`IMh4~>u#splI`k~BO(!Z79S$UuHX1M^h>cIj6$$PQ4nN^ zkT7?!SCwtH##q2T?R0%h|9->5Ev>IkZcsdUbxp_EChGfj`!@rm$lF8rljfOIRZ@hp z`XSL%ao?|@3*W9|^GbnC#Cu-F<@BXXm2%vYH36+R8XJsRP3TbZl7o=@d>Mjk+>Rtp zsA*BMjtdLWNFp_!&3`YD8ia^XEYUXuuJuh*|D0z!2@kIxwvC*UeUf%!_ek2Zdg^Kd z0(AB9vg{~Bm37=GvvTACF}7pAijix!h(o>a4uGm{`IU~b9~MWf3mP8F2@fMJ*}JP) z`}WFH-EThqX*-m=>g={7n-;y_^VzKxtQELpHy3^ubYti0e!m~MeMG_G05{0?%hzUK z63TRMeUUy8b!16y!1nta^QDKiAexq486WAxlq!aTYEk?Ja%CyT)Z(eQWD>V4-&n-P zl?avndZagiwAN@izXO`-hpheoE$y3cP|OI!g4L$N2gI&Q=_P`7QJVT+|*o&_<}38DbFEL+P~ zP*^0B1avB^5KQXgEC*CiPR53S(?RA?FUI@JPPL76gi>N|G~kzmzKnwnaC%a}eaNhg zyzPCrp#dKfjn9r&48FOpe$8-b;11~i+v$RNW50OqQv~+!Jdv=VKS(Tye}A#yjABSk zU~ZO2@^R#xmAT-)>Hg0$oj-2vL(uJqrZVC!)pV 0vWY4b{4i;G_%oqoV1ZQPR> z*MocGzn1U-#}NQP^GWz$+f?G81yWqV#2SuZZK`ho4u3EwFEpU6cmT9Zn*{>tF)e6g zPC6P@9Or_rVw|lSXczwD*-pY;puf;LE)X2?jqhmxDBqV4Sj0~j2y&cgD|!E>v0WOJ zX}GXR3g{mKzk&|kY`{+=*}k4!WeV4r^4}6+oK8qU(emzKaZtMV%K@u#{{Eh;GnQ@u zH hyKqUVcJk35j!_~qZ zT1v-Hb;3R*5&xrhRi XuFnU$-4f9@8bqoK-K=oTrv*)4*=ib1v$Jcy_JXufoOMTWiNJ25D@0q21S;|&c zQx1gO)x^k&qyAlg|A?FbKfETT(1mQgCx2wL=|c ?dMk?=&f7H%-_rrEP8ok% z@&N8WF2J2@Y?Q$w?RR2}VBwZ401lQFTqpL??6 xw8llZ;KlV>&(Dc;e0{7 os2{qPCC~RiFWPkT9W=e!-UP8}aYrL>_Ru-t?y>#^J<^0z71tF^0U-gN!BU zzK=a5Y?*4bM*w3@x9FRe6L&nY{*tVL1vYEHyrrV&jju1nlJo<-m}*O(wjM9xWFJFj zP!FSlwR=6s=X3mOX0PcBqh#cn^AS@|x(YpOj=y90RVLSqtg$vY?*g>(`lf2ua)>0F z;8AN# hAUDULwy=yp zq3`?4?&}lt?Al*;;N6oWDdwg<6J3fqC;99EqC-lz&LE0VGr#2ZVIGpLmF(5M=MQ4j zTMOX+X?aTG6I(U(3xYF4lM`i>O~ip!#*Yo7i;52zU=&+SivMl%BlS!iV=u$_EfZEF z;VXCvo-UnE%!Dl`v3yYD`H8B6EKkDt*yft8>I8h-yTrmPWnl++(~g!8+uyN@{Q)CS z%A3}Z&Q21g#8^Y`zZNnN1VG >_I5NHr&9&a ^ z(1HLNMHW_<$yeMX1)pJ$>j(qEGUM2>vPue7JB=l!g(&kh`13}jG$yls1sb6 xc9Dn~{+u@40J&8tHxW~PTn5iIMyUn%Bam( 2dpX_v{K%#tj5uPpcUgs~pbMj=`Bhds zihZZ+Jz!mxXPCKYdm-X5b*_balu7K65)zUSTCZaYen^1vB9hXBDTbEMo1D6RZQ;4t zv6n)x1IK4>zw3s?@A$=yQi*sOU8HJSntSTj-P@n26WaStjQhH^UsW&=Vg8m*<>bli zoJt)LuA$6^ewiLFO ~4MKfZLxsha2r3Y@9i#ZR*JY3r&gnN&&AN@6De*IiXUVHlg2Mf-DfgLwXDOoVN+ z6)G{FV?z7m7{(n&@+R}1# b^}0MLIQ}9enNrYxd#_wa z&OaQ-Ks3*cHkH8mEJRysrqLT@!8AhKRZ6n)G85iiJ?~Ct%$AeJH_4l(q?Wt{$9_*J zFNt#}v;D}!44x5|d#vR^2+*{R2qgC#F_7&m;s)e&{zS1CapLJqW4r$VAUW80K*ttg z^OSN&gSB>@4^bFlZ#z~ZscAFb2l<=?@;UNPxfdWB=puYefX^Xgtu`W)dbla#fYa34 zKY^@&hB(AcZ}hEVq6(mk#0|`eMf1La{TX%LU>FB?P`w0O%;IBTNr2wzWm&NC z^f7sq-xq^EoG4Rb3xBb?F~Ic%`A_g7?u}0ADs>~kP` m@fO? zkNxoPXsG3Dz*VMQe+Fhf7fR-bjiIVD&FND pA5Ymb|;;^~XW(S6B zPjq^HVdjIN?NH``T85vcJevF4Q3w1x&31Z!@#rdsF$}o1 VeI z@?Mv%>krZas&(2*0qY1^`}<>1t~zfLYd^3l!U1-Ln-9Y8G|24Q&vz7}EgsyrEp1%; z2#$uw<_{E_7aBLSq4W)ZEbLPBP{dM)s(!4r*F~#dF{FlD%;-;d4dgA?q^u+Xi6Gea zzZu4o2EhP5Lza0ITXTJfJL+iY_*b6p#AsB2IqwC6#wBy>1(&v}FDlm`ZS&n^MJ@Wv zduA&--)HV^%j-0Ipp^is=K#@>Tk$MBe8=!h`vdPUA}%BGo_SRx943ihstJ}-Ok2Qm zf6jc{P?!+k(m{5bT|QbUu3}t#%XyDIW;+$w!pSLjt>MLRX2(`$&sAd$xK<-!-b7;+ zE<5`&>;$=>Wi=xCSkji0&`q?BTI=e`wMpfenpsP_Fh$s1-QWX`&dF(N7XT;O#klO+ zJrL@*PaIt_^TMj%Ui%%I+*&Q~ABYSS6IECbID2H-T*6YXaTq+Vqyd?lYyZtjZl9|R z4hg2+!9Rj?2k* *%GV4AXJ z&biWn_G%MrPN=)VlX;46n>oe%9^SHr80o~^ohInL53( KGXdgor?YHLg>zgzPz7I;6H$a?@mM#EY1RW};Pc!N92`)*l;3EAgN3aQ zm$#^7I)TwW#?mc=d$wM2kiv3&qPb9=n$a$mtncg-v317tX{7GDLj4MRbZt$}bh^YR zZDsxK^b~vALHNzz3~lseI51i^_%+zKv9s?-?Zf*me#|&GcI%u;H&b*KvX!D(u2oXR zzfM$2jC1K>t~xQ9VAgxuK{N#$ZgXgX3BpvoTNI4A-9Y{@p GMy0- 9_K`waWRuIHanZD5PytlKs`@-pIr zlmZIE(MuJagP}%C@eTgBnMr(9x-hD6j&859cc49LtFm(qtRDjpLN%mOJ+G1sJ#iB` z;MdgbmlGfo;wx2=v*q$RT)%xVuVZ}x! o6?x6=K;jNrcJFzE>? zxE#W?AVIWWrfyNn0X*}!)#uc?M_7K4e_0V9CI$lspf}pY8o$PSEaH$H=($448lJ2x zD)OJvX}_lDWrnIxUlFC%JY8c*JbrJ4R||# qOlLLiPkZ+CK;&8Uyc+VXONwT; zJNSmO=~c(&eBkq&5B;)9n}(QL&|?-}3&3_@W!hOCri!;kh0aqs^BmN>yp=nvF+J?2 zhR?Ro33q)nde13Z4g{o!0;wT4hi82+OOGIeE+lq4_6wJ$&7SOLOT-XAr06sA_f0hB zte3Ku8_7DnWR-04>lxj3rg5qxO?FK)y64Ko <}m|5IZe(Q-?1 z(fm{2)6`Lv=xIw_VohXiOHJKmu#-9P*Enqary~Y^gZM4zzE-3O%lHb}cyVqo2>n@A zJxsK3$AePQM2`Fu-g=7lF>l5*@on a!h9{l)~~yt_vDx|q$0jX{igps?X0lE+OkfRI?^()5&qmA{FXMl zNu!x)FV5_=bI~b}h=Z2ds|cG$TOL3OA qwDvTIQkiw3 z-ZqUo33k#Kf`j2n&e0o0e6Hp-5nNNN?H$T_m?Wc{Om+M&8U4HCl~XOBCdSSr>So8I zBIzjMjB-=8%kMWyy8bUgLUZ%iV_5ci>cS?SYVmO(h_2W%<_0tdvc)HMEOZwYz2*BN zZefQmJM1775^mwaJitK0bRVWQxbF6` z8tzscv@VdkCwp?i>hMksH^&McyWN0iaf5ON5OxB35MA$awP}4s wiAPoU?^F8;X=sGiyMlVy&=3e=4dOt045hFw^JO*r*PtM+J2IEu{O1B5R|`>c zyg$SLvsp;6%T)kxC$&Wd6;ThBp^K T9_ViS zGVngqsq=VO6iIz%L~!-Tbkcf8g(O)#9e28$m?Hk3$ulleGoKG(tV0yj*N4B8ydjTN zSc~WY4OGswRoF--%RF=(*>5}K;G?{bQ^7pPt;`rO?xMAMkO_n#tc~2PsQ0M%>*~u^ zvq!(D1COB ;Bn%6~5=I)LX_aWT^SK51lq@4t2=yP;tq!13awxvJieVfKeIHxJum ze38)BH;?BCii#YWO~d0kBBh(LykVl(Co*_8g<|WLPc(6e<5bklI3tj&z3+J#+W-fw zRM$o=Y@ssVYLI`4j|kQbm$r%Iv*H;i-;W*38J{m*`yc1}1yH<*%-$tY9_X2V1Rr?G zmtFM4M2hJg-#r#>o|K Ks5L;9ta! z0(cp-Wu&05;14(oiaSu`0d$T9k=9WW#NnnG0j^NXM7{1x<&L;KEuD)XS*W%{1R2d( zVx1N+A#a-&LkTCBWQN)*Jjek=)L!AeUgBMOlp8!;QKdeJa otqmv^aG}$ zsir?$od+hvN+?$l`I0d|h?PomQlhm(>QqCAH1fcK4^Zl%{> z?;=>~K3jmkUoHFcFK6Od&6CK^u!UeYCx2j6 zlNtPb$;#PVZFDJekE+TY($*C>n^{U&NL6}kanTj@DhDjsngSLzR|GZ!-p?UFgHa}X zQkdBQzz%d?aBzh{TAh{~-3;hYO(de>_qx;Er6 tBK~zBc#Lonkgdhg2hRR(Q5g&@&Dkxg3fGrDt1EI9QaFxHIbA!$ zc5++{0P=lW =i|)qRG1SC*uLG+#99=HuJAn!eM^0YQVz{ZPsJU zbRjQOsKztg8MC|~ne&-r$nz>VmH(WJOJcTUnm2)$2K(lkKIl`#Eon1un%Xr-%RAV8 z0_o|1EbmaW;jrj1v>sHk*?{zezH%(15FKIrR;~_?@k_k!VvmNtdd3S9^^am*WwQca z%Ie8;Q8ixD$tU B)5PLbb+Q%YkpWY#(MTG{h*P4~dugWik6TE|^|(mDvPq z0b~6p!*jobE~*6-Zj@_4;_=7n(vDbnW#Y|@$pf||2c7xnqc(0GNR9dUCLIj40oc)W zPa@g}PH>?7nJc!OfrqJgYb7u+g%u?5a7Ao5sM+Q$+axwl1@llgOU?PKfGo5 6Fgs9?OgoV}rYknEur@s6-BBX#uZn z@ZEP7jO_#@(?5QPR==?wQua;wWkfH;K qwLTUeoN+ (%Lso|>vR6UQ!R0UGc~hv z0}|>}J@8TgOHC{4o#6-3JEX&yDg}QN9D_Ars`Zyc)u03KIrhQxR=LYRcbL!nI+h*o zla=WhIT^Qpbr2#PoBW_VrXW+3NNv{ZYd)ziFO(CkJB+C7*<2?!XhJ-*@`1aK`gBf9 z&dh3B;}|+(!krAyiD?e5=h?`(9Hgt4p9#}Vpw{2I?K$fPT+;JaG1s>ITk2~X8s3{2 z%F;|Xxx%cbfFe5C+6s_gjaRj0fa3M*%#@=kA&CO$*wH8bTPmsy0|}srDWyPKMF4qA zp~TrfOXR`whGL2aAk!VKAx;+Im GT9T=V-Edulzmb!J9{ea zKY> -^i@D={Uak$f k# WtfJ6_qZN+PJZ?GWRepMrmwN!niK5(S#oHS18A8FB#}2_YRbLhn422UdV|q) znTXCYXzROTx_156%7Yy%VIR2;_^ bkb^S9o8>mrHwn@ti?rBW6Iu4EFSY4n{(w$g1oP6wg*WPM|D5Xd z=`-=1wfs5Zr-v)~wUO$$J$TrU08o2Y&wM*q!}!*U=8CL3ihlEz^qkzEj#pmmtqAzZ zIj)qg5FzR#|D7YgOf=^1r^!UYU71%Ybo}xH&vPbQ#rA`NAK&avs{Q6u;^tHjvb zZd+ZR2~2UIFtT=@lKH7JKuJ_|*QYD9IXq(D?e2Y`>2fR}Z^R9rIMB_!n4YGI%q~8n z?)Gygggg@-fyAb(>;jpUsR_N)@SMa ^ldD=HxcdCgbM? z^xs83f2-Dh(*ivUE}oab=K3_x_)g1zU+xBrHa>JrugrZ##)qaYcz-8h HUcJLyFnof3e>1qHy`M3mac&D7;JLON?cP z*G!{BX|q|H?7hTgTRq;{)ZJIvi+ubPH&31aoR6Lk5+Ik5nwAo4Gbp@RN6+Ay`yu`( z9!%DvPhkT!PdL#Krokx}jHS@?zSFxIQNb3aIWh!*-lv$Fnp`m2|81Wx=X64X9RT05 zrcWex3nA3rb}A9Yv;d<>JdTA@Sly-%?$(*lQd1#RXAZe?igAo(FQsN#`p!}V^bHA9 zts} Q*08mp;U~QjM~k;r=gT7k=d|G2MAp zU0?J#=Rv%c)(_MfIV*!PPNlMBp6oH3V$18q$jyP6)aHc9vsbA{a`M(0>LbqIG7BS~ zbo (tgn_jC$}` zv@K1f0zBC?|Hke5 N zYYCX8%ez(XcpVQ{abzL;$YAN^P2`_+lP0gQSmQF@;gHj5D~RQMJ(y2 C*_gSAh%^sKnlvgsr(YZba81IZ` zAnMEWCU}HR4$E1HaPX~qBBdq;5jr+lS!n)^cDTXEm;V_MTdA8bpqfB|9KPEhe*HN) z==K@*@Aaj(qhF=g(cY5ufibbmQIK~aK`%RuHwbnN{#sS >aEsPW$#LluJv+R5N z^zQQ+p4HZ8OS(sU)NbdDWlYF#f%b?x4c5+={8jrsT?A_TYC3b{x@&^m>&wgqurQSqF111nex{v(3=Y-*UOD_ zf= GD~LTOIG}s2RRfae?=+nT4APwJmB;OMDc2D!uMb@h&RULD@()h= z@^r)E^qTRB3S|<6h&MW7r#^w9m?@`53MA|NnPVD$Y*XK>M@Rj^7c!0#V<41Ox-H0{ z>5dAI@z0!Kd_{gTn|EF)sZ=g?D2e_?OM-egNf5SpD9XL|0DM8~k%d)g6qT(C!evXW zb$7xR2s?COu5pH}6!GsMJsR{hjviB&07|;5npo I&=lNl^Nj=tmhJkg>FZe91^mLc1)9-Q}?fV|TZ^vgw%#v3#R-^?l=f=G8uQZ!i zlaY-ehL7i^hE_AV *f69Wj$SnMMu&*UOCPWWdmKy$0QZ~EjC(WEusTZX--5VN` F&jT+z(?=kwvqhKGwLXe z!dj!Q;VF0EYr;P@$o^h_p+71i{{7S$IMa{5*?1Hf0B8E)r)~40tKZeg17{kX>0gc= z{gWpe#OYtYF$Fi`!axNm9-w$Uik|+N+@7FD1T`Y45kbTD(RWjijrafKoHj_99)2|V z=W;HC);MU5KRO!s{~U4!xd+HSK<)u@50HB})8zawW5l2u2h}*J#{b;ksDXqDBupS- z0tpjHm_Wkh=Jt;>rvDd*m%!*27~KM+TMG~6fv( {&YC=;ONCKuRr0nZxi8@<-(oMG<(1Q|GW1W!5`+=*b4;ah~U)&;5>lx0PYJA3EV&=05t=sAwf<61bskG0CED5 z6M&omM1p@SYccdVx3bjEQ x-sW+_vDc$zKcLy2a*Z_$ #<63DJLmTL z8hA4&@hFE~{amM*s{3MYk2G9Sl8I?}lUP&c;vtR?@h4?Ls4=S6I#j1x1w{nHc^67z zME*USgd`VTyOOCsF+BM+Bq=0`BG?wG^xxs*-s9@tt!jj3j*arLs)x=|{AMBp`5_h? z$Dur!vKb2GWjvpL+(aV>^w5 ?U7v-yqFkq~Ggt>`<8+73yp z9pqX(WhK(=aaE-9YR%+!w&&vaz4dO+{9 Qw19jKh*?<*;1Ad?}M5aSYG4K$D9#_S>*Zd@0e~5nP?_ za;3Ja_i;mv0vW$ix2hPKCu)f7dAayk1`5n{xm7Be9+!k_2H3h@pccZrNyNS)V3F4< z>FMP%V?PT6d;S1?{E4!MNvYNYd=}9jMmSl7#xg(VoEV;3>q-==dqW+}Hl#yvt~2~p zB9Kit+J MeJI6$j(OO9zL(VZN?bGwf!i4}I}T-^PfRFVMbyw; z$V=7BBnFY_m>sJvJI%8eCHxEbw_e6YUOiE;FT9~19+6eG+Xbuu%79_Hd8z^zMznVX z7Xv`v8@X^}c?qP>T4qGe;X|Fke!QBMoZtK0_2jJ!6oC3ILz$t>hyv0fx6uy)1w9^n z(;VJFAG8cSSKIcLcDXh*T@@dtetKu%#U;5P&L?i|15!}VZnBJQ$yrI_8$66{-j4Ae z%?=_Q$Ts=YsfFMS41z7CDCrxque-d#12H|9)w&PwSISxrz%uto@4@BsKKRdp{D}9K zP8LS=>1Y|rS;A6Fs?u*Q?XC-)Y^k{|ow1vT`*h(7rb#!AcQ#hOu(7V*exTvU_4e`B zHvoH;Wl|) k}FnNFb`A)ksxvUH^)sZ!+ zheZn+xzk&eCxtD{%;;ctVhn@z%0y1H+t23~?4j+!26~*zuDPzQjDT8tREV^^*WhVe z03DoA( rar?y2=VIMH?~1 z+{NlmczFK~*KZ(e4#!pWWB9)C*x6m!Ux)Ih6(s0fUvp49^8*)Xsu#XzoO@gJIQrKD zAc}@8JL3+g?hmowDr}ZlmJlCo&Z +DQ?gCmHqMvn&is&SJ zLasQIxsOm_?oD+)LVrr8<4`Bdl2RhY-CjcXmiZazxYl)w2Ld5`mkXuk`$#mK7V#P0 zWOWMdFT8eIMgSm;^ADmET*)**5HoIspNh6HNCcwcdSqu^kL*>uyKFi>I99X pZuWIL0F@(7!q zP?;beckO;unyCK;SAYdT<4>fqE@bpPuW?GDZM&UP^_A9zB*hkR6-6AMDc d-nZWBilIbzNGwVqlre~jW4CLGolEjCgeE5^=|jAHIHOX-AiX( z3w4xo6 Ai&gsvG>%-^e%+rM5SB~{)CPLn^;`HXHhdKScy8C^P0GiYO>0z6EKN4s zsBI_Nt!O>LB_g3;A}KWv)y7U5b$Vv1H@4c9@qSw>q|DsUlCk+v?|xTy w#DH!q78n?hzj_h?&6sG!zD8}ojA2{uCG&T+P&sNc z%SCT~3sL%`-K+3#4}AvkzX8AN!~{#6vy_MPxBp#dZ5iipr^mcY&-vHz+HbhXmZyYS z+Es@GQ#iXVSl$=rewO{6yZ~oAZU@>#2<=VPMrbe$zPJjLt0qrmq(#Na$d0T|!RoJt z5x!3ts|xM7xZv6nYNtTUxX4geYnwi6oH=TYisNJTw3%v%>>aX0<5>|@&~HLKxMP{G zKkD`$rdyRY-}8)zpeR(BUOn$*0-&W!6-Tr6XKC5I&?EpO#iE9(VSXva(gaDn!RC3t z6FfAjJ#AN3<2Q?~29r~%`h~ES;t&Hx4frlons73wd+jK|C%Sq`;%#XtSPAv^7BOI+ z&5x&PvRat5UNYNksSK?R_JxPByJqSqy8E>yVdT4dphBAU-faES=re~evyj#}fHIIj zGYgveWoyo|pOTH4OHWhxI%dx;N##*zc4Og`Ya8xD8D0rv{?#9LHDQ|E`HTqIne9yk zxharCFv%oy#uUftSTf%oc6ODLzdVow?@mdh24ET{3sgrPd5)|HBq`DfXyHl&P*J2T z(~wp%W4EI^!|`^$kAj)$*Z5|p9~yg% >PzO4J${%gdrf90xZ4=}DN;2+} zS>mI;O%0V)%RrWSIkb0 ``d3(|Eb6m10p& zg*Q96F(SF0q}m-9jhB$Ixwf498)nAj5wHu}aUU%u(Gq25Hons;zh-{bfqI(i?zCV0 z5%sV111fAACwr{aS2#YS^r5y7M~bkGb5pPpYi|ck>M5%N(sfb}s^4(-?c9XYo&TwQ z3f6TSc7NSb2e#0RzJ!$SG70~3%Xn@;E^zpwb&lxo6Y`J+R xzO_T zQRPFC#@2)kdrRd|FGImLHFpjhz@Xp @|e9 zvkH4HBM=9%aZs}Q$U%I~%0Oj!kJ!upWTO4_db{{ RsM`xq4om40 zX3PyJ>{rGub*}~i>hk_@Pj_lcT7Kysl@1nGpA(p8%f0+1x4nCuiepuD6OlQcF(@rV z#2@_oRQ#5LB3wE8a&9LYOP*PVRo@QIhc(Tdc)%*WmoQ+_c|@@jt DS@X0`f`L+Se+b%Ts%Kg4xxTU25p<# z{|WZj1Jeel9b?ywi!s)*Q54zyKo!(O#^k8S(`$+k4+(&A_Ix+Kcw3lV5Xb)T#2%Iq ze@U~^lXl9T^?@2;wjl %FR_DEh5(7kgy3DGDY-T4;OI2UR zpyH2n=BX2>1d@bg7c=oJOS@$_k%&yiLQO{!;IZ~FN2;Ify;kMb+K19BO+1IjKHHR5 zrXT9-=jY8HQ(d1~0;6QjB$~)vrx9gX#ehI%$1a5WLsKxH%pA!a(MG^7-Sw7T9OXmm z&h}Xv2U21Q{Ez!DQuod<&DK-KHODU%8>^b3tsj=Sht&&&>*vKceNVWJvPro&&MT7- z_&3v*K|NQH#I_bj#ZqLhe9KujJhq@q$>zDiFvB+?1M27Y+n)^?_taidjr&tx{{`pk zH)<1~Z7@=->h1Ua`NjAeD;F+(jw|SZB 3aif=*aGlcUpwY>n@(BbbJ}7mp2VvST^&a z@gg$tC^SVAc$t%;?|J|Jse+=rJW-1!TkolD9u@{soBE!EsbV77b SG;@UojTp9H zPSGyuy3r`~+r$3)!b^m<8m{Gtii<_eT$sp-k+hYI?+nqe4y2UR(t`Bl;8-ZC+L&EG zr-SMn_RQWi Jpt$5j;ydOf{> zI)1<}UNG!SY}G1lR;s0A_6AG*z0F(3F5TZTYY#%co6iHh!fCmPsufp^UpbwtrPLcf zL(Fo(ZM8`l`?}#x)|~v=a`}8qZVA~M0tEB5blNx_O5iiK)F@{m9d!}U8T+)nD3V!j z&?-@R<7dv*932+FZAi`$6tUtsr{c69Iz3rglWT8D-xv+-l3hkF_I%hmq(az1AN2G( pRBgt6%f&AHm-$!8(n^QN8}TdL&-Q+E-r3ei;nACFKG^xye*sP)%JTpK literal 0 HcmV?d00001 diff --git a/src/main.ts b/src/main.ts index e979875..21fcf3a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,7 +7,14 @@ import 'element-plus/dist/index.css'; // 引入 Element Plus 的样式文件 import '@/utils/rem.js' import DataVVue3 from '@kjgl77/datav-vue3' import pinia from '@/store/index' +//引入依赖和语言 +import 'highlight.js/styles/stackoverflow-light.css' +// import hljs from "highlight.js/lib/core"; +// import hljsVuePlugin from "@highlightjs/vue-plugin"; +// import java from "highlight.js/lib/languages/java"; const app = createApp(App) +// hljs.registerLanguage("java", java); +// app.use(hljsVuePlugin); app.use(ElementPlus) app.use(pinia) app.use(DataVVue3) diff --git a/src/permissions.ts b/src/permissions.ts index 3bc2aa0..fa9a430 100644 --- a/src/permissions.ts +++ b/src/permissions.ts @@ -14,10 +14,19 @@ router.beforeEach((to: any, from: any, next: any) => { } else { const token = getToken(); if (token) { - next(); + console.log(store.userInfo); + + if (store.userInfo) { + next(); + } else { + store.getUserInfo().then(() => { + next(); + }); + } + // next(); } else { next("/login"); } } }); -export default router; \ No newline at end of file +export default router; diff --git a/src/router/index.ts b/src/router/index.ts index 8d73740..73e7f74 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -19,7 +19,12 @@ const routerList: any = [ path: "program", name: "Program", component: () => import("@/views/program/index.vue"), - } + }, + { + path: "compiler", + name: "Compiler", + component: () => import("@/views/compiler/index.vue"), + }, ], }, { diff --git a/src/store/modules/setting.ts b/src/store/modules/setting.ts index f86ce30..74494ec 100644 --- a/src/store/modules/setting.ts +++ b/src/store/modules/setting.ts @@ -16,6 +16,11 @@ const settingStore = defineStore("settingStore", { sdsz: 0, // 湿度数值 falg: false, timer: null, + experimentPreservation: false, // 是否设计好实验 + saveRoute: false, // 是否保存路由 + stepIds: null, + wenduCode: null, + shiduCode:null }; }, actions: { @@ -27,7 +32,7 @@ const settingStore = defineStore("settingStore", { this.qw = value; }, - setValue(value: number, name: string) { + setValue(value: number | boolean, name: string) { this[name] = value; }, openHeating() { @@ -46,7 +51,7 @@ const settingStore = defineStore("settingStore", { } }, calculateTemperature() { - this.qw <= 0 ? this.qw=1 : this.qw; + this.qw <= 0 ? (this.qw = 1) : this.qw; const a = (100000 * this.zl * this.srmj) / this.jrgl; let time = 0; let currentTemp = this.qw; @@ -61,6 +66,40 @@ const settingStore = defineStore("settingStore", { clearInterval(interval); } + time += 1; // 每秒增加 1s + }, 1000); + }, + simulateHeatingAndHumidifying() { + // 计算时间常数 + const a = (100000 * this.zl * this.srmj) / this.jrgl; + const b = (10000 * this.jsmj) / this.jsgl; + + let time = 0; + let currentTemp = this.qw; + let currentHumidity = this.cssd; + + const interval = setInterval(() => { + // 计算温度 + currentTemp = (1 - Math.exp(-time / a)) * 100 + this.qw; + if (currentTemp > 100) currentTemp = 100; + + // 计算湿度 + currentHumidity = (1 - Math.exp(-time / b)) * 100 + this.cssd; + if (currentHumidity > 100) currentHumidity = 100; + + console.log( + `时间: ${time}s, 温度: ${currentTemp.toFixed( + 2 + )}°C, 湿度: ${currentHumidity}%RH` + ); + this.qw = currentTemp >= 100 ? 100 : currentTemp; + this.cssd = currentHumidity >= 100 ? 100 : Number(currentHumidity.toFixed(2)); + // 停止加热 & 加湿 + if (currentTemp >= 100 && currentHumidity >= 100) { + console.log("温度和湿度均达到上限,停止模拟!"); + clearInterval(interval); + } + time += 1; // 每秒增加 1s }, 1000); }, diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts index a2c0c45..6b37de5 100644 --- a/src/store/modules/user.ts +++ b/src/store/modules/user.ts @@ -1,30 +1,37 @@ import { defineStore } from "pinia"; -import { getToken,setToken } from "@/utils/auth"; -import { login } from "@/api"; +import { getToken, setToken } from "@/utils/auth"; +import { login, getUserInfo } from "@/api"; import { ElMessage } from "element-plus"; const userStore = defineStore("userStore", { state: () => ({ token: getToken(), - userInfo: {}, + userInfo: null, }), actions: { async logIn(form: any) { console.log(form); const res: any = await login(form); // if(res.code === 500) return ElMessage.error(res.msg) - if(res.code !== 200) { - ElMessage.error(res.msg) - return false + if (res.code !== 200) { + ElMessage.error(res.msg); + return false; } this.token = res.result.token; this.userInfo = res.result.userInfo; setToken(this.token); console.log(res); - return true + return true; }, clearStatus() { this.token = ""; - this.userInfo = {}; + this.userInfo = null; + }, + async getUserInfo() { + const res:any = await getUserInfo(); + this.userInfo = res.result.userInfo; + console.log(res); + + // this.userInfo = res.result; }, }, }); diff --git a/src/utils/index.ts b/src/utils/index.ts new file mode 100644 index 0000000..8c8eebe --- /dev/null +++ b/src/utils/index.ts @@ -0,0 +1,12 @@ +// 格式化时间 年月日时分秒 +export function formatDate(date: any) { + const year = date.getFullYear(); + const month = String(date.getMonth() + 1).padStart(2, "0"); + const day = String(date.getDate()).padStart(2, "0"); + const hours = String(date.getHours()).padStart(2, "0"); + const minutes = String(date.getMinutes()).padStart(2, "0"); + const seconds = String(date.getSeconds()).padStart(2, "0"); + console.log(`${year}-${month}-${day} ${hours}:${minutes}:${seconds}`); + + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; +} \ No newline at end of file diff --git a/src/utils/setStep.ts b/src/utils/setStep.ts new file mode 100644 index 0000000..14b1391 --- /dev/null +++ b/src/utils/setStep.ts @@ -0,0 +1,16 @@ +import { setStep, getStepId } from "../api/index"; +import settingStore from "../store/modules/setting"; +import pinia from "@/store"; +const useStore = settingStore(pinia); +export const setStepEvent = async (step: number, controlsSt: string) => { + let id: any = null; + if (!useStore.stepIds) { + const data: any = await getStepId(); + useStore.stepIds = data.result.map((item: any) => item.id); + id = useStore.stepIds[step - 1]; + // return id; + await setStep({ id, controlsSt }); + } else { + await setStep({ id: useStore.stepIds[step - 1], controlsSt }); + } +}; diff --git a/src/views/compiler/index.vue b/src/views/compiler/index.vue new file mode 100644 index 0000000..d88adbf --- /dev/null +++ b/src/views/compiler/index.vue @@ -0,0 +1,77 @@ + + ++ + + + + diff --git a/src/views/designRoute/components/wenBenYu.vue b/src/views/designRoute/components/wenBenYu.vue index 59dde09..80d423b 100644 --- a/src/views/designRoute/components/wenBenYu.vue +++ b/src/views/designRoute/components/wenBenYu.vue @@ -6,12 +6,31 @@+ +++ + oisafkahsdkjfhasdf sdfhkjsahfdlkjas \n /n sldhfkajshfd salkdhflkasf asfasdf ++++保存 +WtT- +