185 Commits

Author SHA1 Message Date
383d8deead chore(deps): update dependency @types/node to ^22.16.3
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m44s
/ lint-build-and-check (push) Successful in 6m3s
/ surge (push) Successful in 3m11s
/ playwright (push) Successful in 1m5s
/ cleanup_surge (push) Successful in 11s
2025-07-11 03:15:34 +08:00
fcf09d887b chore(deps): update dependency @types/three to ^0.178.1
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 7m5s
/ playwright (push) Successful in 1m0s
/ cleanup_surge (push) Successful in 19s
/ surge (push) Successful in 3m19s
2025-07-11 02:48:12 +08:00
145baf5e16 chore(deps): update dependency vite-plugin-checker to ^0.10.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m16s
/ lint-build-and-check (push) Successful in 5m57s
/ playwright (push) Successful in 1m0s
/ cleanup_surge (push) Successful in 14s
/ surge (push) Successful in 3m22s
2025-07-10 18:56:25 +08:00
866145591f chore(deps): update lint dependencies to ^1.6.0
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m10s
/ lint-build-and-check (push) Successful in 6m7s
/ cleanup_surge (push) Successful in 11s
/ surge (push) Successful in 4m32s
/ playwright (push) Successful in 1m32s
2025-07-10 16:30:47 +08:00
33528d64a7 chore(deps): update dependency @types/node to ^22.16.2
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
/ build-and-deploy-to-vercel (push) Successful in 3m17s
/ lint-build-and-check (push) Successful in 6m22s
/ surge (push) Successful in 4m6s
/ playwright (push) Successful in 2m36s
/ cleanup_surge (push) Successful in 17s
2025-07-09 08:59:11 +08:00
30559d749e 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 3m17s
/ lint-build-and-check (push) Successful in 6m16s
/ surge (push) Successful in 3m3s
/ cleanup_surge (push) Successful in 19s
/ playwright (push) Successful in 1m0s
2025-07-07 08:42:16 +08:00
57d07d3cd0 chore(deps): update yanhao98/composite-actions digest to b4a2caa
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 4m2s
/ playwright (push) Successful in 1m38s
/ cleanup_surge (push) Successful in 21s
/ surge (push) Successful in 3m32s
/ lint-build-and-check (push) Successful in 7m6s
2025-07-07 07:29:42 +08:00
11f4587681 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 3m35s
/ surge (push) Successful in 3m7s
/ playwright (push) Successful in 1m12s
/ cleanup_surge (push) Successful in 8s
/ lint-build-and-check (push) Successful in 6m7s
2025-07-06 16:21:06 +08:00
669cd7070f 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 3m41s
/ lint-build-and-check (push) Successful in 5m58s
/ surge (push) Successful in 3m0s
/ playwright (push) Successful in 59s
/ cleanup_surge (push) Successful in 20s
2025-07-04 13:41:31 +08:00
5487dc321e feat: enhance responsive design for sidebar and drawer in AppLayout
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m12s
/ cleanup_surge (push) Successful in 21s
/ surge (push) Successful in 3m4s
/ playwright (push) Successful in 1m43s
/ lint-build-and-check (push) Successful in 6m5s
2025-07-04 12:34:55 +08:00
ec4906f441 feat: update layout configuration to use naive-ui/AppLayout
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m15s
/ surge (push) Successful in 3m32s
/ playwright (push) Successful in 1m3s
/ cleanup_surge (push) Successful in 13s
/ lint-build-and-check (push) Successful in 6m2s
2025-07-04 12:06:40 +08:00
ad8c187edd chore: update GitHub Copilot instructions to define code generation standards
All checks were successful
/ build-and-deploy-to-vercel (push) Successful in 3m32s
/ surge (push) Successful in 3m35s
/ playwright (push) Successful in 1m40s
/ cleanup_surge (push) Successful in 20s
/ lint-build-and-check (push) Successful in 7m6s
2025-07-04 10:15:09 +08:00
997df3a4d4 chore(deps): add naive-ui and vfonts dependencies; update styles and router for Naive UI components 2025-07-04 10:14:58 +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
47 changed files with 8594 additions and 3093 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,4 +1,11 @@
# Project Conventions and Technical Guidelines
---
description:
globs:
alwaysApply: true
---
# GitHub Copilot Instructions
本文件定义了项目的代码生成规范GitHub Copilot 和其他 AI 助手应遵循这些指令。
This document outlines the core technical choices, coding conventions, and configuration details for this project. Adhering to these guidelines ensures consistency and leverages the project's setup effectively.

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@b4a2caa64aca72f8aeada59d0df3181a12df8268
- 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@b4a2caa64aca72f8aeada59d0df3181a12df8268
- 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@b4a2caa64aca72f8aeada59d0df3181a12df8268
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@b4a2caa64aca72f8aeada59d0df3181a12df8268
# - 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@b4a2caa64aca72f8aeada59d0df3181a12df8268
- 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,123 @@
}
},
"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.1.2",
"@splinetool/runtime": "^1.10.22",
"@types/p5": "^1.7.6",
"@types/sortablejs": "^1.15.8",
"@unhead/vue": "^2.0.5",
"@unhead/vue": "^2.0.12",
"@vant/use": "^1.6.0",
"@vueuse/core": "^13.1.0",
"alova": "^3.2.10",
"@vueuse/core": "^13.5.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.5",
"radash": "^12.1.1",
"radix-vue": "^1.9.17",
"reka-ui": "^2.2.0",
"satellite.js": "^6.0.0",
"reka-ui": "^2.3.2",
"satellite.js": "^6.0.1",
"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.9",
"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.5",
"@tsconfig/node22": "^22.0.2",
"@types/archiver": "^6.0.3",
"@types/mockjs": "^1.0.10",
"@types/node": "^22.14.0",
"@types/node": "^22.16.3",
"@types/nprogress": "^0.2.3",
"@types/plotly.js-dist-min": "^2.3.4",
"@types/three": "^0.175.0",
"@types/three": "^0.178.1",
"@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.6.0",
"@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.6.0",
"eslint-plugin-perfectionist": "^4.15.0",
"eslint-plugin-unicorn": "^59.0.1",
"eslint-plugin-vue": "^10.3.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",
"naive-ui": "^2.42.0",
"npm-run-all2": "^8.0.4",
"oxlint": "^1.6.0",
"prettier": "3.6.2",
"typescript": "~5.8.3",
"unocss": "66.1.0-beta.10",
"unocss-preset-animations": "^1.1.1",
"unocss": "66.3.3",
"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",
"vfonts": "^0.0.3",
"vite": "^7.0.2",
"vite-plugin-checker": "^0.10.0",
"vite-plugin-fake-server": "^2.2.0",
"vite-plugin-purgecss-updated-v5": "^1.2.4",
"vite-plugin-singlefile": "^2.2.0",
"vite-plugin-static-copy": "^2.3.1",
"vite-plugin-vue-devtools": "^7.7.2",
"vite-plugin-image-tools": "^2.0.2",
"vite-plugin-purgecss-updated-v5": "^1.2.6",
"vite-plugin-singlefile": "^2.3.0",
"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.1",
"vue-tsc": "^3.0.1"
}
}

