create-swdg-frontend 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (469) hide show
  1. package/README.md +31 -13
  2. package/bin/index.js +3 -244
  3. package/lib/argv.js +43 -0
  4. package/lib/cli.js +141 -0
  5. package/lib/constants.js +24 -0
  6. package/lib/gis.js +92 -0
  7. package/lib/manifest.js +23 -0
  8. package/lib/prompts.js +55 -0
  9. package/lib/scaffold.js +118 -0
  10. package/package.json +6 -2
  11. package/scripts/sync-template.js +120 -0
  12. package/scripts/validate-template.mjs +74 -0
  13. package/stubs/tsconfig.node.json +11 -0
  14. package/stubs/types-env.d.ts +9 -0
  15. package/stubs/vite.config.ts +64 -0
  16. package/template/.env.example +6 -0
  17. package/template/.github/workflows/ci.yml +23 -0
  18. package/template/.github/workflows/release.yml +69 -0
  19. package/template/.husky/commit-msg +42 -42
  20. package/template/.husky/pre-commit +2 -2
  21. package/template/.husky/prepare-commit-msg +0 -0
  22. package/template/.lintstagedrc +5 -5
  23. package/template/.prettierignore +26 -26
  24. package/template/.prettierrc.cjs +10 -10
  25. package/template/.stylelintignore +1 -1
  26. package/template/.stylelintrc.json +12 -6
  27. package/template/README.md +99 -36
  28. package/template/auto-imports.d.ts +10 -0
  29. package/template/commitlint.config.cjs +64 -64
  30. package/template/docs/MAINTAINER.md +77 -0
  31. package/template/docs/ONBOARDING.md +284 -0
  32. package/template/docs/TESTING.md +104 -0
  33. package/template/eslint.config.js +97 -96
  34. package/template/index.html +17 -17
  35. package/template/interface/user.ts +5 -5
  36. package/template/package.json +88 -86
  37. package/template/pnpm-lock.yaml +6360 -0
  38. package/template/postcss.config.js +5 -0
  39. package/template/scripts/gen-api.cjs +280 -230
  40. package/template/scripts/release.mjs +53 -59
  41. package/template/scripts/set-release-version.mjs +46 -0
  42. package/template/scripts/test-pipeline.mjs +85 -0
  43. package/template/scripts/test-scaffold.mjs +197 -0
  44. package/template/scripts/test-template.mjs +52 -0
  45. package/template/scripts/verify.mjs +28 -0
  46. package/template/scripts/vite-plugin-cesium-dev.ts +56 -0
  47. package/template/src/App.vue +6 -6
  48. package/template/src/api/README.md +7 -3
  49. package/template/src/assets/favicon.svg +49 -49
  50. package/template/src/components/Body/index.vue +80 -16
  51. package/template/src/components/CesiumViewer/index.vue +36 -0
  52. package/template/src/components/Header/index.vue +19 -8
  53. package/template/src/components/OnboardingDeck/index.vue +449 -0
  54. package/template/src/data/onboardingSlides.ts +208 -0
  55. package/template/src/directive/focus.ts +9 -9
  56. package/template/src/layout/BasicLayout.vue +28 -28
  57. package/template/src/main.ts +25 -33
  58. package/template/src/router/index.ts +30 -24
  59. package/template/src/router/routeUtils.ts +13 -0
  60. package/template/src/stores/README.md +3 -3
  61. package/template/src/stores/useCounter.ts +12 -12
  62. package/template/src/styles/alerts.less +85 -85
  63. package/template/src/styles/global.css +326 -326
  64. package/template/src/styles/shell.css +232 -0
  65. package/template/src/utils/alert.ts +58 -58
  66. package/template/src/utils/axios-middleware.js +180 -0
  67. package/template/src/utils/cesium/index.ts +71 -0
  68. package/template/src/utils/components.ts +21 -21
  69. package/template/src/utils/composables/useAlert.ts +14 -14
  70. package/template/src/utils/composables/useFeatureGis.ts +24 -0
  71. package/template/src/utils/http.ts +5 -0
  72. package/template/src/views/examples/cesium/index.vue +85 -0
  73. package/template/src/views/examples/guide/index.vue +42 -0
  74. package/template/src/views/examples/test/index.vue +63 -0
  75. package/template/src/views/index.vue +8 -9
  76. package/template/src/vite-env.d.ts +1 -1
  77. package/template/tests/README.md +7 -6
  78. package/template/tests/e2e/README.md +3 -3
  79. package/template/tests/setup.ts +1 -1
  80. package/template/tests/unit/onboardingSlides.test.ts +20 -0
  81. package/template/tests/unit/router.utils.test.ts +21 -0
  82. package/template/tests/unit/scaffold.lib.test.ts +44 -0
  83. package/template/tests/unit/useFeatureGis.test.ts +14 -0
  84. package/template/tests/utils/helpers.ts +1 -1
  85. package/template/tsconfig.json +51 -51
  86. package/template/tsconfig.node.json +11 -11
  87. package/template/types/README.md +3 -3
  88. package/template/types/env.d.ts +13 -0
  89. package/template/types/global.d.ts +9 -9
  90. package/template/vite.config.ts +89 -75
  91. package/template/vitest.config.ts +22 -9
  92. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_0.json +0 -1012
  93. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_1.json +0 -1012
  94. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_10.json +0 -1012
  95. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_11.json +0 -1012
  96. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_12.json +0 -1012
  97. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_13.json +0 -1012
  98. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_14.json +0 -1012
  99. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_15.json +0 -1012
  100. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_16.json +0 -1012
  101. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_17.json +0 -1012
  102. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_18.json +0 -1012
  103. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_19.json +0 -1012
  104. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_2.json +0 -1012
  105. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_20.json +0 -1012
  106. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_21.json +0 -1012
  107. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_22.json +0 -1012
  108. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_23.json +0 -1012
  109. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_24.json +0 -1012
  110. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_25.json +0 -1012
  111. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_26.json +0 -1012
  112. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_27.json +0 -438
  113. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_3.json +0 -1012
  114. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_4.json +0 -1012
  115. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_5.json +0 -1012
  116. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_6.json +0 -1012
  117. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_7.json +0 -1012
  118. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_8.json +0 -1012
  119. package/template/public/Cesium1.119/Assets/IAU2006_XYS/IAU2006_XYS_9.json +0 -1012
  120. package/template/public/Cesium1.119/Assets/Images/bing_maps_credit.png +0 -0
  121. package/template/public/Cesium1.119/Assets/Images/cesium_credit.png +0 -0
  122. package/template/public/Cesium1.119/Assets/Images/google_earth_credit.png +0 -0
  123. package/template/public/Cesium1.119/Assets/Images/ion-credit.png +0 -0
  124. package/template/public/Cesium1.119/Assets/Textures/LensFlare/DirtMask.jpg +0 -0
  125. package/template/public/Cesium1.119/Assets/Textures/LensFlare/StarBurst.jpg +0 -0
  126. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/0/0/0.jpg +0 -0
  127. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/0/1/0.jpg +0 -0
  128. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/0/0.jpg +0 -0
  129. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/0/1.jpg +0 -0
  130. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/1/0.jpg +0 -0
  131. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/1/1.jpg +0 -0
  132. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/2/0.jpg +0 -0
  133. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/2/1.jpg +0 -0
  134. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/3/0.jpg +0 -0
  135. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/1/3/1.jpg +0 -0
  136. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/0/0.jpg +0 -0
  137. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/0/1.jpg +0 -0
  138. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/0/2.jpg +0 -0
  139. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/0/3.jpg +0 -0
  140. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/1/0.jpg +0 -0
  141. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/1/1.jpg +0 -0
  142. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/1/2.jpg +0 -0
  143. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/1/3.jpg +0 -0
  144. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/2/0.jpg +0 -0
  145. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/2/1.jpg +0 -0
  146. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/2/2.jpg +0 -0
  147. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/2/3.jpg +0 -0
  148. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/3/0.jpg +0 -0
  149. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/3/1.jpg +0 -0
  150. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/3/2.jpg +0 -0
  151. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/3/3.jpg +0 -0
  152. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/4/0.jpg +0 -0
  153. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/4/1.jpg +0 -0
  154. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/4/2.jpg +0 -0
  155. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/4/3.jpg +0 -0
  156. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/5/0.jpg +0 -0
  157. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/5/1.jpg +0 -0
  158. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/5/2.jpg +0 -0
  159. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/5/3.jpg +0 -0
  160. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/6/0.jpg +0 -0
  161. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/6/1.jpg +0 -0
  162. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/6/2.jpg +0 -0
  163. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/6/3.jpg +0 -0
  164. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/7/0.jpg +0 -0
  165. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/7/1.jpg +0 -0
  166. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/7/2.jpg +0 -0
  167. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/2/7/3.jpg +0 -0
  168. package/template/public/Cesium1.119/Assets/Textures/NaturalEarthII/tilemapresource.xml +0 -14
  169. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  170. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  171. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  172. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  173. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  174. package/template/public/Cesium1.119/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  175. package/template/public/Cesium1.119/Assets/Textures/maki/airfield.png +0 -0
  176. package/template/public/Cesium1.119/Assets/Textures/maki/airport.png +0 -0
  177. package/template/public/Cesium1.119/Assets/Textures/maki/alcohol-shop.png +0 -0
  178. package/template/public/Cesium1.119/Assets/Textures/maki/america-football.png +0 -0
  179. package/template/public/Cesium1.119/Assets/Textures/maki/art-gallery.png +0 -0
  180. package/template/public/Cesium1.119/Assets/Textures/maki/bakery.png +0 -0
  181. package/template/public/Cesium1.119/Assets/Textures/maki/bank.png +0 -0
  182. package/template/public/Cesium1.119/Assets/Textures/maki/bar.png +0 -0
  183. package/template/public/Cesium1.119/Assets/Textures/maki/baseball.png +0 -0
  184. package/template/public/Cesium1.119/Assets/Textures/maki/basketball.png +0 -0
  185. package/template/public/Cesium1.119/Assets/Textures/maki/beer.png +0 -0
  186. package/template/public/Cesium1.119/Assets/Textures/maki/bicycle.png +0 -0
  187. package/template/public/Cesium1.119/Assets/Textures/maki/building.png +0 -0
  188. package/template/public/Cesium1.119/Assets/Textures/maki/bus.png +0 -0
  189. package/template/public/Cesium1.119/Assets/Textures/maki/cafe.png +0 -0
  190. package/template/public/Cesium1.119/Assets/Textures/maki/camera.png +0 -0
  191. package/template/public/Cesium1.119/Assets/Textures/maki/campsite.png +0 -0
  192. package/template/public/Cesium1.119/Assets/Textures/maki/car.png +0 -0
  193. package/template/public/Cesium1.119/Assets/Textures/maki/cemetery.png +0 -0
  194. package/template/public/Cesium1.119/Assets/Textures/maki/cesium.png +0 -0
  195. package/template/public/Cesium1.119/Assets/Textures/maki/chemist.png +0 -0
  196. package/template/public/Cesium1.119/Assets/Textures/maki/cinema.png +0 -0
  197. package/template/public/Cesium1.119/Assets/Textures/maki/circle-stroked.png +0 -0
  198. package/template/public/Cesium1.119/Assets/Textures/maki/circle.png +0 -0
  199. package/template/public/Cesium1.119/Assets/Textures/maki/city.png +0 -0
  200. package/template/public/Cesium1.119/Assets/Textures/maki/clothing-store.png +0 -0
  201. package/template/public/Cesium1.119/Assets/Textures/maki/college.png +0 -0
  202. package/template/public/Cesium1.119/Assets/Textures/maki/commercial.png +0 -0
  203. package/template/public/Cesium1.119/Assets/Textures/maki/cricket.png +0 -0
  204. package/template/public/Cesium1.119/Assets/Textures/maki/cross.png +0 -0
  205. package/template/public/Cesium1.119/Assets/Textures/maki/dam.png +0 -0
  206. package/template/public/Cesium1.119/Assets/Textures/maki/danger.png +0 -0
  207. package/template/public/Cesium1.119/Assets/Textures/maki/disability.png +0 -0
  208. package/template/public/Cesium1.119/Assets/Textures/maki/dog-park.png +0 -0
  209. package/template/public/Cesium1.119/Assets/Textures/maki/embassy.png +0 -0
  210. package/template/public/Cesium1.119/Assets/Textures/maki/emergency-telephone.png +0 -0
  211. package/template/public/Cesium1.119/Assets/Textures/maki/entrance.png +0 -0
  212. package/template/public/Cesium1.119/Assets/Textures/maki/farm.png +0 -0
  213. package/template/public/Cesium1.119/Assets/Textures/maki/fast-food.png +0 -0
  214. package/template/public/Cesium1.119/Assets/Textures/maki/ferry.png +0 -0
  215. package/template/public/Cesium1.119/Assets/Textures/maki/fire-station.png +0 -0
  216. package/template/public/Cesium1.119/Assets/Textures/maki/fuel.png +0 -0
  217. package/template/public/Cesium1.119/Assets/Textures/maki/garden.png +0 -0
  218. package/template/public/Cesium1.119/Assets/Textures/maki/gift.png +0 -0
  219. package/template/public/Cesium1.119/Assets/Textures/maki/golf.png +0 -0
  220. package/template/public/Cesium1.119/Assets/Textures/maki/grocery.png +0 -0
  221. package/template/public/Cesium1.119/Assets/Textures/maki/hairdresser.png +0 -0
  222. package/template/public/Cesium1.119/Assets/Textures/maki/harbor.png +0 -0
  223. package/template/public/Cesium1.119/Assets/Textures/maki/heart.png +0 -0
  224. package/template/public/Cesium1.119/Assets/Textures/maki/heliport.png +0 -0
  225. package/template/public/Cesium1.119/Assets/Textures/maki/hospital.png +0 -0
  226. package/template/public/Cesium1.119/Assets/Textures/maki/ice-cream.png +0 -0
  227. package/template/public/Cesium1.119/Assets/Textures/maki/industrial.png +0 -0
  228. package/template/public/Cesium1.119/Assets/Textures/maki/land-use.png +0 -0
  229. package/template/public/Cesium1.119/Assets/Textures/maki/laundry.png +0 -0
  230. package/template/public/Cesium1.119/Assets/Textures/maki/library.png +0 -0
  231. package/template/public/Cesium1.119/Assets/Textures/maki/lighthouse.png +0 -0
  232. package/template/public/Cesium1.119/Assets/Textures/maki/lodging.png +0 -0
  233. package/template/public/Cesium1.119/Assets/Textures/maki/logging.png +0 -0
  234. package/template/public/Cesium1.119/Assets/Textures/maki/london-underground.png +0 -0
  235. package/template/public/Cesium1.119/Assets/Textures/maki/marker-stroked.png +0 -0
  236. package/template/public/Cesium1.119/Assets/Textures/maki/marker.png +0 -0
  237. package/template/public/Cesium1.119/Assets/Textures/maki/minefield.png +0 -0
  238. package/template/public/Cesium1.119/Assets/Textures/maki/mobilephone.png +0 -0
  239. package/template/public/Cesium1.119/Assets/Textures/maki/monument.png +0 -0
  240. package/template/public/Cesium1.119/Assets/Textures/maki/museum.png +0 -0
  241. package/template/public/Cesium1.119/Assets/Textures/maki/music.png +0 -0
  242. package/template/public/Cesium1.119/Assets/Textures/maki/oil-well.png +0 -0
  243. package/template/public/Cesium1.119/Assets/Textures/maki/park.png +0 -0
  244. package/template/public/Cesium1.119/Assets/Textures/maki/park2.png +0 -0
  245. package/template/public/Cesium1.119/Assets/Textures/maki/parking-garage.png +0 -0
  246. package/template/public/Cesium1.119/Assets/Textures/maki/parking.png +0 -0
  247. package/template/public/Cesium1.119/Assets/Textures/maki/pharmacy.png +0 -0
  248. package/template/public/Cesium1.119/Assets/Textures/maki/pitch.png +0 -0
  249. package/template/public/Cesium1.119/Assets/Textures/maki/place-of-worship.png +0 -0
  250. package/template/public/Cesium1.119/Assets/Textures/maki/playground.png +0 -0
  251. package/template/public/Cesium1.119/Assets/Textures/maki/police.png +0 -0
  252. package/template/public/Cesium1.119/Assets/Textures/maki/polling-place.png +0 -0
  253. package/template/public/Cesium1.119/Assets/Textures/maki/post.png +0 -0
  254. package/template/public/Cesium1.119/Assets/Textures/maki/prison.png +0 -0
  255. package/template/public/Cesium1.119/Assets/Textures/maki/rail-above.png +0 -0
  256. package/template/public/Cesium1.119/Assets/Textures/maki/rail-light.png +0 -0
  257. package/template/public/Cesium1.119/Assets/Textures/maki/rail-metro.png +0 -0
  258. package/template/public/Cesium1.119/Assets/Textures/maki/rail-underground.png +0 -0
  259. package/template/public/Cesium1.119/Assets/Textures/maki/rail.png +0 -0
  260. package/template/public/Cesium1.119/Assets/Textures/maki/religious-christian.png +0 -0
  261. package/template/public/Cesium1.119/Assets/Textures/maki/religious-jewish.png +0 -0
  262. package/template/public/Cesium1.119/Assets/Textures/maki/religious-muslim.png +0 -0
  263. package/template/public/Cesium1.119/Assets/Textures/maki/restaurant.png +0 -0
  264. package/template/public/Cesium1.119/Assets/Textures/maki/roadblock.png +0 -0
  265. package/template/public/Cesium1.119/Assets/Textures/maki/rocket.png +0 -0
  266. package/template/public/Cesium1.119/Assets/Textures/maki/school.png +0 -0
  267. package/template/public/Cesium1.119/Assets/Textures/maki/scooter.png +0 -0
  268. package/template/public/Cesium1.119/Assets/Textures/maki/shop.png +0 -0
  269. package/template/public/Cesium1.119/Assets/Textures/maki/skiing.png +0 -0
  270. package/template/public/Cesium1.119/Assets/Textures/maki/slaughterhouse.png +0 -0
  271. package/template/public/Cesium1.119/Assets/Textures/maki/soccer.png +0 -0
  272. package/template/public/Cesium1.119/Assets/Textures/maki/square-stroked.png +0 -0
  273. package/template/public/Cesium1.119/Assets/Textures/maki/square.png +0 -0
  274. package/template/public/Cesium1.119/Assets/Textures/maki/star-stroked.png +0 -0
  275. package/template/public/Cesium1.119/Assets/Textures/maki/star.png +0 -0
  276. package/template/public/Cesium1.119/Assets/Textures/maki/suitcase.png +0 -0
  277. package/template/public/Cesium1.119/Assets/Textures/maki/swimming.png +0 -0
  278. package/template/public/Cesium1.119/Assets/Textures/maki/telephone.png +0 -0
  279. package/template/public/Cesium1.119/Assets/Textures/maki/tennis.png +0 -0
  280. package/template/public/Cesium1.119/Assets/Textures/maki/theatre.png +0 -0
  281. package/template/public/Cesium1.119/Assets/Textures/maki/toilets.png +0 -0
  282. package/template/public/Cesium1.119/Assets/Textures/maki/town-hall.png +0 -0
  283. package/template/public/Cesium1.119/Assets/Textures/maki/town.png +0 -0
  284. package/template/public/Cesium1.119/Assets/Textures/maki/triangle-stroked.png +0 -0
  285. package/template/public/Cesium1.119/Assets/Textures/maki/triangle.png +0 -0
  286. package/template/public/Cesium1.119/Assets/Textures/maki/village.png +0 -0
  287. package/template/public/Cesium1.119/Assets/Textures/maki/warehouse.png +0 -0
  288. package/template/public/Cesium1.119/Assets/Textures/maki/waste-basket.png +0 -0
  289. package/template/public/Cesium1.119/Assets/Textures/maki/water.png +0 -0
  290. package/template/public/Cesium1.119/Assets/Textures/maki/wetland.png +0 -0
  291. package/template/public/Cesium1.119/Assets/Textures/maki/zoo.png +0 -0
  292. package/template/public/Cesium1.119/Assets/Textures/moonSmall.jpg +0 -0
  293. package/template/public/Cesium1.119/Assets/Textures/pin.svg +0 -1
  294. package/template/public/Cesium1.119/Assets/Textures/waterNormals.jpg +0 -0
  295. package/template/public/Cesium1.119/Assets/Textures/waterNormalsSmall.jpg +0 -0
  296. package/template/public/Cesium1.119/Assets/approximateTerrainHeights.json +0 -10924
  297. package/template/public/Cesium1.119/Cesium.js +0 -185772
  298. package/template/public/Cesium1.119/ThirdParty/Workers/package.json +0 -3
  299. package/template/public/Cesium1.119/ThirdParty/Workers/pako_deflate.min.js +0 -1681
  300. package/template/public/Cesium1.119/ThirdParty/Workers/pako_inflate.min.js +0 -1489
  301. package/template/public/Cesium1.119/ThirdParty/Workers/z-worker-pako.js +0 -1070
  302. package/template/public/Cesium1.119/ThirdParty/basis_transcoder.wasm +0 -0
  303. package/template/public/Cesium1.119/ThirdParty/draco_decoder.wasm +0 -0
  304. package/template/public/Cesium1.119/ThirdParty/google-earth-dbroot-parser.js +0 -11424
  305. package/template/public/Cesium1.119/Widgets/Animation/Animation.css +0 -127
  306. package/template/public/Cesium1.119/Widgets/Animation/lighter.css +0 -78
  307. package/template/public/Cesium1.119/Widgets/BaseLayerPicker/BaseLayerPicker.css +0 -112
  308. package/template/public/Cesium1.119/Widgets/BaseLayerPicker/lighter.css +0 -28
  309. package/template/public/Cesium1.119/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +0 -104
  310. package/template/public/Cesium1.119/Widgets/CesiumInspector/CesiumInspector.css +0 -115
  311. package/template/public/Cesium1.119/Widgets/CesiumWidget/CesiumWidget.css +0 -119
  312. package/template/public/Cesium1.119/Widgets/CesiumWidget/lighter.css +0 -14
  313. package/template/public/Cesium1.119/Widgets/FullscreenButton/FullscreenButton.css +0 -8
  314. package/template/public/Cesium1.119/Widgets/Geocoder/Geocoder.css +0 -72
  315. package/template/public/Cesium1.119/Widgets/Geocoder/lighter.css +0 -17
  316. package/template/public/Cesium1.119/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css +0 -27
  317. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png +0 -0
  318. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png +0 -0
  319. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png +0 -0
  320. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/bingAerial.png +0 -0
  321. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/bingAerialLabels.png +0 -0
  322. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/bingRoads.png +0 -0
  323. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/blueMarble.png +0 -0
  324. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/earthAtNight.png +0 -0
  325. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/mapQuestOpenStreetMap.png +0 -0
  326. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/mapboxSatellite.png +0 -0
  327. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/mapboxStreets.png +0 -0
  328. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/mapboxTerrain.png +0 -0
  329. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/naturalEarthII.png +0 -0
  330. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/openStreetMap.png +0 -0
  331. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/sentinel-2.png +0 -0
  332. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png +0 -0
  333. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png +0 -0
  334. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/stamenToner.png +0 -0
  335. package/template/public/Cesium1.119/Widgets/Images/ImageryProviders/stamenWatercolor.png +0 -0
  336. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/Mouse.svg +0 -84
  337. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/MouseLeft.svg +0 -76
  338. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/MouseMiddle.svg +0 -76
  339. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/MouseRight.svg +0 -76
  340. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/Touch.svg +0 -120
  341. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/TouchDrag.svg +0 -129
  342. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/TouchRotate.svg +0 -76
  343. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/TouchTilt.svg +0 -135
  344. package/template/public/Cesium1.119/Widgets/Images/NavigationHelp/TouchZoom.svg +0 -74
  345. package/template/public/Cesium1.119/Widgets/Images/TerrainProviders/CesiumWorldTerrain.png +0 -0
  346. package/template/public/Cesium1.119/Widgets/Images/TerrainProviders/Ellipsoid.png +0 -0
  347. package/template/public/Cesium1.119/Widgets/Images/TimelineIcons.png +0 -0
  348. package/template/public/Cesium1.119/Widgets/Images/info-loading.gif +0 -0
  349. package/template/public/Cesium1.119/Widgets/InfoBox/InfoBox.css +0 -94
  350. package/template/public/Cesium1.119/Widgets/InfoBox/InfoBoxDescription.css +0 -178
  351. package/template/public/Cesium1.119/Widgets/NavigationHelpButton/NavigationHelpButton.css +0 -95
  352. package/template/public/Cesium1.119/Widgets/NavigationHelpButton/lighter.css +0 -38
  353. package/template/public/Cesium1.119/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +0 -15
  354. package/template/public/Cesium1.119/Widgets/ProjectionPicker/ProjectionPicker.css +0 -46
  355. package/template/public/Cesium1.119/Widgets/SceneModePicker/SceneModePicker.css +0 -72
  356. package/template/public/Cesium1.119/Widgets/SelectionIndicator/SelectionIndicator.css +0 -22
  357. package/template/public/Cesium1.119/Widgets/Timeline/Timeline.css +0 -103
  358. package/template/public/Cesium1.119/Widgets/Timeline/lighter.css +0 -18
  359. package/template/public/Cesium1.119/Widgets/VRButton/VRButton.css +0 -8
  360. package/template/public/Cesium1.119/Widgets/Viewer/Viewer.css +0 -107
  361. package/template/public/Cesium1.119/Widgets/VoxelInspector/VoxelInspector.css +0 -18
  362. package/template/public/Cesium1.119/Widgets/lighter.css +0 -246
  363. package/template/public/Cesium1.119/Widgets/lighterShared.css +0 -46
  364. package/template/public/Cesium1.119/Widgets/shared.css +0 -103
  365. package/template/public/Cesium1.119/Widgets/widgets.css +0 -1376
  366. package/template/public/Cesium1.119/Workers/chunk-3C7WC463.js +0 -611
  367. package/template/public/Cesium1.119/Workers/chunk-3JW36LZF.js +0 -166
  368. package/template/public/Cesium1.119/Workers/chunk-4BTGX3WJ.js +0 -264
  369. package/template/public/Cesium1.119/Workers/chunk-4WRMLZA7.js +0 -128
  370. package/template/public/Cesium1.119/Workers/chunk-7Z5IIKOJ.js +0 -8046
  371. package/template/public/Cesium1.119/Workers/chunk-ABGXSJNX.js +0 -341
  372. package/template/public/Cesium1.119/Workers/chunk-AMQUWUD4.js +0 -269
  373. package/template/public/Cesium1.119/Workers/chunk-ATPDRNKI.js +0 -28
  374. package/template/public/Cesium1.119/Workers/chunk-BMHPVZ4H.js +0 -199
  375. package/template/public/Cesium1.119/Workers/chunk-CBEO3SHS.js +0 -1102
  376. package/template/public/Cesium1.119/Workers/chunk-CV7DLCWG.js +0 -485
  377. package/template/public/Cesium1.119/Workers/chunk-DQO6B4EQ.js +0 -76
  378. package/template/public/Cesium1.119/Workers/chunk-ED3TLP6D.js +0 -91
  379. package/template/public/Cesium1.119/Workers/chunk-EFZKO5RU.js +0 -42
  380. package/template/public/Cesium1.119/Workers/chunk-F5IHREXR.js +0 -2678
  381. package/template/public/Cesium1.119/Workers/chunk-FKRG4HDY.js +0 -516
  382. package/template/public/Cesium1.119/Workers/chunk-FYOYUPXG.js +0 -399
  383. package/template/public/Cesium1.119/Workers/chunk-GFN7NNSJ.js +0 -65
  384. package/template/public/Cesium1.119/Workers/chunk-HEEMUCG6.js +0 -92
  385. package/template/public/Cesium1.119/Workers/chunk-HSWA4OEL.js +0 -672
  386. package/template/public/Cesium1.119/Workers/chunk-IAC5XVZV.js +0 -287
  387. package/template/public/Cesium1.119/Workers/chunk-II4VNKYR.js +0 -50
  388. package/template/public/Cesium1.119/Workers/chunk-ILGBPNP6.js +0 -28
  389. package/template/public/Cesium1.119/Workers/chunk-IRH46BDL.js +0 -124
  390. package/template/public/Cesium1.119/Workers/chunk-IUA6FAOZ.js +0 -31
  391. package/template/public/Cesium1.119/Workers/chunk-K4ASOM65.js +0 -331
  392. package/template/public/Cesium1.119/Workers/chunk-KCIZBVXL.js +0 -258
  393. package/template/public/Cesium1.119/Workers/chunk-KF5NF354.js +0 -162
  394. package/template/public/Cesium1.119/Workers/chunk-KRKI6AAO.js +0 -773
  395. package/template/public/Cesium1.119/Workers/chunk-KZNJOCYU.js +0 -162
  396. package/template/public/Cesium1.119/Workers/chunk-O5IJ3OGP.js +0 -857
  397. package/template/public/Cesium1.119/Workers/chunk-OO23RBLX.js +0 -183
  398. package/template/public/Cesium1.119/Workers/chunk-P37AI2DW.js +0 -85
  399. package/template/public/Cesium1.119/Workers/chunk-PDMQLSBL.js +0 -108
  400. package/template/public/Cesium1.119/Workers/chunk-PEYJTJPE.js +0 -73
  401. package/template/public/Cesium1.119/Workers/chunk-POASMU2N.js +0 -2372
  402. package/template/public/Cesium1.119/Workers/chunk-PXCJYT2S.js +0 -73
  403. package/template/public/Cesium1.119/Workers/chunk-Q6L7X3LP.js +0 -538
  404. package/template/public/Cesium1.119/Workers/chunk-QB3MDM4J.js +0 -1670
  405. package/template/public/Cesium1.119/Workers/chunk-R6KGAEF6.js +0 -392
  406. package/template/public/Cesium1.119/Workers/chunk-RXTBM4OI.js +0 -57
  407. package/template/public/Cesium1.119/Workers/chunk-SB224QGV.js +0 -72
  408. package/template/public/Cesium1.119/Workers/chunk-T6BE4RZK.js +0 -37
  409. package/template/public/Cesium1.119/Workers/chunk-TAMCUKAR.js +0 -814
  410. package/template/public/Cesium1.119/Workers/chunk-TMSETF7M.js +0 -579
  411. package/template/public/Cesium1.119/Workers/chunk-TOGHF3VN.js +0 -376
  412. package/template/public/Cesium1.119/Workers/chunk-UH2WFNTA.js +0 -111
  413. package/template/public/Cesium1.119/Workers/chunk-V7JEDBOE.js +0 -573
  414. package/template/public/Cesium1.119/Workers/chunk-VBIROZR5.js +0 -633
  415. package/template/public/Cesium1.119/Workers/chunk-W23CU777.js +0 -271
  416. package/template/public/Cesium1.119/Workers/chunk-X5IHHI6X.js +0 -173
  417. package/template/public/Cesium1.119/Workers/chunk-XHX2UPDO.js +0 -217
  418. package/template/public/Cesium1.119/Workers/combineGeometry.js +0 -53
  419. package/template/public/Cesium1.119/Workers/createBoxGeometry.js +0 -45
  420. package/template/public/Cesium1.119/Workers/createBoxOutlineGeometry.js +0 -189
  421. package/template/public/Cesium1.119/Workers/createCircleGeometry.js +0 -148
  422. package/template/public/Cesium1.119/Workers/createCircleOutlineGeometry.js +0 -105
  423. package/template/public/Cesium1.119/Workers/createCoplanarPolygonGeometry.js +0 -293
  424. package/template/public/Cesium1.119/Workers/createCoplanarPolygonOutlineGeometry.js +0 -143
  425. package/template/public/Cesium1.119/Workers/createCorridorGeometry.js +0 -830
  426. package/template/public/Cesium1.119/Workers/createCorridorOutlineGeometry.js +0 -417
  427. package/template/public/Cesium1.119/Workers/createCylinderGeometry.js +0 -47
  428. package/template/public/Cesium1.119/Workers/createCylinderOutlineGeometry.js +0 -170
  429. package/template/public/Cesium1.119/Workers/createEllipseGeometry.js +0 -58
  430. package/template/public/Cesium1.119/Workers/createEllipseOutlineGeometry.js +0 -51
  431. package/template/public/Cesium1.119/Workers/createEllipsoidGeometry.js +0 -46
  432. package/template/public/Cesium1.119/Workers/createEllipsoidOutlineGeometry.js +0 -45
  433. package/template/public/Cesium1.119/Workers/createFrustumGeometry.js +0 -45
  434. package/template/public/Cesium1.119/Workers/createFrustumOutlineGeometry.js +0 -164
  435. package/template/public/Cesium1.119/Workers/createGeometry.js +0 -159
  436. package/template/public/Cesium1.119/Workers/createGroundPolylineGeometry.js +0 -911
  437. package/template/public/Cesium1.119/Workers/createPlaneGeometry.js +0 -185
  438. package/template/public/Cesium1.119/Workers/createPlaneOutlineGeometry.js +0 -93
  439. package/template/public/Cesium1.119/Workers/createPolygonGeometry.js +0 -884
  440. package/template/public/Cesium1.119/Workers/createPolygonOutlineGeometry.js +0 -359
  441. package/template/public/Cesium1.119/Workers/createPolylineGeometry.js +0 -349
  442. package/template/public/Cesium1.119/Workers/createPolylineVolumeGeometry.js +0 -262
  443. package/template/public/Cesium1.119/Workers/createPolylineVolumeOutlineGeometry.js +0 -177
  444. package/template/public/Cesium1.119/Workers/createRectangleGeometry.js +0 -787
  445. package/template/public/Cesium1.119/Workers/createRectangleOutlineGeometry.js +0 -299
  446. package/template/public/Cesium1.119/Workers/createSimplePolylineGeometry.js +0 -294
  447. package/template/public/Cesium1.119/Workers/createSphereGeometry.js +0 -84
  448. package/template/public/Cesium1.119/Workers/createSphereOutlineGeometry.js +0 -83
  449. package/template/public/Cesium1.119/Workers/createTaskProcessorWorker.js +0 -28
  450. package/template/public/Cesium1.119/Workers/createVectorTileClampedPolylines.js +0 -289
  451. package/template/public/Cesium1.119/Workers/createVectorTileGeometries.js +0 -258
  452. package/template/public/Cesium1.119/Workers/createVectorTilePoints.js +0 -79
  453. package/template/public/Cesium1.119/Workers/createVectorTilePolygons.js +0 -275
  454. package/template/public/Cesium1.119/Workers/createVectorTilePolylines.js +0 -176
  455. package/template/public/Cesium1.119/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +0 -375
  456. package/template/public/Cesium1.119/Workers/createVerticesFromHeightmap.js +0 -1772
  457. package/template/public/Cesium1.119/Workers/createVerticesFromQuantizedTerrainMesh.js +0 -425
  458. package/template/public/Cesium1.119/Workers/createWallGeometry.js +0 -320
  459. package/template/public/Cesium1.119/Workers/createWallOutlineGeometry.js +0 -229
  460. package/template/public/Cesium1.119/Workers/decodeDraco.js +0 -227
  461. package/template/public/Cesium1.119/Workers/decodeGoogleEarthEnterprisePacket.js +0 -1836
  462. package/template/public/Cesium1.119/Workers/decodeI3S.js +0 -924
  463. package/template/public/Cesium1.119/Workers/transcodeKTX2.js +0 -3180
  464. package/template/public/Cesium1.119/Workers/transferTypedArrayTest.js +0 -34
  465. package/template/public/Cesium1.119/Workers/upsampleQuantizedTerrainMesh.js +0 -534
  466. package/template/public/Cesium1.119/index.cjs +0 -185632
  467. package/template/public/Cesium1.119/index.js +0 -182874
  468. package/template/src/views/Test/index.vue +0 -23
  469. package/template/tests/unit/example.test.ts +0 -7
