173 Commits

Author SHA1 Message Date
7028ccbaad chore(deps): update primevue pkgs
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ lint-build-and-check (push) Successful in 5m48s
/ surge (push) Successful in 3m31s
/ playwright (push) Failing after 2m43s
/ cleanup_surge (push) Has been skipped
2025-07-03 20:27:12 +08:00
42560a4f2c chore(deps): update dependency @splinetool/runtime to ^1.10.19
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m8s
/ surge (push) Successful in 3m4s
/ playwright (push) Successful in 59s
/ cleanup_surge (push) Successful in 9s
/ lint-build-and-check (push) Successful in 5m49s
2025-07-02 12:00:38 +08:00
8f9593957a chore(deps): update lint dependencies to ^1.5.0
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m21s
/ playwright (push) Successful in 1m36s
/ cleanup_surge (push) Successful in 14s
/ surge (push) Successful in 3m23s
/ lint-build-and-check (push) Successful in 5m51s
2025-07-02 09:31:33 +08:00
0d26da85a1 chore(deps): update dependency vue-tsc to v3
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Successful in 6m28s
/ playwright (push) Successful in 1m36s
/ cleanup_surge (push) Successful in 14s
/ surge (push) Successful in 2m48s
2025-07-02 09:29:20 +08:00
a831d12cf8 chore(deps): update dependency @types/node to ^22.16.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m7s
/ lint-build-and-check (push) Successful in 5m31s
/ surge (push) Successful in 3m11s
/ playwright (push) Successful in 59s
/ cleanup_surge (push) Successful in 13s
2025-07-02 07:14:42 +08:00
55a634db68 chore(deps): update dependency @faker-js/faker to ^9.9.0
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m18s
/ surge (push) Successful in 2m49s
/ playwright (push) Successful in 1m38s
/ cleanup_surge (push) Successful in 15s
/ lint-build-and-check (push) Successful in 5m47s
2025-07-02 04:58:04 +08:00
ec7c877c93 chore(deps): update lint dependencies
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Successful in 5m47s
/ surge (push) Successful in 3m18s
/ playwright (push) Failing after 2m38s
/ cleanup_surge (push) Has been skipped
2025-07-02 04:53:09 +08:00
382c0b79d0 chore(deps): update dependency cesium to ^1.131.0
All checks were successful
/ playwright (push) Successful in 1m42s
/ cleanup_surge (push) Successful in 10s
/ surge (push) Successful in 3m22s
/ lint-build-and-check (push) Successful in 5m58s
/ build-and-deploy-to-vercel (push) Successful in 4m38s
2025-07-02 01:56:02 +08:00
167e9a55c1 chore(deps): update dependency @types/three to ^0.178.0
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Successful in 5m55s
/ playwright (push) Successful in 1m44s
/ cleanup_surge (push) Successful in 11s
/ surge (push) Successful in 3m24s
2025-07-02 01:51:49 +08:00
3dcba6a1ef chore(deps): update dependency vue-component-type-helpers to v3
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m11s
/ cleanup_surge (push) Successful in 16s
/ playwright (push) Successful in 1m2s
/ surge (push) Successful in 3m0s
/ lint-build-and-check (push) Successful in 5m36s
2025-07-01 23:38:51 +08:00
416faf42bf chore(deps): update dependency @splinetool/runtime to ^1.10.18
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m8s
/ lint-build-and-check (push) Successful in 5m50s
/ surge (push) Successful in 3m4s
/ playwright (push) Failing after 8m56s
/ cleanup_surge (push) Has been skipped
2025-07-01 18:18:56 +08:00
25f923e0c9 chore(deps): update mcr.microsoft.com/playwright docker tag to v1.53.2
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 3m10s
/ lint-build-and-check (push) Successful in 6m2s
/ surge (push) Successful in 3m26s
/ playwright (push) Failing after 3m26s
/ cleanup_surge (push) Has been skipped
2025-07-01 05:26:59 +08:00
624984e8c0 chore(deps): update dependency @playwright/test to ^1.53.2
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m44s
/ surge (push) Successful in 2m46s
/ playwright (push) Successful in 57s
/ cleanup_surge (push) Successful in 12s
/ lint-build-and-check (push) Successful in 5m44s
2025-07-01 03:11:36 +08:00
8cd623996a chore(deps): update dependency @splinetool/runtime to ^1.10.17
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m56s
/ playwright (push) Failing after 2m2s
/ cleanup_surge (push) Has been skipped
/ surge (push) Successful in 2m53s
/ lint-build-and-check (push) Successful in 5m57s
2025-07-01 00:38:27 +08:00
c96a6ba984 chore(deps): update dependency three to ^0.178.0
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 3m22s
/ surge (push) Successful in 3m4s
/ playwright (push) Failing after 2m27s
/ cleanup_surge (push) Has been skipped
/ lint-build-and-check (push) Successful in 6m43s
2025-06-30 22:28:23 +08:00
6159caec26 chore(deps): update dependency alova to ^3.3.4
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Successful in 5m49s
/ cleanup_surge (push) Successful in 16s
/ playwright (push) Successful in 1m36s
/ surge (push) Successful in 3m57s
2025-06-30 22:23:13 +08:00
4181110167 chore(deps): update lint dependencies to ^1.4.0
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m10s
/ playwright (push) Successful in 1m44s
/ cleanup_surge (push) Successful in 11s
/ surge (push) Successful in 3m24s
/ lint-build-and-check (push) Successful in 6m10s
2025-06-30 16:53:57 +08:00
d359929003 chore(deps): update dependency pinia-plugin-persistedstate to ^4.4.1
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Successful in 5m48s
/ cleanup_surge (push) Successful in 9s
/ surge (push) Successful in 3m2s
/ playwright (push) Successful in 1m52s
2025-06-30 16:49:10 +08:00
6f2550a933 chore(deps): update dependency unplugin-vue-markdown to ^29.1.0
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m57s
/ lint-build-and-check (push) Successful in 6m2s
/ surge (push) Successful in 3m8s
/ playwright (push) Successful in 1m47s
/ cleanup_surge (push) Successful in 9s
2025-06-30 11:44:28 +08:00
393cc3d9df chore(deps): update dependency @vitejs/plugin-vue-jsx to ^5.0.1
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Successful in 6m38s
/ surge (push) Successful in 3m30s
/ playwright (push) Successful in 1m58s
/ cleanup_surge (push) Successful in 18s
2025-06-30 11:39:54 +08:00
7d1a250e06 chore(deps): update dependency unplugin-vue-markdown to v29
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m0s
/ surge (push) Successful in 3m7s
/ playwright (push) Successful in 1m14s
/ cleanup_surge (push) Successful in 12s
/ lint-build-and-check (push) Successful in 5m43s
2025-06-30 08:43:26 +08:00
0636256a32 chore(deps): update dependency unplugin-vue-router to ^0.14.0
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m22s
/ surge (push) Successful in 2m52s
/ cleanup_surge (push) Has been skipped
/ playwright (push) Failing after 1m47s
/ lint-build-and-check (push) Successful in 5m27s
2025-06-30 06:17:41 +08:00
e45fb54e92 chore(deps): update dependency vue-data-ui to ^2.12.7
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m2s
/ playwright (push) Failing after 1m50s
/ cleanup_surge (push) Has been skipped
/ surge (push) Successful in 3m9s
/ lint-build-and-check (push) Successful in 6m19s
2025-06-30 03:13:16 +08:00
c8db9d36da chore(deps): update dependency unplugin-vue-router to ^0.13.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m19s
/ surge (push) Successful in 3m24s
/ playwright (push) Successful in 1m16s
/ cleanup_surge (push) Successful in 20s
/ lint-build-and-check (push) Successful in 5m23s
2025-06-29 17:04:01 +08:00
333d2e47fd chore(deps): update dependency unplugin-vue-components to ^28.8.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ playwright (push) Successful in 56s
/ cleanup_surge (push) Successful in 13s
/ surge (push) Successful in 2m41s
/ lint-build-and-check (push) Successful in 5m41s
/ build-and-deploy-to-vercel (push) Successful in 3m44s
2025-06-29 11:18:35 +08:00
c81b42a81d chore(deps): update dependency pinia-plugin-persistedstate to ^4.4.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m2s
/ surge (push) Successful in 3m26s
/ cleanup_surge (push) Successful in 19s
/ playwright (push) Successful in 55s
/ lint-build-and-check (push) Successful in 6m1s
2025-06-28 21:46:11 +08:00
e9bfa60ea1 chore(deps): update dependency @types/node to ^22.15.34
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m42s
/ playwright (push) Successful in 2m5s
/ surge (push) Successful in 3m52s
/ cleanup_surge (push) Successful in 8s
/ lint-build-and-check (push) Successful in 6m27s
2025-06-28 16:08:49 +08:00
d102a29f04 chore(deps): update vite packages
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 4m3s
/ lint-build-and-check (push) Successful in 6m30s
/ surge (push) Successful in 3m28s
/ playwright (push) Successful in 2m44s
/ cleanup_surge (push) Successful in 20s
2025-06-28 08:16:20 +08:00
6d7171dfba chore(deps): update dependency eslint to ^9.30.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m42s
/ lint-build-and-check (push) Successful in 6m38s
/ surge (push) Successful in 3m36s
/ playwright (push) Successful in 2m39s
/ cleanup_surge (push) Successful in 20s
2025-06-28 05:42:22 +08:00
e8d6ca5262 chore(deps): update dependency lucide-vue-next to ^0.525.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ lint-build-and-check (push) Successful in 6m6s
/ playwright (push) Successful in 2m36s
/ cleanup_surge (push) Successful in 11s
/ surge (push) Successful in 4m0s
/ build-and-deploy-to-vercel (push) Successful in 3m58s
2025-06-28 03:12:15 +08:00
43ef9854b8 chore(deps): update dependency primelocale to ^2.1.4
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 4m4s
/ surge (push) Successful in 3m38s
/ playwright (push) Successful in 1m55s
/ cleanup_surge (push) Successful in 14s
/ lint-build-and-check (push) Successful in 6m44s
2025-06-28 01:44:50 +08:00
070cfbad51 chore(deps): update dependency @splinetool/runtime to ^1.10.16
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Successful in 6m30s
/ surge (push) Successful in 3m54s
/ playwright (push) Successful in 2m3s
/ cleanup_surge (push) Successful in 10s
2025-06-28 01:39:29 +08:00
2863d607cf chore(deps): update dependency vue-data-ui to ^2.12.6
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 4m3s
/ surge (push) Successful in 3m29s
/ playwright (push) Successful in 2m57s
/ cleanup_surge (push) Successful in 21s
/ lint-build-and-check (push) Successful in 6m52s
2025-06-27 22:45:08 +08:00
c04cbc444f chore(deps): update dependency lucide-vue-next to ^0.524.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m59s
/ lint-build-and-check (push) Successful in 6m11s
/ playwright (push) Successful in 1m55s
/ cleanup_surge (push) Successful in 19s
/ surge (push) Successful in 3m51s
2025-06-27 20:16:29 +08:00
ae189c4add chore(deps): update dependency prettier to v3.6.2
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 4m1s
/ surge (push) Successful in 3m25s
/ playwright (push) Successful in 1m53s
/ cleanup_surge (push) Successful in 16s
/ lint-build-and-check (push) Successful in 6m16s
2025-06-27 12:02:33 +08:00
6d603e0bc2 chore(deps): update dependency eslint-plugin-import-x to ^4.16.1
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Successful in 6m42s
/ surge (push) Successful in 3m36s
/ playwright (push) Successful in 1m54s
/ cleanup_surge (push) Successful in 19s
2025-06-27 11:57:14 +08:00
0a95e603bc chore(deps): update dependency @vitest/eslint-plugin to ^1.3.3
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m49s
/ cleanup_surge (push) Successful in 17s
/ surge (push) Successful in 3m29s
/ playwright (push) Successful in 1m56s
/ lint-build-and-check (push) Successful in 6m36s
2025-06-27 06:13:23 +08:00
0f88d0c35a chore(deps): update pnpm to v10.12.4
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m59s
/ playwright (push) Successful in 2m7s
/ cleanup_surge (push) Successful in 20s
/ surge (push) Successful in 3m33s
/ lint-build-and-check (push) Successful in 6m49s
2025-06-27 03:10:23 +08:00
bf563c3741 chore(deps): update dependency @splinetool/runtime to ^1.10.15
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ surge (push) Failing after 1m13s
/ playwright (push) Has been skipped
/ cleanup_surge (push) Has been skipped
/ build-and-deploy-to-vercel (push) Failing after 1m34s
/ lint-build-and-check (push) Failing after 1m43s
2025-06-26 21:36:12 +08:00
f49a425870 chore(deps): update dependency unocss to v66.3.2
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ surge (push) Failing after 1m18s
/ playwright (push) Has been skipped
/ cleanup_surge (push) Has been skipped
/ build-and-deploy-to-vercel (push) Failing after 1m22s
/ lint-build-and-check (push) Failing after 1m47s
2025-06-26 13:24:59 +08:00
34af83bc6f chore(deps): update dependency vite-plugin-purgecss-updated-v5 to ^1.2.6
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ surge (push) Failing after 1m24s
/ playwright (push) Has been skipped
/ cleanup_surge (push) Has been skipped
/ build-and-deploy-to-vercel (push) Failing after 1m28s
/ lint-build-and-check (push) Failing after 1m54s
2025-06-26 10:55:13 +08:00
0a43e45020 chore(deps): update dependency @eslint/compat to ^1.3.1
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ surge (push) Failing after 1m13s
/ cleanup_surge (push) Has been skipped
/ playwright (push) Has been skipped
/ build-and-deploy-to-vercel (push) Failing after 1m28s
/ lint-build-and-check (push) Failing after 1m49s
2025-06-25 22:30:19 +08:00
4389195b6f chore(deps): update dependency vite-plugin-static-copy to ^3.1.0
Some checks failed
/ playwright (push) Has been skipped
/ cleanup_surge (push) Has been skipped
/ surge (push) Failing after 1m16s
/ build-and-deploy-to-vercel (push) Failing after 1m25s
/ lint-build-and-check (push) Failing after 1m39s
2025-06-25 20:09:27 +08:00
83b0171226 chore(deps): update dependency unocss to v66.3.1
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ playwright (push) Has been cancelled
/ cleanup_surge (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
/ surge (push) Has been cancelled
2025-06-25 20:06:49 +08:00
5ac854cb87 chore(deps): update dependency vite-plugin-purgecss-updated-v5 to ^1.2.5
Some checks failed
/ surge (push) Failing after 1m17s
/ playwright (push) Has been skipped
/ cleanup_surge (push) Has been skipped
/ build-and-deploy-to-vercel (push) Failing after 1m32s
/ lint-build-and-check (push) Failing after 1m44s
2025-06-25 17:21:29 +08:00
ba7f565e6a chore(deps): update dependency prettier to v3.6.1
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ playwright (push) Has been cancelled
/ cleanup_surge (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ surge (push) Has been cancelled
2025-06-25 17:18:45 +08:00
f48b00feb4 chore(deps): update dependency eslint-plugin-import-x to ^4.16.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m59s
/ surge (push) Successful in 2m46s
/ playwright (push) Successful in 1m23s
/ cleanup_surge (push) Successful in 9s
/ lint-build-and-check (push) Successful in 6m4s
2025-06-25 14:09:26 +08:00
8d7795e53d chore(deps): update dependency @types/node to ^22.15.33
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m47s
/ surge (push) Successful in 2m40s
/ playwright (push) Successful in 1m53s
/ cleanup_surge (push) Successful in 9s
/ lint-build-and-check (push) Successful in 6m0s
2025-06-25 02:45:14 +08:00
69fc6b50d8 chore(deps): update all non-major dependencies
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m55s
/ lint-build-and-check (push) Successful in 5m37s
/ surge (push) Successful in 3m9s
/ playwright (push) Failing after 2m47s
/ cleanup_surge (push) Has been skipped
2025-06-25 00:26:18 +08:00
e2394c9bd8 chore(deps): update dependency lucide-vue-next to ^0.523.0
Some checks failed
/ build-and-deploy-to-vercel (push) Failing after 56s
/ surge (push) Failing after 1m13s
/ playwright (push) Has been skipped
/ cleanup_surge (push) Has been skipped
/ lint-build-and-check (push) Failing after 1m33s
2025-06-24 22:03:09 +08:00
31c56c7a4a chore(deps): update dependency @unhead/vue to ^2.0.11
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ lint-build-and-check (push) Has been cancelled
/ playwright (push) Has been cancelled
/ cleanup_surge (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ surge (push) Has been cancelled
2025-06-24 22:00:25 +08:00
bff4f8d890 chore(deps): update pnpm to v10.12.3
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m26s
/ lint-build-and-check (push) Successful in 5m24s
/ cleanup_surge (push) Successful in 18s
/ surge (push) Successful in 3m10s
/ playwright (push) Successful in 1m56s
2025-06-24 18:55:39 +08:00
abd974191c chore(deps): update dependency vue-data-ui to ^2.12.5
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m26s
/ lint-build-and-check (push) Successful in 6m14s
/ playwright (push) Successful in 2m57s
/ surge (push) Successful in 3m8s
/ cleanup_surge (push) Successful in 54s
2025-06-24 13:51:35 +08:00
ed1e88bd55 chore(deps): update lint dependencies to ^1.3.0
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m49s
/ lint-build-and-check (push) Successful in 5m57s
/ surge (push) Successful in 3m29s
/ playwright (push) Failing after 13m2s
/ cleanup_surge (push) Has been skipped
2025-06-23 15:58:56 +08:00
62f92f1fb4 chore: remove copilot instructions file [skip ci] 2025-06-23 14:00:35 +08:00
9424bb23d4 chore(deps): update dependency vue-data-ui to ^2.12.3
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m56s
/ surge (push) Successful in 3m18s
/ playwright (push) Successful in 1m24s
/ cleanup_surge (push) Successful in 29s
/ lint-build-and-check (push) Successful in 5m29s
2025-06-23 13:33:52 +08:00
c371bc04b5 chore(deps): update dependency prettier to v3.6.0
Some checks failed
/ build-and-deploy-to-vercel (push) Failing after 58s
/ lint-build-and-check (push) Failing after 1m21s
2025-06-23 11:29:12 +08:00
4a9069e13c chore(deps): update all non-major dependencies
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ surge (push) Successful in 2m51s
/ build-and-deploy-to-vercel (push) Successful in 3m22s
/ cleanup_surge (push) Has been cancelled
/ playwright (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
2025-06-23 11:20:36 +08:00
85e6733e53 chore(deps): update lint dependencies
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m2s
/ playwright (push) Failing after 1m51s
/ surge (push) Successful in 3m5s
/ cleanup_surge (push) Has been skipped
/ lint-build-and-check (push) Successful in 5m32s
2025-06-22 16:28:20 +08:00
c9efa9ddf1 chore(config): comment out minifyInternalExports and manualChunks options
Some checks failed
/ lint-build-and-check (push) Successful in 5m43s
/ build-and-deploy-to-vercel (push) Successful in 5m47s
/ cleanup_surge (push) Has been skipped
/ surge (push) Successful in 3m9s
/ playwright (push) Failing after 11m28s
2025-06-22 14:40:48 +08:00
d5001e0e05 chore(deps): remove terser dependency
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m38s
/ playwright (push) Successful in 57s
/ cleanup_surge (push) Successful in 28s
/ surge (push) Successful in 3m9s
/ lint-build-and-check (push) Successful in 5m39s
2025-06-21 23:23:33 +08:00
caa4ae66cc chore(deps): update dependency lucide-vue-next to ^0.522.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m6s
/ surge (push) Successful in 3m31s
/ playwright (push) Successful in 1m4s
/ cleanup_surge (push) Successful in 20s
/ lint-build-and-check (push) Successful in 5m56s
2025-06-21 16:29:18 +08:00
9635c2005f chore(deps): update dependency lucide-vue-next to ^0.519.0
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m34s
/ lint-build-and-check (push) Successful in 5m31s
/ surge (push) Successful in 3m22s
/ playwright (push) Failing after 12m22s
/ cleanup_surge (push) Has been skipped
2025-06-21 05:57:23 +08:00
dc6b3506fb chore(deps): update dependency lucide-vue-next to ^0.518.0
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m3s
/ lint-build-and-check (push) Successful in 5m39s
/ playwright (push) Failing after 11m34s
/ cleanup_surge (push) Has been skipped
/ surge (push) Successful in 2m57s
2025-06-19 16:22:11 +08:00
f4a64498bf chore(deps): update playwright packages
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m18s
/ lint-build-and-check (push) Successful in 6m18s
/ playwright (push) Failing after 11m34s
/ cleanup_surge (push) Has been skipped
/ surge (push) Successful in 2m53s
2025-06-19 03:14:26 +08:00
dfa4a92d54 chore(deps): update dependency lucide-vue-next to ^0.517.0
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ playwright (push) Failing after 1m47s
/ cleanup_surge (push) Has been skipped
/ surge (push) Successful in 3m21s
/ lint-build-and-check (push) Successful in 5m35s
/ build-and-deploy-to-vercel (push) Successful in 3m5s
2025-06-18 16:46:22 +08:00
86d85d1166 chore(deps): update dependency @primeuix/themes to ^1.1.2
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ lint-build-and-check (push) Successful in 5m39s
/ playwright (push) Successful in 58s
/ surge (push) Successful in 2m49s
/ cleanup_surge (push) Successful in 10s
/ build-and-deploy-to-vercel (push) Successful in 3m4s
2025-06-17 18:48:57 +08:00
1be504569c chore(deps): update dependency lucide-vue-next to ^0.516.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m3s
/ surge (push) Successful in 2m58s
/ playwright (push) Successful in 1m3s
/ cleanup_surge (push) Successful in 9s
/ lint-build-and-check (push) Successful in 5m47s
2025-06-17 05:31:23 +08:00
943993920b chore(deps): update dependency @types/node to ^22.15.32
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m1s
/ surge (push) Successful in 3m16s
/ playwright (push) Successful in 5m6s
/ cleanup_surge (push) Failing after 52s
/ lint-build-and-check (push) Successful in 6m28s
2025-06-16 19:27:50 +08:00
2abff2791f chore(deps): update dependency vite-plugin-vue-devtools to ^7.7.7
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ lint-build-and-check (push) Successful in 5m36s
/ surge (push) Successful in 2m53s
/ playwright (push) Successful in 1m6s
/ cleanup_surge (push) Successful in 14s
/ build-and-deploy-to-vercel (push) Successful in 3m41s
2025-06-15 19:35:09 +08:00
25d3cd09a1 chore(deps): update dependency vite-plugin-static-copy to ^3.0.2
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m59s
/ lint-build-and-check (push) Successful in 5m34s
/ playwright (push) Successful in 1m40s
/ surge (push) Successful in 2m49s
/ cleanup_surge (push) Successful in 18s
2025-06-14 18:39:03 +08:00
e1a60fd9bc chore(deps): update dependency lucide-vue-next to ^0.515.0
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m15s
/ cleanup_surge (push) Successful in 15s
/ playwright (push) Successful in 1m40s
/ surge (push) Successful in 2m49s
/ lint-build-and-check (push) Successful in 5m44s
2025-06-13 17:36:02 +08:00
267b00d77a chore(deps): update dependency @pinia/colada to ^0.17.1
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Successful in 6m25s
/ playwright (push) Successful in 1m37s
/ cleanup_surge (push) Successful in 12s
/ surge (push) Successful in 3m8s
2025-06-13 17:31:21 +08:00
63fc76dc29 chore(deps): update dependency primelocale to ^2.1.3
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m5s
/ surge (push) Successful in 2m49s
/ playwright (push) Successful in 1m7s
/ cleanup_surge (push) Successful in 14s
/ lint-build-and-check (push) Successful in 5m42s
2025-06-12 19:29:20 +08:00
ec5239ab29 chore(deps): update lint dependencies to v1
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m17s
/ lint-build-and-check (push) Successful in 5m46s
/ cleanup_surge (push) Successful in 12s
/ surge (push) Successful in 3m6s
/ playwright (push) Successful in 2m35s
2025-06-12 09:35:17 +08:00
f4a475d2d6 chore(deps): update dependency @types/node to ^22.15.31
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m0s
/ surge (push) Successful in 2m56s
/ playwright (push) Successful in 2m12s
/ cleanup_surge (push) Successful in 21s
/ lint-build-and-check (push) Successful in 5m39s
2025-06-11 06:03:59 +08:00
2cb4dd0b18 chore(deps): update playwright packages
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 3m0s
/ lint-build-and-check (push) Successful in 5m38s
/ surge (push) Successful in 3m7s
/ playwright (push) Failing after 2m32s
/ cleanup_surge (push) Has been skipped
2025-06-11 03:15:17 +08:00
c7e7ccc14c chore(deps): update dependency lucide-vue-next to ^0.514.0
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Successful in 5m47s
/ playwright (push) Successful in 1m37s
/ cleanup_surge (push) Successful in 13s
/ surge (push) Successful in 3m10s
2025-06-11 03:10:30 +08:00
4c27108d68 chore(deps): update all non-major dependencies
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m6s
/ playwright (push) Successful in 59s
/ cleanup_surge (push) Successful in 10s
/ surge (push) Successful in 2m55s
/ lint-build-and-check (push) Successful in 5m42s
2025-06-10 01:07:02 +08:00
0883cb8df5 fix: update layout titles to object format for consistency
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 3m32s
/ lint-build-and-check (push) Successful in 5m50s
/ surge (push) Successful in 2m51s
/ playwright (push) Failing after 1m45s
/ cleanup_surge (push) Has been skipped
2025-06-10 00:44:57 +08:00
65cd87264f feat: update multiple dependencies
Some checks failed
/ build-and-deploy-to-vercel (push) Failing after 3m11s
/ lint-build-and-check (push) Failing after 3m26s
/ surge (push) Successful in 3m5s
/ playwright (push) Successful in 1m32s
/ cleanup_surge (push) Successful in 12s
2025-06-10 00:35:25 +08:00
00debaa771 chore(deps): update vite packages
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m15s
/ surge (push) Successful in 3m2s
/ playwright (push) Successful in 59s
/ cleanup_surge (push) Successful in 24s
/ lint-build-and-check (push) Successful in 6m28s
2025-06-08 02:46:13 +08:00
5490cc7531 chore(deps): update dependency @types/node to ^22.15.30
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m13s
/ lint-build-and-check (push) Successful in 5m50s
/ surge (push) Successful in 3m31s
/ playwright (push) Failing after 11m28s
/ cleanup_surge (push) Has been skipped
2025-06-06 03:11:52 +08:00
e2a58765f4 chore(deps): update dependency @types/three to ^0.177.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m32s
/ surge (push) Successful in 3m0s
/ playwright (push) Successful in 1m3s
/ cleanup_surge (push) Successful in 10s
/ lint-build-and-check (push) Successful in 5m54s
2025-06-04 00:37:04 +08:00
12d5af969c fix: disable specific eslint-plugin-import-x rules and update router import
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m9s
/ lint-build-and-check (push) Successful in 5m59s
/ playwright (push) Successful in 1m5s
/ cleanup_surge (push) Successful in 24s
/ surge (push) Successful in 3m21s
2025-06-03 22:54:15 +08:00
12d1cc4228 chore(deps): update lint dependencies
Some checks failed
/ lint-build-and-check (push) Failing after 1m32s
renovate/stability-days Updates have met minimum release age requirement
/ cleanup_surge (push) Has been skipped
/ surge (push) Failing after 49s
/ playwright (push) Has been skipped
2025-06-03 10:13:15 +08:00
c29b9da955 chore(deps): update dependency three to ^0.177.0
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m14s
/ surge (push) Successful in 3m11s
/ playwright (push) Successful in 1m0s
/ cleanup_surge (push) Successful in 24s
/ lint-build-and-check (push) Successful in 5m45s
2025-06-01 05:53:14 +08:00
bc45b0cb22 chore(deps): update dependency @types/node to ^22.15.29
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m13s
/ cleanup_surge (push) Has been skipped
/ playwright (push) Failing after 2m5s
/ surge (push) Successful in 3m20s
/ lint-build-and-check (push) Successful in 5m47s
2025-05-31 03:14:38 +08:00
fa48449105 fix: update vite-plugin-image-tools to version 2.0.1 and configure additional options
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m21s
/ surge (push) Successful in 3m48s
/ playwright (push) Successful in 1m33s
/ cleanup_surge (push) Successful in 23s
/ lint-build-and-check (push) Successful in 6m5s
2025-05-30 11:59:35 +08:00
b0b687ec01 chore(deps): update unplugin packages
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m11s
/ surge (push) Successful in 3m23s
/ playwright (push) Successful in 1m4s
/ cleanup_surge (push) Successful in 13s
/ lint-build-and-check (push) Successful in 5m53s
2025-05-26 13:50:08 +08:00
e8803a9f18 feat: add vue-data-ui dependency and create vue-data-ui page
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m58s
/ surge (push) Successful in 3m8s
/ playwright (push) Successful in 1m42s
/ cleanup_surge (push) Successful in 11s
/ lint-build-and-check (push) Successful in 6m3s
2025-05-26 12:57:24 +08:00
c3690aa235 chore(deps): update v0.x
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m12s
/ playwright (push) Successful in 2m24s
/ surge (push) Successful in 2m58s
/ cleanup_surge (push) Successful in 17s
/ lint-build-and-check (push) Successful in 5m52s
2025-05-26 11:57:58 +08:00
376b5a2d54 chore(deps): update lint dependencies to ^0.16.12
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ playwright (push) Has been cancelled
/ cleanup_surge (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ surge (push) Has been cancelled
2025-05-26 11:28:02 +08:00
2d42497a41 chore(deps): update lint dependencies
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m17s
/ surge (push) Successful in 3m8s
/ playwright (push) Successful in 1m38s
/ cleanup_surge (push) Successful in 17s
/ lint-build-and-check (push) Successful in 6m23s
2025-05-26 09:52:25 +08:00
e1e14200cd chore(deps): update all non-major dependencies
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ lint-build-and-check (push) Has been cancelled
/ playwright (push) Has been cancelled
/ cleanup_surge (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ surge (push) Has been cancelled
2025-05-25 23:29:38 +08:00
15eeb6f5ee chore(deps): update vite packages
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m58s
/ lint-build-and-check (push) Successful in 5m40s
/ playwright (push) Failing after 2m2s
/ cleanup_surge (push) Has been skipped
/ surge (push) Successful in 2m54s
2025-05-22 11:03:48 +08:00
f7a70cbf85 chore(deps): update dependency @types/node to ^22.15.21
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m2s
/ surge (push) Successful in 2m42s
/ playwright (push) Successful in 1m46s
/ cleanup_surge (push) Successful in 18s
/ lint-build-and-check (push) Successful in 5m37s
2025-05-21 20:01:34 +08:00
e71936c3c4 chore(deps): update lint dependencies
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m1s
/ playwright (push) Successful in 1m4s
/ cleanup_surge (push) Successful in 12s
/ surge (push) Successful in 2m50s
/ lint-build-and-check (push) Successful in 6m20s
2025-05-21 02:16:43 +08:00
1dfca31c33 chore(deps): update lint dependencies to ^0.16.11
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m2s
/ lint-build-and-check (push) Successful in 5m33s
/ playwright (push) Failing after 1m51s
/ surge (push) Successful in 3m13s
/ cleanup_surge (push) Has been skipped
2025-05-19 14:11:17 +08:00
e1c8663d47 Merge pull request 'chore(deps): update dependency @types/node to ^22.15.19' (#253) from renovate/types into main
[skip ci]
2025-05-19 13:45:48 +08:00
98f5c40034 chore(deps): update dependency @types/node to ^22.15.19
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ surge (push) Successful in 3m9s
/ cleanup_surge (push) Successful in 18s
/ playwright (push) Successful in 1m52s
/ lint-build-and-check (push) Successful in 5m38s
2025-05-19 08:55:23 +08:00
3bb892a507 chore(deps): update dependency eslint-plugin-perfectionist to ^4.13.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m5s
/ surge (push) Successful in 2m47s
/ playwright (push) Successful in 1m2s
/ cleanup_surge (push) Successful in 12s
/ lint-build-and-check (push) Successful in 5m33s
2025-05-15 21:35:19 +08:00
cbc0da3ac8 chore(deps): update dependency vite-plugin-image-tools to ^1.2.2
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m57s
/ playwright (push) Successful in 1m3s
/ cleanup_surge (push) Successful in 12s
/ surge (push) Successful in 2m55s
/ lint-build-and-check (push) Successful in 5m32s
2025-05-15 18:52:35 +08:00
7cc05ab132 feat: .gitattributes.MD
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m21s
/ playwright (push) Successful in 1m4s
/ cleanup_surge (push) Successful in 10s
/ surge (push) Successful in 2m55s
/ lint-build-and-check (push) Successful in 5m34s
2025-05-15 16:49:02 +08:00
a65ca6a6b8 chore(deps): update dependency @types/node to ^22.15.18
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m57s
/ surge (push) Successful in 2m53s
/ playwright (push) Successful in 1m12s
/ cleanup_surge (push) Successful in 25s
/ lint-build-and-check (push) Successful in 6m10s
2025-05-14 13:23:59 +08:00
d12c00cb4b chore(deps): update vite packages
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m8s
/ surge (push) Successful in 3m4s
/ cleanup_surge (push) Successful in 30s
/ playwright (push) Successful in 1m12s
/ lint-build-and-check (push) Successful in 5m35s
2025-05-13 07:56:51 +08:00
58e6119436 chore(deps): update dependency eslint-plugin-import-x to ^4.11.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m55s
/ playwright (push) Successful in 1m7s
/ cleanup_surge (push) Successful in 22s
/ surge (push) Successful in 2m52s
/ lint-build-and-check (push) Successful in 6m10s
2025-05-12 20:19:14 +08:00
0b195d16a1 chore(deps): update lint dependencies to ^0.16.10
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m59s
/ cleanup_surge (push) Successful in 19s
/ surge (push) Successful in 2m50s
/ playwright (push) Successful in 1m47s
/ lint-build-and-check (push) Successful in 5m36s
2025-05-12 02:49:37 +08:00
4b73f0e310 Merge pull request 'chore(deps): update yanhao98/composite-actions digest to 3bf0746' (#247) from renovate/github-actions into main
[no ci]
2025-05-12 00:58:01 +08:00
3c2145a626 chore(deps): update yanhao98/composite-actions digest to 3bf0746
All checks were successful
/ playwright (push) Successful in 1m3s
/ cleanup_surge (push) Successful in 16s
/ surge (push) Successful in 2m48s
/ lint-build-and-check (push) Successful in 5m32s
2025-05-11 22:10:33 +08:00
f432045ffe chore(deps): update dependency vite-plugin-static-copy to v3
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 3m14s
/ lint-build-and-check (push) Successful in 5m44s
/ surge (push) Successful in 3m30s
/ playwright (push) Failing after 2m24s
/ cleanup_surge (push) Has been skipped
2025-05-11 20:18:27 +08:00
0cd7080cee chore(deps): update dependency lint-staged to v16
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m57s
/ surge (push) Successful in 3m10s
/ playwright (push) Failing after 1m53s
/ cleanup_surge (push) Has been skipped
/ lint-build-and-check (push) Successful in 5m33s
2025-05-11 03:32:51 +08:00
05cc3f929a chore(deps): update v0.x
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m56s
/ surge (push) Successful in 2m54s
/ playwright (push) Failing after 1m54s
/ cleanup_surge (push) Has been skipped
/ lint-build-and-check (push) Successful in 6m12s
2025-05-10 01:57:03 +08:00
053501eff7 chore(deps): update dependency @types/node to ^22.15.17
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m23s
/ lint-build-and-check (push) Successful in 5m35s
/ surge (push) Successful in 3m35s
/ playwright (push) Successful in 2m23s
/ cleanup_surge (push) Successful in 19s
2025-05-09 18:55:25 +08:00
ab70388a53 fix: 格式化 PinPuYi.vue
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 2m56s
/ playwright (push) Failing after 1m51s
/ surge (push) Successful in 2m57s
/ cleanup_surge (push) Has been skipped
/ lint-build-and-check (push) Successful in 5m35s
2025-05-09 16:51:03 +08:00
f34202febb feat: 频谱仪: 添加幅度菜单和单位支持
Some checks failed
/ lint-build-and-check (push) Has been cancelled
/ playwright (push) Has been cancelled
/ cleanup_surge (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ surge (push) Has been cancelled
2025-05-09 16:48:07 +08:00
aafff004f4 chore(deps): update dependency vite to ^6.3.5
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ lint-build-and-check (push) Successful in 5m37s
/ build-and-deploy-to-vercel (push) Successful in 2m59s
/ surge (push) Successful in 3m22s
/ playwright (push) Successful in 1m42s
/ cleanup_surge (push) Successful in 19s
2025-05-08 21:51:14 +08:00
4c034e2f9c Merge pull request 'chore(deps): update lint dependencies' (#239) from renovate/lint into main
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m59s
/ cleanup_surge (push) Successful in 17s
/ surge (push) Successful in 2m46s
/ playwright (push) Successful in 1m2s
/ lint-build-and-check (push) Successful in 5m36s
[skip ci ]
2025-05-08 20:38:38 +08:00
0d535f80d5 chore(deps): update lint dependencies
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ lint-build-and-check (push) Successful in 5m39s
/ surge (push) Successful in 3m22s
/ playwright (push) Successful in 1m28s
/ cleanup_surge (push) Successful in 16s
2025-05-08 19:36:43 +08:00
323fc6cce0 chore(deps): update dependency lucide-vue-next to ^0.508.0
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 3m5s
/ surge (push) Successful in 2m59s
/ playwright (push) Failing after 2m21s
/ cleanup_surge (push) Has been skipped
/ lint-build-and-check (push) Successful in 6m26s
2025-05-08 18:42:28 +08:00
60272a8f0a chore(deps): update dependency @types/node to ^22.15.16 2025-05-08 18:42:12 +08:00
d74b6fe015 chore(deps): update dependency unplugin-auto-import to ^19.2.0
Some checks failed
/ surge (push) Successful in 3m7s
/ build-and-deploy-to-vercel (push) Successful in 3m14s
/ cleanup_surge (push) Has been cancelled
/ playwright (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
2025-05-08 18:38:44 +08:00
d1980c567c chore(deps): update primevue pkgs
Some checks failed
/ playwright (push) Has been cancelled
/ cleanup_surge (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
/ surge (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
2025-05-08 18:38:28 +08:00
cef9ed6381 refactor: 优化频谱仪状态管理代码格式,提升可读性
Some checks failed
/ playwright (push) Has been cancelled
/ cleanup_surge (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
/ surge (push) Has been cancelled
2025-05-08 18:15:46 +08:00
b850ae82ae feat: 添加跨度菜单列表及其项目,更新频谱仪状态管理
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m57s
/ surge (push) Successful in 2m42s
/ cleanup_surge (push) Successful in 16s
/ playwright (push) Successful in 55s
/ lint-build-and-check (push) Successful in 6m13s
2025-05-08 18:10:27 +08:00
243b2bbd6b fix: 移除不必要的 source.fixAll 配置
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 2m55s
/ playwright (push) Failing after 1m49s
/ cleanup_surge (push) Has been skipped
/ surge (push) Successful in 2m50s
/ lint-build-and-check (push) Successful in 6m7s
2025-05-08 14:07:40 +08:00
cd63d1d30b chore(deps): update dependency @types/node to ^22.15.14
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 6m14s
/ surge (push) Successful in 5m55s
/ playwright (push) Failing after 2m29s
/ cleanup_surge (push) Has been skipped
/ lint-build-and-check (push) Successful in 8m30s
2025-05-07 18:13:45 +08:00
0f9865d4d5 chore(deps): update dependency eslint-plugin-unicorn to ^59.0.1
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ playwright (push) Has been cancelled
/ cleanup_surge (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ surge (push) Has been cancelled
2025-05-07 03:14:48 +08:00
1a6e5d0240 chore(deps): update lint dependencies to ^0.16.9
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m55s
/ lint-build-and-check (push) Successful in 5m30s
/ surge (push) Successful in 3m20s
/ playwright (push) Successful in 1m31s
/ cleanup_surge (push) Successful in 20s
2025-05-06 13:50:00 +08:00
e70834af8f chore(deps): update dependency @types/node to ^22.15.11
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m5s
/ lint-build-and-check (push) Successful in 5m34s
/ surge (push) Successful in 3m9s
/ playwright (push) Successful in 1m47s
/ cleanup_surge (push) Successful in 17s
2025-05-06 11:06:18 +08:00
bf10aa44da chore(deps): update lint dependencies
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m8s
/ lint-build-and-check (push) Successful in 6m5s
/ cleanup_surge (push) Has been skipped
/ surge (push) Successful in 2m46s
/ playwright (push) Failing after 1m46s
2025-05-06 08:18:40 +08:00
3e217c0db7 chore(deps): update dependency @types/node to ^22.15.7
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m0s
/ lint-build-and-check (push) Successful in 5m30s
/ surge (push) Successful in 2m50s
/ playwright (push) Failing after 1m47s
/ cleanup_surge (push) Has been skipped
2025-05-06 05:30:58 +08:00
cff5c098d8 chore(deps): update all non-major dependencies
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m54s
/ cleanup_surge (push) Successful in 28s
/ surge (push) Successful in 2m47s
/ playwright (push) Successful in 1m0s
/ lint-build-and-check (push) Successful in 6m5s
2025-05-05 00:38:44 +08:00
7344359d1e chore(deps): 更新 eslint-plugin-unicorn 到 v59.0.0
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m3s
/ surge (push) Successful in 2m58s
/ playwright (push) Successful in 1m29s
/ cleanup_surge (push) Successful in 21s
/ lint-build-and-check (push) Successful in 6m27s
2025-05-04 21:25:48 +08:00
5b42efc166 chore(deps): update vite packages
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m54s
/ lint-build-and-check (push) Successful in 5m28s
/ cleanup_surge (push) Successful in 16s
/ surge (push) Successful in 2m48s
/ playwright (push) Successful in 58s
2025-05-03 16:52:33 +08:00
e5dd7aa70e chore: configure commitlint
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m12s
/ surge (push) Successful in 2m52s
/ playwright (push) Successful in 2m22s
/ cleanup_surge (push) Successful in 15s
/ lint-build-and-check (push) Successful in 5m42s
2025-05-03 16:00:52 +08:00
ce914d3275 chore(deps): update dependency npm-run-all2 to v8
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m28s
/ surge (push) Successful in 3m1s
/ playwright (push) Successful in 1m0s
/ cleanup_surge (push) Successful in 11s
/ lint-build-and-check (push) Successful in 5m21s
2025-05-03 03:28:48 +08:00
695e583136 feat: 添加对 .md 文件的类型声明
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m7s
/ lint-build-and-check (push) Successful in 5m27s
/ playwright (push) Successful in 1m40s
/ surge (push) Successful in 3m10s
/ cleanup_surge (push) Successful in 49s
2025-05-02 23:10:38 +08:00
6f06a36e44 chore(deps): update lint dependencies to ^0.16.8
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m25s
/ lint-build-and-check (push) Successful in 5m29s
/ playwright (push) Successful in 1m5s
/ surge (push) Successful in 2m50s
/ cleanup_surge (push) Successful in 29s
2025-04-29 18:49:09 +08:00
cf4ea2da16 chore(deps): update dependency @types/node to ^22.15.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m23s
/ lint-build-and-check (push) Successful in 5m34s
/ playwright (push) Successful in 1m3s
/ cleanup_surge (push) Successful in 17s
/ surge (push) Successful in 2m53s
2025-04-29 13:04:42 +08:00
8aa35a14fb chore(deps): update dependency p5 to v2
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m8s
/ lint-build-and-check (push) Successful in 5m43s
/ playwright (push) Successful in 1m41s
/ cleanup_surge (push) Successful in 20s
/ surge (push) Successful in 3m44s
2025-04-29 11:56:25 +08:00
6b52b7e87c chore(deps): update lint dependencies
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m32s
/ lint-build-and-check (push) Successful in 5m28s
/ surge (push) Successful in 2m48s
/ playwright (push) Failing after 1m47s
/ cleanup_surge (push) Has been skipped
2025-04-28 20:02:41 +08:00
6299b6d45f PinPuYi
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 3m1s
/ playwright (push) Failing after 2m21s
/ cleanup_surge (push) Has been skipped
/ surge (push) Successful in 2m50s
/ lint-build-and-check (push) Successful in 5m33s
2025-04-28 17:44:11 +08:00
5fe08b0741 PinPuYi
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 3m6s
/ lint-build-and-check (push) Successful in 5m25s
/ playwright (push) Failing after 2m3s
/ surge (push) Successful in 2m50s
/ cleanup_surge (push) Has been skipped
2025-04-28 17:02:47 +08:00
1ca2a17e4f 频谱仪: 屏幕照片
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m3s
/ surge (push) Successful in 2m51s
/ playwright (push) Successful in 1m3s
/ cleanup_surge (push) Successful in 15s
/ lint-build-and-check (push) Successful in 6m10s
2025-04-28 15:41:26 +08:00
a44a455eca fix: 修改频率菜单和状态变量名称为中文
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m54s
/ surge (push) Successful in 2m52s
/ playwright (push) Successful in 1m47s
/ cleanup_surge (push) Successful in 25s
/ lint-build-and-check (push) Successful in 5m30s
2025-04-28 14:05:24 +08:00
dd1af6964d feat(deps): add vite-plugin-image-tools dependency
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m8s
/ surge (push) Successful in 2m51s
/ playwright (push) Successful in 1m42s
/ cleanup_surge (push) Successful in 22s
/ lint-build-and-check (push) Successful in 5m22s
2025-04-27 22:59:23 +08:00
0ceaa5a583 chore(deps): update dependency @intlify/unplugin-vue-i18n to ^6.0.8
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m50s
/ lint-build-and-check (push) Successful in 5m18s
/ surge (push) Successful in 3m9s
/ playwright (push) Successful in 1m46s
/ cleanup_surge (push) Successful in 15s
2025-04-27 18:21:19 +08:00
c4a50b3642 临时屏幕.png
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 2m48s
/ surge (push) Successful in 2m44s
/ playwright (push) Failing after 1m48s
/ cleanup_surge (push) Has been skipped
/ lint-build-and-check (push) Successful in 5m26s
2025-04-27 18:08:35 +08:00
12bbc843fb PinPuYi.vue
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m48s
/ surge (push) Successful in 2m49s
/ playwright (push) Successful in 1m4s
/ cleanup_surge (push) Successful in 15s
/ lint-build-and-check (push) Successful in 5m23s
2025-04-27 17:26:55 +08:00
e2c2cb165a PinPuYi.vue
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m54s
/ surge (push) Successful in 2m49s
/ playwright (push) Successful in 1m2s
/ cleanup_surge (push) Successful in 15s
/ lint-build-and-check (push) Successful in 5m19s
2025-04-27 17:20:41 +08:00
c6f27856ef refactor(ci): split surge cleanup into separate job
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m50s
/ surge (push) Successful in 3m25s
/ cleanup_surge (push) Successful in 21s
/ playwright (push) Successful in 1m2s
/ lint-build-and-check (push) Successful in 5m20s
2025-04-27 14:10:56 +08:00
608cd08ca5 chore(deps): update types
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m51s
/ surge (push) Successful in 2m53s
/ playwright (push) Successful in 1m13s
/ lint-build-and-check (push) Successful in 5m16s
2025-04-25 20:22:47 +08:00
6b6ddeb23b PinPuYi.vue
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m58s
/ surge (push) Successful in 2m51s
/ playwright (push) Successful in 1m11s
/ lint-build-and-check (push) Successful in 5m19s
2025-04-25 18:28:25 +08:00
1c73834dc8 PinPuYi.vue
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m24s
/ playwright (push) Successful in 1m23s
/ surge (push) Successful in 2m43s
/ lint-build-and-check (push) Successful in 5m25s
2025-04-25 16:49:26 +08:00
e10538baca Add Helvetica-Light-05 font files in TTF, WOFF, and WOFF2 formats
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m25s
/ surge (push) Successful in 2m49s
/ playwright (push) Successful in 1m24s
/ lint-build-and-check (push) Successful in 5m29s
2025-04-25 12:04:05 +08:00
e9c59a3634 PinPuYi.vue
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m53s
/ surge (push) Successful in 2m49s
/ playwright (push) Successful in 1m14s
/ lint-build-and-check (push) Successful in 5m16s
2025-04-24 19:08:05 +08:00
2d6831fcb0 style(PinPuYi.vue): adjust image styling for better responsiveness
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m59s
/ surge (push) Successful in 2m40s
/ playwright (push) Successful in 1m16s
/ lint-build-and-check (push) Successful in 5m58s
2025-04-24 17:51:46 +08:00
4164134a4e PinPuYi.vue
Some checks failed
/ playwright (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ surge (push) Has been cancelled
2025-04-24 17:50:59 +08:00
6c8529185a chore(vite.config): add unplugin-vue-router data loaders to optimizeDeps
Some checks failed
/ build-and-deploy-to-vercel (push) Successful in 2m56s
/ surge (push) Successful in 2m43s
/ playwright (push) Failing after 1m50s
/ lint-build-and-check (push) Successful in 5m20s
2025-04-24 17:32:07 +08:00
6a615bcc43 chore(gitattributes): add .spline file type as binary
Some checks failed
/ playwright (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ surge (push) Has been cancelled
2025-04-24 17:27:04 +08:00
09e727dad5 chore(deps): update dependency tdesign-icons-vue-next to ^0.3.6
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m15s
/ surge (push) Successful in 2m48s
/ playwright (push) Successful in 1m20s
/ lint-build-and-check (push) Successful in 5m21s
2025-04-24 10:39:43 +08:00
5a16b62008 chore(docs): add .gitattributes section to README and remove redundant content
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 2m54s
/ surge (push) Successful in 3m4s
/ playwright (push) Successful in 1m27s
/ lint-build-and-check (push) Successful in 5m26s
2025-04-24 10:29:35 +08:00
4d6380f141 chore(deps): update dependency eslint-plugin-perfectionist to ^4.12.2
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m52s
/ surge (push) Successful in 3m5s
/ playwright (push) Successful in 1m52s
/ lint-build-and-check (push) Successful in 5m35s
2025-04-24 07:34:15 +08:00
11acb951d4 chore(deps): update dependency three to ^0.176.0
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ playwright (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ surge (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
2025-04-23 18:15:02 +08:00
94472a4d8d chore(deps): update lint dependencies
Some checks failed
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m58s
/ lint-build-and-check (push) Successful in 5m28s
/ playwright (push) Failing after 1m45s
/ surge (push) Successful in 3m10s
2025-04-22 11:33:38 +08:00
74d4f87f4b chore(deps): update v0.x
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m15s
/ lint-build-and-check (push) Successful in 5m20s
/ surge (push) Successful in 4m34s
/ playwright (push) Successful in 1m51s
2025-04-22 09:35:50 +08:00
67cee3b845 chore(deps): update lint dependencies to ^0.16.7
Some checks failed
/ playwright (push) Has been cancelled
/ lint-build-and-check (push) Has been cancelled
/ build-and-deploy-to-vercel (push) Has been cancelled
/ surge (push) Has been cancelled
2025-04-22 09:35:13 +08:00
71b768b3a2 chore(deps): update devdependencies
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 2m58s
/ surge (push) Successful in 2m48s
/ playwright (push) Successful in 1m20s
/ lint-build-and-check (push) Successful in 5m19s
2025-04-22 08:42:06 +08:00
2cc080c579 chore(deps): update vite packages
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m23s
/ surge (push) Successful in 2m48s
/ playwright (push) Successful in 1m17s
/ lint-build-and-check (push) Successful in 5m14s
2025-04-21 13:40:13 +08:00
5354f942e6 chore(deps): update dependency @intlify/unplugin-vue-i18n to ^6.0.7
Some checks are pending
renovate/stability-days Updates have not met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m9s
/ lint-build-and-check (push) Successful in 5m17s
/ surge (push) Successful in 2m49s
/ playwright (push) Successful in 3m43s
2025-04-21 10:36:33 +08:00
e0445a2737 chore(deps): update playwright packages
Some checks failed
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m7s
/ lint-build-and-check (push) Successful in 5m16s
/ surge (push) Successful in 3m11s
/ playwright (push) Failing after 3m10s
2025-04-21 01:45:58 +08:00
8e9e4ca392 chore(deps): update dependency @types/node to ^22.14.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m0s
/ lint-build-and-check (push) Successful in 5m21s
/ surge (push) Successful in 2m51s
/ playwright (push) Successful in 1m22s
2025-04-20 23:25:18 +08:00
42 changed files with 7960 additions and 3073 deletions

1
.gitattributes vendored
View File

@ -39,6 +39,7 @@ commit-msg text eol=lf
*.woff2 binary
*.eot binary
*.otf binary
*.spline binary
# Add more binary...

21
.gitattributes.MD Normal file
View File

@ -0,0 +1,21 @@
### .gitattributes
如果你先推送了一个.jpg文件然后再推送包含.gitattributes文件的更新Git不会自动重新处理之前的.jpg文件的属性。为使.gitattributes中的新规则生效你可以通过以下步骤重新应用设置
```bash
1. 删除本地缓存的.jpg文件git rm --cached <file>.jpg
2. 重新添加该文件git add <file>.jpg
3. 再次提交并推送git commit -m "Apply .gitattributes changes" && git push
```
这样Git将按照.gitattributes中的新规则处理该文件。
要验证.gitattributes文件中的二进制配置是否生效可以使用以下方法
```bash
1. 推送后验证:先按照之前步骤重新添加并推送.jpg文件。
2. 查看差异diff执行 git diff检查文件是否有文本形式的改动。如果是二进制文件Git不会显示具体内容的差异。
3. Git日志验证执行 git log -p <file>.jpg 查看提交的改动记录,确认文件未受行尾或编码处理的影响。
```
如果以上测试显示该文件未发生不必要的改动,说明.gitattributes配置已生效。

View File

@ -1,3 +0,0 @@
```bash
ln -s .github/copilot-instructions.md .roorules
```

View File

@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: 🛠️ 设置Node环境
uses: yanhao98/composite-actions/setup-node-environment@4470aa136359d05ae3b086d37cfaa33305448a5b
uses: yanhao98/composite-actions/setup-node-environment@3bf07469124a5a7b9a06b6d07be36a116c5aa49e
- name: 🔍 静态代码分析
run: pnpm run lint
- name: 📦 构建项目

View File

@ -7,6 +7,13 @@ env:
on:
push:
workflow_dispatch:
inputs:
run_cleanup:
description: '是否运行 Surge 清理 Job'
required: false
type: boolean
default: true
jobs:
surge:
@ -15,7 +22,7 @@ jobs:
url: ${{ steps.surge_deploy.outputs.url }}
steps:
- name: ⚙️ 设置 Node 环境
uses: yanhao98/composite-actions/setup-node-environment@4470aa136359d05ae3b086d37cfaa33305448a5b
uses: yanhao98/composite-actions/setup-node-environment@3bf07469124a5a7b9a06b6d07be36a116c5aa49e
- name: 🔨 构建项目
run: pnpm run build-only
env:
@ -23,21 +30,27 @@ jobs:
- name: 🚀 部署到 Surge
id: surge_deploy
if: ${{ github.actor != 'nektos/act' }} # https://nektosact.com/usage/index.html#skipping-steps
uses: yanhao98/composite-actions/deploy-dist-to-surge@4470aa136359d05ae3b086d37cfaa33305448a5b
uses: yanhao98/composite-actions/deploy-dist-to-surge@3bf07469124a5a7b9a06b6d07be36a116c5aa49e
playwright:
needs: surge
runs-on: ubuntu-latest
container: mcr.microsoft.com/playwright:v1.51.1-noble
container: mcr.microsoft.com/playwright:v1.53.2-noble
steps:
- name: ⚙️ 设置 Node 环境
uses: yanhao98/composite-actions/setup-node-environment@4470aa136359d05ae3b086d37cfaa33305448a5b
uses: yanhao98/composite-actions/setup-node-environment@3bf07469124a5a7b9a06b6d07be36a116c5aa49e
# - name: 📥 安装 Playwright 浏览器
# run: pnpm exec playwright install --with-deps
- name: ▶️ 运行 Playwright 测试
run: npx playwright test
env:
BASE_URL: ${{ needs.surge.outputs.url }}
cleanup_surge:
runs-on: ubuntu-latest
needs: [surge, playwright]
if: github.event_name == 'push' || github.event.inputs.run_cleanup == true
steps:
- name: 🧹 清理 Surge 部署
run: npx surge teardown ${{ needs.surge.outputs.url }} --token ${{ env.SURGE_TOKEN }}
env:

View File

@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: ⚙️ 设置 Node 环境
uses: yanhao98/composite-actions/setup-node-environment@4470aa136359d05ae3b086d37cfaa33305448a5b
uses: yanhao98/composite-actions/setup-node-environment@3bf07469124a5a7b9a06b6d07be36a116c5aa49e
- name: 📥 拉取 Vercel 环境信息
run: pnpm dlx vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}

View File

@ -1,5 +1,6 @@
# 此钩子在 pre-commit 钩子成功完成后,用于检查提交消息。
echo "📝 [Commit-msg] 正在运行 commit-msg 钩子..."
# 在这里添加你的 commit message 验证逻辑,例如 commitlint
echo "当前提交的文件是:$1"
# npx --no -- commitlint --edit "$1"
pnpm exec commitlint --edit $1
echo "✅ [Commit-msg] commit-msg 钩子完成!"

2
.npmrc
View File

@ -5,7 +5,7 @@ registry=https://registry.npmjs.org/
# registry=https://nexus.oo1.dev/repository/npm/
# https://pnpm.io/zh/npmrc#node-mirrorltreleasedir
use-node-version=22.14.0
use-node-version=22.15.0
node-mirror:release=https://npmmirror.com/mirrors/node/ # pnpm config set node-mirror:release=https://npmmirror.com/mirrors/node/
node-mirror:rc=https://npmmirror.com/mirrors/node-rc/
node-mirror:nightly=https://npmmirror.com/mirrors/node-nightly/

View File

@ -27,8 +27,7 @@
"source.fixAll.eslint": "never",
"source.fixAll.stylelint": "never",
"source.fixAll.oxc": "never",
"source.organizeImports": "never",
"source.fixAll": "never"
"source.organizeImports": "never"
},
"editor.formatOnSave": false,
"oxc.enable": true,

View File

@ -15,33 +15,9 @@ pnpm install --registry=https://nexus.oo1.dev/repository/npm
pnpm run dev
```
## Tips
### .gitattributes
如果你先推送了一个.jpg文件然后再推送包含.gitattributes文件的更新Git不会自动重新处理之前的.jpg文件的属性。为使.gitattributes中的新规则生效你可以通过以下步骤重新应用设置
```bash
1. 删除本地缓存的.jpg文件git rm --cached <file>.jpg
2. 重新添加该文件git add <file>.jpg
3. 再次提交并推送git commit -m "Apply .gitattributes changes" && git push
```
这样Git将按照.gitattributes中的新规则处理该文件。
要验证.gitattributes文件中的二进制配置是否生效可以使用以下方法
```bash
1. 推送后验证:先按照之前步骤重新添加并推送.jpg文件。
2. 查看差异diff执行 git diff检查文件是否有文本形式的改动。如果是二进制文件Git不会显示具体内容的差异。
3. Git日志验证执行 git log -p <file>.jpg 查看提交的改动记录,确认文件未受行尾或编码处理的影响。
```
如果以上测试显示该文件未发生不必要的改动,说明.gitattributes配置已生效。
## Links
- https://github.com/hyoban-template/shadcn-vue-unocss-starter$0
- https://github.com/hyoban-template/shadcn-vue-unocss-starter
- [Performance API优化页面性能](https://juejin.cn/post/7238779568478552122)
- [vitepress-theme-demoblock](https://www.npmjs.com/package/vitepress-theme-demoblock)
- [Vite PWA](https://vite-pwa-org-zh.netlify.app/guide/)
@ -53,10 +29,12 @@ pnpm run dev
---
- [如何建立一个最小重现](https://antfu.me/posts/why-reproductions-are-required-zh#如何建立一个最小重现)
- https://biomejs.dev/zh-cn/internals/language-support/
- https://github.dev/antfu-collective/vitesse/
- [Vue3 入门指南与实战案例](https://vue3.chengpeiquan.com/)
- [如何建立一个最小重现](https://antfu.me/posts/why-reproductions-are-required-zh#如何建立一个最小重现)
---
- [primevue-scopedtokens](https://primevue.org/theming/styled/#scopedtokens)
+ https://www.npmjs.com/package/npkill

9
commitlint.config.ts Normal file
View File

@ -0,0 +1,9 @@
import type { UserConfig } from '@commitlint/types';
const Configuration: UserConfig = {
extends: ['@commitlint/config-conventional'],
formatter: '@commitlint/format',
};
export default Configuration;

View File

@ -84,6 +84,8 @@ export default defineConfigWithVueTs(
'import-x/newline-after-import': 'error',
'import-x/first': 'error',
'import-x/no-named-as-default': 'off',
'import-x/no-duplicates': 'off',
'import-x/named': 'off',
},
},
// endregion <<< eslint-plugin-import-x <<<
@ -99,6 +101,8 @@ export default defineConfigWithVueTs(
'perfectionist/sort-imports': ['error'],
'perfectionist/sort-modules': 'off',
'perfectionist/sort-object-types': 'off',
'perfectionist/sort-enums': 'off',
'perfectionist/sort-union-types': 'off',
},
},
// endregion <<< eslint-plugin-perfectionist <<<

View File

@ -1,5 +1,5 @@
{
"packageManager": "pnpm@10.8.0",
"packageManager": "pnpm@10.12.4",
"name": "vue-ts-example",
"version": "0.0.0",
"private": true,
@ -44,119 +44,121 @@
}
},
"dependencies": {
"@alova/adapter-axios": "^2.0.13",
"@alova/adapter-axios": "^2.0.16",
"@formkit/auto-animate": "^0.8.2",
"@intlify/unplugin-vue-i18n": "^6.0.6",
"@pinia/colada": "^0.14.2",
"@primeuix/themes": "^1.0.3",
"@splinetool/runtime": "^1.9.82",
"@intlify/unplugin-vue-i18n": "^6.0.8",
"@pinia/colada": "^0.17.1",
"@primeuix/themes": "^1.2.1",
"@splinetool/runtime": "^1.10.19",
"@types/p5": "^1.7.6",
"@types/sortablejs": "^1.15.8",
"@unhead/vue": "^2.0.5",
"@unhead/vue": "^2.0.11",
"@vant/use": "^1.6.0",
"@vueuse/core": "^13.1.0",
"alova": "^3.2.10",
"@vueuse/core": "^13.4.0",
"alova": "^3.3.4",
"ant-design-vue": "~4.2.6",
"axios": "^1.8.4",
"cesium": "^1.128.0",
"axios": "^1.10.0",
"cesium": "^1.131.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"consola": "^3.4.2",
"dayjs": "^1.11.13",
"deep-freeze-es6": "^4.0.0",
"deep-freeze-es6": "^4.0.1",
"jsencrypt": "^3.3.2",
"lucide-vue-next": "^0.487.0",
"lucide-vue-next": "^0.525.0",
"mitt": "^3.0.1",
"nprogress": "^0.2.0",
"p5": "^1.11.3",
"p5": "^2.0.3",
"page-stack-vue3": "^2.5.6",
"pinia": "^3.0.1",
"pinia-plugin-persistedstate": "^4.2.0",
"pinia": "^3.0.3",
"pinia-plugin-persistedstate": "^4.4.1",
"plotly.js-dist-min": "^3.0.1",
"primeicons": "^7.0.0",
"primelocale": "^2.1.2",
"primevue": "^4.3.3",
"radash": "^12.1.0",
"primelocale": "^2.1.4",
"primevue": "^4.3.6",
"radash": "^12.1.1",
"radix-vue": "^1.9.17",
"reka-ui": "^2.2.0",
"reka-ui": "^2.3.1",
"satellite.js": "^6.0.0",
"sortablejs": "^1.15.6",
"tailwind-merge": "^3.2.0",
"tdesign-icons-vue-next": "^0.3.5",
"three": "^0.175.0",
"tailwind-merge": "^3.3.1",
"tdesign-icons-vue-next": "^0.3.6",
"three": "^0.178.0",
"ts-enum-util": "^4.1.0",
"utils4u": "^4.2.3",
"vant": "^4.9.18",
"vue": "^3.5.13",
"vant": "^4.9.20",
"vue": "^3.5.17",
"vue-data-ui": "^2.12.7",
"vue-draggable-plus": "^0.6.0",
"vue-i18n": "^11.1.3",
"vue-i18n": "^11.1.7",
"vue-page-stack": "^3.2.0",
"vue-router": "^4.5.0"
"vue-router": "^4.5.1"
},
"devDependencies": {
"@eslint/compat": "^1.2.8",
"@faker-js/faker": "^9.6.0",
"@iconify-json/carbon": "^1.2.8",
"@commitlint/cli": "^19.8.1",
"@commitlint/config-conventional": "^19.8.1",
"@eslint/compat": "^1.3.1",
"@faker-js/faker": "^9.9.0",
"@iconify-json/carbon": "^1.2.10",
"@iconify-json/logos": "^1.2.4",
"@iconify-json/mdi": "^1.2.3",
"@iconify/utils": "^2.3.0",
"@playwright/test": "^1.51.1",
"@primevue/auto-import-resolver": "^4.3.3",
"@tsconfig/node22": "^22.0.1",
"@playwright/test": "^1.53.2",
"@primevue/auto-import-resolver": "^4.3.6",
"@tsconfig/node22": "^22.0.2",
"@types/archiver": "^6.0.3",
"@types/mockjs": "^1.0.10",
"@types/node": "^22.14.0",
"@types/node": "^22.16.0",
"@types/nprogress": "^0.2.3",
"@types/plotly.js-dist-min": "^2.3.4",
"@types/three": "^0.175.0",
"@types/three": "^0.178.0",
"@vant/auto-import-resolver": "^1.3.0",
"@vitejs/plugin-vue": "^5.2.3",
"@vitejs/plugin-vue-jsx": "^4.1.2",
"@vitest/eslint-plugin": "^1.1.40",
"@vitejs/plugin-vue": "^6.0.0",
"@vitejs/plugin-vue-jsx": "^5.0.1",
"@vitest/eslint-plugin": "^1.3.4",
"@vue/eslint-config-prettier": "^10.2.0",
"@vue/eslint-config-typescript": "^14.5.0",
"@vue/eslint-config-typescript": "^14.5.1",
"@vue/test-utils": "^2.4.6",
"@vue/tsconfig": "^0.7.0",
"archiver": "^7.0.1",
"depcheck": "^1.4.7",
"eruda": "^3.4.1",
"eslint": "^9.24.0",
"eslint-plugin-import-x": "^4.10.2",
"eslint-plugin-oxlint": "^0.16.6",
"eslint-plugin-perfectionist": "^4.11.0",
"eslint-plugin-unicorn": "^58.0.0",
"eslint-plugin-vue": "^10.0.0",
"eruda": "^3.4.3",
"eslint": "^9.30.1",
"eslint-plugin-import-x": "^4.16.1",
"eslint-plugin-oxlint": "^1.5.0",
"eslint-plugin-perfectionist": "^4.15.0",
"eslint-plugin-unicorn": "^59.0.1",
"eslint-plugin-vue": "^10.2.0",
"husky": "^9.1.7",
"less": "^4.3.0",
"lint-staged": "^15.5.0",
"lint-staged": "^16.1.2",
"mockjs": "^1.1.0",
"npm-run-all2": "^7.0.2",
"oxlint": "^0.16.6",
"prettier": "3.5.3",
"sass-embedded": "^1.86.3",
"terser": "^5.39.0",
"npm-run-all2": "^8.0.4",
"oxlint": "^1.5.0",
"prettier": "3.6.2",
"typescript": "~5.8.3",
"unocss": "66.1.0-beta.10",
"unocss-preset-animations": "^1.1.1",
"unocss": "66.3.2",
"unocss-preset-animations": "^1.2.1",
"unocss-preset-chinese": "^0.3.3",
"unocss-preset-shadcn": "^0.5.0",
"unplugin-auto-import": "^19.1.2",
"unplugin-auto-import": "^19.3.0",
"unplugin-icons": "^22.1.0",
"unplugin-vue-components": "^28.5.0",
"unplugin-vue-components": "^28.8.0",
"unplugin-vue-macros": "^2.14.5",
"unplugin-vue-markdown": "^28.3.1",
"unplugin-vue-router": "^0.12.0",
"vite": "^6.2.6",
"vite-plugin-checker": "^0.9.1",
"unplugin-vue-markdown": "^29.1.0",
"unplugin-vue-router": "^0.14.0",
"vite": "^7.0.0",
"vite-plugin-checker": "^0.9.3",
"vite-plugin-fake-server": "^2.2.0",
"vite-plugin-purgecss-updated-v5": "^1.2.4",
"vite-plugin-image-tools": "^2.0.2",
"vite-plugin-purgecss-updated-v5": "^1.2.6",
"vite-plugin-singlefile": "^2.2.0",
"vite-plugin-static-copy": "^2.3.1",
"vite-plugin-vue-devtools": "^7.7.2",
"vite-plugin-static-copy": "^3.1.0",
"vite-plugin-vue-devtools": "^7.7.7",
"vite-plugin-vue-layouts": "^0.11.0",
"vite-plugin-vue-meta-layouts": "^0.5.1",
"vite-plugin-webfont-dl": "^3.10.4",
"vue-component-type-helpers": "^2.2.8",
"vue-tsc": "^2.2.8"
"vite-plugin-webfont-dl": "^3.10.5",
"vue-component-type-helpers": "^3.0.0",
"vue-tsc": "^3.0.0"
}
}

6570
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,58 @@
export enum E_选项卡菜单 {
= '幅度单位列表',
= '幅度菜单列表',
= '跨度菜单列表',
= '频率单位列表',
= '频率菜单列表',
}
export enum E_幅度菜单列表的项目 {
RefLevel = 'Ref Level',
// Attenuation = 'Attenuation', // 如果衰减也需要类似交互,则取消注释
}
export enum E_幅度单位 {
dBm = 'dBm',
mV = 'mV',
uA = 'µA', // 使用 uA 表示微安
uV = 'µV', // 使用 uV 表示微伏
}
export enum E_跨度菜单列表的项目 {
FullSpan = 'Full Span',
LastSpan = 'Last Span',
ZeroSpan = 'Zero Span',
}
/* 值是在屏幕上显示的值。 */
export enum E_选项卡菜单Freq菜单列表的项目 {
CenterFreq = 'Center',
StartFreq = 'Start',
StopFreq = 'Stop',
// CFStep = 'CFStep',
// FreqOffset = 'FreqOffset',
// SingnalTrack = 'SingnalTrack',
// ScaleType = 'ScaleType',
}
export enum E_Freq单位 {
GHz = 'GHz',
Hz = 'Hz',
kHz = 'kHz',
MHz = 'MHz',
}
export enum E_数字键盘按键 {
Dot = '.',
Num0 = 0,
Num1 = 1,
Num2 = 2,
Num3 = 3,
Num4 = 4,
Num5 = 5,
Num6 = 6,
Num7 = 7,
Num8 = 8,
Num9 = 9,
PlusMinus = '+/-',
}

View File

@ -0,0 +1,13 @@
@font-face {
font-family: 'Helvetica Custom';
font-style: normal;
font-weight: 400; /* 400 通常代表 'normal' 或 'regular' */
src: url('fonts/Helvetica-Light-05.eot');
src:
url('fonts/Helvetica-Light-05.eot?#iefix') format('embedded-opentype'),
url('fonts/Helvetica-Light-05.woff2') format('woff2'),
url('fonts/Helvetica-Light-05.woff') format('woff'),
url('fonts/Helvetica-Light-05.ttf') format('truetype'),
url('fonts/Helvetica-Light-05.svg#Helvetica') format('svg');
font-display: swap; /* 推荐 */
}

View File

@ -0,0 +1,805 @@
<!-- 频谱仪 -->
<script setup lang="ts">
import { $enum } from 'ts-enum-util';
import {
E_Freq单位,
E_幅度单位,
E_幅度菜单列表的项目,
E_数字键盘按键,
E_跨度菜单列表的项目,
E_选项卡菜单,
E_选项卡菜单Freq菜单列表的项目,
} from './CONST';
import 设备照片 from './pin-pu-yi-bg.png';
const state = reactive({
选项卡当前显示: E_选项卡菜单.频率菜单列表,
频谱仪状态: {
频率输入状态: {
选中的频率菜单列表的项目: null as E_选项卡菜单Freq菜单列表的项目 | null,
输入的值临时输入字符串: null as null | string, // 用于暂存用户输入
},
幅度输入状态: {
选中的幅度菜单列表的项目: null as E_幅度菜单列表的项目 | null,
输入的值临时输入字符串: null as null | string, // 用于暂存用户输入
refLevel: {
value: 0,
unit: E_幅度单位.dBm,
},
// attenuation: { value: 0, unit: E_幅度单位.dB }, // 如果需要衰减值
},
center: {
value: 0,
unit: E_Freq单位.Hz,
},
start: {
value: 0,
unit: E_Freq单位.Hz,
},
stop: {
value: 0,
unit: E_Freq单位.Hz,
},
span: {
currentSpan: {
start: 0,
stop: 0,
unit: E_Freq单位.Hz,
},
lastSpan: {
start: 0,
stop: 0,
unit: E_Freq单位.Hz,
},
fullSpan: {
start: 0,
stop: 3,
unit: E_Freq单位.GHz,
},
zeroSpan: false,
},
},
});
const 选项卡标题 = computed(() =>
$enum.mapValue(state.选项卡当前显示).with({
[E_选项卡菜单.频率菜单列表]: 'Freq/Channel',
[E_选项卡菜单.频率单位列表]: '',
[E_选项卡菜单.跨度菜单列表]: 'Span',
[E_选项卡菜单.幅度菜单列表]: 'Amplitude',
[E_选项卡菜单.幅度单位列表]: '',
}),
);
function 执行点击屏幕右边的按钮(按钮序号: number) {
console.group('🔘 点击屏幕右边的按钮', {
按钮序号,
选项卡当前显示: state.选项卡当前显示,
});
$enum.visitValue(state.选项卡当前显示).with({
[E_选项卡菜单.频率菜单列表]: () => {
switch (按钮序号) {
case 1: {
state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目 = E_选项卡菜单Freq菜单列表的项目.CenterFreq;
console.debug('设置 Freq 输入状态为 CenterFreq');
break;
}
case 2: {
state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目 = E_选项卡菜单Freq菜单列表的项目.StartFreq;
console.debug('设置 Freq 输入状态为 StartFreq');
break;
}
case 3: {
state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目 = E_选项卡菜单Freq菜单列表的项目.StopFreq;
console.debug('设置 Freq 输入状态为 StopFreq');
break;
}
default: {
console.debug('频率菜单列表 - 这个按键还没有实现');
break;
}
}
},
[E_选项卡菜单.频率单位列表]: () => {
let selectedUnit: E_Freq单位 | null = null;
switch (按钮序号) {
case 1: {
selectedUnit = E_Freq单位.GHz;
break;
}
case 2: {
selectedUnit = E_Freq单位.MHz;
break;
}
case 3: {
selectedUnit = E_Freq单位.kHz;
break;
}
case 4: {
selectedUnit = E_Freq单位.Hz;
break;
}
default: {
console.warn('无效的频率单位按钮序号:', 按钮序号);
console.groupEnd();
return;
}
}
const tempInputString = state.频谱仪状态.频率输入状态.输入的值临时输入字符串;
const selectedFreqItem = state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目;
// 必须有临时输入值和选中的 Freq 项目才能确认
if (!tempInputString || !selectedFreqItem) {
console.warn('频率输入未完成或未选择项目,无法确认单位。');
console.groupEnd();
return;
}
const inputValue = Number.parseFloat(tempInputString);
// 校验解析结果
if (Number.isNaN(inputValue)) {
console.warn('无法将临时输入解析为有效数字 (频率):', tempInputString);
console.groupEnd();
return;
}
console.debug('确认频率单位:', selectedUnit, '值为:', inputValue);
switch (selectedFreqItem) {
case E_选项卡菜单Freq菜单列表的项目.CenterFreq: {
state.频谱仪状态.center.value = inputValue;
state.频谱仪状态.center.unit = selectedUnit;
console.debug('更新 CenterFreq:', state.频谱仪状态.center);
break;
}
case E_选项卡菜单Freq菜单列表的项目.StartFreq: {
state.频谱仪状态.start.value = inputValue;
state.频谱仪状态.start.unit = selectedUnit;
console.debug('更新 StartFreq:', state.频谱仪状态.start);
break;
}
case E_选项卡菜单Freq菜单列表的项目.StopFreq: {
state.频谱仪状态.stop.value = inputValue;
state.频谱仪状态.stop.unit = selectedUnit;
console.debug('更新 StopFreq:', state.频谱仪状态.stop);
break;
}
}
state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目 = null;
state.频谱仪状态.频率输入状态.输入的值临时输入字符串 = null;
state.选项卡当前显示 = E_选项卡菜单.频率菜单列表;
console.debug('频率输入状态已重置, 切换回频率菜单列表');
},
[E_选项卡菜单.跨度菜单列表]: () => {
switch (按钮序号) {
case 1: {
// Full Span
state.频谱仪状态.span.lastSpan.start = state.频谱仪状态.start.value;
state.频谱仪状态.span.lastSpan.stop = state.频谱仪状态.stop.value;
state.频谱仪状态.span.lastSpan.unit = state.频谱仪状态.stop.unit;
state.频谱仪状态.start.value = state.频谱仪状态.span.fullSpan.start;
state.频谱仪状态.start.unit = state.频谱仪状态.span.fullSpan.unit;
state.频谱仪状态.stop.value = state.频谱仪状态.span.fullSpan.stop;
state.频谱仪状态.stop.unit = state.频谱仪状态.span.fullSpan.unit;
state.频谱仪状态.center.value = (state.频谱仪状态.start.value + state.频谱仪状态.stop.value) / 2;
state.频谱仪状态.center.unit = state.频谱仪状态.span.fullSpan.unit;
state.频谱仪状态.span.zeroSpan = false;
console.debug('设置为 Full Span');
break;
}
case 2: {
// Zero Span
state.频谱仪状态.span.lastSpan.start = state.频谱仪状态.start.value;
state.频谱仪状态.span.lastSpan.stop = state.频谱仪状态.stop.value;
state.频谱仪状态.span.lastSpan.unit = state.频谱仪状态.stop.unit;
state.频谱仪状态.start.value = state.频谱仪状态.center.value;
state.频谱仪状态.start.unit = state.频谱仪状态.center.unit;
state.频谱仪状态.stop.value = state.频谱仪状态.center.value;
state.频谱仪状态.stop.unit = state.频谱仪状态.center.unit;
state.频谱仪状态.span.zeroSpan = true;
console.debug('设置为 Zero Span');
break;
}
case 3: {
// Last Span
state.频谱仪状态.start.value = state.频谱仪状态.span.lastSpan.start;
state.频谱仪状态.start.unit = state.频谱仪状态.span.lastSpan.unit;
state.频谱仪状态.stop.value = state.频谱仪状态.span.lastSpan.stop;
state.频谱仪状态.stop.unit = state.频谱仪状态.span.lastSpan.unit;
state.频谱仪状态.center.value = (state.频谱仪状态.start.value + state.频谱仪状态.stop.value) / 2;
state.频谱仪状态.center.unit = state.频谱仪状态.span.lastSpan.unit;
state.频谱仪状态.span.zeroSpan = false;
console.debug('恢复到 Last Span');
break;
}
default: {
console.debug('跨度菜单列表 - 这个按键还没有实现');
break;
}
}
},
[E_选项卡菜单.幅度菜单列表]: () => {
switch (按钮序号) {
case 1: {
// Ref Level
state.频谱仪状态.幅度输入状态.选中的幅度菜单列表的项目 = E_幅度菜单列表的项目.RefLevel;
state.频谱仪状态.幅度输入状态.输入的值临时输入字符串 = null;
console.debug('设置 幅度输入状态为 RefLevel');
break;
}
case 2: {
// Attenuation
console.debug('点击了 幅度菜单列表 - Attenuation (功能待实现)');
break;
}
default: {
console.debug('幅度菜单列表 - 这个按键还没有实现');
break;
}
}
},
[E_选项卡菜单.幅度单位列表]: () => {
let selectedUnit: E_幅度单位 | null = null;
switch (按钮序号) {
case 1: {
selectedUnit = E_幅度单位.dBm;
break;
}
case 2: {
selectedUnit = E_幅度单位.mV;
break;
}
case 3: {
selectedUnit = E_幅度单位.uV;
break;
}
case 4: {
selectedUnit = E_幅度单位.uA;
break;
}
default: {
console.warn('无效的幅度单位按钮序号:', 按钮序号);
console.groupEnd();
return;
}
}
const tempInputString = state.频谱仪状态.幅度输入状态.输入的值临时输入字符串;
const selectedAmpItem = state.频谱仪状态.幅度输入状态.选中的幅度菜单列表的项目;
if (!tempInputString || !selectedAmpItem) {
console.warn('幅度输入未完成或未选择项目,无法确认单位。');
console.groupEnd();
return;
}
const inputValue = Number.parseFloat(tempInputString);
if (Number.isNaN(inputValue)) {
console.warn('无法将临时输入解析为有效数字 (幅度):', tempInputString);
console.groupEnd();
return;
}
console.debug('确认幅度单位:', selectedUnit, '值为:', inputValue);
if (selectedAmpItem === E_幅度菜单列表的项目.RefLevel) {
state.频谱仪状态.幅度输入状态.refLevel.value = inputValue;
state.频谱仪状态.幅度输入状态.refLevel.unit = selectedUnit;
console.debug('更新 RefLevel:', state.频谱仪状态.幅度输入状态.refLevel);
}
state.频谱仪状态.幅度输入状态.选中的幅度菜单列表的项目 = null;
state.频谱仪状态.幅度输入状态.输入的值临时输入字符串 = null;
state.选项卡当前显示 = E_选项卡菜单.幅度菜单列表;
console.debug('幅度输入状态已重置, 切换回幅度菜单列表');
},
});
console.groupEnd();
}
function 执行点击数字按钮(按钮值: E_数字键盘按键) {
console.group('🔢 点击数字按钮', { 按钮值 });
const isFreqInputActive = !!state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目;
const isAmpInputActive = !!state.频谱仪状态.幅度输入状态.选中的幅度菜单列表的项目;
if (!isFreqInputActive && !isAmpInputActive) {
console.warn('请先选择一个频率或幅度菜单项');
console.groupEnd();
return;
}
let 当前临时输入: string;
let 更新临时输入回调: (newVal: null | string) => void;
let 后续操作菜单: E_选项卡菜单;
if (isFreqInputActive) {
当前临时输入 = state.频谱仪状态.频率输入状态.输入的值临时输入字符串 ?? '';
更新临时输入回调 = (newVal) => {
state.频谱仪状态.频率输入状态.输入的值临时输入字符串 = newVal;
};
后续操作菜单 = E_选项卡菜单.频率单位列表;
} else {
// isAmpInputActive
当前临时输入 = state.频谱仪状态.幅度输入状态.输入的值临时输入字符串 ?? '';
更新临时输入回调 = (newVal) => {
state.频谱仪状态.幅度输入状态.输入的值临时输入字符串 = newVal;
};
后续操作菜单 = E_选项卡菜单.幅度单位列表;
}
switch (按钮值) {
case E_数字键盘按键.Dot: {
// 只有在当前临时输入不包含小数点时才允许添加
if (当前临时输入.includes('.')) {
console.debug('已存在小数点,忽略本次输入');
} else {
// 如果当前为空,则为 '0.',否则追加 '.'
更新临时输入回调(当前临时输入 ? `${当前临时输入}.` : '0.');
console.debug(
'输入小数点,临时字符串:',
isFreqInputActive
? state.频谱仪状态.频率输入状态.输入的值临时输入字符串
: state.频谱仪状态.幅度输入状态.输入的值临时输入字符串,
);
}
break;
}
case E_数字键盘按键.Num0:
case E_数字键盘按键.Num1:
case E_数字键盘按键.Num2:
case E_数字键盘按键.Num3:
case E_数字键盘按键.Num4:
case E_数字键盘按键.Num5:
case E_数字键盘按键.Num6:
case E_数字键盘按键.Num7:
case E_数字键盘按键.Num8:
case E_数字键盘按键.Num9: {
if (当前临时输入 === '0') {
更新临时输入回调(String(按钮值));
} else if (当前临时输入 === '-0') {
更新临时输入回调(`-${String(按钮值)}`);
} else {
更新临时输入回调(当前临时输入 + String(按钮值));
}
console.debug(
'输入数字,临时字符串:',
isFreqInputActive
? state.频谱仪状态.频率输入状态.输入的值临时输入字符串
: state.频谱仪状态.幅度输入状态.输入的值临时输入字符串,
);
break;
}
case E_数字键盘按键.PlusMinus: {
if (当前临时输入.startsWith('-')) {
更新临时输入回调(当前临时输入.slice(1));
} else if (当前临时输入 && 当前临时输入 !== '0' && 当前临时输入 !== '0.') {
更新临时输入回调(`-${当前临时输入}`);
} else if (当前临时输入 === '' || 当前临时输入 === '0' || 当前临时输入 === '0.') {
更新临时输入回调('-');
} else {
console.debug('无法切换正负号');
}
console.debug(
'切换正负号,临时字符串:',
isFreqInputActive
? state.频谱仪状态.频率输入状态.输入的值临时输入字符串
: state.频谱仪状态.幅度输入状态.输入的值临时输入字符串,
);
break;
}
default: {
console.warn('未知的数字键盘按键:', 按钮值);
}
}
state.选项卡当前显示 = 后续操作菜单;
console.groupEnd();
}
const img_modules = import.meta.glob<{ default: string }>('./imgs/*.png', {
eager: true,
});
const 屏幕照片 = ref(img_modules['./imgs/屏幕_0.png']!.default);
watch(
() => state.频谱仪状态.center.value,
() => {
屏幕照片.value = img_modules['./imgs/屏幕_1.png']!.default;
},
);
watch(
() => state.频谱仪状态.start.value,
() => {
屏幕照片.value = img_modules['./imgs/屏幕_2.png']!.default;
},
);
watch(
() => state.频谱仪状态.stop.value,
() => {
屏幕照片.value = img_modules['./imgs/屏幕_3.png']!.default;
},
);
watchEffect(() => {
console.debug(`屏幕照片.value :>> `, 屏幕照片.value);
});
</script>
<template>
<!-- <pre
v-if="$__DEV__"
class="fixed bottom-10 right-10 top-10 z-[9999] overflow-auto overflow-y-auto bg-white p-[10px] text-[12px] text-black"
>{{ { 选项卡菜单7个: $enum(E_选项卡菜单).getValues(), ...state } }}</pre
> -->
<div class="wrp relative">
<img :src="设备照片" alt="频谱仪设备" />
<div
class="absolute left-[640px] top-[174px] flex w-[55px] flex-col gap-y-[4px] overflow-visible text-black"
data-box="屏幕右边的按钮"
>
<!-- 上下还有一个 ESC / RETURN -->
<ul class="flex h-[300px] flex-col justify-around gap-y-[4px] overflow-visible" data-box="屏幕右边按钮列表">
<template v-for="n in 7" :key="`按钮${n}`">
<li
class="lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-visible rounded-[2px] text-[12px]"
@click="执行点击屏幕右边的按钮(n)"
>
<button class="ppy-btn !h-full !w-full"></button>
</li>
</template>
</ul>
</div>
<div class="absolute left-[195px] top-[140px] h-[350px] w-[430px] bg-black" data-box="屏幕">
<img :src="屏幕照片" alt="频谱仪屏幕" class="absolute left-0 top-0 !h-[330px] !w-[340px]" />
<!-- -->
<!-- 屏幕左上角 Ref Level -->
<div class="absolute left-[5px] top-[20px] text-left text-[10px] text-white" data-box="屏幕左上角RefLevel">
<span>
Ref {{ state.频谱仪状态.幅度输入状态.refLevel.value }}
{{ state.频谱仪状态.幅度输入状态.refLevel.unit }}
</span>
</div>
<div class="absolute bottom-0 left-0 right-[85px] flex justify-between text-white" data-box="下面左Start 右Stop">
<div class="flex-1 text-left">
<span>Start </span>
<span>{{ state.频谱仪状态.start.value }}</span>
<span>{{ state.频谱仪状态.start.unit }}</span>
</div>
<div class="flex-1 text-right">
<span>Stop </span>
<span>{{ state.频谱仪状态.stop.value }}</span>
<span>{{ state.频谱仪状态.stop.unit }}</span>
</div>
</div>
<div
v-if="
state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目 ||
state.频谱仪状态.幅度输入状态.选中的幅度菜单列表的项目
"
class="lh-[1.2] absolute left-[40px] top-[140px] flex flex-col gap-y-[0px] bg-gray-500/100 text-white"
data-box="正在输入的值"
>
<!-- 标题:显示当前选中的输入项 -->
<div v-if="state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目">
{{ state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目 }}
</div>
<div v-else-if="state.频谱仪状态.幅度输入状态.选中的幅度菜单列表的项目">
{{ state.频谱仪状态.幅度输入状态.选中的幅度菜单列表的项目 }}
</div>
<!-- 值:优先显示临时输入字符串,如果为空,则显示已确认的值 -->
<div>
<template
v-if="
state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目 &&
state.频谱仪状态.频率输入状态.输入的值临时输入字符串 !== null
"
>
{{ state.频谱仪状态.频率输入状态.输入的值临时输入字符串 }}
</template>
<template
v-else-if="
state.频谱仪状态.幅度输入状态.选中的幅度菜单列表的项目 &&
state.频谱仪状态.幅度输入状态.输入的值临时输入字符串 !== null
"
>
{{ state.频谱仪状态.幅度输入状态.输入的值临时输入字符串 }}
</template>
<!-- 已确认的频率值 -->
<template
v-else-if="
state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目 === E_选项卡菜单Freq菜单列表的项目.CenterFreq
"
>
{{ state.频谱仪状态.center.value }}
{{ state.频谱仪状态.center.unit }}
</template>
<template
v-else-if="
state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目 === E_选项卡菜单Freq菜单列表的项目.StartFreq
"
>
{{ state.频谱仪状态.start.value }} {{ state.频谱仪状态.start.unit }}
</template>
<template
v-else-if="
state.频谱仪状态.频率输入状态.选中的频率菜单列表的项目 === E_选项卡菜单Freq菜单列表的项目.StopFreq
"
>
{{ state.频谱仪状态.stop.value }} {{ state.频谱仪状态.stop.unit }}
</template>
<!-- 已确认的幅度值 -->
<template
v-else-if="state.频谱仪状态.幅度输入状态.选中的幅度菜单列表的项目 === E_幅度菜单列表的项目.RefLevel"
>
{{ state.频谱仪状态.幅度输入状态.refLevel.value }}
{{ state.频谱仪状态.幅度输入状态.refLevel.unit }}
</template>
<template v-else>
0.000000000
<!-- 默认或回退显示 -->
</template>
</div>
</div>
<div
class="absolute bottom-[15px] right-0 top-0 flex w-[80px] flex-col gap-y-[4px] text-black"
data-box="屏幕右侧的选项卡"
>
<div class="menu-item lh-[30px] h-[30px] overflow-hidden bg-[#AFAFAF] text-center" data-box="菜单标题">
{{ 选项卡标题 }}
</div>
<ul
v-if="state.选项卡当前显示 === E_选项卡菜单.频率菜单列表"
class="flex h-[300px] flex-col justify-around gap-y-[4px]"
data-box="频率菜单列表"
>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>Center Freq</span>
{{ state.频谱仪状态.center.value }}
{{ state.频谱仪状态.center.unit }}
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>Start Freq</span>
{{ state.频谱仪状态.start.value }}
{{ state.频谱仪状态.start.unit }}
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>Stop Freq</span>
{{ state.频谱仪状态.stop.value }}
{{ state.频谱仪状态.stop.unit }}
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>#CF Step</span>
<span>0.0000 hz</span>
<span>X</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>#Freq Offset</span>
<span>0.0000 Hz</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>#Singnal Track</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>#Scale Type</span>
</li>
</ul>
<ul
v-if="state.选项卡当前显示 === E_选项卡菜单.频率单位列表"
class="flex flex-1 flex-col justify-around gap-y-[4px]"
data-box="FreqChannel单位列表"
>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>GHz</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>MHz</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>KHz</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>Hz</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
</ul>
<ul
v-if="state.选项卡当前显示 === E_选项卡菜单.跨度菜单列表"
class="flex h-[300px] flex-col justify-around gap-y-[4px]"
data-box="跨度菜单列表"
>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>{{ E_跨度菜单列表的项目.FullSpan }}</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>{{ E_跨度菜单列表的项目.ZeroSpan }}</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>{{ E_跨度菜单列表的项目.LastSpan }}</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
</ul>
<ul
v-if="state.选项卡当前显示 === E_选项卡菜单.幅度菜单列表"
class="flex h-[300px] flex-col justify-around gap-y-[4px]"
data-box="幅度菜单列表"
>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>Ref Level</span>
<span>
{{ state.频谱仪状态.幅度输入状态.refLevel.value }}
{{ state.频谱仪状态.幅度输入状态.refLevel.unit }}
</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>#Attenuation</span>
<!-- <span>TODO</span> -->
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
</ul>
<ul
v-if="state.选项卡当前显示 === E_选项卡菜单.幅度单位列表"
class="flex h-[300px] flex-col justify-around gap-y-[4px]"
data-box="幅度单位列表"
>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>{{ E_幅度单位.dBm }}</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>{{ E_幅度单位.mV }}</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>{{ E_幅度单位.uV }}</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]">
<span>{{ E_幅度单位.uA }}</span>
</li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
<li class="menu-item lh-[1.2] flex flex-1 flex-col gap-y-[0px] overflow-hidden bg-[#AFAFAF]"></li>
</ul>
</div>
</div>
<div class="ppy-btns absolute left-[768px] top-[120px] h-[415px] !overflow-visible" data-box="机器右边按键">
<!-- 左上角. 长的 -->
<div class="flex flex-col gap-y-[18px] !overflow-visible">
<button class="ppy-btn !w-[62px]" @click="state.选项卡当前显示 = E_选项卡菜单.频率菜单列表">
FREQ<br />Channel
</button>
<button class="ppy-btn !w-[62px]" @click="state.选项卡当前显示 = E_选项卡菜单.跨度菜单列表">
SPAN<br />X Scale
</button>
<button class="ppy-btn !w-[62px]" @click="state.选项卡当前显示 = E_选项卡菜单.幅度菜单列表">
AMPLITUDE<br />Y Scale
</button>
<button class="ppy-btn !w-[62px] opacity-0">#</button>
<button class="ppy-btn !w-[62px] opacity-0">#</button>
</div>
<div class="mt-[20px] grid grid-cols-3 gap-[16.5px] !overflow-visible" data-box="数字键盘区域">
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Num7)">7</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Num8)">8</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Num9)">9</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Num4)">4</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Num5)">5</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Num6)">6</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Num1)">1</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Num2)">2</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Num3)">3</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Num0)">0</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.Dot)">.</button>
<button class="ppy-btn" @click="执行点击数字按钮(E_数字键盘按键.PlusMinus)">+/-</button>
</div>
</div>
</div>
</template>
<style scoped>
@import url('./Helvetica.css');
.wrp {
font-family: 'Helvetica Custom';
}
/* .wrp * {
overflow: hidden;
} */
img[alt='频谱仪设备'] {
width: calc(2554px * 0.5);
max-width: fit-content;
height: calc(1626px * 0.5);
max-height: fit-content;
}
.ppy-btn {
display: flex; /* 使用 flex 居中文本 */
align-items: center;
justify-content: center;
width: 36px;
height: 30px;
padding-left: 2px;
overflow: hidden;
font-size: 10px;
line-height: 1.2;
color: #333; /* 深灰色文字 */
text-align: left;
text-decoration: none;
background-color: #e0e0e0; /* 按钮浅灰色背景 */
border: 1px solid green;
border: 1px solid #b0b0b0; /* 添加边框 */
border-radius: 4px;
box-shadow:
1px 1px 2px rgb(0 0 0 / 20%),
/* 轻微外阴影 */ -1px -1px 2px rgb(255 255 255 / 80%); /* 轻微外高光 */
transition: all 0.1s ease-in-out; /* 平滑过渡效果 */
/* width: 100%; */
/* 宽度占满 grid 单元格 */
/* height: 100%; */
/* 高度占满 grid 单元格 */
/* font-size: 20px; */
/* 调整字体大小 */
/* font-weight: bold; */
/* 字体加粗 */
/* border-radius: 4px; */
/* 按钮圆角 */
}
.ppy-btn:active {
background-color: #d5d5d5;
border-color: #a0a0a0;
box-shadow:
inset 1px 1px 3px rgb(0 0 0 / 30%),
inset -1px -1px 3px rgb(255 255 255 / 60%);
transform: scale(0.98);
}
.menu-item {
/* @apply bg-gray-200/50 p-[2px]; */
font-size: 12px;
/* border: 1px solid white; */
}
[alt='频谱仪设备'] {
opacity: 1;
transition: opacity 0.3s;
}
/* li,
.ppy-btns,
[data-box='屏幕'],
[data-box='菜单标题'] {
box-shadow: 0 0 0 1px rgba(255, 0, 0, 0.5);
} */
</style>

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 447 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 810 KiB

View File

@ -18,32 +18,32 @@ const readyPromise = new Promise<void>((resolve) => {
});
const 频谱瀑布图Layout = {
title: '频谱瀑布图',
title: { text: '频谱瀑布图' },
xaxis: {
title: '频率 (Hz)',
title: { text: '频率 (Hz)' },
// range: [0, 22_050],
showgrid: false,
tickformat: ',d', // 设置为带逗号的整数格式 (推荐,更易读)
},
yaxis: {
title: '时间步',
title: { text: '时间步' },
showgrid: false,
tickformat: ',d', // 设置为带逗号的整数格式 (推荐,更易读)
},
margin: { l: 60, r: 40, b: 40, t: 60 },
};
} satisfies Partial<import('plotly.js-dist-min').Layout>;
const 频谱图Layout = {
title: '频谱图',
title: { text: '频谱图' },
xaxis: {
title: '频率 (Hz)',
title: { text: '频率 (Hz)' },
// range: [0, 22_050],
showgrid: true,
gridcolor: '#eee',
tickformat: ',d', // 设置为带逗号的整数格式 (推荐,更易读)
},
yaxis: {
title: '幅度 (dB)',
title: { text: '幅度 (dB)' },
showgrid: true, // 显示网格线
gridcolor: '#eee',
tickformat: ',d', // 设置为带逗号的整数格式 (推荐,更易读)

View File

@ -1,7 +1,12 @@
import './styles';
import { LogLevels } from 'consola';
import App from './App.vue';
import { setupPlugins } from './plugins';
const autoInstallModules = import.meta.glob('./plugins/*.ts', { eager: true });
setupPlugins(createApp(App), autoInstallModules).mount('#app');
consola.level = LogLevels.verbose;

View File

@ -0,0 +1,3 @@
# 测试
这个文件是被 import 的

View File

@ -0,0 +1,11 @@
<script setup lang="ts">
import MD from './MDPageImportMD.md';
</script>
<template>
<div>
<MD />
</div>
</template>
<style scoped></style>

View File

@ -0,0 +1,13 @@
<!--
http://localhost:4730/Page/PinPuYi
-->
<script setup lang="ts">
definePage({ meta: { title: '频谱仪', hidden: !$__DEV__ } });
</script>
<template>
<template v-if="true">
<PinPuYi />
</template>
<template v-else> 🤡 </template>
</template>

View File

@ -0,0 +1,352 @@
<script setup lang="ts">
import { VueUiXy, type VueUiXyConfig, type VueUiXyDatasetItem } from 'vue-data-ui';
import 'vue-data-ui/style.css'; // If you are using multiple components, place styles import in your main
const config = computed<VueUiXyConfig>(() => {
return {
theme: undefined,
responsive: false,
customPalette: [],
useCssAnimation: true,
downsample: {
threshold: 500,
},
chart: {
fontFamily: 'inherit',
backgroundColor: '#FFFFFFff',
color: '#1A1A1Aff',
height: 600,
width: 1000,
zoom: {
show: true,
color: '#CCCCCCff',
highlightColor: '#4A4A4A',
fontSize: 14,
useResetSlot: false,
startIndex: null,
endIndex: null,
enableRangeHandles: true,
enableSelectionDrag: true,
minimap: {
show: true,
smooth: false,
selectedColor: '#1F77B4',
selectedColorOpacity: 0.2,
lineColor: '#1A1A1A',
selectionRadius: 2,
indicatorColor: '#1A1A1A',
verticalHandles: false,
},
},
padding: {
top: 36,
right: 24,
bottom: 48,
left: 48,
},
highlighter: {
color: '#1A1A1Aff',
opacity: 5,
useLine: false,
lineDasharray: 2,
lineWidth: 1,
},
highlightArea: {
show: false,
from: 0,
to: 0,
color: '#CCCCCCff',
opacity: 20,
caption: {
text: 'Caption',
fontSize: 20,
color: '#1A1A1Aff',
bold: false,
offsetY: 0,
width: 'auto',
padding: 3,
textAlign: 'center',
},
},
timeTag: {
show: false,
backgroundColor: '#e1e5e8ff',
color: '#1A1A1Aff',
fontSize: 12,
circleMarker: {
radius: 3,
color: '#1A1A1Aff',
},
},
grid: {
stroke: '#e1e5e8ff',
showVerticalLines: false,
showHorizontalLines: false,
position: 'middle',
frame: {
show: false,
stroke: '#E1E5E8ff',
strokeWidth: 2,
strokeLinecap: 'round',
strokeLinejoin: 'round',
strokeDasharray: 0,
},
labels: {
show: true,
color: '#1A1A1Aff',
fontSize: 16,
axis: {
yLabel: '',
yLabelOffsetX: 0,
xLabel: '',
xLabelOffsetY: 14,
fontSize: 12,
},
zeroLine: {
show: true,
},
xAxis: {
showBaseline: true,
},
yAxis: {
showBaseline: true,
commonScaleSteps: 10,
useIndividualScale: false,
stacked: false,
gap: 12,
labelWidth: 40,
formatter: null,
scaleMin: null,
scaleMax: null,
groupColor: '#1A1A1A',
scaleLabelOffsetX: 0,
scaleValueOffsetX: 0,
},
xAxisLabels: {
color: '#1A1A1Aff',
show: true,
values: [],
fontSize: 18,
showOnlyFirstAndLast: false,
showOnlyAtModulo: false,
modulo: 12,
yOffset: 8,
rotation: 0,
},
},
},
comments: {
show: true,
showInTooltip: true,
width: 200,
offsetX: 0,
offsetY: 0,
},
labels: {
fontSize: 16,
prefix: '',
suffix: '',
},
legend: {
color: '#1A1A1Aff',
show: true,
fontSize: 16,
},
title: {
text: 'Title',
color: '#1A1A1Aff',
fontSize: 20,
bold: true,
textAlign: 'center',
paddingLeft: 0,
paddingRight: 0,
subtitle: {
color: '#CCCCCCff',
text: '',
fontSize: 16,
bold: false,
},
show: true,
},
tooltip: {
show: true,
color: '#1A1A1Aff',
backgroundColor: '#FFFFFFff',
fontSize: 14,
customFormat: null,
borderRadius: 4,
borderColor: '#e1e5e8',
borderWidth: 1,
backgroundOpacity: 30,
position: 'center',
offsetY: 24,
showTimeLabel: true,
showValue: true,
showPercentage: false,
roundingValue: 0,
roundingPercentage: 0,
},
userOptions: {
show: true,
showOnChartHover: false,
keepStateOnChartLeave: true,
position: 'right',
buttons: {
tooltip: true,
pdf: true,
csv: true,
img: true,
table: true,
labels: true,
fullscreen: true,
sort: false,
stack: true,
animation: false,
annotator: true,
},
buttonTitles: {
open: 'Open options',
close: 'Close options',
tooltip: 'Toggle tooltip',
pdf: 'Download PDF',
csv: 'Download CSV',
img: 'Download PNG',
table: 'Toggle table',
labels: 'Toggle labels',
fullscreen: 'Toggle fullscreen',
stack: 'Toggle stack mode',
annotator: 'Toggle annotator',
},
print: {
allowTaint: false,
backgroundColor: '#FFFFFFff',
useCORS: false,
onclone: null,
scale: 2,
logging: false,
},
},
},
bar: {
borderRadius: 2,
useGradient: true,
periodGap: 0.1,
border: {
useSerieColor: false,
strokeWidth: 1,
stroke: '#FFFFFFff',
},
labels: {
show: true,
offsetY: -8,
rounding: 0,
color: '#1A1A1Aff',
formatter: null,
},
serieName: {
show: false,
offsetY: -6,
useAbbreviation: true,
abbreviationSize: 3,
useSerieColor: true,
color: '#1A1A1Aff',
bold: false,
},
},
line: {
radius: 6,
useGradient: false,
strokeWidth: 2,
cutNullValues: false,
dot: {
hideAboveMaxSerieLength: 62,
useSerieColor: false,
fill: '#FFFFFF',
strokeWidth: 2,
},
labels: {
show: true,
offsetY: -16,
rounding: 0,
color: '#1A1A1Aff',
formatter: null,
},
area: {
useGradient: true,
opacity: 20,
},
tag: {
followValue: true,
formatter: null,
fontSize: 14,
},
},
plot: {
radius: 6,
useGradient: true,
dot: {
useSerieColor: true,
fill: '#FFFFFF',
strokeWidth: 0.5,
},
labels: {
show: true,
offsetY: -8,
rounding: 0,
color: '#1A1A1Aff',
formatter: null,
},
tag: {
followValue: true,
formatter: null,
fontSize: 14,
},
},
table: {
responsiveBreakpoint: 400,
rounding: 0,
sparkline: true,
showSum: true,
columnNames: {
period: 'Period',
total: 'Total',
},
th: {
backgroundColor: '#FAFAFAff',
color: '#1A1A1Aff',
outline: '',
},
td: {
backgroundColor: '#FAFAFAff',
color: '#1A1A1Aff',
outline: '',
},
},
showTable: false,
};
});
const dataset = computed<VueUiXyDatasetItem[]>(() => {
return [
{
name: 'Serie name',
series: [1, 9, 7, 2, 12, 16, 17, 30, 16, 23],
color: '#1f77b4',
type: 'line',
shape: 'circle',
useArea: false,
useProgression: false,
dataLabels: true,
smooth: true,
dashed: false,
useTag: 'none',
},
];
});
</script>
<template>
<!-- Using a wrapper is optional -->
<div :style="{ width: '600px' }">
<VueUiXy :config="config" :dataset="dataset" />
</div>
</template>

View File

@ -28,7 +28,7 @@ defineOptions({
},
});
const refresh = () => {
state.list.splice(0, state.list.length);
state.list.splice(0);
state.page = 0;
state.complete = false;
loadMore();

View File

@ -1,7 +1,7 @@
import { DataLoaderPlugin } from 'unplugin-vue-router/data-loaders';
import { setupLayouts } from 'virtual:meta-layouts';
// import { createGetRoutes, setupLayouts } from 'virtual:generated-layouts';
import { createRouter, createWebHistory } from 'vue-router/auto';
import { createRouter, createWebHistory } from 'vue-router';
import { handleHotUpdate, routes } from 'vue-router/auto-routes';
const setupLayoutsResult = setupLayouts(routes);

11
src/types/global.ts Normal file
View File

@ -0,0 +1,11 @@
declare global {
const $__DEV__: boolean;
}
declare module 'vue' {
export interface ComponentCustomProperties {
$__DEV__: boolean;
}
}
export {};

View File

@ -1,12 +1,4 @@
declare global {
const $__DEV__: boolean;
}
declare module 'vue' {
export interface ComponentCustomProperties {
$__DEV__: boolean;
}
declare module '*.vue' {
import type { ComponentOptions } from 'vue';
const Component: ComponentOptions;
@ -19,5 +11,3 @@ declare module '*.md' {
const Component: ComponentOptions;
export default Component;
}
export {};

3
typed-router.d.ts vendored
View File

@ -34,9 +34,12 @@ declare module 'vue-router/auto-routes' {
'PageIframePageSpectrogram': RouteRecordInfo<'PageIframePageSpectrogram', '/Page/iframe-page/Spectrogram', Record<never, never>, Record<never, never>>,
'PageJSPage': RouteRecordInfo<'PageJSPage', '/Page/JSPage', Record<never, never>, Record<never, never>>,
'PageMDPage': RouteRecordInfo<'PageMDPage', '/Page/MDPage', Record<never, never>, Record<never, never>>,
'PageMDPageImportMD': RouteRecordInfo<'PageMDPageImportMD', '/Page/MDPageImportMD', Record<never, never>, Record<never, never>>,
'PageP5Js': RouteRecordInfo<'PageP5Js', '/Page/p5_js', Record<never, never>, Record<never, never>>,
'PagePinPuYi': RouteRecordInfo<'PagePinPuYi', '/Page/PinPuYi', Record<never, never>, Record<never, never>>,
'PageStyle': RouteRecordInfo<'PageStyle', '/Page/Style', Record<never, never>, Record<never, never>>,
'PageViteAssets': RouteRecordInfo<'PageViteAssets', '/Page/vite-assets', Record<never, never>, Record<never, never>>,
'PageVueDataUi': RouteRecordInfo<'PageVueDataUi', '/Page/vue-data-ui', Record<never, never>, Record<never, never>>,
'PkgsUsageI18n': RouteRecordInfo<'PkgsUsageI18n', '/PkgsUsage/I18n', Record<never, never>, Record<never, never>>,
'PkgsUsageTsEnumUtil': RouteRecordInfo<'PkgsUsageTsEnumUtil', '/PkgsUsage/ts-enum-util', Record<never, never>, Record<never, never>>,
'UIComponentsAntdV': RouteRecordInfo<'UIComponentsAntdV', '/UI-components/AntdV', Record<never, never>, Record<never, never>>,

View File

@ -25,6 +25,7 @@ import { createUtils4uAutoImports } from 'utils4u/auto-imports';
import { type PluginOption } from 'vite';
import { checker } from 'vite-plugin-checker';
import { vitePluginFakeServer } from 'vite-plugin-fake-server';
import VitePluginImageTools from 'vite-plugin-image-tools';
import pluginPurgeCss from 'vite-plugin-purgecss-updated-v5';
import { viteSingleFile } from 'vite-plugin-singlefile';
import { viteStaticCopy } from 'vite-plugin-static-copy';
@ -190,6 +191,15 @@ export function Plugins() {
{ dest: cesiumBaseUrl, src: `${cesiumSource}/Widgets` },
],
}),
VitePluginImageTools({
quality: 80,
enableWebp: true,
enableDev: false,
enableDevWebp: false,
// 排除字体 SVG 文件和可能有问题的 SVG 文件
excludes: /fonts\/.*\.svg$|Helvetica.*\.svg$/,
}),
);
// 检查是否在VS Code终端中运行

View File

@ -36,6 +36,9 @@ export default defineConfig(({ command, mode }) => {
'satellite.js',
'ts-enum-util',
'unplugin-vue-router',
'unplugin-vue-router/runtime',
'unplugin-vue-router/data-loaders/basic',
'unplugin-vue-router/data-loaders/pinia-colada',
],
exclude: ['quill', 'chart.js/auto'],
},
@ -53,7 +56,7 @@ export default defineConfig(({ command, mode }) => {
// https://cn.rollupjs.org/configuration-options/#output-assetfilenames
// output: env.VITE_SPLIT_CHUNKS === 'true' ? (await import('utils4u/rollup')).createSplitChunkOutput() : undefined,
output: {
minifyInternalExports: false,
// minifyInternalExports: false,
// manualChunks: {
// 'vendor/utils4u': ['utils4u', 'utils4u/vue-use', 'utils4u/primevue'],
// 'vendor/vue': ['vue'],
@ -67,6 +70,14 @@ export default defineConfig(({ command, mode }) => {
manualChunks: {
'vendor/Cesium': ['cesium'],
},
// advancedChunks: {
// groups: [
// {
// name: 'vendor/cesium',
// test: 'cesium',
// },
// ],
// },
},
},
sourcemap: mode !== 'production' || env.VITE_SOURCE_MAP === 'true',