index.vue 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401
  1. <script setup lang="ts">
  2. import { useRoute } from 'vue-router';
  3. import { computed } from 'vue';
  4. interface Feature {
  5. title: string;
  6. description: string;
  7. }
  8. interface Scenario {
  9. title: string;
  10. description: string;
  11. }
  12. interface SolutionConfig {
  13. type: 'emergency' | 'lawEnforcement' | 'publicSafety' | 'safetyProduction';
  14. title: string;
  15. description: string;
  16. features: Feature[];
  17. scenarios: Scenario[];
  18. }
  19. // 应急救援配置
  20. const emergencyConfigs: Record<string, SolutionConfig> = {
  21. flood: {
  22. type: 'emergency',
  23. title: '洪涝灾害救援解决方案',
  24. description: '为洪涝灾害提供全方位的应急救援解决方案,助力快速响应和高效救援。',
  25. features: [
  26. { title: '灾情侦察', description: '无人机快速侦察灾区情况,绘制实时灾情地图' },
  27. { title: '搜救支持', description: '利用热成像技术辅助搜寻受困人员' },
  28. { title: '物资投放', description: '向受灾区域精准投放应急物资' },
  29. { title: '通信保障', description: '建立临时通信网络,保障救援指挥' }
  30. ],
  31. scenarios: [
  32. { title: '城市内涝', description: '城市暴雨导致的内涝灾害救援' },
  33. { title: '河流决堤', description: '河流决堤造成的洪涝灾害救援' },
  34. { title: '山洪暴发', description: '山区突发性洪水灾害救援' }
  35. ]
  36. },
  37. earthquake: {
  38. type: 'emergency',
  39. title: '地震与地质灾害救援解决方案',
  40. description: '为地震等地质灾害提供专业的应急救援解决方案,实现快速响应和科学救援。',
  41. features: [
  42. { title: '灾情评估', description: '无人机快速评估受灾范围和程度' },
  43. { title: '建筑损伤分析', description: 'AI分析建筑物损伤程度,评估二次灾害风险' },
  44. { title: '搜救规划', description: '基于实时数据制定最优搜救路线' },
  45. { title: '物资配送', description: '无人机向受困区域投送应急物资' }
  46. ],
  47. scenarios: [
  48. { title: '地震救援', description: '地震灾害现场搜救及救援' },
  49. { title: '滑坡救援', description: '山体滑坡灾害现场救援' },
  50. { title: '塌陷救援', description: '地面塌陷事故现场救援' }
  51. ]
  52. },
  53. forestFire: {
  54. type: 'emergency',
  55. title: '森林火灾救援解决方案',
  56. description: '为森林火灾提供智能化应急救援解决方案,提升救援效率和安全性。',
  57. features: [
  58. { title: '火情监测', description: '实时监测火情发展,预测火势蔓延' },
  59. { title: '救援规划', description: '智能规划最优灭火路线和方案' },
  60. { title: '物资投放', description: '向火场精准投放灭火物资' },
  61. { title: '人员疏散', description: '协助规划人员疏散路线' }
  62. ],
  63. scenarios: [
  64. { title: '林区火灾', description: '森林地区火灾扑救' },
  65. { title: '草原火灾', description: '草原地区火灾扑救' },
  66. { title: '交界火灾', description: '林区与居民区交界处火灾处置' }
  67. ]
  68. },
  69. mountainRescue: {
  70. type: 'emergency',
  71. title: '山岳搜救解决方案',
  72. description: '为山岳地区遇险人员提供专业的搜救解决方案,提高搜救效率和成功率。',
  73. features: [
  74. { title: '区域搜索', description: '无人机快速搜索大面积区域' },
  75. { title: '热成像侦测', description: '利用热成像技术定位遇险人员' },
  76. { title: '地形分析', description: '3D地形分析,规划最优救援路线' },
  77. { title: '通信支援', description: '建立应急通信网络,保障救援通信' }
  78. ],
  79. scenarios: [
  80. { title: '登山救援', description: '登山遇险人员搜救' },
  81. { title: '雪崩救援', description: '雪崩灾害现场搜救' },
  82. { title: '峡谷救援', description: '峡谷探险遇险救援' }
  83. ]
  84. }
  85. };
  86. // 执法管理配置
  87. const lawEnforcementConfigs: Record<string, SolutionConfig> = {
  88. patrol: {
  89. type: 'lawEnforcement',
  90. title: '治安巡逻解决方案',
  91. description: '为公安机关提供智能化治安巡逻解决方案,提升巡逻效率和治安管理水平。',
  92. features: [
  93. { title: '空中巡逻', description: '无人机协助进行区域巡逻监控' },
  94. { title: '异常识别', description: 'AI识别可疑人员和异常行为' },
  95. { title: '快速响应', description: '发现问题快速定位和处置' },
  96. { title: '数据分析', description: '治安数据分析,优化巡逻路线' }
  97. ],
  98. scenarios: [
  99. { title: '社区巡逻', description: '居民社区治安巡逻' },
  100. { title: '重点区域', description: '重点区域安保巡逻' },
  101. { title: '大型活动', description: '大型活动现场安保' }
  102. ]
  103. },
  104. traffic: {
  105. type: 'lawEnforcement',
  106. title: '交通治理解决方案',
  107. description: '为交通管理部门提供智能化交通治理解决方案,提升交通管理效率。',
  108. features: [
  109. { title: '交通监控', description: '实时监控交通流量和违法行为' },
  110. { title: '事故处理', description: '快速响应交通事故,协助现场处置' },
  111. { title: '违章取证', description: '自动记录交通违法行为' },
  112. { title: '指挥调度', description: '智能交通指挥和调度系统' }
  113. ],
  114. scenarios: [
  115. { title: '城市道路', description: '城市道路交通管理' },
  116. { title: '高速公路', description: '高速公路交通监控' },
  117. { title: '事故现场', description: '交通事故现场处置' }
  118. ]
  119. },
  120. cityManagement: {
  121. type: 'lawEnforcement',
  122. title: '城管巡查解决方案',
  123. description: '为城市管理部门提供智能化巡查解决方案,提升城市管理效率和市容市貌监管水平。',
  124. features: [
  125. { title: '违建监测', description: '无人机巡查违法建筑,自动比对分析' },
  126. { title: '环境监管', description: '城市环境卫生和污染源实时监控' },
  127. { title: '占道管理', description: '违规占道经营和乱摆摊点智能识别' },
  128. { title: '市政设施巡检', description: '市政设施完好度巡查和维护管理' }
  129. ],
  130. scenarios: [
  131. { title: '日常巡查', description: '常态化巡查监管,及时发现城市管理问题' },
  132. { title: '专项整治', description: '重点区域和专项问题集中整治行动' },
  133. { title: '应急处置', description: '突发事件快速响应和现场指挥' }
  134. ]
  135. },
  136. investigation: {
  137. type: 'lawEnforcement',
  138. title: '刑事侦查解决方案',
  139. description: '为刑侦部门提供智能化侦查解决方案,提升破案效率和侦查能力。',
  140. features: [
  141. { title: '现场勘查', description: '无人机协助现场勘查取证' },
  142. { title: '轨迹追踪', description: '嫌疑人轨迹分析和追踪' },
  143. { title: '证据采集', description: '智能化证据采集和保全' },
  144. { title: '案情分析', description: '大数据辅助案情分析' }
  145. ],
  146. scenarios: [
  147. { title: '现场勘查', description: '案发现场勘查取证' },
  148. { title: '追踪布控', description: '嫌疑人追踪布控' },
  149. { title: '案情分析', description: '复杂案情分析研判' }
  150. ]
  151. }
  152. };
  153. // 公共安全配置
  154. const publicSafetyConfigs: Record<string, SolutionConfig> = {
  155. forestry: {
  156. type: 'publicSafety',
  157. title: '林业安全解决方案',
  158. description: '为林业部门提供智能化森林资源监管和保护解决方案。',
  159. features: [
  160. { title: '资源监测', description: '森林资源动态监测和评估' },
  161. { title: '火情预警', description: '森林火险预警和监测' },
  162. { title: '病虫害防治', description: '林业病虫害监测和防治' },
  163. { title: '资源保护', description: '野生动植物资源保护' }
  164. ],
  165. scenarios: [
  166. { title: '资源普查', description: '森林资源动态普查' },
  167. { title: '火情监测', description: '森林火情实时监测' },
  168. { title: '执法巡查', description: '林业执法巡查' }
  169. ]
  170. },
  171. mapping: {
  172. type: 'publicSafety',
  173. title: '测绘应用解决方案',
  174. description: '为测绘部门提供高精度地理信息采集和处理解决方案。',
  175. features: [
  176. { title: '地形测绘', description: '高精度地形图测绘' },
  177. { title: '实景建模', description: '三维实景模型构建' },
  178. { title: '变化监测', description: '地理要素变化监测' },
  179. { title: '应急测绘', description: '突发事件应急测绘' }
  180. ],
  181. scenarios: [
  182. { title: '地形测量', description: '地形地貌测量' },
  183. { title: '工程测绘', description: '工程建设测绘' },
  184. { title: '灾害测绘', description: '灾害现场测绘' }
  185. ]
  186. },
  187. oilGas: {
  188. type: 'publicSafety',
  189. title: '油气管线巡检解决方案',
  190. description: '为油气管线提供智能化巡检和安全监管解决方案。',
  191. features: [
  192. { title: '管线巡检', description: '油气管线定期巡检' },
  193. { title: '泄漏检测', description: '管线泄漏实时监测' },
  194. { title: '隐患排查', description: '管线安全隐患排查' },
  195. { title: '应急处置', description: '管线事故应急处置' }
  196. ],
  197. scenarios: [
  198. { title: '日常巡检', description: '管线日常巡检' },
  199. { title: '应急处置', description: '管线事故处置' },
  200. { title: '工程监理', description: '管线工程监理' }
  201. ]
  202. },
  203. power: {
  204. type: 'publicSafety',
  205. title: '电力巡检解决方案',
  206. description: '为电力部门提供智能化电力设施巡检和维护解决方案。',
  207. features: [
  208. { title: '线路巡检', description: '输电线路智能巡检' },
  209. { title: '设备检测', description: '电力设备状态监测' },
  210. { title: '故障诊断', description: '设备故障智能诊断' },
  211. { title: '应急处置', description: '电力事故应急处置' }
  212. ],
  213. scenarios: [
  214. { title: '日常巡检', description: '电力设施日常巡检' },
  215. { title: '故障处理', description: '电力故障现场处理' },
  216. { title: '应急抢修', description: '电力设施应急抢修' }
  217. ]
  218. },
  219. water: {
  220. type: 'publicSafety',
  221. title: '水利设施监管解决方案',
  222. description: '为水利部门提供智能化水利设施监管和防汛抗旱解决方案。',
  223. features: [
  224. { title: '设施巡检', description: '水利设施智能巡检' },
  225. { title: '水情监测', description: '水文水情实时监测' },
  226. { title: '灾害预警', description: '洪涝灾害预警' },
  227. { title: '应急调度', description: '防汛抗旱应急调度' }
  228. ],
  229. scenarios: [
  230. { title: '日常监管', description: '水利设施日常监管' },
  231. { title: '防汛抗旱', description: '防汛抗旱应急响应' },
  232. { title: '工程监理', description: '水利工程建设监理' }
  233. ]
  234. }
  235. };
  236. // 安全生产配置
  237. const safetyProductionConfigs: Record<string, SolutionConfig> = {
  238. supervision: {
  239. type: 'safetyProduction',
  240. title: '安全生产监管解决方案',
  241. description: '为安全生产监管部门提供智能化监管和隐患排查解决方案。',
  242. features: [
  243. { title: '隐患排查', description: '生产安全隐患智能排查' },
  244. { title: '风险评估', description: '安全生产风险评估' },
  245. { title: '应急预案', description: '安全生产应急预案管理' },
  246. { title: '监管执法', description: '安全生产监管执法支持' }
  247. ],
  248. scenarios: [
  249. { title: '日常监管', description: '企业安全生产日常监管' },
  250. { title: '专项检查', description: '安全生产专项检查' },
  251. { title: '事故调查', description: '生产安全事故调查' }
  252. ]
  253. },
  254. selfInspection: {
  255. type: 'safetyProduction',
  256. title: '企业安全自查解决方案',
  257. description: '为企业提供安全生产自查和隐患自纠自改解决方案。',
  258. features: [
  259. { title: '隐患自查', description: '企业安全隐患自查系统' },
  260. { title: '整改跟踪', description: '隐患整改跟踪管理' },
  261. { title: '风险评估', description: '企业安全风险自评' },
  262. { title: '应急演练', description: '安全生产应急演练支持' }
  263. ],
  264. scenarios: [
  265. { title: '日常自查', description: '企业安全生产日常自查' },
  266. { title: '专项自查', description: '重点领域专项安全自查' },
  267. { title: '整改验收', description: '隐患整改自查验收' }
  268. ]
  269. },
  270. accidentHandling: {
  271. type: 'safetyProduction',
  272. title: '安全事故处置解决方案',
  273. description: '为安全生产事故提供智能化应急处置和事故调查解决方案。',
  274. features: [
  275. { title: '事故报告', description: '安全事故快速报告系统' },
  276. { title: '应急响应', description: '事故现场应急响应支持' },
  277. { title: '事故调查', description: '安全事故智能调查系统' },
  278. { title: '教训总结', description: '事故案例分析和经验教训总结' }
  279. ],
  280. scenarios: [
  281. { title: '事故处置', description: '生产安全事故现场处置' },
  282. { title: '应急救援', description: '重大事故应急救援' },
  283. { title: '事故调查', description: '安全事故原因调查' }
  284. ]
  285. }
  286. };
  287. const route = useRoute();
  288. const currentPath = computed(() => route.path);
  289. const getConfig = (path: string): SolutionConfig | undefined => {
  290. const pathSegments = path.split('/');
  291. const lastSegment = pathSegments[pathSegments.length - 1];
  292. if (path.includes('emergency')) {
  293. return emergencyConfigs[lastSegment];
  294. } else if (path.includes('law-enforcement')) {
  295. return lawEnforcementConfigs[lastSegment];
  296. } else if (path.includes('public-safety')) {
  297. return publicSafetyConfigs[lastSegment];
  298. } else if (path.includes('safety-production')) {
  299. return safetyProductionConfigs[lastSegment];
  300. }
  301. return undefined;
  302. };
  303. const config = computed(() => getConfig(currentPath.value));
  304. </script>
  305. <template>
  306. <div v-if="config" class="solution-layout">
  307. <h1>{{ config.title }}</h1>
  308. <p class="description">{{ config.description }}</p>
  309. <section class="features">
  310. <h2>核心功能</h2>
  311. <ul>
  312. <li v-for="feature in config.features" :key="feature.title">
  313. <h3>{{ feature.title }}</h3>
  314. <p>{{ feature.description }}</p>
  315. </li>
  316. </ul>
  317. </section>
  318. <section class="scenarios">
  319. <h2>应用场景</h2>
  320. <ul>
  321. <li v-for="scenario in config.scenarios" :key="scenario.title">
  322. <h3>{{ scenario.title }}</h3>
  323. <p>{{ scenario.description }}</p>
  324. </li>
  325. </ul>
  326. </section>
  327. </div>
  328. </template>
  329. <style scoped lang="scss">
  330. @use '@/assets/styles/variables' as v;
  331. @use '@/assets/styles/mixins' as m;
  332. .solution-layout {
  333. padding: v.$spacing-xl;
  334. max-width: 1200px;
  335. margin: 0 auto;
  336. h1 {
  337. font-size: v.$font-size-xxl;
  338. color: v.$text-primary;
  339. margin-bottom: v.$spacing-lg;
  340. }
  341. .description {
  342. font-size: v.$font-size-lg;
  343. color: v.$text-secondary;
  344. margin-bottom: v.$spacing-xl;
  345. }
  346. section {
  347. margin-bottom: v.$spacing-xxl;
  348. h2 {
  349. font-size: v.$font-size-xl;
  350. color: v.$text-primary;
  351. margin-bottom: v.$spacing-lg;
  352. }
  353. ul {
  354. display: grid;
  355. grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  356. gap: v.$spacing-lg;
  357. list-style: none;
  358. padding: 0;
  359. li {
  360. background: v.$background-light;
  361. border-radius: v.$border-radius-lg;
  362. padding: v.$spacing-lg;
  363. box-shadow: v.$shadow-sm;
  364. h3 {
  365. font-size: v.$font-size-lg;
  366. color: v.$primary-color;
  367. margin-bottom: v.$spacing-sm;
  368. }
  369. p {
  370. color: v.$text-secondary;
  371. }
  372. }
  373. }
  374. }
  375. }
  376. </style>