@@ -0,0 +1,208 @@
1
+ export type SlideBlock =
2
+ | { type: 'p'; text: string }
3
+ | { type: 'ul'; items: string[] }
4
+ | { type: 'code'; text: string }
5
+ | { type: 'table'; headers: string[]; rows: string[][] }
6
+ | { type: 'links'; items: { label: string; to: string }[] };
7
+
8
+ export interface OnboardingSlide {
9
+ id: string;
10
+ title: string;
11
+ tagline?: string;
12
+ blocks: SlideBlock[];
13
+ }
14
+
15
+ export const onboardingSlides: OnboardingSlide[] = [
16
+ {
17
+ id: 'welcome',
18
+ title: 'SWDG 前端模板',
19
+ tagline: 'Vue 3 · TypeScript · Vite · 约定式路由',
20
+ blocks: [
21
+ {
22
+ type: 'p',
23
+ text: '面向团队的标准前端壳:业务在 src/views 开发,示例与文档内置在开发模式,生产构建自动剔除演示路由。',
24
+ },
25
+ {
26
+ type: 'ul',
27
+ items: [
28
+ '直接 clone 本仓库,或在团队内迭代模板',
29
+ 'pnpm create swdg my-app 脚手架生成独立项目',
30
+ '左右方向键 / 按钮翻页浏览本指南',
31
+ ],
32
+ },
33
+ {
34
+ type: 'links',
35
+ items: [{ label: '全屏幻灯片模式 →', to: '/examples/guide' }],
36
+ },
37
+ ],
38
+ },
39
+ {
40
+ id: 'quickstart',
41
+ title: '快速开始',
42
+ tagline: '第一次跑起来',
43
+ blocks: [
44
+ {
45
+ type: 'code',
46
+ text: 'pnpm install\ncp .env.example .env\npnpm dev',
47
+ },
48
+ {
49
+ type: 'ul',
50
+ items: [
51
+ '需要 Node.js 22+,推荐 pnpm 9+',
52
+ '默认 http://localhost:3000 ,Hash 路由 /#/',
53
+ '修改 .env 后必须重启 pnpm dev',
54
+ ],
55
+ },
56
+ ],
57
+ },
58
+ {
59
+ id: 'env',
60
+ title: '环境变量',
61
+ tagline: '.env 配置说明',
62
+ blocks: [
63
+ {
64
+ type: 'table',
65
+ headers: ['变量', '说明'],
66
+ rows: [
67
+ ['VITE_DEMO_PROXY_TARGET', '开发代理 /demo 的后端地址'],
68
+ ['VITE_FEATURE_GIS', 'true 时启用 Cesium 入口与示例'],
69
+ ['VITE_CESIUM_ION_ACCESS_TOKEN', '可选,默认 OSM 底图可不填'],
70
+ ],
71
+ },
72
+ {
73
+ type: 'p',
74
+ text: '看不到 Cesium?确认 VITE_FEATURE_GIS=true 并重启 dev。',
75
+ },
76
+ ],
77
+ },
78
+ {
79
+ id: 'routes',
80
+ title: '约定式路由',
81
+ tagline: '不用手写 routes',
82
+ blocks: [
83
+ {
84
+ type: 'p',
85
+ text: 'src/views 下每个 .vue 自动注册为路由(Hash 模式)。',
86
+ },
87
+ {
88
+ type: 'table',
89
+ headers: ['文件', '访问路径'],
90
+ rows: [
91
+ ['src/views/index.vue', '/#/'],
92
+ ['src/views/UserList/index.vue', '/#/user-list'],
93
+ ['src/views/examples/test/index.vue', '/#/examples/test'],
94
+ ],
95
+ },
96
+ {
97
+ type: 'p',
98
+ text: 'examples/ 目录仅开发环境可用,生产 build 会自动排除。',
99
+ },
100
+ ],
101
+ },
102
+ {
103
+ id: 'dirs',
104
+ title: '目录结构',
105
+ tagline: '代码放哪里',
106
+ blocks: [
107
+ {
108
+ type: 'code',
109
+ text: 'src/views/ 业务页面\nsrc/components/ 公共组件\nsrc/api/ 接口请求\nsrc/stores/ Pinia\nsrc/utils/ 工具 & composables\ninterface/ 业务类型\ndocs/ Markdown 文档',
110
+ },
111
+ ],
112
+ },
113
+ {
114
+ id: 'alias',
115
+ title: '路径别名',
116
+ tagline: 'import 写法',
117
+ blocks: [
118
+ {
119
+ type: 'code',
120
+ text: "import { useCounterStore } from '@stores/useCounter';\nimport { useFeatureGis } from '@composables/useFeatureGis';\nimport MyCard from '@components/MyCard/index.vue';",
121
+ },
122
+ {
123
+ type: 'ul',
124
+ items: [
125
+ '@/ → src/',
126
+ '@api/ @stores/ @utils/ @views/ @layout/',
127
+ '完整列表见 tsconfig.json → paths',
128
+ ],
129
+ },
130
+ ],
131
+ },
132
+ {
133
+ id: 'api',
134
+ title: '接口与代理',
135
+ tagline: '调后端',
136
+ blocks: [
137
+ {
138
+ type: 'p',
139
+ text: '接口代码放在 src/api/。开发环境请求 /demo 会代理到 VITE_DEMO_PROXY_TARGET。',
140
+ },
141
+ {
142
+ type: 'code',
143
+ text: '# 从 OpenAPI 生成客户端\npnpm gen:api',
144
+ },
145
+ ],
146
+ },
147
+ {
148
+ id: 'gis',
149
+ title: 'GIS / Cesium',
150
+ tagline: '可选三维能力',
151
+ blocks: [
152
+ {
153
+ type: 'p',
154
+ text: '脚手架 --gis 创建,或 .env 开启 VITE_FEATURE_GIS=true。',
155
+ },
156
+ {
157
+ type: 'code',
158
+ text: "import CesiumViewer from '@components/CesiumViewer/index.vue';\n// 或\nimport { createViewer } from '@utils/cesium';",
159
+ },
160
+ {
161
+ type: 'links',
162
+ items: [{ label: '打开 Cesium 示例页 →', to: '/examples/cesium' }],
163
+ },
164
+ ],
165
+ },
166
+ {
167
+ id: 'commands',
168
+ title: '常用命令',
169
+ tagline: '日常开发',
170
+ blocks: [
171
+ {
172
+ type: 'table',
173
+ headers: ['命令', '作用'],
174
+ rows: [
175
+ ['pnpm dev', '本地开发'],
176
+ ['pnpm build', '生产构建 → dist/'],
177
+ ['pnpm typecheck', 'TypeScript 检查'],
178
+ ['pnpm verify', 'typecheck + lint(提交前)'],
179
+ ['pnpm test:run', '单元测试'],
180
+ ],
181
+ },
182
+ ],
183
+ },
184
+ {
185
+ id: 'workflow',
186
+ title: '推荐工作流',
187
+ tagline: '从这里开始业务',
188
+ blocks: [
189
+ {
190
+ type: 'ul',
191
+ items: [
192
+ '1. cp .env.example .env,配置代理与 GIS',
193
+ '2. pnpm dev,浏览本页示例与 Store 演示',
194
+ '3. 在 src/views/ 新建业务目录',
195
+ '4. 补充 src/api/、src/stores/',
196
+ '5. 提交前 pnpm verify',
197
+ ],
198
+ },
199
+ {
200
+ type: 'links',
201
+ items: [
202
+ { label: 'Store / Alert 示例 →', to: '/examples/test' },
203
+ { label: '返回首页 →', to: '/' },
204
+ ],
205
+ },
206
+ ],
207
+ },
208
+ ];
@@ -1,9 +1,9 @@
1
- import type { Directive } from 'vue';
2
-
3
- const focus: Directive = {
4
- mounted(el) {
5
- el.focus();
6
- },
7
- };
8
-
9
- export default focus;
1
+ import type { Directive } from 'vue';
2
+
3
+ const focus: Directive = {
4
+ mounted(el) {
5
+ el.focus();
6
+ },
7
+ };
8
+
9
+ export default focus;
@@ -1,28 +1,28 @@
1
- <template>
2
- <div class="layout">
3
- <header class="layout-header">{{ title }}</header>
4
- <main class="layout-content">
5
- <slot />
6
- </main>
7
- </div>
8
- </template>
9
-
10
- <script setup lang="ts">
11
- defineProps<{ title?: string }>();
12
- </script>
13
-
14
- <style scoped>
15
- .layout {
16
- min-height: 100vh;
17
- background: #f6f7fb;
18
- }
19
-
20
- .layout-header {
21
- padding: 16px;
22
- font-weight: 600;
23
- }
24
-
25
- .layout-content {
26
- padding: 16px;
27
- }
28
- </style>
1
+ <template>
2
+ <div class="layout">
3
+ <header class="layout-header">{{ title }}</header>
4
+ <main class="layout-content">
5
+ <slot />
6
+ </main>
7
+ </div>
8
+ </template>
9
+
10
+ <script setup lang="ts">
11
+ defineProps<{ title?: string }>();
12
+ </script>
13
+
14
+ <style scoped>
15
+ .layout {
16
+ min-height: 100vh;
17
+ background: #f6f7fb;
18
+ }
19
+
20
+ .layout-header {
21
+ padding: 16px;
22
+ font-weight: 600;
23
+ }
24
+
25
+ .layout-content {
26
+ padding: 16px;
27
+ }
28
+ </style>
@@ -1,33 +1,25 @@
1
- import { createApp } from 'vue';
2
- import { createPinia } from 'pinia';
3
-
4
- import './styles/global.css';
5
- import './styles/alerts.less';
6
-
7
- import ElementPlus from 'element-plus';
8
- import zhCn from 'element-plus/es/locale/lang/zh-cn';
9
- import 'element-plus/dist/index.css';
10
-
11
- import App from './App.vue';
12
- import 'amfe-flexible';
13
- import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
14
-
15
- import router from '@/router';
16
- import globalComponents from '@/utils/components';
17
- import AlertPlugin from '@/utils/alert';
18
- import focus from '@/directive/focus';
19
-
20
- const app = createApp(App);
21
- const pinia = createPinia();
22
- pinia.use(piniaPluginPersistedstate);
23
-
24
- app.use(ElementPlus, {
25
- locale: zhCn,
26
- });
27
- app.use(pinia);
28
- app.use(router);
29
- app.use(globalComponents);
30
- app.use(AlertPlugin);
31
- app.directive('focus', focus);
32
-
33
- app.mount('#app');
1
+ import { createApp } from 'vue';
2
+ import { createPinia } from 'pinia';
3
+
4
+ import './styles/global.css';
5
+ import './styles/shell.css';
6
+ import './styles/alerts.less';
7
+
8
+ import App from './App.vue';
9
+ import piniaPluginPersistedstate from 'pinia-plugin-persistedstate';
10
+
11
+ import router from '@/router';
12
+ import globalComponents from '@/utils/components';
13
+ import AlertPlugin from '@/utils/alert';
14
+ import focus from '@/directive/focus';
15
+
16
+ const app = createApp(App);
17
+ const pinia = createPinia();
18
+ pinia.use(piniaPluginPersistedstate);
19
+ app.use(pinia);
20
+ app.use(router);
21
+ app.use(globalComponents);
22
+ app.use(AlertPlugin);
23
+ app.directive('focus', focus);
24
+
25
+ app.mount('#app');
@@ -1,24 +1,30 @@
1
- import { createRouter, createWebHashHistory } from 'vue-router';
2
-
3
- const pages = import.meta.glob('../views/**/*.vue');
4
-
5
- const routes = Object.keys(pages).map((path) => {
6
- const routePath = path
7
- .replace(/..\/views/, '')
8
- .replace(/\.\w+$/, '')
9
- .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
10
- .toLowerCase()
11
- .replace(/index$/, '');
12
-
13
- return {
14
- path: routePath,
15
- component: pages[path],
16
- };
17
- });
18
-
19
- const router = createRouter({
20
- history: createWebHashHistory(),
21
- routes,
22
- });
23
-
24
- export default router;
1
+ import {
2
+ createRouter,
3
+ createWebHashHistory,
4
+ type RouteRecordRaw,
5
+ } from 'vue-router';
6
+ import { filePathToRoute, isExampleRoute } from './routeUtils';
7
+
8
+ const pages = import.meta.glob('../views/**/*.vue');
9
+
10
+ const routes: RouteRecordRaw[] = Object.keys(pages)
11
+ .filter((filePath) => {
12
+ if (import.meta.env.PROD && isExampleRoute(filePath)) {
13
+ return false;
14
+ }
15
+ return true;
16
+ })
17
+ .map((filePath) => ({
18
+ path: filePathToRoute(filePath),
19
+ component: pages[filePath],
20
+ meta: {
21
+ isExample: isExampleRoute(filePath),
22
+ },
23
+ }));
24
+
25
+ const router = createRouter({
26
+ history: createWebHashHistory(),
27
+ routes,
28
+ });
29
+
30
+ export default router;
@@ -0,0 +1,13 @@
1
+ /** 约定式路由:views 文件路径 → URL path */
2
+ export function isExampleRoute(filePath: string): boolean {
3
+ return /\/(examples|_examples)\//.test(filePath);
4
+ }
5
+
6
+ export function filePathToRoute(filePath: string): string {
7
+ return filePath
8
+ .replace(/..\/views/, '')
9
+ .replace(/\.\w+$/, '')
10
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
11
+ .toLowerCase()
12
+ .replace(/\/index$/, '');
13
+ }
@@ -1,3 +1,3 @@
1
- # stores
2
-
3
- 全局状态管理放在这里。
1
+ # stores
2
+
3
+ 全局状态管理放在这里。
@@ -1,12 +1,12 @@
1
- import { defineStore } from 'pinia';
2
-
3
- export const useCounterStore = defineStore('counter', {
4
- state: () => ({
5
- count: 0,
6
- }),
7
- actions: {
8
- inc() {
9
- this.count += 1;
10
- },
11
- },
12
- });
1
+ import { defineStore } from 'pinia';
2
+
3
+ export const useCounterStore = defineStore('counter', {
4
+ state: () => ({
5
+ count: 0,
6
+ }),
7
+ actions: {
8
+ inc() {
9
+ this.count += 1;
10
+ },
11
+ },
12
+ });
@@ -1,85 +1,85 @@
1
- // 定义颜色变量
2
- @success-color: #67c23a;
3
- @warning-color: #e6a23c;
4
- @error-color: #f56c6c;
5
- @info-color: #909399;
6
- @text-color: #fff;
7
- @shadow-color: rgba(0, 0, 0, 0.1);
8
-
9
- // 基础字体大小和间距
10
- @font-size: 16px;
11
- @padding: 10px 20px;
12
-
13
- // 动画渐变定义
14
- @keyframes fadeIn {
15
- from {
16
- opacity: 0;
17
- }
18
- to {
19
- opacity: 1;
20
- }
21
- }
22
-
23
- @keyframes fadeOut {
24
- from {
25
- opacity: 1;
26
- }
27
- to {
28
- opacity: 0;
29
- }
30
- }
31
-
32
- .alerts-container {
33
- position: fixed;
34
- top: 20px;
35
- left: 50%;
36
- transform: translateX(-50%);
37
- z-index: 9999;
38
- display: flex;
39
- flex-direction: column;
40
- align-items: center;
41
- gap: 10px;
42
- }
43
-
44
- .alert {
45
- padding: @padding;
46
- color: @text-color;
47
- border-radius: 5px;
48
- box-shadow: 0 2px 8px @shadow-color;
49
- font-size: @font-size;
50
- display: flex;
51
- align-items: center;
52
- justify-content: space-between;
53
- gap: 10px;
54
- width: 250px;
55
- animation: fadeIn 0.5s ease-out;
56
-
57
- div:last-child {
58
- font-size: larger;
59
- cursor: pointer;
60
- user-select: none;
61
- line-height: 100%;
62
- vertical-align: middle;
63
- transform: translateX(5px);
64
-
65
- &:hover {
66
- color: #f4f4f4;
67
- }
68
- }
69
- }
70
-
71
- .alert-success {
72
- background-color: @success-color;
73
- }
74
-
75
- .alert-warning {
76
- background-color: @warning-color;
77
- }
78
-
79
- .alert-error {
80
- background-color: @error-color;
81
- }
82
-
83
- .alert-info {
84
- background-color: @info-color;
85
- }
1
+ // 定义颜色变量
2
+ @success-color: #67c23a;
3
+ @warning-color: #e6a23c;
4
+ @error-color: #f56c6c;
5
+ @info-color: #909399;
6
+ @text-color: #fff;
7
+ @shadow-color: rgba(0, 0, 0, 0.1);
8
+
9
+ // 基础字体大小和间距
10
+ @font-size: 16px;
11
+ @padding: 10px 20px;
12
+
13
+ // 动画渐变定义
14
+ @keyframes fadeIn {
15
+ from {
16
+ opacity: 0;
17
+ }
18
+ to {
19
+ opacity: 1;
20
+ }
21
+ }
22
+
23
+ @keyframes fadeOut {
24
+ from {
25
+ opacity: 1;
26
+ }
27
+ to {
28
+ opacity: 0;
29
+ }
30
+ }
31
+
32
+ .alerts-container {
33
+ position: fixed;
34
+ top: 20px;
35
+ left: 50%;
36
+ transform: translateX(-50%);
37
+ z-index: 9999;
38
+ display: flex;
39
+ flex-direction: column;
40
+ align-items: center;
41
+ gap: 10px;
42
+ }
43
+
44
+ .alert {
45
+ padding: @padding;
46
+ color: @text-color;
47
+ border-radius: 5px;
48
+ box-shadow: 0 2px 8px @shadow-color;
49
+ font-size: @font-size;
50
+ display: flex;
51
+ align-items: center;
52
+ justify-content: space-between;
53
+ gap: 10px;
54
+ width: 250px;
55
+ animation: fadeIn 0.5s ease-out;
56
+
57
+ div:last-child {
58
+ font-size: larger;
59
+ cursor: pointer;
60
+ user-select: none;
61
+ line-height: 100%;
62
+ vertical-align: middle;
63
+ transform: translateX(5px);
64
+
65
+ &:hover {
66
+ color: #f4f4f4;
67
+ }
68
+ }
69
+ }
70
+
71
+ .alert-success {
72
+ background-color: @success-color;
73
+ }
74
+
75
+ .alert-warning {
76
+ background-color: @warning-color;
77
+ }
78
+
79
+ .alert-error {
80
+ background-color: @error-color;
81
+ }
82
+
83
+ .alert-info {
84
+ background-color: @info-color;
85
+ }