feat 配置echarts代码

This commit is contained in:
Ironsp
2026-09-05 10:28:39 +08:00
parent 74f7b638f4
commit d38897018f
9 changed files with 634 additions and 5 deletions

View File

@@ -38,7 +38,9 @@
"@vueuse/core": "^13.5.0",
"@wot-ui/ui": "^2.3.2",
"axios": "^1.19.0",
"echarts": "^6.1.0",
"pinia": "^4.0.3",
"uni-echarts": "^2.5.2",
"vue": "3.4.21",
"vue-i18n": "^9.14.5",
"vue-router": "4.5.1"

302
pnpm-lock.yaml generated
View File

@@ -74,9 +74,15 @@ importers:
axios:
specifier: ^1.19.0
version: 1.19.0
echarts:
specifier: ^6.1.0
version: 6.1.0
pinia:
specifier: ^4.0.3
version: 4.0.3(@vue/devtools-api@6.6.4)(typescript@5.8.3)(vue@3.4.21(typescript@5.8.3))
uni-echarts:
specifier: ^2.5.2
version: 2.5.2(echarts@6.1.0)(vue@3.4.21(typescript@5.8.3))
vue:
specifier: 3.4.21
version: 3.4.21(typescript@5.8.3)
@@ -1012,15 +1018,24 @@ packages:
peerDependencies:
vite: 5.2.8
'@emnapi/core@1.10.0':
resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==}
'@emnapi/core@1.4.5':
resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==}
'@emnapi/runtime@1.10.0':
resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==}
'@emnapi/runtime@1.4.5':
resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==}
'@emnapi/wasi-threads@1.0.4':
resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==}
'@emnapi/wasi-threads@1.2.1':
resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
'@es-joy/jsdoccomment@0.50.2':
resolution: {integrity: sha512-YAdE/IJSpwbOTiaURNCKECdAwqrJuFiZhylmesBcIRawtYKnBR2wxPhoIewMg+Yu+QuYvHfJNReWpoxGBKOChA==}
engines: {node: '>=18'}
@@ -1741,6 +1756,13 @@ packages:
'@napi-rs/wasm-runtime@0.2.12':
resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==}
'@napi-rs/wasm-runtime@1.2.3':
resolution: {integrity: sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==}
engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0}
peerDependencies:
'@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4
'@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4
'@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'}
@@ -1753,6 +1775,128 @@ packages:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
engines: {node: '>= 8'}
'@oxc-parser/binding-android-arm-eabi@0.132.0':
resolution: {integrity: sha512-KrLaPWa5c9Y7LkW+rKkaUE3y7DBDrQtaf7rlsSDfv6KAHUjgzAIRA761Lrrp6//Yd/Rlie/yEOt9YENCoJnOcw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [android]
'@oxc-parser/binding-android-arm64@0.132.0':
resolution: {integrity: sha512-SThDrSeamB/kG2+NxcJ5/wSLcV6dUqDknrPLqFYQ0ST/55mtBP4M7Q/f3QbubH6aAd11wpzZn/nwbVRSdobOpg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
'@oxc-parser/binding-darwin-arm64@0.132.0':
resolution: {integrity: sha512-Lc0f/TYoKBghE5/2Gsv7bLXk+TJZunx2Tf61X8hG4ARXdc8UYI26dCGccFSd1AyFbK3jfaNXtMnupggDbjPXdQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
'@oxc-parser/binding-darwin-x64@0.132.0':
resolution: {integrity: sha512-RG2eJIpf7C21z9HSSXFw1bTArdpKe7Y4fwcJTwRq1yCSe1vSavaN9GA1sm9KqzemTLAGVktQ+7qBTGp0vQeUZg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
'@oxc-parser/binding-freebsd-x64@0.132.0':
resolution: {integrity: sha512-wQIPntPLtJ8NcBpvKPbEv3NqzV6k8eP8tP/jE9Rg8HTg/j7urZGFSsTCPCW5k77Qfw2DM4vRvc9p3I4yq/Shvw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
'@oxc-parser/binding-linux-arm-gnueabihf@0.132.0':
resolution: {integrity: sha512-PixKEpeSe3yxQWqNyOCBALRYc72+Tj7ILDofUl3iXo25cVOzLA6jHUhmOINRtWIPh7dbUie3QNeabwaQpZTw6w==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
'@oxc-parser/binding-linux-arm-musleabihf@0.132.0':
resolution: {integrity: sha512-sCR+DzGHlyHKnbA2z9zWjTUhIo8Sy0enJl4RDsBwPmkxYynPatpwOAWe8W5127SlW0boqUWHGtr1NWn5UwIhXQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
'@oxc-parser/binding-linux-arm64-gnu@0.132.0':
resolution: {integrity: sha512-sQBix5P2cW+IpzTcCwYxnh9yALrKSIkKJThspBvMGcygSMnbzkSvhN7SfuX1hvBk8y1XEChsdkU3ET0V5DmzUw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
'@oxc-parser/binding-linux-arm64-musl@0.132.0':
resolution: {integrity: sha512-WozHg3Kc//8Sk756HXXgMbEAvqtG+Lzb9JOojwQzIGDtN78Az2dLttkb71akWYUF/8IgYfDSlfKh4Uot8is5Vw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
'@oxc-parser/binding-linux-ppc64-gnu@0.132.0':
resolution: {integrity: sha512-CmX/ulNBOEwWTyVRmcpYKAcAizW6+OjtLJgo7fXoL9OqQvjF4VER8tPomv44vwzfSCy1BHbsB0ZlZYzYJNj4cA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
'@oxc-parser/binding-linux-riscv64-gnu@0.132.0':
resolution: {integrity: sha512-j9oQS+hM90SdhviNGWbPgT4+Rlq+ac++q/zjgwPD1mVHgxHzATvoRGtDx0sXGmFOQ9J9YkwAhYGb5MAHL6TAsA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
'@oxc-parser/binding-linux-riscv64-musl@0.132.0':
resolution: {integrity: sha512-bLz+Xi+Agnfmd7kWPEsSVwCn2k4EyIalZkNBcQ0OGIv9rqn8VgCPLNd03tM9mKX/5TdlvDXalz0q71BIrOPNqg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [riscv64]
os: [linux]
'@oxc-parser/binding-linux-s390x-gnu@0.132.0':
resolution: {integrity: sha512-U6t2qbJU0ypTfyj9QV3W1Y6mITDTL8ai/OR6NUn85vyHthOvobKWgXzU4tu0EskSzlpuVFz1g0jFGulDIUKHxQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
'@oxc-parser/binding-linux-x64-gnu@0.132.0':
resolution: {integrity: sha512-WcEaSNHFk8yz5YFlQQAlhq6jOFmZBB/RKE7uzhyCIf+pF1Lmv9gUH4221mle2Gd9iHyWT3ySNph8yZgb1xYdWg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
'@oxc-parser/binding-linux-x64-musl@0.132.0':
resolution: {integrity: sha512-iQrV4iJzQgRwK3BWRmQl1C3C6g3wYpXN2WLdQdyR+efoUnncdShZAVp9OgcojtlD3MDRbuOMGG3SjxF4fL4nlQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
'@oxc-parser/binding-openharmony-arm64@0.132.0':
resolution: {integrity: sha512-FWzmUGrZ6GUby4U7WIwcCtab6tdmlTO3xTRRKyb5kjIJVEiaUAT8animUG/nK8ZCA8gkRkPOTId4rl6uTqUmJQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
'@oxc-parser/binding-wasm32-wasi@0.132.0':
resolution: {integrity: sha512-TlbMppxJI5CjWDes0QaP6G3aneVg1yikBu5QYI+DUShF9WDL66ccgKFNNGmi/Wybtszw6hxwAvv76T4DaPKnHw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [wasm32]
'@oxc-parser/binding-win32-arm64-msvc@0.132.0':
resolution: {integrity: sha512-RH/NbFjGKqdUAUi7Oh3LQPxUk2hsWFEEQ38HSnbRQT8QjBZFKqL1fMbmsB3N4jy/KPh9iX94+9dmkEMBBbambw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
'@oxc-parser/binding-win32-ia32-msvc@0.132.0':
resolution: {integrity: sha512-JUr4jQY9jxoIB/YTLXr6XofSi5xikj6p5/Ns1h0VOBDT0j1jKU+kMsv2xxv51RwnETcXpA1Yw/9oUAfcqfaqEA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ia32]
os: [win32]
'@oxc-parser/binding-win32-x64-msvc@0.132.0':
resolution: {integrity: sha512-2dapgHpA5X8DSXF4AU36hJWYf6zP0tKjMXFRAZFBD62pkevW/uhFDXoFH9Y/3Fd2EtDrw5ByNnR1wVE9X9y0SQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
'@oxc-project/types@0.132.0':
resolution: {integrity: sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==}
'@parcel/watcher-android-arm64@2.6.0':
resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==}
engines: {node: '>= 10.0.0'}
@@ -2104,6 +2248,9 @@ packages:
'@tybys/wasm-util@0.10.0':
resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==}
'@tybys/wasm-util@0.10.3':
resolution: {integrity: sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==}
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -3436,6 +3583,9 @@ packages:
duplexer@0.1.2:
resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==}
echarts@6.1.0:
resolution: {integrity: sha512-q0yaFPggC9FUdsWH4blavRWFmxdrIodbkoKNAjJudAI6CA9gNPxHtV2RcZNEepZVlk4yvBYkOkbk6HIVpIyHZA==}
ee-first@1.1.1:
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
@@ -4943,6 +5093,10 @@ packages:
resolution: {integrity: sha512-Sv0OvhPiMutICiwORAUefv02DCPb62IelBmo8ZsSrRHyI3FStqIWZvjqDkvtjU+lcujo7UNir+dCwKSqlEQ/5w==}
engines: {node: '>=10', yarn: ^1.22.4}
oxc-parser@0.132.0:
resolution: {integrity: sha512-+0LAPHaqtfQlvWdpaAa09SmOaZZgP8C552xosEkGJ4+ruEwP1Vgx+sqBgcBCNfR6KDCmagGOZTde8wmAvcI/Hg==}
engines: {node: ^20.19.0 || >=22.12.0}
p-limit@2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
@@ -5746,6 +5900,9 @@ packages:
peerDependencies:
typescript: '>=4.0.0'
tslib@2.3.0:
resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
tslib@2.8.1:
resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==}
@@ -5805,6 +5962,12 @@ packages:
undici-types@7.8.0:
resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==}
uni-echarts@2.5.2:
resolution: {integrity: sha512-llHpuJURhDBQlGHB4CstZI4X9PJrtw6U6lrp1FRdaSYf84b57ZdQ2D8a8xuMrbK+uo0EbzBaye50DcCuN8SOfQ==}
peerDependencies:
echarts: '>=5.3.0'
vue: '>=3.3.0'
unicode-canonical-property-names-ecmascript@2.0.1:
resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==}
engines: {node: '>=4'}
@@ -6275,6 +6438,9 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
zrender@6.1.0:
resolution: {integrity: sha512-oEGMDB6pOP2S6OwRR4PdVv610zrjnA3Bh+JnSG12fYJlBKjtNAoEb5fSUoCOOINlH96I2fU38/A2UpRKs67xYQ==}
zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
@@ -7850,12 +8016,23 @@ snapshots:
- ts-node
- vue
'@emnapi/core@1.10.0':
dependencies:
'@emnapi/wasi-threads': 1.2.1
tslib: 2.8.1
optional: true
'@emnapi/core@1.4.5':
dependencies:
'@emnapi/wasi-threads': 1.0.4
tslib: 2.8.1
optional: true
'@emnapi/runtime@1.10.0':
dependencies:
tslib: 2.8.1
optional: true
'@emnapi/runtime@1.4.5':
dependencies:
tslib: 2.8.1
@@ -7866,6 +8043,11 @@ snapshots:
tslib: 2.8.1
optional: true
'@emnapi/wasi-threads@1.2.1':
dependencies:
tslib: 2.8.1
optional: true
'@es-joy/jsdoccomment@0.50.2':
dependencies:
'@types/estree': 1.0.8
@@ -8692,6 +8874,13 @@ snapshots:
'@tybys/wasm-util': 0.10.0
optional: true
'@napi-rs/wasm-runtime@1.2.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
dependencies:
'@emnapi/core': 1.10.0
'@emnapi/runtime': 1.10.0
'@tybys/wasm-util': 0.10.3
optional: true
'@nodelib/fs.scandir@2.1.5':
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -8704,6 +8893,72 @@ snapshots:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.18.0
'@oxc-parser/binding-android-arm-eabi@0.132.0':
optional: true
'@oxc-parser/binding-android-arm64@0.132.0':
optional: true
'@oxc-parser/binding-darwin-arm64@0.132.0':
optional: true
'@oxc-parser/binding-darwin-x64@0.132.0':
optional: true
'@oxc-parser/binding-freebsd-x64@0.132.0':
optional: true
'@oxc-parser/binding-linux-arm-gnueabihf@0.132.0':
optional: true
'@oxc-parser/binding-linux-arm-musleabihf@0.132.0':
optional: true
'@oxc-parser/binding-linux-arm64-gnu@0.132.0':
optional: true
'@oxc-parser/binding-linux-arm64-musl@0.132.0':
optional: true
'@oxc-parser/binding-linux-ppc64-gnu@0.132.0':
optional: true
'@oxc-parser/binding-linux-riscv64-gnu@0.132.0':
optional: true
'@oxc-parser/binding-linux-riscv64-musl@0.132.0':
optional: true
'@oxc-parser/binding-linux-s390x-gnu@0.132.0':
optional: true
'@oxc-parser/binding-linux-x64-gnu@0.132.0':
optional: true
'@oxc-parser/binding-linux-x64-musl@0.132.0':
optional: true
'@oxc-parser/binding-openharmony-arm64@0.132.0':
optional: true
'@oxc-parser/binding-wasm32-wasi@0.132.0':
dependencies:
'@emnapi/core': 1.10.0
'@emnapi/runtime': 1.10.0
'@napi-rs/wasm-runtime': 1.2.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
optional: true
'@oxc-parser/binding-win32-arm64-msvc@0.132.0':
optional: true
'@oxc-parser/binding-win32-ia32-msvc@0.132.0':
optional: true
'@oxc-parser/binding-win32-x64-msvc@0.132.0':
optional: true
'@oxc-project/types@0.132.0': {}
'@parcel/watcher-android-arm64@2.6.0':
optional: true
@@ -8949,6 +9204,11 @@ snapshots:
tslib: 2.8.1
optional: true
'@tybys/wasm-util@0.10.3':
dependencies:
tslib: 2.8.1
optional: true
'@types/babel__core@7.20.5':
dependencies:
'@babel/parser': 7.28.3
@@ -10499,6 +10759,11 @@ snapshots:
duplexer@0.1.2: {}
echarts@6.1.0:
dependencies:
tslib: 2.3.0
zrender: 6.1.0
ee-first@1.1.1: {}
electron-to-chromium@1.5.209: {}
@@ -12509,6 +12774,31 @@ snapshots:
dependencies:
lcid: 3.1.1
oxc-parser@0.132.0:
dependencies:
'@oxc-project/types': 0.132.0
optionalDependencies:
'@oxc-parser/binding-android-arm-eabi': 0.132.0
'@oxc-parser/binding-android-arm64': 0.132.0
'@oxc-parser/binding-darwin-arm64': 0.132.0
'@oxc-parser/binding-darwin-x64': 0.132.0
'@oxc-parser/binding-freebsd-x64': 0.132.0
'@oxc-parser/binding-linux-arm-gnueabihf': 0.132.0
'@oxc-parser/binding-linux-arm-musleabihf': 0.132.0
'@oxc-parser/binding-linux-arm64-gnu': 0.132.0
'@oxc-parser/binding-linux-arm64-musl': 0.132.0
'@oxc-parser/binding-linux-ppc64-gnu': 0.132.0
'@oxc-parser/binding-linux-riscv64-gnu': 0.132.0
'@oxc-parser/binding-linux-riscv64-musl': 0.132.0
'@oxc-parser/binding-linux-s390x-gnu': 0.132.0
'@oxc-parser/binding-linux-x64-gnu': 0.132.0
'@oxc-parser/binding-linux-x64-musl': 0.132.0
'@oxc-parser/binding-openharmony-arm64': 0.132.0
'@oxc-parser/binding-wasm32-wasi': 0.132.0
'@oxc-parser/binding-win32-arm64-msvc': 0.132.0
'@oxc-parser/binding-win32-ia32-msvc': 0.132.0
'@oxc-parser/binding-win32-x64-msvc': 0.132.0
p-limit@2.3.0:
dependencies:
p-try: 2.2.0
@@ -13333,6 +13623,8 @@ snapshots:
picomatch: 4.0.7
typescript: 5.8.3
tslib@2.3.0: {}
tslib@2.8.1:
optional: true
@@ -13378,6 +13670,12 @@ snapshots:
undici-types@7.8.0: {}
uni-echarts@2.5.2(echarts@6.1.0)(vue@3.4.21(typescript@5.8.3)):
dependencies:
echarts: 6.1.0
oxc-parser: 0.132.0
vue: 3.4.21(typescript@5.8.3)
unicode-canonical-property-names-ecmascript@2.0.1: {}
unicode-match-property-ecmascript@2.0.0:
@@ -13854,4 +14152,8 @@ snapshots:
yocto-queue@0.1.0: {}
zrender@6.1.0:
dependencies:
tslib: 2.3.0
zwitch@2.0.4: {}

3
src/components.d.ts vendored
View File

@@ -36,5 +36,8 @@ declare module 'vue' {
SettingsWifiSettings: typeof import('./components/settings/wifiSettings.vue')['default']
WarningFilter: typeof import('./components/warning/filter.vue')['default']
WarningItem: typeof import('./components/warning/item.vue')['default']
WorkDashboard: typeof import('./components/work/dashboard.vue')['default']
WorkDeviceControl: typeof import('./components/work/deviceControl.vue')['default']
WorkRtkMonitor: typeof import('./components/work/rtkMonitor.vue')['default']
}
}

View File

@@ -0,0 +1,30 @@
<script setup lang="ts">
// 实时数据仪表盘组件
</script>
<template>
<view class="card">
<view class="placeholder">
实时数据仪表盘
</view>
</view>
</template>
<style scoped>
.card {
background: #fff;
border-radius: 12px;
padding: 16px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
min-height: 120px;
color: #999;
font-size: 14px;
border: 1px dashed #ddd;
border-radius: 8px;
}
</style>

View File

@@ -0,0 +1,214 @@
<script setup lang="ts">
// 设备状态 + 作业控制组件
const deviceInfo = {
编号: '徐工XS65H #01',
status: '作业中',
connected: '已连接',
workStatus: '正常运行',
signalStatus: '信号良好',
}
const workStatus = '作业进行中'
</script>
<template>
<view class="card">
<view class="card-body">
<!-- 左侧:设备作业状态 -->
<view class="status-section">
<view class="section-header">
<view class="icon-box icon-box--blue">
<wd-icon name="equipment" size="20px" color="#fff" />
</view>
<view class="header-info">
<text class="title">
设备作业状态
</text>
<text class="subtitle">
设备编号 {{ deviceInfo.编号 }}
</text>
</view>
</view>
<view class="status-tags">
<view class="tag">
<view class="dot dot--green" />
<text>{{ deviceInfo.status }}</text>
</view>
<view class="tag">
<view class="dot dot--green" />
<text>{{ deviceInfo.connected }}</text>
</view>
</view>
<view class="info-grid">
<view class="info-item">
<text class="info-label">
压实作业
</text>
<text class="info-value info-value--green">
{{ deviceInfo.workStatus }}
</text>
</view>
<view class="info-item">
<text class="info-label">
设备连接
</text>
<text class="info-value info-value--green">
{{ deviceInfo.signalStatus }}
</text>
</view>
</view>
</view>
<!-- 分割线 -->
<view class="divider" />
<!-- 右侧:作业控制 -->
<view class="control-section">
<view class="section-header">
<view class="icon-box icon-box--blue">
<wd-icon name="user" size="20px" color="#fff" />
</view>
<view class="header-info">
<text class="title">
作业控制
</text>
</view>
</view>
<view class="status-tags">
<view class="tag">
<view class="dot dot--green" />
<text>当前:{{ workStatus }}</text>
</view>
</view>
<wd-button type="warning" block class="pause-btn">
暂停作业
</wd-button>
</view>
</view>
</view>
</template>
<style scoped>
.card {
background: #fff;
border-radius: 12px;
padding: 16px;
}
.card-body {
display: flex;
align-items: flex-start;
gap: 16px;
}
.status-section,
.control-section {
flex: 1;
}
.section-header {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 12px;
}
.icon-box {
width: 40px;
height: 40px;
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
}
.icon-box--blue {
background: #3b82f6;
}
.header-info {
display: flex;
flex-direction: column;
}
.title {
font-size: 16px;
font-weight: 600;
color: #333;
}
.subtitle {
font-size: 12px;
color: #999;
margin-top: 2px;
}
.status-tags {
display: flex;
gap: 16px;
margin-bottom: 12px;
}
.tag {
display: flex;
align-items: center;
gap: 6px;
font-size: 13px;
color: #666;
}
.dot {
width: 8px;
height: 8px;
border-radius: 50%;
}
.dot--green {
background: #22c55e;
}
.info-grid {
display: flex;
flex-direction: column;
gap: 8px;
}
.info-item {
display: flex;
flex-direction: column;
gap: 2px;
}
.info-label {
font-size: 13px;
color: #999;
}
.info-value {
font-size: 14px;
color: #333;
}
.info-value--green {
color: #22c55e;
}
.divider {
width: 1px;
background: #eee;
align-self: stretch;
}
.control-section .status-tags {
margin-bottom: 20px;
}
.pause-btn {
width: 100%;
}
</style>

View File

@@ -0,0 +1,30 @@
<script setup lang="ts">
// RTK轨迹实时监测 + 压实热力图组件
</script>
<template>
<view class="card">
<view class="placeholder">
RTK轨迹实时监测 + 压实热力图
</view>
</view>
</template>
<style scoped>
.card {
background: #fff;
border-radius: 12px;
padding: 16px;
}
.placeholder {
display: flex;
align-items: center;
justify-content: center;
min-height: 120px;
color: #999;
font-size: 14px;
border: 1px dashed #ddd;
border-radius: 8px;
}
</style>

View File

@@ -1,9 +1,12 @@
import * as echarts from 'echarts'
import { provideEcharts } from 'uni-echarts'
import { createSSRApp } from 'vue'
import App from './App.vue'
import 'uno.css'
export function createApp() {
const app = createSSRApp(App)
provideEcharts(echarts)
return {
app,
}

View File

@@ -2,15 +2,57 @@
definePage({
layout: false,
style: {
navigationBarTitleText: '工作',
navigationBarTitleText: '压实作业',
},
})
// const { value: name } = useQuery('name')
</script>
<template>
<view>
<view>压实作业</view>
<view class="page">
<view class="content">
<view class="two-column">
<!-- 左侧区域 -->
<view class="column-left">
<work-deviceControl />
<work-dashboard />
</view>
<!-- 右侧区域 -->
<view class="column-right">
<work-rtkMonitor />
</view>
</view>
</view>
</view>
</template>
<style scoped>
.page {
min-height: 100vh;
background-color: #EAEFF9;
}
.content {
padding: 12px;
}
/* 双列布局 */
.two-column {
display: flex;
gap: 12px;
height: calc(100vh - 24px);
}
.column-left {
flex: 1;
display: flex;
flex-direction: column;
gap: 12px;
}
.column-right {
flex: 1;
display: flex;
flex-direction: column;
}
</style>

View File

@@ -3,6 +3,7 @@ import UniHelperComponents from '@uni-helper/vite-plugin-uni-components'
import UniHelperLayouts from '@uni-helper/vite-plugin-uni-layouts'
import UniHelperManifest from '@uni-helper/vite-plugin-uni-manifest'
import UniHelperPages from '@uni-helper/vite-plugin-uni-pages'
import { UniEcharts } from 'uni-echarts/vite'
import UnoCSS from 'unocss/vite'
import AutoImport from 'unplugin-auto-import/vite'
import { defineConfig } from 'vite'
@@ -24,6 +25,8 @@ export default defineConfig({
dts: 'src/components.d.ts',
directoryAsNamespace: true,
}),
// https://uni-echarts.xiaohe.ink/guide/getting-started
UniEcharts(),
// https://uni-helper.js.org/plugin-uni
Uni(),
UniPolyfill(),