6852
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -15,9 +15,11 @@ const themeConfig = computed(() => {
</script>
<template>
<n-config-provider preflight-style-disabled>
<a-config-provider :theme="themeConfig">
<RouterView />
</a-config-provider>
</n-config-provider>
<DynamicDialog /> <ConfirmDialog /> <Toast />
</template>

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

@ -0,0 +1,321 @@
<script setup lang="ts">
import type { MenuOption } from 'naive-ui';
import { createGetRoutes } from '@/plugins/router';
const router = useRouter();
// 响应式断点检测
const isMobile = ref(false);
const isTablet = ref(false);
// 检测屏幕尺寸
const updateScreenSize = () => {
const width = window.innerWidth;
const wasMobile = isMobile.value;
isMobile.value = width < 768;
isTablet.value = width >= 768 && width < 1024;
// 当从移动端切换到桌面端时,关闭抽屉并重置折叠状态
if (wasMobile && !isMobile.value) {
drawerVisible.value = false;
collapsed.value = false;
}
// 当从桌面端切换到移动端时,关闭抽屉
else if (!wasMobile && isMobile.value) {
drawerVisible.value = false;
}
};
// 侧边栏状态管理
const collapsed = ref(false);
const drawerVisible = ref(false);
// 初始化屏幕尺寸检测
onMounted(() => {
updateScreenSize();
window.addEventListener('resize', updateScreenSize);
// 移动端默认收起侧边栏
if (isMobile.value) {
collapsed.value = true;
drawerVisible.value = false;
}
});
onUnmounted(() => {
window.removeEventListener('resize', updateScreenSize);
});
// 菜单项类型定义
type MenuItemWithRoute = MenuOption & {
routeName?: string;
parentId?: string;
originalPath?: string;
};
// 生成菜单项
const menuOptions = computed(() => {
let flatArray: MenuItemWithRoute[] = createGetRoutes(router)()
.filter((route) => !route.path.includes('/:'))
.filter((route) => !route.meta.hidden)
.map((route) => ({
key: route.path,
label: route.meta.title || `${(route.name as string) || route.path}`,
routeName: route.name as string,
}));
flatArray = flatArray.map((item) => {
const originalPath = item.key as string; // 保存原始路径
let id = item.key as string;
if (flatArray.some((item) => (item.key as string).startsWith(`${id}/`))) {
id = `${id}/index`;
}
// 去掉最前面的 /
id = id.replace(/^\//, '');
let parentId = id.replace(/\/[^/]+$/, '');
if (parentId === id) {
parentId = '_ROOT_';
}
return {
...item,
key: id,
parentId,
originalPath, // 保存原始路径用于后续映射
};
});
const groupItems: MenuItemWithRoute[] = [];
for (const flatArrayItem of flatArray) {
if (!groupItems.some((item) => item.key === flatArrayItem.parentId) && flatArrayItem.parentId !== '_ROOT_') {
let groupItemParentId = flatArrayItem.parentId!.replace(/\/[^/]+$/, '');
if (groupItemParentId === flatArrayItem.parentId) groupItemParentId = '_ROOT_';
groupItems.push({
key: flatArrayItem.parentId!,
label: `Group ${flatArrayItem.parentId}`,
parentId: groupItemParentId,
});
}
}
const tree = arrayToTree([...flatArray, ...groupItems], {
id: 'key',
parentId: 'parentId',
rootId: '_ROOT_',
});
// 递归转换树形结构为 naive-ui menu 格式
function convertToMenuOptions(tree: MenuItemWithRoute[]): MenuOption[] {
return tree.map((item) => {
const menuItem: MenuOption = {
key: item.key,
label: item.label,
};
if (item.children && item.children.length > 0) {
menuItem.children = convertToMenuOptions(item.children);
} else if (item.routeName) {
// 叶子节点,存储路由映射
menuRouteMap.set(item.key as string, item.routeName);
// 同时存储路径到 key 的映射(用于高亮显示)
if (item.originalPath) {
pathToKeyMap.set(item.originalPath, item.key as string);
}
(menuItem as MenuItemWithRoute).routeName = item.routeName;
}
return menuItem;
});
}
// 清空之前的映射
menuRouteMap.clear();
pathToKeyMap.clear();
const result = convertToMenuOptions(tree);
// 菜单生成后,重新设置当前选中的菜单项
nextTick(() => {
const currentPath = router.currentRoute.value.path;
const menuKey = pathToKeyMap.get(currentPath);
if (menuKey) {
selectedKey.value = menuKey;
} else {
const pathWithoutSlash = currentPath.replace(/^\//, '');
selectedKey.value = pathWithoutSlash;
}
});
return result;
});
// 当前选中的菜单项
const selectedKey = ref<string>();
// 存储菜单项与路由名称的映射
const menuRouteMap = new Map<string, string>();
// 存储路由路径与菜单 key 的映射(用于高亮显示)
const pathToKeyMap = new Map<string, string>();
// 处理菜单点击
const handleMenuSelect = (key: string, item: MenuOption) => {
const routeName = menuRouteMap.get(key) || (item as MenuItemWithRoute).routeName;
if (routeName) {
router.push({ name: routeName as never });
// 移动端点击菜单项后自动收起侧边栏
if (isMobile.value) {
drawerVisible.value = false;
}
}
};
// 监听路由变化,更新选中的菜单项
watch(
() => router.currentRoute.value.path,
(newPath) => {
// 使用路径到 key 的映射来找到对应的菜单项
const menuKey = pathToKeyMap.get(newPath);
if (menuKey) {
selectedKey.value = menuKey;
} else {
// 如果没有找到精确匹配,尝试去掉前面的 / 再匹配
const pathWithoutSlash = newPath.replace(/^\//, '');
selectedKey.value = pathWithoutSlash;
}
},
{ immediate: true },
);
// 切换侧边栏状态
const toggleSidebar = () => {
if (isMobile.value) {
// 移动端使用抽屉模式
drawerVisible.value = !drawerVisible.value;
} else {
// 桌面端使用折叠模式
collapsed.value = !collapsed.value;
}
};
</script>
<template>
<n-layout :has-sider="!isMobile">
<!-- 移动端抽屉 -->
<n-drawer
v-if="isMobile"
v-model:show="drawerVisible"
:width="280"
placement="left"
:trap-focus="false"
:block-scroll="false"
>
<n-drawer-content title="菜单" :native-scrollbar="false">
<n-menu :options="menuOptions" :value="selectedKey" @update:value="handleMenuSelect" />
</n-drawer-content>
</n-drawer>
<!-- 桌面端侧边栏 -->
<n-layout-sider
v-if="!isMobile"
:collapsed="collapsed"
:native-scrollbar="false"
bordered
collapse-mode="width"
:collapsed-width="64"
:width="240"
show-trigger
@collapse="collapsed = true"
@expand="collapsed = false"
>
<n-menu
:collapsed="collapsed"
:collapsed-width="64"
:collapsed-icon-size="22"
:options="menuOptions"
:value="selectedKey"
@update:value="handleMenuSelect"
/>
</n-layout-sider>
<n-layout>
<n-layout-header
bordered
:style="{
height: '64px',
padding: isMobile ? '0 16px' : '0 24px',
display: 'flex',
alignItems: 'center',
}"
>
<n-button
quaternary
@click="toggleSidebar"
:style="{
marginRight: isMobile ? '8px' : '12px',
padding: isMobile ? '8px' : '6px',
}"
:size="isMobile ? 'medium' : 'small'"
>
<template #icon>
<n-icon :size="isMobile ? 20 : 18">
<svg viewBox="0 0 24 24">
<path
v-if="!isMobile && collapsed"
fill="currentColor"
d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"
/>
<path
v-else-if="!isMobile && !collapsed"
fill="currentColor"
d="M3 18h13v-2H3v2zm0-5h10v-2H3v2zm0-7v2h13V6H3zm18 9.59L17.42 12 21 8.41 19.59 7l-5 5 5 5L21 15.59z"
/>
<!-- 移动端始终显示菜单图标 -->
<path v-else fill="currentColor" d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" />
</svg>
</n-icon>
</template>
</n-button>
<span
:style="{
fontSize: isMobile ? '16px' : '18px',
fontWeight: '500',
overflow: 'hidden',
textOverflow: 'ellipsis',
whiteSpace: 'nowrap',
}"
>
Vue TS Example
</span>
</n-layout-header>
<n-layout-content
:content-style="{
padding: isMobile ? '16px' : '24px',
minHeight: 'calc(100vh - 64px - 72px)', // 减去头部和底部高度
}"
>
<router-view />
</n-layout-content>
<n-layout-footer
bordered
:style="{
padding: isMobile ? '16px' : '24px',
textAlign: 'center',
}"
>
<span
:style="{
color: 'var(--n-text-color-disabled)',
fontSize: isMobile ? '12px' : '14px',
}"
>
© 2025 Vue TS Example. All rights reserved.
</span>
</n-layout-footer>
</n-layout>
</n-layout>
</template>

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

@ -0,0 +1,11 @@
<script setup lang="ts"></script>
<template>
<n-card>
<n-divider title-placement="left">
<n-text depth="3"> Naive UI Components Divider </n-text>
</n-divider>
</n-card>
</template>
<style scoped></style>

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);

View File

@ -13,4 +13,9 @@ import 'primeicons/primeicons.css';
import './reset/reset-primevue.css';
import './reset/reset-antdv.less';
// 通用字体
import 'vfonts/Lato.css';
// 等宽字体
import 'vfonts/FiraCode.css';
//
import 'virtual:uno.css';

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 {};

4
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>>,
@ -44,6 +47,7 @@ declare module 'vue-router/auto-routes' {
'UIComponentsInfiniteLoading': RouteRecordInfo<'UIComponentsInfiniteLoading', '/UI-components/infinite-loading', Record<never, never>, Record<never, never>>,
'UIComponentsInfiniteLoadingDetail': RouteRecordInfo<'UIComponentsInfiniteLoadingDetail', '/UI-components/infinite-loading/detail', Record<never, never>, Record<never, never>>,
'UIComponentsInspiraUI': RouteRecordInfo<'UIComponentsInspiraUI', '/UI-components/InspiraUI', Record<never, never>, Record<never, never>>,
'UIComponentsNaiveUI': RouteRecordInfo<'UIComponentsNaiveUI', '/UI-components/NaiveUI', Record<never, never>, Record<never, never>>,
'UIComponentsPrimeVue': RouteRecordInfo<'UIComponentsPrimeVue', '/UI-components/PrimeVue', Record<never, never>, Record<never, never>>,
'UIComponentsShadcnVue': RouteRecordInfo<'UIComponentsShadcnVue', '/UI-components/ShadcnVue', Record<never, never>, Record<never, never>>,
'VueMacrosDefineRender': RouteRecordInfo<'VueMacrosDefineRender', '/VueMacros/DefineRender', Record<never, never>, Record<never, never>>,

View File

@ -11,11 +11,11 @@ import Vue from '@vitejs/plugin-vue';
import VueJsx from '@vitejs/plugin-vue-jsx';
import path from 'node:path';
import UnoCSS from 'unocss/vite';
import UnpluginAutoImport from 'unplugin-auto-import/vite';
import AutoImport from 'unplugin-auto-import/vite';
import { FileSystemIconLoader } from 'unplugin-icons/loaders';
import IconsResolver from 'unplugin-icons/resolver';
import Icons from 'unplugin-icons/vite';
import { AntDesignVueResolver, TDesignResolver } from 'unplugin-vue-components/resolvers';
import { AntDesignVueResolver, NaiveUiResolver, TDesignResolver } from 'unplugin-vue-components/resolvers';
import Components from 'unplugin-vue-components/vite';
import VueMacros from 'unplugin-vue-macros/vite';
import Markdown from 'unplugin-vue-markdown/vite';
@ -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';
@ -65,7 +66,8 @@ export function Plugins() {
// https://github.com/dishait/vite-plugin-vue-meta-layouts
MetaLayouts({
defaultLayout: 'sakai-vue/AppLayout',
// defaultLayout: 'sakai-vue/AppLayout',
defaultLayout: 'naive-ui/AppLayout',
skipTopLevelRouteLayout: false, // 打开修复 https://github.com/JohnCampionJr/vite-plugin-vue-layouts/issues/134默认为 false 关闭
}),
@ -79,7 +81,7 @@ export function Plugins() {
}),
// https://github.com/antfu/unplugin-auto-import
UnpluginAutoImport({
AutoImport({
dirs: [
// 'src/composables',
'src/stores',
@ -97,6 +99,7 @@ export function Plugins() {
{
'consola/browser': ['consola'],
'vue-router/auto': ['useLink'],
'naive-ui': ['useDialog', 'useMessage', 'useNotification', 'useLoadingBar'],
},
],
resolvers: [TDesignResolver({ esm: true, library: 'mobile-vue' }), VantResolver({ importStyle: true })],
@ -123,6 +126,7 @@ export function Plugins() {
TDesignResolver({ esm: true, library: 'mobile-vue' }),
VantResolver({ importStyle: true }),
PrimeVueResolver(/* { components: { prefix: 'P' } } */),
NaiveUiResolver(),
],
}),
@ -190,6 +194,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',